1
0
mirror of https://github.com/nextapps-de/flexsearch.git synced 2025-09-08 21:20:41 +02:00

improve scoring calculation

This commit is contained in:
Thomas Wilkerling
2021-06-02 19:16:28 +02:00
parent d1491da259
commit 0fa9bcb95d
8 changed files with 334 additions and 309 deletions

View File

@@ -6,30 +6,29 @@
* https://github.com/nextapps-de/flexsearch
*/
(function _f(self){'use strict';try{if(module)self=module}catch(e){}self._factory=_f;var r;function v(a){return"undefined"!==typeof a?a:!0}function w(a){const b=Array(a);for(let c=0;c<a;c++)b[c]=y();return b}function y(){return Object.create(null)}function aa(a,b){return b.length-a.length}function C(a){return"string"===typeof a}function D(a){return"object"===typeof a}function E(a){return"function"===typeof a};const ba=/[\u0300-\u036f]/g;function ca(a){a.normalize&&(a=a.normalize("NFD").replace(ba,""));return a}function da(a,b){const c=Object.keys(a),d=c.length,e=[];let f="",g=0;for(let h=0,l,m;h<d;h++)l=c[h],(m=a[l])?(e[g++]=F(b?"(?!\\b)"+l+"(\\b|_)":l),e[g++]=m):f+=(f?"|":"")+l;f&&(e[g++]=F(b?"(?!\\b)("+f+")(\\b|_)":"("+f+")"),e[g]="");return e}function H(a,b){for(let c=0,d=b.length;c<d&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a}function F(a){return new RegExp(a,"g")}
function ea(a){let b="",c="";for(let d=0,e=a.length,f;d<e;d++)(f=a[d])!==c&&(b+=c=f);return b};const fa=/[\W_]+/;function ha(a){return ia(this,ca(a).toLowerCase(),!1,fa)};const ja={},I={};function ka(a){J(a,"add");J(a,"append");J(a,"search");J(a,"update");J(a,"remove")}function J(a,b){a[b+"Async"]=function(){const c=this,d=arguments;var e=d[d.length-1];let f;E(e)&&(f=e,delete d[d.length-1]);e=new Promise(function(g){setTimeout(function(){c.async=!0;const h=c[b].apply(c,d);c.async=!1;g(h)})});return f?(e.then(f),this):e}};function la(a,b,c,d){const e=a.length;let f=[],g;let h,l;for(var m=0;m<e;m++){var p=a[m],u=p.length,t=0;for(let k=0,n;k<u;k++)(n=p[k])&&(t+=n.length);if(!q||t<q){var q=t;h=p;l=m}}h=1===h.length?h[0]:[].concat.apply([],h);d&&(d=[h],g=y());m=q=0;for(p=e-1;0<=p;p--)if(p!==l){m++;u=a[p];t=u.length;const k=[];let n=0;for(let x=0,z;x<h.length;x++){z=h[x];let A;for(let B=0;B<t;B++){const G=u[B];if(G.length&&(A=-1!==G.indexOf(z))){if(m===e-1){if(c)c--;else if(f[q++]=z,q===b)return f;d&&(g[z]=1)}break}}A&&
(k[n++]=z)}if(d)d[m]=k;else if(!n)return[];h=k}if(d)for(let k=d.length-1,n,x;0<=k;k--)if(x=(n=d[k])&&n.length)for(let z=0,A;z<x;z++)if(A=n[z],!g[A])if(g[A]=1,c)c--;else if(f[q++]=A,q===b)return f;return f}function ma(a,b){const c=y(),d=y(),e=[];for(let f=0;f<a.length;f++)c[a[f]]=1;for(let f=0,g;f<b.length;f++){g=b[f];for(let h=0,l;h<g.length;h++)l=g[h],c[l]&&!d[l]&&(d[l]=1,e[e.length]=l)}return e};function K(a){this.l=!0!==a&&a;this.cache=y();this.h=[]}function na(a,b,c){D(a)&&(a=a.query);let d=this.cache.get(a);d||(d=this.search(a,b,c),this.cache.set(a,d));return d}K.prototype.set=function(a,b){if(!this.cache[a]){var c=this.h.length;c===this.l?delete this.cache[this.h[c-1]]:c++;for(--c;0<c;c--)this.h[c]=this.h[c-1];this.h[0]=a}this.cache[a]=b};K.prototype.get=function(a){const b=this.cache[a];if(this.l&&b&&(a=this.h.indexOf(a))){const c=this.h[a-1];this.h[a-1]=this.h[a];this.h[a]=c}return b};const oa={memory:{charset:"latin:extra",D:3,A:3,o:!1,s:"memory"},performance:{threshold:8,A:3,context:{depth:1,F:!0}},match:{charset:"latin:extra",H:"full",D:3},score:{charset:"latin:advanced",threshold:1,context:{depth:3,F:!0}},"default":{D:3,threshold:0,depth:3}};function qa(a,b,c,d,e,f){setTimeout(function(){const g=a(c,JSON.stringify(f));g&&g.then?g.then(function(){b.export(a,b,c,d,e+1)}):b.export(a,b,c,d,e+1)})};I["latin:default"]=ha;
function L(a,b){if(!(this instanceof L))return new L(a);var c;if(a){C(a)?a=oa[a]:(c=a.preset)&&(a=Object.assign({},c[c],a));c=a.charset;var d=a.lang;C(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=I[c]);C(d)&&(d=ja[d])}else a={};let e,f,g=a.context||{};this.encode=a.encode||c&&c.encode||ha;this.register=b||y();this.D=e=a.resolution||9;this.B=b=c&&c.H||a.tokenize||"strict";this.depth="strict"===b&&g.depth;this.F=v(g.bidirectional);this.s=f="memory"===a.optimize;this.o=v(a.fastupdate);this.A=a.minlength||
1;this.map=f?w(e):y();this.l=e=g.resolution||1;this.h=f?w(e):y();this.C=c&&c.C||a.rtl;this.I=(b=a.matcher||d&&d.I)&&da(b,!1);this.K=(b=a.stemmer||d&&d.K)&&da(b,!0);if(c=b=a.filter||d&&d.filter){c=b;d=y();for(let h=0,l=c.length;h<l;h++)d[c[h]]=1;c=d}this.filter=c;this.cache=(b=a.cache)&&new K(b)}
function ia(a,b,c,d){if(b&&(c&&(b=H(b,c)),a.I&&(b=H(b,a.I)),a.K&&1<b.length&&(b=H(b,a.K)),d||""===d)){b=b.split(d);if(a.filter){a=a.filter;c=b.length;d=[];for(let e=0,f=0;e<c;e++){const g=b[e];g&&!a[g]&&(d[f++]=g)}a=d}else a=b;return a}return b}r=L.prototype;r.append=function(a,b){return this.add(a,b,!0)};
r.add=function(a,b,c,d){if(!d&&!c&&this.register[a])return this.update(a,b);if(b&&(a||0===a)&&(b=this.encode(b),d=b.length)){const m=this.depth,p=this.D,u=y(),t=y();for(let q=0;q<d;q++){let k=b[this.C?d-1-q:q];var e=k.length;if(k&&e>=this.A&&(m||!u[k])){var f=Math.min(p/d*q|0,q),g="";switch(this.B){case "full":if(3<e){for(var h=0;h<e;h++){var l=h?Math.min(f/2+p/e*h/2|0,f+h):f;for(let n=e;n>h;n--)g=k.substring(h,n),g.length>=this.A&&M(this,u,g,l,a,c)}break}case "reverse":if(2<e){for(h=e-1;0<h;h--)g=
k[h]+g,g.length>=this.A&&M(this,u,g,f,a,c);g=""}case "forward":if(1<e)for(h=0;h<e;h++)g+=k[h],g.length>=this.A&&M(this,u,g,f,a,c);break;default:if(M(this,u,k,f,a,c),m&&1<d&&q<d-1)for(e=y(),f=k,g=Math.min(m+1,d-q),e[f]=1,h=1;h<g;h++)(k=b[this.C?d-1-q-h:q+h])&&k.length>=this.A&&!e[k]?(e[k]=1,l=this.F&&k>f,M(this,t,l?f:k,0,a,c,l?k:f)):g=Math.min(g+1,d-q)}}}this.o||(this.register[a]=1)}return this};
function ea(a){let b="",c="";for(let d=0,e=a.length,f;d<e;d++)(f=a[d])!==c&&(b+=c=f);return b};var ha={encode:fa,B:!1,C:""};const ia=/[\W_]+/;function fa(a){return ja(this,ca(a).toLowerCase(),!1,ia)};const ka={},I={};function la(a){J(a,"add");J(a,"append");J(a,"search");J(a,"update");J(a,"remove")}function J(a,b){a[b+"Async"]=function(){const c=this,d=arguments;var e=d[d.length-1];let f;E(e)&&(f=e,delete d[d.length-1]);e=new Promise(function(g){setTimeout(function(){c.async=!0;const h=c[b].apply(c,d);c.async=!1;g(h)})});return f?(e.then(f),this):e}};function ma(a,b,c,d){const e=a.length;let f=[],g;let h,l;for(var m=0;m<e;m++){var n=a[m],u=n.length,t=0;for(let k=0,p;k<u;k++)(p=n[k])&&(t+=p.length);if(!q||t<q){var q=t;h=n;l=m}}h=1===h.length?h[0]:[].concat.apply([],h);d&&(d=[h],g=y());m=q=0;for(n=e-1;0<=n;n--)if(n!==l){m++;u=a[n];t=u.length;const k=[];let p=0;for(let x=0,z;x<h.length;x++){z=h[x];let A;for(let B=0;B<t;B++){const G=u[B];if(G.length&&(A=-1!==G.indexOf(z))){if(m===e-1){if(c)c--;else if(f[q++]=z,q===b)return f;d&&(g[z]=1)}break}}A&&
(k[p++]=z)}if(d)d[m]=k;else if(!p)return[];h=k}if(d)for(let k=d.length-1,p,x;0<=k;k--)if(x=(p=d[k])&&p.length)for(let z=0,A;z<x;z++)if(A=p[z],!g[A])if(g[A]=1,c)c--;else if(f[q++]=A,q===b)return f;return f}function na(a,b){const c=y(),d=y(),e=[];for(let f=0;f<a.length;f++)c[a[f]]=1;for(let f=0,g;f<b.length;f++){g=b[f];for(let h=0,l;h<g.length;h++)l=g[h],c[l]&&!d[l]&&(d[l]=1,e[e.length]=l)}return e};function K(a){this.l=!0!==a&&a;this.cache=y();this.h=[]}function oa(a,b,c){D(a)&&(a=a.query);let d=this.cache.get(a);d||(d=this.search(a,b,c),this.cache.set(a,d));return d}K.prototype.set=function(a,b){if(!this.cache[a]){var c=this.h.length;c===this.l?delete this.cache[this.h[c-1]]:c++;for(--c;0<c;c--)this.h[c]=this.h[c-1];this.h[0]=a}this.cache[a]=b};K.prototype.get=function(a){const b=this.cache[a];if(this.l&&b&&(a=this.h.indexOf(a))){const c=this.h[a-1];this.h[a-1]=this.h[a];this.h[a]=c}return b};const qa={memory:{charset:"latin:extra",D:3,A:3,o:!1,s:"memory"},performance:{threshold:8,A:3,context:{depth:1,F:!0}},match:{charset:"latin:extra",C:"full",D:3},score:{charset:"latin:advanced",threshold:1,context:{depth:3,F:!0}},"default":{D:3,threshold:0,depth:3}};function ra(a,b,c,d,e,f){setTimeout(function(){const g=a(c,JSON.stringify(f));g&&g.then?g.then(function(){b.export(a,b,c,d,e+1)}):b.export(a,b,c,d,e+1)})};function L(a,b){if(!(this instanceof L))return new L(a);var c;if(a){C(a)?a=qa[a]:(c=a.preset)&&(a=Object.assign({},c[c],a));c=a.charset;var d=a.lang;C(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=I[c]);C(d)&&(d=ka[d])}else a={};let e,f,g=a.context||{};this.encode=a.encode||c&&c.encode||fa;this.register=b||y();this.D=e=a.resolution||9;this.C=b=c&&c.C||a.tokenize||"strict";this.depth="strict"===b&&g.depth;this.F=v(g.bidirectional);this.s=f=v(a.optimize);this.o=v(a.fastupdate);this.A=a.minlength||1;this.map=
f?w(e):y();this.l=e=g.resolution||1;this.h=f?w(e):y();this.B=c&&c.B||a.rtl;this.I=(b=a.matcher||d&&d.I)&&da(b,!1);this.K=(b=a.stemmer||d&&d.K)&&da(b,!0);if(c=b=a.filter||d&&d.filter){c=b;d=y();for(let h=0,l=c.length;h<l;h++)d[c[h]]=1;c=d}this.filter=c;this.cache=(b=a.cache)&&new K(b)}
function ja(a,b,c,d){if(b&&(c&&(b=H(b,c)),a.I&&(b=H(b,a.I)),a.K&&1<b.length&&(b=H(b,a.K)),d||""===d)){b=b.split(d);if(a.filter){a=a.filter;c=b.length;d=[];for(let e=0,f=0;e<c;e++){const g=b[e];g&&!a[g]&&(d[f++]=g)}a=d}else a=b;return a}return b}r=L.prototype;r.append=function(a,b){return this.add(a,b,!0)};
r.add=function(a,b,c,d){if(!d&&!c&&this.register[a])return this.update(a,b);if(b&&(a||0===a)&&(b=this.encode(b),d=b.length)){const m=this.depth,n=this.D,u=y(),t=y();for(let q=0;q<d;q++){let k=b[this.B?d-1-q:q];var e=k.length;if(k&&e>=this.A&&(m||!u[k])){var f=d<n?q:n/d*q|0,g="";switch(this.C){case "full":if(3<e){for(f=0;f<e;f++)for(var h=e;h>f;h--)if(h-f>=this.A){var l=d+e<n?q+f:n/(d+e)*(q+f)|0;g=k.substring(f,h);M(this,u,g,l,a,c)}break}case "reverse":if(2<e){for(h=e-1;0<h;h--)g=k[h]+g,g.length>=
this.A&&M(this,u,g,d+e<n?q+h:n/(d+e)*(q+h)|0,a,c);g=""}case "forward":if(1<e)for(h=0;h<e;h++)g+=k[h],g.length>=this.A&&M(this,u,g,f,a,c);break;default:if(M(this,u,k,f,a,c),m&&1<d&&q<d-1)for(e=this.l,g=y(),f=k,h=Math.min(m+1,d-q),g[f]=1,l=1;l<h;l++)if((k=b[this.B?d-1-q-l:q+l])&&k.length>=this.A&&!g[k]){g[k]=1;const p=this.F&&k>f;M(this,t,p?f:k,h+d<e?q+(l-1):e/(h+d)*(q+l)|0,a,c,p?k:f)}}}}this.o||(this.register[a]=1)}return this};
function M(a,b,c,d,e,f,g){let h=g?a.h:a.map;if(!b[c]||g&&!b[c][g])a.s&&(h=h[d]),g?(b=b[c]||(b[c]=y()),b[g]=1,h=h[g]||(h[g]=y())):b[c]=1,h=h[c]||(h[c]=[]),a.s||(h=h[d]||(h[d]=[])),f&&-1!==h.indexOf(e)||(h[h.length]=e,a.o&&(a=a.register[e]||(a.register[e]=[]),a[a.length]=h))}
r.search=function(a,b,c){D(a)?(c=a,a=c.query):D(b)&&(c=b);let d=[],e;let f,g=0;if(c){b=c.limit;g=c.offset||0;var h=c.context;f=c.suggest}if(a&&(a=this.encode(a),e=a.length,1<e)){c=y();var l=[];for(let p=0,u=0,t;p<e;p++)if((t=a[p])&&t.length>=this.A&&!c[t])if(this.s||f||this.map[t])l[u++]=t,c[t]=1;else return d;a=l;e=a.length}if(!e)return d;b||(b=100);h=this.depth&&1<e&&!1!==h;c=0;let m;h?(m=a[0],c=1):1<e&&a.sort(aa);for(let p,u;c<e;c++){u=a[c];h?(p=ra(this,d,f,b,g,2===e,u,m),f&&!1===p&&d.length||
(m=u)):p=ra(this,d,f,b,g,1===e,u);if(p)return p;if(f&&c===e-1){l=d.length;if(!l){if(h){h=0;c=-1;continue}return d}if(1===l)return sa(d[0],b,g)}}return la(d,b,g,f)};
function ra(a,b,c,d,e,f,g,h){let l=[],m=h?a.h:a.map;a.s||(m=ta(m,g,h,a.F));if(m){let p=0;const u=Math.min(m.length,h?a.l:a.D);for(let t=0,q=0,k,n;t<u;t++)if(k=m[t])if(a.s&&(k=ta(k,g,h,a.F)),e&&k&&f&&(n=k.length,n<=e?(e-=n,k=null):(k=k.slice(e),e=0)),k&&(l[p++]=k,f&&(q+=k.length,q>=d)))break;if(p){if(f)return sa(l,d,0);b[b.length]=l;return}}return!c&&l}function sa(a,b,c){a=1===a.length?a[0]:[].concat.apply([],a);return c||a.length>b?a.slice(c,c+b):a}
function ta(a,b,c,d){c?(d=d&&b>c,a=(a=a[d?b:c])&&a[d?c:b]):a=a[b];return a}r.contain=function(a){return!!this.register[a]};r.update=function(a,b){return this.remove(a).add(a,b)};
r.search=function(a,b,c){D(a)?(c=a,a=c.query):D(b)&&(c=b);let d=[],e;let f,g=0;if(c){b=c.limit;g=c.offset||0;var h=c.context;f=c.suggest}if(a&&(a=this.encode(a),e=a.length,1<e)){c=y();var l=[];for(let n=0,u=0,t;n<e;n++)if((t=a[n])&&t.length>=this.A&&!c[t])if(this.s||f||this.map[t])l[u++]=t,c[t]=1;else return d;a=l;e=a.length}if(!e)return d;b||(b=100);h=this.depth&&1<e&&!1!==h;c=0;let m;h?(m=a[0],c=1):1<e&&a.sort(aa);for(let n,u;c<e;c++){u=a[c];h?(n=sa(this,d,f,b,g,2===e,u,m),f&&!1===n&&d.length||
(m=u)):n=sa(this,d,f,b,g,1===e,u);if(n)return n;if(f&&c===e-1){l=d.length;if(!l){if(h){h=0;c=-1;continue}return d}if(1===l)return ta(d[0],b,g)}}return ma(d,b,g,f)};
function sa(a,b,c,d,e,f,g,h){let l=[],m=h?a.h:a.map;a.s||(m=ua(m,g,h,a.F));if(m){let n=0;const u=Math.min(m.length,h?a.l:a.D);for(let t=0,q=0,k,p;t<u;t++)if(k=m[t])if(a.s&&(k=ua(k,g,h,a.F)),e&&k&&f&&(p=k.length,p<=e?(e-=p,k=null):(k=k.slice(e),e=0)),k&&(l[n++]=k,f&&(q+=k.length,q>=d)))break;if(n){if(f)return ta(l,d,0);b[b.length]=l;return}}return!c&&l}function ta(a,b,c){a=1===a.length?a[0]:[].concat.apply([],a);return c||a.length>b?a.slice(c,c+b):a}
function ua(a,b,c,d){c?(d=d&&b>c,a=(a=a[d?b:c])&&a[d?c:b]):a=a[b];return a}r.contain=function(a){return!!this.register[a]};r.update=function(a,b){return this.remove(a).add(a,b)};
r.remove=function(a,b){const c=this.register[a];if(c){if(this.o)for(let d=0,e;d<c.length;d++)e=c[d],e.splice(e.indexOf(a),1);else N(this.map,a,this.D,this.s),this.depth&&N(this.h,a,this.l,this.s);b||delete this.register[a];if(this.cache){b=this.cache;for(let d=0,e,f;d<b.h.length;d++)f=b.h[d],e=b.cache[f],-1!==e.indexOf(a)&&(b.h.splice(d--,1),delete b.cache[f])}}return this};
function N(a,b,c,d,e){let f=0;if(a.constructor===Array)if(e)b=a.indexOf(b),-1!==b?1<a.length&&(a.splice(b,1),f++):f++;else{e=Math.min(a.length,c);for(let g=0,h;g<e;g++)if(h=a[g])f=N(h,b,c,d,e),d||f||delete a[g]}else for(let g in a)(f=N(a[g],b,c,d,e))||delete a[g];return f}r.searchCache=na;
r.export=function(a,b,c,d,e){let f,g;switch(e||(e=0)){case 0:f="reg";if(this.o){g=y();for(let h in this.register)g[h]=1}else g=this.register;break;case 1:f="cfg";g={doc:0,opt:this.s?1:0};break;case 2:f="map";g=this.map;break;case 3:f="ctx";g=this.h;break;default:return}qa(a,b||this,c?c+"."+f:f,d,e,g);return!0};r.import=function(a,b){if(b)switch(C(b)&&(b=JSON.parse(b)),a){case "cfg":this.s=!!b.opt;break;case "reg":this.o=!1;this.register=b;break;case "map":this.map=b;break;case "ctx":this.h=b}};ka(L.prototype);function ua(a){a=a.data;var b=self._index;const c=a.args;var d=a.task;switch(d){case "init":d=a.options||{};a=a.factory;b=d.encode;d.cache=!1;b&&0===b.indexOf("function")&&(d.encode=Function("return "+b)());a?(Function("return "+a)()(self),self._index=new self.FlexSearch.Index(d),delete self.FlexSearch):self._index=new L(d);break;default:a=a.id,b=b[d].apply(b,c),postMessage("search"===d?{id:a,msg:b}:{id:a})}};let va=0;function O(a){var b;a?E(b=a.encode)&&(a.encode=b.toString()):a={};(b=(self||window)._factory)&&(b=b.toString());const c=self.exports,d=this;this.m=wa(b,c,a.worker);this.h=y();if(this.m){if(c)this.m.on("message",function(e){d.h[e.id](e.msg);delete d.h[e.id]});else this.m.onmessage=function(e){e=e.data;d.h[e.id](e.msg);delete d.h[e.id]};this.m.postMessage({task:"init",factory:b,options:a})}}Q("add");Q("append");Q("search");Q("update");Q("remove");
function Q(a){O.prototype[a]=O.prototype[a+"Async"]=function(){const b=this,c=[].slice.call(arguments);var d=c[c.length-1];let e;E(d)&&(e=d,c.splice(c.length-1,1));d=new Promise(function(f){setTimeout(function(){b.h[++va]=f;b.m.postMessage({task:a,id:va,args:c})})});return e?(d.then(e),this):d}}
function wa(a,b,c){let d;try{d=b?eval('new (require("worker_threads")["Worker"])("../dist/node/node.js")'):a?new Worker(URL.createObjectURL(new Blob(["onmessage="+ua.toString()],{type:"text/javascript"}))):new Worker(C(c)?c:"worker/worker.js",{type:"module"})}catch(e){}return d};function R(a){if(!(this instanceof R))return new R(a);var b=a.document||a.doc||a,c;this.L=[];this.h=[];this.B=[];this.register=y();this.key=(c=b.key||b.id)&&S(c,this.B)||"id";this.o=v(a.fastupdate);this.G=(c=b.store)&&!0!==c&&[];this.store=c&&y();this.J=(c=b.tag)&&S(c,this.B);this.l=c&&y();this.cache=(c=a.cache)&&new K(c);a.cache=!1;this.m=a.worker;this.async=!1;c=y();let d=b.index||b.field||b;C(d)&&(d=[d]);for(let e=0,f,g;e<d.length;e++)f=d[e],C(f)||(g=f,f=f.field),g=D(g)?Object.assign({},a,g):a,
this.m&&(c[f]=new O(g),c[f].m||(this.m=!1)),this.m||(c[f]=new L(g,this.register)),this.L[e]=S(f,this.B),this.h[e]=f;if(this.G)for(a=b.store,C(a)&&(a=[a]),b=0;b<a.length;b++)this.G[b]=S(a[b],this.B);this.index=c}function S(a,b){const c=a.split(":");let d=0;for(let e=0;e<c.length;e++)a=c[e],0<=a.indexOf("[]")&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}function T(a,b){if(C(b))a=a[b];else for(let c=0;a&&c<b.length;c++)a=a[b[c]];return a}
function N(a,b,c,d,e){let f=0;if(a.constructor===Array)if(e)b=a.indexOf(b),-1!==b?1<a.length&&(a.splice(b,1),f++):f++;else{e=Math.min(a.length,c);for(let g=0,h;g<e;g++)if(h=a[g])f=N(h,b,c,d,e),d||f||delete a[g]}else for(let g in a)(f=N(a[g],b,c,d,e))||delete a[g];return f}r.searchCache=oa;
r.export=function(a,b,c,d,e){let f,g;switch(e||(e=0)){case 0:f="reg";if(this.o){g=y();for(let h in this.register)g[h]=1}else g=this.register;break;case 1:f="cfg";g={doc:0,opt:this.s?1:0};break;case 2:f="map";g=this.map;break;case 3:f="ctx";g=this.h;break;default:return}ra(a,b||this,c?c+"."+f:f,d,e,g);return!0};r.import=function(a,b){if(b)switch(C(b)&&(b=JSON.parse(b)),a){case "cfg":this.s=!!b.opt;break;case "reg":this.o=!1;this.register=b;break;case "map":this.map=b;break;case "ctx":this.h=b}};la(L.prototype);function va(a){a=a.data;var b=self._index;const c=a.args;var d=a.task;switch(d){case "init":d=a.options||{};a=a.factory;b=d.encode;d.cache=!1;b&&0===b.indexOf("function")&&(d.encode=Function("return "+b)());a?(Function("return "+a)()(self),self._index=new self.FlexSearch.Index(d),delete self.FlexSearch):self._index=new L(d);break;default:a=a.id,b=b[d].apply(b,c),postMessage("search"===d?{id:a,msg:b}:{id:a})}};let wa=0;function O(a){var b;a?E(b=a.encode)&&(a.encode=b.toString()):a={};(b=(self||window)._factory)&&(b=b.toString());const c=self.exports,d=this;this.m=xa(b,c,a.worker);this.h=y();if(this.m){if(c)this.m.on("message",function(e){d.h[e.id](e.msg);delete d.h[e.id]});else this.m.onmessage=function(e){e=e.data;d.h[e.id](e.msg);delete d.h[e.id]};this.m.postMessage({task:"init",factory:b,options:a})}}P("add");P("append");P("search");P("update");P("remove");
function P(a){O.prototype[a]=O.prototype[a+"Async"]=function(){const b=this,c=[].slice.call(arguments);var d=c[c.length-1];let e;E(d)&&(e=d,c.splice(c.length-1,1));d=new Promise(function(f){setTimeout(function(){b.h[++wa]=f;b.m.postMessage({task:a,id:wa,args:c})})});return e?(d.then(e),this):d}}
function xa(a,b,c){let d;try{d=b?eval('new (require("worker_threads")["Worker"])("../dist/node/node.js")'):a?new Worker(URL.createObjectURL(new Blob(["onmessage="+va.toString()],{type:"text/javascript"}))):new Worker(C(c)?c:"worker/worker.js",{type:"module"})}catch(e){}return d};function R(a){if(!(this instanceof R))return new R(a);var b=a.document||a.doc||a,c;this.L=[];this.h=[];this.G=[];this.register=y();this.key=(c=b.key||b.id)&&S(c,this.G)||"id";this.o=v(a.fastupdate);this.H=(c=b.store)&&!0!==c&&[];this.store=c&&y();this.J=(c=b.tag)&&S(c,this.G);this.l=c&&y();this.cache=(c=a.cache)&&new K(c);a.cache=!1;this.m=a.worker;this.async=!1;c=y();let d=b.index||b.field||b;C(d)&&(d=[d]);for(let e=0,f,g;e<d.length;e++)f=d[e],C(f)||(g=f,f=f.field),g=D(g)?Object.assign({},a,g):a,
this.m&&(c[f]=new O(g),c[f].m||(this.m=!1)),this.m||(c[f]=new L(g,this.register)),this.L[e]=S(f,this.G),this.h[e]=f;if(this.H)for(a=b.store,C(a)&&(a=[a]),b=0;b<a.length;b++)this.H[b]=S(a[b],this.G);this.index=c}function S(a,b){const c=a.split(":");let d=0;for(let e=0;e<c.length;e++)a=c[e],0<=a.indexOf("[]")&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}function T(a,b){if(C(b))a=a[b];else for(let c=0;a&&c<b.length;c++)a=a[b[c]];return a}
function U(a,b,c,d,e){a=a[e];if(d===c.length-1)b[e]=a;else if(a)if(a.constructor===Array)for(b=b[e]=Array(a.length),e=0;e<a.length;e++)U(a,b,c,d,e);else b=b[e]||(b[e]=y()),e=c[++d],U(a,b,c,d,e)}function V(a,b,c,d,e,f,g,h){a=a[g];if(d===b.length-1){if(a.constructor===Array){if(c[d]){for(b=0;b<a.length;b++)e.add(f,a[b],!0,!0);return}a=a.join(" ")}e.add(f,a,h,!0)}else if(a)if(a.constructor===Array)for(g=0;g<a.length;g++)V(a,b,c,d,e,f,g,h);else g=b[++d],V(a,b,c,d,e,f,g,h)}r=R.prototype;
r.add=function(a,b,c){D(a)&&(b=a,a=T(b,this.key));if(b&&(a||0===a)){if(this.register[a])return this.update(a,b);for(let d=0,e,f;d<this.h.length;d++)f=this.h[d],e=this.L[d],C(e)&&(e=[e]),V(b,e,this.B,0,this.index[f],a,e[0],c);if(this.J){let d=T(b,this.J),e=y();C(d)&&(d=[d]);for(let f=0,g,h;f<d.length;f++)if(g=d[f],!e[g]&&(e[g]=1,h=this.l[g]||(this.l[g]=[]),!c||-1===h.indexOf(a)))if(h[h.length]=a,this.o){const l=this.register[a]||(this.register[a]=[]);l[l.length]=h}}if(this.store){let d;if(this.G){d=
y();for(let e=0,f;e<this.G.length;e++)f=this.G[e],C(f)?d[f]=b[f]:U(b,d,f,0,f[0])}this.store[a]=d||b}}return this};r.append=function(a,b){return this.add(a,b,!0)};r.update=function(a,b){return this.remove(a).add(a,b)};
r.add=function(a,b,c){D(a)&&(b=a,a=T(b,this.key));if(b&&(a||0===a)){if(this.register[a])return this.update(a,b);for(let d=0,e,f;d<this.h.length;d++)f=this.h[d],e=this.L[d],C(e)&&(e=[e]),V(b,e,this.G,0,this.index[f],a,e[0],c);if(this.J){let d=T(b,this.J),e=y();C(d)&&(d=[d]);for(let f=0,g,h;f<d.length;f++)if(g=d[f],!e[g]&&(e[g]=1,h=this.l[g]||(this.l[g]=[]),!c||-1===h.indexOf(a)))if(h[h.length]=a,this.o){const l=this.register[a]||(this.register[a]=[]);l[l.length]=h}}if(this.store){let d;if(this.H){d=
y();for(let e=0,f;e<this.H.length;e++)f=this.H[e],C(f)?d[f]=b[f]:U(b,d,f,0,f[0])}this.store[a]=d||b}}return this};r.append=function(a,b){return this.add(a,b,!0)};r.update=function(a,b){return this.remove(a).add(a,b)};
r.remove=function(a){D(a)&&(a=T(a,this.key));if(this.register[a]){var b=this.o&&!this.m;for(var c=0;c<this.h.length&&(this.index[this.h[c]].remove(a,b),!b);c++);if(this.J&&!b)for(let d in this.l)b=this.l[d],c=b.indexOf(a),-1!==c&&(1<b.length?b.splice(c,1):delete this.l[d]);this.store&&delete this.store[a];delete this.register[a]}return this};
r.search=function(a,b,c,d){D(a)?(c=a,a=c.query):D(b)&&(c=b,b=0);let e=[],f=[],g,h,l,m,p,u,t=0;if(c)if(c.constructor===Array)l=c,c=null;else{l=(g=c.pluck)||c.index||c.field||c;m=c.tag;h=this.store&&c.enrich;p="and"===c.bool;b=c.limit||100;u=c.offset||0;if(m&&(C(m)&&(m=[m]),!a)){for(let k=0,n;k<m.length;k++)if(n=xa.call(this,m[k],b,u,h))e[e.length]=n,t++;return t?e:[]}C(l)?l=[l]:l.constructor===Array||(l=null)}l||(l=this.h);p=p&&(1<l.length||m&&1<m.length);const q=!d&&(this.m||this.async)&&[];for(let k=
0,n,x,z;k<l.length;k++){let A;x=l[k];C(x)||(A=x,x=x.field);if(q)q[k]=this.index[x].searchAsync(a,b,A||c);else{d?n=d[k]:n=this.index[x].search(a,b,A||c);z=n&&n.length;if(m&&z){const B=[];let G=0;p&&(B[0]=[n]);for(let W=0,pa,P;W<m.length;W++)if(pa=m[W],z=(P=this.l[pa])&&P.length)G++,B[B.length]=p?[P]:P;G&&(n=p?la(B,b||100,u||0):ma(n,B),z=n.length)}if(z)f[t]=x,e[t++]=n;else if(p)return[]}}if(q){const k=this;return new Promise(function(n){Promise.all(q).then(function(x){n(k.search(a,b,c,x))})})}if(!t)return[];
if(g&&(!h||!this.store))return e[0];for(let k=0,n;k<f.length;k++){n=e[k];n.length&&h&&(n=ya.call(this,n));if(g)return n;e[k]={field:f[k],result:n}}return e};function xa(a,b,c,d){let e=this.l[a],f=e&&e.length-c;if(f&&0<f){if(f>b||c)e=e.slice(c,c+b);d&&(e=ya.call(this,e));return{tag:a,result:e}}}function ya(a){const b=Array(a.length);for(let c=0,d;c<a.length;c++)d=a[c],b[c]={key:d,doc:this.store[d]};return b}r.contain=function(a){return!!this.register[a]};r.get=function(a){return this.store[a]};
r.set=function(a,b){this.store[a]=b;return this};r.searchCache=na;r.export=function(a,b,c,d,e){e||(e=0);d||(d=0);if(d<this.h.length){const f=this.h[d],g=this.index[f];b=this;setTimeout(function(){g.export(a,b,e?f.replace(":","-"):"",d,e++)||(d++,e=1,b.export(a,b,f,d,e))})}else{let f;switch(e){case 1:c="tag";f=this.l;break;case 2:c="store";f=this.store;break;default:return}qa(a,this,c,d,e,f)}};
r.import=function(a,b){if(b)switch(C(b)&&(b=JSON.parse(b)),a){case "tag":this.l=b;break;case "reg":this.o=!1;this.register=b;for(let d=0,e;d<this.h.length;d++)e=this.index[this.h[d]],e.register=b,e.o=!1;break;case "store":this.store=b;break;default:a=a.split(".");const c=a[0];a=a[1];c&&a&&this.index[c].import(a,b)}};ka(R.prototype);const za=/[\W_]+/,Aa=[F("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",F("[\u00e8\u00e9\u00ea\u00eb]"),"e",F("[\u00ec\u00ed\u00ee\u00ef]"),"i",F("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",F("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",F("[\u00fd\u0177\u00ff]"),"y",F("\u00f1"),"n",F("[\u00e7c]"),"k",F("\u00df"),"s",F(" & ")," and "];function Ba(a){return ia(this,ca(a).toLowerCase(),!a.normalize&&Aa,za)};var Da={encode:Ca,C:!1,H:"strict"};const Ea=/[^a-z0-9]+/,Fa={b:"p",v:"f",w:"f",z:"s",x:"s","\u00df":"s",d:"t",n:"m",c:"k",g:"k",j:"k",q:"k",i:"e",y:"e",u:"o"};function Ca(a){a=Ba.call(this,a).join(" ");const b=[];if(a){const c=a.split(Ea),d=c.length;for(let e=0,f,g=0;e<d;e++)if((a=c[e])&&(!this.filter||!this.filter[a])){f=a[0];let h=Fa[f]||f,l=h;for(let m=1;m<a.length;m++){f=a[m];const p=Fa[f]||f;p&&p!==l&&(h+=p,l=p)}b[g++]=h}}return b};var Ha={encode:Ga,C:!1,H:""};const Ia=[F("ae"),"a",F("oe"),"o",F("sh"),"s",F("th"),"t",F("ph"),"f",F("pf"),"f"];function Ga(a,b){a&&(a=Ca.call(this,a).join(" "),2<a.length&&(a=H(a,Ia)),b||(1<a.length&&(a=ea(a)),a&&(a=a.split(" "))));return a};var Ka={encode:Ja,C:!1,H:""};const La=F("(?!\\b)[aeiouy]");function Ja(a){a&&(a=Ga.call(this,a,!0),1<a.length&&(a=a.replace(La,"")),1<a.length&&(a=ea(a)),a&&(a=a.split(" ")));return a};I["latin:simple"]={encode:Ba,C:!1,H:""};I["latin:balance"]=Da;I["latin:advanced"]=Ha;I["latin:extra"]=Ka;const X=self;let Y;const Z={Index:L,Document:R,Worker:O,registerCharset:function(a,b){I[a]=b},registerLanguage:function(a,b){ja[a]=b}};(Y=X.define)&&Y.amd?Y([],function(){return Z}):X.exports?X.exports=Z:X.FlexSearch=Z;}(this));
r.search=function(a,b,c,d){D(a)?(c=a,a=c.query):D(b)&&(c=b,b=0);let e=[],f=[],g,h,l,m,n,u,t=0;if(c)if(c.constructor===Array)l=c,c=null;else{l=(g=c.pluck)||c.index||c.field||c;m=c.tag;h=this.store&&c.enrich;n="and"===c.bool;b=c.limit||100;u=c.offset||0;if(m&&(C(m)&&(m=[m]),!a)){for(let k=0,p;k<m.length;k++)if(p=ya.call(this,m[k],b,u,h))e[e.length]=p,t++;return t?e:[]}C(l)?l=[l]:l.constructor===Array||(l=null)}l||(l=this.h);n=n&&(1<l.length||m&&1<m.length);const q=!d&&(this.m||this.async)&&[];for(let k=
0,p,x,z;k<l.length;k++){let A;x=l[k];C(x)||(A=x,x=x.field);if(q)q[k]=this.index[x].searchAsync(a,b,A||c);else{d?p=d[k]:p=this.index[x].search(a,b,A||c);z=p&&p.length;if(m&&z){const B=[];let G=0;n&&(B[0]=[p]);for(let W=0,pa,Q;W<m.length;W++)if(pa=m[W],z=(Q=this.l[pa])&&Q.length)G++,B[B.length]=n?[Q]:Q;G&&(p=n?ma(B,b||100,u||0):na(p,B),z=p.length)}if(z)f[t]=x,e[t++]=p;else if(n)return[]}}if(q){const k=this;return new Promise(function(p){Promise.all(q).then(function(x){p(k.search(a,b,c,x))})})}if(!t)return[];
if(g&&(!h||!this.store))return e[0];for(let k=0,p;k<f.length;k++){p=e[k];p.length&&h&&(p=za.call(this,p));if(g)return p;e[k]={field:f[k],result:p}}return e};function ya(a,b,c,d){let e=this.l[a],f=e&&e.length-c;if(f&&0<f){if(f>b||c)e=e.slice(c,c+b);d&&(e=za.call(this,e));return{tag:a,result:e}}}function za(a){const b=Array(a.length);for(let c=0,d;c<a.length;c++)d=a[c],b[c]={key:d,doc:this.store[d]};return b}r.contain=function(a){return!!this.register[a]};r.get=function(a){return this.store[a]};
r.set=function(a,b){this.store[a]=b;return this};r.searchCache=oa;r.export=function(a,b,c,d,e){e||(e=0);d||(d=0);if(d<this.h.length){const f=this.h[d],g=this.index[f];b=this;setTimeout(function(){g.export(a,b,e?f.replace(":","-"):"",d,e++)||(d++,e=1,b.export(a,b,f,d,e))})}else{let f;switch(e){case 1:c="tag";f=this.l;break;case 2:c="store";f=this.store;break;default:return}ra(a,this,c,d,e,f)}};
r.import=function(a,b){if(b)switch(C(b)&&(b=JSON.parse(b)),a){case "tag":this.l=b;break;case "reg":this.o=!1;this.register=b;for(let d=0,e;d<this.h.length;d++)e=this.index[this.h[d]],e.register=b,e.o=!1;break;case "store":this.store=b;break;default:a=a.split(".");const c=a[0];a=a[1];c&&a&&this.index[c].import(a,b)}};la(R.prototype);var Ba={encode:Aa,B:!1,C:""};const Ca=/[\W_]+/,Da=[F("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",F("[\u00e8\u00e9\u00ea\u00eb]"),"e",F("[\u00ec\u00ed\u00ee\u00ef]"),"i",F("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",F("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",F("[\u00fd\u0177\u00ff]"),"y",F("\u00f1"),"n",F("[\u00e7c]"),"k",F("\u00df"),"s",F(" & ")," and "];function Aa(a){return ja(this,ca(a).toLowerCase(),!a.normalize&&Da,Ca)};var Fa={encode:Ea,B:!1,C:"strict"};const Ga=/[^a-z0-9]+/,Ha={b:"p",v:"f",w:"f",z:"s",x:"s","\u00df":"s",d:"t",n:"m",c:"k",g:"k",j:"k",q:"k",i:"e",y:"e",u:"o"};function Ea(a){a=Aa.call(this,a).join(" ");const b=[];if(a){const c=a.split(Ga),d=c.length;for(let e=0,f,g=0;e<d;e++)if((a=c[e])&&(!this.filter||!this.filter[a])){f=a[0];let h=Ha[f]||f,l=h;for(let m=1;m<a.length;m++){f=a[m];const n=Ha[f]||f;n&&n!==l&&(h+=n,l=n)}b[g++]=h}}return b};var Ja={encode:Ia,B:!1,C:""};const Ka=[F("ae"),"a",F("oe"),"o",F("sh"),"s",F("th"),"t",F("ph"),"f",F("pf"),"f"];function Ia(a,b){a&&(a=Ea.call(this,a).join(" "),2<a.length&&(a=H(a,Ka)),b||(1<a.length&&(a=ea(a)),a&&(a=a.split(" "))));return a};var Ma={encode:La,B:!1,C:""};const Na=F("(?!\\b)[aeiouy]");function La(a){a&&(a=Ia.call(this,a,!0),1<a.length&&(a=a.replace(Na,"")),1<a.length&&(a=ea(a)),a&&(a=a.split(" ")));return a};I["latin:default"]=ha;I["latin:simple"]=Ba;I["latin:balance"]=Fa;I["latin:advanced"]=Ja;I["latin:extra"]=Ma;const X=self;let Y;const Z={Index:L,Document:R,Worker:O,registerCharset:function(a,b){I[a]=b},registerLanguage:function(a,b){ka[a]=b}};(Y=X.define)&&Y.amd?Y([],function(){return Z}):X.exports?X.exports=Z:X.FlexSearch=Z;}(this));

View File

@@ -6,24 +6,23 @@
* https://github.com/nextapps-de/flexsearch
*/
(function(self){'use strict';var u;function v(a){return"undefined"!==typeof a?a:!0}function x(a){const b=Array(a);for(let c=0;c<a;c++)b[c]=z();return b}function z(){return Object.create(null)}function aa(a,b){return b.length-a.length}function C(a){return"string"===typeof a}function D(a){return"object"===typeof a};const ba=/[\u0300-\u036f]/g;function E(a){a.normalize&&(a=a.normalize("NFD").replace(ba,""));return a}function F(a,b){const c=Object.keys(a),e=c.length,d=[];let f="",h=0;for(let g=0,l,m;g<e;g++)l=c[g],(m=a[l])?(d[h++]=H(b?"(?!\\b)"+l+"(\\b|_)":l),d[h++]=m):f+=(f?"|":"")+l;f&&(d[h++]=H(b?"(?!\\b)("+f+")(\\b|_)":"("+f+")"),d[h]="");return d}function I(a,b){for(let c=0,e=b.length;c<e&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a}function H(a){return new RegExp(a,"g")}
function J(a){let b="",c="";for(let e=0,d=a.length,f;e<d;e++)(f=a[e])!==c&&(b+=c=f);return b};const ca=/[\W_]+/;function K(a){return M(this,E(a).toLowerCase(),!1,ca)};const da={},N={};function ea(a){O(a,"add");O(a,"append");O(a,"search");O(a,"update");O(a,"remove")}function O(a,b){a[b+"Async"]=function(){const c=this,e=arguments;var d=e[e.length-1];let f;"function"===typeof d&&(f=d,delete e[e.length-1]);d=new Promise(function(h){setTimeout(function(){c.async=!0;const g=c[b].apply(c,e);c.async=!1;h(g)})});return f?(d.then(f),this):d}};function fa(a,b,c,e){const d=a.length;let f=[],h;let g,l;for(var m=0;m<d;m++){var p=a[m],t=p.length,r=0;for(let k=0,n;k<t;k++)(n=p[k])&&(r+=n.length);if(!q||r<q){var q=r;g=p;l=m}}g=1===g.length?g[0]:[].concat.apply([],g);e&&(e=[g],h=z());m=q=0;for(p=d-1;0<=p;p--)if(p!==l){m++;t=a[p];r=t.length;const k=[];let n=0;for(let w=0,y;w<g.length;w++){y=g[w];let A;for(let B=0;B<r;B++){const G=t[B];if(G.length&&(A=-1!==G.indexOf(y))){if(m===d-1){if(c)c--;else if(f[q++]=y,q===b)return f;e&&(h[y]=1)}break}}A&&
(k[n++]=y)}if(e)e[m]=k;else if(!n)return[];g=k}if(e)for(let k=e.length-1,n,w;0<=k;k--)if(w=(n=e[k])&&n.length)for(let y=0,A;y<w;y++)if(A=n[y],!h[A])if(h[A]=1,c)c--;else if(f[q++]=A,q===b)return f;return f}function ha(a,b){const c=z(),e=z(),d=[];for(let f=0;f<a.length;f++)c[a[f]]=1;for(let f=0,h;f<b.length;f++){h=b[f];for(let g=0,l;g<h.length;g++)l=h[g],c[l]&&!e[l]&&(e[l]=1,d[d.length]=l)}return d};const ja={memory:{charset:"latin:extra",C:3,m:3,B:!1,o:"memory"},performance:{threshold:8,m:3,context:{depth:1,D:!0}},match:{charset:"latin:extra",F:"full",C:3},score:{charset:"latin:advanced",threshold:1,context:{depth:3,D:!0}},"default":{C:3,threshold:0,depth:3}};N["latin:default"]=K;
function P(a,b){if(!(this instanceof P))return new P(a);var c;let e;a?(C(a)?a=ja[a]:(c=a.preset)&&(a=Object.assign({},c[c],a)),c=a.charset,e=a.lang,C(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=N[c]),C(e)&&(e=da[e])):a={};let d,f,h=a.context||{};this.encode=a.encode||c&&c.encode||K;this.register=b||z();this.C=d=a.resolution||9;this.G=b=c&&c.F||a.tokenize||"strict";this.depth="strict"===b&&h.depth;this.D=v(h.bidirectional);this.o=f="memory"===a.optimize;this.B=v(a.fastupdate);this.m=a.minlength||1;
this.h=f?x(d):z();this.s=d=h.resolution||1;this.l=f?x(d):z();this.A=c&&c.A||a.rtl;this.H=(b=a.matcher||e&&e.H)&&F(b,!1);this.I=(b=a.stemmer||e&&e.I)&&F(b,!0);if(a=b=a.filter||e&&e.filter){a=b;c=z();for(let g=0,l=a.length;g<l;g++)c[a[g]]=1;a=c}this.filter=a}
function M(a,b,c,e){if(b&&(c&&(b=I(b,c)),a.H&&(b=I(b,a.H)),a.I&&1<b.length&&(b=I(b,a.I)),e||""===e)){b=b.split(e);if(a.filter){a=a.filter;c=b.length;e=[];for(let d=0,f=0;d<c;d++){const h=b[d];h&&!a[h]&&(e[f++]=h)}a=e}else a=b;return a}return b}u=P.prototype;u.append=function(a,b){return this.add(a,b,!0)};
u.add=function(a,b,c,e){if(!e&&!c&&this.register[a])return this.update(a,b);if(b&&(a||0===a)&&(b=this.encode(b),e=b.length)){const m=this.depth,p=this.C,t=z(),r=z();for(let q=0;q<e;q++){let k=b[this.A?e-1-q:q];var d=k.length;if(k&&d>=this.m&&(m||!t[k])){var f=Math.min(p/e*q|0,q),h="";switch(this.G){case "full":if(3<d){for(var g=0;g<d;g++){var l=g?Math.min(f/2+p/d*g/2|0,f+g):f;for(let n=d;n>g;n--)h=k.substring(g,n),h.length>=this.m&&Q(this,t,h,l,a,c)}break}case "reverse":if(2<d){for(g=d-1;0<g;g--)h=
k[g]+h,h.length>=this.m&&Q(this,t,h,f,a,c);h=""}case "forward":if(1<d)for(g=0;g<d;g++)h+=k[g],h.length>=this.m&&Q(this,t,h,f,a,c);break;default:if(Q(this,t,k,f,a,c),m&&1<e&&q<e-1)for(d=z(),f=k,h=Math.min(m+1,e-q),d[f]=1,g=1;g<h;g++)(k=b[this.A?e-1-q-g:q+g])&&k.length>=this.m&&!d[k]?(d[k]=1,l=this.D&&k>f,Q(this,r,l?f:k,0,a,c,l?k:f)):h=Math.min(h+1,e-q)}}}this.B||(this.register[a]=1)}return this};
function Q(a,b,c,e,d,f,h){let g=h?a.l:a.h;if(!b[c]||h&&!b[c][h])a.o&&(g=g[e]),h?(b=b[c]||(b[c]=z()),b[h]=1,g=g[h]||(g[h]=z())):b[c]=1,g=g[c]||(g[c]=[]),a.o||(g=g[e]||(g[e]=[])),f&&-1!==g.indexOf(d)||(g[g.length]=d,a.B&&(a=a.register[d]||(a.register[d]=[]),a[a.length]=g))}
u.search=function(a,b,c){D(a)?(c=a,a=c.query):D(b)&&(c=b);let e=[],d;let f,h=0;if(c){b=c.limit;h=c.offset||0;var g=c.context;f=c.suggest}if(a&&(a=this.encode(a),d=a.length,1<d)){c=z();var l=[];for(let p=0,t=0,r;p<d;p++)if((r=a[p])&&r.length>=this.m&&!c[r])if(this.o||f||this.h[r])l[t++]=r,c[r]=1;else return e;a=l;d=a.length}if(!d)return e;b||(b=100);g=this.depth&&1<d&&!1!==g;c=0;let m;g?(m=a[0],c=1):1<d&&a.sort(aa);for(let p,t;c<d;c++){t=a[c];g?(p=ka(this,e,f,b,h,2===d,t,m),f&&!1===p&&e.length||(m=
t)):p=ka(this,e,f,b,h,1===d,t);if(p)return p;if(f&&c===d-1){l=e.length;if(!l){if(g){g=0;c=-1;continue}return e}if(1===l)return la(e[0],b,h)}}return fa(e,b,h,f)};
function ka(a,b,c,e,d,f,h,g){let l=[],m=g?a.l:a.h;a.o||(m=ma(m,h,g,a.D));if(m){let p=0;const t=Math.min(m.length,g?a.s:a.C);for(let r=0,q=0,k,n;r<t;r++)if(k=m[r])if(a.o&&(k=ma(k,h,g,a.D)),d&&k&&f&&(n=k.length,n<=d?(d-=n,k=null):(k=k.slice(d),d=0)),k&&(l[p++]=k,f&&(q+=k.length,q>=e)))break;if(p){if(f)return la(l,e,0);b[b.length]=l;return}}return!c&&l}function la(a,b,c){a=1===a.length?a[0]:[].concat.apply([],a);return c||a.length>b?a.slice(c,c+b):a}
function ma(a,b,c,e){c?(e=e&&b>c,a=(a=a[e?b:c])&&a[e?c:b]):a=a[b];return a}u.contain=function(a){return!!this.register[a]};u.update=function(a,b){return this.remove(a).add(a,b)};u.remove=function(a,b){const c=this.register[a];if(c){if(this.B)for(let e=0,d;e<c.length;e++)d=c[e],d.splice(d.indexOf(a),1);else S(this.h,a,this.C,this.o),this.depth&&S(this.l,a,this.s,this.o);b||delete this.register[a]}return this};
function S(a,b,c,e,d){let f=0;if(a.constructor===Array)if(d)b=a.indexOf(b),-1!==b?1<a.length&&(a.splice(b,1),f++):f++;else{d=Math.min(a.length,c);for(let h=0,g;h<d;h++)if(g=a[h])f=S(g,b,c,e,d),e||f||delete a[h]}else for(let h in a)(f=S(a[h],b,c,e,d))||delete a[h];return f}ea(P.prototype);function T(a){if(!(this instanceof T))return new T(a);var b=a.document||a.doc||a,c;this.G=[];this.h=[];this.s=[];this.register=z();this.key=(c=b.key||b.id)&&U(c,this.s)||"id";this.B=v(a.fastupdate);this.l=(c=b.store)&&!0!==c&&[];this.store=c&&z();this.async=!1;c=z();let e=b.index||b.field||b;C(e)&&(e=[e]);for(let d=0,f,h;d<e.length;d++)f=e[d],C(f)||(h=f,f=f.field),h=D(h)?Object.assign({},a,h):a,this.J||(c[f]=new P(h,this.register)),this.G[d]=U(f,this.s),this.h[d]=f;if(this.l)for(a=b.store,C(a)&&(a=
[a]),b=0;b<a.length;b++)this.l[b]=U(a[b],this.s);this.index=c}function U(a,b){const c=a.split(":");let e=0;for(let d=0;d<c.length;d++)a=c[d],0<=a.indexOf("[]")&&(a=a.substring(0,a.length-2))&&(b[e]=!0),a&&(c[e++]=a);e<c.length&&(c.length=e);return 1<e?c:c[0]}function na(a,b){if(C(b))a=a[b];else for(let c=0;a&&c<b.length;c++)a=a[b[c]];return a}
function J(a){let b="",c="";for(let e=0,d=a.length,f;e<d;e++)(f=a[e])!==c&&(b+=c=f);return b};var ca={encode:K,A:!1,B:""};const da=/[\W_]+/;function K(a){return L(this,E(a).toLowerCase(),!1,da)};const ea={},N={};function fa(a){O(a,"add");O(a,"append");O(a,"search");O(a,"update");O(a,"remove")}function O(a,b){a[b+"Async"]=function(){const c=this,e=arguments;var d=e[e.length-1];let f;"function"===typeof d&&(f=d,delete e[e.length-1]);d=new Promise(function(h){setTimeout(function(){c.async=!0;const g=c[b].apply(c,e);c.async=!1;h(g)})});return f?(d.then(f),this):d}};function ha(a,b,c,e){const d=a.length;let f=[],h;let g,l;for(var m=0;m<d;m++){var n=a[m],t=n.length,r=0;for(let k=0,p;k<t;k++)(p=n[k])&&(r+=p.length);if(!q||r<q){var q=r;g=n;l=m}}g=1===g.length?g[0]:[].concat.apply([],g);e&&(e=[g],h=z());m=q=0;for(n=d-1;0<=n;n--)if(n!==l){m++;t=a[n];r=t.length;const k=[];let p=0;for(let w=0,y;w<g.length;w++){y=g[w];let A;for(let B=0;B<r;B++){const G=t[B];if(G.length&&(A=-1!==G.indexOf(y))){if(m===d-1){if(c)c--;else if(f[q++]=y,q===b)return f;e&&(h[y]=1)}break}}A&&
(k[p++]=y)}if(e)e[m]=k;else if(!p)return[];g=k}if(e)for(let k=e.length-1,p,w;0<=k;k--)if(w=(p=e[k])&&p.length)for(let y=0,A;y<w;y++)if(A=p[y],!h[A])if(h[A]=1,c)c--;else if(f[q++]=A,q===b)return f;return f}function ja(a,b){const c=z(),e=z(),d=[];for(let f=0;f<a.length;f++)c[a[f]]=1;for(let f=0,h;f<b.length;f++){h=b[f];for(let g=0,l;g<h.length;g++)l=h[g],c[l]&&!e[l]&&(e[l]=1,d[d.length]=l)}return d};const ka={memory:{charset:"latin:extra",D:3,o:3,C:!1,s:"memory"},performance:{threshold:8,o:3,context:{depth:1,F:!0}},match:{charset:"latin:extra",B:"full",D:3},score:{charset:"latin:advanced",threshold:1,context:{depth:3,F:!0}},"default":{D:3,threshold:0,depth:3}};function P(a,b){if(!(this instanceof P))return new P(a);var c;let e;a?(C(a)?a=ka[a]:(c=a.preset)&&(a=Object.assign({},c[c],a)),c=a.charset,e=a.lang,C(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=N[c]),C(e)&&(e=ea[e])):a={};let d,f,h=a.context||{};this.encode=a.encode||c&&c.encode||K;this.register=b||z();this.D=d=a.resolution||9;this.B=b=c&&c.B||a.tokenize||"strict";this.depth="strict"===b&&h.depth;this.F=v(h.bidirectional);this.s=f=v(a.optimize);this.C=v(a.fastupdate);this.o=a.minlength||1;this.h=
f?x(d):z();this.m=d=h.resolution||1;this.l=f?x(d):z();this.A=c&&c.A||a.rtl;this.G=(b=a.matcher||e&&e.G)&&F(b,!1);this.H=(b=a.stemmer||e&&e.H)&&F(b,!0);if(a=b=a.filter||e&&e.filter){a=b;c=z();for(let g=0,l=a.length;g<l;g++)c[a[g]]=1;a=c}this.filter=a}function L(a,b,c,e){if(b&&(c&&(b=I(b,c)),a.G&&(b=I(b,a.G)),a.H&&1<b.length&&(b=I(b,a.H)),e||""===e)){b=b.split(e);if(a.filter){a=a.filter;c=b.length;e=[];for(let d=0,f=0;d<c;d++){const h=b[d];h&&!a[h]&&(e[f++]=h)}a=e}else a=b;return a}return b}u=P.prototype;
u.append=function(a,b){return this.add(a,b,!0)};
u.add=function(a,b,c,e){if(!e&&!c&&this.register[a])return this.update(a,b);if(b&&(a||0===a)&&(b=this.encode(b),e=b.length)){const m=this.depth,n=this.D,t=z(),r=z();for(let q=0;q<e;q++){let k=b[this.A?e-1-q:q];var d=k.length;if(k&&d>=this.o&&(m||!t[k])){var f=e<n?q:n/e*q|0,h="";switch(this.B){case "full":if(3<d){for(f=0;f<d;f++)for(var g=d;g>f;g--)if(g-f>=this.o){var l=e+d<n?q+f:n/(e+d)*(q+f)|0;h=k.substring(f,g);Q(this,t,h,l,a,c)}break}case "reverse":if(2<d){for(g=d-1;0<g;g--)h=k[g]+h,h.length>=
this.o&&Q(this,t,h,e+d<n?q+g:n/(e+d)*(q+g)|0,a,c);h=""}case "forward":if(1<d)for(g=0;g<d;g++)h+=k[g],h.length>=this.o&&Q(this,t,h,f,a,c);break;default:if(Q(this,t,k,f,a,c),m&&1<e&&q<e-1)for(d=this.m,h=z(),f=k,g=Math.min(m+1,e-q),h[f]=1,l=1;l<g;l++)if((k=b[this.A?e-1-q-l:q+l])&&k.length>=this.o&&!h[k]){h[k]=1;const p=this.F&&k>f;Q(this,r,p?f:k,g+e<d?q+(l-1):d/(g+e)*(q+l)|0,a,c,p?k:f)}}}}this.C||(this.register[a]=1)}return this};
function Q(a,b,c,e,d,f,h){let g=h?a.l:a.h;if(!b[c]||h&&!b[c][h])a.s&&(g=g[e]),h?(b=b[c]||(b[c]=z()),b[h]=1,g=g[h]||(g[h]=z())):b[c]=1,g=g[c]||(g[c]=[]),a.s||(g=g[e]||(g[e]=[])),f&&-1!==g.indexOf(d)||(g[g.length]=d,a.C&&(a=a.register[d]||(a.register[d]=[]),a[a.length]=g))}
u.search=function(a,b,c){D(a)?(c=a,a=c.query):D(b)&&(c=b);let e=[],d;let f,h=0;if(c){b=c.limit;h=c.offset||0;var g=c.context;f=c.suggest}if(a&&(a=this.encode(a),d=a.length,1<d)){c=z();var l=[];for(let n=0,t=0,r;n<d;n++)if((r=a[n])&&r.length>=this.o&&!c[r])if(this.s||f||this.h[r])l[t++]=r,c[r]=1;else return e;a=l;d=a.length}if(!d)return e;b||(b=100);g=this.depth&&1<d&&!1!==g;c=0;let m;g?(m=a[0],c=1):1<d&&a.sort(aa);for(let n,t;c<d;c++){t=a[c];g?(n=la(this,e,f,b,h,2===d,t,m),f&&!1===n&&e.length||(m=
t)):n=la(this,e,f,b,h,1===d,t);if(n)return n;if(f&&c===d-1){l=e.length;if(!l){if(g){g=0;c=-1;continue}return e}if(1===l)return ma(e[0],b,h)}}return ha(e,b,h,f)};
function la(a,b,c,e,d,f,h,g){let l=[],m=g?a.l:a.h;a.s||(m=na(m,h,g,a.F));if(m){let n=0;const t=Math.min(m.length,g?a.m:a.D);for(let r=0,q=0,k,p;r<t;r++)if(k=m[r])if(a.s&&(k=na(k,h,g,a.F)),d&&k&&f&&(p=k.length,p<=d?(d-=p,k=null):(k=k.slice(d),d=0)),k&&(l[n++]=k,f&&(q+=k.length,q>=e)))break;if(n){if(f)return ma(l,e,0);b[b.length]=l;return}}return!c&&l}function ma(a,b,c){a=1===a.length?a[0]:[].concat.apply([],a);return c||a.length>b?a.slice(c,c+b):a}
function na(a,b,c,e){c?(e=e&&b>c,a=(a=a[e?b:c])&&a[e?c:b]):a=a[b];return a}u.contain=function(a){return!!this.register[a]};u.update=function(a,b){return this.remove(a).add(a,b)};u.remove=function(a,b){const c=this.register[a];if(c){if(this.C)for(let e=0,d;e<c.length;e++)d=c[e],d.splice(d.indexOf(a),1);else S(this.h,a,this.D,this.s),this.depth&&S(this.l,a,this.m,this.s);b||delete this.register[a]}return this};
function S(a,b,c,e,d){let f=0;if(a.constructor===Array)if(d)b=a.indexOf(b),-1!==b?1<a.length&&(a.splice(b,1),f++):f++;else{d=Math.min(a.length,c);for(let h=0,g;h<d;h++)if(g=a[h])f=S(g,b,c,e,d),e||f||delete a[h]}else for(let h in a)(f=S(a[h],b,c,e,d))||delete a[h];return f}fa(P.prototype);function T(a){if(!(this instanceof T))return new T(a);var b=a.document||a.doc||a,c;this.I=[];this.h=[];this.m=[];this.register=z();this.key=(c=b.key||b.id)&&U(c,this.m)||"id";this.C=v(a.fastupdate);this.l=(c=b.store)&&!0!==c&&[];this.store=c&&z();this.async=!1;c=z();let e=b.index||b.field||b;C(e)&&(e=[e]);for(let d=0,f,h;d<e.length;d++)f=e[d],C(f)||(h=f,f=f.field),h=D(h)?Object.assign({},a,h):a,this.J||(c[f]=new P(h,this.register)),this.I[d]=U(f,this.m),this.h[d]=f;if(this.l)for(a=b.store,C(a)&&(a=
[a]),b=0;b<a.length;b++)this.l[b]=U(a[b],this.m);this.index=c}function U(a,b){const c=a.split(":");let e=0;for(let d=0;d<c.length;d++)a=c[d],0<=a.indexOf("[]")&&(a=a.substring(0,a.length-2))&&(b[e]=!0),a&&(c[e++]=a);e<c.length&&(c.length=e);return 1<e?c:c[0]}function oa(a,b){if(C(b))a=a[b];else for(let c=0;a&&c<b.length;c++)a=a[b[c]];return a}
function V(a,b,c,e,d){a=a[d];if(e===c.length-1)b[d]=a;else if(a)if(a.constructor===Array)for(b=b[d]=Array(a.length),d=0;d<a.length;d++)V(a,b,c,e,d);else b=b[d]||(b[d]=z()),d=c[++e],V(a,b,c,e,d)}function W(a,b,c,e,d,f,h,g){a=a[h];if(e===b.length-1){if(a.constructor===Array){if(c[e]){for(b=0;b<a.length;b++)d.add(f,a[b],!0,!0);return}a=a.join(" ")}d.add(f,a,g,!0)}else if(a)if(a.constructor===Array)for(h=0;h<a.length;h++)W(a,b,c,e,d,f,h,g);else h=b[++e],W(a,b,c,e,d,f,h,g)}u=T.prototype;
u.add=function(a,b,c){D(a)&&(b=a,a=na(b,this.key));if(b&&(a||0===a)){if(this.register[a])return this.update(a,b);for(let e=0,d,f;e<this.h.length;e++)f=this.h[e],d=this.G[e],C(d)&&(d=[d]),W(b,d,this.s,0,this.index[f],a,d[0],c);if(this.store){let e;if(this.l){e=z();for(let d=0,f;d<this.l.length;d++)f=this.l[d],C(f)?e[f]=b[f]:V(b,e,f,0,f[0])}this.store[a]=e||b}}return this};u.append=function(a,b){return this.add(a,b,!0)};u.update=function(a,b){return this.remove(a).add(a,b)};
u.remove=function(a){D(a)&&(a=na(a,this.key));if(this.register[a]){const b=this.B&&!this.J;for(let c=0;c<this.h.length&&(this.index[this.h[c]].remove(a,b),!b);c++);this.store&&delete this.store[a];delete this.register[a]}return this};
u.search=function(a,b,c,e){D(a)?(c=a,a=c.query):D(b)&&(c=b,b=0);let d=[],f=[],h,g,l,m,p,t,r=0;if(c)if(c.constructor===Array)l=c,c=null;else{l=(h=c.pluck)||c.index||c.field||c;m=!1;g=this.store&&c.enrich;p="and"===c.bool;b=c.limit||100;t=c.offset||0;if(m&&(C(m)&&(m=[m]),!a)){for(let k=0,n;k<m.length;k++)if(n=oa.call(this,m[k],b,t,g))d[d.length]=n,r++;return r?d:[]}C(l)?l=[l]:l.constructor===Array||(l=null)}l||(l=this.h);p=p&&(1<l.length||m&&1<m.length);const q=!e&&(this.J||this.async)&&[];for(let k=
0,n,w,y;k<l.length;k++){let A;w=l[k];C(w)||(A=w,w=w.field);if(q)q[k]=this.index[w].searchAsync(a,b,A||c);else{e?n=e[k]:n=this.index[w].search(a,b,A||c);y=n&&n.length;if(m&&y){const B=[];let G=0;p&&(B[0]=[n]);for(let R=0,ia,L;R<m.length;R++)if(ia=m[R],y=(L=this.K[ia])&&L.length)G++,B[B.length]=p?[L]:L;G&&(n=p?fa(B,b||100,t||0):ha(n,B),y=n.length)}if(y)f[r]=w,d[r++]=n;else if(p)return[]}}if(q){const k=this;return new Promise(function(n){Promise.all(q).then(function(w){n(k.search(a,b,c,w))})})}if(!r)return[];
if(h&&(!g||!this.store))return d[0];for(let k=0,n;k<f.length;k++){n=d[k];n.length&&g&&(n=pa.call(this,n));if(h)return n;d[k]={field:f[k],result:n}}return d};function oa(a,b,c,e){let d=this.K[a],f=d&&d.length-c;if(f&&0<f){if(f>b||c)d=d.slice(c,c+b);e&&(d=pa.call(this,d));return{tag:a,result:d}}}function pa(a){const b=Array(a.length);for(let c=0,e;c<a.length;c++)e=a[c],b[c]={key:e,doc:this.store[e]};return b}u.contain=function(a){return!!this.register[a]};u.get=function(a){return this.store[a]};
u.set=function(a,b){this.store[a]=b;return this};ea(T.prototype);const qa=/[\W_]+/,ra=[H("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",H("[\u00e8\u00e9\u00ea\u00eb]"),"e",H("[\u00ec\u00ed\u00ee\u00ef]"),"i",H("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",H("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",H("[\u00fd\u0177\u00ff]"),"y",H("\u00f1"),"n",H("[\u00e7c]"),"k",H("\u00df"),"s",H(" & ")," and "];function sa(a){return M(this,E(a).toLowerCase(),!a.normalize&&ra,qa)};var ua={encode:ta,A:!1,F:"strict"};const va=/[^a-z0-9]+/,wa={b:"p",v:"f",w:"f",z:"s",x:"s","\u00df":"s",d:"t",n:"m",c:"k",g:"k",j:"k",q:"k",i:"e",y:"e",u:"o"};function ta(a){a=sa.call(this,a).join(" ");const b=[];if(a){const c=a.split(va),e=c.length;for(let d=0,f,h=0;d<e;d++)if((a=c[d])&&(!this.filter||!this.filter[a])){f=a[0];let g=wa[f]||f,l=g;for(let m=1;m<a.length;m++){f=a[m];const p=wa[f]||f;p&&p!==l&&(g+=p,l=p)}b[h++]=g}}return b};var ya={encode:xa,A:!1,F:""};const za=[H("ae"),"a",H("oe"),"o",H("sh"),"s",H("th"),"t",H("ph"),"f",H("pf"),"f"];function xa(a,b){a&&(a=ta.call(this,a).join(" "),2<a.length&&(a=I(a,za)),b||(1<a.length&&(a=J(a)),a&&(a=a.split(" "))));return a};var Ba={encode:Aa,A:!1,F:""};const Ca=H("(?!\\b)[aeiouy]");function Aa(a){a&&(a=xa.call(this,a,!0),1<a.length&&(a=a.replace(Ca,"")),1<a.length&&(a=J(a)),a&&(a=a.split(" ")));return a};N["latin:simple"]={encode:sa,A:!1,F:""};N["latin:balance"]=ua;N["latin:advanced"]=ya;N["latin:extra"]=Ba;const X=self;let Y;const Z={Index:P,Document:T,Worker:null,registerCharset:function(a,b){N[a]=b},registerLanguage:function(a,b){da[a]=b}};(Y=X.define)&&Y.amd?Y([],function(){return Z}):X.exports?X.exports=Z:X.FlexSearch=Z;}(this));
u.add=function(a,b,c){D(a)&&(b=a,a=oa(b,this.key));if(b&&(a||0===a)){if(this.register[a])return this.update(a,b);for(let e=0,d,f;e<this.h.length;e++)f=this.h[e],d=this.I[e],C(d)&&(d=[d]),W(b,d,this.m,0,this.index[f],a,d[0],c);if(this.store){let e;if(this.l){e=z();for(let d=0,f;d<this.l.length;d++)f=this.l[d],C(f)?e[f]=b[f]:V(b,e,f,0,f[0])}this.store[a]=e||b}}return this};u.append=function(a,b){return this.add(a,b,!0)};u.update=function(a,b){return this.remove(a).add(a,b)};
u.remove=function(a){D(a)&&(a=oa(a,this.key));if(this.register[a]){const b=this.C&&!this.J;for(let c=0;c<this.h.length&&(this.index[this.h[c]].remove(a,b),!b);c++);this.store&&delete this.store[a];delete this.register[a]}return this};
u.search=function(a,b,c,e){D(a)?(c=a,a=c.query):D(b)&&(c=b,b=0);let d=[],f=[],h,g,l,m,n,t,r=0;if(c)if(c.constructor===Array)l=c,c=null;else{l=(h=c.pluck)||c.index||c.field||c;m=!1;g=this.store&&c.enrich;n="and"===c.bool;b=c.limit||100;t=c.offset||0;if(m&&(C(m)&&(m=[m]),!a)){for(let k=0,p;k<m.length;k++)if(p=pa.call(this,m[k],b,t,g))d[d.length]=p,r++;return r?d:[]}C(l)?l=[l]:l.constructor===Array||(l=null)}l||(l=this.h);n=n&&(1<l.length||m&&1<m.length);const q=!e&&(this.J||this.async)&&[];for(let k=
0,p,w,y;k<l.length;k++){let A;w=l[k];C(w)||(A=w,w=w.field);if(q)q[k]=this.index[w].searchAsync(a,b,A||c);else{e?p=e[k]:p=this.index[w].search(a,b,A||c);y=p&&p.length;if(m&&y){const B=[];let G=0;n&&(B[0]=[p]);for(let R=0,ia,M;R<m.length;R++)if(ia=m[R],y=(M=this.K[ia])&&M.length)G++,B[B.length]=n?[M]:M;G&&(p=n?ha(B,b||100,t||0):ja(p,B),y=p.length)}if(y)f[r]=w,d[r++]=p;else if(n)return[]}}if(q){const k=this;return new Promise(function(p){Promise.all(q).then(function(w){p(k.search(a,b,c,w))})})}if(!r)return[];
if(h&&(!g||!this.store))return d[0];for(let k=0,p;k<f.length;k++){p=d[k];p.length&&g&&(p=qa.call(this,p));if(h)return p;d[k]={field:f[k],result:p}}return d};function pa(a,b,c,e){let d=this.K[a],f=d&&d.length-c;if(f&&0<f){if(f>b||c)d=d.slice(c,c+b);e&&(d=qa.call(this,d));return{tag:a,result:d}}}function qa(a){const b=Array(a.length);for(let c=0,e;c<a.length;c++)e=a[c],b[c]={key:e,doc:this.store[e]};return b}u.contain=function(a){return!!this.register[a]};u.get=function(a){return this.store[a]};
u.set=function(a,b){this.store[a]=b;return this};fa(T.prototype);var sa={encode:ra,A:!1,B:""};const ta=/[\W_]+/,ua=[H("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",H("[\u00e8\u00e9\u00ea\u00eb]"),"e",H("[\u00ec\u00ed\u00ee\u00ef]"),"i",H("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",H("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",H("[\u00fd\u0177\u00ff]"),"y",H("\u00f1"),"n",H("[\u00e7c]"),"k",H("\u00df"),"s",H(" & ")," and "];function ra(a){return L(this,E(a).toLowerCase(),!a.normalize&&ua,ta)};var wa={encode:va,A:!1,B:"strict"};const xa=/[^a-z0-9]+/,ya={b:"p",v:"f",w:"f",z:"s",x:"s","\u00df":"s",d:"t",n:"m",c:"k",g:"k",j:"k",q:"k",i:"e",y:"e",u:"o"};function va(a){a=ra.call(this,a).join(" ");const b=[];if(a){const c=a.split(xa),e=c.length;for(let d=0,f,h=0;d<e;d++)if((a=c[d])&&(!this.filter||!this.filter[a])){f=a[0];let g=ya[f]||f,l=g;for(let m=1;m<a.length;m++){f=a[m];const n=ya[f]||f;n&&n!==l&&(g+=n,l=n)}b[h++]=g}}return b};var Aa={encode:za,A:!1,B:""};const Ba=[H("ae"),"a",H("oe"),"o",H("sh"),"s",H("th"),"t",H("ph"),"f",H("pf"),"f"];function za(a,b){a&&(a=va.call(this,a).join(" "),2<a.length&&(a=I(a,Ba)),b||(1<a.length&&(a=J(a)),a&&(a=a.split(" "))));return a};var Da={encode:Ca,A:!1,B:""};const Ea=H("(?!\\b)[aeiouy]");function Ca(a){a&&(a=za.call(this,a,!0),1<a.length&&(a=a.replace(Ea,"")),1<a.length&&(a=J(a)),a&&(a=a.split(" ")));return a};N["latin:default"]=ca;N["latin:simple"]=sa;N["latin:balance"]=wa;N["latin:advanced"]=Aa;N["latin:extra"]=Da;const X=self;let Y;const Z={Index:P,Document:T,Worker:null,registerCharset:function(a,b){N[a]=b},registerLanguage:function(a,b){ea[a]=b}};(Y=X.define)&&Y.amd?Y([],function(){return Z}):X.exports?X.exports=Z:X.FlexSearch=Z;}(this));

View File

@@ -39,8 +39,8 @@ function E(a) {
function ca(a, b) {
const c = Object.keys(a), d = c.length, e = [];
let f = "", g = 0;
for (let h = 0, k, m; h < d; h++) {
k = c[h], (m = a[k]) ? (e[g++] = F(b ? "(?!\\b)" + k + "(\\b|_)" : k), e[g++] = m) : f += (f ? "|" : "") + k;
for (let h = 0, k, p; h < d; h++) {
k = c[h], (p = a[k]) ? (e[g++] = F(b ? "(?!\\b)" + k + "(\\b|_)" : k), e[g++] = p) : f += (f ? "|" : "") + k;
}
f && (e[g++] = F(b ? "(?!\\b)(" + f + ")(\\b|_)" : "(" + f + ")"), e[g] = "");
return e;
@@ -60,12 +60,13 @@ function I(a) {
}
return b;
}
;const da = /[\W_]+/;
function ea(a) {
return this.pipeline(E(a).toLowerCase(), !1, da, !1);
;var ea = {encode:da, rtl:!1, tokenize:""};
const fa = /[\W_]+/;
function da(a) {
return this.pipeline(E(a).toLowerCase(), !1, fa, !1);
}
;const fa = {}, J = {};
function ha(a) {
;const ha = {}, J = {};
function ia(a) {
K(a, "add");
K(a, "append");
K(a, "search");
@@ -89,27 +90,27 @@ function K(a, b) {
return f ? (e.then(f), this) : e;
};
}
;function ia(a, b, c, d) {
;function ja(a, b, c, d) {
const e = a.length;
let f = [], g;
let h, k;
for (var m = 0; m < e; m++) {
var n = a[m], r = n.length, u = 0;
for (var p = 0; p < e; p++) {
var n = a[p], r = n.length, u = 0;
for (let l = 0, q; l < r; l++) {
(q = n[l]) && (u += q.length);
}
if (!p || u < p) {
var p = u;
if (!m || u < m) {
var m = u;
h = n;
k = m;
k = p;
}
}
h = 1 === h.length ? h[0] : [].concat.apply([], h);
d && (d = [h], g = w());
m = p = 0;
p = m = 0;
for (n = e - 1; 0 <= n; n--) {
if (n !== k) {
m++;
p++;
r = a[n];
u = r.length;
const l = [];
@@ -120,11 +121,11 @@ function K(a, b) {
for (let C = 0; C < u; C++) {
const G = r[C];
if (G.length && (B = -1 !== G.indexOf(z))) {
if (m === e - 1) {
if (p === e - 1) {
if (c) {
c--;
} else {
if (f[p++] = z, p === b) {
if (f[m++] = z, m === b) {
return f;
}
}
@@ -136,7 +137,7 @@ function K(a, b) {
B && (l[q++] = z);
}
if (d) {
d[m] = l;
d[p] = l;
} else {
if (!q) {
return [];
@@ -153,7 +154,7 @@ function K(a, b) {
if (g[B] = 1, c) {
c--;
} else {
if (f[p++] = B, p === b) {
if (f[m++] = B, m === b) {
return f;
}
}
@@ -164,7 +165,7 @@ function K(a, b) {
}
return f;
}
function ja(a, b) {
function ka(a, b) {
const c = w(), d = w(), e = [];
for (let f = 0; f < a.length; f++) {
c[a[f]] = 1;
@@ -182,7 +183,7 @@ function ja(a, b) {
this.cache = w();
this.queue = [];
}
function ka(a, b, c) {
function la(a, b, c) {
A(a) && (a = a.query);
let d = this.cache.get(a);
d || (d = this.search(a, b, c), this.cache.set(a, d));
@@ -213,8 +214,8 @@ L.prototype.del = function(a) {
d = this.queue[b], c = this.cache[d], -1 !== c.indexOf(a) && (this.queue.splice(b--, 1), delete this.cache[d]);
}
};
const la = {memory:{charset:"latin:extra", resolution:3, minlength:3, fastupdate:!1, optimize:"memory"}, performance:{threshold:8, minlength:3, context:{depth:1, bidirectional:!0}}, match:{charset:"latin:extra", tokenize:"full", resolution:3, }, score:{charset:"latin:advanced", threshold:1, context:{depth:3, bidirectional:!0}}, "default":{resolution:3, threshold:0, depth:3}, };
function na(a, b, c, d, e, f) {
const na = {memory:{charset:"latin:extra", resolution:3, minlength:3, fastupdate:!1, optimize:"memory"}, performance:{threshold:8, minlength:3, context:{depth:1, bidirectional:!0}}, match:{charset:"latin:extra", tokenize:"full", resolution:3, }, score:{charset:"latin:advanced", threshold:1, context:{depth:3, bidirectional:!0}}, "default":{resolution:3, threshold:0, depth:3}, };
function oa(a, b, c, d, e, f) {
setTimeout(function() {
const g = a(c, JSON.stringify(f));
g && g.then ? g.then(function() {
@@ -222,15 +223,14 @@ function na(a, b, c, d, e, f) {
}) : b.export(a, b, c, d, e + 1);
});
}
;J["latin:default"] = ea;
function M(a, b) {
;function M(a, b) {
if (!(this instanceof M)) {
return new M(a);
}
var c;
if (a) {
if (y(a)) {
la[a] || console.warn("Preset not found: " + a), a = la[a];
na[a] || console.warn("Preset not found: " + a), a = na[a];
} else {
if (c = a.preset) {
c[c] || console.warn("Preset not found: " + c), a = Object.assign({}, c[c], a);
@@ -239,18 +239,18 @@ function M(a, b) {
c = a.charset;
var d = a.lang;
y(c) && (-1 === c.indexOf(":") && (c += ":default"), c = J[c]);
y(d) && (d = fa[d]);
y(d) && (d = ha[d]);
} else {
a = {};
}
let e, f, g = a.context || {};
this.encode = a.encode || c && c.encode || ea;
this.encode = a.encode || c && c.encode || da;
this.register = b || w();
this.resolution = e = a.resolution || 9;
this.tokenizer = b = c && c.tokenize || a.tokenize || "strict";
this.tokenize = b = c && c.tokenize || a.tokenize || "strict";
this.depth = "strict" === b && g.depth;
this.bidirectional = t(g.bidirectional, !0);
this.optimize = f = "memory" === a.optimize;
this.optimize = f = t(a.optimize, !0);
this.fastupdate = t(a.fastupdate, !0);
this.minlength = a.minlength || 1;
this.map = f ? v(e) : w();
@@ -295,19 +295,22 @@ M.prototype.add = function(a, b, c, d) {
return this.update(a, b);
}
if (b && (a || 0 === a) && (b = this.encode(b), d = b.length)) {
const m = this.depth, n = this.resolution, r = w(), u = w();
for (let p = 0; p < d; p++) {
let l = b[this.rtl ? d - 1 - p : p];
const p = this.depth, n = this.resolution, r = w(), u = w();
for (let m = 0; m < d; m++) {
let l = b[this.rtl ? d - 1 - m : m];
var e = l.length;
if (l && e >= this.minlength && (m || !r[l])) {
var f = Math.min(n / d * p | 0, p), g = "";
switch(this.tokenizer) {
if (l && e >= this.minlength && (p || !r[l])) {
var f = d < n ? m : n / d * m | 0, g = "";
switch(this.tokenize) {
case "full":
if (3 < e) {
for (var h = 0; h < e; h++) {
var k = h ? Math.min(f / 2 + n / e * h / 2 | 0, f + h) : f;
for (let q = e; q > h; q--) {
g = l.substring(h, q), g.length >= this.minlength && this.push_index(r, g, k, a, c);
for (f = 0; f < e; f++) {
for (var h = e; h > f; h--) {
if (h - f >= this.minlength) {
var k = d + e < n ? m + f : n / (d + e) * (m + f) | 0;
g = l.substring(f, h);
this.push_index(r, g, k, a, c);
}
}
}
break;
@@ -315,7 +318,7 @@ M.prototype.add = function(a, b, c, d) {
case "reverse":
if (2 < e) {
for (h = e - 1; 0 < h; h--) {
g = l[h] + g, g.length >= this.minlength && this.push_index(r, g, f, a, c);
g = l[h] + g, g.length >= this.minlength && this.push_index(r, g, d + e < n ? m + h : n / (d + e) * (m + h) | 0, a, c);
}
g = "";
}
@@ -327,9 +330,13 @@ M.prototype.add = function(a, b, c, d) {
}
break;
default:
if (this.push_index(r, l, f, a, c), m && 1 < d && p < d - 1) {
for (e = w(), f = l, g = Math.min(m + 1, d - p), e[f] = 1, h = 1; h < g; h++) {
(l = b[this.rtl ? d - 1 - p - h : p + h]) && l.length >= this.minlength && !e[l] ? (e[l] = 1, k = this.bidirectional && l > f, this.push_index(u, k ? f : l, 0, a, c, k ? l : f)) : g = Math.min(g + 1, d - p);
if (this.push_index(r, l, f, a, c), p && 1 < d && m < d - 1) {
for (e = this.resolution_ctx, g = w(), f = l, h = Math.min(p + 1, d - m), g[f] = 1, k = 1; k < h; k++) {
if ((l = b[this.rtl ? d - 1 - m - k : m + k]) && l.length >= this.minlength && !g[l]) {
g[l] = 1;
const q = this.bidirectional && l > f;
this.push_index(u, q ? f : l, h + d < e ? m + (k - 1) : e / (h + d) * (m + k) | 0, a, c, q ? l : f);
}
}
}
}
@@ -376,11 +383,11 @@ M.prototype.search = function(a, b, c) {
b || (b = 100);
h = this.depth && 1 < e && !1 !== h;
c = 0;
let m;
h ? (m = a[0], c = 1) : 1 < e && a.sort(aa);
let p;
h ? (p = a[0], c = 1) : 1 < e && a.sort(aa);
for (let n, r; c < e; c++) {
r = a[c];
h ? (n = this.add_result(d, f, b, g, 2 === e, r, m), f && !1 === n && d.length || (m = r)) : n = this.add_result(d, f, b, g, 1 === e, r);
h ? (n = this.add_result(d, f, b, g, 2 === e, r, p), f && !1 === n && d.length || (p = r)) : n = this.add_result(d, f, b, g, 1 === e, r);
if (n) {
return n;
}
@@ -395,28 +402,28 @@ M.prototype.search = function(a, b, c) {
return d;
}
if (1 === k) {
return oa(d[0], b, g);
return pa(d[0], b, g);
}
}
}
return ia(d, b, g, f);
return ja(d, b, g, f);
};
M.prototype.add_result = function(a, b, c, d, e, f, g) {
let h = [], k = g ? this.ctx : this.map;
this.optimize || (k = pa(k, f, g, this.bidirectional));
this.optimize || (k = qa(k, f, g, this.bidirectional));
if (k) {
let m = 0;
let p = 0;
const n = Math.min(k.length, g ? this.resolution_ctx : this.resolution);
for (let r = 0, u = 0, p, l; r < n; r++) {
if (p = k[r]) {
if (this.optimize && (p = pa(p, f, g, this.bidirectional)), d && p && e && (l = p.length, l <= d ? (d -= l, p = null) : (p = p.slice(d), d = 0)), p && (h[m++] = p, e && (u += p.length, u >= c))) {
for (let r = 0, u = 0, m, l; r < n; r++) {
if (m = k[r]) {
if (this.optimize && (m = qa(m, f, g, this.bidirectional)), d && m && e && (l = m.length, l <= d ? (d -= l, m = null) : (m = m.slice(d), d = 0)), m && (h[p++] = m, e && (u += m.length, u >= c))) {
break;
}
}
}
if (m) {
if (p) {
if (e) {
return oa(h, c, 0);
return pa(h, c, 0);
}
a[a.length] = h;
return;
@@ -424,11 +431,11 @@ M.prototype.add_result = function(a, b, c, d, e, f, g) {
}
return !b && h;
};
function oa(a, b, c) {
function pa(a, b, c) {
a = 1 === a.length ? a[0] : [].concat.apply([], a);
return c || a.length > b ? a.slice(c, c + b) : a;
}
function pa(a, b, c, d) {
function qa(a, b, c, d) {
c ? (d = d && b > c, a = (a = a[d ? b : c]) && a[d ? c : b]) : a = a[b];
return a;
}
@@ -446,14 +453,14 @@ M.prototype.remove = function(a, b) {
e = c[d], e.splice(e.indexOf(a), 1);
}
} else {
O(this.map, a, this.resolution, this.optimize), this.depth && O(this.ctx, a, this.resolution_ctx, this.optimize);
N(this.map, a, this.resolution, this.optimize), this.depth && N(this.ctx, a, this.resolution_ctx, this.optimize);
}
b || delete this.register[a];
this.cache && this.cache.del(a);
}
return this;
};
function O(a, b, c, d, e) {
function N(a, b, c, d, e) {
let f = 0;
if (a.constructor === Array) {
if (e) {
@@ -462,18 +469,18 @@ function O(a, b, c, d, e) {
e = Math.min(a.length, c);
for (let g = 0, h; g < e; g++) {
if (h = a[g]) {
f = O(h, b, c, d, e), d || f || delete a[g];
f = N(h, b, c, d, e), d || f || delete a[g];
}
}
}
} else {
for (let g in a) {
(f = O(a[g], b, c, d, e)) || delete a[g];
(f = N(a[g], b, c, d, e)) || delete a[g];
}
}
return f;
}
M.prototype.searchCache = ka;
M.prototype.searchCache = la;
M.prototype.export = function(a, b, c, d, e) {
let f, g;
switch(e || (e = 0)) {
@@ -503,7 +510,7 @@ M.prototype.export = function(a, b, c, d, e) {
default:
return;
}
na(a, b || this, c ? c + "." + f : f, d, e, g);
oa(a, b || this, c ? c + "." + f : f, d, e, g);
return !0;
};
M.prototype.import = function(a, b) {
@@ -524,8 +531,8 @@ M.prototype.import = function(a, b) {
}
}
};
ha(M.prototype);
function qa(a) {
ia(M.prototype);
function ra(a) {
a = a.data;
var b = self._index;
const c = a.args;
@@ -543,13 +550,13 @@ function qa(a) {
a = a.id, b = b[d].apply(b, c), postMessage("search" === d ? {id:a, msg:b} : {id:a});
}
}
;let ra = 0;
;let sa = 0;
function P(a) {
var b;
a ? D(b = a.encode) && (a.encode = b.toString()) : a = {};
(b = (self || window)._factory) && (b = b.toString());
const c = self.exports, d = this;
this.worker = sa(b, c, a.worker);
this.worker = ta(b, c, a.worker);
this.resolver = w();
if (this.worker) {
if (c) {
@@ -580,17 +587,17 @@ function Q(a) {
D(d) && (e = d, c.splice(c.length - 1, 1));
d = new Promise(function(f) {
setTimeout(function() {
b.resolver[++ra] = f;
b.worker.postMessage({task:a, id:ra, args:c});
b.resolver[++sa] = f;
b.worker.postMessage({task:a, id:sa, args:c});
});
});
return e ? (d.then(e), this) : d;
};
}
function sa(a, b, c) {
function ta(a, b, c) {
let d;
try {
d = b ? eval('new (require("worker_threads")["Worker"])("../dist/node/node.js")') : a ? new Worker(URL.createObjectURL(new Blob(["onmessage=" + qa.toString()], {type:"text/javascript"}))) : new Worker(y(c) ? c : "worker/worker.js", {type:"module"});
d = b ? eval('new (require("worker_threads")["Worker"])("../dist/node/node.js")') : a ? new Worker(URL.createObjectURL(new Blob(["onmessage=" + ra.toString()], {type:"text/javascript"}))) : new Worker(y(c) ? c : "worker/worker.js", {type:"module"});
} catch (e) {
}
return d;
@@ -745,20 +752,20 @@ R.prototype.remove = function(a) {
};
R.prototype.search = function(a, b, c, d) {
A(a) ? (c = a, a = c.query) : A(b) && (c = b, b = 0);
let e = [], f = [], g, h, k, m, n, r, u = 0;
let e = [], f = [], g, h, k, p, n, r, u = 0;
if (c) {
if (c.constructor === Array) {
k = c, c = null;
} else {
k = (g = c.pluck) || c.index || c.field || c;
m = c.tag;
p = c.tag;
h = this.store && c.enrich;
n = "and" === c.bool;
b = c.limit || 100;
r = c.offset || 0;
if (m && (y(m) && (m = [m]), !a)) {
for (let l = 0, q; l < m.length; l++) {
if (q = ta.call(this, m[l], b, r, h)) {
if (p && (y(p) && (p = [p]), !a)) {
for (let l = 0, q; l < p.length; l++) {
if (q = ua.call(this, p[l], b, r, h)) {
e[e.length] = q, u++;
}
}
@@ -768,26 +775,26 @@ R.prototype.search = function(a, b, c, d) {
}
}
k || (k = this.field);
n = n && (1 < k.length || m && 1 < m.length);
const p = !d && (this.worker || this.async) && [];
n = n && (1 < k.length || p && 1 < p.length);
const m = !d && (this.worker || this.async) && [];
for (let l = 0, q, x, z; l < k.length; l++) {
let B;
x = k[l];
y(x) || (B = x, x = x.field);
if (p) {
p[l] = this.index[x].searchAsync(a, b, B || c);
if (m) {
m[l] = this.index[x].searchAsync(a, b, B || c);
} else {
z = (q = d ? d[l] : this.index[x].search(a, b, B || c)) && q.length;
if (m && z) {
if (p && z) {
const C = [];
let G = 0;
n && (C[0] = [q]);
for (let V = 0, ma, N; V < m.length; V++) {
if (ma = m[V], z = (N = this.tagindex[ma]) && N.length) {
G++, C[C.length] = n ? [N] : N;
for (let V = 0, ma, O; V < p.length; V++) {
if (ma = p[V], z = (O = this.tagindex[ma]) && O.length) {
G++, C[C.length] = n ? [O] : O;
}
}
G && (q = n ? ia(C, b || 100, r || 0) : ja(q, C), z = q.length);
G && (q = n ? ja(C, b || 100, r || 0) : ka(q, C), z = q.length);
}
if (z) {
f[u] = x, e[u++] = q;
@@ -798,10 +805,10 @@ R.prototype.search = function(a, b, c, d) {
}
}
}
if (p) {
if (m) {
const l = this;
return new Promise(function(q) {
Promise.all(p).then(function(x) {
Promise.all(m).then(function(x) {
q(l.search(a, b, c, x));
});
});
@@ -814,7 +821,7 @@ R.prototype.search = function(a, b, c, d) {
}
for (let l = 0, q; l < f.length; l++) {
q = e[l];
q.length && h && (q = ua.call(this, q));
q.length && h && (q = va.call(this, q));
if (g) {
return q;
}
@@ -822,17 +829,17 @@ R.prototype.search = function(a, b, c, d) {
}
return e;
};
function ta(a, b, c, d) {
function ua(a, b, c, d) {
let e = this.tagindex[a], f = e && e.length - c;
if (f && 0 < f) {
if (f > b || c) {
e = e.slice(c, c + b);
}
d && (e = ua.call(this, e));
d && (e = va.call(this, e));
return {tag:a, result:e};
}
}
function ua(a) {
function va(a) {
const b = Array(a.length);
for (let c = 0, d; c < a.length; c++) {
d = a[c], b[c] = {key:d, doc:this.store[d]};
@@ -849,7 +856,7 @@ R.prototype.set = function(a, b) {
this.store[a] = b;
return this;
};
R.prototype.searchCache = ka;
R.prototype.searchCache = la;
R.prototype.export = function(a, b, c, d, e) {
e || (e = 0);
d || (d = 0);
@@ -873,7 +880,7 @@ R.prototype.export = function(a, b, c, d, e) {
default:
return;
}
na(a, this, c, d, e, f);
oa(a, this, c, d, e, f);
}
};
R.prototype.import = function(a, b) {
@@ -900,26 +907,26 @@ R.prototype.import = function(a, b) {
}
}
};
ha(R.prototype);
var wa = {encode:va, rtl:!1, tokenize:""};
const xa = /[\W_]+/, ya = F("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"), za = F("[\u00e8\u00e9\u00ea\u00eb]"), Aa = F("[\u00ec\u00ed\u00ee\u00ef]"), Ba = F("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"), Ca = F("[\u00f9\u00fa\u00fb\u00fc\u0171]"), Da = F("[\u00fd\u0177\u00ff]"), Ea = F("\u00f1"), Fa = F("[\u00e7c]"), Ga = F("\u00df"), Ha = F(" & "), Ia = [ya, "a", za, "e", Aa, "i", Ba, "o", Ca, "u", Da, "y", Ea, "n", Fa, "k", Ga, "s", Ha, " and "];
function va(a) {
return this.pipeline(E(a).toLowerCase(), !a.normalize && Ia, xa, !1);
ia(R.prototype);
var xa = {encode:wa, rtl:!1, tokenize:""};
const ya = /[\W_]+/, za = F("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"), Aa = F("[\u00e8\u00e9\u00ea\u00eb]"), Ba = F("[\u00ec\u00ed\u00ee\u00ef]"), Ca = F("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"), Da = F("[\u00f9\u00fa\u00fb\u00fc\u0171]"), Ea = F("[\u00fd\u0177\u00ff]"), Fa = F("\u00f1"), Ga = F("[\u00e7c]"), Ha = F("\u00df"), Ia = F(" & "), Ja = [za, "a", Aa, "e", Ba, "i", Ca, "o", Da, "u", Ea, "y", Fa, "n", Ga, "k", Ha, "s", Ia, " and "];
function wa(a) {
return this.pipeline(E(a).toLowerCase(), !a.normalize && Ja, ya, !1);
}
;var Ka = {encode:Ja, rtl:!1, tokenize:"strict"};
const La = /[^a-z0-9]+/, Ma = {b:"p", v:"f", w:"f", z:"s", x:"s", "\u00df":"s", d:"t", n:"m", c:"k", g:"k", j:"k", q:"k", i:"e", y:"e", u:"o"};
function Ja(a) {
a = va.call(this, a).join(" ");
;var La = {encode:Ka, rtl:!1, tokenize:"strict"};
const Ma = /[^a-z0-9]+/, Na = {b:"p", v:"f", w:"f", z:"s", x:"s", "\u00df":"s", d:"t", n:"m", c:"k", g:"k", j:"k", q:"k", i:"e", y:"e", u:"o"};
function Ka(a) {
a = wa.call(this, a).join(" ");
const b = [];
if (a) {
const c = a.split(La), d = c.length;
const c = a.split(Ma), d = c.length;
for (let e = 0, f, g = 0; e < d; e++) {
if ((a = c[e]) && (!this.filter || !this.filter[a])) {
f = a[0];
let h = Ma[f] || f, k = h;
for (let m = 1; m < a.length; m++) {
f = a[m];
const n = Ma[f] || f;
let h = Na[f] || f, k = h;
for (let p = 1; p < a.length; p++) {
f = a[p];
const n = Na[f] || f;
n && n !== k && (h += n, k = n);
}
b[g++] = h;
@@ -928,28 +935,29 @@ function Ja(a) {
}
return b;
}
;var Oa = {encode:Na, rtl:!1, tokenize:""};
const Pa = F("ae"), Qa = F("oe"), Ra = F("sh"), Sa = F("th"), Ta = F("ph"), Ua = F("pf"), Va = [Pa, "a", Qa, "o", Ra, "s", Sa, "t", Ta, "f", Ua, "f", ];
function Na(a, b) {
a && (a = Ja.call(this, a).join(" "), 2 < a.length && (a = H(a, Va)), b || (1 < a.length && (a = I(a)), a && (a = a.split(" "))));
;var Pa = {encode:Oa, rtl:!1, tokenize:""};
const Qa = F("ae"), Ra = F("oe"), Sa = F("sh"), Ta = F("th"), Ua = F("ph"), Va = F("pf"), Wa = [Qa, "a", Ra, "o", Sa, "s", Ta, "t", Ua, "f", Va, "f", ];
function Oa(a, b) {
a && (a = Ka.call(this, a).join(" "), 2 < a.length && (a = H(a, Wa)), b || (1 < a.length && (a = I(a)), a && (a = a.split(" "))));
return a;
}
;var Xa = {encode:Wa, rtl:!1, tokenize:""};
const Ya = F("(?!\\b)[aeiouy]");
function Wa(a) {
a && (a = Na.call(this, a, !0), 1 < a.length && (a = a.replace(Ya, "")), 1 < a.length && (a = I(a)), a && (a = a.split(" ")));
;var Ya = {encode:Xa, rtl:!1, tokenize:""};
const Za = F("(?!\\b)[aeiouy]");
function Xa(a) {
a && (a = Oa.call(this, a, !0), 1 < a.length && (a = a.replace(Za, "")), 1 < a.length && (a = I(a)), a && (a = a.split(" ")));
return a;
}
;J["latin:simple"] = wa;
J["latin:balance"] = Ka;
J["latin:advanced"] = Oa;
J["latin:extra"] = Xa;
;J["latin:default"] = ea;
J["latin:simple"] = xa;
J["latin:balance"] = La;
J["latin:advanced"] = Pa;
J["latin:extra"] = Ya;
const X = self;
let Y;
const Z = {Index:M, Document:R, Worker:P, registerCharset:function(a, b) {
J[a] = b;
}, registerLanguage:function(a, b) {
fa[a] = b;
ha[a] = b;
}};
(Y = X.define) && Y.amd ? Y([], function() {
return Z;

View File

@@ -7,40 +7,39 @@
*/
(function(self){'use strict';var u;function aa(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}var v="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};
function ba(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var w=ba(this);function x(a,b){if(b)a:{var c=w;a=a.split(".");for(var d=0;d<a.length-1;d++){var f=a[d];if(!(f in c))break a;c=c[f]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&v(c,a,{configurable:!0,writable:!0,value:b})}}
x("Symbol",function(a){function b(h){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new c(d+(h||"")+"_"+f++,h)}function c(h,e){this.h=h;v(this,"description",{configurable:!0,writable:!0,value:e})}if(a)return a;c.prototype.toString=function(){return this.h};var d="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",f=0;return b});
x("Symbol",function(a){function b(g){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new c(d+(g||"")+"_"+f++,g)}function c(g,e){this.h=g;v(this,"description",{configurable:!0,writable:!0,value:e})}if(a)return a;c.prototype.toString=function(){return this.h};var d="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",f=0;return b});
x("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c<b.length;c++){var d=w[b[c]];"function"===typeof d&&"function"!=typeof d.prototype[a]&&v(d.prototype,a,{configurable:!0,writable:!0,value:function(){return ca(aa(this))}})}return a});function ca(a){a={next:a};a[Symbol.iterator]=function(){return this};return a}
function da(a,b){a instanceof String&&(a+="");var c=0,d=!1,f={next:function(){if(!d&&c<a.length){var h=c++;return{value:b(h,a[h]),done:!1}}d=!0;return{done:!0,value:void 0}}};f[Symbol.iterator]=function(){return f};return f}x("Array.prototype.keys",function(a){return a?a:function(){return da(this,function(b){return b})}});function ea(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):{next:aa(a)}}
x("Promise",function(a){function b(e){this.l=0;this.m=void 0;this.h=[];this.N=!1;var g=this.A();try{e(g.resolve,g.reject)}catch(k){g.reject(k)}}function c(){this.h=null}function d(e){return e instanceof b?e:new b(function(g){g(e)})}if(a)return a;c.prototype.l=function(e){if(null==this.h){this.h=[];var g=this;this.m(function(){g.C()})}this.h.push(e)};var f=w.setTimeout;c.prototype.m=function(e){f(e,0)};c.prototype.C=function(){for(;this.h&&this.h.length;){var e=this.h;this.h=[];for(var g=0;g<e.length;++g){var k=
e[g];e[g]=null;try{k()}catch(l){this.A(l)}}}this.h=null};c.prototype.A=function(e){this.m(function(){throw e;})};b.prototype.A=function(){function e(l){return function(m){k||(k=!0,l.call(g,m))}}var g=this,k=!1;return{resolve:e(this.T),reject:e(this.C)}};b.prototype.T=function(e){if(e===this)this.C(new TypeError("A Promise cannot resolve to itself"));else if(e instanceof b)this.V(e);else{a:switch(typeof e){case "object":var g=null!=e;break a;case "function":g=!0;break a;default:g=!1}g?this.S(e):this.H(e)}};
b.prototype.S=function(e){var g=void 0;try{g=e.then}catch(k){this.C(k);return}"function"==typeof g?this.W(g,e):this.H(e)};b.prototype.C=function(e){this.O(2,e)};b.prototype.H=function(e){this.O(1,e)};b.prototype.O=function(e,g){if(0!=this.l)throw Error("Cannot settle("+e+", "+g+"): Promise already settled in state"+this.l);this.l=e;this.m=g;2===this.l&&this.U();this.P()};b.prototype.U=function(){var e=this;f(function(){if(e.R()){var g=w.console;"undefined"!==typeof g&&g.error(e.m)}},1)};b.prototype.R=
function(){if(this.N)return!1;var e=w.CustomEvent,g=w.Event,k=w.dispatchEvent;if("undefined"===typeof k)return!0;"function"===typeof e?e=new e("unhandledrejection",{cancelable:!0}):"function"===typeof g?e=new g("unhandledrejection",{cancelable:!0}):(e=w.document.createEvent("CustomEvent"),e.initCustomEvent("unhandledrejection",!1,!0,e));e.promise=this;e.reason=this.m;return k(e)};b.prototype.P=function(){if(null!=this.h){for(var e=0;e<this.h.length;++e)h.l(this.h[e]);this.h=null}};var h=new c;b.prototype.V=
function(e){var g=this.A();e.K(g.resolve,g.reject)};b.prototype.W=function(e,g){var k=this.A();try{e.call(g,k.resolve,k.reject)}catch(l){k.reject(l)}};b.prototype.then=function(e,g){function k(n,p){return"function"==typeof n?function(r){try{l(n(r))}catch(t){m(t)}}:p}var l,m,q=new b(function(n,p){l=n;m=p});this.K(k(e,l),k(g,m));return q};b.prototype.catch=function(e){return this.then(void 0,e)};b.prototype.K=function(e,g){function k(){switch(l.l){case 1:e(l.m);break;case 2:g(l.m);break;default:throw Error("Unexpected state: "+
l.l);}}var l=this;null==this.h?h.l(k):this.h.push(k);this.N=!0};b.resolve=d;b.reject=function(e){return new b(function(g,k){k(e)})};b.race=function(e){return new b(function(g,k){for(var l=ea(e),m=l.next();!m.done;m=l.next())d(m.value).K(g,k)})};b.all=function(e){var g=ea(e),k=g.next();return k.done?d([]):new b(function(l,m){function q(r){return function(t){n[r]=t;p--;0==p&&l(n)}}var n=[],p=0;do n.push(void 0),p++,d(k.value).K(q(n.length-1),m),k=g.next();while(!k.done)})};return b});
var fa="function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var f in d)Object.prototype.hasOwnProperty.call(d,f)&&(a[f]=d[f])}return a};x("Object.assign",function(a){return a||fa});function A(a){return"undefined"!==typeof a?a:!0}function ha(a){for(var b=Array(a),c=0;c<a;c++)b[c]=B();return b}function B(){return Object.create(null)}function ia(a,b){return b.length-a.length}function D(a){return"string"===typeof a}function E(a){return"object"===typeof a}function I(a){return"function"===typeof a};var ja=/[\u0300-\u036f]/g;function ka(a){a.normalize&&(a=a.normalize("NFD").replace(ja,""));return a}function la(a,b){for(var c=Object.keys(a),d=c.length,f=[],h="",e=0,g=0,k,l;g<d;g++)k=c[g],(l=a[k])?(f[e++]=J(b?"(?!\\b)"+k+"(\\b|_)":k),f[e++]=l):h+=(h?"|":"")+k;h&&(f[e++]=J(b?"(?!\\b)("+h+")(\\b|_)":"("+h+")"),f[e]="");return f}function K(a,b){for(var c=0,d=b.length;c<d&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a}function J(a){return new RegExp(a,"g")}
function ma(a){for(var b="",c="",d=0,f=a.length,h=void 0;d<f;d++)(h=a[d])!==c&&(b+=c=h);return b};var na=/[\W_]+/;function oa(a){return pa(this,ka(a).toLowerCase(),!1,na)};var qa={},L={};function ra(a){M(a,"add");M(a,"append");M(a,"search");M(a,"update");M(a,"remove")}function M(a,b){a[b+"Async"]=function(){var c=this,d=arguments,f=d[d.length-1];if(I(f)){var h=f;delete d[d.length-1]}f=new Promise(function(e){setTimeout(function(){c.async=!0;var g=c[b].apply(c,d);c.async=!1;e(g)})});return h?(f.then(h),this):f}};function sa(a,b,c,d){for(var f=a.length,h=[],e,g,k,l,m=0;m<f;m++){for(var q=a[m],n=q.length,p=0,r=0,t;r<n;r++)(t=q[r])&&(p+=t.length);if(!g||p<g)g=p,k=q,l=m}k=1===k.length?k[0]:[].concat.apply([],k);d&&(d=[k],e=B());m=g=0;for(q=f-1;0<=q;q--)if(q!==l){m++;n=a[q];p=n.length;r=[];for(var z=t=0,y;z<k.length;z++){y=k[z];for(var C=void 0,G=0;G<p;G++){var H=n[G];if(H.length&&(C=-1!==H.indexOf(y))){if(m===f-1){if(c)c--;else if(h[g++]=y,g===b)return h;d&&(e[y]=1)}break}}C&&(r[t++]=y)}if(d)d[m]=r;else if(!t)return[];
k=r}if(d)for(a=d.length-1;0<=a;a--)if(k=(f=d[a])&&f.length)for(l=0;l<k;l++)if(m=f[l],!e[m])if(e[m]=1,c)c--;else if(h[g++]=m,g===b)return h;return h}function ta(a,b){for(var c=B(),d=B(),f=[],h=0;h<a.length;h++)c[a[h]]=1;for(a=0;a<b.length;a++){h=b[a];for(var e=0,g;e<h.length;e++)g=h[e],c[g]&&!d[g]&&(d[g]=1,f[f.length]=g)}return f};function N(a){this.l=!0!==a&&a;this.cache=B();this.h=[]}function ua(a,b,c){E(a)&&(a=a.query);var d=this.cache.get(a);d||(d=this.search(a,b,c),this.cache.set(a,d));return d}N.prototype.set=function(a,b){if(!this.cache[a]){var c=this.h.length;c===this.l?delete this.cache[this.h[c-1]]:c++;for(--c;0<c;c--)this.h[c]=this.h[c-1];this.h[0]=a}this.cache[a]=b};N.prototype.get=function(a){var b=this.cache[a];if(this.l&&b&&(a=this.h.indexOf(a))){var c=this.h[a-1];this.h[a-1]=this.h[a];this.h[a]=c}return b};var va={memory:{charset:"latin:extra",G:3,D:3,s:!1,B:"memory"},performance:{threshold:8,D:3,context:{depth:1,I:!0}},match:{charset:"latin:extra",J:"full",G:3},score:{charset:"latin:advanced",threshold:1,context:{depth:3,I:!0}},"default":{G:3,threshold:0,depth:3}};function wa(a,b,c,d,f,h){setTimeout(function(){var e=a(c,JSON.stringify(h));e&&e.then?e.then(function(){b.export(a,b,c,d,f+1)}):b.export(a,b,c,d,f+1)})};L["latin:default"]=oa;
function O(a,b){if(!(this instanceof O))return new O(a);var c;if(a){D(a)?a=va[a]:(c=a.preset)&&(a=Object.assign({},c[c],a));c=a.charset;var d=a.lang;D(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=L[c]);D(d)&&(d=qa[d])}else a={};var f,h,e=a.context||{};this.encode=a.encode||c&&c.encode||oa;this.register=b||B();this.G=f=a.resolution||9;this.m=b=c&&c.J||a.tokenize||"strict";this.depth="strict"===b&&e.depth;this.I=A(e.bidirectional);this.B=h="memory"===a.optimize;this.s=A(a.fastupdate);this.D=a.minlength||
1;this.map=h?ha(f):B();this.l=f=e.resolution||1;this.h=h?ha(f):B();this.F=c&&c.F||a.rtl;this.L=(b=a.matcher||d&&d.L)&&la(b,!1);this.M=(b=a.stemmer||d&&d.M)&&la(b,!0);if(c=b=a.filter||d&&d.filter){c=b;d=B();e=0;for(f=c.length;e<f;e++)d[c[e]]=1;c=d}this.filter=c;this.cache=(b=a.cache)&&new N(b)}
function pa(a,b,c,d){if(b&&(c&&(b=K(b,c)),a.L&&(b=K(b,a.L)),a.M&&1<b.length&&(b=K(b,a.M)),d||""===d)){b=b.split(d);if(a.filter){a=a.filter;c=b.length;d=[];for(var f=0,h=0;f<c;f++){var e=b[f];e&&!a[e]&&(d[h++]=e)}b=d}return b}return b}u=O.prototype;u.append=function(a,b){return this.add(a,b,!0)};
u.add=function(a,b,c,d){if(!d&&!c&&this.register[a])return this.update(a,b);if(b&&(a||0===a)&&(b=this.encode(b),d=b.length)){for(var f=this.depth,h=this.G,e=B(),g=B(),k=0;k<d;k++){var l=b[this.F?d-1-k:k],m=l.length;if(l&&m>=this.D&&(f||!e[l])){var q=Math.min(h/d*k|0,k),n="";switch(this.m){case "full":if(3<m){for(var p=0;p<m;p++)for(var r=p?Math.min(q/2+h/m*p/2|0,q+p):q,t=m;t>p;t--)n=l.substring(p,t),n.length>=this.D&&P(this,e,n,r,a,c);break}case "reverse":if(2<m){for(p=m-1;0<p;p--)n=l[p]+n,n.length>=
this.D&&P(this,e,n,q,a,c);n=""}case "forward":if(1<m)for(p=0;p<m;p++)n+=l[p],n.length>=this.D&&P(this,e,n,q,a,c);break;default:if(P(this,e,l,q,a,c),f&&1<d&&k<d-1)for(m=B(),q=l,n=Math.min(f+1,d-k),p=m[q]=1;p<n;p++)(l=b[this.F?d-1-k-p:k+p])&&l.length>=this.D&&!m[l]?(m[l]=1,r=this.I&&l>q,P(this,g,r?q:l,0,a,c,r?l:q)):n=Math.min(n+1,d-k)}}}this.s||(this.register[a]=1)}return this};
function P(a,b,c,d,f,h,e){var g=e?a.h:a.map;if(!b[c]||e&&!b[c][e])a.B&&(g=g[d]),e?(b=b[c]||(b[c]=B()),b[e]=1,g=g[e]||(g[e]=B())):b[c]=1,g=g[c]||(g[c]=[]),a.B||(g=g[d]||(g[d]=[])),h&&-1!==g.indexOf(f)||(g[g.length]=f,a.s&&(a=a.register[f]||(a.register[f]=[]),a[a.length]=g))}
u.search=function(a,b,c){E(a)?(c=a,a=c.query):E(b)&&(c=b);var d=[],f=0;if(c){b=c.limit;f=c.offset||0;var h=c.context;var e=c.suggest}if(a){a=this.encode(a);var g=a.length;if(1<g){c=B();for(var k=[],l=0,m=0,q;l<g;l++)if((q=a[l])&&q.length>=this.D&&!c[q])if(this.B||e||this.map[q])k[m++]=q,c[q]=1;else return d;a=k;g=a.length}}if(!g)return d;b||(b=100);h=this.depth&&1<g&&!1!==h;c=0;if(h){var n=a[0];c=1}else 1<g&&a.sort(ia);for(;c<g;c++){l=a[c];h?(k=xa(this,d,e,b,f,2===g,l,n),e&&!1===k&&d.length||(n=l)):
k=xa(this,d,e,b,f,1===g,l);if(k)return k;if(e&&c===g-1){k=d.length;if(!k){if(h){h=0;c=-1;continue}return d}if(1===k)return ya(d[0],b,f)}}return sa(d,b,f,e)};
function xa(a,b,c,d,f,h,e,g){var k=[],l=g?a.h:a.map;a.B||(l=za(l,e,g,a.I));if(l){for(var m=0,q=Math.min(l.length,g?a.l:a.G),n=0,p=0,r,t;n<q;n++)if(r=l[n])if(a.B&&(r=za(r,e,g,a.I)),f&&r&&h&&(t=r.length,t<=f?(f-=t,r=null):(r=r.slice(f),f=0)),r&&(k[m++]=r,h&&(p+=r.length,p>=d)))break;if(m){if(h)return ya(k,d,0);b[b.length]=k;return}}return!c&&k}function ya(a,b,c){a=1===a.length?a[0]:[].concat.apply([],a);return c||a.length>b?a.slice(c,c+b):a}
function za(a,b,c,d){c?(d=d&&b>c,a=(a=a[d?b:c])&&a[d?c:b]):a=a[b];return a}u.contain=function(a){return!!this.register[a]};u.update=function(a,b){return this.remove(a).add(a,b)};
u.remove=function(a,b){var c=this.register[a];if(c){if(this.s)for(var d=0,f;d<c.length;d++)f=c[d],f.splice(f.indexOf(a),1);else Q(this.map,a,this.G,this.B),this.depth&&Q(this.h,a,this.l,this.B);b||delete this.register[a];if(this.cache)for(b=this.cache,c=0;c<b.h.length;c++)f=b.h[c],d=b.cache[f],-1!==d.indexOf(a)&&(b.h.splice(c--,1),delete b.cache[f])}return this};
function Q(a,b,c,d,f){var h=0;if(a.constructor===Array)if(f)b=a.indexOf(b),-1!==b?1<a.length&&(a.splice(b,1),h++):h++;else{f=Math.min(a.length,c);for(var e=0,g;e<f;e++)if(g=a[e])h=Q(g,b,c,d,f),d||h||delete a[e]}else for(e in a)(h=Q(a[e],b,c,d,f))||delete a[e];return h}u.searchCache=ua;
u.export=function(a,b,c,d,f){switch(f||(f=0)){case 0:var h="reg";if(this.s){var e=B();for(var g in this.register)e[g]=1}else e=this.register;break;case 1:h="cfg";e={doc:0,opt:this.B?1:0};break;case 2:h="map";e=this.map;break;case 3:h="ctx";e=this.h;break;default:return}wa(a,b||this,c?c+"."+h:h,d,f,e);return!0};u.import=function(a,b){if(b)switch(D(b)&&(b=JSON.parse(b)),a){case "cfg":this.B=!!b.opt;break;case "reg":this.s=!1;this.register=b;break;case "map":this.map=b;break;case "ctx":this.h=b}};ra(O.prototype);function Aa(a){a=a.data;var b=self._index,c=a.args,d=a.task;switch(d){case "init":d=a.options||{};a=a.factory;b=d.encode;d.cache=!1;b&&0===b.indexOf("function")&&(d.encode=Function("return "+b)());a?(Function("return "+a)()(self),self._index=new self.FlexSearch.Index(d),delete self.FlexSearch):self._index=new O(d);break;default:a=a.id,b=b[d].apply(b,c),postMessage("search"===d?{id:a,msg:b}:{id:a})}};var Ba=0;function R(a){var b;a?I(b=a.encode)&&(a.encode=b.toString()):a={};(b=(self||window)._factory)&&(b=b.toString());var c=self.exports,d=this;this.o=Ca(b,c,a.worker);this.h=B();if(this.o){if(c)this.o.on("message",function(f){d.h[f.id](f.msg);delete d.h[f.id]});else this.o.onmessage=function(f){f=f.data;d.h[f.id](f.msg);delete d.h[f.id]};this.o.postMessage({task:"init",factory:b,options:a})}}S("add");S("append");S("search");S("update");S("remove");
function S(a){R.prototype[a]=R.prototype[a+"Async"]=function(){var b=this,c=[].slice.call(arguments),d=c[c.length-1];if(I(d)){var f=d;c.splice(c.length-1,1)}d=new Promise(function(h){setTimeout(function(){b.h[++Ba]=h;b.o.postMessage({task:a,id:Ba,args:c})})});return f?(d.then(f),this):d}}
function Ca(a,b,c){try{var d=b?eval('new (require("worker_threads")["Worker"])("../dist/node/node.js")'):a?new Worker(URL.createObjectURL(new Blob(["onmessage="+Aa.toString()],{type:"text/javascript"}))):new Worker(D(c)?c:"worker/worker.js",{type:"module"})}catch(f){}return d};function T(a){if(!(this instanceof T))return new T(a);var b=a.document||a.doc||a,c;this.H=[];this.h=[];this.m=[];this.register=B();this.key=(c=b.key||b.id)&&U(c,this.m)||"id";this.s=A(a.fastupdate);this.A=(c=b.store)&&!0!==c&&[];this.store=c&&B();this.C=(c=b.tag)&&U(c,this.m);this.l=c&&B();this.cache=(c=a.cache)&&new N(c);a.cache=!1;this.o=a.worker;this.async=!1;c=B();var d=b.index||b.field||b;D(d)&&(d=[d]);for(var f=0,h,e=void 0;f<d.length;f++)h=d[f],D(h)||(e=h,h=h.field),e=E(e)?Object.assign({},
a,e):a,this.o&&(c[h]=new R(e),c[h].o||(this.o=!1)),this.o||(c[h]=new O(e,this.register)),this.H[f]=U(h,this.m),this.h[f]=h;if(this.A)for(a=b.store,D(a)&&(a=[a]),b=0;b<a.length;b++)this.A[b]=U(a[b],this.m);this.index=c}function U(a,b){for(var c=a.split(":"),d=0,f=0;f<c.length;f++)a=c[f],0<=a.indexOf("[]")&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}function V(a,b){if(D(b))a=a[b];else for(var c=0;a&&c<b.length;c++)a=a[b[c]];return a}
function W(a,b,c,d,f){a=a[f];if(d===c.length-1)b[f]=a;else if(a)if(a.constructor===Array)for(b=b[f]=Array(a.length),f=0;f<a.length;f++)W(a,b,c,d,f);else b=b[f]||(b[f]=B()),f=c[++d],W(a,b,c,d,f)}function X(a,b,c,d,f,h,e,g){a=a[e];if(d===b.length-1){if(a.constructor===Array){if(c[d]){for(b=0;b<a.length;b++)f.add(h,a[b],!0,!0);return}a=a.join(" ")}f.add(h,a,g,!0)}else if(a)if(a.constructor===Array)for(e=0;e<a.length;e++)X(a,b,c,d,f,h,e,g);else e=b[++d],X(a,b,c,d,f,h,e,g)}u=T.prototype;
u.add=function(a,b,c){E(a)&&(b=a,a=V(b,this.key));if(b&&(a||0===a)){if(this.register[a])return this.update(a,b);for(var d=0,f,h;d<this.h.length;d++)h=this.h[d],f=this.H[d],D(f)&&(f=[f]),X(b,f,this.m,0,this.index[h],a,f[0],c);if(this.C){d=V(b,this.C);f=B();D(d)&&(d=[d]);h=0;for(var e;h<d.length;h++)if(e=d[h],!f[e]&&(f[e]=1,e=this.l[e]||(this.l[e]=[]),!c||-1===e.indexOf(a)))if(e[e.length]=a,this.s){var g=this.register[a]||(this.register[a]=[]);g[g.length]=e}}if(this.store){if(this.A){var k=B();for(c=
function da(a,b){a instanceof String&&(a+="");var c=0,d=!1,f={next:function(){if(!d&&c<a.length){var g=c++;return{value:b(g,a[g]),done:!1}}d=!0;return{done:!0,value:void 0}}};f[Symbol.iterator]=function(){return f};return f}x("Array.prototype.keys",function(a){return a?a:function(){return da(this,function(b){return b})}});function ea(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):{next:aa(a)}}
x("Promise",function(a){function b(e){this.l=0;this.m=void 0;this.h=[];this.N=!1;var h=this.A();try{e(h.resolve,h.reject)}catch(k){h.reject(k)}}function c(){this.h=null}function d(e){return e instanceof b?e:new b(function(h){h(e)})}if(a)return a;c.prototype.l=function(e){if(null==this.h){this.h=[];var h=this;this.m(function(){h.C()})}this.h.push(e)};var f=w.setTimeout;c.prototype.m=function(e){f(e,0)};c.prototype.C=function(){for(;this.h&&this.h.length;){var e=this.h;this.h=[];for(var h=0;h<e.length;++h){var k=
e[h];e[h]=null;try{k()}catch(l){this.A(l)}}}this.h=null};c.prototype.A=function(e){this.m(function(){throw e;})};b.prototype.A=function(){function e(l){return function(m){k||(k=!0,l.call(h,m))}}var h=this,k=!1;return{resolve:e(this.T),reject:e(this.C)}};b.prototype.T=function(e){if(e===this)this.C(new TypeError("A Promise cannot resolve to itself"));else if(e instanceof b)this.V(e);else{a:switch(typeof e){case "object":var h=null!=e;break a;case "function":h=!0;break a;default:h=!1}h?this.S(e):this.I(e)}};
b.prototype.S=function(e){var h=void 0;try{h=e.then}catch(k){this.C(k);return}"function"==typeof h?this.W(h,e):this.I(e)};b.prototype.C=function(e){this.O(2,e)};b.prototype.I=function(e){this.O(1,e)};b.prototype.O=function(e,h){if(0!=this.l)throw Error("Cannot settle("+e+", "+h+"): Promise already settled in state"+this.l);this.l=e;this.m=h;2===this.l&&this.U();this.P()};b.prototype.U=function(){var e=this;f(function(){if(e.R()){var h=w.console;"undefined"!==typeof h&&h.error(e.m)}},1)};b.prototype.R=
function(){if(this.N)return!1;var e=w.CustomEvent,h=w.Event,k=w.dispatchEvent;if("undefined"===typeof k)return!0;"function"===typeof e?e=new e("unhandledrejection",{cancelable:!0}):"function"===typeof h?e=new h("unhandledrejection",{cancelable:!0}):(e=w.document.createEvent("CustomEvent"),e.initCustomEvent("unhandledrejection",!1,!0,e));e.promise=this;e.reason=this.m;return k(e)};b.prototype.P=function(){if(null!=this.h){for(var e=0;e<this.h.length;++e)g.l(this.h[e]);this.h=null}};var g=new c;b.prototype.V=
function(e){var h=this.A();e.K(h.resolve,h.reject)};b.prototype.W=function(e,h){var k=this.A();try{e.call(h,k.resolve,k.reject)}catch(l){k.reject(l)}};b.prototype.then=function(e,h){function k(n,q){return"function"==typeof n?function(r){try{l(n(r))}catch(t){m(t)}}:q}var l,m,p=new b(function(n,q){l=n;m=q});this.K(k(e,l),k(h,m));return p};b.prototype.catch=function(e){return this.then(void 0,e)};b.prototype.K=function(e,h){function k(){switch(l.l){case 1:e(l.m);break;case 2:h(l.m);break;default:throw Error("Unexpected state: "+
l.l);}}var l=this;null==this.h?g.l(k):this.h.push(k);this.N=!0};b.resolve=d;b.reject=function(e){return new b(function(h,k){k(e)})};b.race=function(e){return new b(function(h,k){for(var l=ea(e),m=l.next();!m.done;m=l.next())d(m.value).K(h,k)})};b.all=function(e){var h=ea(e),k=h.next();return k.done?d([]):new b(function(l,m){function p(r){return function(t){n[r]=t;q--;0==q&&l(n)}}var n=[],q=0;do n.push(void 0),q++,d(k.value).K(p(n.length-1),m),k=h.next();while(!k.done)})};return b});
var fa="function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var f in d)Object.prototype.hasOwnProperty.call(d,f)&&(a[f]=d[f])}return a};x("Object.assign",function(a){return a||fa});function A(a){return"undefined"!==typeof a?a:!0}function ha(a){for(var b=Array(a),c=0;c<a;c++)b[c]=B();return b}function B(){return Object.create(null)}function ia(a,b){return b.length-a.length}function D(a){return"string"===typeof a}function E(a){return"object"===typeof a}function I(a){return"function"===typeof a};var ja=/[\u0300-\u036f]/g;function ka(a){a.normalize&&(a=a.normalize("NFD").replace(ja,""));return a}function la(a,b){for(var c=Object.keys(a),d=c.length,f=[],g="",e=0,h=0,k,l;h<d;h++)k=c[h],(l=a[k])?(f[e++]=J(b?"(?!\\b)"+k+"(\\b|_)":k),f[e++]=l):g+=(g?"|":"")+k;g&&(f[e++]=J(b?"(?!\\b)("+g+")(\\b|_)":"("+g+")"),f[e]="");return f}function K(a,b){for(var c=0,d=b.length;c<d&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a}function J(a){return new RegExp(a,"g")}
function ma(a){for(var b="",c="",d=0,f=a.length,g=void 0;d<f;d++)(g=a[d])!==c&&(b+=c=g);return b};var oa={encode:na,F:!1,G:""},pa=/[\W_]+/;function na(a){return qa(this,ka(a).toLowerCase(),!1,pa)};var ra={},L={};function sa(a){M(a,"add");M(a,"append");M(a,"search");M(a,"update");M(a,"remove")}function M(a,b){a[b+"Async"]=function(){var c=this,d=arguments,f=d[d.length-1];if(I(f)){var g=f;delete d[d.length-1]}f=new Promise(function(e){setTimeout(function(){c.async=!0;var h=c[b].apply(c,d);c.async=!1;e(h)})});return g?(f.then(g),this):f}};function ta(a,b,c,d){for(var f=a.length,g=[],e,h,k,l,m=0;m<f;m++){for(var p=a[m],n=p.length,q=0,r=0,t;r<n;r++)(t=p[r])&&(q+=t.length);if(!h||q<h)h=q,k=p,l=m}k=1===k.length?k[0]:[].concat.apply([],k);d&&(d=[k],e=B());m=h=0;for(p=f-1;0<=p;p--)if(p!==l){m++;n=a[p];q=n.length;r=[];for(var z=t=0,y;z<k.length;z++){y=k[z];for(var C=void 0,G=0;G<q;G++){var H=n[G];if(H.length&&(C=-1!==H.indexOf(y))){if(m===f-1){if(c)c--;else if(g[h++]=y,h===b)return g;d&&(e[y]=1)}break}}C&&(r[t++]=y)}if(d)d[m]=r;else if(!t)return[];
k=r}if(d)for(a=d.length-1;0<=a;a--)if(k=(f=d[a])&&f.length)for(l=0;l<k;l++)if(m=f[l],!e[m])if(e[m]=1,c)c--;else if(g[h++]=m,h===b)return g;return g}function ua(a,b){for(var c=B(),d=B(),f=[],g=0;g<a.length;g++)c[a[g]]=1;for(a=0;a<b.length;a++){g=b[a];for(var e=0,h;e<g.length;e++)h=g[e],c[h]&&!d[h]&&(d[h]=1,f[f.length]=h)}return f};function N(a){this.l=!0!==a&&a;this.cache=B();this.h=[]}function va(a,b,c){E(a)&&(a=a.query);var d=this.cache.get(a);d||(d=this.search(a,b,c),this.cache.set(a,d));return d}N.prototype.set=function(a,b){if(!this.cache[a]){var c=this.h.length;c===this.l?delete this.cache[this.h[c-1]]:c++;for(--c;0<c;c--)this.h[c]=this.h[c-1];this.h[0]=a}this.cache[a]=b};N.prototype.get=function(a){var b=this.cache[a];if(this.l&&b&&(a=this.h.indexOf(a))){var c=this.h[a-1];this.h[a-1]=this.h[a];this.h[a]=c}return b};var wa={memory:{charset:"latin:extra",H:3,D:3,s:!1,B:"memory"},performance:{threshold:8,D:3,context:{depth:1,J:!0}},match:{charset:"latin:extra",G:"full",H:3},score:{charset:"latin:advanced",threshold:1,context:{depth:3,J:!0}},"default":{H:3,threshold:0,depth:3}};function xa(a,b,c,d,f,g){setTimeout(function(){var e=a(c,JSON.stringify(g));e&&e.then?e.then(function(){b.export(a,b,c,d,f+1)}):b.export(a,b,c,d,f+1)})};function O(a,b){if(!(this instanceof O))return new O(a);var c;if(a){D(a)?a=wa[a]:(c=a.preset)&&(a=Object.assign({},c[c],a));c=a.charset;var d=a.lang;D(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=L[c]);D(d)&&(d=ra[d])}else a={};var f,g,e=a.context||{};this.encode=a.encode||c&&c.encode||na;this.register=b||B();this.H=f=a.resolution||9;this.G=b=c&&c.G||a.tokenize||"strict";this.depth="strict"===b&&e.depth;this.J=A(e.bidirectional);this.B=g=A(a.optimize);this.s=A(a.fastupdate);this.D=a.minlength||1;this.map=
g?ha(f):B();this.l=f=e.resolution||1;this.h=g?ha(f):B();this.F=c&&c.F||a.rtl;this.L=(b=a.matcher||d&&d.L)&&la(b,!1);this.M=(b=a.stemmer||d&&d.M)&&la(b,!0);if(c=b=a.filter||d&&d.filter){c=b;d=B();e=0;for(f=c.length;e<f;e++)d[c[e]]=1;c=d}this.filter=c;this.cache=(b=a.cache)&&new N(b)}
function qa(a,b,c,d){if(b&&(c&&(b=K(b,c)),a.L&&(b=K(b,a.L)),a.M&&1<b.length&&(b=K(b,a.M)),d||""===d)){b=b.split(d);if(a.filter){a=a.filter;c=b.length;d=[];for(var f=0,g=0;f<c;f++){var e=b[f];e&&!a[e]&&(d[g++]=e)}b=d}return b}return b}u=O.prototype;u.append=function(a,b){return this.add(a,b,!0)};
u.add=function(a,b,c,d){if(!d&&!c&&this.register[a])return this.update(a,b);if(b&&(a||0===a)&&(b=this.encode(b),d=b.length)){for(var f=this.depth,g=this.H,e=B(),h=B(),k=0;k<d;k++){var l=b[this.F?d-1-k:k],m=l.length;if(l&&m>=this.D&&(f||!e[l])){var p=d<g?k:g/d*k|0,n="";switch(this.G){case "full":if(3<m){for(p=0;p<m;p++)for(var q=m;q>p;q--)if(q-p>=this.D){var r=d+m<g?k+p:g/(d+m)*(k+p)|0;n=l.substring(p,q);P(this,e,n,r,a,c)}break}case "reverse":if(2<m){for(q=m-1;0<q;q--)n=l[q]+n,n.length>=this.D&&P(this,
e,n,d+m<g?k+q:g/(d+m)*(k+q)|0,a,c);n=""}case "forward":if(1<m)for(q=0;q<m;q++)n+=l[q],n.length>=this.D&&P(this,e,n,p,a,c);break;default:if(P(this,e,l,p,a,c),f&&1<d&&k<d-1)for(m=this.l,n=B(),p=l,q=Math.min(f+1,d-k),r=n[p]=1;r<q;r++)if((l=b[this.F?d-1-k-r:k+r])&&l.length>=this.D&&!n[l]){n[l]=1;var t=this.J&&l>p;P(this,h,t?p:l,q+d<m?k+(r-1):m/(q+d)*(k+r)|0,a,c,t?l:p)}}}}this.s||(this.register[a]=1)}return this};
function P(a,b,c,d,f,g,e){var h=e?a.h:a.map;if(!b[c]||e&&!b[c][e])a.B&&(h=h[d]),e?(b=b[c]||(b[c]=B()),b[e]=1,h=h[e]||(h[e]=B())):b[c]=1,h=h[c]||(h[c]=[]),a.B||(h=h[d]||(h[d]=[])),g&&-1!==h.indexOf(f)||(h[h.length]=f,a.s&&(a=a.register[f]||(a.register[f]=[]),a[a.length]=h))}
u.search=function(a,b,c){E(a)?(c=a,a=c.query):E(b)&&(c=b);var d=[],f=0;if(c){b=c.limit;f=c.offset||0;var g=c.context;var e=c.suggest}if(a){a=this.encode(a);var h=a.length;if(1<h){c=B();for(var k=[],l=0,m=0,p;l<h;l++)if((p=a[l])&&p.length>=this.D&&!c[p])if(this.B||e||this.map[p])k[m++]=p,c[p]=1;else return d;a=k;h=a.length}}if(!h)return d;b||(b=100);g=this.depth&&1<h&&!1!==g;c=0;if(g){var n=a[0];c=1}else 1<h&&a.sort(ia);for(;c<h;c++){l=a[c];g?(k=ya(this,d,e,b,f,2===h,l,n),e&&!1===k&&d.length||(n=l)):
k=ya(this,d,e,b,f,1===h,l);if(k)return k;if(e&&c===h-1){k=d.length;if(!k){if(g){g=0;c=-1;continue}return d}if(1===k)return za(d[0],b,f)}}return ta(d,b,f,e)};
function ya(a,b,c,d,f,g,e,h){var k=[],l=h?a.h:a.map;a.B||(l=Aa(l,e,h,a.J));if(l){for(var m=0,p=Math.min(l.length,h?a.l:a.H),n=0,q=0,r,t;n<p;n++)if(r=l[n])if(a.B&&(r=Aa(r,e,h,a.J)),f&&r&&g&&(t=r.length,t<=f?(f-=t,r=null):(r=r.slice(f),f=0)),r&&(k[m++]=r,g&&(q+=r.length,q>=d)))break;if(m){if(g)return za(k,d,0);b[b.length]=k;return}}return!c&&k}function za(a,b,c){a=1===a.length?a[0]:[].concat.apply([],a);return c||a.length>b?a.slice(c,c+b):a}
function Aa(a,b,c,d){c?(d=d&&b>c,a=(a=a[d?b:c])&&a[d?c:b]):a=a[b];return a}u.contain=function(a){return!!this.register[a]};u.update=function(a,b){return this.remove(a).add(a,b)};
u.remove=function(a,b){var c=this.register[a];if(c){if(this.s)for(var d=0,f;d<c.length;d++)f=c[d],f.splice(f.indexOf(a),1);else Q(this.map,a,this.H,this.B),this.depth&&Q(this.h,a,this.l,this.B);b||delete this.register[a];if(this.cache)for(b=this.cache,c=0;c<b.h.length;c++)f=b.h[c],d=b.cache[f],-1!==d.indexOf(a)&&(b.h.splice(c--,1),delete b.cache[f])}return this};
function Q(a,b,c,d,f){var g=0;if(a.constructor===Array)if(f)b=a.indexOf(b),-1!==b?1<a.length&&(a.splice(b,1),g++):g++;else{f=Math.min(a.length,c);for(var e=0,h;e<f;e++)if(h=a[e])g=Q(h,b,c,d,f),d||g||delete a[e]}else for(e in a)(g=Q(a[e],b,c,d,f))||delete a[e];return g}u.searchCache=va;
u.export=function(a,b,c,d,f){switch(f||(f=0)){case 0:var g="reg";if(this.s){var e=B();for(var h in this.register)e[h]=1}else e=this.register;break;case 1:g="cfg";e={doc:0,opt:this.B?1:0};break;case 2:g="map";e=this.map;break;case 3:g="ctx";e=this.h;break;default:return}xa(a,b||this,c?c+"."+g:g,d,f,e);return!0};u.import=function(a,b){if(b)switch(D(b)&&(b=JSON.parse(b)),a){case "cfg":this.B=!!b.opt;break;case "reg":this.s=!1;this.register=b;break;case "map":this.map=b;break;case "ctx":this.h=b}};sa(O.prototype);function Ba(a){a=a.data;var b=self._index,c=a.args,d=a.task;switch(d){case "init":d=a.options||{};a=a.factory;b=d.encode;d.cache=!1;b&&0===b.indexOf("function")&&(d.encode=Function("return "+b)());a?(Function("return "+a)()(self),self._index=new self.FlexSearch.Index(d),delete self.FlexSearch):self._index=new O(d);break;default:a=a.id,b=b[d].apply(b,c),postMessage("search"===d?{id:a,msg:b}:{id:a})}};var Ca=0;function R(a){var b;a?I(b=a.encode)&&(a.encode=b.toString()):a={};(b=(self||window)._factory)&&(b=b.toString());var c=self.exports,d=this;this.o=Da(b,c,a.worker);this.h=B();if(this.o){if(c)this.o.on("message",function(f){d.h[f.id](f.msg);delete d.h[f.id]});else this.o.onmessage=function(f){f=f.data;d.h[f.id](f.msg);delete d.h[f.id]};this.o.postMessage({task:"init",factory:b,options:a})}}S("add");S("append");S("search");S("update");S("remove");
function S(a){R.prototype[a]=R.prototype[a+"Async"]=function(){var b=this,c=[].slice.call(arguments),d=c[c.length-1];if(I(d)){var f=d;c.splice(c.length-1,1)}d=new Promise(function(g){setTimeout(function(){b.h[++Ca]=g;b.o.postMessage({task:a,id:Ca,args:c})})});return f?(d.then(f),this):d}}
function Da(a,b,c){try{var d=b?eval('new (require("worker_threads")["Worker"])("../dist/node/node.js")'):a?new Worker(URL.createObjectURL(new Blob(["onmessage="+Ba.toString()],{type:"text/javascript"}))):new Worker(D(c)?c:"worker/worker.js",{type:"module"})}catch(f){}return d};function T(a){if(!(this instanceof T))return new T(a);var b=a.document||a.doc||a,c;this.I=[];this.h=[];this.m=[];this.register=B();this.key=(c=b.key||b.id)&&U(c,this.m)||"id";this.s=A(a.fastupdate);this.A=(c=b.store)&&!0!==c&&[];this.store=c&&B();this.C=(c=b.tag)&&U(c,this.m);this.l=c&&B();this.cache=(c=a.cache)&&new N(c);a.cache=!1;this.o=a.worker;this.async=!1;c=B();var d=b.index||b.field||b;D(d)&&(d=[d]);for(var f=0,g,e=void 0;f<d.length;f++)g=d[f],D(g)||(e=g,g=g.field),e=E(e)?Object.assign({},
a,e):a,this.o&&(c[g]=new R(e),c[g].o||(this.o=!1)),this.o||(c[g]=new O(e,this.register)),this.I[f]=U(g,this.m),this.h[f]=g;if(this.A)for(a=b.store,D(a)&&(a=[a]),b=0;b<a.length;b++)this.A[b]=U(a[b],this.m);this.index=c}function U(a,b){for(var c=a.split(":"),d=0,f=0;f<c.length;f++)a=c[f],0<=a.indexOf("[]")&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}function V(a,b){if(D(b))a=a[b];else for(var c=0;a&&c<b.length;c++)a=a[b[c]];return a}
function W(a,b,c,d,f){a=a[f];if(d===c.length-1)b[f]=a;else if(a)if(a.constructor===Array)for(b=b[f]=Array(a.length),f=0;f<a.length;f++)W(a,b,c,d,f);else b=b[f]||(b[f]=B()),f=c[++d],W(a,b,c,d,f)}function X(a,b,c,d,f,g,e,h){a=a[e];if(d===b.length-1){if(a.constructor===Array){if(c[d]){for(b=0;b<a.length;b++)f.add(g,a[b],!0,!0);return}a=a.join(" ")}f.add(g,a,h,!0)}else if(a)if(a.constructor===Array)for(e=0;e<a.length;e++)X(a,b,c,d,f,g,e,h);else e=b[++d],X(a,b,c,d,f,g,e,h)}u=T.prototype;
u.add=function(a,b,c){E(a)&&(b=a,a=V(b,this.key));if(b&&(a||0===a)){if(this.register[a])return this.update(a,b);for(var d=0,f,g;d<this.h.length;d++)g=this.h[d],f=this.I[d],D(f)&&(f=[f]),X(b,f,this.m,0,this.index[g],a,f[0],c);if(this.C){d=V(b,this.C);f=B();D(d)&&(d=[d]);g=0;for(var e;g<d.length;g++)if(e=d[g],!f[e]&&(f[e]=1,e=this.l[e]||(this.l[e]=[]),!c||-1===e.indexOf(a)))if(e[e.length]=a,this.s){var h=this.register[a]||(this.register[a]=[]);h[h.length]=e}}if(this.store){if(this.A){var k=B();for(c=
0;c<this.A.length;c++)d=this.A[c],D(d)?k[d]=b[d]:W(b,k,d,0,d[0])}this.store[a]=k||b}}return this};u.append=function(a,b){return this.add(a,b,!0)};u.update=function(a,b){return this.remove(a).add(a,b)};
u.remove=function(a){E(a)&&(a=V(a,this.key));if(this.register[a]){for(var b=this.s&&!this.o,c=0;c<this.h.length&&(this.index[this.h[c]].remove(a,b),!b);c++);if(this.C&&!b)for(var d in this.l)b=this.l[d],c=b.indexOf(a),-1!==c&&(1<b.length?b.splice(c,1):delete this.l[d]);this.store&&delete this.store[a];delete this.register[a]}return this};
u.search=function(a,b,c,d){E(a)?(c=a,a=c.query):E(b)&&(c=b,b=0);var f=[],h=[],e,g=0;if(c)if(c.constructor===Array){var k=c;c=null}else{k=(e=c.pluck)||c.index||c.field||c;var l=c.tag;var m=this.store&&c.enrich;var q="and"===c.bool;b=c.limit||100;var n=c.offset||0;if(l&&(D(l)&&(l=[l]),!a)){h=0;for(e=void 0;h<l.length;h++)if(e=Da.call(this,l[h],b,n,m))f[f.length]=e,g++;return g?f:[]}D(k)?k=[k]:k.constructor===Array||(k=null)}k||(k=this.h);q=q&&(1<k.length||l&&1<l.length);for(var p=!d&&(this.o||this.async)&&
[],r=0,t=void 0,z=void 0,y=void 0;r<k.length;r++)if(y=void 0,z=k[r],D(z)||(y=z,z=z.field),p)p[r]=this.index[z].searchAsync(a,b,y||c);else{d?t=d[r]:t=this.index[z].search(a,b,y||c);y=t&&t.length;if(l&&y){var C=[],G=0;q&&(C[0]=[t]);var H=0,F=void 0;for(F=void 0;H<l.length;H++)if(F=l[H],y=(F=this.l[F])&&F.length)G++,C[C.length]=q?[F]:F;G&&(t=q?sa(C,b||100,n||0):ta(t,C),y=t.length)}if(y)h[g]=z,f[g++]=t;else if(q)return[]}if(p){var Ka=this;return new Promise(function(La){Promise.all(p).then(function(Ma){La(Ka.search(a,
b,c,Ma))})})}if(!g)return[];if(e&&(!m||!this.store))return f[0];l=0;for(n=void 0;l<h.length;l++){n=f[l];n.length&&m&&(n=Ea.call(this,n));if(e)return n;f[l]={field:h[l],result:n}}return f};function Da(a,b,c,d){var f=this.l[a],h=f&&f.length-c;if(h&&0<h){if(h>b||c)f=f.slice(c,c+b);d&&(f=Ea.call(this,f));return{tag:a,result:f}}}function Ea(a){for(var b=Array(a.length),c=0,d;c<a.length;c++)d=a[c],b[c]={key:d,doc:this.store[d]};return b}u.contain=function(a){return!!this.register[a]};u.get=function(a){return this.store[a]};
u.set=function(a,b){this.store[a]=b;return this};u.searchCache=ua;u.export=function(a,b,c,d,f){f||(f=0);d||(d=0);if(d<this.h.length){var h=this.h[d],e=this.index[h];b=this;setTimeout(function(){e.export(a,b,f?h.replace(":","-"):"",d,f++)||(d++,f=1,b.export(a,b,h,d,f))})}else{switch(f){case 1:c="tag";var g=this.l;break;case 2:c="store";g=this.store;break;default:return}wa(a,this,c,d,f,g)}};
u.import=function(a,b){if(b)switch(D(b)&&(b=JSON.parse(b)),a){case "tag":this.l=b;break;case "reg":this.s=!1;this.register=b;a=0;for(var c;a<this.h.length;a++)c=this.index[this.h[a]],c.register=b,c.s=!1;break;case "store":this.store=b;break;default:a=a.split("."),c=a[0],a=a[1],c&&a&&this.index[c].import(a,b)}};ra(T.prototype);var Fa=/[\W_]+/,Ga=[J("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",J("[\u00e8\u00e9\u00ea\u00eb]"),"e",J("[\u00ec\u00ed\u00ee\u00ef]"),"i",J("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",J("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",J("[\u00fd\u0177\u00ff]"),"y",J("\u00f1"),"n",J("[\u00e7c]"),"k",J("\u00df"),"s",J(" & ")," and "];function Ha(a){return pa(this,ka(a).toLowerCase(),!a.normalize&&Ga,Fa)};var Ja={encode:Ia,F:!1,J:"strict"},Na=/[^a-z0-9]+/,Oa={b:"p",v:"f",w:"f",z:"s",x:"s","\u00df":"s",d:"t",n:"m",c:"k",g:"k",j:"k",q:"k",i:"e",y:"e",u:"o"};function Ia(a){a=Ha.call(this,a).join(" ");var b=[];if(a)for(var c=a.split(Na),d=c.length,f=0,h,e=0;f<d;f++)if((a=c[f])&&(!this.filter||!this.filter[a])){h=a[0];for(var g=Oa[h]||h,k=g,l=1;l<a.length;l++)h=a[l],(h=Oa[h]||h)&&h!==k&&(g+=h,k=h);b[e++]=g}return b};var Qa={encode:Pa,F:!1,J:""},Ra=[J("ae"),"a",J("oe"),"o",J("sh"),"s",J("th"),"t",J("ph"),"f",J("pf"),"f"];function Pa(a,b){a&&(a=Ia.call(this,a).join(" "),2<a.length&&(a=K(a,Ra)),b||(1<a.length&&(a=ma(a)),a&&(a=a.split(" "))));return a};var Ta={encode:Sa,F:!1,J:""},Ua=J("(?!\\b)[aeiouy]");function Sa(a){a&&(a=Pa.call(this,a,!0),1<a.length&&(a=a.replace(Ua,"")),1<a.length&&(a=ma(a)),a&&(a=a.split(" ")));return a};L["latin:simple"]={encode:Ha,F:!1,J:""};L["latin:balance"]=Ja;L["latin:advanced"]=Qa;L["latin:extra"]=Ta;var Y=self,Z,Va={Index:O,Document:T,Worker:R,registerCharset:function(a,b){L[a]=b},registerLanguage:function(a,b){qa[a]=b}};(Z=Y.define)&&Z.amd?Z([],function(){return Va}):Y.exports?Y.exports=Va:Y.FlexSearch=Va;}(this));
u.search=function(a,b,c,d){E(a)?(c=a,a=c.query):E(b)&&(c=b,b=0);var f=[],g=[],e,h=0;if(c)if(c.constructor===Array){var k=c;c=null}else{k=(e=c.pluck)||c.index||c.field||c;var l=c.tag;var m=this.store&&c.enrich;var p="and"===c.bool;b=c.limit||100;var n=c.offset||0;if(l&&(D(l)&&(l=[l]),!a)){g=0;for(e=void 0;g<l.length;g++)if(e=Ea.call(this,l[g],b,n,m))f[f.length]=e,h++;return h?f:[]}D(k)?k=[k]:k.constructor===Array||(k=null)}k||(k=this.h);p=p&&(1<k.length||l&&1<l.length);for(var q=!d&&(this.o||this.async)&&
[],r=0,t=void 0,z=void 0,y=void 0;r<k.length;r++)if(y=void 0,z=k[r],D(z)||(y=z,z=z.field),q)q[r]=this.index[z].searchAsync(a,b,y||c);else{d?t=d[r]:t=this.index[z].search(a,b,y||c);y=t&&t.length;if(l&&y){var C=[],G=0;p&&(C[0]=[t]);var H=0,F=void 0;for(F=void 0;H<l.length;H++)if(F=l[H],y=(F=this.l[F])&&F.length)G++,C[C.length]=p?[F]:F;G&&(t=p?ta(C,b||100,n||0):ua(t,C),y=t.length)}if(y)g[h]=z,f[h++]=t;else if(p)return[]}if(q){var La=this;return new Promise(function(Ma){Promise.all(q).then(function(Na){Ma(La.search(a,
b,c,Na))})})}if(!h)return[];if(e&&(!m||!this.store))return f[0];l=0;for(n=void 0;l<g.length;l++){n=f[l];n.length&&m&&(n=Fa.call(this,n));if(e)return n;f[l]={field:g[l],result:n}}return f};function Ea(a,b,c,d){var f=this.l[a],g=f&&f.length-c;if(g&&0<g){if(g>b||c)f=f.slice(c,c+b);d&&(f=Fa.call(this,f));return{tag:a,result:f}}}function Fa(a){for(var b=Array(a.length),c=0,d;c<a.length;c++)d=a[c],b[c]={key:d,doc:this.store[d]};return b}u.contain=function(a){return!!this.register[a]};u.get=function(a){return this.store[a]};
u.set=function(a,b){this.store[a]=b;return this};u.searchCache=va;u.export=function(a,b,c,d,f){f||(f=0);d||(d=0);if(d<this.h.length){var g=this.h[d],e=this.index[g];b=this;setTimeout(function(){e.export(a,b,f?g.replace(":","-"):"",d,f++)||(d++,f=1,b.export(a,b,g,d,f))})}else{switch(f){case 1:c="tag";var h=this.l;break;case 2:c="store";h=this.store;break;default:return}xa(a,this,c,d,f,h)}};
u.import=function(a,b){if(b)switch(D(b)&&(b=JSON.parse(b)),a){case "tag":this.l=b;break;case "reg":this.s=!1;this.register=b;a=0;for(var c;a<this.h.length;a++)c=this.index[this.h[a]],c.register=b,c.s=!1;break;case "store":this.store=b;break;default:a=a.split("."),c=a[0],a=a[1],c&&a&&this.index[c].import(a,b)}};sa(T.prototype);var Ha={encode:Ga,F:!1,G:""},Ia=/[\W_]+/,Ja=[J("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",J("[\u00e8\u00e9\u00ea\u00eb]"),"e",J("[\u00ec\u00ed\u00ee\u00ef]"),"i",J("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",J("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",J("[\u00fd\u0177\u00ff]"),"y",J("\u00f1"),"n",J("[\u00e7c]"),"k",J("\u00df"),"s",J(" & ")," and "];function Ga(a){return qa(this,ka(a).toLowerCase(),!a.normalize&&Ja,Ia)};var Oa={encode:Ka,F:!1,G:"strict"},Pa=/[^a-z0-9]+/,Qa={b:"p",v:"f",w:"f",z:"s",x:"s","\u00df":"s",d:"t",n:"m",c:"k",g:"k",j:"k",q:"k",i:"e",y:"e",u:"o"};function Ka(a){a=Ga.call(this,a).join(" ");var b=[];if(a)for(var c=a.split(Pa),d=c.length,f=0,g,e=0;f<d;f++)if((a=c[f])&&(!this.filter||!this.filter[a])){g=a[0];for(var h=Qa[g]||g,k=h,l=1;l<a.length;l++)g=a[l],(g=Qa[g]||g)&&g!==k&&(h+=g,k=g);b[e++]=h}return b};var Sa={encode:Ra,F:!1,G:""},Ta=[J("ae"),"a",J("oe"),"o",J("sh"),"s",J("th"),"t",J("ph"),"f",J("pf"),"f"];function Ra(a,b){a&&(a=Ka.call(this,a).join(" "),2<a.length&&(a=K(a,Ta)),b||(1<a.length&&(a=ma(a)),a&&(a=a.split(" "))));return a};var Va={encode:Ua,F:!1,G:""},Wa=J("(?!\\b)[aeiouy]");function Ua(a){a&&(a=Ra.call(this,a,!0),1<a.length&&(a=a.replace(Wa,"")),1<a.length&&(a=ma(a)),a&&(a=a.split(" ")));return a};L["latin:default"]=oa;L["latin:simple"]=Ha;L["latin:balance"]=Oa;L["latin:advanced"]=Sa;L["latin:extra"]=Va;var Y=self,Z,Xa={Index:O,Document:T,Worker:R,registerCharset:function(a,b){L[a]=b},registerLanguage:function(a,b){ra[a]=b}};(Z=Y.define)&&Z.amd?Z([],function(){return Xa}):Y.exports?Y.exports=Xa:Y.FlexSearch=Xa;}(this));

View File

@@ -5,15 +5,14 @@
* Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch
*/
(function(self){'use strict';function u(a){return"undefined"!==typeof a?a:!0}function w(a){const c=Array(a);for(let b=0;b<a;b++)c[b]=z();return c}function z(){return Object.create(null)}function A(a,c){return c.length-a.length};const B=/[\u0300-\u036f]/g;function C(a,c){const b=Object.keys(a),d=b.length,f=[];let h="",g=0;for(let e=0,l,m;e<d;e++)l=b[e],(m=a[l])?(f[g++]=new RegExp(c?"(?!\\b)"+l+"(\\b|_)":l,"g"),f[g++]=m):h+=(h?"|":"")+l;h&&(f[g++]=new RegExp(c?"(?!\\b)("+h+")(\\b|_)":"("+h+")","g"),f[g]="");return f}function D(a,c){for(let b=0,d=c.length;b<d&&(a=a.replace(c[b],c[b+1]),a);b+=2);return a};const F=/[\W_]+/;function G(a){a.normalize&&(a=a.normalize("NFD").replace(B,""));if(a=a.toLowerCase())if(this.o&&(a=D(a,this.o)),this.A&&1<a.length&&(a=D(a,this.A)),F||""===F)if(a=a.split(F),this.filter){var c=this.filter;const b=a.length,d=[];for(let f=0,h=0;f<b;f++){const g=a[f];g&&!c[g]&&(d[h++]=g)}a=d}return a};const H={},I={};function J(a,c,b,d){const f=a.length;let h=[],g;let e,l;for(var m=0;m<f;m++){var n=a[m],q=n.length,r=0;for(let k=0,t;k<q;k++)(t=n[k])&&(r+=t.length);if(!p||r<p){var p=r;e=n;l=m}}e=1===e.length?e[0]:[].concat.apply([],e);d&&(d=[e],g=z());m=p=0;for(n=f-1;0<=n;n--)if(n!==l){m++;q=a[n];r=q.length;const k=[];let t=0;for(let y=0,v;y<e.length;y++){v=e[y];let x;for(let E=0;E<r;E++){const N=q[E];if(N.length&&(x=-1!==N.indexOf(v))){if(m===f-1){if(b)b--;else if(h[p++]=v,p===c)return h;d&&(g[v]=1)}break}}x&&
(k[t++]=v)}if(d)d[m]=k;else if(!t)return[];e=k}if(d)for(let k=d.length-1,t,y;0<=k;k--)if(y=(t=d[k])&&t.length)for(let v=0,x;v<y;v++)if(x=t[v],!g[x])if(g[x]=1,b)b--;else if(h[p++]=x,p===c)return h;return h};I["latin:default"]=G;
function K(a,c){if(!(this instanceof K))return new K(a);let b;if(a){var d=a.charset;b=a.lang;"string"===typeof d&&(-1===d.indexOf(":")&&(d+=":default"),d=I[d]);"string"===typeof b&&(b=H[b])}else a={};let f,h,g=a.context||{};this.encode=a.encode||d&&d.encode||G;this.register=c||z();this.v=f=a.resolution||9;this.C=c=d&&d.D||a.tokenize||"strict";this.j="strict"===c&&g.depth;this.l=u(g.bidirectional);this.g=h="memory"===a.optimize;this.s=u(a.fastupdate);this.h=a.minlength||1;this.i=h?w(f):z();this.B=
f=g.resolution||1;this.m=h?w(f):z();this.u=d&&d.u||a.rtl;this.o=(c=a.matcher||b&&b.o)&&C(c,!1);this.A=(c=a.stemmer||b&&b.A)&&C(c,!0);if(a=c=a.filter||b&&b.filter){a=c;d=z();for(let e=0,l=a.length;e<l;e++)d[a[e]]=1;a=d}this.filter=a}K.prototype.append=function(a,c){return this.add(a,c,!0)};
K.prototype.add=function(a,c,b,d){if(!d&&!b&&this.register[a])return this.update(a,c);if(c&&(a||0===a)&&(c=this.encode(c),d=c.length)){const m=this.j,n=this.v,q=z(),r=z();for(let p=0;p<d;p++){let k=c[this.u?d-1-p:p];var f=k.length;if(k&&f>=this.h&&(m||!q[k])){var h=Math.min(n/d*p|0,p),g="";switch(this.C){case "full":if(3<f){for(var e=0;e<f;e++){var l=e?Math.min(h/2+n/f*e/2|0,h+e):h;for(let t=f;t>e;t--)g=k.substring(e,t),g.length>=this.h&&L(this,q,g,l,a,b)}break}case "reverse":if(2<f){for(e=f-1;0<
e;e--)g=k[e]+g,g.length>=this.h&&L(this,q,g,h,a,b);g=""}case "forward":if(1<f)for(e=0;e<f;e++)g+=k[e],g.length>=this.h&&L(this,q,g,h,a,b);break;default:if(L(this,q,k,h,a,b),m&&1<d&&p<d-1)for(f=z(),h=k,g=Math.min(m+1,d-p),f[h]=1,e=1;e<g;e++)(k=c[this.u?d-1-p-e:p+e])&&k.length>=this.h&&!f[k]?(f[k]=1,l=this.l&&k>h,L(this,r,l?h:k,0,a,b,l?k:h)):g=Math.min(g+1,d-p)}}}this.s||(this.register[a]=1)}return this};
function L(a,c,b,d,f,h,g){let e=g?a.m:a.i;if(!c[b]||g&&!c[b][g])a.g&&(e=e[d]),g?(c=c[b]||(c[b]=z()),c[g]=1,e=e[g]||(e[g]=z())):c[b]=1,e=e[b]||(e[b]=[]),a.g||(e=e[d]||(e[d]=[])),h&&-1!==e.indexOf(f)||(e[e.length]=f,a.s&&(a=a.register[f]||(a.register[f]=[]),a[a.length]=e))}
K.prototype.search=function(a,c,b){"object"===typeof a?(b=a,a=b.query):"object"===typeof c&&(b=c);let d=[],f;let h,g=0;if(b){c=b.limit;g=b.offset||0;var e=b.context;h=!1}if(a&&(a=this.encode(a),f=a.length,1<f)){b=z();var l=[];for(let n=0,q=0,r;n<f;n++)if((r=a[n])&&r.length>=this.h&&!b[r])if(this.g||h||this.i[r])l[q++]=r,b[r]=1;else return d;a=l;f=a.length}if(!f)return d;c||(c=100);e=this.j&&1<f&&!1!==e;b=0;let m;e?(m=a[0],b=1):1<f&&a.sort(A);for(let n,q;b<f;b++){q=a[b];e?(n=M(this,d,h,c,g,2===f,q,
m),h&&!1===n&&d.length||(m=q)):n=M(this,d,h,c,g,1===f,q);if(n)return n;if(h&&b===f-1){l=d.length;if(!l){if(e){e=0;b=-1;continue}return d}if(1===l)return O(d[0],c,g)}}return J(d,c,g,h)};
function M(a,c,b,d,f,h,g,e){let l=[],m=e?a.m:a.i;a.g||(m=P(m,g,e,a.l));if(m){let n=0;const q=Math.min(m.length,e?a.B:a.v);for(let r=0,p=0,k,t;r<q;r++)if(k=m[r])if(a.g&&(k=P(k,g,e,a.l)),f&&k&&h&&(t=k.length,t<=f?(f-=t,k=null):(k=k.slice(f),f=0)),k&&(l[n++]=k,h&&(p+=k.length,p>=d)))break;if(n){if(h)return O(l,d,0);c[c.length]=l;return}}return!b&&l}function O(a,c,b){a=1===a.length?a[0]:[].concat.apply([],a);return b||a.length>c?a.slice(b,b+c):a}
function P(a,c,b,d){b?(d=d&&c>b,a=(a=a[d?c:b])&&a[d?b:c]):a=a[c];return a}K.prototype.contain=function(a){return!!this.register[a]};K.prototype.update=function(a,c){return this.remove(a).add(a,c)};K.prototype.remove=function(a,c){const b=this.register[a];if(b){if(this.s)for(let d=0,f;d<b.length;d++)f=b[d],f.splice(f.indexOf(a),1);else Q(this.i,a,this.v,this.g),this.j&&Q(this.m,a,this.B,this.g);c||delete this.register[a]}return this};
function Q(a,c,b,d,f){let h=0;if(a.constructor===Array)if(f)c=a.indexOf(c),-1!==c?1<a.length&&(a.splice(c,1),h++):h++;else{f=Math.min(a.length,b);for(let g=0,e;g<f;g++)if(e=a[g])h=Q(e,c,b,d,f),d||h||delete a[g]}else for(let g in a)(h=Q(a[g],c,b,d,f))||delete a[g];return h};const R=self;let S;const T={Index:K,Document:null,Worker:null,registerCharset:function(a,c){I[a]=c},registerLanguage:function(a,c){H[a]=c}};(S=R.define)&&S.amd?S([],function(){return T}):R.exports?R.exports=T:R.FlexSearch=T;}(this));
(function(self){'use strict';function u(a){return"undefined"!==typeof a?a:!0}function w(a){const c=Array(a);for(let b=0;b<a;b++)c[b]=z();return c}function z(){return Object.create(null)}function A(a,c){return c.length-a.length};const B=/[\u0300-\u036f]/g;function C(a,c){const b=Object.keys(a),d=b.length,e=[];let h="",g=0;for(let f=0,l,p;f<d;f++)l=b[f],(p=a[l])?(e[g++]=new RegExp(c?"(?!\\b)"+l+"(\\b|_)":l,"g"),e[g++]=p):h+=(h?"|":"")+l;h&&(e[g++]=new RegExp(c?"(?!\\b)("+h+")(\\b|_)":"("+h+")","g"),e[g]="");return e}function D(a,c){for(let b=0,d=c.length;b<d&&(a=a.replace(c[b],c[b+1]),a);b+=2);return a};const F=/[\W_]+/;function G(a){a.normalize&&(a=a.normalize("NFD").replace(B,""));if(a=a.toLowerCase())if(this.o&&(a=D(a,this.o)),this.A&&1<a.length&&(a=D(a,this.A)),F||""===F)if(a=a.split(F),this.filter){var c=this.filter;const b=a.length,d=[];for(let e=0,h=0;e<b;e++){const g=a[e];g&&!c[g]&&(d[h++]=g)}a=d}return a};const H={},I={};function J(a,c,b,d){const e=a.length;let h=[],g;let f,l;for(var p=0;p<e;p++){var m=a[p],q=m.length,r=0;for(let k=0,t;k<q;k++)(t=m[k])&&(r+=t.length);if(!n||r<n){var n=r;f=m;l=p}}f=1===f.length?f[0]:[].concat.apply([],f);d&&(d=[f],g=z());p=n=0;for(m=e-1;0<=m;m--)if(m!==l){p++;q=a[m];r=q.length;const k=[];let t=0;for(let y=0,v;y<f.length;y++){v=f[y];let x;for(let E=0;E<r;E++){const M=q[E];if(M.length&&(x=-1!==M.indexOf(v))){if(p===e-1){if(b)b--;else if(h[n++]=v,n===c)return h;d&&(g[v]=1)}break}}x&&
(k[t++]=v)}if(d)d[p]=k;else if(!t)return[];f=k}if(d)for(let k=d.length-1,t,y;0<=k;k--)if(y=(t=d[k])&&t.length)for(let v=0,x;v<y;v++)if(x=t[v],!g[x])if(g[x]=1,b)b--;else if(h[n++]=x,n===c)return h;return h};function K(a,c){if(!(this instanceof K))return new K(a);let b;if(a){var d=a.charset;b=a.lang;"string"===typeof d&&(-1===d.indexOf(":")&&(d+=":default"),d=I[d]);"string"===typeof b&&(b=H[b])}else a={};let e,h,g=a.context||{};this.encode=a.encode||d&&d.encode||G;this.register=c||z();this.v=e=a.resolution||9;this.C=c=d&&d.C||a.tokenize||"strict";this.j="strict"===c&&g.depth;this.l=u(g.bidirectional);this.g=h=u(a.optimize);this.s=u(a.fastupdate);this.h=a.minlength||1;this.i=h?w(e):z();this.B=e=g.resolution||
1;this.m=h?w(e):z();this.u=d&&d.u||a.rtl;this.o=(c=a.matcher||b&&b.o)&&C(c,!1);this.A=(c=a.stemmer||b&&b.A)&&C(c,!0);if(a=c=a.filter||b&&b.filter){a=c;d=z();for(let f=0,l=a.length;f<l;f++)d[a[f]]=1;a=d}this.filter=a}K.prototype.append=function(a,c){return this.add(a,c,!0)};
K.prototype.add=function(a,c,b,d){if(!d&&!b&&this.register[a])return this.update(a,c);if(c&&(a||0===a)&&(c=this.encode(c),d=c.length)){const p=this.j,m=this.v,q=z(),r=z();for(let n=0;n<d;n++){let k=c[this.u?d-1-n:n];var e=k.length;if(k&&e>=this.h&&(p||!q[k])){var h=d<m?n:m/d*n|0,g="";switch(this.C){case "full":if(3<e){for(h=0;h<e;h++)for(var f=e;f>h;f--)if(f-h>=this.h){var l=d+e<m?n+h:m/(d+e)*(n+h)|0;g=k.substring(h,f);L(this,q,g,l,a,b)}break}case "reverse":if(2<e){for(f=e-1;0<f;f--)g=k[f]+g,g.length>=
this.h&&L(this,q,g,d+e<m?n+f:m/(d+e)*(n+f)|0,a,b);g=""}case "forward":if(1<e)for(f=0;f<e;f++)g+=k[f],g.length>=this.h&&L(this,q,g,h,a,b);break;default:if(L(this,q,k,h,a,b),p&&1<d&&n<d-1)for(e=this.B,g=z(),h=k,f=Math.min(p+1,d-n),g[h]=1,l=1;l<f;l++)if((k=c[this.u?d-1-n-l:n+l])&&k.length>=this.h&&!g[k]){g[k]=1;const t=this.l&&k>h;L(this,r,t?h:k,f+d<e?n+(l-1):e/(f+d)*(n+l)|0,a,b,t?k:h)}}}}this.s||(this.register[a]=1)}return this};
function L(a,c,b,d,e,h,g){let f=g?a.m:a.i;if(!c[b]||g&&!c[b][g])a.g&&(f=f[d]),g?(c=c[b]||(c[b]=z()),c[g]=1,f=f[g]||(f[g]=z())):c[b]=1,f=f[b]||(f[b]=[]),a.g||(f=f[d]||(f[d]=[])),h&&-1!==f.indexOf(e)||(f[f.length]=e,a.s&&(a=a.register[e]||(a.register[e]=[]),a[a.length]=f))}
K.prototype.search=function(a,c,b){"object"===typeof a?(b=a,a=b.query):"object"===typeof c&&(b=c);let d=[],e;let h,g=0;if(b){c=b.limit;g=b.offset||0;var f=b.context;h=!1}if(a&&(a=this.encode(a),e=a.length,1<e)){b=z();var l=[];for(let m=0,q=0,r;m<e;m++)if((r=a[m])&&r.length>=this.h&&!b[r])if(this.g||h||this.i[r])l[q++]=r,b[r]=1;else return d;a=l;e=a.length}if(!e)return d;c||(c=100);f=this.j&&1<e&&!1!==f;b=0;let p;f?(p=a[0],b=1):1<e&&a.sort(A);for(let m,q;b<e;b++){q=a[b];f?(m=N(this,d,h,c,g,2===e,q,
p),h&&!1===m&&d.length||(p=q)):m=N(this,d,h,c,g,1===e,q);if(m)return m;if(h&&b===e-1){l=d.length;if(!l){if(f){f=0;b=-1;continue}return d}if(1===l)return O(d[0],c,g)}}return J(d,c,g,h)};
function N(a,c,b,d,e,h,g,f){let l=[],p=f?a.m:a.i;a.g||(p=P(p,g,f,a.l));if(p){let m=0;const q=Math.min(p.length,f?a.B:a.v);for(let r=0,n=0,k,t;r<q;r++)if(k=p[r])if(a.g&&(k=P(k,g,f,a.l)),e&&k&&h&&(t=k.length,t<=e?(e-=t,k=null):(k=k.slice(e),e=0)),k&&(l[m++]=k,h&&(n+=k.length,n>=d)))break;if(m){if(h)return O(l,d,0);c[c.length]=l;return}}return!b&&l}function O(a,c,b){a=1===a.length?a[0]:[].concat.apply([],a);return b||a.length>c?a.slice(b,b+c):a}
function P(a,c,b,d){b?(d=d&&c>b,a=(a=a[d?c:b])&&a[d?b:c]):a=a[c];return a}K.prototype.contain=function(a){return!!this.register[a]};K.prototype.update=function(a,c){return this.remove(a).add(a,c)};K.prototype.remove=function(a,c){const b=this.register[a];if(b){if(this.s)for(let d=0,e;d<b.length;d++)e=b[d],e.splice(e.indexOf(a),1);else Q(this.i,a,this.v,this.g),this.j&&Q(this.m,a,this.B,this.g);c||delete this.register[a]}return this};
function Q(a,c,b,d,e){let h=0;if(a.constructor===Array)if(e)c=a.indexOf(c),-1!==c?1<a.length&&(a.splice(c,1),h++):h++;else{e=Math.min(a.length,b);for(let g=0,f;g<e;g++)if(f=a[g])h=Q(f,c,b,d,e),d||h||delete a[g]}else for(let g in a)(h=Q(a[g],c,b,d,e))||delete a[g];return h};const R=self;let S;const T={Index:K,Document:null,Worker:null,registerCharset:function(a,c){I[a]=c},registerLanguage:function(a,c){H[a]=c}};(S=R.define)&&S.amd?S([],function(){return T}):R.exports?R.exports=T:R.FlexSearch=T;}(this));

View File

@@ -165,7 +165,7 @@ var index = new Index({
tokenize: "strict",
resolution: 9,
minlength: 3,
optimize: "memory",
optimize: true,
fastupdate: true,
cache: 100,
context: {
@@ -183,7 +183,7 @@ A full configuration example for a document based index:
```js
const index = new Document({
tokenize: "forward",
optimize: "memory",
optimize: true,
resolution: 9,
cache: 100,
worker: true,
@@ -196,12 +196,12 @@ const index = new Document({
index: [{
field: "title",
tokenize: "forward",
optimize: "memory",
optimize: true,
resolution: 9
},{
field: "content",
tokenize: "strict",
optimize: "memory",
optimize: true,
resolution: 9,
minlength: 3,
context: {
@@ -443,12 +443,12 @@ const index = new Document({
index: [{
field: "title",
tokenize: "forward",
optimize: "memory",
optimize: true,
resolution: 9
},{
field: "content",
tokenize: "strict",
optimize: "memory",
optimize: true,
resolution: 9,
minlength: 3,
context: {
@@ -464,7 +464,7 @@ Field options gets inherited when also global options was passed, e.g.:
```js
const index = new Document({
tokenize: "strict",
optimize: "memory",
optimize: true,
resolution: 9,
document: {
key: "id",
@@ -1522,7 +1522,7 @@ import { encode } from "./lang/latin/extra.js";
index = new Index({
encode: encode,
tokenize: "strict",
optimize: "memory",
optimize: true,
resolution: 1,
minlength: 3,
fastupdate: false,
@@ -1616,7 +1616,7 @@ FlexSearch provides you many parameters you can use to adjust the optimal balanc
</tr>
<tr></tr>
<tr>
<td>optimize: "memory"</td>
<td>optimize: true</td>
<td>-7</td>
<td>-1</td>
<td>0</td>

View File

@@ -27,7 +27,7 @@ import Cache, { searchCache } from "./cache.js";
import apply_preset from "./preset.js";
import { exportIndex, importIndex } from "./serialize.js";
registerCharset("latin:default", default_encoder);
//registerCharset("latin:default", default_encoder);
/**
* @constructor
@@ -82,10 +82,10 @@ function Index(options, _register){
this.encode = options["encode"] || (charset && charset.encode) || default_encoder;
this.register = _register || create_object();
this.resolution = resolution = options["resolution"] || 9;
this.tokenizer = tmp = (charset && charset.tokenize) || options["tokenize"] || "strict";
this.tokenize = tmp = (charset && charset.tokenize) || options["tokenize"] || "strict";
this.depth = (tmp === "strict") && context["depth"];
this.bidirectional = parse_option(context["bidirectional"], true);
this.optimize = optimize = options["optimize"] === "memory";
this.optimize = optimize = parse_option(options["optimize"], true);
this.fastupdate = parse_option(options["fastupdate"], true);
this.minlength = options["minlength"] || 1;
@@ -146,6 +146,8 @@ Index.prototype.add = function(id, content, _append, _skip_update){
// check context dupes to skip all contextual redundancy in the whole document
const dupes_ctx = create_object();
// TODO: stretch the partial score to its full resolution
for(let i = 0; i < length; i++){
let term = content[this.rtl ? length - 1 - i : i];
@@ -154,125 +156,142 @@ Index.prototype.add = function(id, content, _append, _skip_update){
// skip dupes will break the context chain
if(term && (term_length >= this.minlength) && (depth || !dupes[term])){
const score = Math.min((resolution / length * i) | 0, i);
const score = length < resolution ? i : (resolution / length * i) | 0;
let token = "";
//if(score < resolution){
switch(this.tokenize){
let token = "";
case "full":
switch(this.tokenizer){
if(term_length > 3){
case "full":
for(let x = 0; x < term_length; x++){
if(term_length > 3){
for(let y = term_length; y > x; y--){
for(let x = 0; x < term_length; x++){
if((y - x) >= this.minlength){
const partial_score = x ? Math.min((score / 2 + resolution / term_length * x / 2) | 0, score + x) : score;
const partial_score = (length + term_length) < resolution ? i + x : (resolution / (length + term_length) * (i + x)) | 0;
//if(partial_score < resolution){
// console.log("resolution", resolution);
// console.log("length", length);
// console.log("term_length", term_length);
// console.log("i", i);
// console.log((length + term_length) < resolution ? i + x : resolution / (length + term_length) * (i + x));
for(let y = term_length; y > x; y--){
token = term.substring(x, y);
if(token.length >= this.minlength){
this.push_index(dupes, token, partial_score, id, _append);
}
}
//}
}
break;
}
// fallthrough to next case when term length < 4
case "reverse":
// skip last round (this token exist already in "forward")
if(term_length > 2){
for(let a = term_length - 1; a > 0; a--){
token = term[a] + token;
if(token.length >= this.minlength){
this.push_index(dupes, token, score, id, _append);
}
}
token = "";
}
// fallthrough to next case to apply forward also
case "forward":
if(term_length > 1){
for(let a = 0; a < term_length; a++){
token += term[a];
if(token.length >= this.minlength){
this.push_index(dupes, token, score, id, _append);
token = term.substring(x, y);
this.push_index(dupes, token, partial_score, id, _append);
}
}
}
break;
}
//case "strict":
default:
// fallthrough to next case when term length < 4
this.push_index(dupes, term, score, id, _append);
case "reverse":
if(depth){
// skip last round (this token exist already in "forward")
if((length > 1) && (i < (length - 1))){
if(term_length > 2){
const resolution = this.resolution_ctx;
// check inner dupes to skip repeating words in the current context
const dupes_inner = create_object();
const keyword = term;
let size = Math.min(depth + 1, length - i);
for(let x = term_length - 1; x > 0; x--){
dupes_inner[keyword] = 1;
token = term[x] + token;
for(let x = 1; x < size; x++){
if(token.length >= this.minlength){
term = content[this.rtl ? length - 1 - i - x : i + x];
const partial_score = (length + term_length) < resolution ? i + x : (resolution / (length + term_length) * (i + x)) | 0;
if(term && (term.length >= this.minlength) && !dupes_inner[term]){
// console.log("token", token);
// console.log("resolution", resolution);
// console.log("length", length);
// console.log("term_length", term_length);
// console.log("i", i);
// console.log((length + term_length) < resolution ? i + x : (resolution / (length + term_length) * (i + x)));
dupes_inner[term] = 1;
this.push_index(dupes, token, partial_score, id, _append);
}
}
const context_score = 0;
token = "";
}
// const context_score = Math.min(((resolution - size /*+ 1*/) / length * i + x) | 0, i + (x - 1));
//
// // TODO: this check is not required when calculated properly
// if((context_score >= 0) && (context_score < resolution)){
// fallthrough to next case to apply forward also
const swap = this.bidirectional && (term > keyword);
case "forward":
this.push_index(dupes_ctx, swap ? keyword : term, context_score, id, _append, swap ? term : keyword);
//}
}
else{
if(term_length > 1){
size = Math.min(size + 1, length - i);
}
for(let x = 0; x < term_length; x++){
token += term[x];
if(token.length >= this.minlength){
// console.log("token", token);
// console.log("resolution", resolution);
// console.log("length", length);
// console.log("term_length", term_length);
// console.log("i", i);
// console.log(score);
this.push_index(dupes, token, score, id, _append);
}
}
}
break;
//case "strict":
default:
// console.log("term", term);
// console.log("resolution", resolution);
// console.log("length", length);
// console.log("i", i);
// console.log(score);
this.push_index(dupes, term, score, id, _append);
if(depth){
if((length > 1) && (i < (length - 1))){
const resolution = this.resolution_ctx;
// check inner dupes to skip repeating words in the current context
const dupes_inner = create_object();
const keyword = term;
const size = Math.min(depth + 1, length - i);
dupes_inner[keyword] = 1;
for(let x = 1; x < size; x++){
term = content[this.rtl ? length - 1 - i - x : i + x];
if(term && (term.length >= this.minlength) && !dupes_inner[term]){
dupes_inner[term] = 1;
const context_score = (size + length) < resolution ? i + (x - 1) : ((resolution / (size + length) * (i + x)) | 0);
// console.log("term", term);
// console.log("resolution", resolution);
// console.log("size", size);
// console.log("length", length);
// console.log("i", i);
// console.log("x", x);
// console.log(resolution / (size + length) * (i + x));
const swap = this.bidirectional && (term > keyword);
this.push_index(dupes_ctx, swap ? keyword : term, context_score, id, _append, swap ? term : keyword);
}
}
}
}
//}
}
}
}
}

View File

@@ -3,6 +3,7 @@ import Document from "./document.js";
import Index from "./index.js";
import WorkerIndex from "./worker/index.js";
import { registerCharset, registerLanguage } from "./global.js";
import charset_default from "./lang/latin/default.js"
import charset_simple from "./lang/latin/simple.js"
import charset_balance from "./lang/latin/balance.js"
import charset_advanced from "./lang/latin/advanced.js"
@@ -55,6 +56,7 @@ if(SUPPORT_SERIALIZE){
if(SUPPORT_ENCODER){
registerCharset("latin:default", charset_default);
registerCharset("latin:simple", charset_simple);
registerCharset("latin:balance", charset_balance);
registerCharset("latin:advanced", charset_advanced);