diff --git a/material/assets/manifest.json b/material/assets/manifest.json index cc90a4aed..508ada9c0 100644 --- a/material/assets/manifest.json +++ b/material/assets/manifest.json @@ -9,8 +9,8 @@ "assets/stylesheets/main.css.map": "assets/stylesheets/main.45122f27.min.css.map", "assets/stylesheets/palette.css": "assets/stylesheets/palette.e03a20ad.min.css", "assets/stylesheets/palette.css.map": "assets/stylesheets/palette.e03a20ad.min.css.map", - "overrides/assets/javascripts/bundle.js": "overrides/assets/javascripts/bundle.f4aeaef7.min.js", - "overrides/assets/javascripts/bundle.js.map": "overrides/assets/javascripts/bundle.f4aeaef7.min.js.map", + "overrides/assets/javascripts/bundle.js": "overrides/assets/javascripts/bundle.0f7341a3.min.js", + "overrides/assets/javascripts/bundle.js.map": "overrides/assets/javascripts/bundle.0f7341a3.min.js.map", "overrides/assets/stylesheets/main.css": "overrides/assets/stylesheets/main.c2cc92d1.min.css", "overrides/assets/stylesheets/main.css.map": "overrides/assets/stylesheets/main.c2cc92d1.min.css.map" } \ No newline at end of file diff --git a/material/overrides/assets/javascripts/bundle.f4aeaef7.min.js b/material/overrides/assets/javascripts/bundle.0f7341a3.min.js similarity index 97% rename from material/overrides/assets/javascripts/bundle.f4aeaef7.min.js rename to material/overrides/assets/javascripts/bundle.0f7341a3.min.js index 914a635ef..1e22d78ab 100644 --- a/material/overrides/assets/javascripts/bundle.f4aeaef7.min.js +++ b/material/overrides/assets/javascripts/bundle.0f7341a3.min.js @@ -12,5 +12,5 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */function A(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function u(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,u)}c((r=r.apply(e,t||[])).next())}))}Object.create;function T(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function C(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=T(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}Object.create;const O=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function I(e){return r(null==e?void 0:e.then)}const k="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator",j="function"==typeof Symbol&&Symbol.observable||"@@observable";function P(e){return e}function L(e){return 0===e.length?P:1===e.length?e[0]:function(t){return e.reduce((e,t)=>t(e),t)}}class q{constructor(e){e&&(this._subscribe=e)}lift(e){const t=new q;return t.source=this,t.operator=e,t}subscribe(e,t,n){const o=(i=e)&&i instanceof w||function(e){return e&&r(e.next)&&r(e.error)&&r(e.complete)}(i)&&a(i)?e:new y(e,t,n);var i;const{operator:s,source:u}=this;return o.add(s?s.call(o,u):u||f.useDeprecatedSynchronousErrorHandling?this._subscribe(o):this._trySubscribe(o)),o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){if(f.useDeprecatedSynchronousErrorHandling)throw t;e.error(t)}}forEach(e,t){return new(t=M(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(e){n(e),null==r||r.unsubscribe()}},n,t)})}_subscribe(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)}[j](){return this}pipe(...e){return e.length?L(e)(this):this}toPromise(e){return new(e=M(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}function M(e){var t;return null!==(t=null!=e?e:f.Promise)&&void 0!==t?t:Promise}function $(e,t){return new q(n=>{let r=0;return t.schedule((function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())}))})}function F(e){return r(e[j])}function z(e){return r(null==e?void 0:e[k])}function H(e){return Symbol.asyncIterator&&r(null==e?void 0:e[Symbol.asyncIterator])}function D(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, Array, AsyncIterable, or Iterable.`)}function R(e,t){if(null!=e){if(F(e))return function(e,t){return new q(n=>{const r=new c;return r.add(t.schedule(()=>{const o=e[j]();r.add(o.subscribe({next(e){r.add(t.schedule(()=>n.next(e)))},error(e){r.add(t.schedule(()=>n.error(e)))},complete(){r.add(t.schedule(()=>n.complete()))}}))})),r})}(e,t);if(O(e))return $(e,t);if(I(e))return function(e,t){return new q(n=>t.schedule(()=>e.then(e=>{n.add(t.schedule(()=>{n.next(e),n.add(t.schedule(()=>n.complete()))}))},e=>{n.add(t.schedule(()=>n.error(e)))})))}(e,t);if(H(e))return function(e,t){if(!e)throw new Error("Iterable cannot be null");return new q(n=>{const r=new c;return r.add(t.schedule(()=>{const o=e[Symbol.asyncIterator]();r.add(t.schedule((function(){o.next().then(e=>{e.done?n.complete():(n.next(e.value),this.schedule())})})))})),r})}(e,t);if(z(e))return function(e,t){return new q(n=>{let o;return n.add(t.schedule(()=>{o=e[k](),function(e,t,n,r=0){const o=t.schedule((function(){try{n.call(this)}catch(t){e.error(t)}}),r);e.add(o)}(n,t,(function(){const{value:e,done:t}=o.next();t?n.complete():(n.next(e),this.schedule())}))})),()=>r(null==o?void 0:o.return)&&o.return()})}(e,t)}throw D(e)}function U(e,t){return t?R(e,t):W(e)}function W(e){if(e instanceof q)return e;if(null!=e){if(F(e))return i=e,new q(e=>{const t=i[j]();if(r(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")});if(O(e))return N(e);if(I(e))return o=e,new q(e=>{o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,p)});if(H(e))return n=e,new q(e=>{(function(e,t){var n,r,o,i;return A(this,void 0,void 0,(function*(){try{for(n=C(e);!(r=yield n.next()).done;){const e=r.value;t.next(e)}}catch(e){o={error:e}}finally{try{r&&!r.done&&(i=n.return)&&(yield i.call(n))}finally{if(o)throw o.error}}t.complete()}))})(n,e).catch(t=>e.error(t))});if(z(e))return t=e,new q(e=>{const n=t[k]();for(;!e.closed;){const{done:t,value:r}=n.next();t?e.complete():e.next(r)}return()=>r(null==n?void 0:n.return)&&n.return()})}var t,n,o,i;throw D(e)}function N(e){return new q(t=>{for(let n=0;nE((e,o)=>t(n,e,r,o))(W(e(n,r))),n):("number"==typeof t&&(n=t),o((t,r)=>function(e,t,n,r,o,i,s,u){let c=[],l=0,a=0,h=!1;const f=()=>{!h||c.length||l||t.complete()},d=e=>l{i&&t.next(e),l++,W(n(e,a++)).subscribe(new S(t,e=>{null==o||o(e),i?d(e):t.next(e)},void 0,()=>{for(l--;c.length&&lp(e))):p(e)}f()}))};return e.subscribe(new S(t,d,void 0,()=>{h=!0,f()})),()=>{c=null,null==u||u()}}(t,r,e,n)))}q.create=e=>new q(e);function B(e=1/0){return Q(P,e)}function Y(e,t){return t?$(e,t):N(e)}const{isArray:Z}=Array;function J(e){return 1===e.length&&Z(e[0])?e[0]:e}const G=new q(e=>e.complete());function K(e){return e&&r(e.schedule)}function V(e){return e[e.length-1]}function X(e){return r(V(e))?e.pop():void 0}function ee(e){return K(V(e))?e.pop():void 0}function te(...e){const t=ee(e),n=function(e,t){return"number"==typeof V(e)?e.pop():t}(e,1/0),r=J(e);return r.length?1===r.length?W(r[0]):B(n)(Y(r,t)):G}function ne(e,t){return o((n,r)=>{let o=null,i=0,s=!1;const u=()=>s&&!o&&r.complete();n.subscribe(new S(r,n=>{null==o||o.unsubscribe();let s=0;const c=i++;W(e(n,c)).subscribe(o=new S(r,e=>r.next(t?t(n,e,c,s++):e),void 0,()=>{o=null,u()}))},void 0,()=>{s=!0,u()}))})}const re=i(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});class oe extends q{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const t=new ie(this,this);return t.operator=e,t}_throwIfClosed(){if(this.closed)throw new re}next(e){if(this._throwIfClosed(),!this.isStopped){const t=this.observers.slice();for(const n of t)n.next(e)}}error(e){if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:t}=this;for(;t.length;)t.shift().error(e)}}complete(){if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}}unsubscribe(){this.isStopped=this.closed=!0,this.observers=null}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:t,isStopped:n,observers:r}=this;return t||n?l:(r.push(e),new c(()=>u(this.observers,e)))}_checkFinalizedStatuses(e){const{hasError:t,thrownError:n,isStopped:r}=this;t?e.error(n):r&&e.complete()}asObservable(){const e=new q;return e.source=this,e}}oe.create=(e,t)=>new ie(e,t);class ie extends oe{constructor(e,t){super(),this.destination=e,this.source=t}next(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===n||n.call(t,e)}error(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===n||n.call(t,e)}complete(){var e,t;null===(t=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===t||t.call(e)}_subscribe(e){var t,n;return null!==(n=null===(t=this.source)||void 0===t?void 0:t.subscribe(e))&&void 0!==n?n:l}}const se={now:()=>(se.delegate||Date).now(),delegate:void 0};class ue extends oe{constructor(e=1/0,t=1/0,n=se){super(),this.bufferSize=e,this.windowTime=t,this.timestampProvider=n,this.buffer=[],this.infiniteTimeWindow=!0,this.infiniteTimeWindow=t===1/0,this.bufferSize=Math.max(1,e),this.windowTime=Math.max(1,t)}next(e){const{isStopped:t,buffer:n,infiniteTimeWindow:r,timestampProvider:o,windowTime:i}=this;t||(n.push(e),!r&&n.push(o.now()+i)),this.trimBuffer(),super.next(e)}_subscribe(e){this._throwIfClosed(),this.trimBuffer();const t=this._innerSubscribe(e),{infiniteTimeWindow:n,buffer:r}=this,o=r.slice();for(let t=0;tfunction(e,t){return ce(t)?e(...t):e(t)}(e,t))}const ae=["addListener","removeListener"],he=["addEventListener","removeEventListener"],fe=["on","off"];function de(e,t,n,o){if(r(n)&&(o=n,n=void 0),o)return de(e,t,n).pipe(le(o));const[i,s]=function(e){return r(e.addEventListener)&&r(e.removeEventListener)}(e)?he.map(r=>o=>e[r](t,o,n)):function(e){return r(e.addListener)&&r(e.removeListener)}(e)?ae.map(pe(e,t)):function(e){return r(e.on)&&r(e.off)}(e)?fe.map(pe(e,t)):[];return!i&&O(e)?Q(e=>de(e,t,n))(Y(e)):new q(e=>{if(!i)throw new TypeError("Invalid event target");const t=(...t)=>e.next(1s(t)})}function pe(e,t){return n=>r=>e[n](t,r)}function be(e){return o((t,n)=>{t.subscribe(new S(n,()=>n.next(e)))})}function ve(e,t=document){return t.querySelector(e)||void 0}function me(e,t=document){const n=ve(e,t);if(void 0===n)throw new ReferenceError(`Missing element: expected "${e}" to be present`);return n}function we(){return document.activeElement instanceof HTMLElement?document.activeElement:void 0}function ye(...e){return B(1)(Y(e,ee(e)))}function ge(...e){const t=ee(e);return o((n,r)=>{(t?ye(e,n,t):ye(e,n)).subscribe(r)})}function xe(e,t){return e=null!=e?e:_e,o((n,r)=>{let o,i=!0;n.subscribe(new S(r,n=>{(i&&(o=n,1)||!e(o,o=t?t(n):n))&&r.next(n),i=!1}))})}function _e(e,t){return e===t}function Se(...e){const t=ee(e);return t?$(e,t):Y(e)}const Ee=new q(b);function Ae(e){return o((t,n)=>{t.subscribe(n),n.add(e)})}function Te(e){e=e||{};const{connector:t=(()=>new oe),resetOnComplete:n=!0,resetOnError:r=!0,resetOnRefCountZero:i=!0}=e;let s=null,u=null,c=0,l=!1,a=!1;const h=()=>{s=u=null,l=a=!1};return o((e,o)=>{c++,u||(u=t());const f=u.subscribe(o);return s||(s=U(e).subscribe({next:e=>u.next(e),error:e=>{a=!0;const t=u;r&&h(),t.error(e)},complete:()=>{l=!0;const e=u;n&&h(),e.complete()}})),()=>{if(c--,f.unsubscribe(),!c&&i&&!a&&!l){const e=s;h(),null==e||e.unsubscribe()}}})}function Ce(e,t,n){var r,o;let i,s=!1;return e&&"object"==typeof e?(i=null!==(r=e.bufferSize)&&void 0!==r?r:1/0,t=null!==(o=e.windowTime)&&void 0!==o?o:1/0,s=!!e.refCount,n=e.scheduler):i=null!=e?e:1/0,Te({connector:()=>new ue(i,t,n),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:s})}function Oe(e,t,n){const i=r(e)||t||n?{next:e,error:t,complete:n}:e;return i?o((e,t)=>{e.subscribe(new S(t,e=>{var n;null===(n=i.next)||void 0===n||n.call(i,e),t.next(e)},e=>{var n;null===(n=i.error)||void 0===n||n.call(i,e),t.error(e)},()=>{var e;null===(e=i.complete)||void 0===e||e.call(i),t.complete()}))}):P}function Ie(e,t){return o((n,r)=>{let o=0;n.subscribe(new S(r,n=>e.call(t,n,o++)&&r.next(n)))})}const ke=new oe;(je=()=>Se(new ResizeObserver(e=>{for(const t of e)ke.next(t)})),new q(e=>{W(je()).subscribe(e)})).pipe(ne(e=>Ee.pipe(ge(e)).pipe(Ae(()=>e.disconnect()))),Ce(1));var je;function Pe(e){return{width:e.offsetWidth,height:e.offsetHeight}}function Le(e){return{x:e.scrollLeft,y:e.scrollTop}}function qe(e,t=16){return function(e){return te(de(e,"scroll"),de(window,"resize")).pipe(E(()=>Le(e)),ge(Le(e)))}(e).pipe(E(({y:n})=>{const r=Pe(e);return n>=function(e){return{width:e.scrollWidth,height:e.scrollHeight}}(e).height-r.height-t}),xe())}me("[data-md-toggle=drawer]"),me("[data-md-toggle=search]");function Me(){return new URL(location.href)}function $e(e,t={credentials:"same-origin"}){return U(fetch(e,t)).pipe(Ie(e=>200===e.status))}const{isArray:Fe}=Array,{getPrototypeOf:ze,prototype:He,keys:De}=Object;function Re(e){if(1===e.length){const n=e[0];if(Fe(n))return{args:n,keys:null};if((t=n)&&"object"==typeof t&&ze(t)===He){const e=De(n);return{args:e.map(e=>n[e]),keys:e}}}var t;return{args:e,keys:null}}function Ue(...e){const t=ee(e),n=X(e),{args:r,keys:o}=Re(e);if(0===r.length)return U([],t);const i=new q(function(e,t,n=P){return r=>{Ne(t,()=>{const{length:o}=e,i=new Array(o);let s=o;const u=e.map(()=>!1);let c=!0;for(let l=0;l{U(e[l],t).subscribe(new We(r,e=>{i[l]=e,c&&(u[l]=!0,c=!u.every(P)),c||r.next(n(i.slice()))},()=>0==--s))},r)}},r)}}(r,t,o?e=>{const t={};for(let n=0;nt?t(n[e],r[e]):n[e]===r[e])}function Be(e,t=document){return me(`[data-mdx-component=${e}]`,t)}function Ye(e,t=document){return function(e,t=document){return Array.from(t.querySelectorAll(e))}(`[data-mdx-component=${e}]`,t)}const Ze=me("#__config"),Je=JSON.parse(Ze.textContent);function Ge(e,t){return void 0!==t?Je.translations[e].replace("#",t.toString()):Je.translations[e]}Je.base=new URL(Je.base,Me()).toString().replace(/\/$/,"");class Ke extends c{constructor(e,t){super()}schedule(e,t=0){return this}}const Ve={setInterval(...e){const{delegate:t}=Ve;return((null==t?void 0:t.setInterval)||setInterval)(...e)},clearInterval(e){const{delegate:t}=Ve;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0};class Xe extends Ke{constructor(e,t){super(e,t),this.scheduler=e,this.work=t,this.pending=!1}schedule(e,t=0){if(this.closed)return this;this.state=e;const n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(r,this.id,t),this}requestAsyncId(e,t,n=0){return Ve.setInterval(e.flush.bind(e,this),n)}recycleAsyncId(e,t,n=0){if(null!=n&&this.delay===n&&!1===this.pending)return t;Ve.clearInterval(t)}execute(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(e,t){let n,r=!1;try{this.work(e)}catch(e){r=!0,n=!!e&&e||new Error(e)}if(r)return this.unsubscribe(),n}unsubscribe(){if(!this.closed){const{id:e,scheduler:t}=this,{actions:n}=t;this.work=this.state=this.scheduler=null,this.pending=!1,u(n,this),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null,super.unsubscribe()}}}class et{constructor(e,t=et.now){this.schedulerActionCtor=e,this.now=t}schedule(e,t=0,n){return new this.schedulerActionCtor(this,e).schedule(n,t)}}et.now=se.now;class tt extends et{constructor(e,t=et.now){super(e,t),this.actions=[],this.active=!1,this.scheduled=void 0}flush(e){const{actions:t}=this;if(this.active)return void t.push(e);let n;this.active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}}const nt=new tt(Xe),rt=nt;function ot(e){return e<=0?()=>G:o((t,n)=>{let r=0;t.subscribe(new S(n,t=>{++r<=e&&(n.next(t),e<=r&&n.complete())}))})}function it(e,t){return t?n=>ye(t.pipe(ot(1),o((e,t)=>{e.subscribe(new S(t,b))})),n.pipe(it(e))):Q((t,n)=>e(t,n).pipe(ot(1),be(t)))}function st(e=0,t,n=rt){let r=-1;return null!=t&&(K(t)?n=t:r=t),new q(t=>{let o=(i=e)instanceof Date&&!isNaN(i)?+e-n.now():e;var i;o<0&&(o=0);let s=0;return n.schedule((function(){t.closed||(t.next(s++),0<=r?this.schedule(void 0,r):t.complete())}),o)})}function ut(e){const t=function(e){return te(de(e,"focus"),de(e,"blur")).pipe(E(({type:e})=>"focus"===e),ge(e===we()))}(e);return Ue([te(de(e,"keyup"),de(e,"focus").pipe(function(e,t=nt){const n=st(e,t);return it(()=>n)}(1))).pipe(E(()=>e.value),ge(e.value),xe()),t]).pipe(E(([t,n])=>({ref:e,value:t,focus:n})))}var ct=n(3);const lt={schedule(e){let t=requestAnimationFrame,n=cancelAnimationFrame;const{delegate:r}=lt;r&&(t=r.requestAnimationFrame,n=r.cancelAnimationFrame);const o=t(t=>{n=void 0,e(t)});return new c(()=>null==n?void 0:n(o))},requestAnimationFrame(...e){const{delegate:t}=lt;return((null==t?void 0:t.requestAnimationFrame)||requestAnimationFrame)(...e)},cancelAnimationFrame(...e){const{delegate:t}=lt;return((null==t?void 0:t.cancelAnimationFrame)||cancelAnimationFrame)(...e)},delegate:void 0};const at=new class extends tt{flush(e){this.active=!0,this.scheduled=void 0;const{actions:t}=this;let n,r=-1;e=e||t.shift();const o=t.length;do{if(n=e.execute(e.state,e.delay))break}while(++r0?super.requestAsyncId(e,t,n):(e.actions.push(this),e.scheduled||(e.scheduled=lt.requestAnimationFrame(()=>e.flush(void 0))))}recycleAsyncId(e,t,n=0){if(null!=n&&n>0||null==n&&this.delay>0)return super.recycleAsyncId(e,t,n);0===e.actions.length&&(lt.cancelAnimationFrame(t),e.scheduled=void 0)}});function ht(e,t=0){return o((n,r)=>{n.subscribe(new S(r,n=>r.add(e.schedule(()=>r.next(n),t)),n=>r.add(e.schedule(()=>r.error(n),t)),()=>r.add(e.schedule(()=>r.complete(),t))))})}function ft(...e){const t=X(e);return o((n,r)=>{const o=e.length,i=new Array(o);let s=e.map(()=>!1),u=!1;for(let t=0;t{i[t]=e,u||s[t]||(s[t]=!0,(u=s.every(P))&&(s=null))},void 0,b));n.subscribe(new S(r,e=>{if(u){const n=[e,...i];r.next(t?t(...n):n)}}))})}function dt(...e){return o((t,n)=>{(function(...e){const t=X(e),n=J(e);return n.length?new q(e=>{let r=n.map(()=>[]),o=n.map(()=>!1);e.add(()=>{r=o=null});for(let i=0;!e.closed&&i{if(r[i].push(n),r.every(e=>e.length)){const n=r.map(e=>e.shift());e.next(t?t(...n):n),r.some((e,t)=>!e.length&&o[t])&&e.complete()}},void 0,()=>{o[i]=!0,!r[i].length&&e.complete()}));return()=>{r=o=null}}):G})(t,...e).subscribe(n)})}function pt(e,t){if("string"==typeof t||"number"==typeof t)e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(const n of t)pt(e,n)}function bt(e,t,...n){const r=document.createElement(e);if(t)for(const e of Object.keys(t))"boolean"!=typeof t[e]?r.setAttribute(e,t[e]):t[e]&&r.setAttribute(e,"");for(const e of n)pt(r,e);return r}function vt(e,t){return bt("li",{class:"mdx-icon-search-result__item"},bt("span",{class:"twemoji"},bt("img",{src:e.url})),bt("button",{class:"md-clipboard--inline",title:Ge("clipboard.copy"),"data-clipboard-text":`:${e.shortcode}:`},bt("code",null,`:${function(e,t){return Object(ct.wrap)(e,t,{wrap:{tagOpen:"",tagClose:""}})}(e.shortcode,t)}:`)))}function mt(e,{index$:t,query$:n}){const r=new oe,i=qe(e).pipe(Ie(Boolean)),s=me(":scope > :first-child",e);r.pipe(ht(at),ft(n)).subscribe(([{data:e},{value:t}])=>{t?function(e,t){switch(t){case 0:e.textContent=Ge("search.result.none");break;case 1:e.textContent=Ge("search.result.one");break;default:e.textContent=Ge("search.result.other",function(e){if(e>999){return((e+1e-6)/1e3).toFixed(+((e-950)%1e3>99))+"k"}return e.toString()}(t))}}(s,e.length):function(e){e.textContent=Ge("search.result.placeholder")}(s)});const c=me(":scope > :last-child",e);return r.pipe(ht(at),Oe(()=>function(e){e.innerHTML=""}(c)),ne(({data:e})=>te(Se(...e.slice(0,10)),Se(...e.slice(10)).pipe(function(e,t=null){return t=null!=t?t:e,o((n,r)=>{let o=[],i=0;n.subscribe(new S(r,n=>{let s=null;i++%t==0&&o.push([]);for(const t of o)t.push(n),e<=t.length&&(s=null!=s?s:[],s.push(t));if(s)for(const e of s)u(o,e),r.next(e)},void 0,()=>{for(const e of o)r.next(e);r.complete()},()=>{o=null}))})}(10),function(...e){return dt(...e)}(i),ne(([e])=>Se(...e))))),ft(n)).subscribe(([e,{value:t}])=>{!function(e,t){e.appendChild(t)}(c,vt(e,t))}),Ue([n.pipe(Qe("value")),t.pipe(E(({icons:e,emojis:t})=>[...Object.keys(e.data),...Object.keys(t.data)]))]).pipe(ft(t),E(([[{value:e},t],n])=>({data:Object(ct.filter)(t,e).map(e=>e in n.icons.data?{shortcode:e,url:`${n.icons.base}${n.icons.data[e]}`}:{shortcode:e,url:`${n.emojis.base}${n.emojis.data[e]}`})})),Oe(r),Ae(()=>r.complete()),E(t=>Object.assign({ref:e},t)))}function wt(e){const t=$e(Je.base+"/overrides/assets/javascripts/icon_search_index.json",n).pipe(ne(e=>e.json()),Ce(1));var n;const r=Be("icon-search-query",e),o=Be("icon-search-result",e),i=ut(r);return te(i,mt(o,{index$:t,query$:i}))}de(document.body,"click").subscribe(e=>{if(e.target instanceof HTMLElement){const t=e.target.closest("a[href^=http]");t instanceof HTMLLinkElement&&ga("send","event","outbound","click",t.href)}}),document$.pipe(ne(()=>te(...Ye("icon-search").map(e=>wt(e))))).subscribe()}])); -//# sourceMappingURL=bundle.f4aeaef7.min.js.map \ No newline at end of file +***************************************************************************** */function A(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function u(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,u)}c((r=r.apply(e,t||[])).next())}))}Object.create;function T(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function C(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=T(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}Object.create;const O=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function I(e){return r(null==e?void 0:e.then)}const k="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator",j="function"==typeof Symbol&&Symbol.observable||"@@observable";function P(e){return e}function L(e){return 0===e.length?P:1===e.length?e[0]:function(t){return e.reduce((e,t)=>t(e),t)}}class q{constructor(e){e&&(this._subscribe=e)}lift(e){const t=new q;return t.source=this,t.operator=e,t}subscribe(e,t,n){const o=(i=e)&&i instanceof w||function(e){return e&&r(e.next)&&r(e.error)&&r(e.complete)}(i)&&a(i)?e:new y(e,t,n);var i;const{operator:s,source:u}=this;return o.add(s?s.call(o,u):u||f.useDeprecatedSynchronousErrorHandling?this._subscribe(o):this._trySubscribe(o)),o}_trySubscribe(e){try{return this._subscribe(e)}catch(t){if(f.useDeprecatedSynchronousErrorHandling)throw t;e.error(t)}}forEach(e,t){return new(t=M(t))((t,n)=>{let r;r=this.subscribe(t=>{try{e(t)}catch(e){n(e),null==r||r.unsubscribe()}},n,t)})}_subscribe(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)}[j](){return this}pipe(...e){return e.length?L(e)(this):this}toPromise(e){return new(e=M(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}function M(e){var t;return null!==(t=null!=e?e:f.Promise)&&void 0!==t?t:Promise}function $(e,t){return new q(n=>{let r=0;return t.schedule((function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())}))})}function F(e){return r(e[j])}function z(e){return r(null==e?void 0:e[k])}function H(e){return Symbol.asyncIterator&&r(null==e?void 0:e[Symbol.asyncIterator])}function D(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, Array, AsyncIterable, or Iterable.`)}function R(e,t){if(null!=e){if(F(e))return function(e,t){return new q(n=>{const r=new c;return r.add(t.schedule(()=>{const o=e[j]();r.add(o.subscribe({next(e){r.add(t.schedule(()=>n.next(e)))},error(e){r.add(t.schedule(()=>n.error(e)))},complete(){r.add(t.schedule(()=>n.complete()))}}))})),r})}(e,t);if(O(e))return $(e,t);if(I(e))return function(e,t){return new q(n=>t.schedule(()=>e.then(e=>{n.add(t.schedule(()=>{n.next(e),n.add(t.schedule(()=>n.complete()))}))},e=>{n.add(t.schedule(()=>n.error(e)))})))}(e,t);if(H(e))return function(e,t){if(!e)throw new Error("Iterable cannot be null");return new q(n=>{const r=new c;return r.add(t.schedule(()=>{const o=e[Symbol.asyncIterator]();r.add(t.schedule((function(){o.next().then(e=>{e.done?n.complete():(n.next(e.value),this.schedule())})})))})),r})}(e,t);if(z(e))return function(e,t){return new q(n=>{let o;return n.add(t.schedule(()=>{o=e[k](),function(e,t,n,r=0){const o=t.schedule((function(){try{n.call(this)}catch(t){e.error(t)}}),r);e.add(o)}(n,t,(function(){const{value:e,done:t}=o.next();t?n.complete():(n.next(e),this.schedule())}))})),()=>r(null==o?void 0:o.return)&&o.return()})}(e,t)}throw D(e)}function U(e,t){return t?R(e,t):W(e)}function W(e){if(e instanceof q)return e;if(null!=e){if(F(e))return i=e,new q(e=>{const t=i[j]();if(r(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")});if(O(e))return N(e);if(I(e))return o=e,new q(e=>{o.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,p)});if(H(e))return n=e,new q(e=>{(function(e,t){var n,r,o,i;return A(this,void 0,void 0,(function*(){try{for(n=C(e);!(r=yield n.next()).done;){const e=r.value;t.next(e)}}catch(e){o={error:e}}finally{try{r&&!r.done&&(i=n.return)&&(yield i.call(n))}finally{if(o)throw o.error}}t.complete()}))})(n,e).catch(t=>e.error(t))});if(z(e))return t=e,new q(e=>{const n=t[k]();for(;!e.closed;){const{done:t,value:r}=n.next();t?e.complete():e.next(r)}return()=>r(null==n?void 0:n.return)&&n.return()})}var t,n,o,i;throw D(e)}function N(e){return new q(t=>{for(let n=0;nE((e,o)=>t(n,e,r,o))(W(e(n,r))),n):("number"==typeof t&&(n=t),o((t,r)=>function(e,t,n,r,o,i,s,u){let c=[],l=0,a=0,h=!1;const f=()=>{!h||c.length||l||t.complete()},d=e=>l{i&&t.next(e),l++,W(n(e,a++)).subscribe(new S(t,e=>{null==o||o(e),i?d(e):t.next(e)},void 0,()=>{for(l--;c.length&&lp(e))):p(e)}f()}))};return e.subscribe(new S(t,d,void 0,()=>{h=!0,f()})),()=>{c=null,null==u||u()}}(t,r,e,n)))}q.create=e=>new q(e);function B(e=1/0){return Q(P,e)}function Y(e,t){return t?$(e,t):N(e)}const{isArray:Z}=Array;function J(e){return 1===e.length&&Z(e[0])?e[0]:e}const G=new q(e=>e.complete());function K(e){return e&&r(e.schedule)}function V(e){return e[e.length-1]}function X(e){return r(V(e))?e.pop():void 0}function ee(e){return K(V(e))?e.pop():void 0}function te(...e){const t=ee(e),n=function(e,t){return"number"==typeof V(e)?e.pop():t}(e,1/0),r=J(e);return r.length?1===r.length?W(r[0]):B(n)(Y(r,t)):G}function ne(e,t){return o((n,r)=>{let o=null,i=0,s=!1;const u=()=>s&&!o&&r.complete();n.subscribe(new S(r,n=>{null==o||o.unsubscribe();let s=0;const c=i++;W(e(n,c)).subscribe(o=new S(r,e=>r.next(t?t(n,e,c,s++):e),void 0,()=>{o=null,u()}))},void 0,()=>{s=!0,u()}))})}const re=i(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});class oe extends q{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const t=new ie(this,this);return t.operator=e,t}_throwIfClosed(){if(this.closed)throw new re}next(e){if(this._throwIfClosed(),!this.isStopped){const t=this.observers.slice();for(const n of t)n.next(e)}}error(e){if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:t}=this;for(;t.length;)t.shift().error(e)}}complete(){if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}}unsubscribe(){this.isStopped=this.closed=!0,this.observers=null}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:t,isStopped:n,observers:r}=this;return t||n?l:(r.push(e),new c(()=>u(this.observers,e)))}_checkFinalizedStatuses(e){const{hasError:t,thrownError:n,isStopped:r}=this;t?e.error(n):r&&e.complete()}asObservable(){const e=new q;return e.source=this,e}}oe.create=(e,t)=>new ie(e,t);class ie extends oe{constructor(e,t){super(),this.destination=e,this.source=t}next(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===n||n.call(t,e)}error(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===n||n.call(t,e)}complete(){var e,t;null===(t=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===t||t.call(e)}_subscribe(e){var t,n;return null!==(n=null===(t=this.source)||void 0===t?void 0:t.subscribe(e))&&void 0!==n?n:l}}const se={now:()=>(se.delegate||Date).now(),delegate:void 0};class ue extends oe{constructor(e=1/0,t=1/0,n=se){super(),this.bufferSize=e,this.windowTime=t,this.timestampProvider=n,this.buffer=[],this.infiniteTimeWindow=!0,this.infiniteTimeWindow=t===1/0,this.bufferSize=Math.max(1,e),this.windowTime=Math.max(1,t)}next(e){const{isStopped:t,buffer:n,infiniteTimeWindow:r,timestampProvider:o,windowTime:i}=this;t||(n.push(e),!r&&n.push(o.now()+i)),this.trimBuffer(),super.next(e)}_subscribe(e){this._throwIfClosed(),this.trimBuffer();const t=this._innerSubscribe(e),{infiniteTimeWindow:n,buffer:r}=this,o=r.slice();for(let t=0;tfunction(e,t){return ce(t)?e(...t):e(t)}(e,t))}const ae=["addListener","removeListener"],he=["addEventListener","removeEventListener"],fe=["on","off"];function de(e,t,n,o){if(r(n)&&(o=n,n=void 0),o)return de(e,t,n).pipe(le(o));const[i,s]=function(e){return r(e.addEventListener)&&r(e.removeEventListener)}(e)?he.map(r=>o=>e[r](t,o,n)):function(e){return r(e.addListener)&&r(e.removeListener)}(e)?ae.map(pe(e,t)):function(e){return r(e.on)&&r(e.off)}(e)?fe.map(pe(e,t)):[];return!i&&O(e)?Q(e=>de(e,t,n))(Y(e)):new q(e=>{if(!i)throw new TypeError("Invalid event target");const t=(...t)=>e.next(1s(t)})}function pe(e,t){return n=>r=>e[n](t,r)}function be(e){return o((t,n)=>{t.subscribe(new S(n,()=>n.next(e)))})}function ve(e,t=document){return t.querySelector(e)||void 0}function me(e,t=document){const n=ve(e,t);if(void 0===n)throw new ReferenceError(`Missing element: expected "${e}" to be present`);return n}function we(){return document.activeElement instanceof HTMLElement?document.activeElement:void 0}function ye(...e){return B(1)(Y(e,ee(e)))}function ge(...e){const t=ee(e);return o((n,r)=>{(t?ye(e,n,t):ye(e,n)).subscribe(r)})}function xe(e,t){return e=null!=e?e:_e,o((n,r)=>{let o,i=!0;n.subscribe(new S(r,n=>{(i&&(o=n,1)||!e(o,o=t?t(n):n))&&r.next(n),i=!1}))})}function _e(e,t){return e===t}function Se(...e){const t=ee(e);return t?$(e,t):Y(e)}const Ee=new q(b);function Ae(e){return o((t,n)=>{t.subscribe(n),n.add(e)})}function Te(e){e=e||{};const{connector:t=(()=>new oe),resetOnComplete:n=!0,resetOnError:r=!0,resetOnRefCountZero:i=!0}=e;let s=null,u=null,c=0,l=!1,a=!1;const h=()=>{s=u=null,l=a=!1};return o((e,o)=>{c++,u||(u=t());const f=u.subscribe(o);return s||(s=U(e).subscribe({next:e=>u.next(e),error:e=>{a=!0;const t=u;r&&h(),t.error(e)},complete:()=>{l=!0;const e=u;n&&h(),e.complete()}})),()=>{if(c--,f.unsubscribe(),!c&&i&&!a&&!l){const e=s;h(),null==e||e.unsubscribe()}}})}function Ce(e,t,n){var r,o;let i,s=!1;return e&&"object"==typeof e?(i=null!==(r=e.bufferSize)&&void 0!==r?r:1/0,t=null!==(o=e.windowTime)&&void 0!==o?o:1/0,s=!!e.refCount,n=e.scheduler):i=null!=e?e:1/0,Te({connector:()=>new ue(i,t,n),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:s})}function Oe(e,t,n){const i=r(e)||t||n?{next:e,error:t,complete:n}:e;return i?o((e,t)=>{e.subscribe(new S(t,e=>{var n;null===(n=i.next)||void 0===n||n.call(i,e),t.next(e)},e=>{var n;null===(n=i.error)||void 0===n||n.call(i,e),t.error(e)},()=>{var e;null===(e=i.complete)||void 0===e||e.call(i),t.complete()}))}):P}function Ie(e,t){return o((n,r)=>{let o=0;n.subscribe(new S(r,n=>e.call(t,n,o++)&&r.next(n)))})}const ke=new oe;(je=()=>Se(new ResizeObserver(e=>{for(const t of e)ke.next(t)})),new q(e=>{W(je()).subscribe(e)})).pipe(ne(e=>Ee.pipe(ge(e)).pipe(Ae(()=>e.disconnect()))),Ce(1));var je;function Pe(e){return{width:e.offsetWidth,height:e.offsetHeight}}function Le(e){return{x:e.scrollLeft,y:e.scrollTop}}function qe(e,t=16){return function(e){return te(de(e,"scroll"),de(window,"resize")).pipe(E(()=>Le(e)),ge(Le(e)))}(e).pipe(E(({y:n})=>{const r=Pe(e);return n>=function(e){return{width:e.scrollWidth,height:e.scrollHeight}}(e).height-r.height-t}),xe())}me("[data-md-toggle=drawer]"),me("[data-md-toggle=search]");function Me(){return new URL(location.href)}function $e(e,t={credentials:"same-origin"}){return U(fetch(e,t)).pipe(Ie(e=>200===e.status))}const{isArray:Fe}=Array,{getPrototypeOf:ze,prototype:He,keys:De}=Object;function Re(e){if(1===e.length){const n=e[0];if(Fe(n))return{args:n,keys:null};if((t=n)&&"object"==typeof t&&ze(t)===He){const e=De(n);return{args:e.map(e=>n[e]),keys:e}}}var t;return{args:e,keys:null}}function Ue(...e){const t=ee(e),n=X(e),{args:r,keys:o}=Re(e);if(0===r.length)return U([],t);const i=new q(function(e,t,n=P){return r=>{Ne(t,()=>{const{length:o}=e,i=new Array(o);let s=o;const u=e.map(()=>!1);let c=!0;for(let l=0;l{U(e[l],t).subscribe(new We(r,e=>{i[l]=e,c&&(u[l]=!0,c=!u.every(P)),c||r.next(n(i.slice()))},()=>0==--s))},r)}},r)}}(r,t,o?e=>{const t={};for(let n=0;nt?t(n[e],r[e]):n[e]===r[e])}function Be(e,t=document){return me(`[data-mdx-component=${e}]`,t)}function Ye(e,t=document){return function(e,t=document){return Array.from(t.querySelectorAll(e))}(`[data-mdx-component=${e}]`,t)}const Ze=me("#__config"),Je=JSON.parse(Ze.textContent);function Ge(e,t){return void 0!==t?Je.translations[e].replace("#",t.toString()):Je.translations[e]}Je.base=new URL(Je.base,Me()).toString().replace(/\/$/,"");class Ke extends c{constructor(e,t){super()}schedule(e,t=0){return this}}const Ve={setInterval(...e){const{delegate:t}=Ve;return((null==t?void 0:t.setInterval)||setInterval)(...e)},clearInterval(e){const{delegate:t}=Ve;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0};class Xe extends Ke{constructor(e,t){super(e,t),this.scheduler=e,this.work=t,this.pending=!1}schedule(e,t=0){if(this.closed)return this;this.state=e;const n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(r,this.id,t),this}requestAsyncId(e,t,n=0){return Ve.setInterval(e.flush.bind(e,this),n)}recycleAsyncId(e,t,n=0){if(null!=n&&this.delay===n&&!1===this.pending)return t;Ve.clearInterval(t)}execute(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(e,t){let n,r=!1;try{this.work(e)}catch(e){r=!0,n=!!e&&e||new Error(e)}if(r)return this.unsubscribe(),n}unsubscribe(){if(!this.closed){const{id:e,scheduler:t}=this,{actions:n}=t;this.work=this.state=this.scheduler=null,this.pending=!1,u(n,this),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null,super.unsubscribe()}}}class et{constructor(e,t=et.now){this.schedulerActionCtor=e,this.now=t}schedule(e,t=0,n){return new this.schedulerActionCtor(this,e).schedule(n,t)}}et.now=se.now;class tt extends et{constructor(e,t=et.now){super(e,t),this.actions=[],this.active=!1,this.scheduled=void 0}flush(e){const{actions:t}=this;if(this.active)return void t.push(e);let n;this.active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}}const nt=new tt(Xe),rt=nt;function ot(e){return e<=0?()=>G:o((t,n)=>{let r=0;t.subscribe(new S(n,t=>{++r<=e&&(n.next(t),e<=r&&n.complete())}))})}function it(e,t){return t?n=>ye(t.pipe(ot(1),o((e,t)=>{e.subscribe(new S(t,b))})),n.pipe(it(e))):Q((t,n)=>e(t,n).pipe(ot(1),be(t)))}function st(e=0,t,n=rt){let r=-1;return null!=t&&(K(t)?n=t:r=t),new q(t=>{let o=(i=e)instanceof Date&&!isNaN(i)?+e-n.now():e;var i;o<0&&(o=0);let s=0;return n.schedule((function(){t.closed||(t.next(s++),0<=r?this.schedule(void 0,r):t.complete())}),o)})}function ut(e){const t=function(e){return te(de(e,"focus"),de(e,"blur")).pipe(E(({type:e})=>"focus"===e),ge(e===we()))}(e);return Ue([te(de(e,"keyup"),de(e,"focus").pipe(function(e,t=nt){const n=st(e,t);return it(()=>n)}(1))).pipe(E(()=>e.value),ge(e.value),xe()),t]).pipe(E(([t,n])=>({ref:e,value:t,focus:n})))}var ct=n(3);const lt={schedule(e){let t=requestAnimationFrame,n=cancelAnimationFrame;const{delegate:r}=lt;r&&(t=r.requestAnimationFrame,n=r.cancelAnimationFrame);const o=t(t=>{n=void 0,e(t)});return new c(()=>null==n?void 0:n(o))},requestAnimationFrame(...e){const{delegate:t}=lt;return((null==t?void 0:t.requestAnimationFrame)||requestAnimationFrame)(...e)},cancelAnimationFrame(...e){const{delegate:t}=lt;return((null==t?void 0:t.cancelAnimationFrame)||cancelAnimationFrame)(...e)},delegate:void 0};const at=new class extends tt{flush(e){this.active=!0,this.scheduled=void 0;const{actions:t}=this;let n,r=-1;e=e||t.shift();const o=t.length;do{if(n=e.execute(e.state,e.delay))break}while(++r0?super.requestAsyncId(e,t,n):(e.actions.push(this),e.scheduled||(e.scheduled=lt.requestAnimationFrame(()=>e.flush(void 0))))}recycleAsyncId(e,t,n=0){if(null!=n&&n>0||null==n&&this.delay>0)return super.recycleAsyncId(e,t,n);0===e.actions.length&&(lt.cancelAnimationFrame(t),e.scheduled=void 0)}});function ht(e,t=0){return o((n,r)=>{n.subscribe(new S(r,n=>r.add(e.schedule(()=>r.next(n),t)),n=>r.add(e.schedule(()=>r.error(n),t)),()=>r.add(e.schedule(()=>r.complete(),t))))})}function ft(...e){const t=X(e);return o((n,r)=>{const o=e.length,i=new Array(o);let s=e.map(()=>!1),u=!1;for(let t=0;t{i[t]=e,u||s[t]||(s[t]=!0,(u=s.every(P))&&(s=null))},void 0,b));n.subscribe(new S(r,e=>{if(u){const n=[e,...i];r.next(t?t(...n):n)}}))})}function dt(...e){return o((t,n)=>{(function(...e){const t=X(e),n=J(e);return n.length?new q(e=>{let r=n.map(()=>[]),o=n.map(()=>!1);e.add(()=>{r=o=null});for(let i=0;!e.closed&&i{if(r[i].push(n),r.every(e=>e.length)){const n=r.map(e=>e.shift());e.next(t?t(...n):n),r.some((e,t)=>!e.length&&o[t])&&e.complete()}},void 0,()=>{o[i]=!0,!r[i].length&&e.complete()}));return()=>{r=o=null}}):G})(t,...e).subscribe(n)})}function pt(e,t){if("string"==typeof t||"number"==typeof t)e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(const n of t)pt(e,n)}function bt(e,t,...n){const r=document.createElement(e);if(t)for(const e of Object.keys(t))"boolean"!=typeof t[e]?r.setAttribute(e,t[e]):t[e]&&r.setAttribute(e,"");for(const e of n)pt(r,e);return r}function vt(e,t){return bt("li",{class:"mdx-icon-search-result__item"},bt("span",{class:"twemoji"},bt("img",{src:e.url})),bt("button",{class:"md-clipboard--inline",title:Ge("clipboard.copy"),"data-clipboard-text":`:${e.shortcode}:`},bt("code",null,`:${function(e,t){return Object(ct.wrap)(e.shortcode,t,{wrap:{tagOpen:"",tagClose:""}})}(e,t)}:`)))}function mt(e,{index$:t,query$:n}){const r=new oe,i=qe(e).pipe(Ie(Boolean)),s=me(":scope > :first-child",e);r.pipe(ht(at),ft(n)).subscribe(([{data:e},{value:t}])=>{t?function(e,t){switch(t){case 0:e.textContent=Ge("search.result.none");break;case 1:e.textContent=Ge("search.result.one");break;default:e.textContent=Ge("search.result.other",function(e){if(e>999){return((e+1e-6)/1e3).toFixed(+((e-950)%1e3>99))+"k"}return e.toString()}(t))}}(s,e.length):function(e){e.textContent=Ge("search.result.placeholder")}(s)});const c=me(":scope > :last-child",e);return r.pipe(ht(at),Oe(()=>function(e){e.innerHTML=""}(c)),ne(({data:e})=>te(Se(...e.slice(0,10)),Se(...e.slice(10)).pipe(function(e,t=null){return t=null!=t?t:e,o((n,r)=>{let o=[],i=0;n.subscribe(new S(r,n=>{let s=null;i++%t==0&&o.push([]);for(const t of o)t.push(n),e<=t.length&&(s=null!=s?s:[],s.push(t));if(s)for(const e of s)u(o,e),r.next(e)},void 0,()=>{for(const e of o)r.next(e);r.complete()},()=>{o=null}))})}(10),function(...e){return dt(...e)}(i),ne(([e])=>Se(...e))))),ft(n)).subscribe(([e,{value:t}])=>{!function(e,t){e.appendChild(t)}(c,vt(e,t))}),function(e,{index$:t,query$:n}){return Ue([n.pipe(Qe("value")),t.pipe(E(({icons:e,emojis:t})=>[...Object.keys(e.data),...Object.keys(t.data)]))]).pipe(E(([{value:e},t])=>Object(ct.filter)(t,e)),ne(e=>t.pipe(E(({icons:t,emojis:n})=>({data:e.map(e=>{const r=e in t.data?t:n;return{shortcode:e,url:[r.base,r.data[e]].join("")}})})))))}(0,{query$:n,index$:t}).pipe(Oe(r),Ae(()=>r.complete()),E(t=>Object.assign({ref:e},t)))}function wt(e){const t=$e(Je.base+"/overrides/assets/javascripts/icon_search_index.json",n).pipe(ne(e=>e.json()),Ce(1));var n;const r=Be("icon-search-query",e),o=Be("icon-search-result",e),i=ut(r);return te(i,mt(o,{index$:t,query$:i}))}de(document.body,"click").subscribe(e=>{if(e.target instanceof HTMLElement){const t=e.target.closest("a[href^=http]");t instanceof HTMLLinkElement&&ga("send","event","outbound","click",t.href)}}),document$.pipe(ne(()=>te(...Ye("icon-search").map(e=>wt(e))))).subscribe()}])); +//# sourceMappingURL=bundle.0f7341a3.min.js.map \ No newline at end of file diff --git a/material/overrides/assets/javascripts/bundle.0f7341a3.min.js.map b/material/overrides/assets/javascripts/bundle.0f7341a3.min.js.map new file mode 100644 index 000000000..7a3f4cf7d --- /dev/null +++ b/material/overrides/assets/javascripts/bundle.0f7341a3.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/fuzzaldrin-plus/lib/scorer.js","webpack:///./node_modules/fuzzaldrin-plus/lib/fuzzaldrin.js","webpack:///./node_modules/fuzzaldrin-plus/lib/pathScorer.js","webpack:///./node_modules/fuzzaldrin-plus/lib/query.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/fuzzaldrin-plus/lib/filter.js","webpack:///./node_modules/fuzzaldrin-plus/lib/matcher.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isFunction.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/lift.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","webpack:///./node_modules/rxjs/dist/esm/internal/Subscription.js","webpack:///./node_modules/rxjs/dist/esm/internal/config.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/noop.js","webpack:///./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","webpack:///./node_modules/rxjs/dist/esm/internal/Subscriber.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/map.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isPromise.js","webpack:///./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","webpack:///./node_modules/rxjs/dist/esm/internal/symbol/observable.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/identity.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/pipe.js","webpack:///./node_modules/rxjs/dist/esm/internal/Observable.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isIterable.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/caughtSchedule.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/from.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/fromArray.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/argsOrArgArray.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/empty.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/args.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/merge.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/switchMap.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","webpack:///./node_modules/rxjs/dist/esm/internal/Subject.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","webpack:///./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/mapTo.js","webpack:///./src/assets/javascripts/browser/element/_/index.ts","webpack:///./node_modules/rxjs/dist/esm/internal/observable/concat.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/concatAll.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/startWith.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/of.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/never.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/finalize.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/share.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/tap.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/filter.js","webpack:///./src/assets/javascripts/browser/element/size/index.ts","webpack:///./node_modules/rxjs/dist/esm/internal/observable/defer.js","webpack:///./src/assets/javascripts/browser/element/offset/index.ts","webpack:///./src/assets/javascripts/browser/toggle/index.ts","webpack:///./src/assets/javascripts/browser/location/_/index.ts","webpack:///./src/assets/javascripts/browser/request/index.ts","webpack:///./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/distinctUntilKeyChanged.js","webpack:///./src/overrides/assets/javascripts/components/_/index.ts","webpack:///./src/assets/javascripts/_/index.ts","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/Action.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js","webpack:///./node_modules/rxjs/dist/esm/internal/Scheduler.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/async.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/take.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/delayWhen.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/ignoreElements.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/timer.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isDate.js","webpack:///./src/overrides/assets/javascripts/components/icon-search/query/index.ts","webpack:///./src/assets/javascripts/browser/element/focus/index.ts","webpack:///./node_modules/rxjs/dist/esm/internal/operators/delay.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/animationFrameProvider.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/animationFrame.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameScheduler.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameAction.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/withLatestFrom.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/zipWith.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/zip.js","webpack:///./src/assets/javascripts/utilities/h/index.ts","webpack:///./src/overrides/assets/javascripts/templates/icon-search/index.tsx","webpack:///./src/overrides/assets/javascripts/components/icon-search/result/index.ts","webpack:///./src/assets/javascripts/actions/search/result/index.ts","webpack:///./src/assets/javascripts/utilities/string/index.ts","webpack:///./node_modules/rxjs/dist/esm/internal/operators/bufferCount.js","webpack:///./src/overrides/assets/javascripts/components/icon-search/_/index.ts","webpack:///./src/overrides/assets/javascripts/integrations/analytics/index.ts","webpack:///./src/overrides/assets/javascripts/index.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","AcronymResult","computeScore","emptyAcronymResult","isAcronymFullWord","isMatch","isSeparator","isWordEnd","isWordStart","scoreAcronyms","scoreCharacter","scoreConsecutives","scoreExact","scoreExactMatch","scorePattern","scorePosition","scoreSize","score","string","query","options","preparedQuery","string_lw","allowErrors","core_lw","core_up","toLowerCase","Math","ceil","subject","query_lw","query_up","j","qj_lw","qj_up","si","length","charCodeAt","subject_lw","acro","acro_score","align","csc_diag","csc_row","csc_score","csc_should_rebuild","miss_budget","miss_left","pos","record_miss","score_diag","score_row","score_up","si_lw","start","sz","count","indexOf","Array","charCodes","max","curr_s","prev_s","len","next_s","sc","abs","quality","sameCase","end","bonus","posBonus","startOfWord","k","mi","nj","pos2","this","fullWord","sepCount","sumPos","nbAcronymInQuery","Query","defaultPathSeparator","filter","matcher","parseOptions","pathScorer","preparedQueryCache","scorer","process","platform","candidates","usePathScoring","match","_results","_i","_ref","push","apply","wrap","prepareQuery","useExtensionBonus","pathSeparator","optCharRegEx","countDir","getExtensionScore","scorePath","fullPathScore","alpha","basePathScore","basePos","depth","extAdjust","fileLength","lastIndexOf","ext","slice","path","getExtension","str","substr","candidate","startPos","endPos","maxDepth","matched","coreChars","getCharCodes","opt_char_re","truncatedUpperCase","_arg","_ref1","core","replace","upper","_len","toUpperCase","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","marker","runClearTimeout","Item","array","noop","nextTick","args","arguments","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","pluckCandidates","sortCandidates","a","b","bKey","maxInners","maxResults","scoreProvider","scoredCandidates","spotLeft","sort","map","basenameMatch","computeMatch","mergeMatches","baseMatches","matches","matchIndex","matchPos","matchPositions","output","strPos","tagClass","tagClose","tagOpen","substring","ai","bj","out","offset","backtrack","move","trace","reverse","isFunction","operate","init","source","lift","hasLift","liftedSource","err","error","TypeError","createErrorClass","createImpl","ctorFunc","instance","stack","constructor","UnsubscriptionError","_super","errors","message","toString","join","arrRemove","arr","item","index","splice","initialTeardown","closed","_parentage","_teardowns","isArray","parent","remove","teardown","execTeardown","_a","_hasParent","_addParent","includes","_removeParent","EMPTY","empty","EMPTY_SUBSCRIPTION","isSubscription","add","unsubscribe","onUnhandledError","onStoppedNotification","Promise","undefined","useDeprecatedSynchronousErrorHandling","useDeprecatedNextContext","timeoutProvider","delegate","handle","reportUnhandledError","COMPLETE_NOTIFICATION","createNotification","kind","destination","super","isStopped","EMPTY_OBSERVER","next","complete","handleStoppedNotification","nextNotification","_next","_error","_complete","observerOrNext","context","defaultErrorHandler","notification","subscriber","onNext","onError","onComplete","onUnsubscribe","project","thisArg","subscribe","__awaiter","_arguments","P","generator","resolve","reject","fulfilled","step","rejected","result","done","then","__values","iterator","__asyncValues","asyncIterator","verb","v","settle","isArrayLike","x","isPromise","observable","identity","pipeFromArray","fns","input","reduce","prev","fn","_subscribe","operator","isObserver","_trySubscribe","sink","promiseCtor","getPromiseCtor","subscription","operations","scheduleArray","scheduler","schedule","isInteropObservable","isIterable","isAsyncIterable","obj","createInvalidObservableTypeError","scheduled","sub","scheduleObservable","schedulePromise","scheduleAsyncIterable","execute","delay","caughtSchedule","return","scheduleIterable","from","innerFrom","obs","fromArrayLike","promise","asyncIterable","asyncIterable_1","asyncIterable_1_1","e_1","e_1_1","catch","iterable","mergeMap","resultSelector","concurrent","Infinity","ii","onBeforeNext","expand","innerSubScheduler","additionalTeardown","buffer","active","isComplete","checkComplete","outerNext","doInnerSub","innerValue","bufferedValue","shift","mergeInternals","mergeAll","internalFromArray","argsOrArgArray","isScheduler","last","popResultSelector","pop","popScheduler","merge","defaultValue","popNumber","sources","switchMap","innerSubscriber","innerIndex","outerIndex","ObjectUnsubscribedError","observers","hasError","thrownError","_throwIfClosed","copy","observer","_checkFinalizedStatuses","_innerSubscribe","_b","dateTimestampProvider","now","Date","bufferSize","windowTime","timestampProvider","infiniteTimeWindow","trimBuffer","adjustedBufferSize","mapOneOrManyArgs","callOrApply","nodeEventEmitterMethods","eventTargetMethods","jqueryMethods","fromEvent","target","eventName","pipe","addEventListener","removeEventListener","isEventTarget","methodName","handler","isNodeStyleEventEmitter","toCommonHandlerRegistry","isJQueryStyleEventEmitter","subTarget","mapTo","getElement","selector","node","document","querySelector","getElementOrThrow","el","ReferenceError","getActiveElement","activeElement","HTMLElement","concatAll","startWith","values","distinctUntilChanged","compare","keySelector","defaultCompare","first","of","NEVER","finalize","callback","share","connector","resetOnComplete","resetOnError","resetOnRefCountZero","connection","refCount","hasCompleted","hasErrored","reset","castSubscription","dest","conn","shareReplay","configOrBufferSize","tap","tapObserver","predicate","entry$","observableFactory","ResizeObserver","entries","entry","resize","disconnect","getElementSize","width","offsetWidth","height","offsetHeight","getElementOffset","scrollLeft","y","scrollTop","watchElementThreshold","threshold","window","watchElementOffset","visible","scrollWidth","scrollHeight","getElementContentSize","getLocation","URL","location","href","url","credentials","fetch","res","status","getPrototypeOf","objectProto","keys","getKeys","argsArgArrayOrObject","combineLatest","observables","valueTransform","maybeSchedule","hasValues","waitingForFirstValues","every","combineLatestInit","shouldComplete","distinctUntilKeyChanged","getComponentElement","type","getComponentElements","querySelectorAll","getElements","script","JSON","parse","textContent","translation","translations","base","work","state","intervalProvider","setInterval","clearInterval","pending","id","recycleAsyncId","requestAsyncId","_id","flush","_scheduler","_execute","_delay","errorValue","errored","actions","Scheduler","schedulerActionCtor","SchedulerAction","action","asyncScheduler","take","seen","delayWhen","delayDurationSelector","subscriptionDelay","timer","dueTime","intervalOrScheduler","intervalDuration","due","isNaN","mountIconSearchQuery","focus$","watchElementFocus","duration","focus","ref","animationFrameProvider","request","requestAnimationFrame","cancel","cancelAnimationFrame","timestamp","animationFrameScheduler","observeOn","withLatestFrom","inputs","otherValues","hasValue","ready","buffers","completed","sourceIndex","some","zip","appendChild","child","innerHTML","Node","h","tag","attributes","children","createElement","attr","setAttribute","renderIconSearchResult","icon","class","src","shortcode","highlight","mountIconSearchResult","index$","query$","internal$","boundary$","Boolean","meta","data","toFixed","round","setSearchResultMeta","resetSearchResultMeta","list","resetSearchResultList","startBufferEvery","toEmit","bufferCount","otherInputs","zipWith","chunk","addToSearchResultList","_el","icons","emojis","shortcodes","category","watchIconSearchResult","mountIconSearch","json","body","ev","closest","HTMLLinkElement","ga","document$"],"mappings":"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","file":"overrides/assets/javascripts/bundle.0f7341a3.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 10);\n","(function() {\n var AcronymResult, computeScore, emptyAcronymResult, isAcronymFullWord, isMatch, isSeparator, isWordEnd, isWordStart, miss_coeff, pos_bonus, scoreAcronyms, scoreCharacter, scoreConsecutives, scoreExact, scoreExactMatch, scorePattern, scorePosition, scoreSize, tau_size, wm;\n\n wm = 150;\n\n pos_bonus = 20;\n\n tau_size = 150;\n\n miss_coeff = 0.75;\n\n exports.score = function(string, query, options) {\n var allowErrors, preparedQuery, score, string_lw;\n preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return 0;\n }\n string_lw = string.toLowerCase();\n score = computeScore(string, string_lw, preparedQuery);\n return Math.ceil(score);\n };\n\n exports.isMatch = isMatch = function(subject, query_lw, query_up) {\n var i, j, m, n, qj_lw, qj_up, si;\n m = subject.length;\n n = query_lw.length;\n if (!m || n > m) {\n return false;\n }\n i = -1;\n j = -1;\n while (++j < n) {\n qj_lw = query_lw.charCodeAt(j);\n qj_up = query_up.charCodeAt(j);\n while (++i < m) {\n si = subject.charCodeAt(i);\n if (si === qj_lw || si === qj_up) {\n break;\n }\n }\n if (i === m) {\n return false;\n }\n }\n return true;\n };\n\n exports.computeScore = computeScore = function(subject, subject_lw, preparedQuery) {\n var acro, acro_score, align, csc_diag, csc_row, csc_score, csc_should_rebuild, i, j, m, miss_budget, miss_left, n, pos, query, query_lw, record_miss, score, score_diag, score_row, score_up, si_lw, start, sz;\n query = preparedQuery.query;\n query_lw = preparedQuery.query_lw;\n m = subject.length;\n n = query.length;\n acro = scoreAcronyms(subject, subject_lw, query, query_lw);\n acro_score = acro.score;\n if (acro.count === n) {\n return scoreExact(n, m, acro_score, acro.pos);\n }\n pos = subject_lw.indexOf(query_lw);\n if (pos > -1) {\n return scoreExactMatch(subject, subject_lw, query, query_lw, pos, n, m);\n }\n score_row = new Array(n);\n csc_row = new Array(n);\n sz = scoreSize(n, m);\n miss_budget = Math.ceil(miss_coeff * n) + 5;\n miss_left = miss_budget;\n csc_should_rebuild = true;\n j = -1;\n while (++j < n) {\n score_row[j] = 0;\n csc_row[j] = 0;\n }\n i = -1;\n while (++i < m) {\n si_lw = subject_lw[i];\n if (!si_lw.charCodeAt(0) in preparedQuery.charCodes) {\n if (csc_should_rebuild) {\n j = -1;\n while (++j < n) {\n csc_row[j] = 0;\n }\n csc_should_rebuild = false;\n }\n continue;\n }\n score = 0;\n score_diag = 0;\n csc_diag = 0;\n record_miss = true;\n csc_should_rebuild = true;\n j = -1;\n while (++j < n) {\n score_up = score_row[j];\n if (score_up > score) {\n score = score_up;\n }\n csc_score = 0;\n if (query_lw[j] === si_lw) {\n start = isWordStart(i, subject, subject_lw);\n csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n if (align > score) {\n score = align;\n miss_left = miss_budget;\n } else {\n if (record_miss && --miss_left <= 0) {\n return Math.max(score, score_row[n - 1]) * sz;\n }\n record_miss = false;\n }\n }\n score_diag = score_up;\n csc_diag = csc_row[j];\n csc_row[j] = csc_score;\n score_row[j] = score;\n }\n }\n score = score_row[n - 1];\n return score * sz;\n };\n\n exports.isWordStart = isWordStart = function(pos, subject, subject_lw) {\n var curr_s, prev_s;\n if (pos === 0) {\n return true;\n }\n curr_s = subject[pos];\n prev_s = subject[pos - 1];\n return isSeparator(prev_s) || (curr_s !== subject_lw[pos] && prev_s === subject_lw[pos - 1]);\n };\n\n exports.isWordEnd = isWordEnd = function(pos, subject, subject_lw, len) {\n var curr_s, next_s;\n if (pos === len - 1) {\n return true;\n }\n curr_s = subject[pos];\n next_s = subject[pos + 1];\n return isSeparator(next_s) || (curr_s === subject_lw[pos] && next_s !== subject_lw[pos + 1]);\n };\n\n isSeparator = function(c) {\n return c === ' ' || c === '.' || c === '-' || c === '_' || c === '/' || c === '\\\\';\n };\n\n scorePosition = function(pos) {\n var sc;\n if (pos < pos_bonus) {\n sc = pos_bonus - pos;\n return 100 + sc * sc;\n } else {\n return Math.max(100 + pos_bonus - pos, 0);\n }\n };\n\n exports.scoreSize = scoreSize = function(n, m) {\n return tau_size / (tau_size + Math.abs(m - n));\n };\n\n scoreExact = function(n, m, quality, pos) {\n return 2 * n * (wm * quality + scorePosition(pos)) * scoreSize(n, m);\n };\n\n exports.scorePattern = scorePattern = function(count, len, sameCase, start, end) {\n var bonus, sz;\n sz = count;\n bonus = 6;\n if (sameCase === count) {\n bonus += 2;\n }\n if (start) {\n bonus += 3;\n }\n if (end) {\n bonus += 1;\n }\n if (count === len) {\n if (start) {\n if (sameCase === len) {\n sz += 2;\n } else {\n sz += 1;\n }\n }\n if (end) {\n bonus += 1;\n }\n }\n return sameCase + sz * (sz + bonus);\n };\n\n exports.scoreCharacter = scoreCharacter = function(i, j, start, acro_score, csc_score) {\n var posBonus;\n posBonus = scorePosition(i);\n if (start) {\n return posBonus + wm * ((acro_score > csc_score ? acro_score : csc_score) + 10);\n }\n return posBonus + wm * csc_score;\n };\n\n exports.scoreConsecutives = scoreConsecutives = function(subject, subject_lw, query, query_lw, i, j, startOfWord) {\n var k, m, mi, n, nj, sameCase, sz;\n m = subject.length;\n n = query.length;\n mi = m - i;\n nj = n - j;\n k = mi < nj ? mi : nj;\n sameCase = 0;\n sz = 0;\n if (query[j] === subject[i]) {\n sameCase++;\n }\n while (++sz < k && query_lw[++j] === subject_lw[++i]) {\n if (query[j] === subject[i]) {\n sameCase++;\n }\n }\n if (sz < k) {\n i--;\n }\n if (sz === 1) {\n return 1 + 2 * sameCase;\n }\n return scorePattern(sz, n, sameCase, startOfWord, isWordEnd(i, subject, subject_lw, m));\n };\n\n exports.scoreExactMatch = scoreExactMatch = function(subject, subject_lw, query, query_lw, pos, n, m) {\n var end, i, pos2, sameCase, start;\n start = isWordStart(pos, subject, subject_lw);\n if (!start) {\n pos2 = subject_lw.indexOf(query_lw, pos + 1);\n if (pos2 > -1) {\n start = isWordStart(pos2, subject, subject_lw);\n if (start) {\n pos = pos2;\n }\n }\n }\n i = -1;\n sameCase = 0;\n while (++i < n) {\n if (query[pos + i] === subject[i]) {\n sameCase++;\n }\n }\n end = isWordEnd(pos + n - 1, subject, subject_lw, m);\n return scoreExact(n, m, scorePattern(n, n, sameCase, start, end), pos);\n };\n\n AcronymResult = (function() {\n function AcronymResult(score, pos, count) {\n this.score = score;\n this.pos = pos;\n this.count = count;\n }\n\n return AcronymResult;\n\n })();\n\n emptyAcronymResult = new AcronymResult(0, 0.1, 0);\n\n exports.scoreAcronyms = scoreAcronyms = function(subject, subject_lw, query, query_lw) {\n var count, fullWord, i, j, m, n, qj_lw, sameCase, score, sepCount, sumPos;\n m = subject.length;\n n = query.length;\n if (!(m > 1 && n > 1)) {\n return emptyAcronymResult;\n }\n count = 0;\n sepCount = 0;\n sumPos = 0;\n sameCase = 0;\n i = -1;\n j = -1;\n while (++j < n) {\n qj_lw = query_lw[j];\n if (isSeparator(qj_lw)) {\n i = subject_lw.indexOf(qj_lw, i + 1);\n if (i > -1) {\n sepCount++;\n continue;\n } else {\n break;\n }\n }\n while (++i < m) {\n if (qj_lw === subject_lw[i] && isWordStart(i, subject, subject_lw)) {\n if (query[j] === subject[i]) {\n sameCase++;\n }\n sumPos += i;\n count++;\n break;\n }\n }\n if (i === m) {\n break;\n }\n }\n if (count < 2) {\n return emptyAcronymResult;\n }\n fullWord = count === n ? isAcronymFullWord(subject, subject_lw, query, count) : false;\n score = scorePattern(count, n, sameCase, true, fullWord);\n return new AcronymResult(score, sumPos / count, count + sepCount);\n };\n\n isAcronymFullWord = function(subject, subject_lw, query, nbAcronymInQuery) {\n var count, i, m, n;\n m = subject.length;\n n = query.length;\n count = 0;\n if (m > 12 * n) {\n return false;\n }\n i = -1;\n while (++i < m) {\n if (isWordStart(i, subject, subject_lw) && ++count > nbAcronymInQuery) {\n return false;\n }\n }\n return true;\n };\n\n}).call(this);\n","(function() {\n var Query, defaultPathSeparator, filter, matcher, parseOptions, pathScorer, preparedQueryCache, scorer;\n\n filter = require('./filter');\n\n matcher = require('./matcher');\n\n scorer = require('./scorer');\n\n pathScorer = require('./pathScorer');\n\n Query = require('./query');\n\n preparedQueryCache = null;\n\n defaultPathSeparator = (typeof process !== \"undefined\" && process !== null ? process.platform : void 0) === \"win32\" ? '\\\\' : '/';\n\n module.exports = {\n filter: function(candidates, query, options) {\n if (options == null) {\n options = {};\n }\n if (!((query != null ? query.length : void 0) && (candidates != null ? candidates.length : void 0))) {\n return [];\n }\n options = parseOptions(options, query);\n return filter(candidates, query, options);\n },\n score: function(string, query, options) {\n if (options == null) {\n options = {};\n }\n if (!((string != null ? string.length : void 0) && (query != null ? query.length : void 0))) {\n return 0;\n }\n options = parseOptions(options, query);\n if (options.usePathScoring) {\n return pathScorer.score(string, query, options);\n } else {\n return scorer.score(string, query, options);\n }\n },\n match: function(string, query, options) {\n var _i, _ref, _results;\n if (options == null) {\n options = {};\n }\n if (!string) {\n return [];\n }\n if (!query) {\n return [];\n }\n if (string === query) {\n return (function() {\n _results = [];\n for (var _i = 0, _ref = string.length; 0 <= _ref ? _i < _ref : _i > _ref; 0 <= _ref ? _i++ : _i--){ _results.push(_i); }\n return _results;\n }).apply(this);\n }\n options = parseOptions(options, query);\n return matcher.match(string, query, options);\n },\n wrap: function(string, query, options) {\n if (options == null) {\n options = {};\n }\n if (!string) {\n return [];\n }\n if (!query) {\n return [];\n }\n options = parseOptions(options, query);\n return matcher.wrap(string, query, options);\n },\n prepareQuery: function(query, options) {\n if (options == null) {\n options = {};\n }\n options = parseOptions(options, query);\n return options.preparedQuery;\n }\n };\n\n parseOptions = function(options, query) {\n if (options.allowErrors == null) {\n options.allowErrors = false;\n }\n if (options.usePathScoring == null) {\n options.usePathScoring = true;\n }\n if (options.useExtensionBonus == null) {\n options.useExtensionBonus = false;\n }\n if (options.pathSeparator == null) {\n options.pathSeparator = defaultPathSeparator;\n }\n if (options.optCharRegEx == null) {\n options.optCharRegEx = null;\n }\n if (options.wrap == null) {\n options.wrap = null;\n }\n if (options.preparedQuery == null) {\n options.preparedQuery = preparedQueryCache && preparedQueryCache.query === query ? preparedQueryCache : (preparedQueryCache = new Query(query, options));\n }\n return options;\n };\n\n}).call(this);\n","(function() {\n var computeScore, countDir, file_coeff, getExtension, getExtensionScore, isMatch, scorePath, scoreSize, tau_depth, _ref;\n\n _ref = require('./scorer'), isMatch = _ref.isMatch, computeScore = _ref.computeScore, scoreSize = _ref.scoreSize;\n\n tau_depth = 20;\n\n file_coeff = 2.5;\n\n exports.score = function(string, query, options) {\n var allowErrors, preparedQuery, score, string_lw;\n preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return 0;\n }\n string_lw = string.toLowerCase();\n score = computeScore(string, string_lw, preparedQuery);\n score = scorePath(string, string_lw, score, options);\n return Math.ceil(score);\n };\n\n scorePath = function(subject, subject_lw, fullPathScore, options) {\n var alpha, basePathScore, basePos, depth, end, extAdjust, fileLength, pathSeparator, preparedQuery, useExtensionBonus;\n if (fullPathScore === 0) {\n return 0;\n }\n preparedQuery = options.preparedQuery, useExtensionBonus = options.useExtensionBonus, pathSeparator = options.pathSeparator;\n end = subject.length - 1;\n while (subject[end] === pathSeparator) {\n end--;\n }\n basePos = subject.lastIndexOf(pathSeparator, end);\n fileLength = end - basePos;\n extAdjust = 1.0;\n if (useExtensionBonus) {\n extAdjust += getExtensionScore(subject_lw, preparedQuery.ext, basePos, end, 2);\n fullPathScore *= extAdjust;\n }\n if (basePos === -1) {\n return fullPathScore;\n }\n depth = preparedQuery.depth;\n while (basePos > -1 && depth-- > 0) {\n basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n }\n basePathScore = basePos === -1 ? fullPathScore : extAdjust * computeScore(subject.slice(basePos + 1, end + 1), subject_lw.slice(basePos + 1, end + 1), preparedQuery);\n alpha = 0.5 * tau_depth / (tau_depth + countDir(subject, end + 1, pathSeparator));\n return alpha * basePathScore + (1 - alpha) * fullPathScore * scoreSize(0, file_coeff * fileLength);\n };\n\n exports.countDir = countDir = function(path, end, pathSeparator) {\n var count, i;\n if (end < 1) {\n return 0;\n }\n count = 0;\n i = -1;\n while (++i < end && path[i] === pathSeparator) {\n continue;\n }\n while (++i < end) {\n if (path[i] === pathSeparator) {\n count++;\n while (++i < end && path[i] === pathSeparator) {\n continue;\n }\n }\n }\n return count;\n };\n\n exports.getExtension = getExtension = function(str) {\n var pos;\n pos = str.lastIndexOf(\".\");\n if (pos < 0) {\n return \"\";\n } else {\n return str.substr(pos + 1);\n }\n };\n\n getExtensionScore = function(candidate, ext, startPos, endPos, maxDepth) {\n var m, matched, n, pos;\n if (!ext.length) {\n return 0;\n }\n pos = candidate.lastIndexOf(\".\", endPos);\n if (!(pos > startPos)) {\n return 0;\n }\n n = ext.length;\n m = endPos - pos;\n if (m < n) {\n n = m;\n m = ext.length;\n }\n pos++;\n matched = -1;\n while (++matched < n) {\n if (candidate[pos + matched] !== ext[matched]) {\n break;\n }\n }\n if (matched === 0 && maxDepth > 0) {\n return 0.9 * getExtensionScore(candidate, ext, startPos, pos - 2, maxDepth - 1);\n }\n return matched / m;\n };\n\n}).call(this);\n","(function() {\n var Query, coreChars, countDir, getCharCodes, getExtension, opt_char_re, truncatedUpperCase, _ref;\n\n _ref = require(\"./pathScorer\"), countDir = _ref.countDir, getExtension = _ref.getExtension;\n\n module.exports = Query = (function() {\n function Query(query, _arg) {\n var optCharRegEx, pathSeparator, _ref1;\n _ref1 = _arg != null ? _arg : {}, optCharRegEx = _ref1.optCharRegEx, pathSeparator = _ref1.pathSeparator;\n if (!(query && query.length)) {\n return null;\n }\n this.query = query;\n this.query_lw = query.toLowerCase();\n this.core = coreChars(query, optCharRegEx);\n this.core_lw = this.core.toLowerCase();\n this.core_up = truncatedUpperCase(this.core);\n this.depth = countDir(query, query.length, pathSeparator);\n this.ext = getExtension(this.query_lw);\n this.charCodes = getCharCodes(this.query_lw);\n }\n\n return Query;\n\n })();\n\n opt_char_re = /[ _\\-:\\/\\\\]/g;\n\n coreChars = function(query, optCharRegEx) {\n if (optCharRegEx == null) {\n optCharRegEx = opt_char_re;\n }\n return query.replace(optCharRegEx, '');\n };\n\n truncatedUpperCase = function(str) {\n var char, upper, _i, _len;\n upper = \"\";\n for (_i = 0, _len = str.length; _i < _len; _i++) {\n char = str[_i];\n upper += char.toUpperCase()[0];\n }\n return upper;\n };\n\n getCharCodes = function(str) {\n var charCodes, i, len;\n len = str.length;\n i = -1;\n charCodes = [];\n while (++i < len) {\n charCodes[str.charCodeAt(i)] = true;\n }\n return charCodes;\n };\n\n}).call(this);\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","(function() {\n var Query, pathScorer, pluckCandidates, scorer, sortCandidates;\n\n scorer = require('./scorer');\n\n pathScorer = require('./pathScorer');\n\n Query = require('./query');\n\n pluckCandidates = function(a) {\n return a.candidate;\n };\n\n sortCandidates = function(a, b) {\n return b.score - a.score;\n };\n\n module.exports = function(candidates, query, options) {\n var bKey, candidate, key, maxInners, maxResults, score, scoreProvider, scoredCandidates, spotLeft, string, usePathScoring, _i, _len;\n scoredCandidates = [];\n key = options.key, maxResults = options.maxResults, maxInners = options.maxInners, usePathScoring = options.usePathScoring;\n spotLeft = (maxInners != null) && maxInners > 0 ? maxInners : candidates.length + 1;\n bKey = key != null;\n scoreProvider = usePathScoring ? pathScorer : scorer;\n for (_i = 0, _len = candidates.length; _i < _len; _i++) {\n candidate = candidates[_i];\n string = bKey ? candidate[key] : candidate;\n if (!string) {\n continue;\n }\n score = scoreProvider.score(string, query, options);\n if (score > 0) {\n scoredCandidates.push({\n candidate: candidate,\n score: score\n });\n if (!--spotLeft) {\n break;\n }\n }\n }\n scoredCandidates.sort(sortCandidates);\n candidates = scoredCandidates.map(pluckCandidates);\n if (maxResults != null) {\n candidates = candidates.slice(0, maxResults);\n }\n return candidates;\n };\n\n}).call(this);\n","(function() {\n var basenameMatch, computeMatch, isMatch, isWordStart, match, mergeMatches, scoreAcronyms, scoreCharacter, scoreConsecutives, _ref;\n\n _ref = require('./scorer'), isMatch = _ref.isMatch, isWordStart = _ref.isWordStart, scoreConsecutives = _ref.scoreConsecutives, scoreCharacter = _ref.scoreCharacter, scoreAcronyms = _ref.scoreAcronyms;\n\n exports.match = match = function(string, query, options) {\n var allowErrors, baseMatches, matches, pathSeparator, preparedQuery, string_lw;\n allowErrors = options.allowErrors, preparedQuery = options.preparedQuery, pathSeparator = options.pathSeparator;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return [];\n }\n string_lw = string.toLowerCase();\n matches = computeMatch(string, string_lw, preparedQuery);\n if (matches.length === 0) {\n return matches;\n }\n if (string.indexOf(pathSeparator) > -1) {\n baseMatches = basenameMatch(string, string_lw, preparedQuery, pathSeparator);\n matches = mergeMatches(matches, baseMatches);\n }\n return matches;\n };\n\n exports.wrap = function(string, query, options) {\n var matchIndex, matchPos, matchPositions, output, strPos, tagClass, tagClose, tagOpen, _ref1;\n if ((options.wrap != null)) {\n _ref1 = options.wrap, tagClass = _ref1.tagClass, tagOpen = _ref1.tagOpen, tagClose = _ref1.tagClose;\n }\n if (tagClass == null) {\n tagClass = 'highlight';\n }\n if (tagOpen == null) {\n tagOpen = '';\n }\n if (tagClose == null) {\n tagClose = '';\n }\n if (string === query) {\n return tagOpen + string + tagClose;\n }\n matchPositions = match(string, query, options);\n if (matchPositions.length === 0) {\n return string;\n }\n output = '';\n matchIndex = -1;\n strPos = 0;\n while (++matchIndex < matchPositions.length) {\n matchPos = matchPositions[matchIndex];\n if (matchPos > strPos) {\n output += string.substring(strPos, matchPos);\n strPos = matchPos;\n }\n while (++matchIndex < matchPositions.length) {\n if (matchPositions[matchIndex] === matchPos + 1) {\n matchPos++;\n } else {\n matchIndex--;\n break;\n }\n }\n matchPos++;\n if (matchPos > strPos) {\n output += tagOpen;\n output += string.substring(strPos, matchPos);\n output += tagClose;\n strPos = matchPos;\n }\n }\n if (strPos <= string.length - 1) {\n output += string.substring(strPos);\n }\n return output;\n };\n\n basenameMatch = function(subject, subject_lw, preparedQuery, pathSeparator) {\n var basePos, depth, end;\n end = subject.length - 1;\n while (subject[end] === pathSeparator) {\n end--;\n }\n basePos = subject.lastIndexOf(pathSeparator, end);\n if (basePos === -1) {\n return [];\n }\n depth = preparedQuery.depth;\n while (depth-- > 0) {\n basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n if (basePos === -1) {\n return [];\n }\n }\n basePos++;\n end++;\n return computeMatch(subject.slice(basePos, end), subject_lw.slice(basePos, end), preparedQuery, basePos);\n };\n\n mergeMatches = function(a, b) {\n var ai, bj, i, j, m, n, out;\n m = a.length;\n n = b.length;\n if (n === 0) {\n return a.slice();\n }\n if (m === 0) {\n return b.slice();\n }\n i = -1;\n j = 0;\n bj = b[j];\n out = [];\n while (++i < m) {\n ai = a[i];\n while (bj <= ai && ++j < n) {\n if (bj < ai) {\n out.push(bj);\n }\n bj = b[j];\n }\n out.push(ai);\n }\n while (j < n) {\n out.push(b[j++]);\n }\n return out;\n };\n\n computeMatch = function(subject, subject_lw, preparedQuery, offset) {\n var DIAGONAL, LEFT, STOP, UP, acro_score, align, backtrack, csc_diag, csc_row, csc_score, i, j, m, matches, move, n, pos, query, query_lw, score, score_diag, score_row, score_up, si_lw, start, trace;\n if (offset == null) {\n offset = 0;\n }\n query = preparedQuery.query;\n query_lw = preparedQuery.query_lw;\n m = subject.length;\n n = query.length;\n acro_score = scoreAcronyms(subject, subject_lw, query, query_lw).score;\n score_row = new Array(n);\n csc_row = new Array(n);\n STOP = 0;\n UP = 1;\n LEFT = 2;\n DIAGONAL = 3;\n trace = new Array(m * n);\n pos = -1;\n j = -1;\n while (++j < n) {\n score_row[j] = 0;\n csc_row[j] = 0;\n }\n i = -1;\n while (++i < m) {\n score = 0;\n score_up = 0;\n csc_diag = 0;\n si_lw = subject_lw[i];\n j = -1;\n while (++j < n) {\n csc_score = 0;\n align = 0;\n score_diag = score_up;\n if (query_lw[j] === si_lw) {\n start = isWordStart(i, subject, subject_lw);\n csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n }\n score_up = score_row[j];\n csc_diag = csc_row[j];\n if (score > score_up) {\n move = LEFT;\n } else {\n score = score_up;\n move = UP;\n }\n if (align > score) {\n score = align;\n move = DIAGONAL;\n } else {\n csc_score = 0;\n }\n score_row[j] = score;\n csc_row[j] = csc_score;\n trace[++pos] = score > 0 ? move : STOP;\n }\n }\n i = m - 1;\n j = n - 1;\n pos = i * n + j;\n backtrack = true;\n matches = [];\n while (backtrack && i >= 0 && j >= 0) {\n switch (trace[pos]) {\n case UP:\n i--;\n pos -= n;\n break;\n case LEFT:\n j--;\n pos--;\n break;\n case DIAGONAL:\n matches.push(i + offset);\n j--;\n i--;\n pos -= n + 1;\n break;\n default:\n backtrack = false;\n }\n }\n matches.reverse();\n return matches;\n };\n\n}).call(this);\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return (source) => {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","export function createErrorClass(createImpl) {\n const _super = (instance) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subscription {\n constructor(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._teardowns = null;\n }\n unsubscribe() {\n let errors;\n if (!this.closed) {\n this.closed = true;\n const { _parentage } = this;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n }\n else {\n _parentage === null || _parentage === void 0 ? void 0 : _parentage.remove(this);\n }\n const { initialTeardown } = this;\n if (isFunction(initialTeardown)) {\n try {\n initialTeardown();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n const { _teardowns } = this;\n if (_teardowns) {\n this._teardowns = null;\n for (const teardown of _teardowns) {\n try {\n execTeardown(teardown);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n add(teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execTeardown(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._teardowns = (_a = this._teardowns) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n }\n _hasParent(parent) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n _addParent(parent) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n _removeParent(parent) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n remove(teardown) {\n const { _teardowns } = this;\n _teardowns && arrRemove(_teardowns, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\nSubscription.EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n})();\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execTeardown(teardown) {\n if (isFunction(teardown)) {\n teardown();\n }\n else {\n teardown.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export const config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","export const timeoutProvider = {\n setTimeout(...args) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) || setTimeout)(...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind,\n value,\n error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nexport class Subscriber extends Subscription {\n constructor(destination) {\n super();\n this.isStopped = false;\n if (destination) {\n this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(this);\n }\n }\n else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n static create(next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n }\n next(value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n }\n error(err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n }\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.destination.complete();\n this.unsubscribe();\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(observerOrNext, error, complete) {\n super();\n this.destination = EMPTY_OBSERVER;\n if ((observerOrNext || error || complete) && observerOrNext !== EMPTY_OBSERVER) {\n let next;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n ({ next, error, complete } = observerOrNext);\n let context;\n if (this && config.useDeprecatedNextContext) {\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n }\n else {\n context = observerOrNext;\n }\n next = next === null || next === void 0 ? void 0 : next.bind(context);\n error = error === null || error === void 0 ? void 0 : error.bind(context);\n complete = complete === null || complete === void 0 ? void 0 : complete.bind(context);\n }\n this.destination = {\n next: next || noop,\n error: error || defaultErrorHandler,\n complete: complete || noop,\n };\n }\n }\n}\nfunction defaultErrorHandler(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n reportUnhandledError(err);\n}\nfunction handleStoppedNotification(notification, subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\nexport const EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","import { Subscriber } from '../Subscriber';\nexport class OperatorSubscriber extends Subscriber {\n constructor(destination, onNext, onError, onComplete, onUnsubscribe) {\n super(destination);\n this.onUnsubscribe = onUnsubscribe;\n this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n this.destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.unsubscribe();\n }\n : super._error;\n this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n this.destination.error(err);\n }\n this.unsubscribe();\n }\n : super._complete;\n }\n unsubscribe() {\n var _a;\n !this.closed && ((_a = this.onUnsubscribe) === null || _a === void 0 ? void 0 : _a.call(this));\n super.unsubscribe();\n }\n}\n//# sourceMappingURL=OperatorSubscriber.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\nexport const $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map","export const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nexport class Observable {\n constructor(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n const { operator, source } = this;\n subscriber.add(operator\n ? operator.call(subscriber, source)\n : source || config.useDeprecatedSynchronousErrorHandling\n ? this._subscribe(subscriber)\n : this._trySubscribe(subscriber));\n return subscriber;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n sink.error(err);\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscription === null || subscription === void 0 ? void 0 : subscription.unsubscribe();\n }\n }, reject, resolve);\n });\n }\n _subscribe(subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n return operations.length ? pipeFromArray(operations)(this) : this;\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable((subscriber) => {\n let i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(`You provided ${input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`} where a stream was expected. You can provide an Observable, Promise, Array, AsyncIterable, or Iterable.`);\n}\n//# sourceMappingURL=throwUnobservableError.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n//# sourceMappingURL=scheduled.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { Observable } from '../Observable';\nexport function schedulePromise(input, scheduler) {\n return new Observable((subscriber) => {\n return scheduler.schedule(() => input.then((value) => {\n subscriber.add(scheduler.schedule(() => {\n subscriber.next(value);\n subscriber.add(scheduler.schedule(() => subscriber.complete()));\n }));\n }, (err) => {\n subscriber.add(scheduler.schedule(() => subscriber.error(err)));\n }));\n });\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const iterator = input[Symbol.asyncIterator]();\n sub.add(scheduler.schedule(function () {\n iterator.next().then(result => {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n this.schedule();\n }\n });\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { caughtSchedule } from '../util/caughtSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable((subscriber) => {\n let iterator;\n subscriber.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n caughtSchedule(subscriber, scheduler, function () {\n const { value, done } = iterator.next();\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n });\n }));\n return () => isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return();\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","export function caughtSchedule(subscriber, scheduler, execute, delay = 0) {\n const subscription = scheduler.schedule(function () {\n try {\n execute.call(this);\n }\n catch (err) {\n subscriber.error(err);\n }\n }, delay);\n subscriber.add(subscription);\n return subscription;\n}\n//# sourceMappingURL=caughtSchedule.js.map","import { __asyncValues, __awaiter } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { Observable } from '../Observable';\nimport { scheduled } from '../scheduled/scheduled';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nfunction fromInteropObservable(obj) {\n return new Observable((subscriber) => {\n const obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable((subscriber) => {\n for (let i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nfunction fromPromise(promise) {\n return new Observable((subscriber) => {\n promise\n .then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, reportUnhandledError);\n });\n}\nfunction fromIterable(iterable) {\n return new Observable((subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n while (!subscriber.closed) {\n const { done, value } = iterator.next();\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }\n return () => isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return();\n });\n}\nfunction fromAsyncIterable(asyncIterable) {\n return new Observable((subscriber) => {\n process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n });\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n for (asyncIterable_1 = __asyncValues(asyncIterable); asyncIterable_1_1 = yield asyncIterable_1.next(), !asyncIterable_1_1.done;) {\n const value = asyncIterable_1_1.value;\n subscriber.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return)) yield _a.call(asyncIterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\n//# sourceMappingURL=from.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/from';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent = Infinity) {\n if (isFunction(resultSelector)) {\n return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\nexport const flatMap = mergeMap;\n//# sourceMappingURL=mergeMap.js.map","import { innerFrom } from '../observable/from';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalTeardown) {\n let buffer = [];\n let active = 0;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n const outerNext = (value) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n const doInnerSub = (value) => {\n expand && subscriber.next(value);\n active++;\n innerFrom(project(value, index++)).subscribe(new OperatorSubscriber(subscriber, (innerValue) => {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, undefined, () => {\n active--;\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift();\n innerSubScheduler ? subscriber.add(innerSubScheduler.schedule(() => doInnerSub(bufferedValue))) : doInnerSub(bufferedValue);\n }\n checkComplete();\n }));\n };\n source.subscribe(new OperatorSubscriber(subscriber, outerNext, undefined, () => {\n isComplete = true;\n checkComplete();\n }));\n return () => {\n buffer = null;\n additionalTeardown === null || additionalTeardown === void 0 ? void 0 : additionalTeardown();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Infinity) {\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { scheduleArray } from '../scheduled/scheduleArray';\nimport { fromArrayLike } from './from';\nexport function internalFromArray(input, scheduler) {\n return scheduler ? scheduleArray(input, scheduler) : fromArrayLike(input);\n}\n//# sourceMappingURL=fromArray.js.map","const { isArray } = Array;\nexport function argsOrArgArray(args) {\n return args.length === 1 && isArray(args[0]) ? args[0] : args;\n}\n//# sourceMappingURL=argsOrArgArray.js.map","import { Observable } from '../Observable';\nexport const EMPTY = new Observable(subscriber => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n//# sourceMappingURL=empty.js.map","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n//# sourceMappingURL=isScheduler.js.map","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n//# sourceMappingURL=args.js.map","import { mergeAll } from '../operators/mergeAll';\nimport { internalFromArray } from './fromArray';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { innerFrom } from './from';\nimport { EMPTY } from './empty';\nimport { popNumber, popScheduler } from '../util/args';\nexport function merge(...args) {\n const scheduler = popScheduler(args);\n const concurrent = popNumber(args, Infinity);\n const sources = argsOrArgArray(args);\n return !sources.length\n ?\n EMPTY\n : sources.length === 1\n ?\n innerFrom(sources[0])\n :\n mergeAll(concurrent)(internalFromArray(sources, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { innerFrom } from '../observable/from';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function switchMap(project, resultSelector) {\n return operate((source, subscriber) => {\n let innerSubscriber = null;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete();\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n let innerIndex = 0;\n const outerIndex = index++;\n innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = new OperatorSubscriber(subscriber, (innerValue) => subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue), undefined, () => {\n innerSubscriber = null;\n checkComplete();\n })));\n }, undefined, () => {\n isComplete = true;\n checkComplete();\n }));\n });\n}\n//# sourceMappingURL=switchMap.js.map","import { createErrorClass } from './createErrorClass';\nexport const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subject extends Observable {\n constructor() {\n super();\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n next(value) {\n this._throwIfClosed();\n if (!this.isStopped) {\n const copy = this.observers.slice();\n for (const observer of copy) {\n observer.next(value);\n }\n }\n }\n error(err) {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n }\n complete() {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n }\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = null;\n }\n _trySubscribe(subscriber) {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n _innerSubscribe(subscriber) {\n const { hasError, isStopped, observers } = this;\n return hasError || isStopped\n ? EMPTY_SUBSCRIPTION\n : (observers.push(subscriber), new Subscription(() => arrRemove(this.observers, subscriber)));\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n }\n error(err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n }\n complete() {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n _subscribe(subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n }\n}\n//# sourceMappingURL=Subject.js.map","export const dateTimestampProvider = {\n now() {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class ReplaySubject extends Subject {\n constructor(bufferSize = Infinity, windowTime = Infinity, timestampProvider = dateTimestampProvider) {\n super();\n this.bufferSize = bufferSize;\n this.windowTime = windowTime;\n this.timestampProvider = timestampProvider;\n this.buffer = [];\n this.infiniteTimeWindow = true;\n this.infiniteTimeWindow = windowTime === Infinity;\n this.bufferSize = Math.max(1, bufferSize);\n this.windowTime = Math.max(1, windowTime);\n }\n next(value) {\n const { isStopped, buffer, infiniteTimeWindow, timestampProvider, windowTime } = this;\n if (!isStopped) {\n buffer.push(value);\n !infiniteTimeWindow && buffer.push(timestampProvider.now() + windowTime);\n }\n this.trimBuffer();\n super.next(value);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this.trimBuffer();\n const subscription = this._innerSubscribe(subscriber);\n const { infiniteTimeWindow, buffer } = this;\n const copy = buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n }\n trimBuffer() {\n const { bufferSize, timestampProvider, buffer, infiniteTimeWindow } = this;\n const adjustedBufferSize = (infiniteTimeWindow ? 1 : 2) * bufferSize;\n bufferSize < Infinity && adjustedBufferSize < buffer.length && buffer.splice(0, buffer.length - adjustedBufferSize);\n if (!infiniteTimeWindow) {\n const now = timestampProvider.now();\n let last = 0;\n for (let i = 1; i < buffer.length && buffer[i] <= now; i += 2) {\n last = i;\n }\n last && buffer.splice(0, last + 1);\n }\n }\n}\n//# sourceMappingURL=ReplaySubject.js.map","import { map } from \"../operators/map\";\nconst { isArray } = Array;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn(...args) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(args => callOrApply(fn, args));\n}\n//# sourceMappingURL=mapOneOrManyArgs.js.map","import { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { internalFromArray } from './fromArray';\nconst nodeEventEmitterMethods = ['addListener', 'removeListener'];\nconst eventTargetMethods = ['addEventListener', 'removeEventListener'];\nconst jqueryMethods = ['on', 'off'];\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector));\n }\n const [add, remove] = isEventTarget(target)\n ? eventTargetMethods.map((methodName) => (handler) => target[methodName](eventName, handler, options))\n :\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [];\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap((subTarget) => fromEvent(subTarget, eventName, options))(internalFromArray(target));\n }\n }\n return new Observable((subscriber) => {\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n const handler = (...args) => subscriber.next(1 < args.length ? args : args[0]);\n add(handler);\n return () => remove(handler);\n });\n}\nfunction toCommonHandlerRegistry(target, eventName) {\n return (methodName) => (handler) => target[methodName](eventName, handler);\n}\nfunction isNodeStyleEventEmitter(target) {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\nfunction isJQueryStyleEventEmitter(target) {\n return isFunction(target.on) && isFunction(target.off);\n}\nfunction isEventTarget(target) {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n//# sourceMappingURL=fromEvent.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function mapTo(value) {\n return operate((source, subscriber) => {\n source.subscribe(new OperatorSubscriber(subscriber, () => subscriber.next(value)));\n });\n}\n//# sourceMappingURL=mapTo.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve an element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element or nothing\n */\nexport function getElement(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T]\n\nexport function getElement(\n selector: string, node?: ParentNode\n): T | undefined\n\nexport function getElement(\n selector: string, node: ParentNode = document\n): T | undefined {\n return node.querySelector(selector) || undefined\n}\n\n/**\n * Retrieve an element matching a query selector or throw a reference error\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element\n */\nexport function getElementOrThrow(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T]\n\nexport function getElementOrThrow(\n selector: string, node?: ParentNode\n): T\n\nexport function getElementOrThrow(\n selector: string, node: ParentNode = document\n): T {\n const el = getElement(selector, node)\n if (typeof el === \"undefined\")\n throw new ReferenceError(\n `Missing element: expected \"${selector}\" to be present`\n )\n return el\n}\n\n/**\n * Retrieve the currently active element\n *\n * @returns Element or nothing\n */\nexport function getActiveElement(): HTMLElement | undefined {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement\n : undefined\n}\n\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Elements\n */\nexport function getElements(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T][]\n\nexport function getElements(\n selector: string, node?: ParentNode\n): T[]\n\nexport function getElements(\n selector: string, node: ParentNode = document\n): T[] {\n return Array.from(node.querySelectorAll(selector))\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Create an element\n *\n * @template T - Tag name type\n *\n * @param tagName - Tag name\n *\n * @returns Element\n */\nexport function createElement(\n tagName: T\n): HTMLElementTagNameMap[T] {\n return document.createElement(tagName)\n}\n\n/**\n * Replace an element with another element\n *\n * @param source - Source element\n * @param target - Target element\n */\nexport function replaceElement(\n source: HTMLElement, target: Node\n): void {\n source.replaceWith(target)\n}\n","import { concatAll } from '../operators/concatAll';\nimport { internalFromArray } from './fromArray';\nimport { popScheduler } from '../util/args';\nexport function concat(...args) {\n return concatAll()(internalFromArray(args, popScheduler(args)));\n}\n//# sourceMappingURL=concat.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith(...values) {\n const scheduler = popScheduler(values);\n return operate((source, subscriber) => {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=startWith.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n compare = compare !== null && compare !== void 0 ? compare : defaultCompare;\n return operate((source, subscriber) => {\n let prev;\n let first = true;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n ((first && ((prev = value), 1)) || !compare(prev, (prev = keySelector ? keySelector(value) : value))) &&\n subscriber.next(value);\n first = false;\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n//# sourceMappingURL=distinctUntilChanged.js.map","import { internalFromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nimport { popScheduler } from '../util/args';\nexport function of(...args) {\n const scheduler = popScheduler(args);\n return scheduler ? scheduleArray(args, scheduler) : internalFromArray(args);\n}\n//# sourceMappingURL=of.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport const NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map","import { operate } from '../util/lift';\nexport function finalize(callback) {\n return operate((source, subscriber) => {\n source.subscribe(subscriber);\n subscriber.add(callback);\n });\n}\n//# sourceMappingURL=finalize.js.map","import { Subject } from '../Subject';\nimport { from } from '../observable/from';\nimport { operate } from '../util/lift';\nexport function share(options) {\n options = options || {};\n const { connector = () => new Subject(), resetOnComplete = true, resetOnError = true, resetOnRefCountZero = true } = options;\n let connection = null;\n let subject = null;\n let refCount = 0;\n let hasCompleted = false;\n let hasErrored = false;\n const reset = () => {\n connection = subject = null;\n hasCompleted = hasErrored = false;\n };\n return operate((source, subscriber) => {\n refCount++;\n if (!subject) {\n subject = connector();\n }\n const castSubscription = subject.subscribe(subscriber);\n if (!connection) {\n connection = from(source).subscribe({\n next: (value) => subject.next(value),\n error: (err) => {\n hasErrored = true;\n const dest = subject;\n if (resetOnError) {\n reset();\n }\n dest.error(err);\n },\n complete: () => {\n hasCompleted = true;\n const dest = subject;\n if (resetOnComplete) {\n reset();\n }\n dest.complete();\n },\n });\n }\n return () => {\n refCount--;\n castSubscription.unsubscribe();\n if (!refCount && resetOnRefCountZero && !hasErrored && !hasCompleted) {\n const conn = connection;\n reset();\n conn === null || conn === void 0 ? void 0 : conn.unsubscribe();\n }\n };\n });\n}\n//# sourceMappingURL=share.js.map","import { ReplaySubject } from '../ReplaySubject';\nimport { share } from './share';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n var _a, _b;\n let bufferSize;\n let refCount = false;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n bufferSize = (_a = configOrBufferSize.bufferSize) !== null && _a !== void 0 ? _a : Infinity;\n windowTime = (_b = configOrBufferSize.windowTime) !== null && _b !== void 0 ? _b : Infinity;\n refCount = !!configOrBufferSize.refCount;\n scheduler = configOrBufferSize.scheduler;\n }\n else {\n bufferSize = configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity;\n }\n return share({\n connector: () => new ReplaySubject(bufferSize, windowTime, scheduler),\n resetOnError: true,\n resetOnComplete: false,\n resetOnRefCountZero: refCount\n });\n}\n//# sourceMappingURL=shareReplay.js.map","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n const tapObserver = isFunction(observerOrNext) || error || complete ? { next: observerOrNext, error, complete } : observerOrNext;\n return tapObserver\n ? operate((source, subscriber) => {\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, (err) => {\n var _a;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, () => {\n var _a;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }));\n })\n :\n identity;\n}\n//# sourceMappingURL=tap.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));\n });\n}\n//# sourceMappingURL=filter.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n NEVER,\n Observable,\n Subject,\n defer,\n of\n} from \"rxjs\"\nimport {\n filter,\n finalize,\n map,\n shareReplay,\n startWith,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementSize {\n width: number /* Element width */\n height: number /* Element height */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Resize observer entry subject\n */\nconst entry$ = new Subject()\n\n/**\n * Resize observer observable\n *\n * This observable will create a `ResizeObserver` on the first subscription\n * and will automatically terminate it when there are no more subscribers.\n * It's quite important to centralize observation in a single `ResizeObserver`,\n * as the performance difference can be quite dramatic, as the link shows.\n *\n * @see https://bit.ly/3iIYfEm - Google Groups on performance\n */\nconst observer$ = defer(() => of(\n new ResizeObserver(entries => {\n for (const entry of entries)\n entry$.next(entry)\n })\n))\n .pipe(\n switchMap(resize => NEVER.pipe(startWith(resize))\n .pipe(\n finalize(() => resize.disconnect())\n )\n ),\n shareReplay(1)\n )\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element size\n *\n * @param el - Element\n *\n * @returns Element size\n */\nexport function getElementSize(el: HTMLElement): ElementSize {\n return {\n width: el.offsetWidth,\n height: el.offsetHeight\n }\n}\n\n/**\n * Retrieve element content size, i.e. including overflowing content\n *\n * @param el - Element\n *\n * @returns Element size\n */\nexport function getElementContentSize(el: HTMLElement): ElementSize {\n return {\n width: el.scrollWidth,\n height: el.scrollHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element size\n *\n * This function returns an observable that subscribes to a single internal\n * instance of `ResizeObserver` upon subscription, and emit resize events until\n * termination. Note that this function should not be called with the same\n * element twice, as the first unsubscription will terminate observation.\n *\n * @param el - Element\n *\n * @returns Element size observable\n */\nexport function watchElementSize(\n el: HTMLElement\n): Observable {\n return observer$\n .pipe(\n tap(observer => observer.observe(el)),\n switchMap(observer => entry$\n .pipe(\n filter(({ target }) => target === el),\n finalize(() => observer.unobserve(el)),\n map(({ contentRect }) => ({\n width: contentRect.width,\n height: contentRect.height\n }))\n )\n ),\n startWith(getElementSize(el))\n )\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './from';\nexport function defer(observableFactory) {\n return new Observable((subscriber) => {\n innerFrom(observableFactory()).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { distinctUntilChanged, map, startWith } from \"rxjs/operators\"\n\nimport { getElementContentSize, getElementSize } from \"../size\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element offset\n *\n * @param el - Element\n *\n * @returns Element offset\n */\nexport function getElementOffset(el: HTMLElement): ElementOffset {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element offset\n *\n * @param el - Element\n *\n * @returns Element offset observable\n */\nexport function watchElementOffset(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"scroll\"),\n fromEvent(window, \"resize\")\n )\n .pipe(\n map(() => getElementOffset(el)),\n startWith(getElementOffset(el))\n )\n}\n\n/**\n * Watch element threshold\n *\n * This function returns an observable which emits whether the bottom scroll\n * offset of an elements is within a certain threshold.\n *\n * @param el - Element\n * @param threshold - Threshold\n *\n * @returns Element threshold observable\n */\nexport function watchElementThreshold(\n el: HTMLElement, threshold = 16\n): Observable {\n return watchElementOffset(el)\n .pipe(\n map(({ y }) => {\n const visible = getElementSize(el)\n const content = getElementContentSize(el)\n return y >= (\n content.height - visible.height - threshold\n )\n }),\n distinctUntilChanged()\n )\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\nimport { getElementOrThrow } from \"../element\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle\n */\nexport type Toggle =\n | \"drawer\" /* Toggle for drawer */\n | \"search\" /* Toggle for search */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle map\n */\nconst toggles: Record = {\n drawer: getElementOrThrow(\"[data-md-toggle=drawer]\"),\n search: getElementOrThrow(\"[data-md-toggle=search]\")\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the value of a toggle\n *\n * @param name - Toggle\n *\n * @returns Toggle value\n */\nexport function getToggle(name: Toggle): boolean {\n return toggles[name].checked\n}\n\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programmatically change the value of a toggle, but this\n * is a much simpler and cleaner solution which doesn't require a polyfill.\n *\n * @param name - Toggle\n * @param value - Toggle value\n */\nexport function setToggle(name: Toggle, value: boolean): void {\n if (toggles[name].checked !== value)\n toggles[name].click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch toggle\n *\n * @param name - Toggle\n *\n * @returns Toggle value observable\n */\nexport function watchToggle(name: Toggle): Observable {\n const el = toggles[name]\n return fromEvent(el, \"change\")\n .pipe(\n map(() => el.checked),\n startWith(el.checked)\n )\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { BehaviorSubject, Subject } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location\n *\n * This function will return a `URL` object (and not `Location`) in order to\n * normalize typings across the application. Furthermore, locations need to be\n * tracked without setting them and `Location` is a singleton which represents\n * the current location.\n *\n * @returns URL\n */\nexport function getLocation(): URL {\n return new URL(location.href)\n}\n\n/**\n * Set location\n *\n * @param url - URL to change to\n */\nexport function setLocation(url: URL): void {\n location.href = url.href\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location\n *\n * @returns Location subject\n */\nexport function watchLocation(): Subject {\n return new BehaviorSubject(getLocation())\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, from } from \"rxjs\"\nimport {\n filter,\n map,\n shareReplay,\n switchMap\n} from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch the given URL\n *\n * @param url - Request URL\n * @param options - Request options\n *\n * @returns Response observable\n */\nexport function request(\n url: string, options: RequestInit = { credentials: \"same-origin\" }\n): Observable {\n return from(fetch(url, options))\n .pipe(\n filter(res => res.status === 200),\n )\n}\n\n/**\n * Fetch JSON from the given URL\n *\n * @template T - Data type\n *\n * @param url - Request URL\n * @param options - Request options\n *\n * @returns Data observable\n */\nexport function requestJSON(\n url: string, options?: RequestInit\n): Observable {\n return request(url, options)\n .pipe(\n switchMap(res => res.json()),\n shareReplay(1)\n )\n}\n\n/**\n * Fetch XML from the given URL\n *\n * @param url - Request URL\n * @param options - Request options\n *\n * @returns Data observable\n */\nexport function requestXML(\n url: string, options?: RequestInit\n): Observable {\n const dom = new DOMParser()\n return request(url, options)\n .pipe(\n switchMap(res => res.text()),\n map(res => dom.parseFromString(res, \"text/xml\")),\n shareReplay(1)\n )\n}\n","const { isArray } = Array;\nconst { getPrototypeOf, prototype: objectProto, keys: getKeys } = Object;\nexport function argsArgArrayOrObject(args) {\n if (args.length === 1) {\n const first = args[0];\n if (isArray(first)) {\n return { args: first, keys: null };\n }\n if (isPOJO(first)) {\n const keys = getKeys(first);\n return {\n args: keys.map((key) => first[key]),\n keys,\n };\n }\n }\n return { args: args, keys: null };\n}\nfunction isPOJO(obj) {\n return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n//# sourceMappingURL=argsArgArrayOrObject.js.map","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { Subscriber } from '../Subscriber';\nimport { from } from './from';\nimport { identity } from '../util/identity';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { popResultSelector, popScheduler } from '../util/args';\nexport function combineLatest(...args) {\n const scheduler = popScheduler(args);\n const resultSelector = popResultSelector(args);\n const { args: observables, keys } = argsArgArrayOrObject(args);\n if (observables.length === 0) {\n return from([], scheduler);\n }\n const result = new Observable(combineLatestInit(observables, scheduler, keys\n ?\n (values) => {\n const value = {};\n for (let i = 0; i < values.length; i++) {\n value[keys[i]] = values[i];\n }\n return value;\n }\n :\n identity));\n if (resultSelector) {\n return result.pipe(mapOneOrManyArgs(resultSelector));\n }\n return result;\n}\nclass CombineLatestSubscriber extends Subscriber {\n constructor(destination, _next, shouldComplete) {\n super(destination);\n this._next = _next;\n this.shouldComplete = shouldComplete;\n }\n _complete() {\n if (this.shouldComplete()) {\n super._complete();\n }\n else {\n this.unsubscribe();\n }\n }\n}\nexport function combineLatestInit(observables, scheduler, valueTransform = identity) {\n return (subscriber) => {\n const primarySubscribe = () => {\n const { length } = observables;\n const values = new Array(length);\n let active = length;\n const hasValues = observables.map(() => false);\n let waitingForFirstValues = true;\n const emit = () => subscriber.next(valueTransform(values.slice()));\n for (let i = 0; i < length; i++) {\n const subscribe = () => {\n const source = from(observables[i], scheduler);\n source.subscribe(new CombineLatestSubscriber(subscriber, (value) => {\n values[i] = value;\n if (waitingForFirstValues) {\n hasValues[i] = true;\n waitingForFirstValues = !hasValues.every(identity);\n }\n if (!waitingForFirstValues) {\n emit();\n }\n }, () => --active === 0));\n };\n maybeSchedule(scheduler, subscribe, subscriber);\n }\n };\n maybeSchedule(scheduler, primarySubscribe, subscriber);\n };\n}\nfunction maybeSchedule(scheduler, execute, subscription) {\n if (scheduler) {\n subscription.add(scheduler.schedule(execute));\n }\n else {\n execute();\n }\n}\n//# sourceMappingURL=combineLatest.js.map","import { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged((x, y) => compare ? compare(x[key], y[key]) : x[key] === y[key]);\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElementOrThrow, getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component\n */\nexport type ComponentType =\n | \"icon-search\" /* Icon search */\n | \"icon-search-query\" /* Icon search input */\n | \"icon-search-result\" /* Icon search results */\n\n/**\n * A component\n *\n * @template T - Component type\n * @template U - Reference type\n */\nexport type Component<\n T extends {} = {},\n U extends HTMLElement = HTMLElement\n> =\n T & {\n ref: U /* Component reference */\n }\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the element for a given component or throw a reference error\n *\n * @template T - Element type\n *\n * @param type - Component type\n * @param node - Node of reference\n *\n * @returns Element\n */\nexport function getComponentElement(\n type: ComponentType, node: ParentNode = document\n): T {\n return getElementOrThrow(`[data-mdx-component=${type}]`, node)\n}\n\n/**\n * Retrieve all elements for a given component\n *\n * @template T - Element type\n *\n * @param type - Component type\n * @param node - Node of reference\n *\n * @returns Elements\n */\nexport function getComponentElements(\n type: ComponentType, node: ParentNode = document\n): T[] {\n return getElements(`[data-mdx-component=${type}]`, node)\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElementOrThrow, getLocation } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Feature flag\n */\nexport type Flag =\n | \"header.autohide\" /* Hide header */\n | \"navigation.expand\" /* Automatic expansion */\n | \"navigation.instant\" /* Instant loading */\n | \"navigation.sections\" /* Sections navigation */\n | \"navigation.tabs\" /* Tabs navigation */\n | \"toc.integrate\" /* Integrated table of contents */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Translation\n */\nexport type Translation =\n | \"clipboard.copy\" /* Copy to clipboard */\n | \"clipboard.copied\" /* Copied to clipboard */\n | \"search.config.lang\" /* Search language */\n | \"search.config.pipeline\" /* Search pipeline */\n | \"search.config.separator\" /* Search separator */\n | \"search.placeholder\" /* Search */\n | \"search.result.placeholder\" /* Type to start searching */\n | \"search.result.none\" /* No matching documents */\n | \"search.result.one\" /* 1 matching document */\n | \"search.result.other\" /* # matching documents */\n | \"search.result.more.one\" /* 1 more on this page */\n | \"search.result.more.other\" /* # more on this page */\n | \"search.result.term.missing\" /* Missing */\n\n/**\n * Translations\n */\nexport type Translations = Record\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Configuration\n */\nexport interface Config {\n base: string /* Base URL */\n features: Flag[] /* Feature flags */\n translations: Translations /* Translations */\n search: string /* Search worker URL */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve global configuration and make base URL absolute\n */\nconst script = getElementOrThrow(\"#__config\")\nconst config: Config = JSON.parse(script.textContent!)\nconfig.base = new URL(config.base, getLocation())\n .toString()\n .replace(/\\/$/, \"\")\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve global configuration\n *\n * @returns Global configuration\n */\nexport function configuration(): Config {\n return config\n}\n\n/**\n * Check whether a feature flag is enabled\n *\n * @param flag - Feature flag\n *\n * @returns Test result\n */\nexport function feature(flag: Flag): boolean {\n return config.features.includes(flag)\n}\n\n/**\n * Retrieve the translation for the given key\n *\n * @param key - Key to be translated\n * @param value - Value to be replaced\n *\n * @returns Translation\n */\nexport function translation(\n key: Translation, value?: string | number\n): string {\n return typeof value !== \"undefined\"\n ? config.translations[key].replace(\"#\", value.toString())\n : config.translations[key]\n}\n","import { Subscription } from '../Subscription';\nexport class Action extends Subscription {\n constructor(scheduler, work) {\n super();\n }\n schedule(state, delay = 0) {\n return this;\n }\n}\n//# sourceMappingURL=Action.js.map","export const intervalProvider = {\n setInterval(...args) {\n const { delegate } = intervalProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) || setInterval)(...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nexport class AsyncAction extends Action {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n schedule(state, delay = 0) {\n if (this.closed) {\n return this;\n }\n this.state = state;\n const id = this.id;\n const scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n }\n requestAsyncId(scheduler, _id, delay = 0) {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n recycleAsyncId(_scheduler, id, delay = 0) {\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n intervalProvider.clearInterval(id);\n return undefined;\n }\n execute(state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n _execute(state, _delay) {\n let errored = false;\n let errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = (!!e && e) || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n super.unsubscribe();\n }\n }\n}\n//# sourceMappingURL=AsyncAction.js.map","import { dateTimestampProvider } from \"./scheduler/dateTimestampProvider\";\nexport class Scheduler {\n constructor(schedulerActionCtor, now = Scheduler.now) {\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n schedule(work, delay = 0, state) {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\nScheduler.now = dateTimestampProvider.now;\n//# sourceMappingURL=Scheduler.js.map","import { Scheduler } from '../Scheduler';\nexport class AsyncScheduler extends Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n super(SchedulerAction, now);\n this.actions = [];\n this.active = false;\n this.scheduled = undefined;\n }\n flush(action) {\n const { actions } = this;\n if (this.active) {\n actions.push(action);\n return;\n }\n let error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n//# sourceMappingURL=AsyncScheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\nexport const async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n () => EMPTY\n : operate((source, subscriber) => {\n let seen = 0;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n//# sourceMappingURL=take.js.map","import { concat } from '../observable/concat';\nimport { take } from './take';\nimport { ignoreElements } from './ignoreElements';\nimport { mapTo } from './mapTo';\nimport { mergeMap } from './mergeMap';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return (source) => concat(subscriptionDelay.pipe(take(1), ignoreElements()), source.pipe(delayWhen(delayDurationSelector)));\n }\n return mergeMap((value, index) => delayDurationSelector(value, index).pipe(take(1), mapTo(value)));\n}\n//# sourceMappingURL=delayWhen.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nexport function ignoreElements() {\n return operate((source, subscriber) => {\n source.subscribe(new OperatorSubscriber(subscriber, noop));\n });\n}\n//# sourceMappingURL=ignoreElements.js.map","import { Observable } from '../Observable';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\nexport function timer(dueTime = 0, intervalOrScheduler, scheduler = asyncScheduler) {\n let intervalDuration = -1;\n if (intervalOrScheduler != null) {\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n }\n else {\n intervalDuration = intervalOrScheduler;\n }\n }\n return new Observable((subscriber) => {\n let due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n if (due < 0) {\n due = 0;\n }\n let n = 0;\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n subscriber.next(n++);\n if (0 <= intervalDuration) {\n this.schedule(undefined, intervalDuration);\n }\n else {\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n//# sourceMappingURL=timer.js.map","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n//# sourceMappingURL=isDate.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, combineLatest, fromEvent, merge } from \"rxjs\"\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith\n} from \"rxjs/operators\"\n\nimport { watchElementFocus } from \"~/browser\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Icon search query\n */\nexport interface IconSearchQuery {\n value: string /* Query value */\n focus: boolean /* Query focus */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount icon search query\n *\n * @param el - Icon search query element\n *\n * @returns Icon search query component observable\n */\nexport function mountIconSearchQuery(\n el: HTMLInputElement\n): Observable> {\n\n /* Intercept focus and input events */\n const focus$ = watchElementFocus(el)\n const value$ = merge(\n fromEvent(el, \"keyup\"),\n fromEvent(el, \"focus\").pipe(delay(1))\n )\n .pipe(\n map(() => el.value),\n startWith(el.value),\n distinctUntilChanged()\n )\n\n /* Combine into single observable */\n return combineLatest([value$, focus$])\n .pipe(\n map(([value, focus]) => ({ ref: el, value, focus })),\n )\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\nimport { getActiveElement } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set element focus\n *\n * @param el - Element\n * @param value - Whether the element should be focused\n */\nexport function setElementFocus(\n el: HTMLElement, value = true\n): void {\n if (value)\n el.focus()\n else\n el.blur()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element focus\n *\n * @param el - Element\n *\n * @returns Element focus observable\n */\nexport function watchElementFocus(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"focus\"),\n fromEvent(el, \"blur\")\n )\n .pipe(\n map(({ type }) => type === \"focus\"),\n startWith(el === getActiveElement())\n )\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { delayWhen } from './delayWhen';\nimport { timer } from '../observable/timer';\nexport function delay(due, scheduler = asyncScheduler) {\n const duration = timer(due, scheduler);\n return delayWhen(() => duration);\n}\n//# sourceMappingURL=delay.js.map","import { Subscription } from '../Subscription';\nexport const animationFrameProvider = {\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel === null || cancel === void 0 ? void 0 : cancel(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=animationFrameProvider.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\nexport const animationFrame = animationFrameScheduler;\n//# sourceMappingURL=animationFrame.js.map","import { AsyncScheduler } from './AsyncScheduler';\nexport class AnimationFrameScheduler extends AsyncScheduler {\n flush(action) {\n this.active = true;\n this.scheduled = undefined;\n const { actions } = this;\n let error;\n let index = -1;\n action = action || actions.shift();\n const count = actions.length;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { animationFrameProvider } from './animationFrameProvider';\nexport class AnimationFrameAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n animationFrameProvider.cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n }\n}\n//# sourceMappingURL=AnimationFrameAction.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n source.subscribe(new OperatorSubscriber(subscriber, (value) => subscriber.add(scheduler.schedule(() => subscriber.next(value), delay)), (err) => subscriber.add(scheduler.schedule(() => subscriber.error(err), delay)), () => subscriber.add(scheduler.schedule(() => subscriber.complete(), delay))));\n });\n}\n//# sourceMappingURL=observeOn.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/from';\nimport { identity } from '../util/identity';\nimport { noop } from '../util/noop';\nimport { popResultSelector } from '../util/args';\nexport function withLatestFrom(...inputs) {\n const project = popResultSelector(inputs);\n return operate((source, subscriber) => {\n const len = inputs.length;\n const otherValues = new Array(len);\n let hasValue = inputs.map(() => false);\n let ready = false;\n for (let i = 0; i < len; i++) {\n innerFrom(inputs[i]).subscribe(new OperatorSubscriber(subscriber, (value) => {\n otherValues[i] = value;\n if (!ready && !hasValue[i]) {\n hasValue[i] = true;\n (ready = hasValue.every(identity)) && (hasValue = null);\n }\n }, undefined, noop));\n }\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n if (ready) {\n const values = [value, ...otherValues];\n subscriber.next(project ? project(...values) : values);\n }\n }));\n });\n}\n//# sourceMappingURL=withLatestFrom.js.map","import { zip as zipStatic } from '../observable/zip';\nimport { operate } from '../util/lift';\nexport function zip(...sources) {\n return operate((source, subscriber) => {\n zipStatic(source, ...sources).subscribe(subscriber);\n });\n}\nexport function zipWith(...otherInputs) {\n return zip(...otherInputs);\n}\n//# sourceMappingURL=zipWith.js.map","import { Observable } from '../Observable';\nimport { innerFrom } from './from';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { EMPTY } from './empty';\nimport { OperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { popResultSelector } from '../util/args';\nexport function zip(...args) {\n const resultSelector = popResultSelector(args);\n const sources = argsOrArgArray(args);\n return sources.length\n ? new Observable((subscriber) => {\n let buffers = sources.map(() => []);\n let completed = sources.map(() => false);\n subscriber.add(() => {\n buffers = completed = null;\n });\n for (let sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) {\n innerFrom(sources[sourceIndex]).subscribe(new OperatorSubscriber(subscriber, (value) => {\n buffers[sourceIndex].push(value);\n if (buffers.every((buffer) => buffer.length)) {\n const result = buffers.map((buffer) => buffer.shift());\n subscriber.next(resultSelector ? resultSelector(...result) : result);\n if (buffers.some((buffer, i) => !buffer.length && completed[i])) {\n subscriber.complete();\n }\n }\n }, undefined, () => {\n completed[sourceIndex] = true;\n !buffers[sourceIndex].length && subscriber.complete();\n }));\n }\n return () => {\n buffers = completed = null;\n };\n })\n : EMPTY;\n}\n//# sourceMappingURL=zip.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { JSX as JSXInternal } from \"preact\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * HTML attributes\n */\ntype Attributes =\n & JSXInternal.HTMLAttributes\n & JSXInternal.SVGAttributes\n & Record\n\n/**\n * Child element\n */\ntype Child =\n | HTMLElement\n | Text\n | string\n | number\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Append a child node to an element\n *\n * @param el - Element\n * @param child - Child node(s)\n */\nfunction appendChild(el: HTMLElement, child: Child | Child[]): void {\n\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString()\n\n /* Handle nodes */\n } else if (child instanceof Node) {\n el.appendChild(child)\n\n /* Handle nested children */\n } else if (Array.isArray(child)) {\n for (const node of child)\n appendChild(el, node)\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * JSX factory\n *\n * @param tag - HTML tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @returns Element\n */\nexport function h(\n tag: string, attributes: Attributes | null, ...children: Child[]\n): HTMLElement {\n const el = document.createElement(tag)\n\n /* Set attributes, if any */\n if (attributes)\n for (const attr of Object.keys(attributes))\n if (typeof attributes[attr] !== \"boolean\")\n el.setAttribute(attr, attributes[attr])\n else if (attributes[attr])\n el.setAttribute(attr, \"\")\n\n /* Append child nodes */\n for (const child of children)\n appendChild(el, child)\n\n /* Return element */\n return el\n}\n\n/* ----------------------------------------------------------------------------\n * Namespace\n * ------------------------------------------------------------------------- */\n\nexport declare namespace h {\n namespace JSX {\n type Element = HTMLElement\n type IntrinsicElements = JSXInternal.IntrinsicElements\n }\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { wrap } from \"fuzzaldrin-plus\"\n\nimport { translation } from \"~/_\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Icon\n */\nexport interface Icon {\n shortcode: string /* Icon shortcode */\n url: string /* Icon URL */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Highlight an icon search result\n *\n * @param icon - Icon\n * @param query - Search query\n *\n * @returns Highlighted result\n */\nfunction highlight(icon: Icon, query: string) {\n return wrap(icon.shortcode, query, {\n wrap: {\n tagOpen: \"\",\n tagClose: \"\"\n }\n })\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render an icon search result\n *\n * @param icon - Icon\n * @param query - Search query\n *\n * @returns Element\n */\nexport function renderIconSearchResult(\n icon: Icon, query: string\n): HTMLElement {\n return (\n
  • \n \n \n \n \n {`:${highlight(icon, query)}:`}\n \n
  • \n )\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { filter as search } from \"fuzzaldrin-plus\"\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n combineLatest,\n merge,\n of\n} from \"rxjs\"\nimport {\n bufferCount,\n distinctUntilKeyChanged,\n filter,\n finalize,\n map,\n observeOn,\n switchMap,\n tap,\n withLatestFrom,\n zipWith\n} from \"rxjs/operators\"\n\nimport {\n addToSearchResultList,\n resetSearchResultList,\n resetSearchResultMeta,\n setSearchResultMeta\n} from \"~/actions\"\nimport {\n getElementOrThrow,\n watchElementThreshold\n} from \"~/browser\"\n\nimport { Icon, renderIconSearchResult } from \"../../../templates\"\nimport { Component } from \"../../_\"\nimport { IconSearchIndex } from \"../_\"\nimport { IconSearchQuery } from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Icon search result\n */\nexport interface IconSearchResult {\n data: Icon[] /* Search result data */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n index$: Observable /* Search index observable */\n query$: Observable /* Search query observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n index$: Observable /* Search index observable */\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch icon search result\n *\n * @param _el - Icon search result element\n * @param options - Options\n *\n * @returns Icon search result observable\n */\nexport function watchIconSearchResult(\n _el: HTMLElement, { index$, query$ }: WatchOptions\n): Observable {\n return combineLatest([\n query$.pipe(distinctUntilKeyChanged(\"value\")),\n index$\n .pipe(\n map(({ icons, emojis }) => [\n ...Object.keys(icons.data),\n ...Object.keys(emojis.data)\n ])\n )\n ])\n .pipe(\n map(([{ value }, data]) => search(data, value)),\n switchMap(shortcodes => index$.pipe(\n map(({ icons, emojis }) => ({\n data: shortcodes.map(shortcode => {\n const category =\n shortcode in icons.data\n ? icons\n : emojis\n return {\n shortcode,\n url: [\n category.base,\n category.data[shortcode]\n ].join(\"\")\n }\n })\n }))\n ))\n )\n}\n\n/**\n * Mount icon search result\n *\n * @param el - Icon search result element\n * @param options - Options\n *\n * @returns Icon search result component observable\n */\nexport function mountIconSearchResult(\n el: HTMLElement, { index$, query$ }: MountOptions\n): Observable> {\n const internal$ = new Subject()\n const boundary$ = watchElementThreshold(el)\n .pipe(\n filter(Boolean)\n )\n\n /* Update search result metadata */\n const meta = getElementOrThrow(\":scope > :first-child\", el)\n internal$\n .pipe(\n observeOn(animationFrameScheduler),\n withLatestFrom(query$)\n )\n .subscribe(([{ data }, { value }]) => {\n if (value)\n setSearchResultMeta(meta, data.length)\n else\n resetSearchResultMeta(meta)\n })\n\n /* Update icon search result list */\n const list = getElementOrThrow(\":scope > :last-child\", el)\n internal$\n .pipe(\n observeOn(animationFrameScheduler),\n tap(() => resetSearchResultList(list)),\n switchMap(({ data }) => merge(\n of(...data.slice(0, 10)),\n of(...data.slice(10))\n .pipe(\n bufferCount(10),\n zipWith(boundary$),\n switchMap(([chunk]) => of(...chunk))\n )\n )),\n withLatestFrom(query$)\n )\n .subscribe(([result, { value }]) => {\n addToSearchResultList(list, renderIconSearchResult(result, value))\n })\n\n /* Create and return component */\n return watchIconSearchResult(el, { query$, index$ })\n .pipe(\n tap(internal$),\n finalize(() => internal$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { translation } from \"~/_\"\nimport { round } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set number of search results\n *\n * @param el - Search result metadata element\n * @param value - Number of results\n */\nexport function setSearchResultMeta(\n el: HTMLElement, value: number\n): void {\n switch (value) {\n\n /* No results */\n case 0:\n el.textContent = translation(\"search.result.none\")\n break\n\n /* One result */\n case 1:\n el.textContent = translation(\"search.result.one\")\n break\n\n /* Multiple result */\n default:\n el.textContent = translation(\"search.result.other\", round(value))\n }\n}\n\n/**\n * Reset number of search results\n *\n * @param el - Search result metadata element\n */\nexport function resetSearchResultMeta(\n el: HTMLElement\n): void {\n el.textContent = translation(\"search.result.placeholder\")\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Add an element to the search result list\n *\n * @param el - Search result list element\n * @param child - Search result element\n */\nexport function addToSearchResultList(\n el: HTMLElement, child: Element\n): void {\n el.appendChild(child)\n}\n\n/**\n * Reset search result list\n *\n * @param el - Search result list element\n */\nexport function resetSearchResultList(\n el: HTMLElement\n): void {\n el.innerHTML = \"\"\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Truncate a string after the given number of characters\n *\n * This is not a very reasonable approach, since the summaries kind of suck.\n * It would be better to create something more intelligent, highlighting the\n * search occurrences and making a better summary out of it, but this note was\n * written three years ago, so who knows if we'll ever fix it.\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @returns Truncated value\n */\nexport function truncate(value: string, n: number): string {\n let i = n\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0) { /* keep eating */ }\n return `${value.substring(0, i)}...`\n }\n return value\n}\n\n/**\n * Round a number for display with repository facts\n *\n * This is a reverse-engineered version of GitHub's weird rounding algorithm\n * for stars, forks and all other numbers. While all numbers below `1,000` are\n * returned as-is, bigger numbers are converted to fixed numbers:\n *\n * - `1,049` => `1k`\n * - `1,050` => `1.1k`\n * - `1,949` => `1.9k`\n * - `1,950` => `2k`\n *\n * @param value - Original value\n *\n * @returns Rounded value\n */\nexport function round(value: number): string {\n if (value > 999) {\n const digits = +((value - 950) % 1000 > 99)\n return `${((value + 0.000001) / 1000).toFixed(digits)}k`\n } else {\n return value.toString()\n }\n}\n\n/**\n * Simple hash function\n *\n * @see https://bit.ly/2wsVjJ4 - Original source\n *\n * @param value - Value to be hashed\n *\n * @returns Hash as 32bit integer\n */\nexport function hash(value: string): number {\n let h = 0\n for (let i = 0, len = value.length; i < len; i++) {\n h = ((h << 5) - h) + value.charCodeAt(i)\n h |= 0 // Convert to 32bit integer\n }\n return h\n}\n","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { arrRemove } from '../util/arrRemove';\nexport function bufferCount(bufferSize, startBufferEvery = null) {\n startBufferEvery = startBufferEvery !== null && startBufferEvery !== void 0 ? startBufferEvery : bufferSize;\n return operate((source, subscriber) => {\n let buffers = [];\n let count = 0;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n let toEmit = null;\n if (count++ % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (const buffer of buffers) {\n buffer.push(value);\n if (bufferSize <= buffer.length) {\n toEmit = toEmit !== null && toEmit !== void 0 ? toEmit : [];\n toEmit.push(buffer);\n }\n }\n if (toEmit) {\n for (const buffer of toEmit) {\n arrRemove(buffers, buffer);\n subscriber.next(buffer);\n }\n }\n }, undefined, () => {\n for (const buffer of buffers) {\n subscriber.next(buffer);\n }\n subscriber.complete();\n }, () => {\n buffers = null;\n }));\n });\n}\n//# sourceMappingURL=bufferCount.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, merge } from \"rxjs\"\n\nimport { configuration } from \"~/_\"\nimport { requestJSON } from \"~/browser\"\n\nimport { Component, getComponentElement } from \"../../_\"\nimport {\n IconSearchQuery,\n mountIconSearchQuery\n} from \"../query\"\nimport {\n IconSearchResult,\n mountIconSearchResult\n} from \"../result\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Icon category\n */\nexport interface IconCategory {\n base: string /* Category base URL */\n data: Record /* Category data */\n}\n\n/**\n * Icon search index\n */\nexport interface IconSearchIndex {\n icons: IconCategory /* Icons */\n emojis: IconCategory /* Emojis */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Icon search\n */\nexport type IconSearch =\n | IconSearchQuery\n | IconSearchResult\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount icon search\n *\n * @param el - Icon search element\n *\n * @returns Icon search component observable\n */\nexport function mountIconSearch(\n el: HTMLElement\n): Observable> {\n const config = configuration()\n const index$ = requestJSON(\n `${config.base}/overrides/assets/javascripts/icon_search_index.json`\n )\n\n /* Retrieve nested components */\n const query = getComponentElement(\"icon-search-query\", el)\n const result = getComponentElement(\"icon-search-result\", el)\n\n /* Create and return component */\n const query$ = mountIconSearchQuery(query as HTMLInputElement)\n return merge(\n query$,\n mountIconSearchResult(result, { index$, query$ })\n )\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { fromEvent } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up extra analytics events\n */\nexport function setupAnalytics(): void {\n fromEvent(document.body, \"click\")\n .subscribe(ev => {\n if (ev.target instanceof HTMLElement) {\n const el = ev.target.closest(\"a[href^=http]\")\n if (el instanceof HTMLLinkElement)\n ga(\"send\", \"event\", \"outbound\", \"click\", el.href)\n }\n })\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, merge } from \"rxjs\"\nimport { switchMap } from \"rxjs/operators\"\n\nimport {\n getComponentElements,\n mountIconSearch\n} from \"./components\"\nimport { setupAnalytics } from \"./integrations\"\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Set up extra analytics events */\nsetupAnalytics()\n\n/* Set up extra component observables */\ndeclare const document$: Observable\ndocument$\n .pipe(\n switchMap(() => merge(\n\n /* Icon search */\n ...getComponentElements(\"icon-search\")\n .map(el => mountIconSearch(el))\n ))\n )\n .subscribe()\n"],"sourceRoot":""} \ No newline at end of file diff --git a/material/overrides/assets/javascripts/bundle.f4aeaef7.min.js.map b/material/overrides/assets/javascripts/bundle.f4aeaef7.min.js.map deleted file mode 100644 index e0474fe38..000000000 --- a/material/overrides/assets/javascripts/bundle.f4aeaef7.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/fuzzaldrin-plus/lib/scorer.js","webpack:///./node_modules/fuzzaldrin-plus/lib/fuzzaldrin.js","webpack:///./node_modules/fuzzaldrin-plus/lib/pathScorer.js","webpack:///./node_modules/fuzzaldrin-plus/lib/query.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/fuzzaldrin-plus/lib/filter.js","webpack:///./node_modules/fuzzaldrin-plus/lib/matcher.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isFunction.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/lift.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","webpack:///./node_modules/rxjs/dist/esm/internal/Subscription.js","webpack:///./node_modules/rxjs/dist/esm/internal/config.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/noop.js","webpack:///./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","webpack:///./node_modules/rxjs/dist/esm/internal/Subscriber.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/map.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isPromise.js","webpack:///./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","webpack:///./node_modules/rxjs/dist/esm/internal/symbol/observable.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/identity.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/pipe.js","webpack:///./node_modules/rxjs/dist/esm/internal/Observable.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isIterable.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/caughtSchedule.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/from.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/fromArray.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/argsOrArgArray.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/empty.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/args.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/merge.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/switchMap.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","webpack:///./node_modules/rxjs/dist/esm/internal/Subject.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","webpack:///./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/mapTo.js","webpack:///./src/assets/javascripts/browser/element/_/index.ts","webpack:///./node_modules/rxjs/dist/esm/internal/observable/concat.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/concatAll.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/startWith.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/of.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/never.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/finalize.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/share.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/tap.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/filter.js","webpack:///./src/assets/javascripts/browser/element/size/index.ts","webpack:///./node_modules/rxjs/dist/esm/internal/observable/defer.js","webpack:///./src/assets/javascripts/browser/element/offset/index.ts","webpack:///./src/assets/javascripts/browser/toggle/index.ts","webpack:///./src/assets/javascripts/browser/location/_/index.ts","webpack:///./src/assets/javascripts/browser/request/index.ts","webpack:///./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/distinctUntilKeyChanged.js","webpack:///./src/overrides/assets/javascripts/components/_/index.ts","webpack:///./src/assets/javascripts/_/index.ts","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/Action.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js","webpack:///./node_modules/rxjs/dist/esm/internal/Scheduler.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/async.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/take.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/delayWhen.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/ignoreElements.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/timer.js","webpack:///./node_modules/rxjs/dist/esm/internal/util/isDate.js","webpack:///./src/overrides/assets/javascripts/components/icon-search/query/index.ts","webpack:///./src/assets/javascripts/browser/element/focus/index.ts","webpack:///./node_modules/rxjs/dist/esm/internal/operators/delay.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/animationFrameProvider.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/animationFrame.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameScheduler.js","webpack:///./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameAction.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/withLatestFrom.js","webpack:///./node_modules/rxjs/dist/esm/internal/operators/zipWith.js","webpack:///./node_modules/rxjs/dist/esm/internal/observable/zip.js","webpack:///./src/assets/javascripts/utilities/h/index.ts","webpack:///./src/overrides/assets/javascripts/templates/icon-search/index.tsx","webpack:///./src/overrides/assets/javascripts/components/icon-search/result/index.ts","webpack:///./src/assets/javascripts/actions/search/result/index.ts","webpack:///./src/assets/javascripts/utilities/string/index.ts","webpack:///./node_modules/rxjs/dist/esm/internal/operators/bufferCount.js","webpack:///./src/overrides/assets/javascripts/components/icon-search/_/index.ts","webpack:///./src/overrides/assets/javascripts/integrations/analytics/index.ts","webpack:///./src/overrides/assets/javascripts/index.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","AcronymResult","computeScore","emptyAcronymResult","isAcronymFullWord","isMatch","isSeparator","isWordEnd","isWordStart","scoreAcronyms","scoreCharacter","scoreConsecutives","scoreExact","scoreExactMatch","scorePattern","scorePosition","scoreSize","score","string","query","options","preparedQuery","string_lw","allowErrors","core_lw","core_up","toLowerCase","Math","ceil","subject","query_lw","query_up","j","qj_lw","qj_up","si","length","charCodeAt","subject_lw","acro","acro_score","align","csc_diag","csc_row","csc_score","csc_should_rebuild","miss_budget","miss_left","pos","record_miss","score_diag","score_row","score_up","si_lw","start","sz","count","indexOf","Array","charCodes","max","curr_s","prev_s","len","next_s","sc","abs","quality","sameCase","end","bonus","posBonus","startOfWord","k","mi","nj","pos2","this","fullWord","sepCount","sumPos","nbAcronymInQuery","Query","defaultPathSeparator","filter","matcher","parseOptions","pathScorer","preparedQueryCache","scorer","process","platform","candidates","usePathScoring","match","_results","_i","_ref","push","apply","wrap","prepareQuery","useExtensionBonus","pathSeparator","optCharRegEx","countDir","getExtensionScore","scorePath","fullPathScore","alpha","basePathScore","basePos","depth","extAdjust","fileLength","lastIndexOf","ext","slice","path","getExtension","str","substr","candidate","startPos","endPos","maxDepth","matched","coreChars","getCharCodes","opt_char_re","truncatedUpperCase","_arg","_ref1","core","replace","upper","_len","toUpperCase","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","marker","runClearTimeout","Item","array","noop","nextTick","args","arguments","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","pluckCandidates","sortCandidates","a","b","bKey","maxInners","maxResults","scoreProvider","scoredCandidates","spotLeft","sort","map","basenameMatch","computeMatch","mergeMatches","baseMatches","matches","matchIndex","matchPos","matchPositions","output","strPos","tagClass","tagClose","tagOpen","substring","ai","bj","out","offset","backtrack","move","trace","reverse","isFunction","operate","init","source","lift","hasLift","liftedSource","err","error","TypeError","createErrorClass","createImpl","ctorFunc","instance","stack","constructor","UnsubscriptionError","_super","errors","message","toString","join","arrRemove","arr","item","index","splice","initialTeardown","closed","_parentage","_teardowns","isArray","parent","remove","teardown","execTeardown","_a","_hasParent","_addParent","includes","_removeParent","EMPTY","empty","EMPTY_SUBSCRIPTION","isSubscription","add","unsubscribe","onUnhandledError","onStoppedNotification","Promise","undefined","useDeprecatedSynchronousErrorHandling","useDeprecatedNextContext","timeoutProvider","delegate","handle","reportUnhandledError","COMPLETE_NOTIFICATION","createNotification","kind","destination","super","isStopped","EMPTY_OBSERVER","next","complete","handleStoppedNotification","nextNotification","_next","_error","_complete","observerOrNext","context","defaultErrorHandler","notification","subscriber","onNext","onError","onComplete","onUnsubscribe","project","thisArg","subscribe","__awaiter","_arguments","P","generator","resolve","reject","fulfilled","step","rejected","result","done","then","__values","iterator","__asyncValues","asyncIterator","verb","v","settle","isArrayLike","x","isPromise","observable","identity","pipeFromArray","fns","input","reduce","prev","fn","_subscribe","operator","isObserver","_trySubscribe","sink","promiseCtor","getPromiseCtor","subscription","operations","scheduleArray","scheduler","schedule","isInteropObservable","isIterable","isAsyncIterable","obj","createInvalidObservableTypeError","scheduled","sub","scheduleObservable","schedulePromise","scheduleAsyncIterable","execute","delay","caughtSchedule","return","scheduleIterable","from","innerFrom","obs","fromArrayLike","promise","asyncIterable","asyncIterable_1","asyncIterable_1_1","e_1","e_1_1","catch","iterable","mergeMap","resultSelector","concurrent","Infinity","ii","onBeforeNext","expand","innerSubScheduler","additionalTeardown","buffer","active","isComplete","checkComplete","outerNext","doInnerSub","innerValue","bufferedValue","shift","mergeInternals","mergeAll","internalFromArray","argsOrArgArray","isScheduler","last","popResultSelector","pop","popScheduler","merge","defaultValue","popNumber","sources","switchMap","innerSubscriber","innerIndex","outerIndex","ObjectUnsubscribedError","observers","hasError","thrownError","_throwIfClosed","copy","observer","_checkFinalizedStatuses","_innerSubscribe","_b","dateTimestampProvider","now","Date","bufferSize","windowTime","timestampProvider","infiniteTimeWindow","trimBuffer","adjustedBufferSize","mapOneOrManyArgs","callOrApply","nodeEventEmitterMethods","eventTargetMethods","jqueryMethods","fromEvent","target","eventName","pipe","addEventListener","removeEventListener","isEventTarget","methodName","handler","isNodeStyleEventEmitter","toCommonHandlerRegistry","isJQueryStyleEventEmitter","subTarget","mapTo","getElement","selector","node","document","querySelector","getElementOrThrow","el","ReferenceError","getActiveElement","activeElement","HTMLElement","concatAll","startWith","values","distinctUntilChanged","compare","keySelector","defaultCompare","first","of","NEVER","finalize","callback","share","connector","resetOnComplete","resetOnError","resetOnRefCountZero","connection","refCount","hasCompleted","hasErrored","reset","castSubscription","dest","conn","shareReplay","configOrBufferSize","tap","tapObserver","predicate","entry$","observableFactory","ResizeObserver","entries","entry","resize","disconnect","getElementSize","width","offsetWidth","height","offsetHeight","getElementOffset","scrollLeft","y","scrollTop","watchElementThreshold","threshold","window","watchElementOffset","visible","scrollWidth","scrollHeight","getElementContentSize","getLocation","URL","location","href","url","credentials","fetch","res","status","getPrototypeOf","objectProto","keys","getKeys","argsArgArrayOrObject","combineLatest","observables","valueTransform","maybeSchedule","hasValues","waitingForFirstValues","every","combineLatestInit","shouldComplete","distinctUntilKeyChanged","getComponentElement","type","getComponentElements","querySelectorAll","getElements","script","JSON","parse","textContent","translation","translations","base","work","state","intervalProvider","setInterval","clearInterval","pending","id","recycleAsyncId","requestAsyncId","_id","flush","_scheduler","_execute","_delay","errorValue","errored","actions","Scheduler","schedulerActionCtor","SchedulerAction","action","asyncScheduler","take","seen","delayWhen","delayDurationSelector","subscriptionDelay","timer","dueTime","intervalOrScheduler","intervalDuration","due","isNaN","mountIconSearchQuery","focus$","watchElementFocus","duration","focus","ref","animationFrameProvider","request","requestAnimationFrame","cancel","cancelAnimationFrame","timestamp","animationFrameScheduler","observeOn","withLatestFrom","inputs","otherValues","hasValue","ready","buffers","completed","sourceIndex","some","zip","appendChild","child","innerHTML","Node","h","tag","attributes","children","createElement","attr","setAttribute","renderIconSearchResult","icon","class","src","shortcode","highlight","mountIconSearchResult","index$","query$","internal$","boundary$","Boolean","meta","data","toFixed","round","setSearchResultMeta","resetSearchResultMeta","list","resetSearchResultList","startBufferEvery","toEmit","bufferCount","otherInputs","zipWith","chunk","addToSearchResultList","icons","emojis","mountIconSearch","json","body","ev","closest","HTMLLinkElement","ga","document$"],"mappings":"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","file":"overrides/assets/javascripts/bundle.f4aeaef7.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 10);\n","(function() {\n var AcronymResult, computeScore, emptyAcronymResult, isAcronymFullWord, isMatch, isSeparator, isWordEnd, isWordStart, miss_coeff, pos_bonus, scoreAcronyms, scoreCharacter, scoreConsecutives, scoreExact, scoreExactMatch, scorePattern, scorePosition, scoreSize, tau_size, wm;\n\n wm = 150;\n\n pos_bonus = 20;\n\n tau_size = 150;\n\n miss_coeff = 0.75;\n\n exports.score = function(string, query, options) {\n var allowErrors, preparedQuery, score, string_lw;\n preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return 0;\n }\n string_lw = string.toLowerCase();\n score = computeScore(string, string_lw, preparedQuery);\n return Math.ceil(score);\n };\n\n exports.isMatch = isMatch = function(subject, query_lw, query_up) {\n var i, j, m, n, qj_lw, qj_up, si;\n m = subject.length;\n n = query_lw.length;\n if (!m || n > m) {\n return false;\n }\n i = -1;\n j = -1;\n while (++j < n) {\n qj_lw = query_lw.charCodeAt(j);\n qj_up = query_up.charCodeAt(j);\n while (++i < m) {\n si = subject.charCodeAt(i);\n if (si === qj_lw || si === qj_up) {\n break;\n }\n }\n if (i === m) {\n return false;\n }\n }\n return true;\n };\n\n exports.computeScore = computeScore = function(subject, subject_lw, preparedQuery) {\n var acro, acro_score, align, csc_diag, csc_row, csc_score, csc_should_rebuild, i, j, m, miss_budget, miss_left, n, pos, query, query_lw, record_miss, score, score_diag, score_row, score_up, si_lw, start, sz;\n query = preparedQuery.query;\n query_lw = preparedQuery.query_lw;\n m = subject.length;\n n = query.length;\n acro = scoreAcronyms(subject, subject_lw, query, query_lw);\n acro_score = acro.score;\n if (acro.count === n) {\n return scoreExact(n, m, acro_score, acro.pos);\n }\n pos = subject_lw.indexOf(query_lw);\n if (pos > -1) {\n return scoreExactMatch(subject, subject_lw, query, query_lw, pos, n, m);\n }\n score_row = new Array(n);\n csc_row = new Array(n);\n sz = scoreSize(n, m);\n miss_budget = Math.ceil(miss_coeff * n) + 5;\n miss_left = miss_budget;\n csc_should_rebuild = true;\n j = -1;\n while (++j < n) {\n score_row[j] = 0;\n csc_row[j] = 0;\n }\n i = -1;\n while (++i < m) {\n si_lw = subject_lw[i];\n if (!si_lw.charCodeAt(0) in preparedQuery.charCodes) {\n if (csc_should_rebuild) {\n j = -1;\n while (++j < n) {\n csc_row[j] = 0;\n }\n csc_should_rebuild = false;\n }\n continue;\n }\n score = 0;\n score_diag = 0;\n csc_diag = 0;\n record_miss = true;\n csc_should_rebuild = true;\n j = -1;\n while (++j < n) {\n score_up = score_row[j];\n if (score_up > score) {\n score = score_up;\n }\n csc_score = 0;\n if (query_lw[j] === si_lw) {\n start = isWordStart(i, subject, subject_lw);\n csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n if (align > score) {\n score = align;\n miss_left = miss_budget;\n } else {\n if (record_miss && --miss_left <= 0) {\n return Math.max(score, score_row[n - 1]) * sz;\n }\n record_miss = false;\n }\n }\n score_diag = score_up;\n csc_diag = csc_row[j];\n csc_row[j] = csc_score;\n score_row[j] = score;\n }\n }\n score = score_row[n - 1];\n return score * sz;\n };\n\n exports.isWordStart = isWordStart = function(pos, subject, subject_lw) {\n var curr_s, prev_s;\n if (pos === 0) {\n return true;\n }\n curr_s = subject[pos];\n prev_s = subject[pos - 1];\n return isSeparator(prev_s) || (curr_s !== subject_lw[pos] && prev_s === subject_lw[pos - 1]);\n };\n\n exports.isWordEnd = isWordEnd = function(pos, subject, subject_lw, len) {\n var curr_s, next_s;\n if (pos === len - 1) {\n return true;\n }\n curr_s = subject[pos];\n next_s = subject[pos + 1];\n return isSeparator(next_s) || (curr_s === subject_lw[pos] && next_s !== subject_lw[pos + 1]);\n };\n\n isSeparator = function(c) {\n return c === ' ' || c === '.' || c === '-' || c === '_' || c === '/' || c === '\\\\';\n };\n\n scorePosition = function(pos) {\n var sc;\n if (pos < pos_bonus) {\n sc = pos_bonus - pos;\n return 100 + sc * sc;\n } else {\n return Math.max(100 + pos_bonus - pos, 0);\n }\n };\n\n exports.scoreSize = scoreSize = function(n, m) {\n return tau_size / (tau_size + Math.abs(m - n));\n };\n\n scoreExact = function(n, m, quality, pos) {\n return 2 * n * (wm * quality + scorePosition(pos)) * scoreSize(n, m);\n };\n\n exports.scorePattern = scorePattern = function(count, len, sameCase, start, end) {\n var bonus, sz;\n sz = count;\n bonus = 6;\n if (sameCase === count) {\n bonus += 2;\n }\n if (start) {\n bonus += 3;\n }\n if (end) {\n bonus += 1;\n }\n if (count === len) {\n if (start) {\n if (sameCase === len) {\n sz += 2;\n } else {\n sz += 1;\n }\n }\n if (end) {\n bonus += 1;\n }\n }\n return sameCase + sz * (sz + bonus);\n };\n\n exports.scoreCharacter = scoreCharacter = function(i, j, start, acro_score, csc_score) {\n var posBonus;\n posBonus = scorePosition(i);\n if (start) {\n return posBonus + wm * ((acro_score > csc_score ? acro_score : csc_score) + 10);\n }\n return posBonus + wm * csc_score;\n };\n\n exports.scoreConsecutives = scoreConsecutives = function(subject, subject_lw, query, query_lw, i, j, startOfWord) {\n var k, m, mi, n, nj, sameCase, sz;\n m = subject.length;\n n = query.length;\n mi = m - i;\n nj = n - j;\n k = mi < nj ? mi : nj;\n sameCase = 0;\n sz = 0;\n if (query[j] === subject[i]) {\n sameCase++;\n }\n while (++sz < k && query_lw[++j] === subject_lw[++i]) {\n if (query[j] === subject[i]) {\n sameCase++;\n }\n }\n if (sz < k) {\n i--;\n }\n if (sz === 1) {\n return 1 + 2 * sameCase;\n }\n return scorePattern(sz, n, sameCase, startOfWord, isWordEnd(i, subject, subject_lw, m));\n };\n\n exports.scoreExactMatch = scoreExactMatch = function(subject, subject_lw, query, query_lw, pos, n, m) {\n var end, i, pos2, sameCase, start;\n start = isWordStart(pos, subject, subject_lw);\n if (!start) {\n pos2 = subject_lw.indexOf(query_lw, pos + 1);\n if (pos2 > -1) {\n start = isWordStart(pos2, subject, subject_lw);\n if (start) {\n pos = pos2;\n }\n }\n }\n i = -1;\n sameCase = 0;\n while (++i < n) {\n if (query[pos + i] === subject[i]) {\n sameCase++;\n }\n }\n end = isWordEnd(pos + n - 1, subject, subject_lw, m);\n return scoreExact(n, m, scorePattern(n, n, sameCase, start, end), pos);\n };\n\n AcronymResult = (function() {\n function AcronymResult(score, pos, count) {\n this.score = score;\n this.pos = pos;\n this.count = count;\n }\n\n return AcronymResult;\n\n })();\n\n emptyAcronymResult = new AcronymResult(0, 0.1, 0);\n\n exports.scoreAcronyms = scoreAcronyms = function(subject, subject_lw, query, query_lw) {\n var count, fullWord, i, j, m, n, qj_lw, sameCase, score, sepCount, sumPos;\n m = subject.length;\n n = query.length;\n if (!(m > 1 && n > 1)) {\n return emptyAcronymResult;\n }\n count = 0;\n sepCount = 0;\n sumPos = 0;\n sameCase = 0;\n i = -1;\n j = -1;\n while (++j < n) {\n qj_lw = query_lw[j];\n if (isSeparator(qj_lw)) {\n i = subject_lw.indexOf(qj_lw, i + 1);\n if (i > -1) {\n sepCount++;\n continue;\n } else {\n break;\n }\n }\n while (++i < m) {\n if (qj_lw === subject_lw[i] && isWordStart(i, subject, subject_lw)) {\n if (query[j] === subject[i]) {\n sameCase++;\n }\n sumPos += i;\n count++;\n break;\n }\n }\n if (i === m) {\n break;\n }\n }\n if (count < 2) {\n return emptyAcronymResult;\n }\n fullWord = count === n ? isAcronymFullWord(subject, subject_lw, query, count) : false;\n score = scorePattern(count, n, sameCase, true, fullWord);\n return new AcronymResult(score, sumPos / count, count + sepCount);\n };\n\n isAcronymFullWord = function(subject, subject_lw, query, nbAcronymInQuery) {\n var count, i, m, n;\n m = subject.length;\n n = query.length;\n count = 0;\n if (m > 12 * n) {\n return false;\n }\n i = -1;\n while (++i < m) {\n if (isWordStart(i, subject, subject_lw) && ++count > nbAcronymInQuery) {\n return false;\n }\n }\n return true;\n };\n\n}).call(this);\n","(function() {\n var Query, defaultPathSeparator, filter, matcher, parseOptions, pathScorer, preparedQueryCache, scorer;\n\n filter = require('./filter');\n\n matcher = require('./matcher');\n\n scorer = require('./scorer');\n\n pathScorer = require('./pathScorer');\n\n Query = require('./query');\n\n preparedQueryCache = null;\n\n defaultPathSeparator = (typeof process !== \"undefined\" && process !== null ? process.platform : void 0) === \"win32\" ? '\\\\' : '/';\n\n module.exports = {\n filter: function(candidates, query, options) {\n if (options == null) {\n options = {};\n }\n if (!((query != null ? query.length : void 0) && (candidates != null ? candidates.length : void 0))) {\n return [];\n }\n options = parseOptions(options, query);\n return filter(candidates, query, options);\n },\n score: function(string, query, options) {\n if (options == null) {\n options = {};\n }\n if (!((string != null ? string.length : void 0) && (query != null ? query.length : void 0))) {\n return 0;\n }\n options = parseOptions(options, query);\n if (options.usePathScoring) {\n return pathScorer.score(string, query, options);\n } else {\n return scorer.score(string, query, options);\n }\n },\n match: function(string, query, options) {\n var _i, _ref, _results;\n if (options == null) {\n options = {};\n }\n if (!string) {\n return [];\n }\n if (!query) {\n return [];\n }\n if (string === query) {\n return (function() {\n _results = [];\n for (var _i = 0, _ref = string.length; 0 <= _ref ? _i < _ref : _i > _ref; 0 <= _ref ? _i++ : _i--){ _results.push(_i); }\n return _results;\n }).apply(this);\n }\n options = parseOptions(options, query);\n return matcher.match(string, query, options);\n },\n wrap: function(string, query, options) {\n if (options == null) {\n options = {};\n }\n if (!string) {\n return [];\n }\n if (!query) {\n return [];\n }\n options = parseOptions(options, query);\n return matcher.wrap(string, query, options);\n },\n prepareQuery: function(query, options) {\n if (options == null) {\n options = {};\n }\n options = parseOptions(options, query);\n return options.preparedQuery;\n }\n };\n\n parseOptions = function(options, query) {\n if (options.allowErrors == null) {\n options.allowErrors = false;\n }\n if (options.usePathScoring == null) {\n options.usePathScoring = true;\n }\n if (options.useExtensionBonus == null) {\n options.useExtensionBonus = false;\n }\n if (options.pathSeparator == null) {\n options.pathSeparator = defaultPathSeparator;\n }\n if (options.optCharRegEx == null) {\n options.optCharRegEx = null;\n }\n if (options.wrap == null) {\n options.wrap = null;\n }\n if (options.preparedQuery == null) {\n options.preparedQuery = preparedQueryCache && preparedQueryCache.query === query ? preparedQueryCache : (preparedQueryCache = new Query(query, options));\n }\n return options;\n };\n\n}).call(this);\n","(function() {\n var computeScore, countDir, file_coeff, getExtension, getExtensionScore, isMatch, scorePath, scoreSize, tau_depth, _ref;\n\n _ref = require('./scorer'), isMatch = _ref.isMatch, computeScore = _ref.computeScore, scoreSize = _ref.scoreSize;\n\n tau_depth = 20;\n\n file_coeff = 2.5;\n\n exports.score = function(string, query, options) {\n var allowErrors, preparedQuery, score, string_lw;\n preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return 0;\n }\n string_lw = string.toLowerCase();\n score = computeScore(string, string_lw, preparedQuery);\n score = scorePath(string, string_lw, score, options);\n return Math.ceil(score);\n };\n\n scorePath = function(subject, subject_lw, fullPathScore, options) {\n var alpha, basePathScore, basePos, depth, end, extAdjust, fileLength, pathSeparator, preparedQuery, useExtensionBonus;\n if (fullPathScore === 0) {\n return 0;\n }\n preparedQuery = options.preparedQuery, useExtensionBonus = options.useExtensionBonus, pathSeparator = options.pathSeparator;\n end = subject.length - 1;\n while (subject[end] === pathSeparator) {\n end--;\n }\n basePos = subject.lastIndexOf(pathSeparator, end);\n fileLength = end - basePos;\n extAdjust = 1.0;\n if (useExtensionBonus) {\n extAdjust += getExtensionScore(subject_lw, preparedQuery.ext, basePos, end, 2);\n fullPathScore *= extAdjust;\n }\n if (basePos === -1) {\n return fullPathScore;\n }\n depth = preparedQuery.depth;\n while (basePos > -1 && depth-- > 0) {\n basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n }\n basePathScore = basePos === -1 ? fullPathScore : extAdjust * computeScore(subject.slice(basePos + 1, end + 1), subject_lw.slice(basePos + 1, end + 1), preparedQuery);\n alpha = 0.5 * tau_depth / (tau_depth + countDir(subject, end + 1, pathSeparator));\n return alpha * basePathScore + (1 - alpha) * fullPathScore * scoreSize(0, file_coeff * fileLength);\n };\n\n exports.countDir = countDir = function(path, end, pathSeparator) {\n var count, i;\n if (end < 1) {\n return 0;\n }\n count = 0;\n i = -1;\n while (++i < end && path[i] === pathSeparator) {\n continue;\n }\n while (++i < end) {\n if (path[i] === pathSeparator) {\n count++;\n while (++i < end && path[i] === pathSeparator) {\n continue;\n }\n }\n }\n return count;\n };\n\n exports.getExtension = getExtension = function(str) {\n var pos;\n pos = str.lastIndexOf(\".\");\n if (pos < 0) {\n return \"\";\n } else {\n return str.substr(pos + 1);\n }\n };\n\n getExtensionScore = function(candidate, ext, startPos, endPos, maxDepth) {\n var m, matched, n, pos;\n if (!ext.length) {\n return 0;\n }\n pos = candidate.lastIndexOf(\".\", endPos);\n if (!(pos > startPos)) {\n return 0;\n }\n n = ext.length;\n m = endPos - pos;\n if (m < n) {\n n = m;\n m = ext.length;\n }\n pos++;\n matched = -1;\n while (++matched < n) {\n if (candidate[pos + matched] !== ext[matched]) {\n break;\n }\n }\n if (matched === 0 && maxDepth > 0) {\n return 0.9 * getExtensionScore(candidate, ext, startPos, pos - 2, maxDepth - 1);\n }\n return matched / m;\n };\n\n}).call(this);\n","(function() {\n var Query, coreChars, countDir, getCharCodes, getExtension, opt_char_re, truncatedUpperCase, _ref;\n\n _ref = require(\"./pathScorer\"), countDir = _ref.countDir, getExtension = _ref.getExtension;\n\n module.exports = Query = (function() {\n function Query(query, _arg) {\n var optCharRegEx, pathSeparator, _ref1;\n _ref1 = _arg != null ? _arg : {}, optCharRegEx = _ref1.optCharRegEx, pathSeparator = _ref1.pathSeparator;\n if (!(query && query.length)) {\n return null;\n }\n this.query = query;\n this.query_lw = query.toLowerCase();\n this.core = coreChars(query, optCharRegEx);\n this.core_lw = this.core.toLowerCase();\n this.core_up = truncatedUpperCase(this.core);\n this.depth = countDir(query, query.length, pathSeparator);\n this.ext = getExtension(this.query_lw);\n this.charCodes = getCharCodes(this.query_lw);\n }\n\n return Query;\n\n })();\n\n opt_char_re = /[ _\\-:\\/\\\\]/g;\n\n coreChars = function(query, optCharRegEx) {\n if (optCharRegEx == null) {\n optCharRegEx = opt_char_re;\n }\n return query.replace(optCharRegEx, '');\n };\n\n truncatedUpperCase = function(str) {\n var char, upper, _i, _len;\n upper = \"\";\n for (_i = 0, _len = str.length; _i < _len; _i++) {\n char = str[_i];\n upper += char.toUpperCase()[0];\n }\n return upper;\n };\n\n getCharCodes = function(str) {\n var charCodes, i, len;\n len = str.length;\n i = -1;\n charCodes = [];\n while (++i < len) {\n charCodes[str.charCodeAt(i)] = true;\n }\n return charCodes;\n };\n\n}).call(this);\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","(function() {\n var Query, pathScorer, pluckCandidates, scorer, sortCandidates;\n\n scorer = require('./scorer');\n\n pathScorer = require('./pathScorer');\n\n Query = require('./query');\n\n pluckCandidates = function(a) {\n return a.candidate;\n };\n\n sortCandidates = function(a, b) {\n return b.score - a.score;\n };\n\n module.exports = function(candidates, query, options) {\n var bKey, candidate, key, maxInners, maxResults, score, scoreProvider, scoredCandidates, spotLeft, string, usePathScoring, _i, _len;\n scoredCandidates = [];\n key = options.key, maxResults = options.maxResults, maxInners = options.maxInners, usePathScoring = options.usePathScoring;\n spotLeft = (maxInners != null) && maxInners > 0 ? maxInners : candidates.length + 1;\n bKey = key != null;\n scoreProvider = usePathScoring ? pathScorer : scorer;\n for (_i = 0, _len = candidates.length; _i < _len; _i++) {\n candidate = candidates[_i];\n string = bKey ? candidate[key] : candidate;\n if (!string) {\n continue;\n }\n score = scoreProvider.score(string, query, options);\n if (score > 0) {\n scoredCandidates.push({\n candidate: candidate,\n score: score\n });\n if (!--spotLeft) {\n break;\n }\n }\n }\n scoredCandidates.sort(sortCandidates);\n candidates = scoredCandidates.map(pluckCandidates);\n if (maxResults != null) {\n candidates = candidates.slice(0, maxResults);\n }\n return candidates;\n };\n\n}).call(this);\n","(function() {\n var basenameMatch, computeMatch, isMatch, isWordStart, match, mergeMatches, scoreAcronyms, scoreCharacter, scoreConsecutives, _ref;\n\n _ref = require('./scorer'), isMatch = _ref.isMatch, isWordStart = _ref.isWordStart, scoreConsecutives = _ref.scoreConsecutives, scoreCharacter = _ref.scoreCharacter, scoreAcronyms = _ref.scoreAcronyms;\n\n exports.match = match = function(string, query, options) {\n var allowErrors, baseMatches, matches, pathSeparator, preparedQuery, string_lw;\n allowErrors = options.allowErrors, preparedQuery = options.preparedQuery, pathSeparator = options.pathSeparator;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return [];\n }\n string_lw = string.toLowerCase();\n matches = computeMatch(string, string_lw, preparedQuery);\n if (matches.length === 0) {\n return matches;\n }\n if (string.indexOf(pathSeparator) > -1) {\n baseMatches = basenameMatch(string, string_lw, preparedQuery, pathSeparator);\n matches = mergeMatches(matches, baseMatches);\n }\n return matches;\n };\n\n exports.wrap = function(string, query, options) {\n var matchIndex, matchPos, matchPositions, output, strPos, tagClass, tagClose, tagOpen, _ref1;\n if ((options.wrap != null)) {\n _ref1 = options.wrap, tagClass = _ref1.tagClass, tagOpen = _ref1.tagOpen, tagClose = _ref1.tagClose;\n }\n if (tagClass == null) {\n tagClass = 'highlight';\n }\n if (tagOpen == null) {\n tagOpen = '';\n }\n if (tagClose == null) {\n tagClose = '';\n }\n if (string === query) {\n return tagOpen + string + tagClose;\n }\n matchPositions = match(string, query, options);\n if (matchPositions.length === 0) {\n return string;\n }\n output = '';\n matchIndex = -1;\n strPos = 0;\n while (++matchIndex < matchPositions.length) {\n matchPos = matchPositions[matchIndex];\n if (matchPos > strPos) {\n output += string.substring(strPos, matchPos);\n strPos = matchPos;\n }\n while (++matchIndex < matchPositions.length) {\n if (matchPositions[matchIndex] === matchPos + 1) {\n matchPos++;\n } else {\n matchIndex--;\n break;\n }\n }\n matchPos++;\n if (matchPos > strPos) {\n output += tagOpen;\n output += string.substring(strPos, matchPos);\n output += tagClose;\n strPos = matchPos;\n }\n }\n if (strPos <= string.length - 1) {\n output += string.substring(strPos);\n }\n return output;\n };\n\n basenameMatch = function(subject, subject_lw, preparedQuery, pathSeparator) {\n var basePos, depth, end;\n end = subject.length - 1;\n while (subject[end] === pathSeparator) {\n end--;\n }\n basePos = subject.lastIndexOf(pathSeparator, end);\n if (basePos === -1) {\n return [];\n }\n depth = preparedQuery.depth;\n while (depth-- > 0) {\n basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n if (basePos === -1) {\n return [];\n }\n }\n basePos++;\n end++;\n return computeMatch(subject.slice(basePos, end), subject_lw.slice(basePos, end), preparedQuery, basePos);\n };\n\n mergeMatches = function(a, b) {\n var ai, bj, i, j, m, n, out;\n m = a.length;\n n = b.length;\n if (n === 0) {\n return a.slice();\n }\n if (m === 0) {\n return b.slice();\n }\n i = -1;\n j = 0;\n bj = b[j];\n out = [];\n while (++i < m) {\n ai = a[i];\n while (bj <= ai && ++j < n) {\n if (bj < ai) {\n out.push(bj);\n }\n bj = b[j];\n }\n out.push(ai);\n }\n while (j < n) {\n out.push(b[j++]);\n }\n return out;\n };\n\n computeMatch = function(subject, subject_lw, preparedQuery, offset) {\n var DIAGONAL, LEFT, STOP, UP, acro_score, align, backtrack, csc_diag, csc_row, csc_score, i, j, m, matches, move, n, pos, query, query_lw, score, score_diag, score_row, score_up, si_lw, start, trace;\n if (offset == null) {\n offset = 0;\n }\n query = preparedQuery.query;\n query_lw = preparedQuery.query_lw;\n m = subject.length;\n n = query.length;\n acro_score = scoreAcronyms(subject, subject_lw, query, query_lw).score;\n score_row = new Array(n);\n csc_row = new Array(n);\n STOP = 0;\n UP = 1;\n LEFT = 2;\n DIAGONAL = 3;\n trace = new Array(m * n);\n pos = -1;\n j = -1;\n while (++j < n) {\n score_row[j] = 0;\n csc_row[j] = 0;\n }\n i = -1;\n while (++i < m) {\n score = 0;\n score_up = 0;\n csc_diag = 0;\n si_lw = subject_lw[i];\n j = -1;\n while (++j < n) {\n csc_score = 0;\n align = 0;\n score_diag = score_up;\n if (query_lw[j] === si_lw) {\n start = isWordStart(i, subject, subject_lw);\n csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n }\n score_up = score_row[j];\n csc_diag = csc_row[j];\n if (score > score_up) {\n move = LEFT;\n } else {\n score = score_up;\n move = UP;\n }\n if (align > score) {\n score = align;\n move = DIAGONAL;\n } else {\n csc_score = 0;\n }\n score_row[j] = score;\n csc_row[j] = csc_score;\n trace[++pos] = score > 0 ? move : STOP;\n }\n }\n i = m - 1;\n j = n - 1;\n pos = i * n + j;\n backtrack = true;\n matches = [];\n while (backtrack && i >= 0 && j >= 0) {\n switch (trace[pos]) {\n case UP:\n i--;\n pos -= n;\n break;\n case LEFT:\n j--;\n pos--;\n break;\n case DIAGONAL:\n matches.push(i + offset);\n j--;\n i--;\n pos -= n + 1;\n break;\n default:\n backtrack = false;\n }\n }\n matches.reverse();\n return matches;\n };\n\n}).call(this);\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return (source) => {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","export function createErrorClass(createImpl) {\n const _super = (instance) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subscription {\n constructor(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._teardowns = null;\n }\n unsubscribe() {\n let errors;\n if (!this.closed) {\n this.closed = true;\n const { _parentage } = this;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n }\n else {\n _parentage === null || _parentage === void 0 ? void 0 : _parentage.remove(this);\n }\n const { initialTeardown } = this;\n if (isFunction(initialTeardown)) {\n try {\n initialTeardown();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n const { _teardowns } = this;\n if (_teardowns) {\n this._teardowns = null;\n for (const teardown of _teardowns) {\n try {\n execTeardown(teardown);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n add(teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execTeardown(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._teardowns = (_a = this._teardowns) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n }\n _hasParent(parent) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n _addParent(parent) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n _removeParent(parent) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n remove(teardown) {\n const { _teardowns } = this;\n _teardowns && arrRemove(_teardowns, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\nSubscription.EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n})();\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execTeardown(teardown) {\n if (isFunction(teardown)) {\n teardown();\n }\n else {\n teardown.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export const config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","export const timeoutProvider = {\n setTimeout(...args) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) || setTimeout)(...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind,\n value,\n error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nexport class Subscriber extends Subscription {\n constructor(destination) {\n super();\n this.isStopped = false;\n if (destination) {\n this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(this);\n }\n }\n else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n static create(next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n }\n next(value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n }\n error(err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n }\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.destination.complete();\n this.unsubscribe();\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(observerOrNext, error, complete) {\n super();\n this.destination = EMPTY_OBSERVER;\n if ((observerOrNext || error || complete) && observerOrNext !== EMPTY_OBSERVER) {\n let next;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n ({ next, error, complete } = observerOrNext);\n let context;\n if (this && config.useDeprecatedNextContext) {\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n }\n else {\n context = observerOrNext;\n }\n next = next === null || next === void 0 ? void 0 : next.bind(context);\n error = error === null || error === void 0 ? void 0 : error.bind(context);\n complete = complete === null || complete === void 0 ? void 0 : complete.bind(context);\n }\n this.destination = {\n next: next || noop,\n error: error || defaultErrorHandler,\n complete: complete || noop,\n };\n }\n }\n}\nfunction defaultErrorHandler(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n reportUnhandledError(err);\n}\nfunction handleStoppedNotification(notification, subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\nexport const EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","import { Subscriber } from '../Subscriber';\nexport class OperatorSubscriber extends Subscriber {\n constructor(destination, onNext, onError, onComplete, onUnsubscribe) {\n super(destination);\n this.onUnsubscribe = onUnsubscribe;\n this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n this.destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.unsubscribe();\n }\n : super._error;\n this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n this.destination.error(err);\n }\n this.unsubscribe();\n }\n : super._complete;\n }\n unsubscribe() {\n var _a;\n !this.closed && ((_a = this.onUnsubscribe) === null || _a === void 0 ? void 0 : _a.call(this));\n super.unsubscribe();\n }\n}\n//# sourceMappingURL=OperatorSubscriber.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\nexport const $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map","export const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nexport class Observable {\n constructor(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n const { operator, source } = this;\n subscriber.add(operator\n ? operator.call(subscriber, source)\n : source || config.useDeprecatedSynchronousErrorHandling\n ? this._subscribe(subscriber)\n : this._trySubscribe(subscriber));\n return subscriber;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n sink.error(err);\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscription === null || subscription === void 0 ? void 0 : subscription.unsubscribe();\n }\n }, reject, resolve);\n });\n }\n _subscribe(subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n return operations.length ? pipeFromArray(operations)(this) : this;\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable((subscriber) => {\n let i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(`You provided ${input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`} where a stream was expected. You can provide an Observable, Promise, Array, AsyncIterable, or Iterable.`);\n}\n//# sourceMappingURL=throwUnobservableError.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n//# sourceMappingURL=scheduled.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { Observable } from '../Observable';\nexport function schedulePromise(input, scheduler) {\n return new Observable((subscriber) => {\n return scheduler.schedule(() => input.then((value) => {\n subscriber.add(scheduler.schedule(() => {\n subscriber.next(value);\n subscriber.add(scheduler.schedule(() => subscriber.complete()));\n }));\n }, (err) => {\n subscriber.add(scheduler.schedule(() => subscriber.error(err)));\n }));\n });\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const iterator = input[Symbol.asyncIterator]();\n sub.add(scheduler.schedule(function () {\n iterator.next().then(result => {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n this.schedule();\n }\n });\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { caughtSchedule } from '../util/caughtSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable((subscriber) => {\n let iterator;\n subscriber.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n caughtSchedule(subscriber, scheduler, function () {\n const { value, done } = iterator.next();\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n });\n }));\n return () => isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return();\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","export function caughtSchedule(subscriber, scheduler, execute, delay = 0) {\n const subscription = scheduler.schedule(function () {\n try {\n execute.call(this);\n }\n catch (err) {\n subscriber.error(err);\n }\n }, delay);\n subscriber.add(subscription);\n return subscription;\n}\n//# sourceMappingURL=caughtSchedule.js.map","import { __asyncValues, __awaiter } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { Observable } from '../Observable';\nimport { scheduled } from '../scheduled/scheduled';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nfunction fromInteropObservable(obj) {\n return new Observable((subscriber) => {\n const obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable((subscriber) => {\n for (let i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nfunction fromPromise(promise) {\n return new Observable((subscriber) => {\n promise\n .then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, reportUnhandledError);\n });\n}\nfunction fromIterable(iterable) {\n return new Observable((subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n while (!subscriber.closed) {\n const { done, value } = iterator.next();\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }\n return () => isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return();\n });\n}\nfunction fromAsyncIterable(asyncIterable) {\n return new Observable((subscriber) => {\n process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n });\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n for (asyncIterable_1 = __asyncValues(asyncIterable); asyncIterable_1_1 = yield asyncIterable_1.next(), !asyncIterable_1_1.done;) {\n const value = asyncIterable_1_1.value;\n subscriber.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return)) yield _a.call(asyncIterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\n//# sourceMappingURL=from.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/from';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent = Infinity) {\n if (isFunction(resultSelector)) {\n return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\nexport const flatMap = mergeMap;\n//# sourceMappingURL=mergeMap.js.map","import { innerFrom } from '../observable/from';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalTeardown) {\n let buffer = [];\n let active = 0;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n const outerNext = (value) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n const doInnerSub = (value) => {\n expand && subscriber.next(value);\n active++;\n innerFrom(project(value, index++)).subscribe(new OperatorSubscriber(subscriber, (innerValue) => {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, undefined, () => {\n active--;\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift();\n innerSubScheduler ? subscriber.add(innerSubScheduler.schedule(() => doInnerSub(bufferedValue))) : doInnerSub(bufferedValue);\n }\n checkComplete();\n }));\n };\n source.subscribe(new OperatorSubscriber(subscriber, outerNext, undefined, () => {\n isComplete = true;\n checkComplete();\n }));\n return () => {\n buffer = null;\n additionalTeardown === null || additionalTeardown === void 0 ? void 0 : additionalTeardown();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Infinity) {\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { scheduleArray } from '../scheduled/scheduleArray';\nimport { fromArrayLike } from './from';\nexport function internalFromArray(input, scheduler) {\n return scheduler ? scheduleArray(input, scheduler) : fromArrayLike(input);\n}\n//# sourceMappingURL=fromArray.js.map","const { isArray } = Array;\nexport function argsOrArgArray(args) {\n return args.length === 1 && isArray(args[0]) ? args[0] : args;\n}\n//# sourceMappingURL=argsOrArgArray.js.map","import { Observable } from '../Observable';\nexport const EMPTY = new Observable(subscriber => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n//# sourceMappingURL=empty.js.map","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n//# sourceMappingURL=isScheduler.js.map","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n//# sourceMappingURL=args.js.map","import { mergeAll } from '../operators/mergeAll';\nimport { internalFromArray } from './fromArray';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { innerFrom } from './from';\nimport { EMPTY } from './empty';\nimport { popNumber, popScheduler } from '../util/args';\nexport function merge(...args) {\n const scheduler = popScheduler(args);\n const concurrent = popNumber(args, Infinity);\n const sources = argsOrArgArray(args);\n return !sources.length\n ?\n EMPTY\n : sources.length === 1\n ?\n innerFrom(sources[0])\n :\n mergeAll(concurrent)(internalFromArray(sources, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { innerFrom } from '../observable/from';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function switchMap(project, resultSelector) {\n return operate((source, subscriber) => {\n let innerSubscriber = null;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete();\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n let innerIndex = 0;\n const outerIndex = index++;\n innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = new OperatorSubscriber(subscriber, (innerValue) => subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue), undefined, () => {\n innerSubscriber = null;\n checkComplete();\n })));\n }, undefined, () => {\n isComplete = true;\n checkComplete();\n }));\n });\n}\n//# sourceMappingURL=switchMap.js.map","import { createErrorClass } from './createErrorClass';\nexport const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subject extends Observable {\n constructor() {\n super();\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n next(value) {\n this._throwIfClosed();\n if (!this.isStopped) {\n const copy = this.observers.slice();\n for (const observer of copy) {\n observer.next(value);\n }\n }\n }\n error(err) {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n }\n complete() {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n }\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = null;\n }\n _trySubscribe(subscriber) {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n _innerSubscribe(subscriber) {\n const { hasError, isStopped, observers } = this;\n return hasError || isStopped\n ? EMPTY_SUBSCRIPTION\n : (observers.push(subscriber), new Subscription(() => arrRemove(this.observers, subscriber)));\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n }\n error(err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n }\n complete() {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n _subscribe(subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n }\n}\n//# sourceMappingURL=Subject.js.map","export const dateTimestampProvider = {\n now() {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class ReplaySubject extends Subject {\n constructor(bufferSize = Infinity, windowTime = Infinity, timestampProvider = dateTimestampProvider) {\n super();\n this.bufferSize = bufferSize;\n this.windowTime = windowTime;\n this.timestampProvider = timestampProvider;\n this.buffer = [];\n this.infiniteTimeWindow = true;\n this.infiniteTimeWindow = windowTime === Infinity;\n this.bufferSize = Math.max(1, bufferSize);\n this.windowTime = Math.max(1, windowTime);\n }\n next(value) {\n const { isStopped, buffer, infiniteTimeWindow, timestampProvider, windowTime } = this;\n if (!isStopped) {\n buffer.push(value);\n !infiniteTimeWindow && buffer.push(timestampProvider.now() + windowTime);\n }\n this.trimBuffer();\n super.next(value);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this.trimBuffer();\n const subscription = this._innerSubscribe(subscriber);\n const { infiniteTimeWindow, buffer } = this;\n const copy = buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n }\n trimBuffer() {\n const { bufferSize, timestampProvider, buffer, infiniteTimeWindow } = this;\n const adjustedBufferSize = (infiniteTimeWindow ? 1 : 2) * bufferSize;\n bufferSize < Infinity && adjustedBufferSize < buffer.length && buffer.splice(0, buffer.length - adjustedBufferSize);\n if (!infiniteTimeWindow) {\n const now = timestampProvider.now();\n let last = 0;\n for (let i = 1; i < buffer.length && buffer[i] <= now; i += 2) {\n last = i;\n }\n last && buffer.splice(0, last + 1);\n }\n }\n}\n//# sourceMappingURL=ReplaySubject.js.map","import { map } from \"../operators/map\";\nconst { isArray } = Array;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn(...args) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(args => callOrApply(fn, args));\n}\n//# sourceMappingURL=mapOneOrManyArgs.js.map","import { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { internalFromArray } from './fromArray';\nconst nodeEventEmitterMethods = ['addListener', 'removeListener'];\nconst eventTargetMethods = ['addEventListener', 'removeEventListener'];\nconst jqueryMethods = ['on', 'off'];\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector));\n }\n const [add, remove] = isEventTarget(target)\n ? eventTargetMethods.map((methodName) => (handler) => target[methodName](eventName, handler, options))\n :\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [];\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap((subTarget) => fromEvent(subTarget, eventName, options))(internalFromArray(target));\n }\n }\n return new Observable((subscriber) => {\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n const handler = (...args) => subscriber.next(1 < args.length ? args : args[0]);\n add(handler);\n return () => remove(handler);\n });\n}\nfunction toCommonHandlerRegistry(target, eventName) {\n return (methodName) => (handler) => target[methodName](eventName, handler);\n}\nfunction isNodeStyleEventEmitter(target) {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\nfunction isJQueryStyleEventEmitter(target) {\n return isFunction(target.on) && isFunction(target.off);\n}\nfunction isEventTarget(target) {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n//# sourceMappingURL=fromEvent.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function mapTo(value) {\n return operate((source, subscriber) => {\n source.subscribe(new OperatorSubscriber(subscriber, () => subscriber.next(value)));\n });\n}\n//# sourceMappingURL=mapTo.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve an element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element or nothing\n */\nexport function getElement(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T]\n\nexport function getElement(\n selector: string, node?: ParentNode\n): T | undefined\n\nexport function getElement(\n selector: string, node: ParentNode = document\n): T | undefined {\n return node.querySelector(selector) || undefined\n}\n\n/**\n * Retrieve an element matching a query selector or throw a reference error\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element\n */\nexport function getElementOrThrow(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T]\n\nexport function getElementOrThrow(\n selector: string, node?: ParentNode\n): T\n\nexport function getElementOrThrow(\n selector: string, node: ParentNode = document\n): T {\n const el = getElement(selector, node)\n if (typeof el === \"undefined\")\n throw new ReferenceError(\n `Missing element: expected \"${selector}\" to be present`\n )\n return el\n}\n\n/**\n * Retrieve the currently active element\n *\n * @returns Element or nothing\n */\nexport function getActiveElement(): HTMLElement | undefined {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement\n : undefined\n}\n\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Elements\n */\nexport function getElements(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T][]\n\nexport function getElements(\n selector: string, node?: ParentNode\n): T[]\n\nexport function getElements(\n selector: string, node: ParentNode = document\n): T[] {\n return Array.from(node.querySelectorAll(selector))\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Create an element\n *\n * @template T - Tag name type\n *\n * @param tagName - Tag name\n *\n * @returns Element\n */\nexport function createElement(\n tagName: T\n): HTMLElementTagNameMap[T] {\n return document.createElement(tagName)\n}\n\n/**\n * Replace an element with another element\n *\n * @param source - Source element\n * @param target - Target element\n */\nexport function replaceElement(\n source: HTMLElement, target: Node\n): void {\n source.replaceWith(target)\n}\n","import { concatAll } from '../operators/concatAll';\nimport { internalFromArray } from './fromArray';\nimport { popScheduler } from '../util/args';\nexport function concat(...args) {\n return concatAll()(internalFromArray(args, popScheduler(args)));\n}\n//# sourceMappingURL=concat.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith(...values) {\n const scheduler = popScheduler(values);\n return operate((source, subscriber) => {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=startWith.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n compare = compare !== null && compare !== void 0 ? compare : defaultCompare;\n return operate((source, subscriber) => {\n let prev;\n let first = true;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n ((first && ((prev = value), 1)) || !compare(prev, (prev = keySelector ? keySelector(value) : value))) &&\n subscriber.next(value);\n first = false;\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n//# sourceMappingURL=distinctUntilChanged.js.map","import { internalFromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nimport { popScheduler } from '../util/args';\nexport function of(...args) {\n const scheduler = popScheduler(args);\n return scheduler ? scheduleArray(args, scheduler) : internalFromArray(args);\n}\n//# sourceMappingURL=of.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport const NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map","import { operate } from '../util/lift';\nexport function finalize(callback) {\n return operate((source, subscriber) => {\n source.subscribe(subscriber);\n subscriber.add(callback);\n });\n}\n//# sourceMappingURL=finalize.js.map","import { Subject } from '../Subject';\nimport { from } from '../observable/from';\nimport { operate } from '../util/lift';\nexport function share(options) {\n options = options || {};\n const { connector = () => new Subject(), resetOnComplete = true, resetOnError = true, resetOnRefCountZero = true } = options;\n let connection = null;\n let subject = null;\n let refCount = 0;\n let hasCompleted = false;\n let hasErrored = false;\n const reset = () => {\n connection = subject = null;\n hasCompleted = hasErrored = false;\n };\n return operate((source, subscriber) => {\n refCount++;\n if (!subject) {\n subject = connector();\n }\n const castSubscription = subject.subscribe(subscriber);\n if (!connection) {\n connection = from(source).subscribe({\n next: (value) => subject.next(value),\n error: (err) => {\n hasErrored = true;\n const dest = subject;\n if (resetOnError) {\n reset();\n }\n dest.error(err);\n },\n complete: () => {\n hasCompleted = true;\n const dest = subject;\n if (resetOnComplete) {\n reset();\n }\n dest.complete();\n },\n });\n }\n return () => {\n refCount--;\n castSubscription.unsubscribe();\n if (!refCount && resetOnRefCountZero && !hasErrored && !hasCompleted) {\n const conn = connection;\n reset();\n conn === null || conn === void 0 ? void 0 : conn.unsubscribe();\n }\n };\n });\n}\n//# sourceMappingURL=share.js.map","import { ReplaySubject } from '../ReplaySubject';\nimport { share } from './share';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n var _a, _b;\n let bufferSize;\n let refCount = false;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n bufferSize = (_a = configOrBufferSize.bufferSize) !== null && _a !== void 0 ? _a : Infinity;\n windowTime = (_b = configOrBufferSize.windowTime) !== null && _b !== void 0 ? _b : Infinity;\n refCount = !!configOrBufferSize.refCount;\n scheduler = configOrBufferSize.scheduler;\n }\n else {\n bufferSize = configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity;\n }\n return share({\n connector: () => new ReplaySubject(bufferSize, windowTime, scheduler),\n resetOnError: true,\n resetOnComplete: false,\n resetOnRefCountZero: refCount\n });\n}\n//# sourceMappingURL=shareReplay.js.map","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n const tapObserver = isFunction(observerOrNext) || error || complete ? { next: observerOrNext, error, complete } : observerOrNext;\n return tapObserver\n ? operate((source, subscriber) => {\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, (err) => {\n var _a;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, () => {\n var _a;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }));\n })\n :\n identity;\n}\n//# sourceMappingURL=tap.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));\n });\n}\n//# sourceMappingURL=filter.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n NEVER,\n Observable,\n Subject,\n defer,\n of\n} from \"rxjs\"\nimport {\n filter,\n finalize,\n map,\n shareReplay,\n startWith,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementSize {\n width: number /* Element width */\n height: number /* Element height */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Resize observer entry subject\n */\nconst entry$ = new Subject()\n\n/**\n * Resize observer observable\n *\n * This observable will create a `ResizeObserver` on the first subscription\n * and will automatically terminate it when there are no more subscribers.\n * It's quite important to centralize observation in a single `ResizeObserver`,\n * as the performance difference can be quite dramatic, as the link shows.\n *\n * @see https://bit.ly/3iIYfEm - Google Groups on performance\n */\nconst observer$ = defer(() => of(\n new ResizeObserver(entries => {\n for (const entry of entries)\n entry$.next(entry)\n })\n))\n .pipe(\n switchMap(resize => NEVER.pipe(startWith(resize))\n .pipe(\n finalize(() => resize.disconnect())\n )\n ),\n shareReplay(1)\n )\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element size\n *\n * @param el - Element\n *\n * @returns Element size\n */\nexport function getElementSize(el: HTMLElement): ElementSize {\n return {\n width: el.offsetWidth,\n height: el.offsetHeight\n }\n}\n\n/**\n * Retrieve element content size, i.e. including overflowing content\n *\n * @param el - Element\n *\n * @returns Element size\n */\nexport function getElementContentSize(el: HTMLElement): ElementSize {\n return {\n width: el.scrollWidth,\n height: el.scrollHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element size\n *\n * This function returns an observable that subscribes to a single internal\n * instance of `ResizeObserver` upon subscription, and emit resize events until\n * termination. Note that this function should not be called with the same\n * element twice, as the first unsubscription will terminate observation.\n *\n * @param el - Element\n *\n * @returns Element size observable\n */\nexport function watchElementSize(\n el: HTMLElement\n): Observable {\n return observer$\n .pipe(\n tap(observer => observer.observe(el)),\n switchMap(observer => entry$\n .pipe(\n filter(({ target }) => target === el),\n finalize(() => observer.unobserve(el)),\n map(({ contentRect }) => ({\n width: contentRect.width,\n height: contentRect.height\n }))\n )\n ),\n startWith(getElementSize(el))\n )\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './from';\nexport function defer(observableFactory) {\n return new Observable((subscriber) => {\n innerFrom(observableFactory()).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { distinctUntilChanged, map, startWith } from \"rxjs/operators\"\n\nimport { getElementContentSize, getElementSize } from \"../size\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element offset\n *\n * @param el - Element\n *\n * @returns Element offset\n */\nexport function getElementOffset(el: HTMLElement): ElementOffset {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element offset\n *\n * @param el - Element\n *\n * @returns Element offset observable\n */\nexport function watchElementOffset(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"scroll\"),\n fromEvent(window, \"resize\")\n )\n .pipe(\n map(() => getElementOffset(el)),\n startWith(getElementOffset(el))\n )\n}\n\n/**\n * Watch element threshold\n *\n * This function returns an observable which emits whether the bottom scroll\n * offset of an elements is within a certain threshold.\n *\n * @param el - Element\n * @param threshold - Threshold\n *\n * @returns Element threshold observable\n */\nexport function watchElementThreshold(\n el: HTMLElement, threshold = 16\n): Observable {\n return watchElementOffset(el)\n .pipe(\n map(({ y }) => {\n const visible = getElementSize(el)\n const content = getElementContentSize(el)\n return y >= (\n content.height - visible.height - threshold\n )\n }),\n distinctUntilChanged()\n )\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\nimport { getElementOrThrow } from \"../element\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle\n */\nexport type Toggle =\n | \"drawer\" /* Toggle for drawer */\n | \"search\" /* Toggle for search */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle map\n */\nconst toggles: Record = {\n drawer: getElementOrThrow(\"[data-md-toggle=drawer]\"),\n search: getElementOrThrow(\"[data-md-toggle=search]\")\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the value of a toggle\n *\n * @param name - Toggle\n *\n * @returns Toggle value\n */\nexport function getToggle(name: Toggle): boolean {\n return toggles[name].checked\n}\n\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programmatically change the value of a toggle, but this\n * is a much simpler and cleaner solution which doesn't require a polyfill.\n *\n * @param name - Toggle\n * @param value - Toggle value\n */\nexport function setToggle(name: Toggle, value: boolean): void {\n if (toggles[name].checked !== value)\n toggles[name].click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch toggle\n *\n * @param name - Toggle\n *\n * @returns Toggle value observable\n */\nexport function watchToggle(name: Toggle): Observable {\n const el = toggles[name]\n return fromEvent(el, \"change\")\n .pipe(\n map(() => el.checked),\n startWith(el.checked)\n )\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { BehaviorSubject, Subject } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location\n *\n * This function will return a `URL` object (and not `Location`) in order to\n * normalize typings across the application. Furthermore, locations need to be\n * tracked without setting them and `Location` is a singleton which represents\n * the current location.\n *\n * @returns URL\n */\nexport function getLocation(): URL {\n return new URL(location.href)\n}\n\n/**\n * Set location\n *\n * @param url - URL to change to\n */\nexport function setLocation(url: URL): void {\n location.href = url.href\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location\n *\n * @returns Location subject\n */\nexport function watchLocation(): Subject {\n return new BehaviorSubject(getLocation())\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, from } from \"rxjs\"\nimport {\n filter,\n map,\n shareReplay,\n switchMap\n} from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch the given URL\n *\n * @param url - Request URL\n * @param options - Request options\n *\n * @returns Response observable\n */\nexport function request(\n url: string, options: RequestInit = { credentials: \"same-origin\" }\n): Observable {\n return from(fetch(url, options))\n .pipe(\n filter(res => res.status === 200),\n )\n}\n\n/**\n * Fetch JSON from the given URL\n *\n * @template T - Data type\n *\n * @param url - Request URL\n * @param options - Request options\n *\n * @returns Data observable\n */\nexport function requestJSON(\n url: string, options?: RequestInit\n): Observable {\n return request(url, options)\n .pipe(\n switchMap(res => res.json()),\n shareReplay(1)\n )\n}\n\n/**\n * Fetch XML from the given URL\n *\n * @param url - Request URL\n * @param options - Request options\n *\n * @returns Data observable\n */\nexport function requestXML(\n url: string, options?: RequestInit\n): Observable {\n const dom = new DOMParser()\n return request(url, options)\n .pipe(\n switchMap(res => res.text()),\n map(res => dom.parseFromString(res, \"text/xml\")),\n shareReplay(1)\n )\n}\n","const { isArray } = Array;\nconst { getPrototypeOf, prototype: objectProto, keys: getKeys } = Object;\nexport function argsArgArrayOrObject(args) {\n if (args.length === 1) {\n const first = args[0];\n if (isArray(first)) {\n return { args: first, keys: null };\n }\n if (isPOJO(first)) {\n const keys = getKeys(first);\n return {\n args: keys.map((key) => first[key]),\n keys,\n };\n }\n }\n return { args: args, keys: null };\n}\nfunction isPOJO(obj) {\n return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n//# sourceMappingURL=argsArgArrayOrObject.js.map","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { Subscriber } from '../Subscriber';\nimport { from } from './from';\nimport { identity } from '../util/identity';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { popResultSelector, popScheduler } from '../util/args';\nexport function combineLatest(...args) {\n const scheduler = popScheduler(args);\n const resultSelector = popResultSelector(args);\n const { args: observables, keys } = argsArgArrayOrObject(args);\n if (observables.length === 0) {\n return from([], scheduler);\n }\n const result = new Observable(combineLatestInit(observables, scheduler, keys\n ?\n (values) => {\n const value = {};\n for (let i = 0; i < values.length; i++) {\n value[keys[i]] = values[i];\n }\n return value;\n }\n :\n identity));\n if (resultSelector) {\n return result.pipe(mapOneOrManyArgs(resultSelector));\n }\n return result;\n}\nclass CombineLatestSubscriber extends Subscriber {\n constructor(destination, _next, shouldComplete) {\n super(destination);\n this._next = _next;\n this.shouldComplete = shouldComplete;\n }\n _complete() {\n if (this.shouldComplete()) {\n super._complete();\n }\n else {\n this.unsubscribe();\n }\n }\n}\nexport function combineLatestInit(observables, scheduler, valueTransform = identity) {\n return (subscriber) => {\n const primarySubscribe = () => {\n const { length } = observables;\n const values = new Array(length);\n let active = length;\n const hasValues = observables.map(() => false);\n let waitingForFirstValues = true;\n const emit = () => subscriber.next(valueTransform(values.slice()));\n for (let i = 0; i < length; i++) {\n const subscribe = () => {\n const source = from(observables[i], scheduler);\n source.subscribe(new CombineLatestSubscriber(subscriber, (value) => {\n values[i] = value;\n if (waitingForFirstValues) {\n hasValues[i] = true;\n waitingForFirstValues = !hasValues.every(identity);\n }\n if (!waitingForFirstValues) {\n emit();\n }\n }, () => --active === 0));\n };\n maybeSchedule(scheduler, subscribe, subscriber);\n }\n };\n maybeSchedule(scheduler, primarySubscribe, subscriber);\n };\n}\nfunction maybeSchedule(scheduler, execute, subscription) {\n if (scheduler) {\n subscription.add(scheduler.schedule(execute));\n }\n else {\n execute();\n }\n}\n//# sourceMappingURL=combineLatest.js.map","import { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged((x, y) => compare ? compare(x[key], y[key]) : x[key] === y[key]);\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElementOrThrow, getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component\n */\nexport type ComponentType =\n | \"icon-search\" /* Icon search */\n | \"icon-search-query\" /* Icon search input */\n | \"icon-search-result\" /* Icon search results */\n\n/**\n * A component\n *\n * @template T - Component type\n * @template U - Reference type\n */\nexport type Component<\n T extends {} = {},\n U extends HTMLElement = HTMLElement\n> =\n T & {\n ref: U /* Component reference */\n }\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the element for a given component or throw a reference error\n *\n * @template T - Element type\n *\n * @param type - Component type\n * @param node - Node of reference\n *\n * @returns Element\n */\nexport function getComponentElement(\n type: ComponentType, node: ParentNode = document\n): T {\n return getElementOrThrow(`[data-mdx-component=${type}]`, node)\n}\n\n/**\n * Retrieve all elements for a given component\n *\n * @template T - Element type\n *\n * @param type - Component type\n * @param node - Node of reference\n *\n * @returns Elements\n */\nexport function getComponentElements(\n type: ComponentType, node: ParentNode = document\n): T[] {\n return getElements(`[data-mdx-component=${type}]`, node)\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElementOrThrow, getLocation } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Feature flag\n */\nexport type Flag =\n | \"header.autohide\" /* Hide header */\n | \"navigation.expand\" /* Automatic expansion */\n | \"navigation.instant\" /* Instant loading */\n | \"navigation.sections\" /* Sections navigation */\n | \"navigation.tabs\" /* Tabs navigation */\n | \"toc.integrate\" /* Integrated table of contents */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Translation\n */\nexport type Translation =\n | \"clipboard.copy\" /* Copy to clipboard */\n | \"clipboard.copied\" /* Copied to clipboard */\n | \"search.config.lang\" /* Search language */\n | \"search.config.pipeline\" /* Search pipeline */\n | \"search.config.separator\" /* Search separator */\n | \"search.placeholder\" /* Search */\n | \"search.result.placeholder\" /* Type to start searching */\n | \"search.result.none\" /* No matching documents */\n | \"search.result.one\" /* 1 matching document */\n | \"search.result.other\" /* # matching documents */\n | \"search.result.more.one\" /* 1 more on this page */\n | \"search.result.more.other\" /* # more on this page */\n | \"search.result.term.missing\" /* Missing */\n\n/**\n * Translations\n */\nexport type Translations = Record\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Configuration\n */\nexport interface Config {\n base: string /* Base URL */\n features: Flag[] /* Feature flags */\n translations: Translations /* Translations */\n search: string /* Search worker URL */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve global configuration and make base URL absolute\n */\nconst script = getElementOrThrow(\"#__config\")\nconst config: Config = JSON.parse(script.textContent!)\nconfig.base = new URL(config.base, getLocation())\n .toString()\n .replace(/\\/$/, \"\")\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve global configuration\n *\n * @returns Global configuration\n */\nexport function configuration(): Config {\n return config\n}\n\n/**\n * Check whether a feature flag is enabled\n *\n * @param flag - Feature flag\n *\n * @returns Test result\n */\nexport function feature(flag: Flag): boolean {\n return config.features.includes(flag)\n}\n\n/**\n * Retrieve the translation for the given key\n *\n * @param key - Key to be translated\n * @param value - Value to be replaced\n *\n * @returns Translation\n */\nexport function translation(\n key: Translation, value?: string | number\n): string {\n return typeof value !== \"undefined\"\n ? config.translations[key].replace(\"#\", value.toString())\n : config.translations[key]\n}\n","import { Subscription } from '../Subscription';\nexport class Action extends Subscription {\n constructor(scheduler, work) {\n super();\n }\n schedule(state, delay = 0) {\n return this;\n }\n}\n//# sourceMappingURL=Action.js.map","export const intervalProvider = {\n setInterval(...args) {\n const { delegate } = intervalProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) || setInterval)(...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nexport class AsyncAction extends Action {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n schedule(state, delay = 0) {\n if (this.closed) {\n return this;\n }\n this.state = state;\n const id = this.id;\n const scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n }\n requestAsyncId(scheduler, _id, delay = 0) {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n recycleAsyncId(_scheduler, id, delay = 0) {\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n intervalProvider.clearInterval(id);\n return undefined;\n }\n execute(state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n _execute(state, _delay) {\n let errored = false;\n let errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = (!!e && e) || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n super.unsubscribe();\n }\n }\n}\n//# sourceMappingURL=AsyncAction.js.map","import { dateTimestampProvider } from \"./scheduler/dateTimestampProvider\";\nexport class Scheduler {\n constructor(schedulerActionCtor, now = Scheduler.now) {\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n schedule(work, delay = 0, state) {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\nScheduler.now = dateTimestampProvider.now;\n//# sourceMappingURL=Scheduler.js.map","import { Scheduler } from '../Scheduler';\nexport class AsyncScheduler extends Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n super(SchedulerAction, now);\n this.actions = [];\n this.active = false;\n this.scheduled = undefined;\n }\n flush(action) {\n const { actions } = this;\n if (this.active) {\n actions.push(action);\n return;\n }\n let error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n//# sourceMappingURL=AsyncScheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\nexport const async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n () => EMPTY\n : operate((source, subscriber) => {\n let seen = 0;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n//# sourceMappingURL=take.js.map","import { concat } from '../observable/concat';\nimport { take } from './take';\nimport { ignoreElements } from './ignoreElements';\nimport { mapTo } from './mapTo';\nimport { mergeMap } from './mergeMap';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return (source) => concat(subscriptionDelay.pipe(take(1), ignoreElements()), source.pipe(delayWhen(delayDurationSelector)));\n }\n return mergeMap((value, index) => delayDurationSelector(value, index).pipe(take(1), mapTo(value)));\n}\n//# sourceMappingURL=delayWhen.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nexport function ignoreElements() {\n return operate((source, subscriber) => {\n source.subscribe(new OperatorSubscriber(subscriber, noop));\n });\n}\n//# sourceMappingURL=ignoreElements.js.map","import { Observable } from '../Observable';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\nexport function timer(dueTime = 0, intervalOrScheduler, scheduler = asyncScheduler) {\n let intervalDuration = -1;\n if (intervalOrScheduler != null) {\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n }\n else {\n intervalDuration = intervalOrScheduler;\n }\n }\n return new Observable((subscriber) => {\n let due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n if (due < 0) {\n due = 0;\n }\n let n = 0;\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n subscriber.next(n++);\n if (0 <= intervalDuration) {\n this.schedule(undefined, intervalDuration);\n }\n else {\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n//# sourceMappingURL=timer.js.map","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n//# sourceMappingURL=isDate.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, combineLatest, fromEvent, merge } from \"rxjs\"\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith\n} from \"rxjs/operators\"\n\nimport { watchElementFocus } from \"~/browser\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Icon search query\n */\nexport interface IconSearchQuery {\n value: string /* Query value */\n focus: boolean /* Query focus */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount icon search query\n *\n * @param el - Icon search query element\n *\n * @returns Icon search query component observable\n */\nexport function mountIconSearchQuery(\n el: HTMLInputElement\n): Observable> {\n\n /* Intercept focus and input events */\n const focus$ = watchElementFocus(el)\n const value$ = merge(\n fromEvent(el, \"keyup\"),\n fromEvent(el, \"focus\").pipe(delay(1))\n )\n .pipe(\n map(() => el.value),\n startWith(el.value),\n distinctUntilChanged()\n )\n\n /* Combine into single observable */\n return combineLatest([value$, focus$])\n .pipe(\n map(([value, focus]) => ({ ref: el, value, focus })),\n )\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\nimport { getActiveElement } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set element focus\n *\n * @param el - Element\n * @param value - Whether the element should be focused\n */\nexport function setElementFocus(\n el: HTMLElement, value = true\n): void {\n if (value)\n el.focus()\n else\n el.blur()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element focus\n *\n * @param el - Element\n *\n * @returns Element focus observable\n */\nexport function watchElementFocus(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"focus\"),\n fromEvent(el, \"blur\")\n )\n .pipe(\n map(({ type }) => type === \"focus\"),\n startWith(el === getActiveElement())\n )\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { delayWhen } from './delayWhen';\nimport { timer } from '../observable/timer';\nexport function delay(due, scheduler = asyncScheduler) {\n const duration = timer(due, scheduler);\n return delayWhen(() => duration);\n}\n//# sourceMappingURL=delay.js.map","import { Subscription } from '../Subscription';\nexport const animationFrameProvider = {\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel === null || cancel === void 0 ? void 0 : cancel(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=animationFrameProvider.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\nexport const animationFrame = animationFrameScheduler;\n//# sourceMappingURL=animationFrame.js.map","import { AsyncScheduler } from './AsyncScheduler';\nexport class AnimationFrameScheduler extends AsyncScheduler {\n flush(action) {\n this.active = true;\n this.scheduled = undefined;\n const { actions } = this;\n let error;\n let index = -1;\n action = action || actions.shift();\n const count = actions.length;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { animationFrameProvider } from './animationFrameProvider';\nexport class AnimationFrameAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n animationFrameProvider.cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n }\n}\n//# sourceMappingURL=AnimationFrameAction.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n source.subscribe(new OperatorSubscriber(subscriber, (value) => subscriber.add(scheduler.schedule(() => subscriber.next(value), delay)), (err) => subscriber.add(scheduler.schedule(() => subscriber.error(err), delay)), () => subscriber.add(scheduler.schedule(() => subscriber.complete(), delay))));\n });\n}\n//# sourceMappingURL=observeOn.js.map","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/from';\nimport { identity } from '../util/identity';\nimport { noop } from '../util/noop';\nimport { popResultSelector } from '../util/args';\nexport function withLatestFrom(...inputs) {\n const project = popResultSelector(inputs);\n return operate((source, subscriber) => {\n const len = inputs.length;\n const otherValues = new Array(len);\n let hasValue = inputs.map(() => false);\n let ready = false;\n for (let i = 0; i < len; i++) {\n innerFrom(inputs[i]).subscribe(new OperatorSubscriber(subscriber, (value) => {\n otherValues[i] = value;\n if (!ready && !hasValue[i]) {\n hasValue[i] = true;\n (ready = hasValue.every(identity)) && (hasValue = null);\n }\n }, undefined, noop));\n }\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n if (ready) {\n const values = [value, ...otherValues];\n subscriber.next(project ? project(...values) : values);\n }\n }));\n });\n}\n//# sourceMappingURL=withLatestFrom.js.map","import { zip as zipStatic } from '../observable/zip';\nimport { operate } from '../util/lift';\nexport function zip(...sources) {\n return operate((source, subscriber) => {\n zipStatic(source, ...sources).subscribe(subscriber);\n });\n}\nexport function zipWith(...otherInputs) {\n return zip(...otherInputs);\n}\n//# sourceMappingURL=zipWith.js.map","import { Observable } from '../Observable';\nimport { innerFrom } from './from';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { EMPTY } from './empty';\nimport { OperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { popResultSelector } from '../util/args';\nexport function zip(...args) {\n const resultSelector = popResultSelector(args);\n const sources = argsOrArgArray(args);\n return sources.length\n ? new Observable((subscriber) => {\n let buffers = sources.map(() => []);\n let completed = sources.map(() => false);\n subscriber.add(() => {\n buffers = completed = null;\n });\n for (let sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) {\n innerFrom(sources[sourceIndex]).subscribe(new OperatorSubscriber(subscriber, (value) => {\n buffers[sourceIndex].push(value);\n if (buffers.every((buffer) => buffer.length)) {\n const result = buffers.map((buffer) => buffer.shift());\n subscriber.next(resultSelector ? resultSelector(...result) : result);\n if (buffers.some((buffer, i) => !buffer.length && completed[i])) {\n subscriber.complete();\n }\n }\n }, undefined, () => {\n completed[sourceIndex] = true;\n !buffers[sourceIndex].length && subscriber.complete();\n }));\n }\n return () => {\n buffers = completed = null;\n };\n })\n : EMPTY;\n}\n//# sourceMappingURL=zip.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { JSX as JSXInternal } from \"preact\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * HTML attributes\n */\ntype Attributes =\n & JSXInternal.HTMLAttributes\n & JSXInternal.SVGAttributes\n & Record\n\n/**\n * Child element\n */\ntype Child =\n | HTMLElement\n | Text\n | string\n | number\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Append a child node to an element\n *\n * @param el - Element\n * @param child - Child node(s)\n */\nfunction appendChild(el: HTMLElement, child: Child | Child[]): void {\n\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString()\n\n /* Handle nodes */\n } else if (child instanceof Node) {\n el.appendChild(child)\n\n /* Handle nested children */\n } else if (Array.isArray(child)) {\n for (const node of child)\n appendChild(el, node)\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * JSX factory\n *\n * @param tag - HTML tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @returns Element\n */\nexport function h(\n tag: string, attributes: Attributes | null, ...children: Child[]\n): HTMLElement {\n const el = document.createElement(tag)\n\n /* Set attributes, if any */\n if (attributes)\n for (const attr of Object.keys(attributes))\n if (typeof attributes[attr] !== \"boolean\")\n el.setAttribute(attr, attributes[attr])\n else if (attributes[attr])\n el.setAttribute(attr, \"\")\n\n /* Append child nodes */\n for (const child of children)\n appendChild(el, child)\n\n /* Return element */\n return el\n}\n\n/* ----------------------------------------------------------------------------\n * Namespace\n * ------------------------------------------------------------------------- */\n\nexport declare namespace h {\n namespace JSX {\n type Element = HTMLElement\n type IntrinsicElements = JSXInternal.IntrinsicElements\n }\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { wrap } from \"fuzzaldrin-plus\"\n\nimport { translation } from \"~/_\"\nimport { h } from \"~/utilities\"\n\nimport { Icon } from \"../../components\"\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Highlight an icon search result\n *\n * @param value - Icon search result\n * @param query - Icon search query\n *\n * @returns Highlighted result\n */\nfunction highlight(value: string, query: string) {\n return wrap(value, query, {\n wrap: {\n tagOpen: \"\",\n tagClose: \"\"\n }\n })\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render an icon search result\n *\n * @param icon - Icon search result\n * @param query - Icon search query\n *\n * @returns Element\n */\nexport function renderIconSearchResult(\n icon: Icon, query: string\n): HTMLElement {\n return (\n
  • \n \n \n \n \n {`:${highlight(icon.shortcode, query)}:`}\n \n
  • \n )\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { filter as search } from \"fuzzaldrin-plus\"\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n combineLatest,\n merge,\n of\n} from \"rxjs\"\nimport {\n bufferCount,\n distinctUntilKeyChanged,\n filter,\n finalize,\n map,\n observeOn,\n switchMap,\n tap,\n withLatestFrom,\n zipWith\n} from \"rxjs/operators\"\n\nimport {\n addToSearchResultList,\n resetSearchResultList,\n resetSearchResultMeta,\n setSearchResultMeta\n} from \"~/actions\"\nimport {\n getElementOrThrow,\n watchElementThreshold\n} from \"~/browser\"\n\nimport { renderIconSearchResult } from \"../../../templates\"\nimport { Component } from \"../../_\"\nimport { Icon, IconSearchIndex } from \"../_\"\nimport { IconSearchQuery } from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Icon search result\n */\nexport interface IconSearchResult {\n data: Icon[] /* Search result data */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n index$: Observable /* Search index observable */\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount icon search result\n *\n * @param el - Icon search result element\n * @param options - Options\n *\n * @returns Icon search result component observable\n */\nexport function mountIconSearchResult(\n el: HTMLElement, { index$, query$ }: MountOptions\n): Observable> {\n const internal$ = new Subject()\n const boundary$ = watchElementThreshold(el)\n .pipe(\n filter(Boolean)\n )\n\n /* Update search result metadata */\n const meta = getElementOrThrow(\":scope > :first-child\", el)\n internal$\n .pipe(\n observeOn(animationFrameScheduler),\n withLatestFrom(query$)\n )\n .subscribe(([{ data }, { value }]) => {\n if (value)\n setSearchResultMeta(meta, data.length)\n else\n resetSearchResultMeta(meta)\n })\n\n /* Update icon search result list */\n const list = getElementOrThrow(\":scope > :last-child\", el)\n internal$\n .pipe(\n observeOn(animationFrameScheduler),\n tap(() => resetSearchResultList(list)),\n switchMap(({ data }) => merge(\n of(...data.slice(0, 10)),\n of(...data.slice(10))\n .pipe(\n bufferCount(10),\n zipWith(boundary$),\n switchMap(([chunk]) => of(...chunk))\n )\n )),\n withLatestFrom(query$)\n )\n .subscribe(([result, { value }]) => {\n addToSearchResultList(list, renderIconSearchResult(result, value))\n })\n\n /* Create and return component */\n return combineLatest([\n query$.pipe(distinctUntilKeyChanged(\"value\")),\n index$\n .pipe(\n map(({ icons, emojis }) => [\n ...Object.keys(icons.data),\n ...Object.keys(emojis.data)\n ])\n )\n ])\n .pipe(\n withLatestFrom(index$),\n map(([[{ value }, data], index]) => {\n const results = search(data, value)\n return {\n data: results.map(name => {\n if (name in index.icons.data) {\n return {\n shortcode: name,\n url: `${index.icons.base}${index.icons.data[name]}`\n }\n } else {\n return {\n shortcode: name,\n url: `${index.emojis.base}${index.emojis.data[name]}`\n }\n }\n })\n }\n }),\n tap(internal$),\n finalize(() => internal$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { translation } from \"~/_\"\nimport { round } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set number of search results\n *\n * @param el - Search result metadata element\n * @param value - Number of results\n */\nexport function setSearchResultMeta(\n el: HTMLElement, value: number\n): void {\n switch (value) {\n\n /* No results */\n case 0:\n el.textContent = translation(\"search.result.none\")\n break\n\n /* One result */\n case 1:\n el.textContent = translation(\"search.result.one\")\n break\n\n /* Multiple result */\n default:\n el.textContent = translation(\"search.result.other\", round(value))\n }\n}\n\n/**\n * Reset number of search results\n *\n * @param el - Search result metadata element\n */\nexport function resetSearchResultMeta(\n el: HTMLElement\n): void {\n el.textContent = translation(\"search.result.placeholder\")\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Add an element to the search result list\n *\n * @param el - Search result list element\n * @param child - Search result element\n */\nexport function addToSearchResultList(\n el: HTMLElement, child: Element\n): void {\n el.appendChild(child)\n}\n\n/**\n * Reset search result list\n *\n * @param el - Search result list element\n */\nexport function resetSearchResultList(\n el: HTMLElement\n): void {\n el.innerHTML = \"\"\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Truncate a string after the given number of characters\n *\n * This is not a very reasonable approach, since the summaries kind of suck.\n * It would be better to create something more intelligent, highlighting the\n * search occurrences and making a better summary out of it, but this note was\n * written three years ago, so who knows if we'll ever fix it.\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @returns Truncated value\n */\nexport function truncate(value: string, n: number): string {\n let i = n\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0) { /* keep eating */ }\n return `${value.substring(0, i)}...`\n }\n return value\n}\n\n/**\n * Round a number for display with repository facts\n *\n * This is a reverse-engineered version of GitHub's weird rounding algorithm\n * for stars, forks and all other numbers. While all numbers below `1,000` are\n * returned as-is, bigger numbers are converted to fixed numbers:\n *\n * - `1,049` => `1k`\n * - `1,050` => `1.1k`\n * - `1,949` => `1.9k`\n * - `1,950` => `2k`\n *\n * @param value - Original value\n *\n * @returns Rounded value\n */\nexport function round(value: number): string {\n if (value > 999) {\n const digits = +((value - 950) % 1000 > 99)\n return `${((value + 0.000001) / 1000).toFixed(digits)}k`\n } else {\n return value.toString()\n }\n}\n\n/**\n * Simple hash function\n *\n * @see https://bit.ly/2wsVjJ4 - Original source\n *\n * @param value - Value to be hashed\n *\n * @returns Hash as 32bit integer\n */\nexport function hash(value: string): number {\n let h = 0\n for (let i = 0, len = value.length; i < len; i++) {\n h = ((h << 5) - h) + value.charCodeAt(i)\n h |= 0 // Convert to 32bit integer\n }\n return h\n}\n","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { arrRemove } from '../util/arrRemove';\nexport function bufferCount(bufferSize, startBufferEvery = null) {\n startBufferEvery = startBufferEvery !== null && startBufferEvery !== void 0 ? startBufferEvery : bufferSize;\n return operate((source, subscriber) => {\n let buffers = [];\n let count = 0;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n let toEmit = null;\n if (count++ % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (const buffer of buffers) {\n buffer.push(value);\n if (bufferSize <= buffer.length) {\n toEmit = toEmit !== null && toEmit !== void 0 ? toEmit : [];\n toEmit.push(buffer);\n }\n }\n if (toEmit) {\n for (const buffer of toEmit) {\n arrRemove(buffers, buffer);\n subscriber.next(buffer);\n }\n }\n }, undefined, () => {\n for (const buffer of buffers) {\n subscriber.next(buffer);\n }\n subscriber.complete();\n }, () => {\n buffers = null;\n }));\n });\n}\n//# sourceMappingURL=bufferCount.js.map","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, merge } from \"rxjs\"\n\nimport { configuration } from \"~/_\"\nimport { requestJSON } from \"~/browser\"\n\nimport { Component, getComponentElement } from \"../../_\"\nimport {\n IconSearchQuery,\n mountIconSearchQuery\n} from \"../query\"\nimport {\n IconSearchResult,\n mountIconSearchResult\n} from \"../result\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Icon\n */\nexport interface Icon {\n shortcode: string /* Icon shortcode */\n url: string /* Icon URL */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Icon search database\n */\nexport interface IconSearchDatabase {\n base: string /* Category base URL */\n data: Record /* Category data */\n}\n\n/**\n * Icon search index\n */\nexport interface IconSearchIndex {\n icons: IconSearchDatabase /* Icon database */\n emojis: IconSearchDatabase /* Emoji database */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Icon search\n */\nexport type IconSearch =\n | IconSearchQuery\n | IconSearchResult\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount icon search\n *\n * @param el - Icon search element\n *\n * @returns Icon search component observable\n */\nexport function mountIconSearch(\n el: HTMLElement\n): Observable> {\n const config = configuration()\n const index$ = requestJSON(\n `${config.base}/overrides/assets/javascripts/icon_search_index.json`\n )\n\n /* Retrieve nested components */\n const query = getComponentElement(\"icon-search-query\", el)\n const result = getComponentElement(\"icon-search-result\", el)\n\n /* Create and return component */\n const query$ = mountIconSearchQuery(query as HTMLInputElement)\n return merge(\n query$,\n mountIconSearchResult(result, { index$, query$ })\n )\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { fromEvent } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up extra analytics events\n */\nexport function setupAnalytics(): void {\n fromEvent(document.body, \"click\")\n .subscribe(ev => {\n if (ev.target instanceof HTMLElement) {\n const el = ev.target.closest(\"a[href^=http]\")\n if (el instanceof HTMLLinkElement)\n ga(\"send\", \"event\", \"outbound\", \"click\", el.href)\n }\n })\n}\n","/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, merge } from \"rxjs\"\nimport { switchMap } from \"rxjs/operators\"\n\nimport {\n getComponentElements,\n mountIconSearch\n} from \"./components\"\nimport { setupAnalytics } from \"./integrations\"\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Set up extra analytics events */\nsetupAnalytics()\n\n/* Set up extra component observables */\ndeclare const document$: Observable\ndocument$\n .pipe(\n switchMap(() => merge(\n\n /* Icon search */\n ...getComponentElements(\"icon-search\")\n .map(el => mountIconSearch(el))\n ))\n )\n .subscribe()\n"],"sourceRoot":""} \ No newline at end of file diff --git a/material/overrides/main.html b/material/overrides/main.html index a50816798..736424af4 100644 --- a/material/overrides/main.html +++ b/material/overrides/main.html @@ -53,5 +53,5 @@ {% endblock %} {% block scripts %} {{ super() }} - + {% endblock %} diff --git a/src/overrides/assets/javascripts/components/icon-search/_/index.ts b/src/overrides/assets/javascripts/components/icon-search/_/index.ts index 47cbc00e5..00f1cb0ff 100644 --- a/src/overrides/assets/javascripts/components/icon-search/_/index.ts +++ b/src/overrides/assets/javascripts/components/icon-search/_/index.ts @@ -40,19 +40,9 @@ import { * ------------------------------------------------------------------------- */ /** - * Icon + * Icon category */ -export interface Icon { - shortcode: string /* Icon shortcode */ - url: string /* Icon URL */ -} - -/* ------------------------------------------------------------------------- */ - -/** - * Icon search database - */ -export interface IconSearchDatabase { +export interface IconCategory { base: string /* Category base URL */ data: Record /* Category data */ } @@ -61,8 +51,8 @@ export interface IconSearchDatabase { * Icon search index */ export interface IconSearchIndex { - icons: IconSearchDatabase /* Icon database */ - emojis: IconSearchDatabase /* Emoji database */ + icons: IconCategory /* Icons */ + emojis: IconCategory /* Emojis */ } /* ------------------------------------------------------------------------- */ diff --git a/src/overrides/assets/javascripts/components/icon-search/result/index.ts b/src/overrides/assets/javascripts/components/icon-search/result/index.ts index c2086c57c..4268b0b1a 100644 --- a/src/overrides/assets/javascripts/components/icon-search/result/index.ts +++ b/src/overrides/assets/javascripts/components/icon-search/result/index.ts @@ -53,9 +53,9 @@ import { watchElementThreshold } from "~/browser" -import { renderIconSearchResult } from "../../../templates" +import { Icon, renderIconSearchResult } from "../../../templates" import { Component } from "../../_" -import { Icon, IconSearchIndex } from "../_" +import { IconSearchIndex } from "../_" import { IconSearchQuery } from "../query" /* ---------------------------------------------------------------------------- @@ -73,6 +73,14 @@ export interface IconSearchResult { * Helper types * ------------------------------------------------------------------------- */ +/** + * Watch options + */ +interface WatchOptions { + index$: Observable /* Search index observable */ + query$: Observable /* Search query observable */ +} + /** * Mount options */ @@ -85,6 +93,49 @@ interface MountOptions { * Functions * ------------------------------------------------------------------------- */ +/** + * Watch icon search result + * + * @param _el - Icon search result element + * @param options - Options + * + * @returns Icon search result observable + */ +export function watchIconSearchResult( + _el: HTMLElement, { index$, query$ }: WatchOptions +): Observable { + return combineLatest([ + query$.pipe(distinctUntilKeyChanged("value")), + index$ + .pipe( + map(({ icons, emojis }) => [ + ...Object.keys(icons.data), + ...Object.keys(emojis.data) + ]) + ) + ]) + .pipe( + map(([{ value }, data]) => search(data, value)), + switchMap(shortcodes => index$.pipe( + map(({ icons, emojis }) => ({ + data: shortcodes.map(shortcode => { + const category = + shortcode in icons.data + ? icons + : emojis + return { + shortcode, + url: [ + category.base, + category.data[shortcode] + ].join("") + } + }) + })) + )) + ) +} + /** * Mount icon search result * @@ -138,36 +189,8 @@ export function mountIconSearchResult( }) /* Create and return component */ - return combineLatest([ - query$.pipe(distinctUntilKeyChanged("value")), - index$ - .pipe( - map(({ icons, emojis }) => [ - ...Object.keys(icons.data), - ...Object.keys(emojis.data) - ]) - ) - ]) + return watchIconSearchResult(el, { query$, index$ }) .pipe( - withLatestFrom(index$), - map(([[{ value }, data], index]) => { - const results = search(data, value) - return { - data: results.map(name => { - if (name in index.icons.data) { - return { - shortcode: name, - url: `${index.icons.base}${index.icons.data[name]}` - } - } else { - return { - shortcode: name, - url: `${index.emojis.base}${index.emojis.data[name]}` - } - } - }) - } - }), tap(internal$), finalize(() => internal$.complete()), map(state => ({ ref: el, ...state })) diff --git a/src/overrides/assets/javascripts/templates/icon-search/index.tsx b/src/overrides/assets/javascripts/templates/icon-search/index.tsx index 9323bffe2..686b22cf7 100644 --- a/src/overrides/assets/javascripts/templates/icon-search/index.tsx +++ b/src/overrides/assets/javascripts/templates/icon-search/index.tsx @@ -25,7 +25,17 @@ import { wrap } from "fuzzaldrin-plus" import { translation } from "~/_" import { h } from "~/utilities" -import { Icon } from "../../components" +/* ---------------------------------------------------------------------------- + * Types + * ------------------------------------------------------------------------- */ + +/** + * Icon + */ +export interface Icon { + shortcode: string /* Icon shortcode */ + url: string /* Icon URL */ +} /* ---------------------------------------------------------------------------- * Helper functions @@ -34,13 +44,13 @@ import { Icon } from "../../components" /** * Highlight an icon search result * - * @param value - Icon search result - * @param query - Icon search query + * @param icon - Icon + * @param query - Search query * * @returns Highlighted result */ -function highlight(value: string, query: string) { - return wrap(value, query, { +function highlight(icon: Icon, query: string) { + return wrap(icon.shortcode, query, { wrap: { tagOpen: "", tagClose: "" @@ -55,8 +65,8 @@ function highlight(value: string, query: string) { /** * Render an icon search result * - * @param icon - Icon search result - * @param query - Icon search query + * @param icon - Icon + * @param query - Search query * * @returns Element */ @@ -73,7 +83,7 @@ export function renderIconSearchResult( title={translation("clipboard.copy")} data-clipboard-text={`:${icon.shortcode}:`} > - {`:${highlight(icon.shortcode, query)}:`} + {`:${highlight(icon, query)}:`} ) diff --git a/webpack.config.ts b/webpack.config.ts index 8772be4ba..ed0b07259 100644 --- a/webpack.config.ts +++ b/webpack.config.ts @@ -346,8 +346,11 @@ export default (_env: never, args: Configuration): Configuration[] => { fs.writeFileSync(file, template, "utf8") } + /* Icon indexes */ + const icons: Record = {} + const emojis: Record = {} + /* Build search index for bundled icons */ - const icons: Record = {} for (const file of await glob("**/*.svg", { cwd: "material/.icons" })) { @@ -356,7 +359,6 @@ export default (_env: never, args: Configuration): Configuration[] => { } /* Build search index for emojis (based on Twemoji) */ - const emojis: Record = {} const [database] = await glob("venv/**/twemoji_db.py") if (typeof database !== "undefined") { const contents = fs.readFileSync(database, "utf8")