1
0
mirror of https://github.com/nextapps-de/flexsearch.git synced 2025-09-03 19:02:57 +02:00

FIX tests

This commit is contained in:
Thomas Wilkerling
2019-11-25 00:26:36 +01:00
parent e3d3483d59
commit 2de3f31fe6
33 changed files with 1147 additions and 1142 deletions

View File

@@ -5,15 +5,14 @@
* Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch
*/
(function(){'use strict';var v;Object.assign||(Object.assign=function(){for(var a=arguments,b=a.length,c=a[0],e=1,d,h,g;e<b;e++){d=a[e];h=Object.keys(d);g=h.length;for(var f=0,p;f<g;f++)p=h[f],c[p]=d[p]}return c});function w(a){return"string"===typeof a}function y(a){for(var b=Array(a),c=0;c<a;c++)b[c]=z();return b}function z(){return Object.create(null)}function B(a,b){for(var c=0,e=b.length;c<e&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a};var C=/[\W_]+/;var G={encode:function(a){if(a=a.toLowerCase())if(a&&this.g&&(a=B(a,this.g)),this.h&&1<a.length&&(a=B(a,this.h)),a&&(C||""===C)&&(a=a.split(C),this.filter)){for(var b=this.filter,c=a.length,e=[],d=0,h=0;d<c;d++){var g=a[d];g&&!b[g]&&(e[h++]=g)}a=e}return a},tokenize:"strict",cache:!1,async:!1,worker:!1,rtl:!1,doc:!1,resolution:9,threshold:0,depth:0},H=0,I={},J={};
function K(a){if(!(this instanceof K))return new K(a);var b=a&&a.id;this.id=b||0===b?b:H++;this.init(a);L(this,"index",function(){return Object.keys(this.a)});L(this,"length",function(){return this.index.length})}K.registerCharset=function(a,b){J[a]=b;return K};K.registerLanguage=function(a,b){J[a]=b;return K};v=K.prototype;
v.init=function(a){var b;this.encode||(a?a=Object.assign({},G,a):a=G);if(a){var c=a.charset,e=a.lang;this.j=(w(c)?J[c].l:c&&c.l)||a.tokenize;this.i=w(b=a.rtl||c)?J[b].i:c&&c.i||b;this.threshold=a.threshold;this.f=(b=a.resolution)<=this.threshold?this.threshold+1:b;this.depth="strict"===this.j&&a.depth||0;this.encode=w(b=a.encode||c)?J[-1===b.indexOf(":")?b+":default":b].encode:c&&c.encode||b;this.g=(b=a.matcher||e)&&M(w(b)?I[b].g:e&&e.g||b,!1);if(c=b=a.filter||e){c=w(b)?I[b].filter:e&&e.filter||b;
for(var d=z(),h=0,g=c.length;h<g;h++)d[c[h]]=1;c=d}this.filter=c;this.h=(b=a.stemmer||e)&&M(w(b)?I[b].h:e&&e.h||b,!0)}this.c=y(this.f-(this.threshold||0));this.b=z();this.a={};return this};
v.add=function(a,b,c,e,d){if(b&&w(b)&&(a||0===a)){if(this.a[a]&&!e)return this.update(a,b);if(!d&&c)return this.add(a,b,null,e,!0),c(),this;b=this.encode(b);if(!b.length)return this;c=z();c._ctx=z();e=b.length;d=this.threshold;for(var h=this.depth,g=this.f,f=this.c,p=this.i,l=0;l<e;l++){var q=b[l];if(q){var m=q.length,n=(p?l+1:e-l)/e,r="";switch(this.j){case "reverse":case "both":for(var k=m;--k;)r=q[k]+r,N(f,c,r,a,p?1:(m-k)/m,n,d,g-1);r="";case "forward":for(k=0;k<m;k++)r+=q[k],N(f,c,r,a,p?(k+1)/
m:1,n,d,g-1);break;case "full":for(k=0;k<m;k++)for(var t=(p?k+1:m-k)/m,u=m;u>k;u--)r=q.substring(k,u),N(f,c,r,a,t,n,d,g-1);break;default:if(m=N(f,c,q,a,1,n,d,g-1),h&&1<e&&m>=d)for(m=c._ctx[q]||(c._ctx[q]=z()),q=this.b[q]||(this.b[q]=y(g-(d||0))),n=l-h,r=l+h+1,0>n&&(n=0),r>e&&(r=e);n<r;n++)n!==l&&N(q,m,b[n],a,0,g-(n<l?l-n:n-l),d,g-1)}}}this.a[a]=1}return this};v.update=function(a,b,c){this.a[a]&&w(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
v.remove=function(a,b,c){if(this.a[a]){if(!c&&b)return this.remove(a,null,!0),b(),this;for(b=0;b<this.f-(this.threshold||0);b++)O(this.c[b],a);this.depth&&O(this.b,a);delete this.a[a]}return this};
v.search=function(a,b,c,e){b&&"function"===typeof b?(c=b,b=1E3):b||0===b||(b=1E3);var d=[],h=a;if("object"===typeof a){var g=!1;b=a.limit;var f=a.threshold;var p=!1;a=a.query}f||(f=this.threshold||0);if(!e&&c)return c(this.search(h,b,null,!0)),this;if(!a||!w(a))return d;h=this.encode(a);if(!h.length)return d;c=h;e=c.length;h=!0;a=[];var l=z(),q,m=0;1<e&&(this.depth?q=!0:c.sort(R));var n;if(!q||(n=this.b))for(var r=this.f;m<e;m++){var k=c[m];if(k){if(q){if(!t)if(n[k]){var t=k;l[k]=1}else if(!p)return d;
if(p&&m===e-1&&!a.length)q=!1,k=t||k,l[k]=0;else if(!t)continue}if(!l[k]){var u=[],E=!1,P=0;if(t=q?n[t]:this.c)for(var Q,F=0;F<r-f;F++)if(Q=t[F]&&t[F][k])u[P++]=Q,E=!0;if(E)t=k,a[a.length]=1<P?u.concat.apply([],u):u[0];else{h=!1;break}l[k]=1}}}else h=!1;if(h)a:{d=[];!0===g?(g="0",f=""):f=g&&g.split(":");p=a.length;if(1<p){q=z();t=0;r=!0;h=0;var A;for(f&&(2===f.length?f=!1:f=A=parseInt(f[0],10));t<p;t++)if(l=t===p-1,n=a[t],e=n.length){if(r)if(x){m=x.length;for(c=0;c<m;c++)q["@"+x[c]]=1;var x=null;
r=!1}else{x=n;continue}k=!1;for(c=0;c<e;c++)if(m=n[c],u="@"+m,(E=q[u]||0)&&E===t){if(l){if(!A||--A<h)if(d[h++]=m,b&&h===b){d=S(g,h+(f||0),d);break a}}else q[u]=t+1;k=!0}if(!k)break}else{d=S(g,D,n);break a}x&&(d=x)}else p&&(d=a[0],f&&(f=parseInt(f[0],10)));if(b){x=d.length;f&&f>x&&(f=0);A=f||0;var D=A+b;D<x?d=d.slice(A,D):(D=0,A&&(d=d.slice(A)))}d=S(g,D,d)}return d};v.clear=function(){return this.destroy().init()};v.destroy=function(){this.c=this.b=this.a=null;return this};
function L(a,b,c){Object.defineProperty(a,b,{get:c})}function N(a,b,c,e,d,h,g,f){if(b[c])return b[c];d=d?(f-(g||f/1.5))*h+(g||f/1.5)*d:h;b[c]=d;d>=g&&(a=a[f-(d+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=e);return d}function O(a,b){if(a)for(var c=Object.keys(a),e=0,d=c.length;e<d;e++){var h=c[e],g=a[h];if(g)for(var f=0,p=g.length;f<p;f++)if(g[f]===b){1===p?delete a[h]:g.splice(f,1);break}else"object"===typeof g[f]&&O(g[f],b)}}
function M(a,b){for(var c=Object.keys(a),e=c.length,d=[],h="",g=0,f=0,p;f<e;f++){var l=c[f];(p=a[l])?(d[g++]=new RegExp(b?"(?!\\b)"+l+"(\\b|_)":l,"g"),d[g++]=p):h+=(h?"|":"")+l}h&&(d[g++]=new RegExp(b?"(?!\\b)("+h+")(\\b|_)":"("+h+")","g"),d[g]="");return d}function R(a,b){return b.length-a.length}function S(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c};(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return K}):"object"===typeof a.exports?a.module.exports=K:a.FlexSearch=K})();}).call(this);
(function(){'use strict';var u;Object.assign||(Object.assign=function(){for(var a=arguments,b=a.length,c=a[0],e=1,d,h,g;e<b;e++){d=a[e];h=Object.keys(d);g=h.length;for(var f=0,m;f<g;f++)m=h[f],c[m]=d[m]}return c});function v(a){return"string"===typeof a}function y(a){for(var b=Array(a),c=0;c<a;c++)b[c]=B();return b}function B(){return Object.create(null)}function C(a,b){for(var c=0,e=b.length;c<e&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a};var F=/[\W_]+/;function G(a){if(a=a.toLowerCase())if(a&&this.g&&(a=C(a,this.g)),this.h&&1<a.length&&(a=C(a,this.h)),a&&(F||""===F)&&(a=a.split(F),this.filter)){for(var b=this.filter,c=a.length,e=[],d=0,h=0;d<c;d++){var g=a[d];g&&!b[g]&&(e[h++]=g)}a=e}return a};var H=0,I={},J={};function K(a){if(!(this instanceof K))return new K(a);var b=a&&a.id;this.id=b||0===b?b:H++;this.init(a);L(this,"index",function(){return Object.keys(this.a)});L(this,"length",function(){return this.index.length})}K.registerCharset=function(a,b){J[a]=b;return K};K.registerLanguage=function(a,b){I[a]=b;return K};u=K.prototype;
u.init=function(a){var b;a||(a={});var c=a.charset,e=a.lang;v(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=J[c]);v(e)&&(e=I[e]);this.j=b=c&&c.l||a.tokenize||"strict";this.depth="strict"===b&&a.depth||0;this.i=c&&c.i||a.rtl||!1;this.b=a.resolution||9;this.threshold=b=a.threshold||0;this.b<=b&&(this.b=b+1);this.encode=a.encode||c&&c.encode||G;this.g=(b=a.matcher||e&&e.g)&&M(b,!1);this.h=(b=a.stemmer||e&&e.h)&&M(b,!0);if(a=b=a.filter||e&&e.filter)for(a=B(),c=0,e=b.length;c<e;c++)a[b[c]]=1;this.filter=
a;this.f=y(this.b-this.threshold);this.c=B();this.a=B();return this};
u.add=function(a,b,c,e,d){if(b&&v(b)&&(a||0===a)){if(this.a[a]&&!e)return this.update(a,b);if(!d&&c)return this.add(a,b,null,e,!0),c(),this;b=this.encode(b);if(!b.length)return this;c=B();c._ctx=B();e=b.length;d=this.threshold;for(var h=this.depth,g=this.b,f=this.f,m=this.i,t,q=0;q<e;q++){var n=b[q];if(n){t=1;var p=n.length,r=(m?q+1:e-q)/e,l="";switch(this.j){case "reverse":case "both":for(var k=p;--k;)l=n[k]+l,N(f,c,l,a,m?1:(p-k)/p,r,d,g-1);l="";case "forward":for(k=0;k<p;k++)l+=n[k],N(f,c,l,a,m?
(k+1)/p:1,r,d,g-1);break;case "full":for(k=0;k<p;k++)for(var w=(m?k+1:p-k)/p,z=p;z>k;z--)l=n.substring(k,z),N(f,c,l,a,w,r,d,g-1);break;default:if(p=N(f,c,n,a,1,r,d,g-1),h&&1<e&&p>=d)for(p=c._ctx[n]||(c._ctx[n]=B()),n=this.c[n]||(this.c[n]=y(g-(d||0))),r=q-h,l=q+h+1,0>r&&(r=0),l>e&&(l=e);r<l;r++)r!==q&&N(n,p,b[r],a,0,g-(r<q?q-r:r-q),d,g-1)}}}t&&(this.a[a]=1)}return this};u.update=function(a,b,c){this.a[a]&&v(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
u.remove=function(a,b,c){if(this.a[a]){if(!c&&b)return this.remove(a,null,!0),b(),this;for(b=0;b<this.b-(this.threshold||0);b++)Q(this.f[b],a);this.depth&&Q(this.c,a);delete this.a[a]}return this};
u.search=function(a,b,c,e){b&&"function"===typeof b?(c=b,b=1E3):b||0===b||(b=1E3);var d=[],h=a;if("object"===typeof a){var g=!1;b=a.limit;var f=a.threshold;var m=!1;a=a.query}f||(f=this.threshold||0);if(!e&&c)return c(this.search(h,b,null,!0)),this;if(!a||!v(a))return d;h=this.encode(a);if(!h.length)return d;c=h;e=c.length;h=!0;a=[];var t=B(),q,n=0;1<e&&(this.depth?q=!0:c.sort(R));var p;if(!q||(p=this.c))for(var r=this.b;n<e;n++){var l=c[n];if(l){if(q){if(!k)if(p[l]){var k=l;t[l]=1}else if(!m)return d;
if(m&&n===e-1&&!a.length)q=!1,l=k||l,t[l]=0;else if(!k)continue}if(!t[l]){var w=[],z=!1,O=0;if(k=q?p[k]:this.f)for(var P,E=0;E<r-f;E++)if(P=k[E]&&k[E][l])w[O++]=P,z=!0;if(z)k=l,a[a.length]=1<O?w.concat.apply([],w):w[0];else{h=!1;break}t[l]=1}}}else h=!1;if(h)a:{d=[];!0===g?(g="0",f=""):f=g&&g.split(":");m=a.length;if(1<m){q=B();k=0;r=!0;h=0;var A;for(f&&(2===f.length?f=!1:f=A=parseInt(f[0],10));k<m;k++)if(t=k===m-1,p=a[k],e=p.length){if(r)if(x){n=x.length;for(c=0;c<n;c++)q["@"+x[c]]=1;var x=null;
r=!1}else{x=p;continue}l=!1;for(c=0;c<e;c++)if(n=p[c],w="@"+n,(z=q[w]||0)&&z===k){if(t){if(!A||--A<h)if(d[h++]=n,b&&h===b){d=S(g,h+(f||0),d);break a}}else q[w]=k+1;l=!0}if(!l)break}else{d=S(g,D,p);break a}x&&(d=x)}else m&&(d=a[0],f&&(f=parseInt(f[0],10)));if(b){x=d.length;f&&f>x&&(f=0);A=f||0;var D=A+b;D<x?d=d.slice(A,D):(D=0,A&&(d=d.slice(A)))}d=S(g,D,d)}return d};u.clear=function(){return this.destroy().init()};u.destroy=function(){this.f=this.c=this.a=null;return this};
function L(a,b,c){Object.defineProperty(a,b,{get:c})}function N(a,b,c,e,d,h,g,f){if(b[c])return b[c];d=d?(f-(g||f/1.5))*h+(g||f/1.5)*d:h;b[c]=d;d>=g&&(a=a[f-(d+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=e);return d}function Q(a,b){if(a)for(var c=Object.keys(a),e=0,d=c.length;e<d;e++){var h=c[e],g=a[h];if(g)for(var f=0,m=g.length;f<m;f++)if(g[f]===b){1===m?delete a[h]:g.splice(f,1);break}else"object"===typeof g[f]&&Q(g[f],b)}}
function M(a,b){for(var c=Object.keys(a),e=c.length,d=[],h="",g=0,f=0,m;f<e;f++){var t=c[f];(m=a[t])?(d[g++]=new RegExp(b?"(?!\\b)"+t+"(\\b|_)":t,"g"),d[g++]=m):h+=(h?"|":"")+t}h&&(d[g++]=new RegExp(b?"(?!\\b)("+h+")(\\b|_)":"("+h+")","g"),d[g]="");return d}function R(a,b){return b.length-a.length}function S(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c};(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return K}):"object"===typeof a.exports?a.module.exports=K:a.FlexSearch=K})();}).call(this);

View File

@@ -5,35 +5,33 @@
* Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch
*/
(function(){'use strict';window.requestAnimationFrame||(window.requestAnimationFrame=window.setTimeout);window.cancelAnimationFrame||(window.cancelAnimationFrame=window.clearTimeout);window.Promise||(window.Promise=function(){function a(b){this.f=null;var c=this;b(function(d){c.f&&(c.f(d),c.f=null)})}a.prototype.then=function(b){this.f=b};return a}());var ba=/\W+/,ca={encode:"icase",c:"forward",split:ba,cache:!1,async:!1,B:!1,w:!1,a:!1,b:9,threshold:0,depth:0},da={memory:{encode:"extra",c:"strict",threshold:0,b:1},speed:{encode:"icase",c:"strict",threshold:1,b:3,depth:2},match:{encode:"extra",c:"full",threshold:1,b:3},score:{encode:"extra",c:"strict",threshold:1,b:9,depth:4},balance:{encode:"balance",c:"strict",threshold:0,b:3,depth:3},fast:{encode:"icase",c:"strict",threshold:8,b:9,depth:1}},q=[],ea=0,fa={},ha={};
function z(a,b){var c=b?b.id:a&&a.id;this.id=c||0===c?c:ea++;ia(this,a,b);ja(this,"index",function(){return this.a?Object.keys(this.a.index[this.a.keys[0]].g):Object.keys(this.g)});ja(this,"length",function(){return this.index.length})}z.create=function(a,b){return new z(a,b)};z.registerMatcher=function(a){for(var b in a)a.hasOwnProperty(b)&&q.push(A(b),a[b]);return z};z.registerEncoder=function(a,b){C[a]=b.bind(C);return z};z.registerLanguage=function(a,b){fa[a]=b.filter;ha[a]=b.stemmer;return z};
z.encode=function(a,b){return C[a](b)};
function ia(a,b,c){a.s=[];if(c){var d=c.preset;b=c}else b||(b=ca),d=b.preset;c={};F(b)?(c=da[b],b={}):d&&(c=da[d]);a.c=b.tokenize||c.c||a.c||"forward";a.split=G(d=b.split)?a.split||ba:F(d)?A(d):d;a.w=b.rtl||a.w||!1;a.async="undefined"===typeof Promise||G(d=b.async)?a.async||!1:d;a.B=G(d=b.worker)?a.B||!1:d;a.threshold=G(d=b.threshold)?c.threshold||a.threshold||0:d;a.b=G(d=b.resolution)?d=c.b||a.b||9:d;d<=a.threshold&&(a.b=a.threshold+1);a.depth="strict"!==a.c||G(d=b.depth)?c.depth||a.depth||0:d;d=
G(d=b.encode)?c.encode||"icase":d;a.j=d&&C[d]&&C[d].bind(C)||(H(d)?d:a.j||!1);if(d=b.matcher){c=a.s;for(var e in d)d.hasOwnProperty(e)&&c.push(A(e),d[e])}if(d=(e=b.lang)||b.filter){F(d)&&(d=fa[d]);if(N(d)){c=a.j;for(var f=P(),g=0;g<d.length;g++){var h=c?c(d[g]):d[g];f[h]=1}d=f}a.filter=d}if(d=e||b.stemmer){e=F(d)?ha[d]:d;c=a.j;f=[];for(var k in e)e.hasOwnProperty(k)&&(g=c?c(k):k,f.push(A(g+"($|\\W)"),c?c(e[k]):e[k]));a.A=f}a.a=f=(d=b.doc)?ka(d):a.a||!1;a.m=la(a.b-(a.threshold||0));a.h=P();a.g=P();
if(f){a.i=P();b.doc=null;k=f.index={};e=f.keys=[];c=f.field;g=f.tag;h=f.store;N(f.id)||(f.id=f.id.split(":"));if(h){var n=P();if(F(h))n[h]=1;else if(N(h))for(var r=0;r<h.length;r++)n[h[r]]=1;else Q(h)&&(n=h);f.store=n}if(g){a.u=P();h=P();if(c)if(F(c))h[c]=b;else if(N(c))for(n=0;n<c.length;n++)h[c[n]]=b;else Q(c)&&(h=c);N(g)||(f.tag=g=[g]);for(c=0;c<g.length;c++)a.u[g[c]]=P();a.C=g;c=h}if(c){if(!N(c))if(Q(c)){var p=c;f.field=c=Object.keys(c)}else f.field=c=[c];for(f=0;f<c.length;f++)g=c[f],N(g)||(p&&
(b=p[g]),e[f]=g,c[f]=g.split(":")),k[g]=new z(b)}b.doc=d}a.l=!0;a.cache=d=G(d=b.cache)?a.cache||!1:d;a.f=d?new ma(d):!1;return a}z.prototype.encode=function(a){a&&(q.length&&(a=S(a,q)),this.s.length&&(a=S(a,this.s)),this.j&&(a=this.j(a)),this.A&&(a=S(a,this.A)));return a};function ka(a){var b=P(),c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];b[c]=N(d)?d.slice(0):Q(d)?ka(d):d}return b}
function na(a,b){for(var c=a.length,d=H(b),e=[],f=0,g=0;f<c;f++){var h=a[f];if(d&&b(h)||!d&&!b[h])e[g++]=h}return e}
z.prototype.add=function(a,b,c,d,e){if(this.a&&Q(a))return T(this,"add",a,b);if(b&&F(b)&&(a||0===a)){var f="@"+a;if(this.g[f]&&!d)return this.update(a,b);if(!e){if(this.async&&"function"!==typeof importScripts){var g=this;f=new Promise(function(M){setTimeout(function(){g.add(a,b,null,d,!0);g=null;M()})});if(c)f.then(c);else return f;return this}if(c)return this.add(a,b,null,d,!0),c(),this}b=this.encode(b);if(!b.length)return this;c=this.c;e=H(c)?c(b):b.split(this.split);this.filter&&(e=na(e,this.filter));
var h=P();h._ctx=P();for(var k=e.length,n=this.threshold,r=this.depth,p=this.b,t=this.m,l=this.w,m=0;m<k;m++){var y=e[m];if(y){var v=y.length,x=(l?m+1:k-m)/k,u="";switch(c){case "reverse":case "both":for(var w=v;--w;)u=y[w]+u,V(t,h,u,a,l?1:(v-w)/v,x,n,p-1);u="";case "forward":for(w=0;w<v;w++)u+=y[w],V(t,h,u,a,l?(w+1)/v:1,x,n,p-1);break;case "full":for(w=0;w<v;w++)for(var B=(l?w+1:v-w)/v,I=v;I>w;I--)u=y.substring(w,I),V(t,h,u,a,B,x,n,p-1);break;default:if(v=V(t,h,y,a,1,x,n,p-1),r&&1<k&&v>=n)for(v=
h._ctx[y]||(h._ctx[y]=P()),y=this.h[y]||(this.h[y]=la(p-(n||0))),x=m-r,u=m+r+1,0>x&&(x=0),u>k&&(u=k);x<u;x++)x!==m&&V(y,v,e[x],a,0,p-(x<m?m-x:x-m),n,p-1)}}}this.g[f]=1;this.l=!1}return this};
function T(a,b,c,d){if(N(c)){var e=c.length;if(e--){for(var f=0;f<e;f++)T(a,b,c[f]);return T(a,b,c[e],d)}}else{var g=a.a.index,h=a.a.keys,k=a.a.tag;f=a.a.store;var n;var r=a.a.id;e=c;for(var p=0;p<r.length;p++)e=e[r[p]];if("remove"===b&&(delete a.i[e],r=h.length,r--)){for(a=0;a<r;a++)g[h[a]].remove(e);return g[h[r]].remove(e,d)}if(k){for(n=0;n<k.length;n++){var t=k[n];var l=c;r=t.split(":");for(p=0;p<r.length;p++)l=l[r[p]];l="@"+l}n=a.u[t];n=n[l]||(n[l]=[])}r=a.a.field;k=0;for(t=r.length;k<t;k++){p=
r[k];l=c;for(var m=0;m<p.length;m++)l=l[p[m]];p=g[h[k]];m="add"===b?p.add:p.update;k===t-1?m.call(p,e,l,d):m.call(p,e,l)}if(f){d=Object.keys(f);b=P();for(g=0;g<d.length;g++)if(h=d[g],f[h])for(h=h.split(":"),k=r=void 0,t=0;t<h.length;t++)l=h[t],r=(r||c)[l],k=(k||b)[l]=r;c=b}n&&(n[n.length]=c);a.i[e]=c}return a}z.prototype.update=function(a,b,c){if(this.a&&Q(a))return T(this,"update",a,b);this.g["@"+a]&&F(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
z.prototype.remove=function(a,b,c){if(this.a&&Q(a))return T(this,"remove",a,b);var d="@"+a;if(this.g[d]){if(!c){if(this.async&&"function"!==typeof importScripts){var e=this;d=new Promise(function(f){setTimeout(function(){e.remove(a,null,!0);e=null;f()})});if(b)d.then(b);else return d;return this}if(b)return this.remove(a,null,!0),b(),this}for(b=0;b<this.b-(this.threshold||0);b++)W(this.m[b],a);this.depth&&W(this.h,a);delete this.g[d];this.l=!1}return this};var X;
function Y(a,b,c,d,e,f,g,h,k,n,r){d=oa(d,h?0:f,k,g,c,n,r);if(k){k=d.page;var p=d.next;d=d.result}if(h)d=pa(a,h,f,d);else{c=d;d=a.i;f=c.length;g=Array(f);for(h=0;h<f;h++)g[h]=d[c[h]];d=g}e&&(H(e)||(X=e.split(":"),1<X.length?e=qa:(X=X[0],e=ra)),d.sort(e));d=Z(k,p,d);a.cache&&a.f.set(b,d);return d}
z.prototype.search=function(a,b,c,d){if(Q(b)){if(N(b))for(var e=0;e<b.length;e++)b[e].query=a;else b.query=a;a=b;b=1E3}else b&&H(b)?(c=b,b=1E3):b||0===b||(b=1E3);var f=[],g=a;if(Q(a)&&!N(a)){c||(c=a.callback)&&(g.callback=null);var h=a.sort;var k=a.page;b=a.limit;var n=a.threshold;var r=a.suggest;a=a.query}if(this.a){n=this.a.index;var p=g.where,t=g.bool||"or",l=g.field,m=t,y,v;if(l)N(l)||(l=[l]);else if(N(g)){var x=g;l=[];m=[];for(var u=0;u<g.length;u++)d=g[u],e=d.bool||t,l[u]=d.field,m[u]=e,"not"===
e?y=!0:"and"===e&&(v=!0)}else l=this.a.keys;t=l.length;for(u=0;u<t;u++)x&&(g=x[u]),k&&!F(g)&&(g.page=null,g.limit=0),f[u]=n[l[u]].search(g,0);if(c)return c(Y(this,a,m,f,h,b,r,p,k,v,y));if(this.async){var w=this;return new Promise(function(aa){Promise.all(f).then(function(ua){aa(Y(w,a,m,ua,h,b,r,p,k,v,y))})})}return Y(this,a,m,f,h,b,r,p,k,v,y)}n||(n=this.threshold||0);if(!d){if(this.async&&"function"!==typeof importScripts){var B=this;n=new Promise(function(aa){setTimeout(function(){aa(B.search(g,
b,null,!0));B=null})});if(c)n.then(c);else return n;return this}if(c)return c(this.search(g,b,null,!0)),this}if(!a||!F(a))return f;g=a;if(this.cache)if(this.l){if(c=this.f.get(a))return c}else this.f.clear(),this.l=!0;g=this.encode(g);if(!g.length)return f;c=this.c;c=H(c)?c(g):g.split(this.split);this.filter&&(c=na(c,this.filter));x=c.length;d=!0;e=[];var I=P(),M=0;1<x&&(this.depth&&"strict"===this.c?t=!0:c.sort(sa));if(!t||(u=this.h))for(var U=this.b;M<x;M++){var D=c[M];if(D){if(t){if(!l)if(u[D])l=
D,I[D]=1;else if(!r)return f;if(r&&M===x-1&&!e.length)t=!1,D=l||D,I[D]=0;else if(!l)continue}if(!I[D]){var E=[],O=!1,J=0,K=t?u[l]:this.m;if(K)for(var R=void 0,L=0;L<U-n;L++)if(R=K[L]&&K[L][D])E[J++]=R,O=!0;if(O)l=D,e[e.length]=1<J?E.concat.apply([],E):E[0];else if(!r){d=!1;break}I[D]=1}}}else d=!1;d&&(f=oa(e,b,k,r));this.cache&&this.f.set(a,f);return f};
function pa(a,b,c,d){var e=null,f=a.i,g=[],h=0;if(Q(b)){c||(c=e);var k=Object.keys(b);var n=k.length;var r=!1;if(1===n&&"id"===k[0])return[f[b.id]];var p=a.C;if(p&&!d)for(var t=0;t<p.length;t++){var l=p[t],m=b[l];if(!G(m)){var y=a.u[l]["@"+m];if(0===--n)return y;k.splice(k.indexOf(l),1);delete b[l];break}}a=Array(n);for(p=0;p<n;p++)a[p]=k[p].split(":")}else{if(H(b)){c=d||Object.keys(f);e=c.length;for(k=0;k<e;k++)n=f[c[k]],b(n)&&(g[h++]=n);return g}if(G(e))return[f[b]];if("id"===b)return[f[e]];k=[b];
n=1;a=[b.split(":")];r=!0}d=y||d||Object.keys(f);p=d.length;for(t=0;t<p;t++){l=y?d[t]:f[d[t]];m=!0;for(var v=0;v<n;v++){r||(e=b[k[v]]);var x=a[v],u=x.length,w=l;if(1<u)for(var B=0;B<u;B++)w=w[x[B]];else w=w[x[0]];if(w!==e){m=!1;break}}if(m&&(g[h++]=l,c&&h===c))break}return g}z.prototype.clear=function(){return ia(ta(this))};function ta(a){a.cache&&(a.f.clear(),a.f=null);a.m=a.h=a.g=null;if(a.a){for(var b=a.a.keys,c=0;c<b.length;c++)ta(a.a.index[b[c]]);a.a=a.i=null}return a}
var C={icase:function(a){return a.toLowerCase()},simple:function(){var a=[A("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",A("[\u00e8\u00e9\u00ea\u00eb]"),"e",A("[\u00ec\u00ed\u00ee\u00ef]"),"i",A("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",A("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",A("[\u00fd\u0177\u00ff]"),"y",A("\u00f1"),"n",A("[\u00e7c]"),"k",A("\u00df"),"s",A(" & ")," and ",A("[-/]")," ",A("[^a-z0-9 ]"),"",A("\\s+")," "];return function(b){b=S(b.toLowerCase(),a);return" "===b?"":b}}(),advanced:function(){var a=
[A("ae"),"a",A("ai"),"ei",A("ay"),"ei",A("ey"),"ei",A("oe"),"o",A("ue"),"u",A("ie"),"i",A("sz"),"s",A("zs"),"s",A("sh"),"s",A("ck"),"k",A("cc"),"k",A("th"),"t",A("dt"),"t",A("ph"),"f",A("pf"),"f",A("ou"),"o",A("uo"),"u"];return function(b,c){if(!b)return b;b=this.simple(b);2<b.length&&(b=S(b,a));c||1<b.length&&(b=va(b));return b}}(),extra:function(){var a=[A("p"),"b",A("z"),"s",A("[cgq]"),"k",A("n"),"m",A("d"),"t",A("[vw]"),"f",A("[aeiouy]"),""];return function(b){if(!b)return b;b=this.advanced(b,
!0);if(1<b.length){b=b.split(" ");for(var c=0;c<b.length;c++){var d=b[c];1<d.length&&(b[c]=d[0]+S(d.substring(1),a))}b=b.join(" ");b=va(b)}return b}}(),balance:function(){var a=[A("[-/]")," ",A("[^a-z0-9 ]"),"",A("\\s+")," "];return function(b){return va(S(b.toLowerCase(),a))}}()},ma=function(){function a(b){this.clear();this.v=!0!==b&&b}a.prototype.clear=function(){this.cache=P();this.count=P();this.index=P();this.o=[]};a.prototype.set=function(b,c){if(this.v&&G(this.cache[b])){var d=this.o.length;
if(d===this.v){d--;var e=this.o[d];delete this.cache[e];delete this.count[e];delete this.index[e]}this.index[b]=d;this.o[d]=b;this.count[b]=-1;this.cache[b]=c;this.get(b)}else this.cache[b]=c};a.prototype.get=function(b){var c=this.cache[b];if(this.v&&c){var d=++this.count[b],e=this.index,f=e[b];if(0<f){for(var g=this.o,h=f;this.count[g[--f]]<=d&&-1!==f;);f++;if(f!==h){for(d=h;d>f;d--)h=g[d-1],g[d]=h,e[h]=d;g[f]=b;e[b]=f}}}return c};return a}();
function ja(a,b,c){Object.defineProperty(a,b,{get:c})}function A(a){return new RegExp(a,"g")}function S(a,b){for(var c=0;c<b.length;c+=2)a=a.replace(b[c],b[c+1]);return a}function V(a,b,c,d,e,f,g,h){if(b[c])return b[c];e=e?(h-(g||h/1.5))*f+(g||h/1.5)*e:f;b[c]=e;e>=g&&(a=a[h-(e+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=d);return e}
function W(a,b){if(a)for(var c=Object.keys(a),d=0,e=c.length;d<e;d++){var f=c[d],g=a[f];if(g)for(var h=0,k=g.length;h<k;h++)if(g[h]===b){1===k?delete a[f]:g.splice(h,1);break}else Q(g[h])&&W(g[h],b)}}function va(a){for(var b="",c="",d="",e=0;e<a.length;e++){var f=a[e];if(f!==c)if(e&&"h"===f){if(d="a"===d||"e"===d||"i"===d||"o"===d||"u"===d||"y"===d,("a"===c||"e"===c||"i"===c||"o"===c||"u"===c||"y"===c)&&d||" "===c)b+=f}else b+=f;d=e===a.length-1?"":a[e+1];c=f}return b}
function sa(a,b){a=a.length-b.length;return 0>a?1:a?-1:0}function ra(a,b){a=a[X];b=b[X];return a<b?-1:a>b?1:0}function qa(a,b){for(var c=X.length,d=0;d<c;d++)a=a[X[d]],b=b[X[d]];return a<b?-1:a>b?1:0}function Z(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c}
function oa(a,b,c,d,e,f,g){var h=[];if(!0===c){c="0";var k=""}else k=c&&c.split(":");var n=a.length;if(1<n){var r=P(),p=[],t,l=0,m,y=!0,v=0,x;if(k)if(2===k.length){var u=k;k=!1}else k=x=parseInt(k[0],10);if(g){for(t=P();l<n;l++)if("not"===e[l]){var w=a[l];var B=w.length;for(m=0;m<B;m++)t["@"+w[m]]=1}else var I=l+1;if(G(I))return Z(c,L,h);l=0}else var M=F(e)&&e;for(var U;l<n;l++){var D=l===(I||n)-1;if(!M||!l)if((m=M||e&&e[l])&&"and"!==m)if("or"===m)U=!1;else continue;else U=f=!0;w=a[l];if(B=w.length){if(y)if(J){var E=
J.length;for(m=0;m<E;m++){y=J[m];var O="@"+y;g&&t[O]||(r[O]=1,f||(h[v++]=y))}var J=null;y=!1}else{J=w;continue}O=!1;for(m=0;m<B;m++){E=w[m];var K="@"+E,R=f?r[K]||0:l;if(!(!R&&!d||g&&t[K]||!f&&r[K]))if(R===l){if(D){if(!x||--x<v)if(h[v++]=E,b&&v===b)return Z(c,v+(k||0),h)}else r[K]=l+1;O=!0}else d&&(K=p[R]||(p[R]=[]),K[K.length]=E)}if(U&&!O&&!d)break}else if(U&&!d)return Z(c,L,w)}if(J)if(l=J.length,g)for(m=k?parseInt(k,10):0;m<l;m++)a=J[m],t["@"+a]||(h[v++]=a);else h=J;if(d)for(v=h.length,u?(l=parseInt(u[0],
10)+1,m=parseInt(u[1],10)+1):(l=p.length,m=0);l--;)if(E=p[l]){for(B=E.length;m<B;m++)if(d=E[m],!g||!t["@"+d])if(h[v++]=d,b&&v===b)return Z(c,l+":"+m,h);m=0}}else!n||e&&"not"===e[0]||(h=a[0],k&&(k=parseInt(k[0],10)));if(b){g=h.length;k&&k>g&&(k=0);k=k||0;var L=k+b;L<g?h=h.slice(k,L):(L=0,k&&(h=h.slice(k)))}return Z(c,L,h)}function F(a){return"string"===typeof a}function N(a){return a.constructor===Array}function H(a){return"function"===typeof a}function Q(a){return"object"===typeof a}
function G(a){return"undefined"===typeof a}function la(a){for(var b=Array(a),c=0;c<a;c++)b[c]=P();return b}function P(){return Object.create(null)};(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return z}):"object"===typeof a.exports?a.module.exports=z:a.FlexSearch=z})();}).call(this);
(function(){'use strict';Object.assign||(Object.assign=function(){for(var a=arguments,b=a.length,c=a[0],d=1,e,f,g;d<b;d++){e=a[d];f=Object.keys(e);g=f.length;for(var h=0,k;h<g;h++)k=f[h],c[k]=e[k]}return c});window.requestAnimationFrame||(window.requestAnimationFrame=window.setTimeout);window.cancelAnimationFrame||(window.cancelAnimationFrame=window.clearTimeout);window.Promise||(window.Promise=function(){function a(b){this.b=null;var c=this;b(function(d){c.b&&(c.b(d),c.b=null)})}a.prototype.then=function(b){this.b=b};return a}());function t(a){return"string"===typeof a}function y(a){return a.constructor===Array}function z(a){return"function"===typeof a}function E(a){return"object"===typeof a}function F(a){return"undefined"===typeof a}function aa(a){for(var b=Array(a),c=0;c<a;c++)b[c]=G();return b}function G(){return Object.create(null)}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 L(a){return new RegExp(a,"g")}
function ba(a){for(var b="",c="",d=0,e=a.length,f=void 0;d<e;d++)(f=a[d])!==c&&(b+=c=f);return b}function O(a,b,c,d){if(b&&(c&&b&&(b=K(b,c)),b&&a.u&&(b=K(b,a.u)),a.A&&1<b.length&&(b=K(b,a.A)),b&&(d||""===d)&&(b=b.split(d),a.filter))){a=a.filter;c=b.length;d=[];for(var e=0,f=0;e<c;e++){var g=b[e];g&&!a[g]&&(d[f++]=g)}b=d}return b};P.prototype.export=function(a){var b=!a||F(a.serialize)||a.serialize;if(this.a){var c=!a||F(a.doc)||a.doc,d=!a||F(a.index)||a.index;a=[];var e=0;if(d)for(d=this.a.keys;e<d.length;e++){var f=this.a.index[d[e]];a[e]=[f.j,f.i,Object.keys(f.f)]}c&&(a[e]=this.l)}else a=[this.j,this.i,Object.keys(this.f)];b&&(a=JSON.stringify(a));return a};
P.prototype.import=function(a,b){if(!b||F(b.serialize)||b.serialize)a=JSON.parse(a);var c={};if(this.a){var d=!b||F(b.doc)||b.doc,e=0;if(!b||F(b.index)||b.index){b=this.a.keys;for(var f=b.length,g=a[0][2];e<g.length;e++)c[g[e]]=1;for(e=0;e<f;e++){g=this.a.index[b[e]];var h=a[e];h&&(g.j=h[0],g.i=h[1],g.f=c)}}d&&(this.l=E(d)?d:a[e])}else{d=a[2];for(e=0;e<d.length;e++)c[d[e]]=1;this.j=a[0];this.i=a[1];this.f=c}};P.prototype.find=function(a,b){return this.where(a,b,1)[0]||null};
P.prototype.where=function(a,b,c,d){var e=this.l,f=[],g=0,h;if(E(a)){c||(c=b);var k=Object.keys(a);var m=k.length;var q=!1;if(1===m&&"id"===k[0])return[e[a.id]];if((h=this.F)&&!d)for(var r=0;r<h.length;r++){var p=h[r],l=a[p];if(!F(l)){var n=this.w[p]["@"+l];if(0===--m)return n;k.splice(k.indexOf(p),1);delete a[p];break}}h=Array(m);for(r=0;r<m;r++)h[r]=k[r].split(":")}else{if(z(a)){b=d||Object.keys(e);c=b.length;for(k=0;k<c;k++)m=e[b[k]],a(m)&&(f[g++]=m);return f}if(F(b))return[e[a]];if("id"===a)return[e[b]];
k=[a];m=1;h=[a.split(":")];q=!0}d=n||d||Object.keys(e);r=d.length;for(p=0;p<r;p++){l=n?d[p]:e[d[p]];for(var w=!0,v=0;v<m;v++){q||(b=a[k[v]]);var x=h[v],u=x.length,A=l;if(1<u)for(var B=0;B<u;B++)A=A[x[B]];else A=A[x[0]];if(A!==b){w=!1;break}}if(w&&(f[g++]=l,c&&g===c))break}return f};function S(a){this.clear();this.m=!0!==a&&a}S.prototype.clear=function(){this.cache=G();this.count=G();this.index=G();this.b=[]};S.prototype.set=function(a,b){if(this.m&&F(this.cache[a])){var c=this.b.length;if(c===this.m){c--;var d=this.b[c];delete this.cache[d];delete this.count[d];delete this.index[d]}this.b[c]=a;this.index[a]=c;this.count[a]=-1;this.cache[a]=b;this.get(a)}else this.cache[a]=b};
S.prototype.get=function(a){var b=this.cache[a];if(this.m&&b){var c=++this.count[a],d=this.index,e=d[a];if(0<e){for(var f=this.b,g=e;this.count[f[--e]]<=c&&-1!==e;);e++;if(e!==g){for(c=g;c>e;c--)g=f[c-1],f[c]=g,d[g]=c;f[e]=a;d[a]=e}}}return b};var U={},da="undefined"!==typeof Blob&&"undefined"!==typeof URL&&URL.createObjectURL;function ea(a,b,c){var d=fa,e="flexsearch";d=da?URL.createObjectURL(new Blob(["("+d.toString()+")()"],{type:"text/javascript"})):e+".browser.js";e+="-"+a;U[e]||(U[e]=[]);U[e][c]=new Worker(d);U[e][c].onmessage=b;return U[e][c]}
function fa(){var a,b;self.onmessage=function(c){if(c=c.data)if(c.search){var d=b.search(c.content,c.threshold?{limit:c.limit,threshold:c.threshold,where:c.where}:c.limit);self.postMessage({id:a,content:c.content,limit:c.limit,result:d})}else c.add?b.add(c.id,c.content):c.update?b.update(c.id,c.content):c.remove?b.remove(c.id):c.clear?b.clear():c.info?(c=b.info(),c.worker=a,console.log(c)):c.register&&(a=c.id,c.options.cache=!1,c.options.async=!1,c.options.worker=!1,b=(new Function(c.register.substring(c.register.indexOf("{")+
1,c.register.lastIndexOf("}"))))(),b=new b(c.options))}}function ha(a,b,c,d){a=ea("id"+a,function(f){(f=f.data)&&f.result&&d(f.id,f.content,f.result,f.limit,f.where,f.cursor,f.suggest)},b);var e=P.toString();c.id=b;a.postMessage({register:e,options:c,id:b});return a}P.prototype.G=function(a,b,c,d){this.s!==this.v&&(this.o=this.o.concat(c),this.s++,d&&this.o.length>=d&&(this.s=this.v),this.s===this.v&&(this.cache&&this.g.set(b,this.o),this.C&&this.C(this.o)));return this};var ia={memory:{charset:"latin:extra",threshold:0,c:1},speed:{threshold:1,c:3,depth:2},match:{charset:"latin:extra",B:"full",threshold:1,c:3},score:{charset:"latin:extra",threshold:1,c:9,depth:4},balance:{charset:"latin:balance",threshold:0,c:3,depth:3},fast:{threshold:8,c:9,depth:1}};var ka={encode:ja,h:!1},la=/[\W_]+/;function ja(a){return O(this,a.toLowerCase(),!1,la)};var ma=0,na={},V={};function P(a){if(!(this instanceof P))return new P(a);var b=a&&a.id;this.id=b||0===b?b:ma++;this.init(a);oa(this,"index",function(){return this.a?Object.keys(this.a.index[this.a.keys[0]].f):Object.keys(this.f)});oa(this,"length",function(){return this.index.length})}P.registerCharset=function(a,b){V[a]=b;return P};P.registerLanguage=function(a,b){na[a]=b;return P};
P.prototype.init=function(a){var b,c;if(a)if(t(a))a=ia[a];else if(b=a.preset)a=Object.assign({},ia[b],a);a||(a={});if(b=a.worker){if("undefined"===typeof ea)a.worker=!1,this.m=null;else{var d=parseInt(b,10)||4;this.s=0;this.o=[];this.C=null;this.m=Array(d);for(var e=0;e<d;e++)this.m[e]=ha(this.id,e,a,this.G)}this.v=b}this.async=a.async;d=a.charset;e=a.lang;t(d)&&(-1===d.indexOf(":")&&(d+=":default"),d=V[d]);t(e)&&(e=na[e]);this.D=b=d&&d.B||a.tokenize||"strict";this.depth="strict"===b&&a.depth||0;
this.h=d&&d.h||a.rtl||!1;this.c=a.resolution||9;this.threshold=b=a.threshold||0;this.c<=b&&(this.c=b+1);this.encode=a.encode||d&&d.encode||ja;this.u=(b=a.matcher||e&&e.u)&&pa(b,!1);this.A=(b=a.stemmer||e&&e.A)&&pa(b,!0);if(d=b=a.filter||e&&e.filter){d=b;e=G();var f=0;for(c=d.length;f<c;f++)e[d[f]]=1;d=e}this.filter=d;(this.a=c=(b=a.doc)&&qa(b))&&(a.doc=null);this.j=aa(this.c-this.threshold);this.i=G();this.f=G();if(c){this.l=G();d=c.index={};e=c.keys=[];f=c.field;var g=c.tag,h=c.store;y(c.id)||(c.id=
c.id.split(":"));if(h){var k=G();if(t(h))k[h]=1;else if(y(h))for(var m=0;m<h.length;m++)k[h[m]]=1;else E(h)&&(k=h);c.store=k}if(g){this.w=G();h=G();if(f)if(t(f))h[f]=a;else if(y(f))for(k=0;k<f.length;k++)h[f[k]]=a;else E(f)&&(h=f);y(g)||(c.tag=g=[g]);for(f=0;f<g.length;f++)this.w[g[f]]=G();this.F=g;f=h}if(f){if(!y(f))if(E(f)){var q=f;c.field=f=Object.keys(f)}else c.field=f=[f];for(c=0;c<f.length;c++)g=f[c],y(g)||(q&&(a=q[g]),e[c]=g,f[c]=g.split(":")),d[g]=new P(a)}}this.b=!0;this.g=(b=a.cache)&&new S(b);
return this};function qa(a){var b=G(),c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];b[c]=y(d)?d.slice(0):E(d)?qa(d):d}return b}
P.prototype.add=function(a,b,c,d,e){if(this.a&&E(a))return W(this,"add",a,b);if(b&&t(b)&&(a||0===a)){if(this.f[a]&&!d)return this.update(a,b);if(!e){if(this.async&&"function"!==typeof importScripts){var f=this,g=new Promise(function(M){setTimeout(function(){f.add(a,b,null,d,!0);f=null;M()})});if(c)g.then(c);else return g;return this}if(c)return this.add(a,b,null,d,!0),c(),this}b=this.encode(b);if(!b.length)return this;c=b;e=G();e._ctx=G();for(var h=c.length,k=this.threshold,m=this.depth,q=this.c,
r=this.j,p=this.h,l=0;l<h;l++){var n=c[l];if(n){g=1;var w=n.length,v=(p?l+1:h-l)/h,x="";switch(this.D){case "reverse":case "both":for(var u=w;--u;)x=n[u]+x,X(r,e,x,a,p?1:(w-u)/w,v,k,q-1);x="";case "forward":for(u=0;u<w;u++)x+=n[u],X(r,e,x,a,p?(u+1)/w:1,v,k,q-1);break;case "full":for(u=0;u<w;u++)for(var A=(p?u+1:w-u)/w,B=w;B>u;B--)x=n.substring(u,B),X(r,e,x,a,A,v,k,q-1);break;default:if(w=X(r,e,n,a,1,v,k,q-1),m&&1<h&&w>=k)for(w=e._ctx[n]||(e._ctx[n]=G()),n=this.i[n]||(this.i[n]=aa(q-(k||0))),v=l-m,
x=l+m+1,0>v&&(v=0),x>h&&(x=h);v<x;v++)v!==l&&X(n,w,c[v],a,0,q-(v<l?l-v:v-l),k,q-1)}}}g&&(this.f[a]=1);this.b=!1}return this};
function W(a,b,c,d){if(y(c)){var e=c.length;if(e)for(var f=0;f<e;f++)W(a,b,c[f],f===e-1&&d)}else{var g=a.a.index,h=a.a.keys,k=a.a.tag;f=a.a.store;var m;var q=a.a.id;e=c;for(var r=0;r<q.length;r++)e=e[q[r]];if("remove"===b){if(delete a.l[e],c=h.length)for(f=0;f<c;f++)g[h[f]].remove(e,f===c-1&&d)}else{if(k){for(m=0;m<k.length;m++){var p=k[m];var l=c;q=p.split(":");for(r=0;r<q.length;r++)l=l[q[r]];l="@"+l}m=a.w[p];m=m[l]||(m[l]=[])}q=a.a.field;k=0;for(p=q.length;k<p;k++){r=q[k];l=c;for(var n=0;n<r.length;n++)l=
l[r[n]];r=g[h[k]];"add"===b?r.add(e,l,k===p-1&&d):r.update(e,l,k===p-1&&d)}if(f){d=Object.keys(f);b=G();for(g=0;g<d.length;g++)if(h=d[g],f[h])for(h=h.split(":"),k=q=void 0,p=0;p<h.length;p++)l=h[p],q=(q||c)[l],k=(k||b)[l]=q;c=b}m&&(m[m.length]=c);a.l[e]=c}}return a}P.prototype.update=function(a,b,c){if(this.a&&E(a))return W(this,"update",a,b);this.f[a]&&t(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
P.prototype.remove=function(a,b,c){if(this.a&&E(a))return W(this,"remove",a,b);if(this.f[a]){if(!c){if(this.async&&"function"!==typeof importScripts){var d=this;c=new Promise(function(e){setTimeout(function(){d.remove(a,null,!0);d=null;e()})});if(b)c.then(b);else return c;return this}if(b)return this.remove(a,null,!0),b(),this}for(b=0;b<this.c-(this.threshold||0);b++)ra(this.j[b],a);this.depth&&ra(this.i,a);delete this.f[a];this.b=!1}return this};var Y;
function sa(a,b,c,d,e,f,g,h,k,m,q){d=ta(d,h?0:f,k,g,c,m,q);if(k){k=d.page;var r=d.next;d=d.result}if(h)d=a.where(h,null,f,d);else{c=d;d=a.l;f=c.length;g=Array(f);for(h=0;h<f;h++)g[h]=d[c[h]];d=g}e&&(z(e)||(Y=e.split(":"),e=1<Y.length?ua:va),d.sort(e));d=Z(k,r,d);a.g&&a.g.set(b,d);return d}
P.prototype.search=function(a,b,c,d){if(E(b)){if(y(b))for(var e=0;e<b.length;e++)b[e].query=a;else b.query=a;a=b;b=1E3}else b&&z(b)?(c=b,b=1E3):b||0===b||(b=1E3);var f=[],g=a;if(E(a)&&!y(a)){c||(c=a.callback)&&(g.callback=null);var h=a.sort;var k=a.page;b=a.limit;var m=a.threshold;var q=a.suggest;a=a.query}if(this.a){m=this.a.index;var r=g.where,p=g.bool||"or",l=g.field,n=p,w,v;if(l)y(l)||(l=[l]);else if(y(g)){var x=g;l=[];n=[];for(var u=0;u<g.length;u++)d=g[u],e=d.bool||p,l[u]=d.field,n[u]=e,"not"===
e?w=!0:"and"===e&&(v=!0)}else l=this.a.keys;p=l.length;for(u=0;u<p;u++)x&&(g=x[u]),k&&!t(g)&&(g.page=null,g.limit=0),f[u]=m[l[u]].search(g,0);if(c)return c(sa(this,a,n,f,h,b,q,r,k,v,w));if(this.async){var A=this;return new Promise(function(ca){Promise.all(f).then(function(za){ca(sa(A,a,n,za,h,b,q,r,k,v,w))})})}return sa(this,a,n,f,h,b,q,r,k,v,w)}m||(m=this.threshold||0);if(!d){if(this.async&&"function"!==typeof importScripts){var B=this;m=new Promise(function(ca){setTimeout(function(){ca(B.search(g,
b,null,!0));B=null})});if(c)m.then(c);else return m;return this}if(c)return c(this.search(g,b,null,!0)),this}if(!a||!t(a))return f;g=a;if(this.g)if(this.b){if(c=this.g.get(a))return c}else this.g.clear(),this.b=!0;g=this.encode(g);if(!g.length)return f;c=g;x=c.length;d=!0;e=[];var M=G(),Q=0;1<x&&(this.depth?p=!0:c.sort(wa));if(!p||(u=this.i))for(var T=this.c;Q<x;Q++){var C=c[Q];if(C){if(p){if(!l)if(u[C])l=C,M[C]=1;else if(!q)return f;if(q&&Q===x-1&&!e.length)p=!1,C=l||C,M[C]=0;else if(!l)continue}if(!M[C]){var D=
[],N=!1,H=0,I=p?u[l]:this.j;if(I)for(var R=void 0,J=0;J<T-m;J++)if(R=I[J]&&I[J][C])D[H++]=R,N=!0;if(N)l=C,e[e.length]=1<H?D.concat.apply([],D):D[0];else if(!q){d=!1;break}M[C]=1}}}else d=!1;d&&(f=ta(e,b,k,q));this.g&&this.g.set(a,f);return f};P.prototype.info=function(){return{id:this.id,items:this.length,matcher:this.u.length,worker:this.v,threshold:this.threshold,depth:this.depth,resolution:this.c,contextual:this.depth&&"strict"===this.D}};P.prototype.clear=function(){return this.destroy().init()};
P.prototype.destroy=function(){this.g&&(this.g.clear(),this.g=null);this.j=this.i=this.f=null;if(this.a){for(var a=this.a.keys,b=0;b<a.length;b++)this.a.index[a[b]].destroy();this.a=this.l=null}return this};function oa(a,b,c){Object.defineProperty(a,b,{get:c})}function X(a,b,c,d,e,f,g,h){if(b[c])return b[c];e=e?(h-(g||h/1.5))*f+(g||h/1.5)*e:f;b[c]=e;e>=g&&(a=a[h-(e+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=d);return e}
function ra(a,b){if(a)for(var c=Object.keys(a),d=0,e=c.length;d<e;d++){var f=c[d],g=a[f];if(g)for(var h=0,k=g.length;h<k;h++)if(g[h]===b){1===k?delete a[f]:g.splice(h,1);break}else E(g[h])&&ra(g[h],b)}}function pa(a,b){for(var c=Object.keys(a),d=c.length,e=[],f="",g=0,h=0,k;h<d;h++){var m=c[h];(k=a[m])?(e[g++]=L(b?"(?!\\b)"+m+"(\\b|_)":m),e[g++]=k):f+=(f?"|":"")+m}f&&(e[g++]=L(b?"(?!\\b)("+f+")(\\b|_)":"("+f+")"),e[g]="");return e}function wa(a,b){return b.length-a.length}
function va(a,b){a=a[Y];b=b[Y];return a<b?-1:a>b?1:0}function ua(a,b){for(var c=Y.length,d=0;d<c;d++)a=a[Y[d]],b=b[Y[d]];return a<b?-1:a>b?1:0}function Z(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c}
function ta(a,b,c,d,e,f,g){var h=[];if(!0===c){c="0";var k=""}else k=c&&c.split(":");var m=a.length;if(1<m){var q=G(),r=[],p,l=0,n,w=!0,v=0,x;if(k)if(2===k.length){var u=k;k=!1}else k=x=parseInt(k[0],10);if(g){for(p=G();l<m;l++)if("not"===e[l]){var A=a[l];var B=A.length;for(n=0;n<B;n++)p["@"+A[n]]=1}else var M=l+1;if(F(M))return Z(c,J,h);l=0}else var Q=t(e)&&e;for(var T;l<m;l++){var C=l===(M||m)-1;if(!Q||!l)if((n=Q||e&&e[l])&&"and"!==n)if("or"===n)T=!1;else continue;else T=f=!0;A=a[l];if(B=A.length){if(w)if(H){var D=
H.length;for(n=0;n<D;n++){w=H[n];var N="@"+w;g&&p[N]||(q[N]=1,f||(h[v++]=w))}var H=null;w=!1}else{H=A;continue}N=!1;for(n=0;n<B;n++){D=A[n];var I="@"+D,R=f?q[I]||0:l;if(!(!R&&!d||g&&p[I]||!f&&q[I]))if(R===l){if(C){if(!x||--x<v)if(h[v++]=D,b&&v===b)return Z(c,v+(k||0),h)}else q[I]=l+1;N=!0}else d&&(I=r[R]||(r[R]=[]),I[I.length]=D)}if(T&&!N&&!d)break}else if(T&&!d)return Z(c,J,A)}if(H)if(l=H.length,g)for(n=k?parseInt(k,10):0;n<l;n++)a=H[n],p["@"+a]||(h[v++]=a);else h=H;if(d)for(v=h.length,u?(l=parseInt(u[0],
10)+1,n=parseInt(u[1],10)+1):(l=r.length,n=0);l--;)if(D=r[l]){for(B=D.length;n<B;n++)if(d=D[n],!g||!p["@"+d])if(h[v++]=d,b&&v===b)return Z(c,l+":"+n,h);n=0}}else!m||e&&"not"===e[0]||(h=a[0],k&&(k=parseInt(k[0],10)));if(b){g=h.length;k&&k>g&&(k=0);k=k||0;var J=k+b;J<g?h=h.slice(k,J):(J=0,k&&(h=h.slice(k)))}return Z(c,J,h)};var ya={encode:xa,h:!1},Aa=/[\W_]+/,Ba=[L("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",L("[\u00e8\u00e9\u00ea\u00eb]"),"e",L("[\u00ec\u00ed\u00ee\u00ef]"),"i",L("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",L("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",L("[\u00fd\u0177\u00ff]"),"y",L("\u00f1"),"n",L("[\u00e7c]"),"k",L("\u00df"),"s",L(" & ")," and "];function xa(a,b){return O(b||this,a.toLowerCase(),Ba,Aa)};var Ca=[L("ae"),"a",L("ai"),"ei",L("ay"),"ei",L("ey"),"ei",L("oe"),"o",L("ue"),"u",L("ie"),"i",L("sz"),"s",L("zs"),"s",L("sh"),"s",L("ck"),"k",L("cc"),"k",L("th"),"t",L("dt"),"t",L("ph"),"f",L("pf"),"f",L("ou"),"o",L("uo"),"u"];function Da(a,b,c){a&&(a=xa(a,b||this).join(" "),2<a.length&&(a=K(a,Ca)),c||(1<a.length&&(a=ba(a)),a&&(a=a.split(" "))));return a};var Fa={encode:Ea,h:!1},Ga=/[\W_]+/;function Ea(a){return O(this,a.toLowerCase(),!1,Ga)};var Ia={encode:Ha,h:!1},Ja=[L("(?!\\b)p"),"b",L("(?!\\b)z"),"s",L("(?!\\b)[cgq]"),"k",L("(?!\\b)n"),"m",L("(?!\\b)d"),"t",L("(?!\\b)[vw]"),"f",L("(?!\\b)[aeiouy]"),""];function Ha(a){a&&(a=Da(a,this,!0),1<a.length&&(a=K(a,Ja)),1<a.length&&(a=ba(a)),a&&(a=a.split(" ")));return a};var La={encode:Ka,h:!1,B:"strict"},Ma=/[^a-z]+/;function Ka(a){a=O(this,a.toLowerCase(),!1,!1);var b=[];if(a)for(var c=a.split(Ma),d=c.length,e=0,f=0;e<d;e++)if((a=c[e])&&2<a.length&&(!this.filter||!this.filter[a])){for(var g=a[0],h=Na(g),k=1;k<a.length;k++){var m=Na(a[k]);if(m!==h&&(g+=m,h=m,4===g.length))break}b[f++]=(g+"0000").substring(0,4)}return b}
function Na(a){switch(a){case "b":case "f":case "p":case "v":return 1;case "c":case "g":case "j":case "k":case "q":case "s":case "x":case "z":return 2;case "d":case "t":return 3;case "l":return 4;case "m":case "n":return 5;case "r":return 6}return""};var Pa={encode:Oa,h:!0},Qa=/[\x00-\x7F]+/g;function Oa(a){return O(this,a.replace(Qa," "),!1," ")};var Sa={encode:Ra,h:!1,B:"strict"},Ta=/[\x00-\x7F]+/g;function Ra(a){return O(this,a.replace(Ta,""),!1,"")};var Va={encode:Ua,h:!1},Wa=/[\x00-\x7F]+/g;function Ua(a){return O(this,a.replace(Wa," "),!1," ")};V["latin:advanced"]={encode:Da,h:!1};V["latin:balance"]=Fa;V["latin:default"]=ka;V["latin:extra"]=Ia;V["latin:simple"]=ya;V["latin:soundex"]=La;V["arabic:default"]=Pa;V["cjk:default"]=Sa;V["cyrillic:default"]=Va;(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return P}):"object"===typeof a.exports?a.module.exports=P:a.FlexSearch=P})();}).call(this);

View File

@@ -5,25 +5,25 @@
* Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch
*/
(function(){'use strict';Object.assign||(Object.assign=function(){for(var a=arguments,b=a.length,c=a[0],f=1,d,g,e;f<b;f++){d=a[f];g=Object.keys(d);e=g.length;for(var h=0,k;h<e;h++)k=g[h],c[k]=d[k]}return c});window.requestAnimationFrame||(window.requestAnimationFrame=window.setTimeout);window.cancelAnimationFrame||(window.cancelAnimationFrame=window.clearTimeout);window.Promise||(window.Promise=function(){function a(b){this.a=null;var c=this;b(function(f){c.a&&(c.a(f),c.a=null)})}a.prototype.then=function(b){this.a=b};return a}());function q(a){return"string"===typeof a}function x(a){return a.constructor===Array}function z(a){return"object"===typeof a}function A(a){for(var b=Array(a),c=0;c<a;c++)b[c]=B();return b}function B(){return Object.create(null)}function F(a,b){for(var c=0,f=b.length;c<f&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a}function H(a){return new RegExp(a,"g")}function J(a){for(var b="",c="",f=0,d=a.length,g=void 0;f<d;f++)(g=a[f])!==c&&(b+=c=g);return b}
function K(a,b,c,f){if(b&&(c&&b&&(b=F(b,c)),b&&a.l&&(b=F(b,a.l)),a.m&&1<b.length&&(b=F(b,a.m)),b&&(f||""===f)&&(b=b.split(f),a.filter))){a=a.filter;c=b.length;f=[];for(var d=0,g=0;d<c;d++){var e=b[d];e&&!a[e]&&(f[g++]=e)}b=f}return b};var N={memory:{encode:"extra",f:"strict",threshold:0,c:1},speed:{encode:"icase",f:"strict",threshold:1,c:3,depth:2},match:{encode:"extra",f:"full",threshold:1,c:3},score:{encode:"extra",f:"strict",threshold:1,c:9,depth:4},balance:{encode:"balance",f:"strict",threshold:0,c:3,depth:3},fast:{encode:"icase",f:"strict",threshold:8,c:9,depth:1}};var ba={encode:aa,b:!1},ca=/[\W_]+/;function aa(a){return K(this,a.toLowerCase(),!1,ca)};var da={encode:aa,tokenize:"strict",cache:!1,async:!1,worker:!1,rtl:!1,doc:!1,resolution:9,threshold:0,depth:0},ea=0,O={},P={};function Q(a){if(!(this instanceof Q))return new Q(a);var b=a&&a.id;this.id=b||0===b?b:ea++;this.init(a);fa(this,"index",function(){return Object.keys(this.g)});fa(this,"length",function(){return this.index.length})}Q.registerCharset=function(a,b){P[a]=b;return Q};Q.registerLanguage=function(a,b){P[a]=b;return Q};
Q.prototype.init=function(a){var b;if(q(a))a=N[a];else if(b=a.preset)a=Object.assign({},N[b],a);this.encode||(a?a=Object.assign({},da,a):a=da);if(a){this.async=a.async;var c=a.charset,f=a.lang;this.o=(q(c)?P[c].f:c&&c.f)||a.tokenize;this.b=q(b=a.rtl||c)?P[b].b:c&&c.b||b;this.threshold=a.threshold;this.c=(b=a.resolution)<=this.threshold?this.threshold+1:b;this.depth="strict"===this.o&&a.depth||0;this.encode=q(b=a.encode||c)?P[-1===b.indexOf(":")?b+":default":b].encode:c&&c.encode||b;this.l=(b=a.matcher||
f)&&ha(q(b)?O[b].l:f&&f.l||b,!1);if(c=b=a.filter||f){c=q(b)?O[b].filter:f&&f.filter||b;var d=B();for(var g=0,e=c.length;g<e;g++)d[c[g]]=1;c=d}this.filter=c;this.m=(b=a.stemmer||f)&&ha(q(b)?O[b].m:f&&f.m||b,!0);(this.a=d=(b=a.doc)&&ia(b))&&(a.doc=null)}this.j=A(this.c-(this.threshold||0));this.h=B();this.g={};if(d){this.i=B();b=d.index={};f=d.keys=[];c=d.field;g=d.store;x(d.id)||(d.id=d.id.split(":"));if(g){e=B();if(q(g))e[g]=1;else if(x(g))for(var h=0;h<g.length;h++)e[g[h]]=1;else z(g)&&(e=g);d.store=
e}if(c){if(!x(c))if(z(c)){var k=c;d.field=c=Object.keys(c)}else d.field=c=[c];for(d=0;d<c.length;d++)g=c[d],x(g)||(k&&(a=k[g]),f[d]=g,c[d]=g.split(":")),b[g]=new Q(a)}}return this};function ia(a){var b=B(),c;for(c in a)if(a.hasOwnProperty(c)){var f=a[c];b[c]=x(f)?f.slice(0):z(f)?ia(f):f}return b}
Q.prototype.add=function(a,b,c,f,d){if(this.a&&z(a))return S(this,"add",a,b);if(b&&q(b)&&(a||0===a)){if(this.g[a]&&!f)return this.update(a,b);if(!d){if(this.async){var g=this;d=new Promise(function(C){setTimeout(function(){g.add(a,b,null,f,!0);g=null;C()})});if(c)d.then(c);else return d;return this}if(c)return this.add(a,b,null,f,!0),c(),this}b=this.encode(b);if(!b.length)return this;c=b;d=B();d._ctx=B();for(var e=c.length,h=this.threshold,k=this.depth,p=this.c,n=this.j,m=this.b,l=0;l<e;l++){var r=
c[l];if(r){var v=r.length,w=(m?l+1:e-l)/e,t="";switch(this.o){case "reverse":case "both":for(var u=v;--u;)t=r[u]+t,T(n,d,t,a,m?1:(v-u)/v,w,h,p-1);t="";case "forward":for(u=0;u<v;u++)t+=r[u],T(n,d,t,a,m?(u+1)/v:1,w,h,p-1);break;case "full":for(u=0;u<v;u++)for(var M=(m?u+1:v-u)/v,I=v;I>u;I--)t=r.substring(u,I),T(n,d,t,a,M,w,h,p-1);break;default:if(v=T(n,d,r,a,1,w,h,p-1),k&&1<e&&v>=h)for(v=d._ctx[r]||(d._ctx[r]=B()),r=this.h[r]||(this.h[r]=A(p-(h||0))),w=l-k,t=l+k+1,0>w&&(w=0),t>e&&(t=e);w<t;w++)w!==
l&&T(r,v,c[w],a,0,p-(w<l?l-w:w-l),h,p-1)}}}this.g[a]=1}return this};
function S(a,b,c,f){if(x(c)){var d=c.length;if(d--){for(var g=0;g<d;g++)S(a,b,c[g]);return S(a,b,c[d],f)}}else{var e=a.a.index,h=a.a.keys,k=a.a.tag;g=a.a.store;var p;var n=a.a.id;d=c;for(var m=0;m<n.length;m++)d=d[n[m]];if("remove"===b&&(delete a.i[d],n=h.length,n--)){for(a=0;a<n;a++)e[h[a]].remove(d);return e[h[n]].remove(d,f)}if(k){for(p=0;p<k.length;p++){var l=k[p];var r=c;n=l.split(":");for(m=0;m<n.length;m++)r=r[n[m]];r="@"+r}p=a.s[l];p=p[r]||(p[r]=[])}n=a.a.field;k=0;for(l=n.length;k<l;k++){m=
n[k];r=c;for(var v=0;v<m.length;v++)r=r[m[v]];m=e[h[k]];"add"===b?m.add(d,r,k===l-1&&f):m.update(d,r,k===l-1&&f)}if(g){f=Object.keys(g);b=B();for(e=0;e<f.length;e++)if(h=f[e],g[h])for(h=h.split(":"),k=n=void 0,l=0;l<h.length;l++)r=h[l],n=(n||c)[r],k=(k||b)[r]=n;c=b}p&&(p[p.length]=c);a.i[d]=c}return a}Q.prototype.update=function(a,b,c){if(this.a&&z(a))return S(this,"update",a,b);this.g[a]&&q(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
Q.prototype.remove=function(a,b,c){if(this.a&&z(a))return S(this,"remove",a,b);if(this.g[a]){if(!c){if(this.async&&"function"!==typeof importScripts){var f=this;c=new Promise(function(d){setTimeout(function(){f.remove(a,null,!0);f=null;d()})});if(b)c.then(b);else return c;return this}if(b)return this.remove(a,null,!0),b(),this}for(b=0;b<this.c-(this.threshold||0);b++)U(this.j[b],a);this.depth&&U(this.h,a);delete this.g[a]}return this};var X;
function Y(a,b,c,f,d,g,e,h){c=ja(c,d,!1,b,e,h);if(g){g=c.page;var k=c.next;c=c.result}b=c;a=a.i;c=b.length;d=Array(c);for(e=0;e<c;e++)d[e]=a[b[e]];c=d;f&&("function"!==typeof f&&(X=f.split(":"),1<X.length?f=ka:(X=X[0],f=la)),c.sort(f));return c=Z(g,k,c)}
Q.prototype.search=function(a,b,c,f){if(z(b)){if(x(b))for(var d=0;d<b.length;d++)b[d].query=a;else b.query=a;a=b;b=1E3}else b&&"function"===typeof b?(c=b,b=1E3):b||0===b||(b=1E3);var g=[],e=a;if(z(a)&&!x(a)){c||(c=a.callback)&&(e.callback=null);var h=a.sort;var k=!1;b=a.limit;var p=a.threshold;var n=!1;a=a.query}if(this.a){p=this.a.index;var m=e.bool||"or";n=e.field;var l=m,r,v;if(n)x(n)||(n=[n]);else if(x(e)){var w=e;n=[];l=[];for(var t=0;t<e.length;t++){var u=e[t];a=u.bool||m;n[t]=u.field;l[t]=
a;"not"===a?r=!0:"and"===a&&(v=!0)}}else n=this.a.keys;m=n.length;for(t=0;t<m;t++)w&&(e=w[t]),k&&!q(e)&&(e.page=null,e.limit=0),g[t]=p[n[t]].search(e,0);if(c)return c(Y(this,l,g,h,b,k,v,r));if(this.async){var M=this;return new Promise(function(V){Promise.all(g).then(function(pa){V(Y(M,l,pa,h,b,k,v,r))})})}return Y(this,l,g,h,b,k,v,r)}p||(p=this.threshold||0);if(!f){if(this.async&&"function"!==typeof importScripts){var I=this;p=new Promise(function(V){setTimeout(function(){V(I.search(e,b,null,!0));
I=null})});if(c)p.then(c);else return p;return this}if(c)return c(this.search(e,b,null,!0)),this}if(!a||!q(a))return g;e=a;e=this.encode(e);if(!e.length)return g;c=e;w=c.length;a=!0;f=[];d=B();var C=0;1<w&&(this.depth?m=!0:c.sort(ma));if(!m||(t=this.h))for(var W=this.c;C<w;C++){var y=c[C];if(y){if(m){if(!u)if(t[y])u=y,d[y]=1;else if(!n)return g;if(n&&C===w-1&&!f.length)m=!1,y=u||y,d[y]=0;else if(!u)continue}if(!d[y]){var G=[],D=!1,L=0;if(u=m?t[u]:this.j)for(var R=void 0,E=0;E<W-p;E++)if(R=u[E]&&u[E][y])G[L++]=
R,D=!0;if(D)u=y,f[f.length]=1<L?G.concat.apply([],G):G[0];else{a=!1;break}d[y]=1}}}else a=!1;a&&(g=ja(f,b,k));return g};Q.prototype.clear=function(){return this.destroy().init()};Q.prototype.destroy=function(){this.j=this.h=this.g=null;if(this.a){for(var a=this.a.keys,b=0;b<a.length;b++)this.a.index[a[b]].destroy();this.a=this.i=null}return this};function fa(a,b,c){Object.defineProperty(a,b,{get:c})}
function T(a,b,c,f,d,g,e,h){if(b[c])return b[c];d=d?(h-(e||h/1.5))*g+(e||h/1.5)*d:g;b[c]=d;d>=e&&(a=a[h-(d+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=f);return d}function U(a,b){if(a)for(var c=Object.keys(a),f=0,d=c.length;f<d;f++){var g=c[f],e=a[g];if(e)for(var h=0,k=e.length;h<k;h++)if(e[h]===b){1===k?delete a[g]:e.splice(h,1);break}else z(e[h])&&U(e[h],b)}}
function ha(a,b){for(var c=Object.keys(a),f=c.length,d=[],g="",e=0,h=0,k;h<f;h++){var p=c[h];(k=a[p])?(d[e++]=H(b?"(?!\\b)"+p+"(\\b|_)":p),d[e++]=k):g+=(g?"|":"")+p}g&&(d[e++]=H(b?"(?!\\b)("+g+")(\\b|_)":"("+g+")"),d[e]="");return d}function ma(a,b){return b.length-a.length}function la(a,b){return a[X]-b[X]}function ka(a,b){for(var c=X.length,f=0;f<c;f++)a=a[X[f]],b=b[X[f]];return a-b}function Z(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c}
function ja(a,b,c,f,d,g){var e=[];if(!0===c){c="0";var h=""}else h=c&&c.split(":");var k=a.length;if(1<k){var p=B(),n,m=0,l,r=!0,v=0,w;h&&(2===h.length?h=!1:h=w=parseInt(h[0],10));if(g){for(n=B();m<k;m++)if("not"===f[m]){var t=a[m];var u=t.length;for(l=0;l<u;l++)n["@"+t[l]]=1}else var M=m+1;if("undefined"===typeof M)return Z(c,E,e);m=0}else var I=q(f)&&f;for(var C;m<k;m++){var W=m===(M||k)-1;if(!I||!m)if((l=I||f&&f[m])&&"and"!==l)if("or"===l)C=!1;else continue;else C=d=!0;t=a[m];if(u=t.length){if(r)if(D){r=
D.length;for(l=0;l<r;l++){var y=D[l];var G="@"+y;g&&n[G]||(p[G]=1,d||(e[v++]=y))}var D=null;r=!1}else{D=t;continue}G=!1;for(l=0;l<u;l++){y=t[l];var L="@"+y,R=d?p[L]||0:m;if(!(!R||g&&n[L]||!d&&p[L])&&R===m){if(W){if(!w||--w<v)if(e[v++]=y,b&&v===b)return Z(c,v+(h||0),e)}else p[L]=m+1;G=!0}}if(C&&!G)break}else if(C)return Z(c,E,t)}if(D)if(a=D.length,g)for(l=h?parseInt(h,10):0;l<a;l++)g=D[l],n["@"+g]||(e[v++]=g);else e=D}else!k||f&&"not"===f[0]||(e=a[0],h&&(h=parseInt(h[0],10)));if(b){n=e.length;h&&h>
n&&(h=0);h=h||0;var E=h+b;E<n?e=e.slice(h,E):(E=0,h&&(e=e.slice(h)))}return Z(c,E,e)};var oa={encode:na,b:!1},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 na(a,b){b||(b=this);return K(b,a.toLowerCase(),ra,qa)};var sa=[H("ae"),"a",H("ai"),"ei",H("ay"),"ei",H("ey"),"ei",H("oe"),"o",H("ue"),"u",H("ie"),"i",H("sz"),"s",H("zs"),"s",H("sh"),"s",H("ck"),"k",H("cc"),"k",H("th"),"t",H("dt"),"t",H("ph"),"f",H("pf"),"f",H("ou"),"o",H("uo"),"u"];function ta(a,b){a&&(a=na(a,this).join(" "),2<a.length&&(a=F(a,sa)),b||(1<a.length&&(a=J(a)),a&&(a=a.split(" "))));return a};var va={encode:ua,b:!1},wa=/[\W_]+/;function ua(a){return K(this,a.toLowerCase(),!1,wa)};var ya={encode:xa,b:!1},za=[H("(?!\\b)p"),"b",H("(?!\\b)z"),"s",H("(?!\\b)[cgq]"),"k",H("(?!\\b)n"),"m",H("(?!\\b)d"),"t",H("(?!\\b)[vw]"),"f",H("(?!\\b)[aeiouy]"),""];function xa(a){a&&(a=ta(a,!0),1<a.length&&(a=F(a,za)),1<a.length&&(a=J(a)),a&&(a=a.split(" ")));return a};var Ba={encode:Aa,b:!1,f:"strict"},Ca=/[^a-z]+/;function Aa(a){a=K(this,a.toLowerCase(),!1,!1);var b=[];if(a)for(var c=a.split(Ca),f=c.length,d=0,g=0;d<f;d++)if((a=c[d])&&2<a.length&&(!this.filter||!this.filter[a])){for(var e=a[0],h=Da(e),k=1;k<a.length;k++){var p=Da(a[k]);if(p!==h&&(e+=p,h=p,4===e.length))break}b[g++]=(e+"0000").substring(0,4)}return b}
function Da(a){switch(a){case "b":case "f":case "p":case "v":return 1;case "c":case "g":case "j":case "k":case "q":case "s":case "x":case "z":return 2;case "d":case "t":return 3;case "l":return 4;case "m":case "n":return 5;case "r":return 6}return""};var Fa={encode:Ea,b:!0},Ga=/[\W_]+/;function Ea(a){return K(this,a,!1,Ga)};var Ia={encode:Ha,b:!1,f:"strict"},Ja=/[\x00-\x7F]/g;function Ha(a){return K(this,a.replace(Ja,""),!1,"")};var La={encode:Ka,b:!1},Ma=/[\W_]+/;function Ka(a){return K(this,a,!1,Ma)};P["latin:advanced"]={encode:ta,b:!1};P["latin:balance"]=va;P["latin:default"]=ba;P["latin:extra"]=ya;P["latin:simple"]=oa;P["latin:soundex"]=Ba;P["arabic:default"]=Fa;P["cjk:default"]=Ia;P["cyrillic:default"]=La;(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return Q}):"object"===typeof a.exports?a.module.exports=Q:a.FlexSearch=Q})();}).call(this);
(function(){'use strict';Object.assign||(Object.assign=function(){for(var a=arguments,b=a.length,c=a[0],d=1,e,g,f;d<b;d++){e=a[d];g=Object.keys(e);f=g.length;for(var h=0,k;h<f;h++)k=g[h],c[k]=e[k]}return c});window.requestAnimationFrame||(window.requestAnimationFrame=window.setTimeout);window.cancelAnimationFrame||(window.cancelAnimationFrame=window.clearTimeout);window.Promise||(window.Promise=function(){function a(b){this.a=null;var c=this;b(function(d){c.a&&(c.a(d),c.a=null)})}a.prototype.then=function(b){this.a=b};return a}());function q(a){return"string"===typeof a}function y(a){return a.constructor===Array}function A(a){return"object"===typeof a}function C(a){for(var b=Array(a),c=0;c<a;c++)b[c]=F();return b}function F(){return Object.create(null)}function H(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 I(a){return new RegExp(a,"g")}function J(a){for(var b="",c="",d=0,e=a.length,g=void 0;d<e;d++)(g=a[d])!==c&&(b+=c=g);return b}
function L(a,b,c,d){if(b&&(c&&b&&(b=H(b,c)),b&&a.j&&(b=H(b,a.j)),a.l&&1<b.length&&(b=H(b,a.l)),b&&(d||""===d)&&(b=b.split(d),a.filter))){a=a.filter;c=b.length;d=[];for(var e=0,g=0;e<c;e++){var f=b[e];f&&!a[f]&&(d[g++]=f)}b=d}return b};var N={memory:{charset:"latin:extra",threshold:0,b:1},speed:{threshold:1,b:3,depth:2},match:{charset:"latin:extra",m:"full",threshold:1,b:3},score:{charset:"latin:extra",threshold:1,b:9,depth:4},balance:{charset:"latin:balance",threshold:0,b:3,depth:3},fast:{threshold:8,b:9,depth:1}};var aa={encode:P,c:!1},ba=/[\W_]+/;function P(a){return L(this,a.toLowerCase(),!1,ba)};var ca=0,da={},Q={};function S(a){if(!(this instanceof S))return new S(a);var b=a&&a.id;this.id=b||0===b?b:ca++;this.init(a);ea(this,"index",function(){return this.a?Object.keys(this.a.index[this.a.keys[0]].f):Object.keys(this.f)});ea(this,"length",function(){return this.index.length})}S.registerCharset=function(a,b){Q[a]=b;return S};S.registerLanguage=function(a,b){da[a]=b;return S};
S.prototype.init=function(a){var b;if(a)if(q(a))a=N[a];else if(b=a.preset)a=Object.assign({},N[b],a);a||(a={});this.async=a.async;var c=a.charset,d=a.lang;q(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=Q[c]);q(d)&&(d=da[d]);this.o=b=c&&c.m||a.tokenize||"strict";this.depth="strict"===b&&a.depth||0;this.c=c&&c.c||a.rtl||!1;this.b=a.resolution||9;this.threshold=b=a.threshold||0;this.b<=b&&(this.b=b+1);this.encode=a.encode||c&&c.encode||P;this.j=(b=a.matcher||d&&d.j)&&fa(b,!1);this.l=(b=a.stemmer||d&&
d.l)&&fa(b,!0);if(c=b=a.filter||d&&d.filter){c=b;d=F();var e=0;for(var g=c.length;e<g;e++)d[c[e]]=1;c=d}this.filter=c;(this.a=e=(b=a.doc)&&ha(b))&&(a.doc=null);this.i=C(this.b-this.threshold);this.g=F();this.f=F();if(e){this.h=F();b=e.index={};c=e.keys=[];d=e.field;g=e.store;y(e.id)||(e.id=e.id.split(":"));if(g){var f=F();if(q(g))f[g]=1;else if(y(g))for(var h=0;h<g.length;h++)f[g[h]]=1;else A(g)&&(f=g);e.store=f}if(d){if(!y(d))if(A(d)){var k=d;e.field=d=Object.keys(d)}else e.field=d=[d];for(e=0;e<
d.length;e++)g=d[e],y(g)||(k&&(a=k[g]),c[e]=g,d[e]=g.split(":")),b[g]=new S(a)}}return this};function ha(a){var b=F(),c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];b[c]=y(d)?d.slice(0):A(d)?ha(d):d}return b}
S.prototype.add=function(a,b,c,d,e){if(this.a&&A(a))return T(this,"add",a,b);if(b&&q(b)&&(a||0===a)){if(this.f[a]&&!d)return this.update(a,b);if(!e){if(this.async){var g=this,f=new Promise(function(O){setTimeout(function(){g.add(a,b,null,d,!0);g=null;O()})});if(c)f.then(c);else return f;return this}if(c)return this.add(a,b,null,d,!0),c(),this}b=this.encode(b);if(!b.length)return this;c=b;e=F();e._ctx=F();for(var h=c.length,k=this.threshold,p=this.depth,m=this.b,l=this.i,n=this.c,t=0;t<h;t++){var u=
c[t];if(u){f=1;var w=u.length,r=(n?t+1:h-t)/h,v="";switch(this.o){case "reverse":case "both":for(var x=w;--x;)v=u[x]+v,U(l,e,v,a,n?1:(w-x)/w,r,k,m-1);v="";case "forward":for(x=0;x<w;x++)v+=u[x],U(l,e,v,a,n?(x+1)/w:1,r,k,m-1);break;case "full":for(x=0;x<w;x++)for(var K=(n?x+1:w-x)/w,B=w;B>x;B--)v=u.substring(x,B),U(l,e,v,a,K,r,k,m-1);break;default:if(w=U(l,e,u,a,1,r,k,m-1),p&&1<h&&w>=k)for(w=e._ctx[u]||(e._ctx[u]=F()),u=this.g[u]||(this.g[u]=C(m-(k||0))),r=t-p,v=t+p+1,0>r&&(r=0),v>h&&(v=h);r<v;r++)r!==
t&&U(u,w,c[r],a,0,m-(r<t?t-r:r-t),k,m-1)}}}f&&(this.f[a]=1)}return this};
function T(a,b,c,d){if(y(c)){var e=c.length;if(e)for(var g=0;g<e;g++)T(a,b,c[g],g===e-1&&d)}else{var f=a.a.index,h=a.a.keys,k=a.a.tag;g=a.a.store;var p;var m=a.a.id;e=c;for(var l=0;l<m.length;l++)e=e[m[l]];if("remove"===b){if(delete a.h[e],c=h.length)for(g=0;g<c;g++)f[h[g]].remove(e,g===c-1&&d)}else{if(k){for(p=0;p<k.length;p++){var n=k[p];var t=c;m=n.split(":");for(l=0;l<m.length;l++)t=t[m[l]];t="@"+t}p=a.s[n];p=p[t]||(p[t]=[])}m=a.a.field;k=0;for(n=m.length;k<n;k++){l=m[k];t=c;for(var u=0;u<l.length;u++)t=
t[l[u]];l=f[h[k]];"add"===b?l.add(e,t,k===n-1&&d):l.update(e,t,k===n-1&&d)}if(g){d=Object.keys(g);b=F();for(f=0;f<d.length;f++)if(h=d[f],g[h])for(h=h.split(":"),k=m=void 0,n=0;n<h.length;n++)t=h[n],m=(m||c)[t],k=(k||b)[t]=m;c=b}p&&(p[p.length]=c);a.h[e]=c}}return a}S.prototype.update=function(a,b,c){if(this.a&&A(a))return T(this,"update",a,b);this.f[a]&&q(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
S.prototype.remove=function(a,b,c){if(this.a&&A(a))return T(this,"remove",a,b);if(this.f[a]){if(!c){if(this.async&&"function"!==typeof importScripts){var d=this;c=new Promise(function(e){setTimeout(function(){d.remove(a,null,!0);d=null;e()})});if(b)c.then(b);else return c;return this}if(b)return this.remove(a,null,!0),b(),this}for(b=0;b<this.b-(this.threshold||0);b++)W(this.i[b],a);this.depth&&W(this.g,a);delete this.f[a]}return this};var X;
function Y(a,b,c,d,e,g,f,h){c=ia(c,e,!1,b,f,h);if(g){g=c.page;var k=c.next;c=c.result}b=c;a=a.h;c=b.length;e=Array(c);for(f=0;f<c;f++)e[f]=a[b[f]];c=e;d&&("function"!==typeof d&&(X=d.split(":"),d=1<X.length?ja:ka),c.sort(d));return c=Z(g,k,c)}
S.prototype.search=function(a,b,c,d){if(A(b)){if(y(b))for(var e=0;e<b.length;e++)b[e].query=a;else b.query=a;a=b;b=1E3}else b&&"function"===typeof b?(c=b,b=1E3):b||0===b||(b=1E3);var g=[],f=a;if(A(a)&&!y(a)){c||(c=a.callback)&&(f.callback=null);var h=a.sort;var k=!1;b=a.limit;var p=a.threshold;var m=!1;a=a.query}if(this.a){p=this.a.index;var l=f.bool||"or";m=f.field;var n=l,t,u;if(m)y(m)||(m=[m]);else if(y(f)){var w=f;m=[];n=[];for(var r=0;r<f.length;r++){var v=f[r];a=v.bool||l;m[r]=v.field;n[r]=
a;"not"===a?t=!0:"and"===a&&(u=!0)}}else m=this.a.keys;l=m.length;for(r=0;r<l;r++)w&&(f=w[r]),k&&!q(f)&&(f.page=null,f.limit=0),g[r]=p[m[r]].search(f,0);if(c)return c(Y(this,n,g,h,b,k,u,t));if(this.async){var x=this;return new Promise(function(V){Promise.all(g).then(function(oa){V(Y(x,n,oa,h,b,k,u,t))})})}return Y(this,n,g,h,b,k,u,t)}p||(p=this.threshold||0);if(!d){if(this.async&&"function"!==typeof importScripts){var K=this;p=new Promise(function(V){setTimeout(function(){V(K.search(f,b,null,!0));
K=null})});if(c)p.then(c);else return p;return this}if(c)return c(this.search(f,b,null,!0)),this}if(!a||!q(a))return g;f=a;f=this.encode(f);if(!f.length)return g;c=f;w=c.length;a=!0;d=[];e=F();var B=0;1<w&&(this.depth?l=!0:c.sort(la));if(!l||(r=this.g))for(var O=this.b;B<w;B++){var z=c[B];if(z){if(l){if(!v)if(r[z])v=z,e[z]=1;else if(!m)return g;if(m&&B===w-1&&!d.length)l=!1,z=v||z,e[z]=0;else if(!v)continue}if(!e[z]){var G=[],D=!1,M=0;if(v=l?r[v]:this.i)for(var R=void 0,E=0;E<O-p;E++)if(R=v[E]&&v[E][z])G[M++]=
R,D=!0;if(D)v=z,d[d.length]=1<M?G.concat.apply([],G):G[0];else{a=!1;break}e[z]=1}}}else a=!1;a&&(g=ia(d,b,k));return g};S.prototype.clear=function(){return this.destroy().init()};S.prototype.destroy=function(){this.i=this.g=this.f=null;if(this.a){for(var a=this.a.keys,b=0;b<a.length;b++)this.a.index[a[b]].destroy();this.a=this.h=null}return this};function ea(a,b,c){Object.defineProperty(a,b,{get:c})}
function U(a,b,c,d,e,g,f,h){if(b[c])return b[c];e=e?(h-(f||h/1.5))*g+(f||h/1.5)*e:g;b[c]=e;e>=f&&(a=a[h-(e+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=d);return e}function W(a,b){if(a)for(var c=Object.keys(a),d=0,e=c.length;d<e;d++){var g=c[d],f=a[g];if(f)for(var h=0,k=f.length;h<k;h++)if(f[h]===b){1===k?delete a[g]:f.splice(h,1);break}else A(f[h])&&W(f[h],b)}}
function fa(a,b){for(var c=Object.keys(a),d=c.length,e=[],g="",f=0,h=0,k;h<d;h++){var p=c[h];(k=a[p])?(e[f++]=I(b?"(?!\\b)"+p+"(\\b|_)":p),e[f++]=k):g+=(g?"|":"")+p}g&&(e[f++]=I(b?"(?!\\b)("+g+")(\\b|_)":"("+g+")"),e[f]="");return e}function la(a,b){return b.length-a.length}function ka(a,b){a=a[X];b=b[X];return a<b?-1:a>b?1:0}function ja(a,b){for(var c=X.length,d=0;d<c;d++)a=a[X[d]],b=b[X[d]];return a<b?-1:a>b?1:0}function Z(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c}
function ia(a,b,c,d,e,g){var f=[];if(!0===c){c="0";var h=""}else h=c&&c.split(":");var k=a.length;if(1<k){var p=F(),m,l=0,n,t=!0,u=0,w;h&&(2===h.length?h=!1:h=w=parseInt(h[0],10));if(g){for(m=F();l<k;l++)if("not"===d[l]){var r=a[l];var v=r.length;for(n=0;n<v;n++)m["@"+r[n]]=1}else var x=l+1;if("undefined"===typeof x)return Z(c,E,f);l=0}else var K=q(d)&&d;for(var B;l<k;l++){var O=l===(x||k)-1;if(!K||!l)if((n=K||d&&d[l])&&"and"!==n)if("or"===n)B=!1;else continue;else B=e=!0;r=a[l];if(v=r.length){if(t)if(D){t=
D.length;for(n=0;n<t;n++){var z=D[n];var G="@"+z;g&&m[G]||(p[G]=1,e||(f[u++]=z))}var D=null;t=!1}else{D=r;continue}G=!1;for(n=0;n<v;n++){z=r[n];var M="@"+z,R=e?p[M]||0:l;if(!(!R||g&&m[M]||!e&&p[M])&&R===l){if(O){if(!w||--w<u)if(f[u++]=z,b&&u===b)return Z(c,u+(h||0),f)}else p[M]=l+1;G=!0}}if(B&&!G)break}else if(B)return Z(c,E,r)}if(D)if(a=D.length,g)for(n=h?parseInt(h,10):0;n<a;n++)g=D[n],m["@"+g]||(f[u++]=g);else f=D}else!k||d&&"not"===d[0]||(f=a[0],h&&(h=parseInt(h[0],10)));if(b){m=f.length;h&&h>
m&&(h=0);h=h||0;var E=h+b;E<m?f=f.slice(h,E):(E=0,h&&(f=f.slice(h)))}return Z(c,E,f)};var na={encode:ma,c:!1},pa=/[\W_]+/,qa=[I("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",I("[\u00e8\u00e9\u00ea\u00eb]"),"e",I("[\u00ec\u00ed\u00ee\u00ef]"),"i",I("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",I("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",I("[\u00fd\u0177\u00ff]"),"y",I("\u00f1"),"n",I("[\u00e7c]"),"k",I("\u00df"),"s",I(" & ")," and "];function ma(a,b){return L(b||this,a.toLowerCase(),qa,pa)};var ra=[I("ae"),"a",I("ai"),"ei",I("ay"),"ei",I("ey"),"ei",I("oe"),"o",I("ue"),"u",I("ie"),"i",I("sz"),"s",I("zs"),"s",I("sh"),"s",I("ck"),"k",I("cc"),"k",I("th"),"t",I("dt"),"t",I("ph"),"f",I("pf"),"f",I("ou"),"o",I("uo"),"u"];function sa(a,b,c){a&&(a=ma(a,b||this).join(" "),2<a.length&&(a=H(a,ra)),c||(1<a.length&&(a=J(a)),a&&(a=a.split(" "))));return a};var ua={encode:ta,c:!1},va=/[\W_]+/;function ta(a){return L(this,a.toLowerCase(),!1,va)};var xa={encode:wa,c:!1},ya=[I("(?!\\b)p"),"b",I("(?!\\b)z"),"s",I("(?!\\b)[cgq]"),"k",I("(?!\\b)n"),"m",I("(?!\\b)d"),"t",I("(?!\\b)[vw]"),"f",I("(?!\\b)[aeiouy]"),""];function wa(a){a&&(a=sa(a,this,!0),1<a.length&&(a=H(a,ya)),1<a.length&&(a=J(a)),a&&(a=a.split(" ")));return a};var Aa={encode:za,c:!1,m:"strict"},Ba=/[^a-z]+/;function za(a){a=L(this,a.toLowerCase(),!1,!1);var b=[];if(a)for(var c=a.split(Ba),d=c.length,e=0,g=0;e<d;e++)if((a=c[e])&&2<a.length&&(!this.filter||!this.filter[a])){for(var f=a[0],h=Ca(f),k=1;k<a.length;k++){var p=Ca(a[k]);if(p!==h&&(f+=p,h=p,4===f.length))break}b[g++]=(f+"0000").substring(0,4)}return b}
function Ca(a){switch(a){case "b":case "f":case "p":case "v":return 1;case "c":case "g":case "j":case "k":case "q":case "s":case "x":case "z":return 2;case "d":case "t":return 3;case "l":return 4;case "m":case "n":return 5;case "r":return 6}return""};var Ea={encode:Da,c:!0},Fa=/[\x00-\x7F]+/g;function Da(a){return L(this,a.replace(Fa," "),!1," ")};var Ha={encode:Ga,c:!1,m:"strict"},Ia=/[\x00-\x7F]+/g;function Ga(a){return L(this,a.replace(Ia,""),!1,"")};var Ka={encode:Ja,c:!1},La=/[\x00-\x7F]+/g;function Ja(a){return L(this,a.replace(La," "),!1," ")};Q["latin:advanced"]={encode:sa,c:!1};Q["latin:balance"]=ua;Q["latin:default"]=aa;Q["latin:extra"]=xa;Q["latin:simple"]=na;Q["latin:soundex"]=Aa;Q["arabic:default"]=Ea;Q["cjk:default"]=Ha;Q["cyrillic:default"]=Ka;(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return S}):"object"===typeof a.exports?a.module.exports=S:a.FlexSearch=S})();}).call(this);

View File

@@ -479,8 +479,7 @@ if (SUPPORT_WORKER) {
var module$src$worker = {};
module$src$worker.addWorker = addWorker$$module$src$worker;
module$src$worker.default = init$$module$src$worker;
var $jscompDefaultExport$$module$src$presets = {"memory":{encode:SUPPORT_ENCODER ? "extra" : "icase", tokenize:"strict", threshold:0, resolution:1}, "speed":{encode:"icase", tokenize:"strict", threshold:1, resolution:3, depth:2}, "match":{encode:SUPPORT_ENCODER ? "extra" : "icase", tokenize:"full", threshold:1, resolution:3}, "score":{encode:SUPPORT_ENCODER ? "extra" : "icase", tokenize:"strict", threshold:1, resolution:9, depth:4}, "balance":{encode:SUPPORT_ENCODER ? "balance" : "icase", tokenize:"strict",
threshold:0, resolution:3, depth:3}, "fast":{encode:"icase", tokenize:"strict", threshold:8, resolution:9, depth:1}};
var $jscompDefaultExport$$module$src$presets = {"memory":{charset:"latin:extra", threshold:0, resolution:1}, "speed":{threshold:1, resolution:3, depth:2}, "match":{charset:"latin:extra", tokenize:"full", threshold:1, resolution:3}, "score":{charset:"latin:extra", threshold:1, resolution:9, depth:4}, "balance":{charset:"latin:balance", threshold:0, resolution:3, depth:3}, "fast":{threshold:8, resolution:9, depth:1}};
var module$src$presets = {};
module$src$presets.default = $jscompDefaultExport$$module$src$presets;
var rtl$$module$src$lang$latin$default = false;
@@ -495,7 +494,6 @@ module$src$lang$latin$default.default = $jscompDefaultExport$$module$src$lang$la
module$src$lang$latin$default.encode = encode$$module$src$lang$latin$default;
module$src$lang$latin$default.rtl = rtl$$module$src$lang$latin$default;
module$src$lang$latin$default.tokenize = tokenize$$module$src$lang$latin$default;
var defaults$$module$src$flexsearch = {"encode":encode$$module$src$lang$latin$default, "tokenize":"strict", "cache":false, "async":false, "worker":false, "rtl":false, "doc":false, "resolution":9, "threshold":0, "depth":0};
var id_counter$$module$src$flexsearch = 0;
var global_lang$$module$src$flexsearch = {};
var global_charset$$module$src$flexsearch = {};
@@ -507,10 +505,13 @@ function FlexSearch$$module$src$flexsearch(options) {
this.id = id || id === 0 ? id : id_counter$$module$src$flexsearch++;
this.init(options);
register_property$$module$src$flexsearch(this, "index", function() {
if (SUPPORT_DOCUMENT && this.doc) {
return get_keys$$module$src$common(this.doc.index[this.doc.keys[0]]._ids);
}
return get_keys$$module$src$common(this._ids);
});
register_property$$module$src$flexsearch(this, "length", function() {
return this.index.length;
return this["index"].length;
});
}
FlexSearch$$module$src$flexsearch["registerCharset"] = function(name, charset) {
@@ -518,13 +519,13 @@ FlexSearch$$module$src$flexsearch["registerCharset"] = function(name, charset) {
return FlexSearch$$module$src$flexsearch;
};
FlexSearch$$module$src$flexsearch["registerLanguage"] = function(name, lang) {
global_charset$$module$src$flexsearch[name] = lang;
global_lang$$module$src$flexsearch[name] = lang;
return FlexSearch$$module$src$flexsearch;
};
FlexSearch$$module$src$flexsearch.prototype.init = function(options) {
var custom;
var doc;
if (SUPPORT_PRESET) {
if (SUPPORT_PRESET && options) {
if (is_string$$module$src$common(options)) {
if (DEBUG && !$jscompDefaultExport$$module$src$presets[options]) {
console.warn("Preset not found: " + options);
@@ -539,56 +540,60 @@ FlexSearch$$module$src$flexsearch.prototype.init = function(options) {
}
}
}
if (!this.encode) {
if (options) {
options = Object.assign({}, defaults$$module$src$flexsearch, options);
options || (options = {});
if (SUPPORT_WORKER && (custom = options["worker"])) {
if (typeof init$$module$src$worker === "undefined") {
options["worker"] = false;
this._worker = null;
} else {
options = defaults$$module$src$flexsearch;
}
}
if (options) {
if (SUPPORT_WORKER && (custom = options["worker"])) {
if (typeof init$$module$src$worker === "undefined") {
options["worker"] = false;
this._worker = null;
} else {
var threads = parseInt(custom, 10) || 4;
this._current_task = -1;
this._task_completed = 0;
this._task_result = [];
this._current_callback = null;
this._worker = new Array(threads);
for (var i = 0; i < threads; i++) {
this._worker[i] = addWorker$$module$src$worker(this.id, i, options, this.worker_handler);
}
}
this.worker = custom;
}
if (SUPPORT_ASYNC) {
this.async = options["async"];
this.timer = 0;
}
var charset = options["charset"];
var lang = options["lang"];
this.tokenizer = (is_string$$module$src$common(charset) ? global_charset$$module$src$flexsearch[charset].tokenize : charset && charset.tokenize) || options["tokenize"];
this.rtl = is_string$$module$src$common(custom = options["rtl"] || charset) ? global_charset$$module$src$flexsearch[custom].rtl : charset && charset.rtl || custom;
this.threshold = options["threshold"];
this.resolution = (custom = options["resolution"]) <= this.threshold ? this.threshold + 1 : custom;
this.depth = this.tokenizer === "strict" && options["depth"] || 0;
this.encode = is_string$$module$src$common(custom = options["encode"] || charset) ? global_charset$$module$src$flexsearch[custom.indexOf(":") === -1 ? custom + ":default" : custom].encode : charset && charset.encode || custom;
this.matcher = (custom = options["matcher"] || lang) && init_stemmer_or_matcher$$module$src$flexsearch(is_string$$module$src$common(custom) ? global_lang$$module$src$flexsearch[custom].matcher : lang && lang.matcher || custom, false);
this.filter = (custom = options["filter"] || lang) && init_filter$$module$src$flexsearch(is_string$$module$src$common(custom) ? global_lang$$module$src$flexsearch[custom].filter : lang && lang.filter || custom);
this.stemmer = (custom = options["stemmer"] || lang) && init_stemmer_or_matcher$$module$src$flexsearch(is_string$$module$src$common(custom) ? global_lang$$module$src$flexsearch[custom].stemmer : lang && lang.stemmer || custom, true);
if (SUPPORT_DOCUMENT) {
this.doc = doc = (custom = options["doc"]) && clone_object$$module$src$flexsearch(custom);
if (doc) {
options["doc"] = null;
var threads = parseInt(custom, 10) || 4;
this._current_task = -1;
this._task_completed = 0;
this._task_result = [];
this._current_callback = null;
this._worker = new Array(threads);
for (var i = 0; i < threads; i++) {
this._worker[i] = addWorker$$module$src$worker(this.id, i, options, this.worker_handler);
}
}
this.worker = custom;
}
this._map = create_object_array$$module$src$common(this.resolution - (this.threshold || 0));
if (SUPPORT_ASYNC) {
this.async = options["async"];
this.timer = 0;
}
var charset = options["charset"];
var lang = options["lang"];
if (is_string$$module$src$common(charset)) {
if (charset.indexOf(":") === -1) {
charset += ":default";
}
charset = global_charset$$module$src$flexsearch[charset];
}
if (is_string$$module$src$common(lang)) {
lang = global_lang$$module$src$flexsearch[lang];
}
this.tokenizer = custom = charset && charset.tokenize || options["tokenize"] || "strict";
this.depth = custom === "strict" && options["depth"] || 0;
this.rtl = charset && charset.rtl || options["rtl"] || false;
this.resolution = options["resolution"] || 9;
this.threshold = custom = options["threshold"] || 0;
if (this.resolution <= custom) {
this.resolution = custom + 1;
}
this.encode = options["encode"] || charset && charset.encode || encode$$module$src$lang$latin$default;
this.matcher = (custom = options["matcher"] || lang && lang.matcher) && init_stemmer_or_matcher$$module$src$flexsearch(custom, false);
this.stemmer = (custom = options["stemmer"] || lang && lang.stemmer) && init_stemmer_or_matcher$$module$src$flexsearch(custom, true);
this.filter = (custom = options["filter"] || lang && lang.filter) && init_filter$$module$src$flexsearch(custom);
if (SUPPORT_DOCUMENT) {
this.doc = doc = (custom = options["doc"]) && clone_object$$module$src$flexsearch(custom);
if (doc) {
options["doc"] = null;
}
}
this._map = create_object_array$$module$src$common(this.resolution - this.threshold);
this._ctx = create_object$$module$src$common();
this._ids = {};
this._ids = create_object$$module$src$common();
if (SUPPORT_DOCUMENT && doc) {
this._doc = create_object$$module$src$common();
var index = doc.index = {};
@@ -666,9 +671,9 @@ FlexSearch$$module$src$flexsearch.prototype.init = function(options) {
}
}
}
if (SUPPORT_CACHE && (custom = options["cache"])) {
if (SUPPORT_CACHE) {
this._cache_status = true;
this._cache = new CacheClass$$module$src$cache(custom);
this._cache = (custom = options["cache"]) && new CacheClass$$module$src$cache(custom);
}
return this;
};
@@ -695,8 +700,7 @@ FlexSearch$$module$src$flexsearch.prototype.add = function(id, content, callback
return this.handle_docs("add", id, content);
}
if (content && is_string$$module$src$common(content) && (id || id === 0)) {
var index = id;
if (this._ids[index] && !_skip_update) {
if (this._ids[id] && !_skip_update) {
return this.update(id, content);
}
if (!_recall) {
@@ -735,9 +739,11 @@ FlexSearch$$module$src$flexsearch.prototype.add = function(id, content, callback
var resolution = this.resolution;
var map = this._map;
var rtl = this.rtl;
var has_content;
for (var i = 0; i < word_length; i++) {
var value = words[i];
if (value) {
has_content = 1;
var length = value.length;
var context_score = (rtl ? i + 1 : word_length - i) / word_length;
var token = "";
@@ -787,7 +793,9 @@ FlexSearch$$module$src$flexsearch.prototype.add = function(id, content, callback
}
}
}
this._ids[index] = 1;
if (has_content) {
this._ids[id] = 1;
}
if (SUPPORT_CACHE) {
this._cache_status = false;
}
@@ -798,11 +806,10 @@ if (SUPPORT_DOCUMENT) {
FlexSearch$$module$src$flexsearch.prototype.handle_docs = function(job, doc, callback) {
if (is_array$$module$src$common(doc)) {
var len = doc.length;
if (len--) {
if (len) {
for (var i = 0; i < len; i++) {
this.handle_docs(job, doc[i]);
this.handle_docs(job, doc[i], i === len - 1 && callback);
}
return this.handle_docs(job, doc[len], callback);
}
} else {
var index = this.doc.index;
@@ -818,65 +825,65 @@ if (SUPPORT_DOCUMENT) {
}
if (job === "remove") {
delete this._doc[id];
var length = keys.length;
if (length--) {
for (var z = 0; z < length; z++) {
index[keys[z]].remove(id);
var len$17 = keys.length;
if (len$17) {
for (var i$18 = 0; i$18 < len$17; i$18++) {
index[keys[i$18]].remove(id, i$18 === len$17 - 1 && callback);
}
return index[keys[length]].remove(id, callback);
}
}
if (tags) {
var tag_key;
var tag_value;
for (var i$17 = 0; i$17 < tags.length; i$17++) {
tag_key = tags[i$17];
tag_value = doc;
var tag_split = tag_key.split(":");
for (var a = 0; a < tag_split.length; a++) {
tag_value = tag_value[tag_split[a]];
} else {
if (tags) {
var tag_key;
var tag_value;
for (var i$19 = 0; i$19 < tags.length; i$19++) {
tag_key = tags[i$19];
tag_value = doc;
var tag_split = tag_key.split(":");
for (var a = 0; a < tag_split.length; a++) {
tag_value = tag_value[tag_split[a]];
}
tag_value = "@" + tag_value;
}
tag_value = "@" + tag_value;
tag = this._tag[tag_key];
tag = tag[tag_value] || (tag[tag_value] = []);
}
tag = this._tag[tag_key];
tag = tag[tag_value] || (tag[tag_value] = []);
}
tree = this.doc["field"];
for (var i$18 = 0, len$19 = tree.length; i$18 < len$19; i$18++) {
var branch = tree[i$18];
var content = doc;
for (var x = 0; x < branch.length; x++) {
content = content[branch[x]];
tree = this.doc["field"];
for (var i$20 = 0, len$21 = tree.length; i$20 < len$21; i$20++) {
var branch = tree[i$20];
var content = doc;
for (var x = 0; x < branch.length; x++) {
content = content[branch[x]];
}
var self$22 = index[keys[i$20]];
if (job === "add") {
self$22.add(id, content, i$20 === len$21 - 1 && callback);
} else {
self$22.update(id, content, i$20 === len$21 - 1 && callback);
}
}
var self$20 = index[keys[i$18]];
if (job === "add") {
self$20.add(id, content, i$18 === len$19 - 1 && callback);
} else {
self$20.update(id, content, i$18 === len$19 - 1 && callback);
}
}
if (store) {
var store_keys = get_keys$$module$src$common(store);
var store_doc = create_object$$module$src$common();
for (var i$21 = 0; i$21 < store_keys.length; i$21++) {
var store_key = store_keys[i$21];
if (store[store_key]) {
var store_split = store_key.split(":");
var store_value = undefined;
var store_doc_value = undefined;
for (var a$22 = 0; a$22 < store_split.length; a$22++) {
var store_split_key = store_split[a$22];
store_value = (store_value || doc)[store_split_key];
store_doc_value = (store_doc_value || store_doc)[store_split_key] = store_value;
if (store) {
var store_keys = get_keys$$module$src$common(store);
var store_doc = create_object$$module$src$common();
for (var i$23 = 0; i$23 < store_keys.length; i$23++) {
var store_key = store_keys[i$23];
if (store[store_key]) {
var store_split = store_key.split(":");
var store_value = undefined;
var store_doc_value = undefined;
for (var a$24 = 0; a$24 < store_split.length; a$24++) {
var store_split_key = store_split[a$24];
store_value = (store_value || doc)[store_split_key];
store_doc_value = (store_doc_value || store_doc)[store_split_key] = store_value;
}
}
}
doc = store_doc;
}
doc = store_doc;
if (tag) {
tag[tag.length] = doc;
}
this._doc[id] = doc;
}
if (tag) {
tag[tag.length] = doc;
}
this._doc[id] = doc;
}
return this;
};
@@ -885,8 +892,7 @@ FlexSearch$$module$src$flexsearch.prototype.update = function(id, content, callb
if (SUPPORT_DOCUMENT && this.doc && is_object$$module$src$common(id)) {
return this.handle_docs("update", id, content);
}
var index = id;
if (this._ids[index] && is_string$$module$src$common(content)) {
if (this._ids[id] && is_string$$module$src$common(content)) {
this.remove(id);
this.add(id, content, callback, true);
}
@@ -900,11 +906,11 @@ FlexSearch$$module$src$flexsearch.prototype.remove = function(id, callback, _rec
if (this._ids[index]) {
if (!_recall) {
if (SUPPORT_ASYNC && this.async && typeof importScripts !== "function") {
var self$23 = this;
var self$25 = this;
var promise = new Promise(function(resolve) {
setTimeout(function() {
self$23.remove(id, null, true);
self$23 = null;
self$25.remove(id, null, true);
self$25 = null;
resolve();
});
});
@@ -962,7 +968,6 @@ FlexSearch$$module$src$flexsearch.prototype.merge_and_sort = function(query, boo
if (field_to_sort$$module$src$flexsearch.length > 1) {
sort = sort_by_deep_field_up$$module$src$flexsearch;
} else {
field_to_sort$$module$src$flexsearch = field_to_sort$$module$src$flexsearch[0];
sort = sort_by_field_up$$module$src$flexsearch;
}
}
@@ -1033,11 +1038,11 @@ FlexSearch$$module$src$flexsearch.prototype.search = function(query, limit, call
queries = _query;
field = [];
bool = [];
for (var i$24 = 0; i$24 < _query.length; i$24++) {
var current = _query[i$24];
for (var i$26 = 0; i$26 < _query.length; i$26++) {
var current = _query[i$26];
var current_bool = SUPPORT_OPERATOR && current["bool"] || bool_main;
field[i$24] = current["field"];
bool[i$24] = current_bool;
field[i$26] = current["field"];
bool[i$26] = current_bool;
if (current_bool === "not") {
has_not = true;
} else {
@@ -1051,24 +1056,24 @@ FlexSearch$$module$src$flexsearch.prototype.search = function(query, limit, call
}
}
var len = field.length;
for (var i$25 = 0; i$25 < len; i$25++) {
for (var i$27 = 0; i$27 < len; i$27++) {
if (queries) {
_query = queries[i$25];
_query = queries[i$27];
}
if (cursor && !is_string$$module$src$common(_query)) {
_query["page"] = null;
_query["limit"] = 0;
}
result[i$25] = doc_idx[field[i$25]].search(_query, 0);
result[i$27] = doc_idx[field[i$27]].search(_query, 0);
}
if (callback) {
return callback(this.merge_and_sort(query, bool, result, sort, limit, suggest, where, cursor, has_and, has_not));
} else {
if (SUPPORT_ASYNC && this.async) {
var self$26 = this;
var self$28 = this;
return new Promise(function(resolve) {
Promise.all(result).then(function(values) {
resolve(self$26.merge_and_sort(query, bool, values, sort, limit, suggest, where, cursor, has_and, has_not));
resolve(self$28.merge_and_sort(query, bool, values, sort, limit, suggest, where, cursor, has_and, has_not));
});
});
} else {
@@ -1079,11 +1084,11 @@ FlexSearch$$module$src$flexsearch.prototype.search = function(query, limit, call
threshold || (threshold = this.threshold || 0);
if (!_recall) {
if (SUPPORT_ASYNC && this.async && typeof importScripts !== "function") {
var self$27 = this;
var self$29 = this;
var promise = new Promise(function(resolve) {
setTimeout(function() {
resolve(self$27.search(_query, limit, null, true));
self$27 = null;
resolve(self$29.search(_query, limit, null, true));
self$29 = null;
});
});
if (callback) {
@@ -1262,11 +1267,11 @@ function remove_index$$module$src$flexsearch(map, id) {
}
}
function init_filter$$module$src$flexsearch(words) {
var final = create_object$$module$src$common();
var filter = create_object$$module$src$common();
for (var i = 0, length = words.length; i < length; i++) {
final[words[i]] = 1;
filter[words[i]] = 1;
}
return final;
return filter;
}
function init_stemmer_or_matcher$$module$src$flexsearch(obj, is_stemmer) {
var keys = get_keys$$module$src$common(obj);
@@ -1293,7 +1298,9 @@ function sort_by_length_down$$module$src$flexsearch(a, b) {
return b.length - a.length;
}
function sort_by_field_up$$module$src$flexsearch(a, b) {
return a[field_to_sort$$module$src$flexsearch] - b[field_to_sort$$module$src$flexsearch];
a = a[field_to_sort$$module$src$flexsearch];
b = b[field_to_sort$$module$src$flexsearch];
return a < b ? -1 : a > b ? 1 : 0;
}
function sort_by_deep_field_up$$module$src$flexsearch(a, b) {
var field_len = field_to_sort$$module$src$flexsearch.length;
@@ -1301,7 +1308,7 @@ function sort_by_deep_field_up$$module$src$flexsearch(a, b) {
a = a[field_to_sort$$module$src$flexsearch[i]];
b = b[field_to_sort$$module$src$flexsearch[i]];
}
return a - b;
return a < b ? -1 : a > b ? 1 : 0;
}
function create_page$$module$src$flexsearch(cursor, page, result) {
return cursor ? {"page":cursor, "next":page ? "" + page : null, "result":result} : result;
@@ -1416,13 +1423,13 @@ function intersect$$module$src$flexsearch(arrays, limit, cursor, suggest, bool,
var found = false;
for (i = 0; i < length; i++) {
tmp = arr[i];
var index$28 = "@" + tmp;
var check_val = has_and ? check[index$28] || 0 : z;
var index$30 = "@" + tmp;
var check_val = has_and ? check[index$30] || 0 : z;
if (check_val || suggest) {
if (has_not && check_not[index$28]) {
if (has_not && check_not[index$30]) {
continue;
}
if (!has_and && check[index$28]) {
if (!has_and && check[index$30]) {
continue;
}
if (check_val === z) {
@@ -1434,7 +1441,7 @@ function intersect$$module$src$flexsearch(arrays, limit, cursor, suggest, bool,
}
}
} else {
check[index$28] = z + 1;
check[index$30] = z + 1;
}
found = true;
} else {
@@ -1450,17 +1457,17 @@ function intersect$$module$src$flexsearch(arrays, limit, cursor, suggest, bool,
}
}
if (first_result) {
var result_length$29 = first_result.length;
var result_length$31 = first_result.length;
if (has_not) {
if (pointer) {
i = parseInt(pointer, 10);
} else {
i = 0;
}
for (; i < result_length$29; i++) {
var id$30 = first_result[i];
if (!check_not["@" + id$30]) {
result[count++] = id$30;
for (; i < result_length$31; i++) {
var id$32 = first_result[i];
if (!check_not["@" + id$32]) {
result[count++] = id$32;
}
}
} else {
@@ -1480,9 +1487,9 @@ function intersect$$module$src$flexsearch(arrays, limit, cursor, suggest, bool,
tmp = suggestions[z];
if (tmp) {
for (length = tmp.length; i < length; i++) {
var id$31 = tmp[i];
if (!has_not || !check_not["@" + id$31]) {
result[count++] = id$31;
var id$33 = tmp[i];
if (!has_not || !check_not["@" + id$33]) {
result[count++] = id$33;
if (limit && count === limit) {
return create_page$$module$src$flexsearch(cursor, z + ":" + i, result);
}
@@ -1503,13 +1510,13 @@ function intersect$$module$src$flexsearch(arrays, limit, cursor, suggest, bool,
}
}
if (limit) {
var length$32 = result.length;
if (pointer && pointer > length$32) {
var length$34 = result.length;
if (pointer && pointer > length$34) {
pointer = 0;
}
var start = pointer || 0;
page = start + limit;
if (page < length$32) {
if (page < length$34) {
result = result.slice(start, page);
} else {
page = 0;
@@ -1540,8 +1547,7 @@ var regex_s$$module$src$lang$latin$simple = regex$$module$src$common("\u00df");
var regex_and$$module$src$lang$latin$simple = regex$$module$src$common(" & ");
var pairs$$module$src$lang$latin$simple = [regex_a$$module$src$lang$latin$simple, "a", regex_e$$module$src$lang$latin$simple, "e", regex_i$$module$src$lang$latin$simple, "i", regex_o$$module$src$lang$latin$simple, "o", regex_u$$module$src$lang$latin$simple, "u", regex_y$$module$src$lang$latin$simple, "y", regex_n$$module$src$lang$latin$simple, "n", regex_c$$module$src$lang$latin$simple, "k", regex_s$$module$src$lang$latin$simple, "s", regex_and$$module$src$lang$latin$simple, " and "];
function encode$$module$src$lang$latin$simple(str, self) {
self || (self = this);
return self.pipeline(str.toLowerCase(), pairs$$module$src$lang$latin$simple, regex_whitespace$$module$src$lang$latin$simple, false);
return (self || this).pipeline(str.toLowerCase(), pairs$$module$src$lang$latin$simple, regex_whitespace$$module$src$lang$latin$simple, false);
}
var module$src$lang$latin$simple = {};
module$src$lang$latin$simple.default = $jscompDefaultExport$$module$src$lang$latin$simple;
@@ -1571,9 +1577,9 @@ var regex_ou$$module$src$lang$latin$advanced = regex$$module$src$common("ou");
var regex_uo$$module$src$lang$latin$advanced = regex$$module$src$common("uo");
var pairs$$module$src$lang$latin$advanced = [regex_ae$$module$src$lang$latin$advanced, "a", regex_ai$$module$src$lang$latin$advanced, "ei", regex_ay$$module$src$lang$latin$advanced, "ei", regex_ey$$module$src$lang$latin$advanced, "ei", regex_oe$$module$src$lang$latin$advanced, "o", regex_ue$$module$src$lang$latin$advanced, "u", regex_ie$$module$src$lang$latin$advanced, "i", regex_sz$$module$src$lang$latin$advanced, "s", regex_zs$$module$src$lang$latin$advanced, "s", regex_sh$$module$src$lang$latin$advanced,
"s", regex_ck$$module$src$lang$latin$advanced, "k", regex_cc$$module$src$lang$latin$advanced, "k", regex_th$$module$src$lang$latin$advanced, "t", regex_dt$$module$src$lang$latin$advanced, "t", regex_ph$$module$src$lang$latin$advanced, "f", regex_pf$$module$src$lang$latin$advanced, "f", regex_ou$$module$src$lang$latin$advanced, "o", regex_uo$$module$src$lang$latin$advanced, "u"];
function encode$$module$src$lang$latin$advanced(str, _skip_postprocessing) {
function encode$$module$src$lang$latin$advanced(str, self, _skip_postprocessing) {
if (str) {
str = encode$$module$src$lang$latin$simple(str, this).join(" ");
str = encode$$module$src$lang$latin$simple(str, self || this).join(" ");
if (str.length > 2) {
str = replace$$module$src$common(str, pairs$$module$src$lang$latin$advanced);
}
@@ -1619,7 +1625,7 @@ var regex_vowel$$module$src$lang$latin$extra = regex$$module$src$common(prefix$$
var pairs$$module$src$lang$latin$extra = [soundex_b$$module$src$lang$latin$extra, "b", soundex_s$$module$src$lang$latin$extra, "s", soundex_k$$module$src$lang$latin$extra, "k", soundex_m$$module$src$lang$latin$extra, "m", soundex_t$$module$src$lang$latin$extra, "t", soundex_f$$module$src$lang$latin$extra, "f", regex_vowel$$module$src$lang$latin$extra, ""];
function encode$$module$src$lang$latin$extra(str) {
if (str) {
str = encode$$module$src$lang$latin$advanced(str, true);
str = encode$$module$src$lang$latin$advanced(str, this, true);
if (str.length > 1) {
str = replace$$module$src$common(str, pairs$$module$src$lang$latin$extra);
}
@@ -1704,9 +1710,9 @@ module$src$lang$latin$soundex.tokenize = tokenize$$module$src$lang$latin$soundex
var rtl$$module$src$lang$arabic$default = true;
var tokenize$$module$src$lang$arabic$default = "";
var $jscompDefaultExport$$module$src$lang$arabic$default = {encode:encode$$module$src$lang$arabic$default, rtl:rtl$$module$src$lang$arabic$default};
var split$$module$src$lang$arabic$default = /[\W_]+/;
var regex$$module$src$lang$arabic$default = /[\x00-\x7F]+/g;
function encode$$module$src$lang$arabic$default(str) {
return this.pipeline(str, false, split$$module$src$lang$arabic$default, false);
return this.pipeline(str.replace(regex$$module$src$lang$arabic$default, " "), false, " ", false);
}
var module$src$lang$arabic$default = {};
module$src$lang$arabic$default.default = $jscompDefaultExport$$module$src$lang$arabic$default;
@@ -1716,7 +1722,7 @@ module$src$lang$arabic$default.tokenize = tokenize$$module$src$lang$arabic$defau
var rtl$$module$src$lang$cjk$default = false;
var tokenize$$module$src$lang$cjk$default = "strict";
var $jscompDefaultExport$$module$src$lang$cjk$default = {encode:encode$$module$src$lang$cjk$default, rtl:rtl$$module$src$lang$cjk$default, tokenize:tokenize$$module$src$lang$cjk$default};
var regex$$module$src$lang$cjk$default = /[\x00-\x7F]/g;
var regex$$module$src$lang$cjk$default = /[\x00-\x7F]+/g;
function encode$$module$src$lang$cjk$default(str) {
return this.pipeline(str.replace(regex$$module$src$lang$cjk$default, ""), false, "", false);
}
@@ -1728,9 +1734,9 @@ module$src$lang$cjk$default.tokenize = tokenize$$module$src$lang$cjk$default;
var rtl$$module$src$lang$cyrillic$default = false;
var tokenize$$module$src$lang$cyrillic$default = "";
var $jscompDefaultExport$$module$src$lang$cyrillic$default = {encode:encode$$module$src$lang$cyrillic$default, rtl:rtl$$module$src$lang$cyrillic$default};
var split$$module$src$lang$cyrillic$default = /[\W_]+/;
var regex$$module$src$lang$cyrillic$default = /[\x00-\x7F]+/g;
function encode$$module$src$lang$cyrillic$default(str) {
return this.pipeline(str, false, split$$module$src$lang$cyrillic$default, false);
return this.pipeline(str.replace(regex$$module$src$lang$cyrillic$default, " "), false, " ", false);
}
var module$src$lang$cyrillic$default = {};
module$src$lang$cyrillic$default.default = $jscompDefaultExport$$module$src$lang$cyrillic$default;

View File

@@ -5,33 +5,33 @@
* Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch
*/
(function(){'use strict';Object.assign||(Object.assign=function(){for(var a=arguments,b=a.length,c=a[0],e=1,d,g,f;e<b;e++){d=a[e];g=Object.keys(d);f=g.length;for(var h=0,k;h<f;h++)k=g[h],c[k]=d[k]}return c});window.requestAnimationFrame||(window.requestAnimationFrame=window.setTimeout);window.cancelAnimationFrame||(window.cancelAnimationFrame=window.clearTimeout);window.Promise||(window.Promise=function(){function a(b){this.b=null;var c=this;b(function(e){c.b&&(c.b(e),c.b=null)})}a.prototype.then=function(b){this.b=b};return a}());function t(a){return"string"===typeof a}function x(a){return a.constructor===Array}function aa(a){return"function"===typeof a}function z(a){return"object"===typeof a}function B(a){return"undefined"===typeof a}function ba(a){for(var b=Array(a),c=0;c<a;c++)b[c]=D();return b}function D(){return Object.create(null)}function G(a,b){for(var 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 ca(a){for(var b="",c="",e=0,d=a.length,g=void 0;e<d;e++)(g=a[e])!==c&&(b+=c=g);return b}function L(a,b,c,e){if(b&&(c&&b&&(b=G(b,c)),b&&a.u&&(b=G(b,a.u)),a.w&&1<b.length&&(b=G(b,a.w)),b&&(e||""===e)&&(b=b.split(e),a.filter))){a=a.filter;c=b.length;e=[];for(var d=0,g=0;d<c;d++){var f=b[d];f&&!a[f]&&(e[g++]=f)}b=e}return b};M.prototype.export=function(a){var b=!a||B(a.serialize)||a.serialize;if(this.a){var c=!a||B(a.doc)||a.doc,e=!a||B(a.index)||a.index;a=[];var d=0;if(e)for(e=this.a.keys;d<e.length;d++){var g=this.a.index[e[d]];a[d]=[g.l,g.i,Object.keys(g.g)]}c&&(a[d]=this.m)}else a=[this.l,this.i,Object.keys(this.g)];b&&(a=JSON.stringify(a));return a};
M.prototype.import=function(a,b){if(!b||B(b.serialize)||b.serialize)a=JSON.parse(a);var c={};if(this.a){var e=!b||B(b.doc)||b.doc,d=0;if(!b||B(b.index)||b.index){b=this.a.keys;for(var g=b.length,f=a[0][2];d<f.length;d++)c[f[d]]=1;for(d=0;d<g;d++){f=this.a.index[b[d]];var h=a[d];h&&(f.l=h[0],f.i=h[1],f.g=c)}}e&&(this.m=z(e)?e:a[d])}else{e=a[2];for(d=0;d<e.length;d++)c[e[d]]=1;this.l=a[0];this.i=a[1];this.g=c}};M.prototype.find=function(a,b){return this.where(a,b,1)[0]||null};
M.prototype.where=function(a,b,c,e){var d=this.m,g=[],f=0,h;if(z(a)){c||(c=b);var k=Object.keys(a);var m=k.length;var r=!1;if(1===m&&"id"===k[0])return[d[a.id]];if((h=this.F)&&!e)for(var q=0;q<h.length;q++){var p=h[q],l=a[p];if(!B(l)){var n=this.B[p]["@"+l];if(0===--m)return n;k.splice(k.indexOf(p),1);delete a[p];break}}h=Array(m);for(q=0;q<m;q++)h[q]=k[q].split(":")}else{if(aa(a)){b=e||Object.keys(d);c=b.length;for(k=0;k<c;k++)m=d[b[k]],a(m)&&(g[f++]=m);return g}if(B(b))return[d[a]];if("id"===a)return[d[b]];
k=[a];m=1;h=[a.split(":")];r=!0}e=n||e||Object.keys(d);q=e.length;for(p=0;p<q;p++){l=n?e[p]:d[e[p]];for(var w=!0,u=0;u<m;u++){r||(b=a[k[u]]);var v=h[u],y=v.length,A=l;if(1<y)for(var C=0;C<y;C++)A=A[v[C]];else A=A[v[0]];if(A!==b){w=!1;break}}if(w&&(g[f++]=l,c&&f===c))break}return g};function O(a){this.clear();this.o=!0!==a&&a}O.prototype.clear=function(){this.cache=D();this.count=D();this.index=D();this.b=[]};O.prototype.set=function(a,b){if(this.o&&B(this.cache[a])){var c=this.b.length;if(c===this.o){c--;var e=this.b[c];delete this.cache[e];delete this.count[e];delete this.index[e]}this.b[c]=a;this.index[a]=c;this.count[a]=-1;this.cache[a]=b;this.get(a)}else this.cache[a]=b};
O.prototype.get=function(a){var b=this.cache[a];if(this.o&&b){var c=++this.count[a],e=this.index,d=e[a];if(0<d){for(var g=this.b,f=d;this.count[g[--d]]<=c&&-1!==d;);d++;if(d!==f){for(c=f;c>d;c--)f=g[c-1],g[c]=f,e[f]=c;g[d]=a;e[a]=d}}}return b};var S={},da="undefined"!==typeof Blob&&"undefined"!==typeof URL&&URL.createObjectURL;function fa(a,b,c){var e=ha,d="flexsearch";e=da?URL.createObjectURL(new Blob(["("+e.toString()+")()"],{type:"text/javascript"})):d+".browser.js";d+="-"+a;S[d]||(S[d]=[]);S[d][c]=new Worker(e);S[d][c].onmessage=b;console.log("Register Worker: "+d+"@"+c);return S[d][c]}
function ha(){var a,b;self.onmessage=function(c){if(c=c.data)if(c.search){var e=b.search(c.content,c.threshold?{limit:c.limit,threshold:c.threshold,where:c.where}:c.limit);self.postMessage({id:a,content:c.content,limit:c.limit,result:e})}else c.add?b.add(c.id,c.content):c.update?b.update(c.id,c.content):c.remove?b.remove(c.id):c.clear?b.clear():c.info?(c=b.info(),c.worker=a,console.log(c)):c.register&&(a=c.id,c.options.cache=!1,c.options.async=!1,c.options.worker=!1,b=(new Function(c.register.substring(c.register.indexOf("{")+
1,c.register.lastIndexOf("}"))))(),b=new b(c.options))}}function ia(a,b,c,e){a=fa("id"+a,function(g){(g=g.data)&&g.result&&e(g.id,g.content,g.result,g.limit,g.where,g.cursor,g.suggest)},b);var d=M.toString();c.id=b;a.postMessage({register:d,options:c,id:b});return a}M.prototype.G=function(a,b,c,e){this.v!==this.A&&(this.s=this.s.concat(c),this.v++,e&&this.s.length>=e&&(this.v=this.A),this.v===this.A&&(this.cache&&this.f.set(b,this.s),this.C&&this.C(this.s)));return this};var U={memory:{encode:"extra",j:"strict",threshold:0,h:1},speed:{encode:"icase",j:"strict",threshold:1,h:3,depth:2},match:{encode:"extra",j:"full",threshold:1,h:3},score:{encode:"extra",j:"strict",threshold:1,h:9,depth:4},balance:{encode:"balance",j:"strict",threshold:0,h:3,depth:3},fast:{encode:"icase",j:"strict",threshold:8,h:9,depth:1}};var ka={encode:ja,c:!1},la=/[\W_]+/;function ja(a){return L(this,a.toLowerCase(),!1,la)};var ma={encode:ja,tokenize:"strict",cache:!1,async:!1,worker:!1,rtl:!1,doc:!1,resolution:9,threshold:0,depth:0},na=0,oa={},V={};function M(a){if(!(this instanceof M))return new M(a);var b=a&&a.id;this.id=b||0===b?b:na++;this.init(a);pa(this,"index",function(){return Object.keys(this.g)});pa(this,"length",function(){return this.index.length})}M.registerCharset=function(a,b){V[a]=b;return M};M.registerLanguage=function(a,b){V[a]=b;return M};
M.prototype.init=function(a){var b,c;if(t(a))U[a]||console.warn("Preset not found: "+a),a=U[a];else if(b=a.preset)U[b]||console.warn("Preset not found: "+b),a=Object.assign({},U[b],a);this.encode||(a?a=Object.assign({},ma,a):a=ma);if(a){if(b=a.worker){if("undefined"===typeof fa)a.worker=!1,this.D=null;else{var e=parseInt(b,10)||4;this.v=0;this.s=[];this.C=null;this.D=Array(e);for(c=0;c<e;c++)this.D[c]=ia(this.id,c,a,this.G)}this.A=b}this.async=a.async;c=a.charset;e=a.lang;this.o=(t(c)?V[c].j:c&&c.j)||
a.tokenize;this.c=t(b=a.rtl||c)?V[b].c:c&&c.c||b;this.threshold=a.threshold;this.h=(b=a.resolution)<=this.threshold?this.threshold+1:b;this.depth="strict"===this.o&&a.depth||0;this.encode=t(b=a.encode||c)?V[-1===b.indexOf(":")?b+":default":b].encode:c&&c.encode||b;this.u=(b=a.matcher||e)&&qa(t(b)?oa[b].u:e&&e.u||b,!1);if(c=b=a.filter||e){c=t(b)?oa[b].filter:e&&e.filter||b;for(var d=D(),g=0,f=c.length;g<f;g++)d[c[g]]=1;c=d}this.filter=c;this.w=(b=a.stemmer||e)&&qa(t(b)?oa[b].w:e&&e.w||b,!0);(this.a=
c=(b=a.doc)&&ra(b))&&(a.doc=null)}this.l=ba(this.h-(this.threshold||0));this.i=D();this.g={};if(c){this.m=D();b=c.index={};e=c.keys=[];d=c.field;g=c.tag;f=c.store;x(c.id)||(c.id=c.id.split(":"));if(f){var h=D();if(t(f))h[f]=1;else if(x(f))for(var k=0;k<f.length;k++)h[f[k]]=1;else z(f)&&(h=f);c.store=h}if(g){this.B=D();f=D();if(d)if(t(d))f[d]=a;else if(x(d))for(h=0;h<d.length;h++)f[d[h]]=a;else z(d)&&(f=d);x(g)||(c.tag=g=[g]);for(d=0;d<g.length;d++)this.B[g[d]]=D();this.F=g;d=f}if(d){if(!x(d))if(z(d)){var m=
d;c.field=d=Object.keys(d)}else c.field=d=[d];for(c=0;c<d.length;c++)g=d[c],x(g)||(m&&(a=m[g]),e[c]=g,d[c]=g.split(":")),b[g]=new M(a)}}if(b=a.cache)this.b=!0,this.f=new O(b);return this};function ra(a){var b=D(),c;for(c in a)if(a.hasOwnProperty(c)){var e=a[c];b[c]=x(e)?e.slice(0):z(e)?ra(e):e}return b}
M.prototype.add=function(a,b,c,e,d){if(this.a&&z(a))return W(this,"add",a,b);if(b&&t(b)&&(a||0===a)){if(this.g[a]&&!e)return this.update(a,b);if(!d){if(this.async&&"function"!==typeof importScripts){var g=this;d=new Promise(function(C){setTimeout(function(){g.add(a,b,null,e,!0);g=null;C()})});if(c)d.then(c);else return d;return this}if(c)return this.add(a,b,null,e,!0),c(),this}b=this.encode(b);if(!b.length)return this;c=b;d=D();d._ctx=D();for(var f=c.length,h=this.threshold,k=this.depth,m=this.h,
r=this.l,q=this.c,p=0;p<f;p++){var l=c[p];if(l){var n=l.length,w=(q?p+1:f-p)/f,u="";switch(this.o){case "reverse":case "both":for(var v=n;--v;)u=l[v]+u,X(r,d,u,a,q?1:(n-v)/n,w,h,m-1);u="";case "forward":for(v=0;v<n;v++)u+=l[v],X(r,d,u,a,q?(v+1)/n:1,w,h,m-1);break;case "full":for(v=0;v<n;v++)for(var y=(q?v+1:n-v)/n,A=n;A>v;A--)u=l.substring(v,A),X(r,d,u,a,y,w,h,m-1);break;default:if(n=X(r,d,l,a,1,w,h,m-1),k&&1<f&&n>=h)for(n=d._ctx[l]||(d._ctx[l]=D()),l=this.i[l]||(this.i[l]=ba(m-(h||0))),w=p-k,u=p+
k+1,0>w&&(w=0),u>f&&(u=f);w<u;w++)w!==p&&X(l,n,c[w],a,0,m-(w<p?p-w:w-p),h,m-1)}}}this.g[a]=1;this.b=!1}return this};
function W(a,b,c,e){if(x(c)){var d=c.length;if(d--){for(var g=0;g<d;g++)W(a,b,c[g]);return W(a,b,c[d],e)}}else{var f=a.a.index,h=a.a.keys,k=a.a.tag;g=a.a.store;var m;var r=a.a.id;d=c;for(var q=0;q<r.length;q++)d=d[r[q]];if("remove"===b&&(delete a.m[d],r=h.length,r--)){for(a=0;a<r;a++)f[h[a]].remove(d);return f[h[r]].remove(d,e)}if(k){for(m=0;m<k.length;m++){var p=k[m];var l=c;r=p.split(":");for(q=0;q<r.length;q++)l=l[r[q]];l="@"+l}m=a.B[p];m=m[l]||(m[l]=[])}r=a.a.field;k=0;for(p=r.length;k<p;k++){q=
r[k];l=c;for(var n=0;n<q.length;n++)l=l[q[n]];q=f[h[k]];"add"===b?q.add(d,l,k===p-1&&e):q.update(d,l,k===p-1&&e)}if(g){e=Object.keys(g);b=D();for(f=0;f<e.length;f++)if(h=e[f],g[h])for(h=h.split(":"),k=r=void 0,p=0;p<h.length;p++)l=h[p],r=(r||c)[l],k=(k||b)[l]=r;c=b}m&&(m[m.length]=c);a.m[d]=c}return a}M.prototype.update=function(a,b,c){if(this.a&&z(a))return W(this,"update",a,b);this.g[a]&&t(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
M.prototype.remove=function(a,b,c){if(this.a&&z(a))return W(this,"remove",a,b);if(this.g[a]){if(!c){if(this.async&&"function"!==typeof importScripts){var e=this;c=new Promise(function(d){setTimeout(function(){e.remove(a,null,!0);e=null;d()})});if(b)c.then(b);else return c;return this}if(b)return this.remove(a,null,!0),b(),this}for(b=0;b<this.h-(this.threshold||0);b++)sa(this.l[b],a);this.depth&&sa(this.i,a);delete this.g[a];this.b=!1}return this};var Y;
function ta(a,b,c,e,d,g,f,h,k,m,r){e=ua(e,h?0:g,k,f,c,m,r);if(k){k=e.page;var q=e.next;e=e.result}if(h)e=a.where(h,null,g,e);else{c=e;e=a.m;g=c.length;f=Array(g);for(h=0;h<g;h++)f[h]=e[c[h]];e=f}d&&(aa(d)||(Y=d.split(":"),1<Y.length?d=va:(Y=Y[0],d=wa)),e.sort(d));e=Z(k,q,e);a.f&&a.f.set(b,e);return e}
M.prototype.search=function(a,b,c,e){if(z(b)){if(x(b))for(var d=0;d<b.length;d++)b[d].query=a;else b.query=a;a=b;b=1E3}else b&&aa(b)?(c=b,b=1E3):b||0===b||(b=1E3);var g=[],f=a;if(z(a)&&!x(a)){c||(c=a.callback)&&(f.callback=null);var h=a.sort;var k=a.page;b=a.limit;var m=a.threshold;var r=a.suggest;a=a.query}if(this.a){m=this.a.index;var q=f.where,p=f.bool||"or",l=f.field,n=p,w,u;if(l)x(l)||(l=[l]);else if(x(f)){var v=f;l=[];n=[];for(var y=0;y<f.length;y++)e=f[y],d=e.bool||p,l[y]=e.field,n[y]=d,"not"===
d?w=!0:"and"===d&&(u=!0)}else l=this.a.keys;p=l.length;for(y=0;y<p;y++)v&&(f=v[y]),k&&!t(f)&&(f.page=null,f.limit=0),g[y]=m[l[y]].search(f,0);if(c)return c(ta(this,a,n,g,h,b,r,q,k,u,w));if(this.async){var A=this;return new Promise(function(ea){Promise.all(g).then(function(Aa){ea(ta(A,a,n,Aa,h,b,r,q,k,u,w))})})}return ta(this,a,n,g,h,b,r,q,k,u,w)}m||(m=this.threshold||0);if(!e){if(this.async&&"function"!==typeof importScripts){var C=this;m=new Promise(function(ea){setTimeout(function(){ea(C.search(f,
b,null,!0));C=null})});if(c)m.then(c);else return m;return this}if(c)return c(this.search(f,b,null,!0)),this}if(!a||!t(a))return g;f=a;if(this.f)if(this.b){if(c=this.f.get(a))return c}else this.f.clear(),this.b=!0;f=this.encode(f);if(!f.length)return g;c=f;v=c.length;e=!0;d=[];var P=D(),Q=0;1<v&&(this.depth?p=!0:c.sort(xa));if(!p||(y=this.i))for(var T=this.h;Q<v;Q++){var E=c[Q];if(E){if(p){if(!l)if(y[E])l=E,P[E]=1;else if(!r)return g;if(r&&Q===v-1&&!d.length)p=!1,E=l||E,P[E]=0;else if(!l)continue}if(!P[E]){var F=
[],N=!1,I=0,J=p?y[l]:this.l;if(J)for(var R=void 0,K=0;K<T-m;K++)if(R=J[K]&&J[K][E])F[I++]=R,N=!0;if(N)l=E,d[d.length]=1<I?F.concat.apply([],F):F[0];else if(!r){e=!1;break}P[E]=1}}}else e=!1;e&&(g=ua(d,b,k,r));this.f&&this.f.set(a,g);return g};M.prototype.info=function(){return{id:this.id,items:this.length,matcher:this.u.length,worker:this.A,threshold:this.threshold,depth:this.depth,resolution:this.h,contextual:this.depth&&"strict"===this.o}};M.prototype.clear=function(){return this.destroy().init()};
M.prototype.destroy=function(){this.f&&(this.f.clear(),this.f=null);this.l=this.i=this.g=null;if(this.a){for(var a=this.a.keys,b=0;b<a.length;b++)this.a.index[a[b]].destroy();this.a=this.m=null}return this};function pa(a,b,c){Object.defineProperty(a,b,{get:c})}function X(a,b,c,e,d,g,f,h){if(b[c])return b[c];d=d?(h-(f||h/1.5))*g+(f||h/1.5)*d:g;b[c]=d;d>=f&&(a=a[h-(d+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=e);return d}
function sa(a,b){if(a)for(var c=Object.keys(a),e=0,d=c.length;e<d;e++){var g=c[e],f=a[g];if(f)for(var h=0,k=f.length;h<k;h++)if(f[h]===b){1===k?delete a[g]:f.splice(h,1);break}else z(f[h])&&sa(f[h],b)}}function qa(a,b){for(var c=Object.keys(a),e=c.length,d=[],g="",f=0,h=0,k;h<e;h++){var m=c[h];(k=a[m])?(d[f++]=H(b?"(?!\\b)"+m+"(\\b|_)":m),d[f++]=k):g+=(g?"|":"")+m}g&&(d[f++]=H(b?"(?!\\b)("+g+")(\\b|_)":"("+g+")"),d[f]="");return d}function xa(a,b){return b.length-a.length}
function wa(a,b){return a[Y]-b[Y]}function va(a,b){for(var c=Y.length,e=0;e<c;e++)a=a[Y[e]],b=b[Y[e]];return a-b}function Z(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c}
function ua(a,b,c,e,d,g,f){var h=[];if(!0===c){c="0";var k=""}else k=c&&c.split(":");var m=a.length;if(1<m){var r=D(),q=[],p,l=0,n,w=!0,u=0,v;if(k)if(2===k.length){var y=k;k=!1}else k=v=parseInt(k[0],10);if(f){for(p=D();l<m;l++)if("not"===d[l]){var A=a[l];var C=A.length;for(n=0;n<C;n++)p["@"+A[n]]=1}else var P=l+1;if(B(P))return Z(c,K,h);l=0}else var Q=t(d)&&d;for(var T;l<m;l++){var E=l===(P||m)-1;if(!Q||!l)if((n=Q||d&&d[l])&&"and"!==n)if("or"===n)T=!1;else continue;else T=g=!0;A=a[l];if(C=A.length){if(w)if(I){var F=
I.length;for(n=0;n<F;n++){w=I[n];var N="@"+w;f&&p[N]||(r[N]=1,g||(h[u++]=w))}var I=null;w=!1}else{I=A;continue}N=!1;for(n=0;n<C;n++){F=A[n];var J="@"+F,R=g?r[J]||0:l;if(!(!R&&!e||f&&p[J]||!g&&r[J]))if(R===l){if(E){if(!v||--v<u)if(h[u++]=F,b&&u===b)return Z(c,u+(k||0),h)}else r[J]=l+1;N=!0}else e&&(J=q[R]||(q[R]=[]),J[J.length]=F)}if(T&&!N&&!e)break}else if(T&&!e)return Z(c,K,A)}if(I)if(l=I.length,f)for(n=k?parseInt(k,10):0;n<l;n++)a=I[n],p["@"+a]||(h[u++]=a);else h=I;if(e)for(u=h.length,y?(l=parseInt(y[0],
10)+1,n=parseInt(y[1],10)+1):(l=q.length,n=0);l--;)if(F=q[l]){for(C=F.length;n<C;n++)if(e=F[n],!f||!p["@"+e])if(h[u++]=e,b&&u===b)return Z(c,l+":"+n,h);n=0}}else!m||d&&"not"===d[0]||(h=a[0],k&&(k=parseInt(k[0],10)));if(b){f=h.length;k&&k>f&&(k=0);k=k||0;var K=k+b;K<f?h=h.slice(k,K):(K=0,k&&(h=h.slice(k)))}return Z(c,K,h)};var za={encode:ya,c:!1},Ba=/[\W_]+/,Ca=[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 ya(a,b){b||(b=this);return L(b,a.toLowerCase(),Ca,Ba)};var Da=[H("ae"),"a",H("ai"),"ei",H("ay"),"ei",H("ey"),"ei",H("oe"),"o",H("ue"),"u",H("ie"),"i",H("sz"),"s",H("zs"),"s",H("sh"),"s",H("ck"),"k",H("cc"),"k",H("th"),"t",H("dt"),"t",H("ph"),"f",H("pf"),"f",H("ou"),"o",H("uo"),"u"];function Ea(a,b){a&&(a=ya(a,this).join(" "),2<a.length&&(a=G(a,Da)),b||(1<a.length&&(a=ca(a)),a&&(a=a.split(" "))));return a};var Ga={encode:Fa,c:!1},Ha=/[\W_]+/;function Fa(a){return L(this,a.toLowerCase(),!1,Ha)};var Ja={encode:Ia,c:!1},Ka=[H("(?!\\b)p"),"b",H("(?!\\b)z"),"s",H("(?!\\b)[cgq]"),"k",H("(?!\\b)n"),"m",H("(?!\\b)d"),"t",H("(?!\\b)[vw]"),"f",H("(?!\\b)[aeiouy]"),""];function Ia(a){a&&(a=Ea(a,!0),1<a.length&&(a=G(a,Ka)),1<a.length&&(a=ca(a)),a&&(a=a.split(" ")));return a};var Ma={encode:La,c:!1,j:"strict"},Na=/[^a-z]+/;function La(a){a=L(this,a.toLowerCase(),!1,!1);var b=[];if(a)for(var c=a.split(Na),e=c.length,d=0,g=0;d<e;d++)if((a=c[d])&&2<a.length&&(!this.filter||!this.filter[a])){for(var f=a[0],h=Oa(f),k=1;k<a.length;k++){var m=Oa(a[k]);if(m!==h&&(f+=m,h=m,4===f.length))break}b[g++]=(f+"0000").substring(0,4)}return b}
function Oa(a){switch(a){case "b":case "f":case "p":case "v":return 1;case "c":case "g":case "j":case "k":case "q":case "s":case "x":case "z":return 2;case "d":case "t":return 3;case "l":return 4;case "m":case "n":return 5;case "r":return 6}return""};var Qa={encode:Pa,c:!0},Ra=/[\W_]+/;function Pa(a){return L(this,a,!1,Ra)};var Ta={encode:Sa,c:!1,j:"strict"},Ua=/[\x00-\x7F]/g;function Sa(a){return L(this,a.replace(Ua,""),!1,"")};var Wa={encode:Va,c:!1},Xa=/[\W_]+/;function Va(a){return L(this,a,!1,Xa)};V["latin:advanced"]={encode:Ea,c:!1};V["latin:balance"]=Ga;V["latin:default"]=ka;V["latin:extra"]=Ja;V["latin:simple"]=za;V["latin:soundex"]=Ma;V["arabic:default"]=Qa;V["cjk:default"]=Ta;V["cyrillic:default"]=Wa;(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return M}):"object"===typeof a.exports?a.module.exports=M:a.FlexSearch=M})();}).call(this);
(function(){'use strict';Object.assign||(Object.assign=function(){for(var a=arguments,b=a.length,c=a[0],d=1,e,f,g;d<b;d++){e=a[d];f=Object.keys(e);g=f.length;for(var h=0,k;h<g;h++)k=f[h],c[k]=e[k]}return c});window.requestAnimationFrame||(window.requestAnimationFrame=window.setTimeout);window.cancelAnimationFrame||(window.cancelAnimationFrame=window.clearTimeout);window.Promise||(window.Promise=function(){function a(b){this.b=null;var c=this;b(function(d){c.b&&(c.b(d),c.b=null)})}a.prototype.then=function(b){this.b=b};return a}());function t(a){return"string"===typeof a}function y(a){return a.constructor===Array}function aa(a){return"function"===typeof a}function z(a){return"object"===typeof a}function E(a){return"undefined"===typeof a}function ba(a){for(var b=Array(a),c=0;c<a;c++)b[c]=F();return b}function F(){return Object.create(null)}function G(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 K(a){return new RegExp(a,"g")}
function ca(a){for(var b="",c="",d=0,e=a.length,f=void 0;d<e;d++)(f=a[d])!==c&&(b+=c=f);return b}function L(a,b,c,d){if(b&&(c&&b&&(b=G(b,c)),b&&a.u&&(b=G(b,a.u)),a.A&&1<b.length&&(b=G(b,a.A)),b&&(d||""===d)&&(b=b.split(d),a.filter))){a=a.filter;c=b.length;d=[];for(var e=0,f=0;e<c;e++){var g=b[e];g&&!a[g]&&(d[f++]=g)}b=d}return b};O.prototype.export=function(a){var b=!a||E(a.serialize)||a.serialize;if(this.a){var c=!a||E(a.doc)||a.doc,d=!a||E(a.index)||a.index;a=[];var e=0;if(d)for(d=this.a.keys;e<d.length;e++){var f=this.a.index[d[e]];a[e]=[f.j,f.i,Object.keys(f.f)]}c&&(a[e]=this.l)}else a=[this.j,this.i,Object.keys(this.f)];b&&(a=JSON.stringify(a));return a};
O.prototype.import=function(a,b){if(!b||E(b.serialize)||b.serialize)a=JSON.parse(a);var c={};if(this.a){var d=!b||E(b.doc)||b.doc,e=0;if(!b||E(b.index)||b.index){b=this.a.keys;for(var f=b.length,g=a[0][2];e<g.length;e++)c[g[e]]=1;for(e=0;e<f;e++){g=this.a.index[b[e]];var h=a[e];h&&(g.j=h[0],g.i=h[1],g.f=c)}}d&&(this.l=z(d)?d:a[e])}else{d=a[2];for(e=0;e<d.length;e++)c[d[e]]=1;this.j=a[0];this.i=a[1];this.f=c}};O.prototype.find=function(a,b){return this.where(a,b,1)[0]||null};
O.prototype.where=function(a,b,c,d){var e=this.l,f=[],g=0,h;if(z(a)){c||(c=b);var k=Object.keys(a);var m=k.length;var q=!1;if(1===m&&"id"===k[0])return[e[a.id]];if((h=this.F)&&!d)for(var r=0;r<h.length;r++){var p=h[r],l=a[p];if(!E(l)){var n=this.w[p]["@"+l];if(0===--m)return n;k.splice(k.indexOf(p),1);delete a[p];break}}h=Array(m);for(r=0;r<m;r++)h[r]=k[r].split(":")}else{if(aa(a)){b=d||Object.keys(e);c=b.length;for(k=0;k<c;k++)m=e[b[k]],a(m)&&(f[g++]=m);return f}if(E(b))return[e[a]];if("id"===a)return[e[b]];
k=[a];m=1;h=[a.split(":")];q=!0}d=n||d||Object.keys(e);r=d.length;for(p=0;p<r;p++){l=n?d[p]:e[d[p]];for(var w=!0,v=0;v<m;v++){q||(b=a[k[v]]);var x=h[v],u=x.length,A=l;if(1<u)for(var B=0;B<u;B++)A=A[x[B]];else A=A[x[0]];if(A!==b){w=!1;break}}if(w&&(f[g++]=l,c&&g===c))break}return f};function P(a){this.clear();this.m=!0!==a&&a}P.prototype.clear=function(){this.cache=F();this.count=F();this.index=F();this.b=[]};P.prototype.set=function(a,b){if(this.m&&E(this.cache[a])){var c=this.b.length;if(c===this.m){c--;var d=this.b[c];delete this.cache[d];delete this.count[d];delete this.index[d]}this.b[c]=a;this.index[a]=c;this.count[a]=-1;this.cache[a]=b;this.get(a)}else this.cache[a]=b};
P.prototype.get=function(a){var b=this.cache[a];if(this.m&&b){var c=++this.count[a],d=this.index,e=d[a];if(0<e){for(var f=this.b,g=e;this.count[f[--e]]<=c&&-1!==e;);e++;if(e!==g){for(c=g;c>e;c--)g=f[c-1],f[c]=g,d[g]=c;f[e]=a;d[a]=e}}}return b};var S={},ea="undefined"!==typeof Blob&&"undefined"!==typeof URL&&URL.createObjectURL;function fa(a,b,c){var d=ha,e="flexsearch";d=ea?URL.createObjectURL(new Blob(["("+d.toString()+")()"],{type:"text/javascript"})):e+".browser.js";e+="-"+a;S[e]||(S[e]=[]);S[e][c]=new Worker(d);S[e][c].onmessage=b;console.log("Register Worker: "+e+"@"+c);return S[e][c]}
function ha(){var a,b;self.onmessage=function(c){if(c=c.data)if(c.search){var d=b.search(c.content,c.threshold?{limit:c.limit,threshold:c.threshold,where:c.where}:c.limit);self.postMessage({id:a,content:c.content,limit:c.limit,result:d})}else c.add?b.add(c.id,c.content):c.update?b.update(c.id,c.content):c.remove?b.remove(c.id):c.clear?b.clear():c.info?(c=b.info(),c.worker=a,console.log(c)):c.register&&(a=c.id,c.options.cache=!1,c.options.async=!1,c.options.worker=!1,b=(new Function(c.register.substring(c.register.indexOf("{")+
1,c.register.lastIndexOf("}"))))(),b=new b(c.options))}}function ia(a,b,c,d){a=fa("id"+a,function(f){(f=f.data)&&f.result&&d(f.id,f.content,f.result,f.limit,f.where,f.cursor,f.suggest)},b);var e=O.toString();c.id=b;a.postMessage({register:e,options:c,id:b});return a}O.prototype.G=function(a,b,c,d){this.s!==this.v&&(this.o=this.o.concat(c),this.s++,d&&this.o.length>=d&&(this.s=this.v),this.s===this.v&&(this.cache&&this.g.set(b,this.o),this.C&&this.C(this.o)));return this};var U={memory:{charset:"latin:extra",threshold:0,c:1},speed:{threshold:1,c:3,depth:2},match:{charset:"latin:extra",B:"full",threshold:1,c:3},score:{charset:"latin:extra",threshold:1,c:9,depth:4},balance:{charset:"latin:balance",threshold:0,c:3,depth:3},fast:{threshold:8,c:9,depth:1}};var ka={encode:ja,h:!1},la=/[\W_]+/;function ja(a){return L(this,a.toLowerCase(),!1,la)};var ma=0,na={},V={};function O(a){if(!(this instanceof O))return new O(a);var b=a&&a.id;this.id=b||0===b?b:ma++;this.init(a);oa(this,"index",function(){return this.a?Object.keys(this.a.index[this.a.keys[0]].f):Object.keys(this.f)});oa(this,"length",function(){return this.index.length})}O.registerCharset=function(a,b){V[a]=b;return O};O.registerLanguage=function(a,b){na[a]=b;return O};
O.prototype.init=function(a){var b,c;if(a)if(t(a))U[a]||console.warn("Preset not found: "+a),a=U[a];else if(b=a.preset)U[b]||console.warn("Preset not found: "+b),a=Object.assign({},U[b],a);a||(a={});if(b=a.worker){if("undefined"===typeof fa)a.worker=!1,this.m=null;else{var d=parseInt(b,10)||4;this.s=0;this.o=[];this.C=null;this.m=Array(d);for(var e=0;e<d;e++)this.m[e]=ia(this.id,e,a,this.G)}this.v=b}this.async=a.async;d=a.charset;e=a.lang;t(d)&&(-1===d.indexOf(":")&&(d+=":default"),d=V[d]);t(e)&&
(e=na[e]);this.D=b=d&&d.B||a.tokenize||"strict";this.depth="strict"===b&&a.depth||0;this.h=d&&d.h||a.rtl||!1;this.c=a.resolution||9;this.threshold=b=a.threshold||0;this.c<=b&&(this.c=b+1);this.encode=a.encode||d&&d.encode||ja;this.u=(b=a.matcher||e&&e.u)&&pa(b,!1);this.A=(b=a.stemmer||e&&e.A)&&pa(b,!0);if(d=b=a.filter||e&&e.filter){d=b;e=F();var f=0;for(c=d.length;f<c;f++)e[d[f]]=1;d=e}this.filter=d;(this.a=c=(b=a.doc)&&qa(b))&&(a.doc=null);this.j=ba(this.c-this.threshold);this.i=F();this.f=F();if(c){this.l=
F();d=c.index={};e=c.keys=[];f=c.field;var g=c.tag,h=c.store;y(c.id)||(c.id=c.id.split(":"));if(h){var k=F();if(t(h))k[h]=1;else if(y(h))for(var m=0;m<h.length;m++)k[h[m]]=1;else z(h)&&(k=h);c.store=k}if(g){this.w=F();h=F();if(f)if(t(f))h[f]=a;else if(y(f))for(k=0;k<f.length;k++)h[f[k]]=a;else z(f)&&(h=f);y(g)||(c.tag=g=[g]);for(f=0;f<g.length;f++)this.w[g[f]]=F();this.F=g;f=h}if(f){if(!y(f))if(z(f)){var q=f;c.field=f=Object.keys(f)}else c.field=f=[f];for(c=0;c<f.length;c++)g=f[c],y(g)||(q&&(a=q[g]),
e[c]=g,f[c]=g.split(":")),d[g]=new O(a)}}this.b=!0;this.g=(b=a.cache)&&new P(b);return this};function qa(a){var b=F(),c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];b[c]=y(d)?d.slice(0):z(d)?qa(d):d}return b}
O.prototype.add=function(a,b,c,d,e){if(this.a&&z(a))return W(this,"add",a,b);if(b&&t(b)&&(a||0===a)){if(this.f[a]&&!d)return this.update(a,b);if(!e){if(this.async&&"function"!==typeof importScripts){var f=this,g=new Promise(function(M){setTimeout(function(){f.add(a,b,null,d,!0);f=null;M()})});if(c)g.then(c);else return g;return this}if(c)return this.add(a,b,null,d,!0),c(),this}b=this.encode(b);if(!b.length)return this;c=b;e=F();e._ctx=F();for(var h=c.length,k=this.threshold,m=this.depth,q=this.c,
r=this.j,p=this.h,l=0;l<h;l++){var n=c[l];if(n){g=1;var w=n.length,v=(p?l+1:h-l)/h,x="";switch(this.D){case "reverse":case "both":for(var u=w;--u;)x=n[u]+x,X(r,e,x,a,p?1:(w-u)/w,v,k,q-1);x="";case "forward":for(u=0;u<w;u++)x+=n[u],X(r,e,x,a,p?(u+1)/w:1,v,k,q-1);break;case "full":for(u=0;u<w;u++)for(var A=(p?u+1:w-u)/w,B=w;B>u;B--)x=n.substring(u,B),X(r,e,x,a,A,v,k,q-1);break;default:if(w=X(r,e,n,a,1,v,k,q-1),m&&1<h&&w>=k)for(w=e._ctx[n]||(e._ctx[n]=F()),n=this.i[n]||(this.i[n]=ba(q-(k||0))),v=l-m,
x=l+m+1,0>v&&(v=0),x>h&&(x=h);v<x;v++)v!==l&&X(n,w,c[v],a,0,q-(v<l?l-v:v-l),k,q-1)}}}g&&(this.f[a]=1);this.b=!1}return this};
function W(a,b,c,d){if(y(c)){var e=c.length;if(e)for(var f=0;f<e;f++)W(a,b,c[f],f===e-1&&d)}else{var g=a.a.index,h=a.a.keys,k=a.a.tag;f=a.a.store;var m;var q=a.a.id;e=c;for(var r=0;r<q.length;r++)e=e[q[r]];if("remove"===b){if(delete a.l[e],c=h.length)for(f=0;f<c;f++)g[h[f]].remove(e,f===c-1&&d)}else{if(k){for(m=0;m<k.length;m++){var p=k[m];var l=c;q=p.split(":");for(r=0;r<q.length;r++)l=l[q[r]];l="@"+l}m=a.w[p];m=m[l]||(m[l]=[])}q=a.a.field;k=0;for(p=q.length;k<p;k++){r=q[k];l=c;for(var n=0;n<r.length;n++)l=
l[r[n]];r=g[h[k]];"add"===b?r.add(e,l,k===p-1&&d):r.update(e,l,k===p-1&&d)}if(f){d=Object.keys(f);b=F();for(g=0;g<d.length;g++)if(h=d[g],f[h])for(h=h.split(":"),k=q=void 0,p=0;p<h.length;p++)l=h[p],q=(q||c)[l],k=(k||b)[l]=q;c=b}m&&(m[m.length]=c);a.l[e]=c}}return a}O.prototype.update=function(a,b,c){if(this.a&&z(a))return W(this,"update",a,b);this.f[a]&&t(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
O.prototype.remove=function(a,b,c){if(this.a&&z(a))return W(this,"remove",a,b);if(this.f[a]){if(!c){if(this.async&&"function"!==typeof importScripts){var d=this;c=new Promise(function(e){setTimeout(function(){d.remove(a,null,!0);d=null;e()})});if(b)c.then(b);else return c;return this}if(b)return this.remove(a,null,!0),b(),this}for(b=0;b<this.c-(this.threshold||0);b++)ra(this.j[b],a);this.depth&&ra(this.i,a);delete this.f[a];this.b=!1}return this};var Y;
function sa(a,b,c,d,e,f,g,h,k,m,q){d=ta(d,h?0:f,k,g,c,m,q);if(k){k=d.page;var r=d.next;d=d.result}if(h)d=a.where(h,null,f,d);else{c=d;d=a.l;f=c.length;g=Array(f);for(h=0;h<f;h++)g[h]=d[c[h]];d=g}e&&(aa(e)||(Y=e.split(":"),e=1<Y.length?ua:va),d.sort(e));d=Z(k,r,d);a.g&&a.g.set(b,d);return d}
O.prototype.search=function(a,b,c,d){if(z(b)){if(y(b))for(var e=0;e<b.length;e++)b[e].query=a;else b.query=a;a=b;b=1E3}else b&&aa(b)?(c=b,b=1E3):b||0===b||(b=1E3);var f=[],g=a;if(z(a)&&!y(a)){c||(c=a.callback)&&(g.callback=null);var h=a.sort;var k=a.page;b=a.limit;var m=a.threshold;var q=a.suggest;a=a.query}if(this.a){m=this.a.index;var r=g.where,p=g.bool||"or",l=g.field,n=p,w,v;if(l)y(l)||(l=[l]);else if(y(g)){var x=g;l=[];n=[];for(var u=0;u<g.length;u++)d=g[u],e=d.bool||p,l[u]=d.field,n[u]=e,"not"===
e?w=!0:"and"===e&&(v=!0)}else l=this.a.keys;p=l.length;for(u=0;u<p;u++)x&&(g=x[u]),k&&!t(g)&&(g.page=null,g.limit=0),f[u]=m[l[u]].search(g,0);if(c)return c(sa(this,a,n,f,h,b,q,r,k,v,w));if(this.async){var A=this;return new Promise(function(da){Promise.all(f).then(function(za){da(sa(A,a,n,za,h,b,q,r,k,v,w))})})}return sa(this,a,n,f,h,b,q,r,k,v,w)}m||(m=this.threshold||0);if(!d){if(this.async&&"function"!==typeof importScripts){var B=this;m=new Promise(function(da){setTimeout(function(){da(B.search(g,
b,null,!0));B=null})});if(c)m.then(c);else return m;return this}if(c)return c(this.search(g,b,null,!0)),this}if(!a||!t(a))return f;g=a;if(this.g)if(this.b){if(c=this.g.get(a))return c}else this.g.clear(),this.b=!0;g=this.encode(g);if(!g.length)return f;c=g;x=c.length;d=!0;e=[];var M=F(),Q=0;1<x&&(this.depth?p=!0:c.sort(wa));if(!p||(u=this.i))for(var T=this.c;Q<x;Q++){var C=c[Q];if(C){if(p){if(!l)if(u[C])l=C,M[C]=1;else if(!q)return f;if(q&&Q===x-1&&!e.length)p=!1,C=l||C,M[C]=0;else if(!l)continue}if(!M[C]){var D=
[],N=!1,H=0,I=p?u[l]:this.j;if(I)for(var R=void 0,J=0;J<T-m;J++)if(R=I[J]&&I[J][C])D[H++]=R,N=!0;if(N)l=C,e[e.length]=1<H?D.concat.apply([],D):D[0];else if(!q){d=!1;break}M[C]=1}}}else d=!1;d&&(f=ta(e,b,k,q));this.g&&this.g.set(a,f);return f};O.prototype.info=function(){return{id:this.id,items:this.length,matcher:this.u.length,worker:this.v,threshold:this.threshold,depth:this.depth,resolution:this.c,contextual:this.depth&&"strict"===this.D}};O.prototype.clear=function(){return this.destroy().init()};
O.prototype.destroy=function(){this.g&&(this.g.clear(),this.g=null);this.j=this.i=this.f=null;if(this.a){for(var a=this.a.keys,b=0;b<a.length;b++)this.a.index[a[b]].destroy();this.a=this.l=null}return this};function oa(a,b,c){Object.defineProperty(a,b,{get:c})}function X(a,b,c,d,e,f,g,h){if(b[c])return b[c];e=e?(h-(g||h/1.5))*f+(g||h/1.5)*e:f;b[c]=e;e>=g&&(a=a[h-(e+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=d);return e}
function ra(a,b){if(a)for(var c=Object.keys(a),d=0,e=c.length;d<e;d++){var f=c[d],g=a[f];if(g)for(var h=0,k=g.length;h<k;h++)if(g[h]===b){1===k?delete a[f]:g.splice(h,1);break}else z(g[h])&&ra(g[h],b)}}function pa(a,b){for(var c=Object.keys(a),d=c.length,e=[],f="",g=0,h=0,k;h<d;h++){var m=c[h];(k=a[m])?(e[g++]=K(b?"(?!\\b)"+m+"(\\b|_)":m),e[g++]=k):f+=(f?"|":"")+m}f&&(e[g++]=K(b?"(?!\\b)("+f+")(\\b|_)":"("+f+")"),e[g]="");return e}function wa(a,b){return b.length-a.length}
function va(a,b){a=a[Y];b=b[Y];return a<b?-1:a>b?1:0}function ua(a,b){for(var c=Y.length,d=0;d<c;d++)a=a[Y[d]],b=b[Y[d]];return a<b?-1:a>b?1:0}function Z(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c}
function ta(a,b,c,d,e,f,g){var h=[];if(!0===c){c="0";var k=""}else k=c&&c.split(":");var m=a.length;if(1<m){var q=F(),r=[],p,l=0,n,w=!0,v=0,x;if(k)if(2===k.length){var u=k;k=!1}else k=x=parseInt(k[0],10);if(g){for(p=F();l<m;l++)if("not"===e[l]){var A=a[l];var B=A.length;for(n=0;n<B;n++)p["@"+A[n]]=1}else var M=l+1;if(E(M))return Z(c,J,h);l=0}else var Q=t(e)&&e;for(var T;l<m;l++){var C=l===(M||m)-1;if(!Q||!l)if((n=Q||e&&e[l])&&"and"!==n)if("or"===n)T=!1;else continue;else T=f=!0;A=a[l];if(B=A.length){if(w)if(H){var D=
H.length;for(n=0;n<D;n++){w=H[n];var N="@"+w;g&&p[N]||(q[N]=1,f||(h[v++]=w))}var H=null;w=!1}else{H=A;continue}N=!1;for(n=0;n<B;n++){D=A[n];var I="@"+D,R=f?q[I]||0:l;if(!(!R&&!d||g&&p[I]||!f&&q[I]))if(R===l){if(C){if(!x||--x<v)if(h[v++]=D,b&&v===b)return Z(c,v+(k||0),h)}else q[I]=l+1;N=!0}else d&&(I=r[R]||(r[R]=[]),I[I.length]=D)}if(T&&!N&&!d)break}else if(T&&!d)return Z(c,J,A)}if(H)if(l=H.length,g)for(n=k?parseInt(k,10):0;n<l;n++)a=H[n],p["@"+a]||(h[v++]=a);else h=H;if(d)for(v=h.length,u?(l=parseInt(u[0],
10)+1,n=parseInt(u[1],10)+1):(l=r.length,n=0);l--;)if(D=r[l]){for(B=D.length;n<B;n++)if(d=D[n],!g||!p["@"+d])if(h[v++]=d,b&&v===b)return Z(c,l+":"+n,h);n=0}}else!m||e&&"not"===e[0]||(h=a[0],k&&(k=parseInt(k[0],10)));if(b){g=h.length;k&&k>g&&(k=0);k=k||0;var J=k+b;J<g?h=h.slice(k,J):(J=0,k&&(h=h.slice(k)))}return Z(c,J,h)};var ya={encode:xa,h:!1},Aa=/[\W_]+/,Ba=[K("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",K("[\u00e8\u00e9\u00ea\u00eb]"),"e",K("[\u00ec\u00ed\u00ee\u00ef]"),"i",K("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",K("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",K("[\u00fd\u0177\u00ff]"),"y",K("\u00f1"),"n",K("[\u00e7c]"),"k",K("\u00df"),"s",K(" & ")," and "];function xa(a,b){return L(b||this,a.toLowerCase(),Ba,Aa)};var Ca=[K("ae"),"a",K("ai"),"ei",K("ay"),"ei",K("ey"),"ei",K("oe"),"o",K("ue"),"u",K("ie"),"i",K("sz"),"s",K("zs"),"s",K("sh"),"s",K("ck"),"k",K("cc"),"k",K("th"),"t",K("dt"),"t",K("ph"),"f",K("pf"),"f",K("ou"),"o",K("uo"),"u"];function Da(a,b,c){a&&(a=xa(a,b||this).join(" "),2<a.length&&(a=G(a,Ca)),c||(1<a.length&&(a=ca(a)),a&&(a=a.split(" "))));return a};var Fa={encode:Ea,h:!1},Ga=/[\W_]+/;function Ea(a){return L(this,a.toLowerCase(),!1,Ga)};var Ia={encode:Ha,h:!1},Ja=[K("(?!\\b)p"),"b",K("(?!\\b)z"),"s",K("(?!\\b)[cgq]"),"k",K("(?!\\b)n"),"m",K("(?!\\b)d"),"t",K("(?!\\b)[vw]"),"f",K("(?!\\b)[aeiouy]"),""];function Ha(a){a&&(a=Da(a,this,!0),1<a.length&&(a=G(a,Ja)),1<a.length&&(a=ca(a)),a&&(a=a.split(" ")));return a};var La={encode:Ka,h:!1,B:"strict"},Ma=/[^a-z]+/;function Ka(a){a=L(this,a.toLowerCase(),!1,!1);var b=[];if(a)for(var c=a.split(Ma),d=c.length,e=0,f=0;e<d;e++)if((a=c[e])&&2<a.length&&(!this.filter||!this.filter[a])){for(var g=a[0],h=Na(g),k=1;k<a.length;k++){var m=Na(a[k]);if(m!==h&&(g+=m,h=m,4===g.length))break}b[f++]=(g+"0000").substring(0,4)}return b}
function Na(a){switch(a){case "b":case "f":case "p":case "v":return 1;case "c":case "g":case "j":case "k":case "q":case "s":case "x":case "z":return 2;case "d":case "t":return 3;case "l":return 4;case "m":case "n":return 5;case "r":return 6}return""};var Pa={encode:Oa,h:!0},Qa=/[\x00-\x7F]+/g;function Oa(a){return L(this,a.replace(Qa," "),!1," ")};var Sa={encode:Ra,h:!1,B:"strict"},Ta=/[\x00-\x7F]+/g;function Ra(a){return L(this,a.replace(Ta,""),!1,"")};var Va={encode:Ua,h:!1},Wa=/[\x00-\x7F]+/g;function Ua(a){return L(this,a.replace(Wa," "),!1," ")};V["latin:advanced"]={encode:Da,h:!1};V["latin:balance"]=Fa;V["latin:default"]=ka;V["latin:extra"]=Ia;V["latin:simple"]=ya;V["latin:soundex"]=La;V["arabic:default"]=Pa;V["cjk:default"]=Sa;V["cyrillic:default"]=Va;(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return O}):"object"===typeof a.exports?a.module.exports=O:a.FlexSearch=O})();}).call(this);

View File

@@ -5,15 +5,14 @@
* Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch
*/
(function(){'use strict';var v;Object.assign||(Object.assign=function(){for(var a=arguments,b=a.length,c=a[0],e=1,d,h,g;e<b;e++){d=a[e];h=Object.keys(d);g=h.length;for(var f=0,p;f<g;f++)p=h[f],c[p]=d[p]}return c});function w(a){return"string"===typeof a}function y(a){for(var b=Array(a),c=0;c<a;c++)b[c]=z();return b}function z(){return Object.create(null)}function B(a,b){for(var c=0,e=b.length;c<e&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a};var C=/[\W_]+/;var G={encode:function(a){if(a=a.toLowerCase())if(a&&this.g&&(a=B(a,this.g)),this.h&&1<a.length&&(a=B(a,this.h)),a&&(C||""===C)&&(a=a.split(C),this.filter)){for(var b=this.filter,c=a.length,e=[],d=0,h=0;d<c;d++){var g=a[d];g&&!b[g]&&(e[h++]=g)}a=e}return a},tokenize:"strict",cache:!1,async:!1,worker:!1,rtl:!1,doc:!1,resolution:9,threshold:0,depth:0},H=0,I={},J={};
function K(a){if(!(this instanceof K))return new K(a);var b=a&&a.id;this.id=b||0===b?b:H++;this.init(a);L(this,"index",function(){return Object.keys(this.a)});L(this,"length",function(){return this.index.length})}K.registerCharset=function(a,b){J[a]=b;return K};K.registerLanguage=function(a,b){J[a]=b;return K};v=K.prototype;
v.init=function(a){var b;this.encode||(a?a=Object.assign({},G,a):a=G);if(a){var c=a.charset,e=a.lang;this.j=(w(c)?J[c].l:c&&c.l)||a.tokenize;this.i=w(b=a.rtl||c)?J[b].i:c&&c.i||b;this.threshold=a.threshold;this.f=(b=a.resolution)<=this.threshold?this.threshold+1:b;this.depth="strict"===this.j&&a.depth||0;this.encode=w(b=a.encode||c)?J[-1===b.indexOf(":")?b+":default":b].encode:c&&c.encode||b;this.g=(b=a.matcher||e)&&M(w(b)?I[b].g:e&&e.g||b,!1);if(c=b=a.filter||e){c=w(b)?I[b].filter:e&&e.filter||b;
for(var d=z(),h=0,g=c.length;h<g;h++)d[c[h]]=1;c=d}this.filter=c;this.h=(b=a.stemmer||e)&&M(w(b)?I[b].h:e&&e.h||b,!0)}this.c=y(this.f-(this.threshold||0));this.b=z();this.a={};return this};
v.add=function(a,b,c,e,d){if(b&&w(b)&&(a||0===a)){if(this.a[a]&&!e)return this.update(a,b);if(!d&&c)return this.add(a,b,null,e,!0),c(),this;b=this.encode(b);if(!b.length)return this;c=z();c._ctx=z();e=b.length;d=this.threshold;for(var h=this.depth,g=this.f,f=this.c,p=this.i,l=0;l<e;l++){var q=b[l];if(q){var m=q.length,n=(p?l+1:e-l)/e,r="";switch(this.j){case "reverse":case "both":for(var k=m;--k;)r=q[k]+r,N(f,c,r,a,p?1:(m-k)/m,n,d,g-1);r="";case "forward":for(k=0;k<m;k++)r+=q[k],N(f,c,r,a,p?(k+1)/
m:1,n,d,g-1);break;case "full":for(k=0;k<m;k++)for(var t=(p?k+1:m-k)/m,u=m;u>k;u--)r=q.substring(k,u),N(f,c,r,a,t,n,d,g-1);break;default:if(m=N(f,c,q,a,1,n,d,g-1),h&&1<e&&m>=d)for(m=c._ctx[q]||(c._ctx[q]=z()),q=this.b[q]||(this.b[q]=y(g-(d||0))),n=l-h,r=l+h+1,0>n&&(n=0),r>e&&(r=e);n<r;n++)n!==l&&N(q,m,b[n],a,0,g-(n<l?l-n:n-l),d,g-1)}}}this.a[a]=1}return this};v.update=function(a,b,c){this.a[a]&&w(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
v.remove=function(a,b,c){if(this.a[a]){if(!c&&b)return this.remove(a,null,!0),b(),this;for(b=0;b<this.f-(this.threshold||0);b++)O(this.c[b],a);this.depth&&O(this.b,a);delete this.a[a]}return this};
v.search=function(a,b,c,e){b&&"function"===typeof b?(c=b,b=1E3):b||0===b||(b=1E3);var d=[],h=a;if("object"===typeof a){var g=!1;b=a.limit;var f=a.threshold;var p=!1;a=a.query}f||(f=this.threshold||0);if(!e&&c)return c(this.search(h,b,null,!0)),this;if(!a||!w(a))return d;h=this.encode(a);if(!h.length)return d;c=h;e=c.length;h=!0;a=[];var l=z(),q,m=0;1<e&&(this.depth?q=!0:c.sort(R));var n;if(!q||(n=this.b))for(var r=this.f;m<e;m++){var k=c[m];if(k){if(q){if(!t)if(n[k]){var t=k;l[k]=1}else if(!p)return d;
if(p&&m===e-1&&!a.length)q=!1,k=t||k,l[k]=0;else if(!t)continue}if(!l[k]){var u=[],E=!1,P=0;if(t=q?n[t]:this.c)for(var Q,F=0;F<r-f;F++)if(Q=t[F]&&t[F][k])u[P++]=Q,E=!0;if(E)t=k,a[a.length]=1<P?u.concat.apply([],u):u[0];else{h=!1;break}l[k]=1}}}else h=!1;if(h)a:{d=[];!0===g?(g="0",f=""):f=g&&g.split(":");p=a.length;if(1<p){q=z();t=0;r=!0;h=0;var A;for(f&&(2===f.length?f=!1:f=A=parseInt(f[0],10));t<p;t++)if(l=t===p-1,n=a[t],e=n.length){if(r)if(x){m=x.length;for(c=0;c<m;c++)q["@"+x[c]]=1;var x=null;
r=!1}else{x=n;continue}k=!1;for(c=0;c<e;c++)if(m=n[c],u="@"+m,(E=q[u]||0)&&E===t){if(l){if(!A||--A<h)if(d[h++]=m,b&&h===b){d=S(g,h+(f||0),d);break a}}else q[u]=t+1;k=!0}if(!k)break}else{d=S(g,D,n);break a}x&&(d=x)}else p&&(d=a[0],f&&(f=parseInt(f[0],10)));if(b){x=d.length;f&&f>x&&(f=0);A=f||0;var D=A+b;D<x?d=d.slice(A,D):(D=0,A&&(d=d.slice(A)))}d=S(g,D,d)}return d};v.clear=function(){return this.destroy().init()};v.destroy=function(){this.c=this.b=this.a=null;return this};
function L(a,b,c){Object.defineProperty(a,b,{get:c})}function N(a,b,c,e,d,h,g,f){if(b[c])return b[c];d=d?(f-(g||f/1.5))*h+(g||f/1.5)*d:h;b[c]=d;d>=g&&(a=a[f-(d+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=e);return d}function O(a,b){if(a)for(var c=Object.keys(a),e=0,d=c.length;e<d;e++){var h=c[e],g=a[h];if(g)for(var f=0,p=g.length;f<p;f++)if(g[f]===b){1===p?delete a[h]:g.splice(f,1);break}else"object"===typeof g[f]&&O(g[f],b)}}
function M(a,b){for(var c=Object.keys(a),e=c.length,d=[],h="",g=0,f=0,p;f<e;f++){var l=c[f];(p=a[l])?(d[g++]=new RegExp(b?"(?!\\b)"+l+"(\\b|_)":l,"g"),d[g++]=p):h+=(h?"|":"")+l}h&&(d[g++]=new RegExp(b?"(?!\\b)("+h+")(\\b|_)":"("+h+")","g"),d[g]="");return d}function R(a,b){return b.length-a.length}function S(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c};(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return K}):"object"===typeof a.exports?a.module.exports=K:a.FlexSearch=K})();}).call(this);
(function(){'use strict';var u;Object.assign||(Object.assign=function(){for(var a=arguments,b=a.length,c=a[0],e=1,d,h,g;e<b;e++){d=a[e];h=Object.keys(d);g=h.length;for(var f=0,m;f<g;f++)m=h[f],c[m]=d[m]}return c});function v(a){return"string"===typeof a}function y(a){for(var b=Array(a),c=0;c<a;c++)b[c]=B();return b}function B(){return Object.create(null)}function C(a,b){for(var c=0,e=b.length;c<e&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a};var F=/[\W_]+/;function G(a){if(a=a.toLowerCase())if(a&&this.g&&(a=C(a,this.g)),this.h&&1<a.length&&(a=C(a,this.h)),a&&(F||""===F)&&(a=a.split(F),this.filter)){for(var b=this.filter,c=a.length,e=[],d=0,h=0;d<c;d++){var g=a[d];g&&!b[g]&&(e[h++]=g)}a=e}return a};var H=0,I={},J={};function K(a){if(!(this instanceof K))return new K(a);var b=a&&a.id;this.id=b||0===b?b:H++;this.init(a);L(this,"index",function(){return Object.keys(this.a)});L(this,"length",function(){return this.index.length})}K.registerCharset=function(a,b){J[a]=b;return K};K.registerLanguage=function(a,b){I[a]=b;return K};u=K.prototype;
u.init=function(a){var b;a||(a={});var c=a.charset,e=a.lang;v(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=J[c]);v(e)&&(e=I[e]);this.j=b=c&&c.l||a.tokenize||"strict";this.depth="strict"===b&&a.depth||0;this.i=c&&c.i||a.rtl||!1;this.b=a.resolution||9;this.threshold=b=a.threshold||0;this.b<=b&&(this.b=b+1);this.encode=a.encode||c&&c.encode||G;this.g=(b=a.matcher||e&&e.g)&&M(b,!1);this.h=(b=a.stemmer||e&&e.h)&&M(b,!0);if(a=b=a.filter||e&&e.filter)for(a=B(),c=0,e=b.length;c<e;c++)a[b[c]]=1;this.filter=
a;this.f=y(this.b-this.threshold);this.c=B();this.a=B();return this};
u.add=function(a,b,c,e,d){if(b&&v(b)&&(a||0===a)){if(this.a[a]&&!e)return this.update(a,b);if(!d&&c)return this.add(a,b,null,e,!0),c(),this;b=this.encode(b);if(!b.length)return this;c=B();c._ctx=B();e=b.length;d=this.threshold;for(var h=this.depth,g=this.b,f=this.f,m=this.i,t,q=0;q<e;q++){var n=b[q];if(n){t=1;var p=n.length,r=(m?q+1:e-q)/e,l="";switch(this.j){case "reverse":case "both":for(var k=p;--k;)l=n[k]+l,N(f,c,l,a,m?1:(p-k)/p,r,d,g-1);l="";case "forward":for(k=0;k<p;k++)l+=n[k],N(f,c,l,a,m?
(k+1)/p:1,r,d,g-1);break;case "full":for(k=0;k<p;k++)for(var w=(m?k+1:p-k)/p,z=p;z>k;z--)l=n.substring(k,z),N(f,c,l,a,w,r,d,g-1);break;default:if(p=N(f,c,n,a,1,r,d,g-1),h&&1<e&&p>=d)for(p=c._ctx[n]||(c._ctx[n]=B()),n=this.c[n]||(this.c[n]=y(g-(d||0))),r=q-h,l=q+h+1,0>r&&(r=0),l>e&&(l=e);r<l;r++)r!==q&&N(n,p,b[r],a,0,g-(r<q?q-r:r-q),d,g-1)}}}t&&(this.a[a]=1)}return this};u.update=function(a,b,c){this.a[a]&&v(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
u.remove=function(a,b,c){if(this.a[a]){if(!c&&b)return this.remove(a,null,!0),b(),this;for(b=0;b<this.b-(this.threshold||0);b++)Q(this.f[b],a);this.depth&&Q(this.c,a);delete this.a[a]}return this};
u.search=function(a,b,c,e){b&&"function"===typeof b?(c=b,b=1E3):b||0===b||(b=1E3);var d=[],h=a;if("object"===typeof a){var g=!1;b=a.limit;var f=a.threshold;var m=!1;a=a.query}f||(f=this.threshold||0);if(!e&&c)return c(this.search(h,b,null,!0)),this;if(!a||!v(a))return d;h=this.encode(a);if(!h.length)return d;c=h;e=c.length;h=!0;a=[];var t=B(),q,n=0;1<e&&(this.depth?q=!0:c.sort(R));var p;if(!q||(p=this.c))for(var r=this.b;n<e;n++){var l=c[n];if(l){if(q){if(!k)if(p[l]){var k=l;t[l]=1}else if(!m)return d;
if(m&&n===e-1&&!a.length)q=!1,l=k||l,t[l]=0;else if(!k)continue}if(!t[l]){var w=[],z=!1,O=0;if(k=q?p[k]:this.f)for(var P,E=0;E<r-f;E++)if(P=k[E]&&k[E][l])w[O++]=P,z=!0;if(z)k=l,a[a.length]=1<O?w.concat.apply([],w):w[0];else{h=!1;break}t[l]=1}}}else h=!1;if(h)a:{d=[];!0===g?(g="0",f=""):f=g&&g.split(":");m=a.length;if(1<m){q=B();k=0;r=!0;h=0;var A;for(f&&(2===f.length?f=!1:f=A=parseInt(f[0],10));k<m;k++)if(t=k===m-1,p=a[k],e=p.length){if(r)if(x){n=x.length;for(c=0;c<n;c++)q["@"+x[c]]=1;var x=null;
r=!1}else{x=p;continue}l=!1;for(c=0;c<e;c++)if(n=p[c],w="@"+n,(z=q[w]||0)&&z===k){if(t){if(!A||--A<h)if(d[h++]=n,b&&h===b){d=S(g,h+(f||0),d);break a}}else q[w]=k+1;l=!0}if(!l)break}else{d=S(g,D,p);break a}x&&(d=x)}else m&&(d=a[0],f&&(f=parseInt(f[0],10)));if(b){x=d.length;f&&f>x&&(f=0);A=f||0;var D=A+b;D<x?d=d.slice(A,D):(D=0,A&&(d=d.slice(A)))}d=S(g,D,d)}return d};u.clear=function(){return this.destroy().init()};u.destroy=function(){this.f=this.c=this.a=null;return this};
function L(a,b,c){Object.defineProperty(a,b,{get:c})}function N(a,b,c,e,d,h,g,f){if(b[c])return b[c];d=d?(f-(g||f/1.5))*h+(g||f/1.5)*d:h;b[c]=d;d>=g&&(a=a[f-(d+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=e);return d}function Q(a,b){if(a)for(var c=Object.keys(a),e=0,d=c.length;e<d;e++){var h=c[e],g=a[h];if(g)for(var f=0,m=g.length;f<m;f++)if(g[f]===b){1===m?delete a[h]:g.splice(f,1);break}else"object"===typeof g[f]&&Q(g[f],b)}}
function M(a,b){for(var c=Object.keys(a),e=c.length,d=[],h="",g=0,f=0,m;f<e;f++){var t=c[f];(m=a[t])?(d[g++]=new RegExp(b?"(?!\\b)"+t+"(\\b|_)":t,"g"),d[g++]=m):h+=(h?"|":"")+t}h&&(d[g++]=new RegExp(b?"(?!\\b)("+h+")(\\b|_)":"("+h+")","g"),d[g]="");return d}function R(a,b){return b.length-a.length}function S(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c};(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return K}):"object"===typeof a.exports?a.module.exports=K:a.FlexSearch=K})();}).call(this);

View File

@@ -5,33 +5,33 @@
* Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch
*/
(function(){'use strict';Object.assign||(Object.assign=function(){for(var a=arguments,b=a.length,c=a[0],e=1,d,g,f;e<b;e++){d=a[e];g=Object.keys(d);f=g.length;for(var h=0,k;h<f;h++)k=g[h],c[k]=d[k]}return c});window.requestAnimationFrame||(window.requestAnimationFrame=window.setTimeout);window.cancelAnimationFrame||(window.cancelAnimationFrame=window.clearTimeout);window.Promise||(window.Promise=function(){function a(b){this.b=null;var c=this;b(function(e){c.b&&(c.b(e),c.b=null)})}a.prototype.then=function(b){this.b=b};return a}());function t(a){return"string"===typeof a}function x(a){return a.constructor===Array}function z(a){return"function"===typeof a}function B(a){return"object"===typeof a}function D(a){return"undefined"===typeof a}function aa(a){for(var b=Array(a),c=0;c<a;c++)b[c]=G();return b}function G(){return Object.create(null)}function H(a,b){for(var c=0,e=b.length;c<e&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a}function L(a){return new RegExp(a,"g")}
function ba(a){for(var b="",c="",e=0,d=a.length,g=void 0;e<d;e++)(g=a[e])!==c&&(b+=c=g);return b}function M(a,b,c,e){if(b&&(c&&b&&(b=H(b,c)),b&&a.u&&(b=H(b,a.u)),a.w&&1<b.length&&(b=H(b,a.w)),b&&(e||""===e)&&(b=b.split(e),a.filter))){a=a.filter;c=b.length;e=[];for(var d=0,g=0;d<c;d++){var f=b[d];f&&!a[f]&&(e[g++]=f)}b=e}return b};O.prototype.export=function(a){var b=!a||D(a.serialize)||a.serialize;if(this.a){var c=!a||D(a.doc)||a.doc,e=!a||D(a.index)||a.index;a=[];var d=0;if(e)for(e=this.a.keys;d<e.length;d++){var g=this.a.index[e[d]];a[d]=[g.l,g.i,Object.keys(g.g)]}c&&(a[d]=this.m)}else a=[this.l,this.i,Object.keys(this.g)];b&&(a=JSON.stringify(a));return a};
O.prototype.import=function(a,b){if(!b||D(b.serialize)||b.serialize)a=JSON.parse(a);var c={};if(this.a){var e=!b||D(b.doc)||b.doc,d=0;if(!b||D(b.index)||b.index){b=this.a.keys;for(var g=b.length,f=a[0][2];d<f.length;d++)c[f[d]]=1;for(d=0;d<g;d++){f=this.a.index[b[d]];var h=a[d];h&&(f.l=h[0],f.i=h[1],f.g=c)}}e&&(this.m=B(e)?e:a[d])}else{e=a[2];for(d=0;d<e.length;d++)c[e[d]]=1;this.l=a[0];this.i=a[1];this.g=c}};O.prototype.find=function(a,b){return this.where(a,b,1)[0]||null};
O.prototype.where=function(a,b,c,e){var d=this.m,g=[],f=0,h;if(B(a)){c||(c=b);var k=Object.keys(a);var m=k.length;var r=!1;if(1===m&&"id"===k[0])return[d[a.id]];if((h=this.F)&&!e)for(var q=0;q<h.length;q++){var p=h[q],l=a[p];if(!D(l)){var n=this.B[p]["@"+l];if(0===--m)return n;k.splice(k.indexOf(p),1);delete a[p];break}}h=Array(m);for(q=0;q<m;q++)h[q]=k[q].split(":")}else{if(z(a)){b=e||Object.keys(d);c=b.length;for(k=0;k<c;k++)m=d[b[k]],a(m)&&(g[f++]=m);return g}if(D(b))return[d[a]];if("id"===a)return[d[b]];
k=[a];m=1;h=[a.split(":")];r=!0}e=n||e||Object.keys(d);q=e.length;for(p=0;p<q;p++){l=n?e[p]:d[e[p]];for(var w=!0,u=0;u<m;u++){r||(b=a[k[u]]);var v=h[u],y=v.length,A=l;if(1<y)for(var C=0;C<y;C++)A=A[v[C]];else A=A[v[0]];if(A!==b){w=!1;break}}if(w&&(g[f++]=l,c&&f===c))break}return g};function S(a){this.clear();this.o=!0!==a&&a}S.prototype.clear=function(){this.cache=G();this.count=G();this.index=G();this.b=[]};S.prototype.set=function(a,b){if(this.o&&D(this.cache[a])){var c=this.b.length;if(c===this.o){c--;var e=this.b[c];delete this.cache[e];delete this.count[e];delete this.index[e]}this.b[c]=a;this.index[a]=c;this.count[a]=-1;this.cache[a]=b;this.get(a)}else this.cache[a]=b};
S.prototype.get=function(a){var b=this.cache[a];if(this.o&&b){var c=++this.count[a],e=this.index,d=e[a];if(0<d){for(var g=this.b,f=d;this.count[g[--d]]<=c&&-1!==d;);d++;if(d!==f){for(c=f;c>d;c--)f=g[c-1],g[c]=f,e[f]=c;g[d]=a;e[a]=d}}}return b};var U={},ca="undefined"!==typeof Blob&&"undefined"!==typeof URL&&URL.createObjectURL;function ea(a,b,c){var e=fa,d="flexsearch";e=ca?URL.createObjectURL(new Blob(["("+e.toString()+")()"],{type:"text/javascript"})):d+".browser.js";d+="-"+a;U[d]||(U[d]=[]);U[d][c]=new Worker(e);U[d][c].onmessage=b;return U[d][c]}
function fa(){var a,b;self.onmessage=function(c){if(c=c.data)if(c.search){var e=b.search(c.content,c.threshold?{limit:c.limit,threshold:c.threshold,where:c.where}:c.limit);self.postMessage({id:a,content:c.content,limit:c.limit,result:e})}else c.add?b.add(c.id,c.content):c.update?b.update(c.id,c.content):c.remove?b.remove(c.id):c.clear?b.clear():c.info?(c=b.info(),c.worker=a,console.log(c)):c.register&&(a=c.id,c.options.cache=!1,c.options.async=!1,c.options.worker=!1,b=(new Function(c.register.substring(c.register.indexOf("{")+
1,c.register.lastIndexOf("}"))))(),b=new b(c.options))}}function ha(a,b,c,e){a=ea("id"+a,function(g){(g=g.data)&&g.result&&e(g.id,g.content,g.result,g.limit,g.where,g.cursor,g.suggest)},b);var d=O.toString();c.id=b;a.postMessage({register:d,options:c,id:b});return a}O.prototype.G=function(a,b,c,e){this.v!==this.A&&(this.s=this.s.concat(c),this.v++,e&&this.s.length>=e&&(this.v=this.A),this.v===this.A&&(this.cache&&this.f.set(b,this.s),this.C&&this.C(this.s)));return this};var ia={memory:{encode:"extra",j:"strict",threshold:0,h:1},speed:{encode:"icase",j:"strict",threshold:1,h:3,depth:2},match:{encode:"extra",j:"full",threshold:1,h:3},score:{encode:"extra",j:"strict",threshold:1,h:9,depth:4},balance:{encode:"balance",j:"strict",threshold:0,h:3,depth:3},fast:{encode:"icase",j:"strict",threshold:8,h:9,depth:1}};var ka={encode:ja,c:!1},la=/[\W_]+/;function ja(a){return M(this,a.toLowerCase(),!1,la)};var ma={encode:ja,tokenize:"strict",cache:!1,async:!1,worker:!1,rtl:!1,doc:!1,resolution:9,threshold:0,depth:0},na=0,oa={},V={};function O(a){if(!(this instanceof O))return new O(a);var b=a&&a.id;this.id=b||0===b?b:na++;this.init(a);pa(this,"index",function(){return Object.keys(this.g)});pa(this,"length",function(){return this.index.length})}O.registerCharset=function(a,b){V[a]=b;return O};O.registerLanguage=function(a,b){V[a]=b;return O};
O.prototype.init=function(a){var b,c;if(t(a))a=ia[a];else if(b=a.preset)a=Object.assign({},ia[b],a);this.encode||(a?a=Object.assign({},ma,a):a=ma);if(a){if(b=a.worker){if("undefined"===typeof ea)a.worker=!1,this.D=null;else{var e=parseInt(b,10)||4;this.v=0;this.s=[];this.C=null;this.D=Array(e);for(c=0;c<e;c++)this.D[c]=ha(this.id,c,a,this.G)}this.A=b}this.async=a.async;c=a.charset;e=a.lang;this.o=(t(c)?V[c].j:c&&c.j)||a.tokenize;this.c=t(b=a.rtl||c)?V[b].c:c&&c.c||b;this.threshold=a.threshold;this.h=
(b=a.resolution)<=this.threshold?this.threshold+1:b;this.depth="strict"===this.o&&a.depth||0;this.encode=t(b=a.encode||c)?V[-1===b.indexOf(":")?b+":default":b].encode:c&&c.encode||b;this.u=(b=a.matcher||e)&&qa(t(b)?oa[b].u:e&&e.u||b,!1);if(c=b=a.filter||e){c=t(b)?oa[b].filter:e&&e.filter||b;for(var d=G(),g=0,f=c.length;g<f;g++)d[c[g]]=1;c=d}this.filter=c;this.w=(b=a.stemmer||e)&&qa(t(b)?oa[b].w:e&&e.w||b,!0);(this.a=c=(b=a.doc)&&ra(b))&&(a.doc=null)}this.l=aa(this.h-(this.threshold||0));this.i=G();
this.g={};if(c){this.m=G();b=c.index={};e=c.keys=[];d=c.field;g=c.tag;f=c.store;x(c.id)||(c.id=c.id.split(":"));if(f){var h=G();if(t(f))h[f]=1;else if(x(f))for(var k=0;k<f.length;k++)h[f[k]]=1;else B(f)&&(h=f);c.store=h}if(g){this.B=G();f=G();if(d)if(t(d))f[d]=a;else if(x(d))for(h=0;h<d.length;h++)f[d[h]]=a;else B(d)&&(f=d);x(g)||(c.tag=g=[g]);for(d=0;d<g.length;d++)this.B[g[d]]=G();this.F=g;d=f}if(d){if(!x(d))if(B(d)){var m=d;c.field=d=Object.keys(d)}else c.field=d=[d];for(c=0;c<d.length;c++)g=d[c],
x(g)||(m&&(a=m[g]),e[c]=g,d[c]=g.split(":")),b[g]=new O(a)}}if(b=a.cache)this.b=!0,this.f=new S(b);return this};function ra(a){var b=G(),c;for(c in a)if(a.hasOwnProperty(c)){var e=a[c];b[c]=x(e)?e.slice(0):B(e)?ra(e):e}return b}
O.prototype.add=function(a,b,c,e,d){if(this.a&&B(a))return W(this,"add",a,b);if(b&&t(b)&&(a||0===a)){if(this.g[a]&&!e)return this.update(a,b);if(!d){if(this.async&&"function"!==typeof importScripts){var g=this;d=new Promise(function(C){setTimeout(function(){g.add(a,b,null,e,!0);g=null;C()})});if(c)d.then(c);else return d;return this}if(c)return this.add(a,b,null,e,!0),c(),this}b=this.encode(b);if(!b.length)return this;c=b;d=G();d._ctx=G();for(var f=c.length,h=this.threshold,k=this.depth,m=this.h,
r=this.l,q=this.c,p=0;p<f;p++){var l=c[p];if(l){var n=l.length,w=(q?p+1:f-p)/f,u="";switch(this.o){case "reverse":case "both":for(var v=n;--v;)u=l[v]+u,X(r,d,u,a,q?1:(n-v)/n,w,h,m-1);u="";case "forward":for(v=0;v<n;v++)u+=l[v],X(r,d,u,a,q?(v+1)/n:1,w,h,m-1);break;case "full":for(v=0;v<n;v++)for(var y=(q?v+1:n-v)/n,A=n;A>v;A--)u=l.substring(v,A),X(r,d,u,a,y,w,h,m-1);break;default:if(n=X(r,d,l,a,1,w,h,m-1),k&&1<f&&n>=h)for(n=d._ctx[l]||(d._ctx[l]=G()),l=this.i[l]||(this.i[l]=aa(m-(h||0))),w=p-k,u=p+
k+1,0>w&&(w=0),u>f&&(u=f);w<u;w++)w!==p&&X(l,n,c[w],a,0,m-(w<p?p-w:w-p),h,m-1)}}}this.g[a]=1;this.b=!1}return this};
function W(a,b,c,e){if(x(c)){var d=c.length;if(d--){for(var g=0;g<d;g++)W(a,b,c[g]);return W(a,b,c[d],e)}}else{var f=a.a.index,h=a.a.keys,k=a.a.tag;g=a.a.store;var m;var r=a.a.id;d=c;for(var q=0;q<r.length;q++)d=d[r[q]];if("remove"===b&&(delete a.m[d],r=h.length,r--)){for(a=0;a<r;a++)f[h[a]].remove(d);return f[h[r]].remove(d,e)}if(k){for(m=0;m<k.length;m++){var p=k[m];var l=c;r=p.split(":");for(q=0;q<r.length;q++)l=l[r[q]];l="@"+l}m=a.B[p];m=m[l]||(m[l]=[])}r=a.a.field;k=0;for(p=r.length;k<p;k++){q=
r[k];l=c;for(var n=0;n<q.length;n++)l=l[q[n]];q=f[h[k]];"add"===b?q.add(d,l,k===p-1&&e):q.update(d,l,k===p-1&&e)}if(g){e=Object.keys(g);b=G();for(f=0;f<e.length;f++)if(h=e[f],g[h])for(h=h.split(":"),k=r=void 0,p=0;p<h.length;p++)l=h[p],r=(r||c)[l],k=(k||b)[l]=r;c=b}m&&(m[m.length]=c);a.m[d]=c}return a}O.prototype.update=function(a,b,c){if(this.a&&B(a))return W(this,"update",a,b);this.g[a]&&t(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
O.prototype.remove=function(a,b,c){if(this.a&&B(a))return W(this,"remove",a,b);if(this.g[a]){if(!c){if(this.async&&"function"!==typeof importScripts){var e=this;c=new Promise(function(d){setTimeout(function(){e.remove(a,null,!0);e=null;d()})});if(b)c.then(b);else return c;return this}if(b)return this.remove(a,null,!0),b(),this}for(b=0;b<this.h-(this.threshold||0);b++)sa(this.l[b],a);this.depth&&sa(this.i,a);delete this.g[a];this.b=!1}return this};var Y;
function ta(a,b,c,e,d,g,f,h,k,m,r){e=ua(e,h?0:g,k,f,c,m,r);if(k){k=e.page;var q=e.next;e=e.result}if(h)e=a.where(h,null,g,e);else{c=e;e=a.m;g=c.length;f=Array(g);for(h=0;h<g;h++)f[h]=e[c[h]];e=f}d&&(z(d)||(Y=d.split(":"),1<Y.length?d=va:(Y=Y[0],d=wa)),e.sort(d));e=Z(k,q,e);a.f&&a.f.set(b,e);return e}
O.prototype.search=function(a,b,c,e){if(B(b)){if(x(b))for(var d=0;d<b.length;d++)b[d].query=a;else b.query=a;a=b;b=1E3}else b&&z(b)?(c=b,b=1E3):b||0===b||(b=1E3);var g=[],f=a;if(B(a)&&!x(a)){c||(c=a.callback)&&(f.callback=null);var h=a.sort;var k=a.page;b=a.limit;var m=a.threshold;var r=a.suggest;a=a.query}if(this.a){m=this.a.index;var q=f.where,p=f.bool||"or",l=f.field,n=p,w,u;if(l)x(l)||(l=[l]);else if(x(f)){var v=f;l=[];n=[];for(var y=0;y<f.length;y++)e=f[y],d=e.bool||p,l[y]=e.field,n[y]=d,"not"===
d?w=!0:"and"===d&&(u=!0)}else l=this.a.keys;p=l.length;for(y=0;y<p;y++)v&&(f=v[y]),k&&!t(f)&&(f.page=null,f.limit=0),g[y]=m[l[y]].search(f,0);if(c)return c(ta(this,a,n,g,h,b,r,q,k,u,w));if(this.async){var A=this;return new Promise(function(da){Promise.all(g).then(function(Aa){da(ta(A,a,n,Aa,h,b,r,q,k,u,w))})})}return ta(this,a,n,g,h,b,r,q,k,u,w)}m||(m=this.threshold||0);if(!e){if(this.async&&"function"!==typeof importScripts){var C=this;m=new Promise(function(da){setTimeout(function(){da(C.search(f,
b,null,!0));C=null})});if(c)m.then(c);else return m;return this}if(c)return c(this.search(f,b,null,!0)),this}if(!a||!t(a))return g;f=a;if(this.f)if(this.b){if(c=this.f.get(a))return c}else this.f.clear(),this.b=!0;f=this.encode(f);if(!f.length)return g;c=f;v=c.length;e=!0;d=[];var P=G(),Q=0;1<v&&(this.depth?p=!0:c.sort(xa));if(!p||(y=this.i))for(var T=this.h;Q<v;Q++){var E=c[Q];if(E){if(p){if(!l)if(y[E])l=E,P[E]=1;else if(!r)return g;if(r&&Q===v-1&&!d.length)p=!1,E=l||E,P[E]=0;else if(!l)continue}if(!P[E]){var F=
[],N=!1,I=0,J=p?y[l]:this.l;if(J)for(var R=void 0,K=0;K<T-m;K++)if(R=J[K]&&J[K][E])F[I++]=R,N=!0;if(N)l=E,d[d.length]=1<I?F.concat.apply([],F):F[0];else if(!r){e=!1;break}P[E]=1}}}else e=!1;e&&(g=ua(d,b,k,r));this.f&&this.f.set(a,g);return g};O.prototype.info=function(){return{id:this.id,items:this.length,matcher:this.u.length,worker:this.A,threshold:this.threshold,depth:this.depth,resolution:this.h,contextual:this.depth&&"strict"===this.o}};O.prototype.clear=function(){return this.destroy().init()};
O.prototype.destroy=function(){this.f&&(this.f.clear(),this.f=null);this.l=this.i=this.g=null;if(this.a){for(var a=this.a.keys,b=0;b<a.length;b++)this.a.index[a[b]].destroy();this.a=this.m=null}return this};function pa(a,b,c){Object.defineProperty(a,b,{get:c})}function X(a,b,c,e,d,g,f,h){if(b[c])return b[c];d=d?(h-(f||h/1.5))*g+(f||h/1.5)*d:g;b[c]=d;d>=f&&(a=a[h-(d+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=e);return d}
function sa(a,b){if(a)for(var c=Object.keys(a),e=0,d=c.length;e<d;e++){var g=c[e],f=a[g];if(f)for(var h=0,k=f.length;h<k;h++)if(f[h]===b){1===k?delete a[g]:f.splice(h,1);break}else B(f[h])&&sa(f[h],b)}}function qa(a,b){for(var c=Object.keys(a),e=c.length,d=[],g="",f=0,h=0,k;h<e;h++){var m=c[h];(k=a[m])?(d[f++]=L(b?"(?!\\b)"+m+"(\\b|_)":m),d[f++]=k):g+=(g?"|":"")+m}g&&(d[f++]=L(b?"(?!\\b)("+g+")(\\b|_)":"("+g+")"),d[f]="");return d}function xa(a,b){return b.length-a.length}
function wa(a,b){return a[Y]-b[Y]}function va(a,b){for(var c=Y.length,e=0;e<c;e++)a=a[Y[e]],b=b[Y[e]];return a-b}function Z(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c}
function ua(a,b,c,e,d,g,f){var h=[];if(!0===c){c="0";var k=""}else k=c&&c.split(":");var m=a.length;if(1<m){var r=G(),q=[],p,l=0,n,w=!0,u=0,v;if(k)if(2===k.length){var y=k;k=!1}else k=v=parseInt(k[0],10);if(f){for(p=G();l<m;l++)if("not"===d[l]){var A=a[l];var C=A.length;for(n=0;n<C;n++)p["@"+A[n]]=1}else var P=l+1;if(D(P))return Z(c,K,h);l=0}else var Q=t(d)&&d;for(var T;l<m;l++){var E=l===(P||m)-1;if(!Q||!l)if((n=Q||d&&d[l])&&"and"!==n)if("or"===n)T=!1;else continue;else T=g=!0;A=a[l];if(C=A.length){if(w)if(I){var F=
I.length;for(n=0;n<F;n++){w=I[n];var N="@"+w;f&&p[N]||(r[N]=1,g||(h[u++]=w))}var I=null;w=!1}else{I=A;continue}N=!1;for(n=0;n<C;n++){F=A[n];var J="@"+F,R=g?r[J]||0:l;if(!(!R&&!e||f&&p[J]||!g&&r[J]))if(R===l){if(E){if(!v||--v<u)if(h[u++]=F,b&&u===b)return Z(c,u+(k||0),h)}else r[J]=l+1;N=!0}else e&&(J=q[R]||(q[R]=[]),J[J.length]=F)}if(T&&!N&&!e)break}else if(T&&!e)return Z(c,K,A)}if(I)if(l=I.length,f)for(n=k?parseInt(k,10):0;n<l;n++)a=I[n],p["@"+a]||(h[u++]=a);else h=I;if(e)for(u=h.length,y?(l=parseInt(y[0],
10)+1,n=parseInt(y[1],10)+1):(l=q.length,n=0);l--;)if(F=q[l]){for(C=F.length;n<C;n++)if(e=F[n],!f||!p["@"+e])if(h[u++]=e,b&&u===b)return Z(c,l+":"+n,h);n=0}}else!m||d&&"not"===d[0]||(h=a[0],k&&(k=parseInt(k[0],10)));if(b){f=h.length;k&&k>f&&(k=0);k=k||0;var K=k+b;K<f?h=h.slice(k,K):(K=0,k&&(h=h.slice(k)))}return Z(c,K,h)};var za={encode:ya,c:!1},Ba=/[\W_]+/,Ca=[L("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",L("[\u00e8\u00e9\u00ea\u00eb]"),"e",L("[\u00ec\u00ed\u00ee\u00ef]"),"i",L("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",L("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",L("[\u00fd\u0177\u00ff]"),"y",L("\u00f1"),"n",L("[\u00e7c]"),"k",L("\u00df"),"s",L(" & ")," and "];function ya(a,b){b||(b=this);return M(b,a.toLowerCase(),Ca,Ba)};var Da=[L("ae"),"a",L("ai"),"ei",L("ay"),"ei",L("ey"),"ei",L("oe"),"o",L("ue"),"u",L("ie"),"i",L("sz"),"s",L("zs"),"s",L("sh"),"s",L("ck"),"k",L("cc"),"k",L("th"),"t",L("dt"),"t",L("ph"),"f",L("pf"),"f",L("ou"),"o",L("uo"),"u"];function Ea(a,b){a&&(a=ya(a,this).join(" "),2<a.length&&(a=H(a,Da)),b||(1<a.length&&(a=ba(a)),a&&(a=a.split(" "))));return a};var Ga={encode:Fa,c:!1},Ha=/[\W_]+/;function Fa(a){return M(this,a.toLowerCase(),!1,Ha)};var Ja={encode:Ia,c:!1},Ka=[L("(?!\\b)p"),"b",L("(?!\\b)z"),"s",L("(?!\\b)[cgq]"),"k",L("(?!\\b)n"),"m",L("(?!\\b)d"),"t",L("(?!\\b)[vw]"),"f",L("(?!\\b)[aeiouy]"),""];function Ia(a){a&&(a=Ea(a,!0),1<a.length&&(a=H(a,Ka)),1<a.length&&(a=ba(a)),a&&(a=a.split(" ")));return a};var Ma={encode:La,c:!1,j:"strict"},Na=/[^a-z]+/;function La(a){a=M(this,a.toLowerCase(),!1,!1);var b=[];if(a)for(var c=a.split(Na),e=c.length,d=0,g=0;d<e;d++)if((a=c[d])&&2<a.length&&(!this.filter||!this.filter[a])){for(var f=a[0],h=Oa(f),k=1;k<a.length;k++){var m=Oa(a[k]);if(m!==h&&(f+=m,h=m,4===f.length))break}b[g++]=(f+"0000").substring(0,4)}return b}
function Oa(a){switch(a){case "b":case "f":case "p":case "v":return 1;case "c":case "g":case "j":case "k":case "q":case "s":case "x":case "z":return 2;case "d":case "t":return 3;case "l":return 4;case "m":case "n":return 5;case "r":return 6}return""};var Qa={encode:Pa,c:!0},Ra=/[\W_]+/;function Pa(a){return M(this,a,!1,Ra)};var Ta={encode:Sa,c:!1,j:"strict"},Ua=/[\x00-\x7F]/g;function Sa(a){return M(this,a.replace(Ua,""),!1,"")};var Wa={encode:Va,c:!1},Xa=/[\W_]+/;function Va(a){return M(this,a,!1,Xa)};V["latin:advanced"]={encode:Ea,c:!1};V["latin:balance"]=Ga;V["latin:default"]=ka;V["latin:extra"]=Ja;V["latin:simple"]=za;V["latin:soundex"]=Ma;V["arabic:default"]=Qa;V["cjk:default"]=Ta;V["cyrillic:default"]=Wa;(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return O}):"object"===typeof a.exports?a.module.exports=O:a.FlexSearch=O})();}).call(this);
(function(){'use strict';Object.assign||(Object.assign=function(){for(var a=arguments,b=a.length,c=a[0],d=1,e,f,g;d<b;d++){e=a[d];f=Object.keys(e);g=f.length;for(var h=0,k;h<g;h++)k=f[h],c[k]=e[k]}return c});window.requestAnimationFrame||(window.requestAnimationFrame=window.setTimeout);window.cancelAnimationFrame||(window.cancelAnimationFrame=window.clearTimeout);window.Promise||(window.Promise=function(){function a(b){this.b=null;var c=this;b(function(d){c.b&&(c.b(d),c.b=null)})}a.prototype.then=function(b){this.b=b};return a}());function t(a){return"string"===typeof a}function y(a){return a.constructor===Array}function z(a){return"function"===typeof a}function E(a){return"object"===typeof a}function F(a){return"undefined"===typeof a}function aa(a){for(var b=Array(a),c=0;c<a;c++)b[c]=G();return b}function G(){return Object.create(null)}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 L(a){return new RegExp(a,"g")}
function ba(a){for(var b="",c="",d=0,e=a.length,f=void 0;d<e;d++)(f=a[d])!==c&&(b+=c=f);return b}function O(a,b,c,d){if(b&&(c&&b&&(b=K(b,c)),b&&a.u&&(b=K(b,a.u)),a.A&&1<b.length&&(b=K(b,a.A)),b&&(d||""===d)&&(b=b.split(d),a.filter))){a=a.filter;c=b.length;d=[];for(var e=0,f=0;e<c;e++){var g=b[e];g&&!a[g]&&(d[f++]=g)}b=d}return b};P.prototype.export=function(a){var b=!a||F(a.serialize)||a.serialize;if(this.a){var c=!a||F(a.doc)||a.doc,d=!a||F(a.index)||a.index;a=[];var e=0;if(d)for(d=this.a.keys;e<d.length;e++){var f=this.a.index[d[e]];a[e]=[f.j,f.i,Object.keys(f.f)]}c&&(a[e]=this.l)}else a=[this.j,this.i,Object.keys(this.f)];b&&(a=JSON.stringify(a));return a};
P.prototype.import=function(a,b){if(!b||F(b.serialize)||b.serialize)a=JSON.parse(a);var c={};if(this.a){var d=!b||F(b.doc)||b.doc,e=0;if(!b||F(b.index)||b.index){b=this.a.keys;for(var f=b.length,g=a[0][2];e<g.length;e++)c[g[e]]=1;for(e=0;e<f;e++){g=this.a.index[b[e]];var h=a[e];h&&(g.j=h[0],g.i=h[1],g.f=c)}}d&&(this.l=E(d)?d:a[e])}else{d=a[2];for(e=0;e<d.length;e++)c[d[e]]=1;this.j=a[0];this.i=a[1];this.f=c}};P.prototype.find=function(a,b){return this.where(a,b,1)[0]||null};
P.prototype.where=function(a,b,c,d){var e=this.l,f=[],g=0,h;if(E(a)){c||(c=b);var k=Object.keys(a);var m=k.length;var q=!1;if(1===m&&"id"===k[0])return[e[a.id]];if((h=this.F)&&!d)for(var r=0;r<h.length;r++){var p=h[r],l=a[p];if(!F(l)){var n=this.w[p]["@"+l];if(0===--m)return n;k.splice(k.indexOf(p),1);delete a[p];break}}h=Array(m);for(r=0;r<m;r++)h[r]=k[r].split(":")}else{if(z(a)){b=d||Object.keys(e);c=b.length;for(k=0;k<c;k++)m=e[b[k]],a(m)&&(f[g++]=m);return f}if(F(b))return[e[a]];if("id"===a)return[e[b]];
k=[a];m=1;h=[a.split(":")];q=!0}d=n||d||Object.keys(e);r=d.length;for(p=0;p<r;p++){l=n?d[p]:e[d[p]];for(var w=!0,v=0;v<m;v++){q||(b=a[k[v]]);var x=h[v],u=x.length,A=l;if(1<u)for(var B=0;B<u;B++)A=A[x[B]];else A=A[x[0]];if(A!==b){w=!1;break}}if(w&&(f[g++]=l,c&&g===c))break}return f};function S(a){this.clear();this.m=!0!==a&&a}S.prototype.clear=function(){this.cache=G();this.count=G();this.index=G();this.b=[]};S.prototype.set=function(a,b){if(this.m&&F(this.cache[a])){var c=this.b.length;if(c===this.m){c--;var d=this.b[c];delete this.cache[d];delete this.count[d];delete this.index[d]}this.b[c]=a;this.index[a]=c;this.count[a]=-1;this.cache[a]=b;this.get(a)}else this.cache[a]=b};
S.prototype.get=function(a){var b=this.cache[a];if(this.m&&b){var c=++this.count[a],d=this.index,e=d[a];if(0<e){for(var f=this.b,g=e;this.count[f[--e]]<=c&&-1!==e;);e++;if(e!==g){for(c=g;c>e;c--)g=f[c-1],f[c]=g,d[g]=c;f[e]=a;d[a]=e}}}return b};var U={},da="undefined"!==typeof Blob&&"undefined"!==typeof URL&&URL.createObjectURL;function ea(a,b,c){var d=fa,e="flexsearch";d=da?URL.createObjectURL(new Blob(["("+d.toString()+")()"],{type:"text/javascript"})):e+".browser.js";e+="-"+a;U[e]||(U[e]=[]);U[e][c]=new Worker(d);U[e][c].onmessage=b;return U[e][c]}
function fa(){var a,b;self.onmessage=function(c){if(c=c.data)if(c.search){var d=b.search(c.content,c.threshold?{limit:c.limit,threshold:c.threshold,where:c.where}:c.limit);self.postMessage({id:a,content:c.content,limit:c.limit,result:d})}else c.add?b.add(c.id,c.content):c.update?b.update(c.id,c.content):c.remove?b.remove(c.id):c.clear?b.clear():c.info?(c=b.info(),c.worker=a,console.log(c)):c.register&&(a=c.id,c.options.cache=!1,c.options.async=!1,c.options.worker=!1,b=(new Function(c.register.substring(c.register.indexOf("{")+
1,c.register.lastIndexOf("}"))))(),b=new b(c.options))}}function ha(a,b,c,d){a=ea("id"+a,function(f){(f=f.data)&&f.result&&d(f.id,f.content,f.result,f.limit,f.where,f.cursor,f.suggest)},b);var e=P.toString();c.id=b;a.postMessage({register:e,options:c,id:b});return a}P.prototype.G=function(a,b,c,d){this.s!==this.v&&(this.o=this.o.concat(c),this.s++,d&&this.o.length>=d&&(this.s=this.v),this.s===this.v&&(this.cache&&this.g.set(b,this.o),this.C&&this.C(this.o)));return this};var ia={memory:{charset:"latin:extra",threshold:0,c:1},speed:{threshold:1,c:3,depth:2},match:{charset:"latin:extra",B:"full",threshold:1,c:3},score:{charset:"latin:extra",threshold:1,c:9,depth:4},balance:{charset:"latin:balance",threshold:0,c:3,depth:3},fast:{threshold:8,c:9,depth:1}};var ka={encode:ja,h:!1},la=/[\W_]+/;function ja(a){return O(this,a.toLowerCase(),!1,la)};var ma=0,na={},V={};function P(a){if(!(this instanceof P))return new P(a);var b=a&&a.id;this.id=b||0===b?b:ma++;this.init(a);oa(this,"index",function(){return this.a?Object.keys(this.a.index[this.a.keys[0]].f):Object.keys(this.f)});oa(this,"length",function(){return this.index.length})}P.registerCharset=function(a,b){V[a]=b;return P};P.registerLanguage=function(a,b){na[a]=b;return P};
P.prototype.init=function(a){var b,c;if(a)if(t(a))a=ia[a];else if(b=a.preset)a=Object.assign({},ia[b],a);a||(a={});if(b=a.worker){if("undefined"===typeof ea)a.worker=!1,this.m=null;else{var d=parseInt(b,10)||4;this.s=0;this.o=[];this.C=null;this.m=Array(d);for(var e=0;e<d;e++)this.m[e]=ha(this.id,e,a,this.G)}this.v=b}this.async=a.async;d=a.charset;e=a.lang;t(d)&&(-1===d.indexOf(":")&&(d+=":default"),d=V[d]);t(e)&&(e=na[e]);this.D=b=d&&d.B||a.tokenize||"strict";this.depth="strict"===b&&a.depth||0;
this.h=d&&d.h||a.rtl||!1;this.c=a.resolution||9;this.threshold=b=a.threshold||0;this.c<=b&&(this.c=b+1);this.encode=a.encode||d&&d.encode||ja;this.u=(b=a.matcher||e&&e.u)&&pa(b,!1);this.A=(b=a.stemmer||e&&e.A)&&pa(b,!0);if(d=b=a.filter||e&&e.filter){d=b;e=G();var f=0;for(c=d.length;f<c;f++)e[d[f]]=1;d=e}this.filter=d;(this.a=c=(b=a.doc)&&qa(b))&&(a.doc=null);this.j=aa(this.c-this.threshold);this.i=G();this.f=G();if(c){this.l=G();d=c.index={};e=c.keys=[];f=c.field;var g=c.tag,h=c.store;y(c.id)||(c.id=
c.id.split(":"));if(h){var k=G();if(t(h))k[h]=1;else if(y(h))for(var m=0;m<h.length;m++)k[h[m]]=1;else E(h)&&(k=h);c.store=k}if(g){this.w=G();h=G();if(f)if(t(f))h[f]=a;else if(y(f))for(k=0;k<f.length;k++)h[f[k]]=a;else E(f)&&(h=f);y(g)||(c.tag=g=[g]);for(f=0;f<g.length;f++)this.w[g[f]]=G();this.F=g;f=h}if(f){if(!y(f))if(E(f)){var q=f;c.field=f=Object.keys(f)}else c.field=f=[f];for(c=0;c<f.length;c++)g=f[c],y(g)||(q&&(a=q[g]),e[c]=g,f[c]=g.split(":")),d[g]=new P(a)}}this.b=!0;this.g=(b=a.cache)&&new S(b);
return this};function qa(a){var b=G(),c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];b[c]=y(d)?d.slice(0):E(d)?qa(d):d}return b}
P.prototype.add=function(a,b,c,d,e){if(this.a&&E(a))return W(this,"add",a,b);if(b&&t(b)&&(a||0===a)){if(this.f[a]&&!d)return this.update(a,b);if(!e){if(this.async&&"function"!==typeof importScripts){var f=this,g=new Promise(function(M){setTimeout(function(){f.add(a,b,null,d,!0);f=null;M()})});if(c)g.then(c);else return g;return this}if(c)return this.add(a,b,null,d,!0),c(),this}b=this.encode(b);if(!b.length)return this;c=b;e=G();e._ctx=G();for(var h=c.length,k=this.threshold,m=this.depth,q=this.c,
r=this.j,p=this.h,l=0;l<h;l++){var n=c[l];if(n){g=1;var w=n.length,v=(p?l+1:h-l)/h,x="";switch(this.D){case "reverse":case "both":for(var u=w;--u;)x=n[u]+x,X(r,e,x,a,p?1:(w-u)/w,v,k,q-1);x="";case "forward":for(u=0;u<w;u++)x+=n[u],X(r,e,x,a,p?(u+1)/w:1,v,k,q-1);break;case "full":for(u=0;u<w;u++)for(var A=(p?u+1:w-u)/w,B=w;B>u;B--)x=n.substring(u,B),X(r,e,x,a,A,v,k,q-1);break;default:if(w=X(r,e,n,a,1,v,k,q-1),m&&1<h&&w>=k)for(w=e._ctx[n]||(e._ctx[n]=G()),n=this.i[n]||(this.i[n]=aa(q-(k||0))),v=l-m,
x=l+m+1,0>v&&(v=0),x>h&&(x=h);v<x;v++)v!==l&&X(n,w,c[v],a,0,q-(v<l?l-v:v-l),k,q-1)}}}g&&(this.f[a]=1);this.b=!1}return this};
function W(a,b,c,d){if(y(c)){var e=c.length;if(e)for(var f=0;f<e;f++)W(a,b,c[f],f===e-1&&d)}else{var g=a.a.index,h=a.a.keys,k=a.a.tag;f=a.a.store;var m;var q=a.a.id;e=c;for(var r=0;r<q.length;r++)e=e[q[r]];if("remove"===b){if(delete a.l[e],c=h.length)for(f=0;f<c;f++)g[h[f]].remove(e,f===c-1&&d)}else{if(k){for(m=0;m<k.length;m++){var p=k[m];var l=c;q=p.split(":");for(r=0;r<q.length;r++)l=l[q[r]];l="@"+l}m=a.w[p];m=m[l]||(m[l]=[])}q=a.a.field;k=0;for(p=q.length;k<p;k++){r=q[k];l=c;for(var n=0;n<r.length;n++)l=
l[r[n]];r=g[h[k]];"add"===b?r.add(e,l,k===p-1&&d):r.update(e,l,k===p-1&&d)}if(f){d=Object.keys(f);b=G();for(g=0;g<d.length;g++)if(h=d[g],f[h])for(h=h.split(":"),k=q=void 0,p=0;p<h.length;p++)l=h[p],q=(q||c)[l],k=(k||b)[l]=q;c=b}m&&(m[m.length]=c);a.l[e]=c}}return a}P.prototype.update=function(a,b,c){if(this.a&&E(a))return W(this,"update",a,b);this.f[a]&&t(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
P.prototype.remove=function(a,b,c){if(this.a&&E(a))return W(this,"remove",a,b);if(this.f[a]){if(!c){if(this.async&&"function"!==typeof importScripts){var d=this;c=new Promise(function(e){setTimeout(function(){d.remove(a,null,!0);d=null;e()})});if(b)c.then(b);else return c;return this}if(b)return this.remove(a,null,!0),b(),this}for(b=0;b<this.c-(this.threshold||0);b++)ra(this.j[b],a);this.depth&&ra(this.i,a);delete this.f[a];this.b=!1}return this};var Y;
function sa(a,b,c,d,e,f,g,h,k,m,q){d=ta(d,h?0:f,k,g,c,m,q);if(k){k=d.page;var r=d.next;d=d.result}if(h)d=a.where(h,null,f,d);else{c=d;d=a.l;f=c.length;g=Array(f);for(h=0;h<f;h++)g[h]=d[c[h]];d=g}e&&(z(e)||(Y=e.split(":"),e=1<Y.length?ua:va),d.sort(e));d=Z(k,r,d);a.g&&a.g.set(b,d);return d}
P.prototype.search=function(a,b,c,d){if(E(b)){if(y(b))for(var e=0;e<b.length;e++)b[e].query=a;else b.query=a;a=b;b=1E3}else b&&z(b)?(c=b,b=1E3):b||0===b||(b=1E3);var f=[],g=a;if(E(a)&&!y(a)){c||(c=a.callback)&&(g.callback=null);var h=a.sort;var k=a.page;b=a.limit;var m=a.threshold;var q=a.suggest;a=a.query}if(this.a){m=this.a.index;var r=g.where,p=g.bool||"or",l=g.field,n=p,w,v;if(l)y(l)||(l=[l]);else if(y(g)){var x=g;l=[];n=[];for(var u=0;u<g.length;u++)d=g[u],e=d.bool||p,l[u]=d.field,n[u]=e,"not"===
e?w=!0:"and"===e&&(v=!0)}else l=this.a.keys;p=l.length;for(u=0;u<p;u++)x&&(g=x[u]),k&&!t(g)&&(g.page=null,g.limit=0),f[u]=m[l[u]].search(g,0);if(c)return c(sa(this,a,n,f,h,b,q,r,k,v,w));if(this.async){var A=this;return new Promise(function(ca){Promise.all(f).then(function(za){ca(sa(A,a,n,za,h,b,q,r,k,v,w))})})}return sa(this,a,n,f,h,b,q,r,k,v,w)}m||(m=this.threshold||0);if(!d){if(this.async&&"function"!==typeof importScripts){var B=this;m=new Promise(function(ca){setTimeout(function(){ca(B.search(g,
b,null,!0));B=null})});if(c)m.then(c);else return m;return this}if(c)return c(this.search(g,b,null,!0)),this}if(!a||!t(a))return f;g=a;if(this.g)if(this.b){if(c=this.g.get(a))return c}else this.g.clear(),this.b=!0;g=this.encode(g);if(!g.length)return f;c=g;x=c.length;d=!0;e=[];var M=G(),Q=0;1<x&&(this.depth?p=!0:c.sort(wa));if(!p||(u=this.i))for(var T=this.c;Q<x;Q++){var C=c[Q];if(C){if(p){if(!l)if(u[C])l=C,M[C]=1;else if(!q)return f;if(q&&Q===x-1&&!e.length)p=!1,C=l||C,M[C]=0;else if(!l)continue}if(!M[C]){var D=
[],N=!1,H=0,I=p?u[l]:this.j;if(I)for(var R=void 0,J=0;J<T-m;J++)if(R=I[J]&&I[J][C])D[H++]=R,N=!0;if(N)l=C,e[e.length]=1<H?D.concat.apply([],D):D[0];else if(!q){d=!1;break}M[C]=1}}}else d=!1;d&&(f=ta(e,b,k,q));this.g&&this.g.set(a,f);return f};P.prototype.info=function(){return{id:this.id,items:this.length,matcher:this.u.length,worker:this.v,threshold:this.threshold,depth:this.depth,resolution:this.c,contextual:this.depth&&"strict"===this.D}};P.prototype.clear=function(){return this.destroy().init()};
P.prototype.destroy=function(){this.g&&(this.g.clear(),this.g=null);this.j=this.i=this.f=null;if(this.a){for(var a=this.a.keys,b=0;b<a.length;b++)this.a.index[a[b]].destroy();this.a=this.l=null}return this};function oa(a,b,c){Object.defineProperty(a,b,{get:c})}function X(a,b,c,d,e,f,g,h){if(b[c])return b[c];e=e?(h-(g||h/1.5))*f+(g||h/1.5)*e:f;b[c]=e;e>=g&&(a=a[h-(e+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=d);return e}
function ra(a,b){if(a)for(var c=Object.keys(a),d=0,e=c.length;d<e;d++){var f=c[d],g=a[f];if(g)for(var h=0,k=g.length;h<k;h++)if(g[h]===b){1===k?delete a[f]:g.splice(h,1);break}else E(g[h])&&ra(g[h],b)}}function pa(a,b){for(var c=Object.keys(a),d=c.length,e=[],f="",g=0,h=0,k;h<d;h++){var m=c[h];(k=a[m])?(e[g++]=L(b?"(?!\\b)"+m+"(\\b|_)":m),e[g++]=k):f+=(f?"|":"")+m}f&&(e[g++]=L(b?"(?!\\b)("+f+")(\\b|_)":"("+f+")"),e[g]="");return e}function wa(a,b){return b.length-a.length}
function va(a,b){a=a[Y];b=b[Y];return a<b?-1:a>b?1:0}function ua(a,b){for(var c=Y.length,d=0;d<c;d++)a=a[Y[d]],b=b[Y[d]];return a<b?-1:a>b?1:0}function Z(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c}
function ta(a,b,c,d,e,f,g){var h=[];if(!0===c){c="0";var k=""}else k=c&&c.split(":");var m=a.length;if(1<m){var q=G(),r=[],p,l=0,n,w=!0,v=0,x;if(k)if(2===k.length){var u=k;k=!1}else k=x=parseInt(k[0],10);if(g){for(p=G();l<m;l++)if("not"===e[l]){var A=a[l];var B=A.length;for(n=0;n<B;n++)p["@"+A[n]]=1}else var M=l+1;if(F(M))return Z(c,J,h);l=0}else var Q=t(e)&&e;for(var T;l<m;l++){var C=l===(M||m)-1;if(!Q||!l)if((n=Q||e&&e[l])&&"and"!==n)if("or"===n)T=!1;else continue;else T=f=!0;A=a[l];if(B=A.length){if(w)if(H){var D=
H.length;for(n=0;n<D;n++){w=H[n];var N="@"+w;g&&p[N]||(q[N]=1,f||(h[v++]=w))}var H=null;w=!1}else{H=A;continue}N=!1;for(n=0;n<B;n++){D=A[n];var I="@"+D,R=f?q[I]||0:l;if(!(!R&&!d||g&&p[I]||!f&&q[I]))if(R===l){if(C){if(!x||--x<v)if(h[v++]=D,b&&v===b)return Z(c,v+(k||0),h)}else q[I]=l+1;N=!0}else d&&(I=r[R]||(r[R]=[]),I[I.length]=D)}if(T&&!N&&!d)break}else if(T&&!d)return Z(c,J,A)}if(H)if(l=H.length,g)for(n=k?parseInt(k,10):0;n<l;n++)a=H[n],p["@"+a]||(h[v++]=a);else h=H;if(d)for(v=h.length,u?(l=parseInt(u[0],
10)+1,n=parseInt(u[1],10)+1):(l=r.length,n=0);l--;)if(D=r[l]){for(B=D.length;n<B;n++)if(d=D[n],!g||!p["@"+d])if(h[v++]=d,b&&v===b)return Z(c,l+":"+n,h);n=0}}else!m||e&&"not"===e[0]||(h=a[0],k&&(k=parseInt(k[0],10)));if(b){g=h.length;k&&k>g&&(k=0);k=k||0;var J=k+b;J<g?h=h.slice(k,J):(J=0,k&&(h=h.slice(k)))}return Z(c,J,h)};var ya={encode:xa,h:!1},Aa=/[\W_]+/,Ba=[L("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",L("[\u00e8\u00e9\u00ea\u00eb]"),"e",L("[\u00ec\u00ed\u00ee\u00ef]"),"i",L("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",L("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",L("[\u00fd\u0177\u00ff]"),"y",L("\u00f1"),"n",L("[\u00e7c]"),"k",L("\u00df"),"s",L(" & ")," and "];function xa(a,b){return O(b||this,a.toLowerCase(),Ba,Aa)};var Ca=[L("ae"),"a",L("ai"),"ei",L("ay"),"ei",L("ey"),"ei",L("oe"),"o",L("ue"),"u",L("ie"),"i",L("sz"),"s",L("zs"),"s",L("sh"),"s",L("ck"),"k",L("cc"),"k",L("th"),"t",L("dt"),"t",L("ph"),"f",L("pf"),"f",L("ou"),"o",L("uo"),"u"];function Da(a,b,c){a&&(a=xa(a,b||this).join(" "),2<a.length&&(a=K(a,Ca)),c||(1<a.length&&(a=ba(a)),a&&(a=a.split(" "))));return a};var Fa={encode:Ea,h:!1},Ga=/[\W_]+/;function Ea(a){return O(this,a.toLowerCase(),!1,Ga)};var Ia={encode:Ha,h:!1},Ja=[L("(?!\\b)p"),"b",L("(?!\\b)z"),"s",L("(?!\\b)[cgq]"),"k",L("(?!\\b)n"),"m",L("(?!\\b)d"),"t",L("(?!\\b)[vw]"),"f",L("(?!\\b)[aeiouy]"),""];function Ha(a){a&&(a=Da(a,this,!0),1<a.length&&(a=K(a,Ja)),1<a.length&&(a=ba(a)),a&&(a=a.split(" ")));return a};var La={encode:Ka,h:!1,B:"strict"},Ma=/[^a-z]+/;function Ka(a){a=O(this,a.toLowerCase(),!1,!1);var b=[];if(a)for(var c=a.split(Ma),d=c.length,e=0,f=0;e<d;e++)if((a=c[e])&&2<a.length&&(!this.filter||!this.filter[a])){for(var g=a[0],h=Na(g),k=1;k<a.length;k++){var m=Na(a[k]);if(m!==h&&(g+=m,h=m,4===g.length))break}b[f++]=(g+"0000").substring(0,4)}return b}
function Na(a){switch(a){case "b":case "f":case "p":case "v":return 1;case "c":case "g":case "j":case "k":case "q":case "s":case "x":case "z":return 2;case "d":case "t":return 3;case "l":return 4;case "m":case "n":return 5;case "r":return 6}return""};var Pa={encode:Oa,h:!0},Qa=/[\x00-\x7F]+/g;function Oa(a){return O(this,a.replace(Qa," "),!1," ")};var Sa={encode:Ra,h:!1,B:"strict"},Ta=/[\x00-\x7F]+/g;function Ra(a){return O(this,a.replace(Ta,""),!1,"")};var Va={encode:Ua,h:!1},Wa=/[\x00-\x7F]+/g;function Ua(a){return O(this,a.replace(Wa," "),!1," ")};V["latin:advanced"]={encode:Da,h:!1};V["latin:balance"]=Fa;V["latin:default"]=ka;V["latin:extra"]=Ia;V["latin:simple"]=ya;V["latin:soundex"]=La;V["arabic:default"]=Pa;V["cjk:default"]=Sa;V["cyrillic:default"]=Va;(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return P}):"object"===typeof a.exports?a.module.exports=P:a.FlexSearch=P})();}).call(this);

View File

@@ -5,31 +5,30 @@
* Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch
*/
(function(){'use strict';function t(a){return"string"===typeof a}function y(a){return a.constructor===Array}function z(a){return"function"===typeof a}function B(a){return"object"===typeof a}function D(a){return"undefined"===typeof a}function aa(a){for(var b=Array(a),c=0;c<a;c++)b[c]=G();return b}function G(){return Object.create(null)}function H(a,b){for(var c=0,e=b.length;c<e&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a}function L(a){return new RegExp(a,"g")}
function ba(a){for(var b="",c="",e=0,d=a.length,h=void 0;e<d;e++)(h=a[e])!==c&&(b+=c=h);return b}function M(a,b,c,e){if(b&&(c&&b&&(b=H(b,c)),b&&a.o&&(b=H(b,a.o)),a.s&&1<b.length&&(b=H(b,a.s)),b&&(e||""===e)&&(b=b.split(e),a.filter))){a=a.filter;c=b.length;e=[];for(var d=0,h=0;d<c;d++){var f=b[d];f&&!a[f]&&(e[h++]=f)}b=e}return b};O.prototype.export=function(a){var b=!a||D(a.serialize)||a.serialize;if(this.a){var c=!a||D(a.doc)||a.doc,e=!a||D(a.index)||a.index;a=[];var d=0;if(e)for(e=this.a.keys;d<e.length;d++){var h=this.a.index[e[d]];a[d]=[h.j,h.h,Object.keys(h.f)]}c&&(a[d]=this.m)}else a=[this.j,this.h,Object.keys(this.f)];b&&(a=JSON.stringify(a));return a};
O.prototype.import=function(a,b){if(!b||D(b.serialize)||b.serialize)a=JSON.parse(a);var c={};if(this.a){var e=!b||D(b.doc)||b.doc,d=0;if(!b||D(b.index)||b.index){b=this.a.keys;for(var h=b.length,f=a[0][2];d<f.length;d++)c[f[d]]=1;for(d=0;d<h;d++){f=this.a.index[b[d]];var g=a[d];g&&(f.j=g[0],f.h=g[1],f.f=c)}}e&&(this.m=B(e)?e:a[d])}else{e=a[2];for(d=0;d<e.length;d++)c[e[d]]=1;this.j=a[0];this.h=a[1];this.f=c}};O.prototype.find=function(a,b){return this.where(a,b,1)[0]||null};
O.prototype.where=function(a,b,c,e){var d=this.m,h=[],f=0,g;if(B(a)){c||(c=b);var k=Object.keys(a);var m=k.length;var r=!1;if(1===m&&"id"===k[0])return[d[a.id]];if((g=this.w)&&!e)for(var q=0;q<g.length;q++){var p=g[q],l=a[p];if(!D(l)){var n=this.u[p]["@"+l];if(0===--m)return n;k.splice(k.indexOf(p),1);delete a[p];break}}g=Array(m);for(q=0;q<m;q++)g[q]=k[q].split(":")}else{if(z(a)){b=e||Object.keys(d);c=b.length;for(k=0;k<c;k++)m=d[b[k]],a(m)&&(h[f++]=m);return h}if(D(b))return[d[a]];if("id"===a)return[d[b]];
k=[a];m=1;g=[a.split(":")];r=!0}e=n||e||Object.keys(d);q=e.length;for(p=0;p<q;p++){l=n?e[p]:d[e[p]];for(var w=!0,u=0;u<m;u++){r||(b=a[k[u]]);var v=g[u],x=v.length,A=l;if(1<x)for(var C=0;C<x;C++)A=A[v[C]];else A=A[v[0]];if(A!==b){w=!1;break}}if(w&&(h[f++]=l,c&&f===c))break}return h};function S(a){this.clear();this.l=!0!==a&&a}S.prototype.clear=function(){this.cache=G();this.count=G();this.index=G();this.b=[]};S.prototype.set=function(a,b){if(this.l&&D(this.cache[a])){var c=this.b.length;if(c===this.l){c--;var e=this.b[c];delete this.cache[e];delete this.count[e];delete this.index[e]}this.b[c]=a;this.index[a]=c;this.count[a]=-1;this.cache[a]=b;this.get(a)}else this.cache[a]=b};
S.prototype.get=function(a){var b=this.cache[a];if(this.l&&b){var c=++this.count[a],e=this.index,d=e[a];if(0<d){for(var h=this.b,f=d;this.count[h[--d]]<=c&&-1!==d;);d++;if(d!==f){for(c=f;c>d;c--)f=h[c-1],h[c]=f,e[f]=c;h[d]=a;e[a]=d}}}return b};var da={memory:{encode:"extra",i:"strict",threshold:0,g:1},speed:{encode:"icase",i:"strict",threshold:1,g:3,depth:2},match:{encode:"extra",i:"full",threshold:1,g:3},score:{encode:"extra",i:"strict",threshold:1,g:9,depth:4},balance:{encode:"balance",i:"strict",threshold:0,g:3,depth:3},fast:{encode:"icase",i:"strict",threshold:8,g:9,depth:1}};var fa={encode:ea,c:!1},ha=/[\W_]+/;function ea(a){return M(this,a.toLowerCase(),!1,ha)};var ia={encode:ea,tokenize:"strict",cache:!1,async:!1,worker:!1,rtl:!1,doc:!1,resolution:9,threshold:0,depth:0},ja=0,U={},V={};function O(a){if(!(this instanceof O))return new O(a);var b=a&&a.id;this.id=b||0===b?b:ja++;this.init(a);ka(this,"index",function(){return Object.keys(this.f)});ka(this,"length",function(){return this.index.length})}O.registerCharset=function(a,b){V[a]=b;return O};O.registerLanguage=function(a,b){V[a]=b;return O};
O.prototype.init=function(a){var b;if(t(a))a=da[a];else if(b=a.preset)a=Object.assign({},da[b],a);this.encode||(a?a=Object.assign({},ia,a):a=ia);if(a){this.async=a.async;var c=a.charset;var e=a.lang;this.v=(t(c)?V[c].i:c&&c.i)||a.tokenize;this.c=t(b=a.rtl||c)?V[b].c:c&&c.c||b;this.threshold=a.threshold;this.g=(b=a.resolution)<=this.threshold?this.threshold+1:b;this.depth="strict"===this.v&&a.depth||0;this.encode=t(b=a.encode||c)?V[-1===b.indexOf(":")?b+":default":b].encode:c&&c.encode||b;this.o=(b=
a.matcher||e)&&la(t(b)?U[b].o:e&&e.o||b,!1);if(c=b=a.filter||e){c=t(b)?U[b].filter:e&&e.filter||b;for(var d=G(),h=0,f=c.length;h<f;h++)d[c[h]]=1;c=d}this.filter=c;this.s=(b=a.stemmer||e)&&la(t(b)?U[b].s:e&&e.s||b,!0);(this.a=c=(b=a.doc)&&ma(b))&&(a.doc=null)}this.j=aa(this.g-(this.threshold||0));this.h=G();this.f={};if(c){this.m=G();b=c.index={};e=c.keys=[];d=c.field;h=c.tag;f=c.store;y(c.id)||(c.id=c.id.split(":"));if(f){var g=G();if(t(f))g[f]=1;else if(y(f))for(var k=0;k<f.length;k++)g[f[k]]=1;
else B(f)&&(g=f);c.store=g}if(h){this.u=G();f=G();if(d)if(t(d))f[d]=a;else if(y(d))for(g=0;g<d.length;g++)f[d[g]]=a;else B(d)&&(f=d);y(h)||(c.tag=h=[h]);for(d=0;d<h.length;d++)this.u[h[d]]=G();this.w=h;d=f}if(d){if(!y(d))if(B(d)){var m=d;c.field=d=Object.keys(d)}else c.field=d=[d];for(c=0;c<d.length;c++)h=d[c],y(h)||(m&&(a=m[h]),e[c]=h,d[c]=h.split(":")),b[h]=new O(a)}}if(b=a.cache)this.l=!0,this.b=new S(b);return this};
function ma(a){var b=G(),c;for(c in a)if(a.hasOwnProperty(c)){var e=a[c];b[c]=y(e)?e.slice(0):B(e)?ma(e):e}return b}
O.prototype.add=function(a,b,c,e,d){if(this.a&&B(a))return W(this,"add",a,b);if(b&&t(b)&&(a||0===a)){if(this.f[a]&&!e)return this.update(a,b);if(!d){if(this.async){var h=this;d=new Promise(function(C){setTimeout(function(){h.add(a,b,null,e,!0);h=null;C()})});if(c)d.then(c);else return d;return this}if(c)return this.add(a,b,null,e,!0),c(),this}b=this.encode(b);if(!b.length)return this;c=b;d=G();d._ctx=G();for(var f=c.length,g=this.threshold,k=this.depth,m=this.g,r=this.j,q=this.c,p=0;p<f;p++){var l=
c[p];if(l){var n=l.length,w=(q?p+1:f-p)/f,u="";switch(this.v){case "reverse":case "both":for(var v=n;--v;)u=l[v]+u,X(r,d,u,a,q?1:(n-v)/n,w,g,m-1);u="";case "forward":for(v=0;v<n;v++)u+=l[v],X(r,d,u,a,q?(v+1)/n:1,w,g,m-1);break;case "full":for(v=0;v<n;v++)for(var x=(q?v+1:n-v)/n,A=n;A>v;A--)u=l.substring(v,A),X(r,d,u,a,x,w,g,m-1);break;default:if(n=X(r,d,l,a,1,w,g,m-1),k&&1<f&&n>=g)for(n=d._ctx[l]||(d._ctx[l]=G()),l=this.h[l]||(this.h[l]=aa(m-(g||0))),w=p-k,u=p+k+1,0>w&&(w=0),u>f&&(u=f);w<u;w++)w!==
p&&X(l,n,c[w],a,0,m-(w<p?p-w:w-p),g,m-1)}}}this.f[a]=1;this.l=!1}return this};
function W(a,b,c,e){if(y(c)){var d=c.length;if(d--){for(var h=0;h<d;h++)W(a,b,c[h]);return W(a,b,c[d],e)}}else{var f=a.a.index,g=a.a.keys,k=a.a.tag;h=a.a.store;var m;var r=a.a.id;d=c;for(var q=0;q<r.length;q++)d=d[r[q]];if("remove"===b&&(delete a.m[d],r=g.length,r--)){for(a=0;a<r;a++)f[g[a]].remove(d);return f[g[r]].remove(d,e)}if(k){for(m=0;m<k.length;m++){var p=k[m];var l=c;r=p.split(":");for(q=0;q<r.length;q++)l=l[r[q]];l="@"+l}m=a.u[p];m=m[l]||(m[l]=[])}r=a.a.field;k=0;for(p=r.length;k<p;k++){q=
r[k];l=c;for(var n=0;n<q.length;n++)l=l[q[n]];q=f[g[k]];"add"===b?q.add(d,l,k===p-1&&e):q.update(d,l,k===p-1&&e)}if(h){e=Object.keys(h);b=G();for(f=0;f<e.length;f++)if(g=e[f],h[g])for(g=g.split(":"),k=r=void 0,p=0;p<g.length;p++)l=g[p],r=(r||c)[l],k=(k||b)[l]=r;c=b}m&&(m[m.length]=c);a.m[d]=c}return a}O.prototype.update=function(a,b,c){if(this.a&&B(a))return W(this,"update",a,b);this.f[a]&&t(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
O.prototype.remove=function(a,b,c){if(this.a&&B(a))return W(this,"remove",a,b);if(this.f[a]){if(!c){if(this.async&&"function"!==typeof importScripts){var e=this;c=new Promise(function(d){setTimeout(function(){e.remove(a,null,!0);e=null;d()})});if(b)c.then(b);else return c;return this}if(b)return this.remove(a,null,!0),b(),this}for(b=0;b<this.g-(this.threshold||0);b++)na(this.j[b],a);this.depth&&na(this.h,a);delete this.f[a];this.l=!1}return this};var Y;
function oa(a,b,c,e,d,h,f,g,k,m,r){e=pa(e,g?0:h,k,f,c,m,r);if(k){k=e.page;var q=e.next;e=e.result}if(g)e=a.where(g,null,h,e);else{c=e;e=a.m;h=c.length;f=Array(h);for(g=0;g<h;g++)f[g]=e[c[g]];e=f}d&&(z(d)||(Y=d.split(":"),1<Y.length?d=qa:(Y=Y[0],d=ra)),e.sort(d));e=Z(k,q,e);a.b&&a.b.set(b,e);return e}
O.prototype.search=function(a,b,c,e){if(B(b)){if(y(b))for(var d=0;d<b.length;d++)b[d].query=a;else b.query=a;a=b;b=1E3}else b&&z(b)?(c=b,b=1E3):b||0===b||(b=1E3);var h=[],f=a;if(B(a)&&!y(a)){c||(c=a.callback)&&(f.callback=null);var g=a.sort;var k=a.page;b=a.limit;var m=a.threshold;var r=a.suggest;a=a.query}if(this.a){m=this.a.index;var q=f.where,p=f.bool||"or",l=f.field,n=p,w,u;if(l)y(l)||(l=[l]);else if(y(f)){var v=f;l=[];n=[];for(var x=0;x<f.length;x++)e=f[x],d=e.bool||p,l[x]=e.field,n[x]=d,"not"===
d?w=!0:"and"===d&&(u=!0)}else l=this.a.keys;p=l.length;for(x=0;x<p;x++)v&&(f=v[x]),k&&!t(f)&&(f.page=null,f.limit=0),h[x]=m[l[x]].search(f,0);if(c)return c(oa(this,a,n,h,g,b,r,q,k,u,w));if(this.async){var A=this;return new Promise(function(ca){Promise.all(h).then(function(va){ca(oa(A,a,n,va,g,b,r,q,k,u,w))})})}return oa(this,a,n,h,g,b,r,q,k,u,w)}m||(m=this.threshold||0);if(!e){if(this.async&&"function"!==typeof importScripts){var C=this;m=new Promise(function(ca){setTimeout(function(){ca(C.search(f,
b,null,!0));C=null})});if(c)m.then(c);else return m;return this}if(c)return c(this.search(f,b,null,!0)),this}if(!a||!t(a))return h;f=a;if(this.b)if(this.l){if(c=this.b.get(a))return c}else this.b.clear(),this.l=!0;f=this.encode(f);if(!f.length)return h;c=f;v=c.length;e=!0;d=[];var P=G(),Q=0;1<v&&(this.depth?p=!0:c.sort(sa));if(!p||(x=this.h))for(var T=this.g;Q<v;Q++){var E=c[Q];if(E){if(p){if(!l)if(x[E])l=E,P[E]=1;else if(!r)return h;if(r&&Q===v-1&&!d.length)p=!1,E=l||E,P[E]=0;else if(!l)continue}if(!P[E]){var F=
[],N=!1,I=0,J=p?x[l]:this.j;if(J)for(var R=void 0,K=0;K<T-m;K++)if(R=J[K]&&J[K][E])F[I++]=R,N=!0;if(N)l=E,d[d.length]=1<I?F.concat.apply([],F):F[0];else if(!r){e=!1;break}P[E]=1}}}else e=!1;e&&(h=pa(d,b,k,r));this.b&&this.b.set(a,h);return h};O.prototype.info=function(){return{id:this.id,items:this.length,matcher:this.o.length,worker:this.A,threshold:this.threshold,depth:this.depth,resolution:this.g,contextual:this.depth&&"strict"===this.v}};O.prototype.clear=function(){return this.destroy().init()};
O.prototype.destroy=function(){this.b&&(this.b.clear(),this.b=null);this.j=this.h=this.f=null;if(this.a){for(var a=this.a.keys,b=0;b<a.length;b++)this.a.index[a[b]].destroy();this.a=this.m=null}return this};function ka(a,b,c){Object.defineProperty(a,b,{get:c})}function X(a,b,c,e,d,h,f,g){if(b[c])return b[c];d=d?(g-(f||g/1.5))*h+(f||g/1.5)*d:h;b[c]=d;d>=f&&(a=a[g-(d+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=e);return d}
function na(a,b){if(a)for(var c=Object.keys(a),e=0,d=c.length;e<d;e++){var h=c[e],f=a[h];if(f)for(var g=0,k=f.length;g<k;g++)if(f[g]===b){1===k?delete a[h]:f.splice(g,1);break}else B(f[g])&&na(f[g],b)}}function la(a,b){for(var c=Object.keys(a),e=c.length,d=[],h="",f=0,g=0,k;g<e;g++){var m=c[g];(k=a[m])?(d[f++]=L(b?"(?!\\b)"+m+"(\\b|_)":m),d[f++]=k):h+=(h?"|":"")+m}h&&(d[f++]=L(b?"(?!\\b)("+h+")(\\b|_)":"("+h+")"),d[f]="");return d}function sa(a,b){return b.length-a.length}
function ra(a,b){return a[Y]-b[Y]}function qa(a,b){for(var c=Y.length,e=0;e<c;e++)a=a[Y[e]],b=b[Y[e]];return a-b}function Z(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c}
function pa(a,b,c,e,d,h,f){var g=[];if(!0===c){c="0";var k=""}else k=c&&c.split(":");var m=a.length;if(1<m){var r=G(),q=[],p,l=0,n,w=!0,u=0,v;if(k)if(2===k.length){var x=k;k=!1}else k=v=parseInt(k[0],10);if(f){for(p=G();l<m;l++)if("not"===d[l]){var A=a[l];var C=A.length;for(n=0;n<C;n++)p["@"+A[n]]=1}else var P=l+1;if(D(P))return Z(c,K,g);l=0}else var Q=t(d)&&d;for(var T;l<m;l++){var E=l===(P||m)-1;if(!Q||!l)if((n=Q||d&&d[l])&&"and"!==n)if("or"===n)T=!1;else continue;else T=h=!0;A=a[l];if(C=A.length){if(w)if(I){var F=
I.length;for(n=0;n<F;n++){w=I[n];var N="@"+w;f&&p[N]||(r[N]=1,h||(g[u++]=w))}var I=null;w=!1}else{I=A;continue}N=!1;for(n=0;n<C;n++){F=A[n];var J="@"+F,R=h?r[J]||0:l;if(!(!R&&!e||f&&p[J]||!h&&r[J]))if(R===l){if(E){if(!v||--v<u)if(g[u++]=F,b&&u===b)return Z(c,u+(k||0),g)}else r[J]=l+1;N=!0}else e&&(J=q[R]||(q[R]=[]),J[J.length]=F)}if(T&&!N&&!e)break}else if(T&&!e)return Z(c,K,A)}if(I)if(l=I.length,f)for(n=k?parseInt(k,10):0;n<l;n++)a=I[n],p["@"+a]||(g[u++]=a);else g=I;if(e)for(u=g.length,x?(l=parseInt(x[0],
10)+1,n=parseInt(x[1],10)+1):(l=q.length,n=0);l--;)if(F=q[l]){for(C=F.length;n<C;n++)if(e=F[n],!f||!p["@"+e])if(g[u++]=e,b&&u===b)return Z(c,l+":"+n,g);n=0}}else!m||d&&"not"===d[0]||(g=a[0],k&&(k=parseInt(k[0],10)));if(b){f=g.length;k&&k>f&&(k=0);k=k||0;var K=k+b;K<f?g=g.slice(k,K):(K=0,k&&(g=g.slice(k)))}return Z(c,K,g)};var ua={encode:ta,c:!1},wa=/[\W_]+/,xa=[L("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",L("[\u00e8\u00e9\u00ea\u00eb]"),"e",L("[\u00ec\u00ed\u00ee\u00ef]"),"i",L("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",L("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",L("[\u00fd\u0177\u00ff]"),"y",L("\u00f1"),"n",L("[\u00e7c]"),"k",L("\u00df"),"s",L(" & ")," and "];function ta(a,b){b||(b=this);return M(b,a.toLowerCase(),xa,wa)};var ya=[L("ae"),"a",L("ai"),"ei",L("ay"),"ei",L("ey"),"ei",L("oe"),"o",L("ue"),"u",L("ie"),"i",L("sz"),"s",L("zs"),"s",L("sh"),"s",L("ck"),"k",L("cc"),"k",L("th"),"t",L("dt"),"t",L("ph"),"f",L("pf"),"f",L("ou"),"o",L("uo"),"u"];function za(a,b){a&&(a=ta(a,this).join(" "),2<a.length&&(a=H(a,ya)),b||(1<a.length&&(a=ba(a)),a&&(a=a.split(" "))));return a};var Ba={encode:Aa,c:!1},Ca=/[\W_]+/;function Aa(a){return M(this,a.toLowerCase(),!1,Ca)};var Ea={encode:Da,c:!1},Fa=[L("(?!\\b)p"),"b",L("(?!\\b)z"),"s",L("(?!\\b)[cgq]"),"k",L("(?!\\b)n"),"m",L("(?!\\b)d"),"t",L("(?!\\b)[vw]"),"f",L("(?!\\b)[aeiouy]"),""];function Da(a){a&&(a=za(a,!0),1<a.length&&(a=H(a,Fa)),1<a.length&&(a=ba(a)),a&&(a=a.split(" ")));return a};var Ha={encode:Ga,c:!1,i:"strict"},Ia=/[^a-z]+/;function Ga(a){a=M(this,a.toLowerCase(),!1,!1);var b=[];if(a)for(var c=a.split(Ia),e=c.length,d=0,h=0;d<e;d++)if((a=c[d])&&2<a.length&&(!this.filter||!this.filter[a])){for(var f=a[0],g=Ja(f),k=1;k<a.length;k++){var m=Ja(a[k]);if(m!==g&&(f+=m,g=m,4===f.length))break}b[h++]=(f+"0000").substring(0,4)}return b}
function Ja(a){switch(a){case "b":case "f":case "p":case "v":return 1;case "c":case "g":case "j":case "k":case "q":case "s":case "x":case "z":return 2;case "d":case "t":return 3;case "l":return 4;case "m":case "n":return 5;case "r":return 6}return""};var La={encode:Ka,c:!0},Ma=/[\W_]+/;function Ka(a){return M(this,a,!1,Ma)};var Oa={encode:Na,c:!1,i:"strict"},Pa=/[\x00-\x7F]/g;function Na(a){return M(this,a.replace(Pa,""),!1,"")};var Ra={encode:Qa,c:!1},Sa=/[\W_]+/;function Qa(a){return M(this,a,!1,Sa)};V["latin:advanced"]={encode:za,c:!1};V["latin:balance"]=Ba;V["latin:default"]=fa;V["latin:extra"]=Ea;V["latin:simple"]=ua;V["latin:soundex"]=Ha;V["arabic:default"]=La;V["cjk:default"]=Oa;V["cyrillic:default"]=Ra;(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return O}):"object"===typeof a.exports?a.module.exports=O:a.FlexSearch=O})();}).call(this);
(function(){'use strict';function t(a){return"string"===typeof a}function y(a){return a.constructor===Array}function z(a){return"function"===typeof a}function E(a){return"object"===typeof a}function F(a){return"undefined"===typeof a}function aa(a){for(var b=Array(a),c=0;c<a;c++)b[c]=G();return b}function G(){return Object.create(null)}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 L(a){return new RegExp(a,"g")}
function ca(a){for(var b="",c="",d=0,e=a.length,f=void 0;d<e;d++)(f=a[d])!==c&&(b+=c=f);return b}function O(a,b,c,d){if(b&&(c&&b&&(b=K(b,c)),b&&a.m&&(b=K(b,a.m)),a.s&&1<b.length&&(b=K(b,a.s)),b&&(d||""===d)&&(b=b.split(d),a.filter))){a=a.filter;c=b.length;d=[];for(var e=0,f=0;e<c;e++){var g=b[e];g&&!a[g]&&(d[f++]=g)}b=d}return b};P.prototype.export=function(a){var b=!a||F(a.serialize)||a.serialize;if(this.a){var c=!a||F(a.doc)||a.doc,d=!a||F(a.index)||a.index;a=[];var e=0;if(d)for(d=this.a.keys;e<d.length;e++){var f=this.a.index[d[e]];a[e]=[f.i,f.h,Object.keys(f.f)]}c&&(a[e]=this.l)}else a=[this.i,this.h,Object.keys(this.f)];b&&(a=JSON.stringify(a));return a};
P.prototype.import=function(a,b){if(!b||F(b.serialize)||b.serialize)a=JSON.parse(a);var c={};if(this.a){var d=!b||F(b.doc)||b.doc,e=0;if(!b||F(b.index)||b.index){b=this.a.keys;for(var f=b.length,g=a[0][2];e<g.length;e++)c[g[e]]=1;for(e=0;e<f;e++){g=this.a.index[b[e]];var h=a[e];h&&(g.i=h[0],g.h=h[1],g.f=c)}}d&&(this.l=E(d)?d:a[e])}else{d=a[2];for(e=0;e<d.length;e++)c[d[e]]=1;this.i=a[0];this.h=a[1];this.f=c}};P.prototype.find=function(a,b){return this.where(a,b,1)[0]||null};
P.prototype.where=function(a,b,c,d){var e=this.l,f=[],g=0,h;if(E(a)){c||(c=b);var k=Object.keys(a);var m=k.length;var q=!1;if(1===m&&"id"===k[0])return[e[a.id]];if((h=this.w)&&!d)for(var r=0;r<h.length;r++){var p=h[r],l=a[p];if(!F(l)){var n=this.o[p]["@"+l];if(0===--m)return n;k.splice(k.indexOf(p),1);delete a[p];break}}h=Array(m);for(r=0;r<m;r++)h[r]=k[r].split(":")}else{if(z(a)){b=d||Object.keys(e);c=b.length;for(k=0;k<c;k++)m=e[b[k]],a(m)&&(f[g++]=m);return f}if(F(b))return[e[a]];if("id"===a)return[e[b]];
k=[a];m=1;h=[a.split(":")];q=!0}d=n||d||Object.keys(e);r=d.length;for(p=0;p<r;p++){l=n?d[p]:e[d[p]];for(var w=!0,v=0;v<m;v++){q||(b=a[k[v]]);var x=h[v],u=x.length,A=l;if(1<u)for(var B=0;B<u;B++)A=A[x[B]];else A=A[x[0]];if(A!==b){w=!1;break}}if(w&&(f[g++]=l,c&&g===c))break}return f};function S(a){this.clear();this.j=!0!==a&&a}S.prototype.clear=function(){this.cache=G();this.count=G();this.index=G();this.b=[]};S.prototype.set=function(a,b){if(this.j&&F(this.cache[a])){var c=this.b.length;if(c===this.j){c--;var d=this.b[c];delete this.cache[d];delete this.count[d];delete this.index[d]}this.b[c]=a;this.index[a]=c;this.count[a]=-1;this.cache[a]=b;this.get(a)}else this.cache[a]=b};
S.prototype.get=function(a){var b=this.cache[a];if(this.j&&b){var c=++this.count[a],d=this.index,e=d[a];if(0<e){for(var f=this.b,g=e;this.count[f[--e]]<=c&&-1!==e;);e++;if(e!==g){for(c=g;c>e;c--)g=f[c-1],f[c]=g,d[g]=c;f[e]=a;d[a]=e}}}return b};var da={memory:{charset:"latin:extra",threshold:0,c:1},speed:{threshold:1,c:3,depth:2},match:{charset:"latin:extra",u:"full",threshold:1,c:3},score:{charset:"latin:extra",threshold:1,c:9,depth:4},balance:{charset:"latin:balance",threshold:0,c:3,depth:3},fast:{threshold:8,c:9,depth:1}};var fa={encode:ea,g:!1},ha=/[\W_]+/;function ea(a){return O(this,a.toLowerCase(),!1,ha)};var ia=0,ja={},U={};function P(a){if(!(this instanceof P))return new P(a);var b=a&&a.id;this.id=b||0===b?b:ia++;this.init(a);ka(this,"index",function(){return this.a?Object.keys(this.a.index[this.a.keys[0]].f):Object.keys(this.f)});ka(this,"length",function(){return this.index.length})}P.registerCharset=function(a,b){U[a]=b;return P};P.registerLanguage=function(a,b){ja[a]=b;return P};
P.prototype.init=function(a){var b,c;if(a)if(t(a))a=da[a];else if(b=a.preset)a=Object.assign({},da[b],a);a||(a={});this.async=a.async;var d=a.charset,e=a.lang;t(d)&&(-1===d.indexOf(":")&&(d+=":default"),d=U[d]);t(e)&&(e=ja[e]);this.v=b=d&&d.u||a.tokenize||"strict";this.depth="strict"===b&&a.depth||0;this.g=d&&d.g||a.rtl||!1;this.c=a.resolution||9;this.threshold=b=a.threshold||0;this.c<=b&&(this.c=b+1);this.encode=a.encode||d&&d.encode||ea;this.m=(b=a.matcher||e&&e.m)&&la(b,!1);this.s=(b=a.stemmer||
e&&e.s)&&la(b,!0);if(d=b=a.filter||e&&e.filter){d=b;e=G();var f=0;for(c=d.length;f<c;f++)e[d[f]]=1;d=e}this.filter=d;(this.a=c=(b=a.doc)&&ma(b))&&(a.doc=null);this.i=aa(this.c-this.threshold);this.h=G();this.f=G();if(c){this.l=G();d=c.index={};e=c.keys=[];f=c.field;var g=c.tag,h=c.store;y(c.id)||(c.id=c.id.split(":"));if(h){var k=G();if(t(h))k[h]=1;else if(y(h))for(var m=0;m<h.length;m++)k[h[m]]=1;else E(h)&&(k=h);c.store=k}if(g){this.o=G();h=G();if(f)if(t(f))h[f]=a;else if(y(f))for(k=0;k<f.length;k++)h[f[k]]=
a;else E(f)&&(h=f);y(g)||(c.tag=g=[g]);for(f=0;f<g.length;f++)this.o[g[f]]=G();this.w=g;f=h}if(f){if(!y(f))if(E(f)){var q=f;c.field=f=Object.keys(f)}else c.field=f=[f];for(c=0;c<f.length;c++)g=f[c],y(g)||(q&&(a=q[g]),e[c]=g,f[c]=g.split(":")),d[g]=new P(a)}}this.j=!0;this.b=(b=a.cache)&&new S(b);return this};function ma(a){var b=G(),c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];b[c]=y(d)?d.slice(0):E(d)?ma(d):d}return b}
P.prototype.add=function(a,b,c,d,e){if(this.a&&E(a))return V(this,"add",a,b);if(b&&t(b)&&(a||0===a)){if(this.f[a]&&!d)return this.update(a,b);if(!e){if(this.async){var f=this,g=new Promise(function(M){setTimeout(function(){f.add(a,b,null,d,!0);f=null;M()})});if(c)g.then(c);else return g;return this}if(c)return this.add(a,b,null,d,!0),c(),this}b=this.encode(b);if(!b.length)return this;c=b;e=G();e._ctx=G();for(var h=c.length,k=this.threshold,m=this.depth,q=this.c,r=this.i,p=this.g,l=0;l<h;l++){var n=
c[l];if(n){g=1;var w=n.length,v=(p?l+1:h-l)/h,x="";switch(this.v){case "reverse":case "both":for(var u=w;--u;)x=n[u]+x,W(r,e,x,a,p?1:(w-u)/w,v,k,q-1);x="";case "forward":for(u=0;u<w;u++)x+=n[u],W(r,e,x,a,p?(u+1)/w:1,v,k,q-1);break;case "full":for(u=0;u<w;u++)for(var A=(p?u+1:w-u)/w,B=w;B>u;B--)x=n.substring(u,B),W(r,e,x,a,A,v,k,q-1);break;default:if(w=W(r,e,n,a,1,v,k,q-1),m&&1<h&&w>=k)for(w=e._ctx[n]||(e._ctx[n]=G()),n=this.h[n]||(this.h[n]=aa(q-(k||0))),v=l-m,x=l+m+1,0>v&&(v=0),x>h&&(x=h);v<x;v++)v!==
l&&W(n,w,c[v],a,0,q-(v<l?l-v:v-l),k,q-1)}}}g&&(this.f[a]=1);this.j=!1}return this};
function V(a,b,c,d){if(y(c)){var e=c.length;if(e)for(var f=0;f<e;f++)V(a,b,c[f],f===e-1&&d)}else{var g=a.a.index,h=a.a.keys,k=a.a.tag;f=a.a.store;var m;var q=a.a.id;e=c;for(var r=0;r<q.length;r++)e=e[q[r]];if("remove"===b){if(delete a.l[e],c=h.length)for(f=0;f<c;f++)g[h[f]].remove(e,f===c-1&&d)}else{if(k){for(m=0;m<k.length;m++){var p=k[m];var l=c;q=p.split(":");for(r=0;r<q.length;r++)l=l[q[r]];l="@"+l}m=a.o[p];m=m[l]||(m[l]=[])}q=a.a.field;k=0;for(p=q.length;k<p;k++){r=q[k];l=c;for(var n=0;n<r.length;n++)l=
l[r[n]];r=g[h[k]];"add"===b?r.add(e,l,k===p-1&&d):r.update(e,l,k===p-1&&d)}if(f){d=Object.keys(f);b=G();for(g=0;g<d.length;g++)if(h=d[g],f[h])for(h=h.split(":"),k=q=void 0,p=0;p<h.length;p++)l=h[p],q=(q||c)[l],k=(k||b)[l]=q;c=b}m&&(m[m.length]=c);a.l[e]=c}}return a}P.prototype.update=function(a,b,c){if(this.a&&E(a))return V(this,"update",a,b);this.f[a]&&t(b)&&(this.remove(a),this.add(a,b,c,!0));return this};
P.prototype.remove=function(a,b,c){if(this.a&&E(a))return V(this,"remove",a,b);if(this.f[a]){if(!c){if(this.async&&"function"!==typeof importScripts){var d=this;c=new Promise(function(e){setTimeout(function(){d.remove(a,null,!0);d=null;e()})});if(b)c.then(b);else return c;return this}if(b)return this.remove(a,null,!0),b(),this}for(b=0;b<this.c-(this.threshold||0);b++)X(this.i[b],a);this.depth&&X(this.h,a);delete this.f[a];this.j=!1}return this};var Y;
function na(a,b,c,d,e,f,g,h,k,m,q){d=oa(d,h?0:f,k,g,c,m,q);if(k){k=d.page;var r=d.next;d=d.result}if(h)d=a.where(h,null,f,d);else{c=d;d=a.l;f=c.length;g=Array(f);for(h=0;h<f;h++)g[h]=d[c[h]];d=g}e&&(z(e)||(Y=e.split(":"),e=1<Y.length?pa:qa),d.sort(e));d=Z(k,r,d);a.b&&a.b.set(b,d);return d}
P.prototype.search=function(a,b,c,d){if(E(b)){if(y(b))for(var e=0;e<b.length;e++)b[e].query=a;else b.query=a;a=b;b=1E3}else b&&z(b)?(c=b,b=1E3):b||0===b||(b=1E3);var f=[],g=a;if(E(a)&&!y(a)){c||(c=a.callback)&&(g.callback=null);var h=a.sort;var k=a.page;b=a.limit;var m=a.threshold;var q=a.suggest;a=a.query}if(this.a){m=this.a.index;var r=g.where,p=g.bool||"or",l=g.field,n=p,w,v;if(l)y(l)||(l=[l]);else if(y(g)){var x=g;l=[];n=[];for(var u=0;u<g.length;u++)d=g[u],e=d.bool||p,l[u]=d.field,n[u]=e,"not"===
e?w=!0:"and"===e&&(v=!0)}else l=this.a.keys;p=l.length;for(u=0;u<p;u++)x&&(g=x[u]),k&&!t(g)&&(g.page=null,g.limit=0),f[u]=m[l[u]].search(g,0);if(c)return c(na(this,a,n,f,h,b,q,r,k,v,w));if(this.async){var A=this;return new Promise(function(ba){Promise.all(f).then(function(ua){ba(na(A,a,n,ua,h,b,q,r,k,v,w))})})}return na(this,a,n,f,h,b,q,r,k,v,w)}m||(m=this.threshold||0);if(!d){if(this.async&&"function"!==typeof importScripts){var B=this;m=new Promise(function(ba){setTimeout(function(){ba(B.search(g,
b,null,!0));B=null})});if(c)m.then(c);else return m;return this}if(c)return c(this.search(g,b,null,!0)),this}if(!a||!t(a))return f;g=a;if(this.b)if(this.j){if(c=this.b.get(a))return c}else this.b.clear(),this.j=!0;g=this.encode(g);if(!g.length)return f;c=g;x=c.length;d=!0;e=[];var M=G(),Q=0;1<x&&(this.depth?p=!0:c.sort(ra));if(!p||(u=this.h))for(var T=this.c;Q<x;Q++){var C=c[Q];if(C){if(p){if(!l)if(u[C])l=C,M[C]=1;else if(!q)return f;if(q&&Q===x-1&&!e.length)p=!1,C=l||C,M[C]=0;else if(!l)continue}if(!M[C]){var D=
[],N=!1,H=0,I=p?u[l]:this.i;if(I)for(var R=void 0,J=0;J<T-m;J++)if(R=I[J]&&I[J][C])D[H++]=R,N=!0;if(N)l=C,e[e.length]=1<H?D.concat.apply([],D):D[0];else if(!q){d=!1;break}M[C]=1}}}else d=!1;d&&(f=oa(e,b,k,q));this.b&&this.b.set(a,f);return f};P.prototype.info=function(){return{id:this.id,items:this.length,matcher:this.m.length,worker:this.A,threshold:this.threshold,depth:this.depth,resolution:this.c,contextual:this.depth&&"strict"===this.v}};P.prototype.clear=function(){return this.destroy().init()};
P.prototype.destroy=function(){this.b&&(this.b.clear(),this.b=null);this.i=this.h=this.f=null;if(this.a){for(var a=this.a.keys,b=0;b<a.length;b++)this.a.index[a[b]].destroy();this.a=this.l=null}return this};function ka(a,b,c){Object.defineProperty(a,b,{get:c})}function W(a,b,c,d,e,f,g,h){if(b[c])return b[c];e=e?(h-(g||h/1.5))*f+(g||h/1.5)*e:f;b[c]=e;e>=g&&(a=a[h-(e+.5>>0)],a=a[c]||(a[c]=[]),a[a.length]=d);return e}
function X(a,b){if(a)for(var c=Object.keys(a),d=0,e=c.length;d<e;d++){var f=c[d],g=a[f];if(g)for(var h=0,k=g.length;h<k;h++)if(g[h]===b){1===k?delete a[f]:g.splice(h,1);break}else E(g[h])&&X(g[h],b)}}function la(a,b){for(var c=Object.keys(a),d=c.length,e=[],f="",g=0,h=0,k;h<d;h++){var m=c[h];(k=a[m])?(e[g++]=L(b?"(?!\\b)"+m+"(\\b|_)":m),e[g++]=k):f+=(f?"|":"")+m}f&&(e[g++]=L(b?"(?!\\b)("+f+")(\\b|_)":"("+f+")"),e[g]="");return e}function ra(a,b){return b.length-a.length}
function qa(a,b){a=a[Y];b=b[Y];return a<b?-1:a>b?1:0}function pa(a,b){for(var c=Y.length,d=0;d<c;d++)a=a[Y[d]],b=b[Y[d]];return a<b?-1:a>b?1:0}function Z(a,b,c){return a?{page:a,next:b?""+b:null,result:c}:c}
function oa(a,b,c,d,e,f,g){var h=[];if(!0===c){c="0";var k=""}else k=c&&c.split(":");var m=a.length;if(1<m){var q=G(),r=[],p,l=0,n,w=!0,v=0,x;if(k)if(2===k.length){var u=k;k=!1}else k=x=parseInt(k[0],10);if(g){for(p=G();l<m;l++)if("not"===e[l]){var A=a[l];var B=A.length;for(n=0;n<B;n++)p["@"+A[n]]=1}else var M=l+1;if(F(M))return Z(c,J,h);l=0}else var Q=t(e)&&e;for(var T;l<m;l++){var C=l===(M||m)-1;if(!Q||!l)if((n=Q||e&&e[l])&&"and"!==n)if("or"===n)T=!1;else continue;else T=f=!0;A=a[l];if(B=A.length){if(w)if(H){var D=
H.length;for(n=0;n<D;n++){w=H[n];var N="@"+w;g&&p[N]||(q[N]=1,f||(h[v++]=w))}var H=null;w=!1}else{H=A;continue}N=!1;for(n=0;n<B;n++){D=A[n];var I="@"+D,R=f?q[I]||0:l;if(!(!R&&!d||g&&p[I]||!f&&q[I]))if(R===l){if(C){if(!x||--x<v)if(h[v++]=D,b&&v===b)return Z(c,v+(k||0),h)}else q[I]=l+1;N=!0}else d&&(I=r[R]||(r[R]=[]),I[I.length]=D)}if(T&&!N&&!d)break}else if(T&&!d)return Z(c,J,A)}if(H)if(l=H.length,g)for(n=k?parseInt(k,10):0;n<l;n++)a=H[n],p["@"+a]||(h[v++]=a);else h=H;if(d)for(v=h.length,u?(l=parseInt(u[0],
10)+1,n=parseInt(u[1],10)+1):(l=r.length,n=0);l--;)if(D=r[l]){for(B=D.length;n<B;n++)if(d=D[n],!g||!p["@"+d])if(h[v++]=d,b&&v===b)return Z(c,l+":"+n,h);n=0}}else!m||e&&"not"===e[0]||(h=a[0],k&&(k=parseInt(k[0],10)));if(b){g=h.length;k&&k>g&&(k=0);k=k||0;var J=k+b;J<g?h=h.slice(k,J):(J=0,k&&(h=h.slice(k)))}return Z(c,J,h)};var ta={encode:sa,g:!1},va=/[\W_]+/,wa=[L("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",L("[\u00e8\u00e9\u00ea\u00eb]"),"e",L("[\u00ec\u00ed\u00ee\u00ef]"),"i",L("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",L("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",L("[\u00fd\u0177\u00ff]"),"y",L("\u00f1"),"n",L("[\u00e7c]"),"k",L("\u00df"),"s",L(" & ")," and "];function sa(a,b){return O(b||this,a.toLowerCase(),wa,va)};var xa=[L("ae"),"a",L("ai"),"ei",L("ay"),"ei",L("ey"),"ei",L("oe"),"o",L("ue"),"u",L("ie"),"i",L("sz"),"s",L("zs"),"s",L("sh"),"s",L("ck"),"k",L("cc"),"k",L("th"),"t",L("dt"),"t",L("ph"),"f",L("pf"),"f",L("ou"),"o",L("uo"),"u"];function ya(a,b,c){a&&(a=sa(a,b||this).join(" "),2<a.length&&(a=K(a,xa)),c||(1<a.length&&(a=ca(a)),a&&(a=a.split(" "))));return a};var Aa={encode:za,g:!1},Ba=/[\W_]+/;function za(a){return O(this,a.toLowerCase(),!1,Ba)};var Da={encode:Ca,g:!1},Ea=[L("(?!\\b)p"),"b",L("(?!\\b)z"),"s",L("(?!\\b)[cgq]"),"k",L("(?!\\b)n"),"m",L("(?!\\b)d"),"t",L("(?!\\b)[vw]"),"f",L("(?!\\b)[aeiouy]"),""];function Ca(a){a&&(a=ya(a,this,!0),1<a.length&&(a=K(a,Ea)),1<a.length&&(a=ca(a)),a&&(a=a.split(" ")));return a};var Ga={encode:Fa,g:!1,u:"strict"},Ha=/[^a-z]+/;function Fa(a){a=O(this,a.toLowerCase(),!1,!1);var b=[];if(a)for(var c=a.split(Ha),d=c.length,e=0,f=0;e<d;e++)if((a=c[e])&&2<a.length&&(!this.filter||!this.filter[a])){for(var g=a[0],h=Ia(g),k=1;k<a.length;k++){var m=Ia(a[k]);if(m!==h&&(g+=m,h=m,4===g.length))break}b[f++]=(g+"0000").substring(0,4)}return b}
function Ia(a){switch(a){case "b":case "f":case "p":case "v":return 1;case "c":case "g":case "j":case "k":case "q":case "s":case "x":case "z":return 2;case "d":case "t":return 3;case "l":return 4;case "m":case "n":return 5;case "r":return 6}return""};var Ka={encode:Ja,g:!0},La=/[\x00-\x7F]+/g;function Ja(a){return O(this,a.replace(La," "),!1," ")};var Na={encode:Ma,g:!1,u:"strict"},Oa=/[\x00-\x7F]+/g;function Ma(a){return O(this,a.replace(Oa,""),!1,"")};var Qa={encode:Pa,g:!1},Ra=/[\x00-\x7F]+/g;function Pa(a){return O(this,a.replace(Ra," "),!1," ")};U["latin:advanced"]={encode:ya,g:!1};U["latin:balance"]=Aa;U["latin:default"]=fa;U["latin:extra"]=Da;U["latin:simple"]=ta;U["latin:soundex"]=Ga;U["arabic:default"]=Ka;U["cjk:default"]=Na;U["cyrillic:default"]=Qa;(function(){var a=this||window,b;(b=a.define)&&b.amd?b([],function(){return P}):"object"===typeof a.exports?a.module.exports=P:a.FlexSearch=P})();}).call(this);

904
dist/flexsearch.pre.js vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1 @@
(function(){'use strict';var a=/[\W_]+/;window.FlexSearch.registerCharset("arabic:default",{encode:function(b){return this.a(b,!1,a,!1)},b:!0});}).call(this);
(function(){'use strict';var a=/[\x00-\x7F]+/g;window.FlexSearch.registerCharset("arabic:default",{encode:function(b){return this.a(b.replace(a," "),!1," ",!1)},b:!0});}).call(this);

View File

@@ -1 +1 @@
(function(){'use strict';var a=/[\x00-\x7F]/g;window.FlexSearch.registerCharset("cjk:default",{encode:function(b){return this.a(b.replace(a,""),!1,"",!1)},b:!1,c:"strict"});}).call(this);
(function(){'use strict';var a=/[\x00-\x7F]+/g;window.FlexSearch.registerCharset("cjk:default",{encode:function(b){return this.a(b.replace(a,""),!1,"",!1)},b:!1,c:"strict"});}).call(this);

View File

@@ -1 +1 @@
(function(){'use strict';var a=/[\W_]+/;window.FlexSearch.registerCharset("cyrillic:default",{encode:function(b){return this.a(b,!1,a,!1)},b:!1});}).call(this);
(function(){'use strict';var a=/[\x00-\x7F]+/g;window.FlexSearch.registerCharset("cyrillic:default",{encode:function(b){return this.a(b.replace(a," "),!1," ",!1)},b:!1});}).call(this);

View File

@@ -1 +1 @@
(function(){'use strict';function a(b){return new RegExp(b,"g")};var f=/[\W_]+/,h=[a("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",a("[\u00e8\u00e9\u00ea\u00eb]"),"e",a("[\u00ec\u00ed\u00ee\u00ef]"),"i",a("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",a("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",a("[\u00fd\u0177\u00ff]"),"y",a("\u00f1"),"n",a("[\u00e7c]"),"k",a("\u00df"),"s",a(" & ")," and "];function k(b,c){c||(c=this);return c.a(b.toLowerCase(),h,f,!1)};var l=[a("ae"),"a",a("ai"),"ei",a("ay"),"ei",a("ey"),"ei",a("oe"),"o",a("ue"),"u",a("ie"),"i",a("sz"),"s",a("zs"),"s",a("sh"),"s",a("ck"),"k",a("cc"),"k",a("th"),"t",a("dt"),"t",a("ph"),"f",a("pf"),"f",a("ou"),"o",a("uo"),"u"];window.FlexSearch.registerCharset("latin:advanced",{encode:function(b,c){if(b){b=k(b,this).join(" ");if(2<b.length)for(var d=0,e=l.length;d<e&&(b=b.replace(l[d],l[d+1]),b);d+=2);if(!c){if(1<b.length){d=c="";e=0;for(var m=b.length,g=void 0;e<m;e++)(g=b[e])!==d&&(c+=d=g);b=c}b&&(b=b.split(" "))}}return b},b:!1});}).call(this);
(function(){'use strict';function a(b){return new RegExp(b,"g")};var f=/[\W_]+/,h=[a("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",a("[\u00e8\u00e9\u00ea\u00eb]"),"e",a("[\u00ec\u00ed\u00ee\u00ef]"),"i",a("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",a("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",a("[\u00fd\u0177\u00ff]"),"y",a("\u00f1"),"n",a("[\u00e7c]"),"k",a("\u00df"),"s",a(" & ")," and "];function k(b,c){return(c||this).a(b.toLowerCase(),h,f,!1)};var l=[a("ae"),"a",a("ai"),"ei",a("ay"),"ei",a("ey"),"ei",a("oe"),"o",a("ue"),"u",a("ie"),"i",a("sz"),"s",a("zs"),"s",a("sh"),"s",a("ck"),"k",a("cc"),"k",a("th"),"t",a("dt"),"t",a("ph"),"f",a("pf"),"f",a("ou"),"o",a("uo"),"u"];window.FlexSearch.registerCharset("latin:advanced",{encode:function(b,c,e){if(b){b=k(b,c||this).join(" ");if(2<b.length){c=0;for(var d=l.length;c<d&&(b=b.replace(l[c],l[c+1]),b);c+=2);}if(!e){if(1<b.length){c=e="";d=0;for(var m=b.length,g=void 0;d<m;d++)(g=b[d])!==c&&(e+=c=g);b=e}b&&(b=b.split(" "))}}return b},b:!1});}).call(this);

View File

@@ -1 +1 @@
(function(){'use strict';function a(b,c){for(var d=0,e=c.length;d<e&&(b=b.replace(c[d],c[d+1]),b);d+=2);return b}function f(b){return new RegExp(b,"g")};var h=/[\W_]+/,k=[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 l(b,c){c||(c=this);return c.a(b.toLowerCase(),k,h,!1)};var m=[f("ae"),"a",f("ai"),"ei",f("ay"),"ei",f("ey"),"ei",f("oe"),"o",f("ue"),"u",f("ie"),"i",f("sz"),"s",f("zs"),"s",f("sh"),"s",f("ck"),"k",f("cc"),"k",f("th"),"t",f("dt"),"t",f("ph"),"f",f("pf"),"f",f("ou"),"o",f("uo"),"u"];function n(b){b&&(b=l(b,this).join(" "),2<b.length&&(b=a(b,m)));return b};var p=[f("(?!\\b)p"),"b",f("(?!\\b)z"),"s",f("(?!\\b)[cgq]"),"k",f("(?!\\b)n"),"m",f("(?!\\b)d"),"t",f("(?!\\b)[vw]"),"f",f("(?!\\b)[aeiouy]"),""];window.FlexSearch.registerCharset("latin:extra",{encode:function(b){if(b){b=n(b);1<b.length&&(b=a(b,p));if(1<b.length){for(var c="",d="",e=0,q=b.length,g=void 0;e<q;e++)(g=b[e])!==d&&(c+=d=g);b=c}b&&(b=b.split(" "))}return b},b:!1});}).call(this);
(function(){'use strict';function a(b,c){for(var d=0,e=c.length;d<e&&(b=b.replace(c[d],c[d+1]),b);d+=2);return b}function f(b){return new RegExp(b,"g")};var h=/[\W_]+/,k=[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 l(b,c){return(c||this).a(b.toLowerCase(),k,h,!1)};var m=[f("ae"),"a",f("ai"),"ei",f("ay"),"ei",f("ey"),"ei",f("oe"),"o",f("ue"),"u",f("ie"),"i",f("sz"),"s",f("zs"),"s",f("sh"),"s",f("ck"),"k",f("cc"),"k",f("th"),"t",f("dt"),"t",f("ph"),"f",f("pf"),"f",f("ou"),"o",f("uo"),"u"];function n(b,c){b&&(b=l(b,c||this).join(" "),2<b.length&&(b=a(b,m)));return b};var p=[f("(?!\\b)p"),"b",f("(?!\\b)z"),"s",f("(?!\\b)[cgq]"),"k",f("(?!\\b)n"),"m",f("(?!\\b)d"),"t",f("(?!\\b)[vw]"),"f",f("(?!\\b)[aeiouy]"),""];window.FlexSearch.registerCharset("latin:extra",{encode:function(b){if(b){b=n(b,this);1<b.length&&(b=a(b,p));if(1<b.length){for(var c="",d="",e=0,q=b.length,g=void 0;e<q;e++)(g=b[e])!==d&&(c+=d=g);b=c}b&&(b=b.split(" "))}return b},b:!1});}).call(this);

View File

@@ -1 +1 @@
(function(){'use strict';function a(b){return new RegExp(b,"g")};var d=/[\W_]+/,e=[a("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",a("[\u00e8\u00e9\u00ea\u00eb]"),"e",a("[\u00ec\u00ed\u00ee\u00ef]"),"i",a("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",a("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",a("[\u00fd\u0177\u00ff]"),"y",a("\u00f1"),"n",a("[\u00e7c]"),"k",a("\u00df"),"s",a(" & ")," and "];window.FlexSearch.registerCharset("latin:simple",{encode:function(b,c){c||(c=this);return c.a(b.toLowerCase(),e,d,!1)},b:!1});}).call(this);
(function(){'use strict';function a(b){return new RegExp(b,"g")};var c=/[\W_]+/,d=[a("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",a("[\u00e8\u00e9\u00ea\u00eb]"),"e",a("[\u00ec\u00ed\u00ee\u00ef]"),"i",a("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",a("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",a("[\u00fd\u0177\u00ff]"),"y",a("\u00f1"),"n",a("[\u00e7c]"),"k",a("\u00df"),"s",a(" & ")," and "];window.FlexSearch.registerCharset("latin:simple",{encode:function(b,e){return(e||this).a(b.toLowerCase(),d,c,!1)},b:!1});}).call(this);

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import FlexSearch from"../../flexsearch.js";export const rtl=!0;export const tokenize="";export default{encode:encode,rtl:!0};const split=/[\W_]+/;export function encode(a){return this.pipeline(a,!1,split,!1)}
import FlexSearch from"../../flexsearch.js";export const rtl=!0;export const tokenize="";export default{encode:encode,rtl:!0};const regex=/[\x00-\x7F]+/g;export function encode(a){return this.pipeline(a.replace(regex," "),!1," ",!1)}

View File

@@ -1 +1 @@
import FlexSearch from"../../flexsearch.js";export const rtl=!1;export const tokenize="strict";export default{encode:encode,rtl:!1,tokenize:"strict"};const regex=/[\x00-\x7F]/g;export function encode(a){return this.pipeline(a.replace(regex,""),!1,"",!1)}
import FlexSearch from"../../flexsearch.js";export const rtl=!1;export const tokenize="strict";export default{encode:encode,rtl:!1,tokenize:"strict"};const regex=/[\x00-\x7F]+/g;export function encode(a){return this.pipeline(a.replace(regex,""),!1,"",!1)}

View File

@@ -1 +1 @@
import FlexSearch from"../../flexsearch.js";export const rtl=!1;export const tokenize="";export default{encode:encode,rtl:!1};const split=/[\W_]+/;export function encode(a){return this.pipeline(a,!1,split,!1)}
import FlexSearch from"../../flexsearch.js";export const rtl=!1;export const tokenize="";export default{encode:encode,rtl:!1};const regex=/[\x00-\x7F]+/g;export function encode(a){return this.pipeline(a.replace(regex," "),!1," ",!1)}

View File

@@ -1 +1 @@
import FlexSearch from"../../flexsearch.js";import{regex,replace,collapse}from"../../common.js";import{encode as encode_simple}from"./simple.js";export const rtl=!1;export const tokenize="";export default{encode:encode,rtl:!1};const regex_ae=regex("ae"),regex_ai=regex("ai"),regex_ay=regex("ay"),regex_ey=regex("ey"),regex_oe=regex("oe"),regex_ue=regex("ue"),regex_ie=regex("ie"),regex_sz=regex("sz"),regex_zs=regex("zs"),regex_ck=regex("ck"),regex_cc=regex("cc"),regex_sh=regex("sh"),regex_th=regex("th"),regex_dt=regex("dt"),regex_ph=regex("ph"),regex_pf=regex("pf"),regex_ou=regex("ou"),regex_uo=regex("uo"),pairs=[regex_ae,"a",regex_ai,"ei",regex_ay,"ei",regex_ey,"ei",regex_oe,"o",regex_ue,"u",regex_ie,"i",regex_sz,"s",regex_zs,"s",regex_sh,"s",regex_ck,"k",regex_cc,"k",regex_th,"t",regex_dt,"t",regex_ph,"f",regex_pf,"f",regex_ou,"o",regex_uo,"u"];export function encode(a,b){return a&&(a=encode_simple(a,this).join(" "),2<a.length&&(a=replace(a,pairs)),!b&&(1<a.length&&(a=collapse(a)),a&&(a=a.split(" ")))),a}
import FlexSearch from"../../flexsearch.js";import{regex,replace,collapse}from"../../common.js";import{encode as encode_simple}from"./simple.js";export const rtl=!1;export const tokenize="";export default{encode:encode,rtl:!1};const regex_ae=regex("ae"),regex_ai=regex("ai"),regex_ay=regex("ay"),regex_ey=regex("ey"),regex_oe=regex("oe"),regex_ue=regex("ue"),regex_ie=regex("ie"),regex_sz=regex("sz"),regex_zs=regex("zs"),regex_ck=regex("ck"),regex_cc=regex("cc"),regex_sh=regex("sh"),regex_th=regex("th"),regex_dt=regex("dt"),regex_ph=regex("ph"),regex_pf=regex("pf"),regex_ou=regex("ou"),regex_uo=regex("uo"),pairs=[regex_ae,"a",regex_ai,"ei",regex_ay,"ei",regex_ey,"ei",regex_oe,"o",regex_ue,"u",regex_ie,"i",regex_sz,"s",regex_zs,"s",regex_sh,"s",regex_ck,"k",regex_cc,"k",regex_th,"t",regex_dt,"t",regex_ph,"f",regex_pf,"f",regex_ou,"o",regex_uo,"u"];export function encode(a,b,c){return a&&(a=encode_simple(a,b||this).join(" "),2<a.length&&(a=replace(a,pairs)),!c&&(1<a.length&&(a=collapse(a)),a&&(a=a.split(" ")))),a}

View File

@@ -1 +1 @@
import{regex,replace,collapse}from"../../common.js";import{encode as encode_advanced}from"./advanced.js";export const rtl=!1;export const tokenize="";export default{encode:encode,rtl:!1};const prefix="(?!\\b)",soundex_b=regex("(?!\\b)p"),soundex_s=regex("(?!\\b)z"),soundex_k=regex("(?!\\b)[cgq]"),soundex_m=regex("(?!\\b)n"),soundex_t=regex("(?!\\b)d"),soundex_f=regex("(?!\\b)[vw]"),regex_vowel=regex("(?!\\b)[aeiouy]"),pairs=[soundex_b,"b",soundex_s,"s",soundex_k,"k",soundex_m,"m",soundex_t,"t",soundex_f,"f",regex_vowel,""];export function encode(a){return a&&(a=encode_advanced(a,!0),1<a.length&&(a=replace(a,pairs)),1<a.length&&(a=collapse(a)),a&&(a=a.split(" "))),a}
import FlexSearch from"../../flexsearch.js";import{regex,replace,collapse}from"../../common.js";import{encode as encode_advanced}from"./advanced.js";export const rtl=!1;export const tokenize="";export default{encode:encode,rtl:!1};const prefix="(?!\\b)",soundex_b=regex("(?!\\b)p"),soundex_s=regex("(?!\\b)z"),soundex_k=regex("(?!\\b)[cgq]"),soundex_m=regex("(?!\\b)n"),soundex_t=regex("(?!\\b)d"),soundex_f=regex("(?!\\b)[vw]"),regex_vowel=regex("(?!\\b)[aeiouy]"),pairs=[soundex_b,"b",soundex_s,"s",soundex_k,"k",soundex_m,"m",soundex_t,"t",soundex_f,"f",regex_vowel,""];export function encode(a){return a&&(a=encode_advanced(a,this,!0),1<a.length&&(a=replace(a,pairs)),1<a.length&&(a=collapse(a)),a&&(a=a.split(" "))),a}

View File

@@ -1 +1 @@
import FlexSearch from"../../flexsearch.js";import{regex}from"../../common.js";export const rtl=!1;export const tokenize="";export default{encode:encode,rtl:!1};const regex_whitespace=/[\W_]+/,regex_a=regex("[\xE0\xE1\xE2\xE3\xE4\xE5]"),regex_e=regex("[\xE8\xE9\xEA\xEB]"),regex_i=regex("[\xEC\xED\xEE\xEF]"),regex_o=regex("[\xF2\xF3\xF4\xF5\xF6\u0151]"),regex_u=regex("[\xF9\xFA\xFB\xFC\u0171]"),regex_y=regex("[\xFD\u0177\xFF]"),regex_n=regex("\xF1"),regex_c=regex("[\xE7c]"),regex_s=regex("\xDF"),regex_and=regex(" & "),pairs=[regex_a,"a",regex_e,"e",regex_i,"i",regex_o,"o",regex_u,"u",regex_y,"y",regex_n,"n",regex_c,"k",regex_s,"s",regex_and," and "];export function encode(a,b){return b||(b=this),b.pipeline(a.toLowerCase(),pairs,regex_whitespace,!1)}
import FlexSearch from"../../flexsearch.js";import{regex}from"../../common.js";export const rtl=!1;export const tokenize="";export default{encode:encode,rtl:!1};const regex_whitespace=/[\W_]+/,regex_a=regex("[\xE0\xE1\xE2\xE3\xE4\xE5]"),regex_e=regex("[\xE8\xE9\xEA\xEB]"),regex_i=regex("[\xEC\xED\xEE\xEF]"),regex_o=regex("[\xF2\xF3\xF4\xF5\xF6\u0151]"),regex_u=regex("[\xF9\xFA\xFB\xFC\u0171]"),regex_y=regex("[\xFD\u0177\xFF]"),regex_n=regex("\xF1"),regex_c=regex("[\xE7c]"),regex_s=regex("\xDF"),regex_and=regex(" & "),pairs=[regex_a,"a",regex_e,"e",regex_i,"i",regex_o,"o",regex_u,"u",regex_y,"y",regex_n,"n",regex_c,"k",regex_s,"s",regex_and," and "];export function encode(a,b){return(b||this).pipeline(a.toLowerCase(),pairs,regex_whitespace,!1)}

View File

@@ -1 +1 @@
export default{memory:{encode:"extra",tokenize:"strict",threshold:0,resolution:1},speed:{encode:"icase",tokenize:"strict",threshold:1,resolution:3,depth:2},match:{encode:"extra",tokenize:"full",threshold:1,resolution:3},score:{encode:"extra",tokenize:"strict",threshold:1,resolution:9,depth:4},balance:{encode:"balance",tokenize:"strict",threshold:0,resolution:3,depth:3},fast:{encode:"icase",tokenize:"strict",threshold:8,resolution:9,depth:1}};
export default{memory:{charset:"latin:extra",threshold:0,resolution:1},speed:{threshold:1,resolution:3,depth:2},match:{charset:"latin:extra",tokenize:"full",threshold:1,resolution:3},score:{charset:"latin:extra",threshold:1,resolution:9,depth:4},balance:{charset:"latin:balance",threshold:0,resolution:3,depth:3},fast:{threshold:8,resolution:9,depth:1}};

View File

@@ -116,12 +116,12 @@ import advanced from "./dist/module/lang/latin/advanced.js";
import { encode } from "./dist/module/lang/latin/extra.js";
const index_advanced = FlexSearch({
// inherit all definitions:
// apply all definitions:
charset: advanced
});
const index_extra = FlexSearch({
// just inherit the encoder:
// just apply the encoder:
encode: encode
});
```
@@ -168,19 +168,6 @@ const index = FlexSearch({
> Use the `charset:variant` notation to assign charset and its variants. When just passing the charset without a variant will automatically resolve as `charset:default`.
The example above is a shortcut for:
```js
const index = FlexSearch({
encode: "latin:soundex",
tokenize: "latin:soundex",
rtl: "latin:soundex",
stemmer: "en",
matcher: "en",
filter: "en"
});
```
You can also override existing definitions, e.g.:
```js
@@ -206,11 +193,11 @@ It is pretty straight forward when using an encoder variant:
```js
const index_advanced = FlexSearch({
encode: "latin:advanced"
charset: "latin:advanced"
});
const index_extra = FlexSearch({
encode: "latin:extra"
charset: "latin:extra"
});
```

View File

@@ -29,39 +29,39 @@ import {
regex
} from "./common.js";
let id_counter = 0;
export const global_lang = {};
export const global_charset = {};
/**
* TODO: inlining them
* @const
* @enum {boolean|string|number|RegExp|Function}
*/
const defaults = {
"encode": default_encoder,
"tokenize": "strict",
// split: default_split,
// enrich: true,
// clone: false,
// suggest: false,
"cache": false,
"async": false,
"worker": false,
"rtl": false,
"doc": false,
// maximum scoring
"resolution": 9,
// minimum scoring
"threshold": 0,
// contextual depth
"depth": 0
};
let id_counter = 0;
export const global_lang = {};
export const global_charset = {};
// const defaults = {
//
// "encode": default_encoder,
// "tokenize": "strict",
// // split: default_split,
// // enrich: true,
// // clone: false,
// // suggest: false,
// "cache": false,
// "async": false,
// "worker": false,
// "rtl": false,
// "doc": false,
//
// // maximum scoring
// "resolution": 9,
//
// // minimum scoring
// "threshold": 0,
//
// // contextual depth
// "depth": 0
// };
/**
* NOTE: Actually not really required when using bare objects via: Object.create(null)
@@ -104,17 +104,17 @@ export default function FlexSearch(options){
register_property(this, "index", /** @this {FlexSearch} */ function(){
// if(SUPPORT_DOCUMENT && this.doc){
//
// return get_keys(this.doc.index[this.doc.keys[0]]._ids);
// }
if(SUPPORT_DOCUMENT && this.doc){
return get_keys(this.doc.index[this.doc.keys[0]]._ids);
}
return get_keys(this._ids);
});
register_property(this, "length", /** @this {FlexSearch} */ function(){
return this.index.length;
return this["index"].length;
});
}
@@ -154,7 +154,7 @@ FlexSearch["registerCharset"] = function(name, charset){
FlexSearch["registerLanguage"] = function(name, lang){
global_charset[name] = lang;
global_lang[name] = lang;
return FlexSearch;
};
@@ -194,7 +194,7 @@ FlexSearch.prototype.init = function(options){
let custom;
let doc;
if(SUPPORT_PRESET){
if(SUPPORT_PRESET && options){
if(is_string(options)){
@@ -205,33 +205,38 @@ FlexSearch.prototype.init = function(options){
options = presets[options];
}
else{
else if((custom = options["preset"])){
if((custom = options["preset"])){
if(DEBUG && !presets[custom]){
if(DEBUG && !presets[custom]){
console.warn("Preset not found: " + custom);
}
options = Object.assign({}, presets[custom], /** @type {Object} */ (options));
console.warn("Preset not found: " + custom);
}
options = Object.assign({}, presets[custom], /** @type {Object} */ (options));
}
}
if(!this.encode){
options || (options = {});
if(options){
// TODO reset state and rebuild index
options = Object.assign({}, defaults, /** @type {Object} */ (options));
}
else{
// if(this.encode){
//
// }
options = defaults;
}
}
// if(!this.encode){
//
// if(options){
//
// options = Object.assign({}, defaults, /** @type {Object} */ (options));
// }
// else{
//
// options = defaults;
// }
// }
if(options){
//if(options){
// initialize worker
@@ -273,44 +278,50 @@ FlexSearch.prototype.init = function(options){
}
if(SUPPORT_ASYNC){
/** @private */
this.async = options["async"];
/** @private */
this.timer = 0;
}
const charset = options["charset"];
const lang = options["lang"];
let charset = options["charset"];
let lang = options["lang"];
if(is_string(charset)){
if(charset.indexOf(":") === -1){
charset += ":default";
}
charset = global_charset[charset];
}
if(is_string(lang)){
lang = global_lang[lang];
}
/** @private */
this.tokenizer = (is_string(charset) ? global_charset[charset].tokenize : charset && charset.tokenize) || options["tokenize"];
this.tokenizer = custom = (charset && charset.tokenize) || options["tokenize"] || "strict";
/** @private */
//this.split = is_string(custom = options["split"] || charset) ? (global_charset[custom] ? global_charset[custom].split : regex(custom)) : global_charset.split || custom;
this.depth = ((custom === "strict") && options["depth"]) || 0;
/** @private */
this.rtl = is_string(custom = options["rtl"] || charset) ? global_charset[custom].rtl : charset && charset.rtl || custom;
this.rtl = (charset && charset.rtl) || options["rtl"] || false;
/** @private */
this.threshold = options["threshold"];
this.resolution = options["resolution"] || 9;
/** @private */
this.resolution = ((custom = options["resolution"]) <= this.threshold ? this.threshold + 1 : custom);
/** @private */
this.depth = ((this.tokenizer === "strict") && options["depth"]) || 0;
this.threshold = custom = options["threshold"] || 0;
if(this.resolution <= custom) this.resolution = custom + 1;
/** @export */
this.encode = is_string(custom = options["encode"] || charset) ? global_charset[custom.indexOf(":") === -1 ? custom + ":default" : custom].encode : charset && charset.encode || custom; //is_function(custom = options["encode"]) ? custom : (FlexSearch.Encoder[custom] /*&& global_encoder[custom].bind(global_encoder)*/);
this.matcher = (custom = options["matcher"] || lang) && init_stemmer_or_matcher(
is_string(custom) ? global_lang[custom].matcher : lang && lang.matcher || custom, false
);
this.filter = (custom = options["filter"] || lang) && init_filter(
is_string(custom) ? global_lang[custom].filter : lang && lang.filter || custom
);
this.stemmer = (custom = options["stemmer"] || lang) && init_stemmer_or_matcher(
is_string(custom) ? global_lang[custom].stemmer : lang && lang.stemmer || custom, true
);
this.encode = options["encode"] || (charset && charset.encode) || default_encoder;
/** @private */
this.matcher = (custom = options["matcher"] || (lang && lang.matcher)) && init_stemmer_or_matcher(custom, false);
/** @private */
this.stemmer = (custom = options["stemmer"] || (lang && lang.stemmer)) && init_stemmer_or_matcher(custom, true);
/** @private */
this.filter = (custom = options["filter"] || (lang && lang.filter)) && init_filter(custom);
// TODO: provide boost
/** @private */
@@ -326,16 +337,16 @@ FlexSearch.prototype.init = function(options){
options["doc"] = null;
}
}
}
//}
// initialize primary index
/** @private */
this._map = create_object_array(this.resolution - (this.threshold || 0));
this._map = create_object_array(this.resolution - this.threshold);
/** @private */
this._ctx = create_object();
/** @private */
this._ids = {};
this._ids = create_object();
if(SUPPORT_DOCUMENT && doc){
@@ -466,13 +477,13 @@ FlexSearch.prototype.init = function(options){
//options["doc"] = custom;
}
if(SUPPORT_CACHE && (custom = options["cache"])) {
if(SUPPORT_CACHE) {
/** @private */
this._cache_status = true;
/** @private */
this._cache = new Cache(custom);
this._cache = (custom = options["cache"]) && new Cache(custom);
}
return this;
@@ -524,11 +535,13 @@ FlexSearch.prototype.add = function(id, content, callback, _skip_update, _recall
if(content && is_string(content) && ((id /*&& !index_blacklist[id]*/) || (id === 0))){
//id = "" + id;
// TODO: do not mix ids as string "1" and as number 1
const index = id;
//const index = "" + id;
if(this._ids[index] && !_skip_update){
if(this._ids[id] && !_skip_update){
return this.update(id, content);
}
@@ -547,7 +560,7 @@ FlexSearch.prototype.add = function(id, content, callback, _skip_update, _recall
// "content": content
// });
//
// this._ids[index] = "" + this._current_task;
// this._ids[id] = "" + this._current_task;
//
// // TODO: provide worker auto-balancing instead of rotation
// //this._ids_count[this._current_task]++;
@@ -620,6 +633,8 @@ FlexSearch.prototype.add = function(id, content, callback, _skip_update, _recall
const map = this._map;
const rtl = this.rtl;
let has_content;
// tokenize
for(let i = 0; i < word_length; i++){
@@ -629,6 +644,8 @@ FlexSearch.prototype.add = function(id, content, callback, _skip_update, _recall
if(value){
has_content = 1;
const length = value.length;
const context_score = (rtl ? i + 1 : word_length - i) / word_length;
@@ -759,9 +776,12 @@ FlexSearch.prototype.add = function(id, content, callback, _skip_update, _recall
}
}
// update status
if(has_content){
this._ids[index] = 1;
// update status
this._ids[id] = 1;
}
if(SUPPORT_CACHE){
@@ -782,7 +802,7 @@ if(SUPPORT_DOCUMENT){
/**
* @param {!string} job
* @param doc
* @param {Function=} callback
* @param {Function|boolean=} callback
* @returns {*}
*/
@@ -792,14 +812,14 @@ if(SUPPORT_DOCUMENT){
let len = doc.length;
if(len--){
if(len){
for(let i = 0; i < len; i++){
this.handle_docs(job, doc[i]);
this.handle_docs(job, doc[i], (i === len - 1) && callback);
}
return this.handle_docs(job, doc[len], callback);
//return this.handle_docs(job, doc[len], callback);
}
}
else{
@@ -829,110 +849,113 @@ if(SUPPORT_DOCUMENT){
delete this._doc[id];
let length = keys.length;
let len = keys.length;
if(length--){
if(len){
for(let z = 0; z < length; z++){
for(let i = 0; i < len; i++){
index[keys[z]].remove(id);
index[keys[i]].remove(id, (i === len - 1) && callback);
}
return index[keys[length]].remove(id, callback);
//return index[keys[len]].remove(id, callback);
}
}
// ---------------------------------------------------------------
if(tags){
else{
let tag_key;
let tag_value;
if(tags){
for(let i = 0; i < tags.length; i++){
let tag_key;
let tag_value;
tag_key = tags[i];
tag_value = doc;
for(let i = 0; i < tags.length; i++){
const tag_split = tag_key.split(":");
tag_key = tags[i];
tag_value = doc;
for(let a = 0; a < tag_split.length; a++){
const tag_split = tag_key.split(":");
tag_value = tag_value[tag_split[a]];
for(let a = 0; a < tag_split.length; a++){
tag_value = tag_value[tag_split[a]];
}
tag_value = "@" + tag_value;
}
tag_value = "@" + tag_value;
tag = this._tag[tag_key];
tag = tag[tag_value] || (tag[tag_value] = []);
}
tag = this._tag[tag_key];
tag = tag[tag_value] || (tag[tag_value] = []);
}
// ---------------------------------------------------------------
// ---------------------------------------------------------------
tree = this.doc["field"];
tree = this.doc["field"];
for(let i = 0, len = tree.length; i < len; i++){
for(let i = 0, len = tree.length; i < len; i++){
const branch = tree[i];
let content = doc;
const branch = tree[i];
let content = doc;
for(let x = 0; x < branch.length; x++){
for(let x = 0; x < branch.length; x++){
content = content[branch[x]];
}
content = content[branch[x]];
const self = index[keys[i]];
if(job === "add"){
self.add(id, content, (i === (len - 1)) && callback);
}
else{
self.update(id, content, (i === (len - 1)) && callback);
}
}
const self = index[keys[i]];
// ---------------------------------------------------------------
if(job === "add"){
if(store){
self.add(id, content, (i === (len - 1)) && callback);
}
else{
const store_keys = get_keys(store);
let store_doc = create_object();
self.update(id, content, (i === (len - 1)) && callback);
}
}
for(let i = 0; i < store_keys.length; i++){
// ---------------------------------------------------------------
let store_key = store_keys[i];
if(store){
if(store[store_key]){
const store_keys = get_keys(store);
let store_doc = create_object();
const store_split = store_key.split(":");
for(let i = 0; i < store_keys.length; i++){
let store_value;
let store_doc_value;
let store_key = store_keys[i];
for(let a = 0; a < store_split.length; a++){
if(store[store_key]){
const store_split_key = store_split[a];
const store_split = store_key.split(":");
let store_value;
let store_doc_value;
for(let a = 0; a < store_split.length; a++){
const store_split_key = store_split[a];
store_value = (store_value || doc)[store_split_key];
store_doc_value = (store_doc_value || store_doc)[store_split_key] = store_value;
store_value = (store_value || doc)[store_split_key];
store_doc_value = (store_doc_value || store_doc)[store_split_key] = store_value;
}
}
}
doc = store_doc;
}
doc = store_doc;
// ---------------------------------------------------------------
if(tag){
tag[tag.length] = doc; // tag[tag.length] = id;
}
this._doc[id] = doc;
}
// ---------------------------------------------------------------
if(tag){
tag[tag.length] = doc; // tag[tag.length] = id;
}
this._doc[id] = doc;
}
return this;
@@ -952,9 +975,7 @@ FlexSearch.prototype.update = function(id, content, callback){
return this.handle_docs("update", id, /** @type {Function} */ (content));
}
const index = id;
if(this._ids[index] && is_string(content)){
if(this._ids[id] && is_string(content)){
// if(PROFILER){
//
@@ -1123,10 +1144,11 @@ FlexSearch.prototype.merge_and_sort = function(query, bool, result, sort, limit,
}
else{
// TODO apply during last round of intersection
result = enrich_documents(result, this._doc);
}
// TODO: pre-sort when indexing
// custom sort replaces the default sort by relevance
if(sort){
@@ -1140,7 +1162,7 @@ FlexSearch.prototype.merge_and_sort = function(query, bool, result, sort, limit,
}
else{
field_to_sort = field_to_sort[0];
//field_to_sort = field_to_sort[0];
sort = sort_by_field_up;
}
}
@@ -1938,14 +1960,14 @@ function remove_index(map, id){
function init_filter(words){
const final = create_object();
const filter = create_object();
for(let i = 0, length = words.length; i < length; i++){
final[words[i]] = 1;
filter[words[i]] = 1;
}
return final;
return filter;
}
/**
@@ -2000,7 +2022,10 @@ function sort_by_length_down(a, b){
function sort_by_field_up(a, b){
return a[field_to_sort] - b[field_to_sort];
a = a[field_to_sort];
b = b[field_to_sort];
return a < b ? - 1 : (a > b ? 1 : 0);
}
function sort_by_deep_field_up(a, b){
@@ -2013,7 +2038,7 @@ function sort_by_deep_field_up(a, b){
b = b[field_to_sort[i]];
}
return a - b;
return a < b ? - 1 : (a > b ? 1 : 0);
}
function create_page(cursor, page, result){

View File

@@ -7,7 +7,7 @@ export default {
rtl: rtl
}
const split = /[\W_]+/;
const regex = /[\x00-\x7F]+/g;
/**
* @this FlexSearch
@@ -17,9 +17,9 @@ export function encode(str){
return this.pipeline(
/* string: */ str,
/* string: */ str.replace(regex, " "),
/* normalize: */ false,
/* split: */ split,
/* split: */ " ",
/* collapse: */ false
);
}

View File

@@ -8,7 +8,7 @@ export default {
tokenize: tokenize
}
const regex = /[\x00-\x7F]/g;
const regex = /[\x00-\x7F]+/g;
/**
* @this FlexSearch

View File

@@ -7,7 +7,7 @@ export default {
rtl: rtl
}
const split = /[\W_]+/;
const regex = /[\x00-\x7F]+/g;
/**
* @this FlexSearch
@@ -17,9 +17,9 @@ export function encode(str){
return this.pipeline(
/* string: */ str,
/* string: */ str.replace(regex, " "),
/* normalize: */ false,
/* split: */ split,
/* split: */ " ",
/* collapse: */ false
);
}

View File

@@ -51,11 +51,11 @@ const pairs = [
regex_uo, "u"
];
export function encode(str, _skip_postprocessing){
export function encode(str, self, _skip_postprocessing){
if(str){
str = encode_simple(str, /** @type {FlexSearch} */ (this)).join(" ");
str = encode_simple(str, /** @type {FlexSearch} */ (self || this)).join(" ");
if(str.length > 2){

View File

@@ -1,3 +1,4 @@
import FlexSearch from "../../flexsearch.js";
import { regex, replace, collapse } from "../../common.js";
import { encode as encode_advanced } from "./advanced.js";
@@ -34,7 +35,7 @@ export function encode(str){
if(str){
str = encode_advanced(str, /* skip post-processing: */ true);
str = encode_advanced(str, /** @type {FlexSearch} */ (this), /* skip post-processing: */ true);
if(str.length > 1){

View File

@@ -41,14 +41,11 @@ const pairs = [
/**
* @param {string} str
* @param {FlexSearch} self
*/
export function encode(str, self){
self || (self = this);
return self.pipeline(
return /** @type {FlexSearch} */ (self || this).pipeline(
/* string: */ str.toLowerCase(),
/* normalize: */ pairs,

View File

@@ -6,46 +6,46 @@
export default {
"memory": {
encode: SUPPORT_ENCODER ? "extra" : "icase",
tokenize: "strict",
charset: "latin:extra",
//tokenize: "strict",
threshold: 0,
resolution: 1
},
"speed": {
encode: "icase",
tokenize: "strict",
//charset: "latin",
//tokenize: "strict",
threshold: 1,
resolution: 3,
depth: 2
},
"match": {
encode: SUPPORT_ENCODER ? "extra" : "icase",
charset: "latin:extra",
tokenize: "full",
threshold: 1,
resolution: 3
},
"score": {
encode: SUPPORT_ENCODER ? "extra" : "icase",
tokenize: "strict",
charset: "latin:extra",
//tokenize: "strict",
threshold: 1,
resolution: 9,
depth: 4
},
"balance": {
encode: SUPPORT_ENCODER ? "balance" : "icase",
tokenize: "strict",
charset: "latin:balance",
//tokenize: "strict",
threshold: 0,
resolution: 3,
depth: 3
},
"fast": {
encode: "icase",
tokenize: "strict",
//charset: "latin",
//tokenize: "strict",
threshold: 8,
resolution: 9,
depth: 1

View File

@@ -37,43 +37,43 @@ describe("Initialize", function(){
flexsearch_sync = new FlexSearch({
tokenize: "forward",
encode: false,
//encode: false,
async: false,
worker: false
});
flexsearch_async = FlexSearch.create({
flexsearch_async = FlexSearch({
tokenize: "forward",
encode: false,
//encode: false,
async: true,
worker: false
});
flexsearch_icase = new FlexSearch({
encode: "icase",
charset: "latin:default",
async: false,
worker: false
});
flexsearch_simple = FlexSearch.create({
flexsearch_simple = FlexSearch({
encode: "simple",
charset: "latin:simple",
async: false,
worker: false
});
flexsearch_advanced = new FlexSearch({
encode: "advanced",
charset: "latin:advanced",
async: false,
worker: false
});
flexsearch_extra = FlexSearch.create({
flexsearch_extra = FlexSearch({
encode: "extra",
charset: "latin:extra",
async: false,
worker: false
});
@@ -87,7 +87,7 @@ describe("Initialize", function(){
flexsearch_strict = new FlexSearch({
encode: "icase",
charset: "latin",
tokenize: "strict",
async: false,
worker: false
@@ -95,7 +95,7 @@ describe("Initialize", function(){
flexsearch_forward = new FlexSearch({
encode: "icase",
charset: "latin",
tokenize: "forward",
async: false,
worker: false
@@ -103,7 +103,7 @@ describe("Initialize", function(){
flexsearch_reverse = new FlexSearch({
encode: "icase",
charset: "latin",
tokenize: "reverse",
resolution: 10,
async: false,
@@ -112,7 +112,7 @@ describe("Initialize", function(){
flexsearch_full = new FlexSearch({
encode: "icase",
charset: "latin",
tokenize: "full",
async: false,
worker: false
@@ -120,7 +120,7 @@ describe("Initialize", function(){
flexsearch_ngram = new FlexSearch({
encode: "advanced",
charset: "latin:advanced",
tokenize: "ngram",
async: false,
worker: false
@@ -128,7 +128,7 @@ describe("Initialize", function(){
flexsearch_cache = new FlexSearch({
encode: "icase",
charset: "latin",
tokenize: "reverse",
cache: 2
});
@@ -181,8 +181,8 @@ describe("Initialize", function(){
if(env !== "light"){
expect(flexsearch_default.async).to.equal(false);
expect(flexsearch_sync.async).to.equal(false);
expect(flexsearch_default.async).to.not.equal(true);
expect(flexsearch_sync.async).to.not.equal(true);
expect(flexsearch_async.async).to.equal(true);
}
@@ -212,7 +212,7 @@ describe("Add (Sync)", function(){
flexsearch_sync.add(2, "bar");
flexsearch_sync.add(1, "foobar");
expect(flexsearch_sync.index).to.have.members(["@0", "@1", "@2"]);
expect(flexsearch_sync.index).to.have.members(["0", "1", "2"]);
expect(flexsearch_sync.length).to.equal(3);
});
@@ -443,7 +443,7 @@ if(env !== "light"){
setTimeout(function(){
expect(flexsearch_async.length).to.equal(3);
expect(flexsearch_async.index).to.have.members(["@0", "@1", "@2"]);
expect(flexsearch_async.index).to.have.members(["0", "1", "2"]);
done();
@@ -465,7 +465,7 @@ if(env !== "light"){
setTimeout(function(){
expect(flexsearch_async.length).to.equal(3);
expect(flexsearch_async.index).to.have.members(["@0", "@1", "@2"]);
expect(flexsearch_async.index).to.have.members(["0", "1", "2"]);
done();
@@ -688,7 +688,7 @@ if(env !== "light"){
flexsearch_worker = new FlexSearch({
encode: "icase",
charset: "latin:default",
tokenize: "reverse",
async: false,
worker: 4
@@ -704,7 +704,7 @@ if(env !== "light"){
setTimeout(function(){
expect(flexsearch_worker.length).to.equal(3);
expect(flexsearch_worker.index).to.have.members(["@0", "@1", "@2"]);
expect(flexsearch_worker.index).to.have.members(["0", "1", "2"]);
flexsearch_worker.search("foo", function(result){
@@ -733,7 +733,7 @@ if(env !== "light"){
setTimeout(function(){
expect(flexsearch_worker.length).to.equal(3);
expect(flexsearch_worker.index).to.have.members(["@0", "@1", "@2"]);
expect(flexsearch_worker.index).to.have.members(["0", "1", "2"]);
done();
@@ -908,53 +908,50 @@ describe("Encoding", function(){
it("Should have been encoded properly: iCase", function(){
expect(flexsearch_icase.encode("Björn-Phillipp Mayer")).to.equal(flexsearch_icase.encode("björn-phillipp mayer"));
expect(flexsearch_icase.encode("Björn-Phillipp Mayer")).to.eql(flexsearch_icase.encode("björn-phillipp mayer"));
});
if(env !== "light"){
it("Should have been encoded properly: Simple", function(){
expect(flexsearch_simple.encode("Björn-Phillipp Mayer")).to.equal(flexsearch_simple.encode("bjorn/phillipp mayer"));
expect(flexsearch_simple.encode("Björn-Phillipp Mayer")).to.eql(flexsearch_simple.encode("bjorn/phillipp mayer"));
});
it("Should have been encoded properly: Advanced", function(){
expect(flexsearch_advanced.encode("Björn-Phillipp Mayer")).to.equal(flexsearch_advanced.encode("bjoern filip mair"));
expect(flexsearch_advanced.encode("Björn-Phillipp Mayer")).to.eql(flexsearch_advanced.encode("bjoern filip mair"));
});
it("Should have been encoded properly: Extra", function(){
expect(flexsearch_extra.encode("Björn-Phillipp Mayer")).to.equal(flexsearch_extra.encode("bjorm filib mayr"));
expect(flexsearch_extra.encode("Björn-Phillipp Mayer")).to.eql(flexsearch_extra.encode("bjorm filib mayr"));
});
}
it("Should have been encoded properly: Custom Encoder", function(){
expect(flexsearch_custom.encode("Björn-Phillipp Mayer")).to.equal("-[BJÖRN-PHILLIPP MAYER]-");
expect(flexsearch_custom.encode("Björn-Phillipp Mayer")).to.eql("-[BJÖRN-PHILLIPP MAYER]-");
});
it("Should have been encoded properly: Custom Encoder", function(){
FlexSearch.registerEncoder("custom", test_encoder);
expect(FlexSearch.encode("custom", "Björn-Phillipp Mayer")).to.equal(flexsearch_custom.encode("Björn-Phillipp Mayer"));
});
// it("Should have been encoded properly: Custom Encoder", function(){
//
// FlexSearch.registerEncoder("custom", test_encoder);
//
// expect(FlexSearch.encode("custom", "Björn-Phillipp Mayer")).to.eql(flexsearch_custom.encode("Björn-Phillipp Mayer"));
// });
});
// ------------------------------------------------------------------------
// CJK Word Break
// Word Break
// ------------------------------------------------------------------------
describe("CJK Word Break", function(){
it("Should have been tokenized properly", function(){
var index = FlexSearch.create({
encode: false,
tokenize: function(str){
return str.replace(/[\x00-\x7F]/g, "").split("");
}
var index = FlexSearch({
charset: "cjk"
});
index.add(0, "서울시가 잠이 든 시간에 아무 말, 미뤄, 미뤄");
@@ -968,19 +965,13 @@ describe("CJK Word Break", function(){
});
});
// ------------------------------------------------------------------------
// Cyrillic Word Break
// ------------------------------------------------------------------------
describe("Cyrillic Word Break", function(){
it("Should have been tokenized properly", function(){
var index = FlexSearch.create({
encode: false,
tokenize: function(str){
return str.replace(/[\x00-\x7F]/g, "").split("");
}
var index = FlexSearch({
charset: "cyrillic",
tokenize: "reverse"
});
index.add(0, "Фообар");
@@ -990,6 +981,20 @@ describe("Cyrillic Word Break", function(){
});
});
describe("Arabic Word Break", function(){
it("Should have been tokenized properly", function(){
var index = FlexSearch({
charset: "arabic"
});
index.add(0, "لكن لا بد أن أوضح لك أن كل");
expect(index.search("بد أن")).to.include(0);
});
});
// ------------------------------------------------------------------------
// Right-To-Left
// ------------------------------------------------------------------------
@@ -1000,7 +1005,6 @@ describe("RTL Support", function(){
var index = new FlexSearch({
encode: "icase",
tokenize: "reverse",
rtl: true
});
@@ -1025,7 +1029,6 @@ describe("Context", function(){
var flexsearch_depth = new FlexSearch({
encode: "icase",
tokenize: "strict",
depth: 2,
async: false,
@@ -1125,7 +1128,6 @@ describe("Filter", function(){
it("Should have been filtered properly", function(){
var index = new FlexSearch({
encode: "icase",
tokenize: "strict",
filter: ["in", "the"]
});
@@ -1138,23 +1140,23 @@ describe("Filter", function(){
expect(index.search("in the")).to.have.length(0);
});
it("Should have been filtered properly (custom function)", function(){
var index = new FlexSearch({
encode: "icase",
tokenize: "strict",
filter: function(word){
return word.length > 3;
}
});
index.add(0, "Today in the morning.");
expect(index.length).to.equal(1);
expect(index.search("today in the morning.")).to.include(0);
expect(index.search("today morning")).to.include(0);
expect(index.search("in the")).to.have.length(0);
});
// it("Should have been filtered properly (custom function)", function(){
//
// var index = new FlexSearch({
//
// tokenize: "strict",
// filter: function(word){
// return word.length > 3;
// }
// });
//
// index.add(0, "Today in the morning.");
//
// expect(index.length).to.equal(1);
// expect(index.search("today in the morning.")).to.include(0);
// expect(index.search("today morning")).to.include(0);
// expect(index.search("in the")).to.have.length(0);
// });
});
describe("Stemmer", function(){
@@ -1162,7 +1164,6 @@ describe("Stemmer", function(){
it("Should have been stemmed properly", function(){
var index = new FlexSearch({
encode: "icase",
tokenize: "reverse",
stemmer: {
"ization": "ize",
@@ -1186,7 +1187,6 @@ describe("Stemmer", function(){
};
var index = new FlexSearch({
encode: "icase",
tokenize: "strict",
stemmer: function(word){
return stems[word] || word;
@@ -1207,7 +1207,8 @@ describe("Custom Language", function(){
it("Should have been applied properly", function(){
FlexSearch.registerLanguage("custom", {
var index = new FlexSearch({
tokenize: "reverse",
filter: ["a", "an"],
stemmer: {
"ization": "ize",
@@ -1215,13 +1216,6 @@ describe("Custom Language", function(){
}
});
var index = new FlexSearch({
encode: "icase",
tokenize: "reverse",
filter: "custom",
stemmer: "custom"
});
index.add(0, "Just a multinational colonization.");
expect(index.length).to.equal(1);
@@ -1230,8 +1224,15 @@ describe("Custom Language", function(){
expect(index.search("multinational colonization")).to.include(0);
expect(index.search("tional tion")).to.have.length(0);
FlexSearch.registerLanguage("custom", {
filter: ["a", "an"],
stemmer: {
"ization": "ize",
"tional": "tion"
}
});
index = new FlexSearch({
encode: "icase",
tokenize: "reverse",
lang: "custom"
});
@@ -1255,7 +1256,7 @@ describe("Relevance", function(){
it("Should have been sorted by relevance properly", function(){
var index = new FlexSearch({
encode: "advanced",
charset: "latin:advanced",
tokenize: "strict"
});
@@ -1269,7 +1270,7 @@ describe("Relevance", function(){
expect(index.search("four one")).to.have.members([1, 2]);
index = new FlexSearch({
encode: "advanced",
charset: "latin:advanced",
tokenize: "strict",
threshold: 5,
depth: 3
@@ -1285,7 +1286,7 @@ describe("Relevance", function(){
expect(index.search("four one")).to.have.members([1, 2]);
index = new FlexSearch({
encode: "extra",
charset: "latin:extra",
tokenize: "strict",
threshold: 5,
depth: 3
@@ -1314,7 +1315,7 @@ if(env !== "light") describe("Suggestions", function(){
it("Should have been suggested properly by relevance", function(){
var index = new FlexSearch({
encode: "advanced",
charset: "latin:advanced",
tokenize: "strict"
});
@@ -1335,7 +1336,7 @@ if(env !== "light") describe("Suggestions", function(){
it("Should have been suggested properly by context", function(){
var index = new FlexSearch({
encode: "advanced",
charset: "latin:advanced",
tokenize: "strict",
depth: 3
});
@@ -1381,14 +1382,14 @@ if((env === "") || (env === "min") || (env === "pre")) describe("Where/Find", fu
var index = new FlexSearch({
doc: {
id: "id",
field: ["title"]
field: "title"
}
});
index.add(data);
expect(index.length).to.equal(3);
expect(index.index).to.have.members(["@0", "@1", "@2"]);
expect(index.index).to.have.members(["0", "1", "2"]);
expect(index.find(0)).to.equal(data[0]);
expect(index.find("id", 0)).to.equal(data[0]);
@@ -1436,7 +1437,7 @@ if((env === "") || (env === "min") || (env === "pre")) describe("Where/Find", fu
index.add(data);
expect(index.length).to.equal(3);
expect(index.index).to.have.members(["@0", "@1", "@2"]);
expect(index.index).to.have.members(["0", "1", "2"]);
expect(index.where({cat: "1"})).to.have.members([data[0], data[2]]);
expect(index.where("cat", "1")).to.have.members([data[0], data[2]]);
@@ -1490,7 +1491,7 @@ if((env === "") || (env === "min") || (env === "pre")) describe("Where/Find", fu
index.add(data);
expect(index.length).to.equal(3);
expect(index.index).to.have.members(["@0", "@1", "@2"]);
expect(index.index).to.have.members(["0", "1", "2"]);
expect(index.where({cat: "1"})).to.have.members([data[0], data[2]]);
@@ -1729,11 +1730,11 @@ if(env !== "light") describe("Index Multi-Field Documents", function(){
id: "id",
field: {
"data:title": {
encode: "advanced",
charset: "latin:advanced",
tokenize: "reverse"
},
"data:body": {
encode: "icase",
charset: "latin:default",
tokenize: "strict"
}
}
@@ -2047,9 +2048,9 @@ if(env !== "light") describe("Index Multi-Field Documents", function(){
sort: "data:title"
});
expect(results[0]).to.equal(data[2]);
expect(results[1]).to.equal(data[1]);
expect(results[2]).to.equal(data[0]);
expect(results[0]).to.eql(data[2]);
expect(results[1]).to.eql(data[1]);
expect(results[2]).to.eql(data[0]);
});
it("Should have been sorted suggested and paged", function(){
@@ -2138,7 +2139,7 @@ if(env !== "light") describe("Pagination", function(){
index.add(0, "test").add(1, "test").add(2, "test").add(3, "test").add(4, "test");
expect(index.index).to.have.members(["@0", "@1", "@2", "@3", "@4"]);
expect(index.index).to.have.members(["0", "1", "2", "3", "4"]);
expect(index.search("test")).to.have.lengthOf(5);
expect(index.search("test", 2)).to.have.lengthOf(2);
@@ -2182,7 +2183,7 @@ if(env !== "light") describe("Pagination", function(){
index.add(0, "foo bar").add(1, "foo bar").add(2, "foo bar test").add(3, "foo bar").add(4, "foo bar");
expect(index.index).to.have.members(["@0", "@1", "@2", "@3", "@4"]);
expect(index.index).to.have.members(["0", "1", "2", "3", "4"]);
expect(index.search("foo")).to.have.lengthOf(5);
expect(index.search("foo", 2)).to.have.lengthOf(2);
@@ -2271,8 +2272,8 @@ if(env !== "light") describe("Pagination", function(){
if(env === ""){
expect(index.doc.index["title"].index).to.have.members(["@0", "@1", "@2", "@3", "@4"]);
expect(index.doc.index["body"].index).to.have.members(["@0", "@1", "@2", "@3", "@4"]);
expect(index.doc.index["title"].index).to.have.members(["0", "1", "2", "3", "4"]);
expect(index.doc.index["body"].index).to.have.members(["0", "1", "2", "3", "4"]);
}
expect(index.search("title")).to.have.lengthOf(5);
@@ -2313,30 +2314,30 @@ if(env !== "light") describe("Pagination", function(){
});
});
describe("Custom Split", function(){
it("Should have been split properly", function(){
var index = FlexSearch.create({
encode: false,
split: /\s+/,
tokenize: "reverse"
});
index.add(0, "Фообар");
expect(index.search("Фообар")).to.include(0);
expect(index.search("бар")).to.include(0);
expect(index.search("Фоо")).to.include(0);
});
});
// describe("Custom Split", function(){
//
// it("Should have been split properly", function(){
//
// var index = FlexSearch({
// encode: false,
// split: /\s+/,
// tokenize: "reverse"
// });
//
// index.add(0, "Фообар");
//
// expect(index.search("Фообар")).to.include(0);
// expect(index.search("бар")).to.include(0);
// expect(index.search("Фоо")).to.include(0);
// });
// });
describe("Github Issues", function(){
if(env !== "light") it("#48", function(){
const fs = new FlexSearch({
encode: "extra",
charset: "latin:extra",
tokenize: "full",
threshold: 1,
depth: 4,
@@ -2412,6 +2413,7 @@ if(env !== "light") describe("Operators", function(){
}];
var index = new FlexSearch({
tokenize: "forward",
doc: {
id: "id",
field: ["title", "body", "blacklist"]
@@ -2593,7 +2595,7 @@ describe("Reserved Words", function(){
it("Should have been indexed properly", function(){
var index = new FlexSearch({
encode: false,
encode: function(str){ return [str]; },
tokenize: "strict",
threshold: 0,
depth: 3
@@ -2678,7 +2680,7 @@ if(env !== "light") describe("Export / Import", function(){
it("Should have been exported properly (documents)", function(){
var index = new FlexSearch({
encode: "icase",
tokenize: "strict",
threshold: 1,
resolution: 3,
@@ -2728,7 +2730,7 @@ if(env !== "light") describe("Export / Import", function(){
it("Should have been imported properly (documents)", function(){
var index = new FlexSearch({
encode: "icase",
tokenize: "strict",
threshold: 1,
resolution: 3,
@@ -2762,21 +2764,21 @@ describe("Presets", function(){
it("Should have been properly initialized", function(){
expect(FlexSearch.create("memory").length).to.equal(0);
expect(FlexSearch.create("speed").length).to.equal(0);
expect(FlexSearch.create("match").length).to.equal(0);
expect(FlexSearch.create("score").length).to.equal(0);
expect(FlexSearch.create("balance").length).to.equal(0);
expect(FlexSearch.create("fast").length).to.equal(0);
expect(FlexSearch("memory").length).to.equal(0);
expect(FlexSearch("speed").length).to.equal(0);
expect(FlexSearch("match").length).to.equal(0);
expect(FlexSearch("score").length).to.equal(0);
expect(FlexSearch("balance").length).to.equal(0);
expect(FlexSearch("fast").length).to.equal(0);
});
it("Should have been properly extended", function(){
var index = FlexSearch.create("fast");
var index = FlexSearch("fast");
index.add(0, "foobar");
expect(index.search("bar")).to.have.lengthOf(0);
index = FlexSearch.create("fast", {id: "test", tokenize: "reverse"});
index = FlexSearch({preset: "speed", id: "test", tokenize: "reverse"});
expect(index.id).to.equal("test");
index.add(0, "foobar");
expect(index.search("bar")).to.have.lengthOf(1);
@@ -2792,35 +2794,24 @@ describe("Add Matchers", function(){
it("Should have been added properly", function(){
FlexSearch.registerMatcher({
"1": "a",
"2": "b",
"3": "c",
"[456]": "d"
});
flexsearch_forward.init({
encode: false
}).init({
encode: "not-found",
tokenize: "forward",
matcher: {
"7": "e"
"1": "a",
"2": "b",
"3": "c",
"7": "e",
"8": "f",
"[456]": "d"
}
}).addMatcher({
"8": "f"
}).add(0, "12345678");
expect(flexsearch_forward.search("12345678")).to.include(0);
expect(flexsearch_forward.search("abcd")).to.include(0);
expect(flexsearch_forward.encode("12345678")).to.equal("abcdddef");
expect(flexsearch_forward.encode("12345678")).to.eql(["abcdddef"]);
});
});
@@ -2902,7 +2893,7 @@ describe("Destroy", function(){
it("Should have been destroyed properly", function(){
var index = FlexSearch.create()
var index = FlexSearch()
.add(0, "foo")
.add(1, "bar");
@@ -2919,7 +2910,7 @@ describe("Destroy", function(){
var data = [{id: 0, title: "foo"}, {id: 1, title: "bar"}];
var index = FlexSearch.create({doc: {id: "id", field: "title"}})
var index = FlexSearch({doc: {id: "id", field: "title"}})
.add(data)
.add(data);
@@ -2941,14 +2932,13 @@ describe("Chaining", function(){
it("Should have been chained properly", function(){
var index = FlexSearch.create({tokenize: "forward", encode: "icase"})
.addMatcher({"â": "a"})
var index = FlexSearch({tokenize: "forward", matcher: {"â": "a"}})
.add(0, "foo")
.add(1, "bar");
expect(index.search("foo")).to.include(0);
expect(index.search("bar")).to.include(1);
expect(index.encode("bâr")).to.equal("bar");
expect(index.encode("bâr")).to.eql(["bar"]);
index.remove(0).update(1, "foo").add(2, "foobâr");