1
0
mirror of https://github.com/nextapps-de/flexsearch.git synced 2025-08-22 13:42:51 +02:00

update bundler

This commit is contained in:
Thomas Wilkerling
2021-05-24 17:31:55 +02:00
parent 53f6de26b0
commit a68e6d15de
14 changed files with 1091 additions and 90 deletions

View File

@@ -1,16 +1,16 @@
/**! /**!
* FlexSearch.js v0.7.0-beta * FlexSearch.js v0.7.0-beta (Bundle)
* Copyright 2019 Nextapps GmbH * Copyright 2019 Nextapps GmbH
* Author: Thomas Wilkerling * Author: Thomas Wilkerling
* Licence: Apache-2.0 * Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch * https://github.com/nextapps-de/flexsearch
*/ */
(function _f(self){'use strict';try{if(module)self=module}catch(e){}self._factory=_f;var u;const w=/[\W_]+/;function aa(a){if(a=a.toLowerCase())if(a&&this.C&&(a=y(a,this.C)),this.G&&1<a.length&&(a=y(a,this.G)),a&&(w||""===w)&&(a=a.split(w),this.filter)){var b=this.filter;const c=a.length,d=[];for(let e=0,f=0;e<c;e++){const g=a[e];g&&!b[g]&&(d[f++]=g)}a=d}return a};function z(a,b){return"undefined"!==typeof a?a:b}function A(a){const b=Array(a);for(let c=0;c<a;c++)b[c]=B();return b}function B(){return Object.create(null)}function ba(a,b){return b.length-a.length}function C(a){return"string"===typeof a}function D(a){return"object"===typeof a}function E(a){return"function"===typeof a};function H(a,b){const c=Object.keys(a),d=c.length,e=[];let f="",g=0;for(let h=0,k,l;h<d;h++)k=c[h],(l=a[k])?(e[g++]=new RegExp(b?"(?!\\b)"+k+"(\\b|_)":k,"g"),e[g++]=l):f+=(f?"|":"")+k;f&&(e[g++]=new RegExp(b?"(?!\\b)("+f+")(\\b|_)":"("+f+")","g"),e[g]="");return e}function y(a,b){for(let c=0,d=b.length;c<d&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a};const ca={},da={};let I=Promise;Object.assign||(Object.assign=function(){const a=arguments,b=a.length,c=a[0];for(let d=1,e,f,g;d<b;d++){e=a[d];f=Object.keys(e);g=f.length;for(let h=0,k;h<g;h++)k=f[h],c[k]=e[k]}return c});if(!I){function a(b){this.g=null;const c=this;b(function(d){c.g&&c.g(d)})}a.prototype.then=function(b){this.g=b};I=a};function ea(a){J(a,"add");J(a,"append");J(a,"search");J(a,"update");J(a,"remove")}function J(a,b){a[b+"Async"]=function(){const c=this,d=arguments;var e=d[d.length-1];let f;E(e)&&(f=e,delete d[d.length-1]);e=new I(function(g){setTimeout(function(){c.async=!0;g(c[b].apply(c,d));c.async=!1})});return f?(e.then(f),this):e}};function fa(a,b,c,d){var e=a.length;let f=[],g,h=0;d&&(d=[]);for(--e;0<=e;e--){const k=a[e],l=k.length,n=B();let q=!g;for(let r=0;r<l;r++){const v=k[r],p=v.length;if(p)for(let m=0,t=0,x;m<p;m++)if(x=v[m],!g)n[x]=1;else if(g[x]){if(e)d&&t<b&&((d[r]||(d[r]=[]))[t++]=x),n[x]=1;else if(c)c--;else if(f[h++]=x,h===b)return f;q=!0}}if(!q&&!d)return[];g=n}if(d)for(let k=d.length-1,l,n;0<=k;k--)if((n=(l=d[k])&&l.length)&&c&&(n<=c?(c-=n,n=0):n-=c),n){if(h+n>=b)return f.concat(l.slice(c,b-h+c));f=f.concat(c? (function _f(self){'use strict';try{if(module)self=module}catch(e){}self._factory=_f;var u;const w=/[\W_]+/;function aa(a){if(a=a.toLowerCase())if(a&&this.C&&(a=y(a,this.C)),this.G&&1<a.length&&(a=y(a,this.G)),a&&(w||""===w)&&(a=a.split(w),this.filter)){var b=this.filter;const c=a.length,d=[];for(let e=0,f=0;e<c;e++){const g=a[e];g&&!b[g]&&(d[f++]=g)}a=d}return a};function z(a,b){return"undefined"!==typeof a?a:b}function A(a){const b=Array(a);for(let c=0;c<a;c++)b[c]=B();return b}function B(){return Object.create(null)}function ba(a,b){return b.length-a.length}function C(a){return"string"===typeof a}function D(a){return"object"===typeof a}function E(a){return"function"===typeof a};function H(a,b){const c=Object.keys(a),d=c.length,e=[];let f="",g=0;for(let h=0,k,l;h<d;h++)k=c[h],(l=a[k])?(e[g++]=new RegExp(b?"(?!\\b)"+k+"(\\b|_)":k,"g"),e[g++]=l):f+=(f?"|":"")+k;f&&(e[g++]=new RegExp(b?"(?!\\b)("+f+")(\\b|_)":"("+f+")","g"),e[g]="");return e}function y(a,b){for(let c=0,d=b.length;c<d&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a};const I={},ca={};let da=Promise;function ea(a){J(a,"add");J(a,"append");J(a,"search");J(a,"update");J(a,"remove")}function J(a,b){a[b+"Async"]=function(){const c=this,d=arguments;var e=d[d.length-1];let f;E(e)&&(f=e,delete d[d.length-1]);e=new da(function(g){setTimeout(function(){c.async=!0;g(c[b].apply(c,d));c.async=!1})});return f?(e.then(f),this):e}};function fa(a,b,c,d){var e=a.length;let f=[],g,h=0;d&&(d=[]);for(--e;0<=e;e--){const k=a[e],l=k.length,n=B();let q=!g;for(let r=0;r<l;r++){const v=k[r],p=v.length;if(p)for(let m=0,t=0,x;m<p;m++)if(x=v[m],!g)n[x]=1;else if(g[x]){if(e)d&&t<b&&((d[r]||(d[r]=[]))[t++]=x),n[x]=1;else if(c)c--;else if(f[h++]=x,h===b)return f;q=!0}}if(!q&&!d)return[];g=n}if(d)for(let k=d.length-1,l,n;0<=k;k--)if((n=(l=d[k])&&l.length)&&c&&(n<=c?(c-=n,n=0):n-=c),n){if(h+n>=b)return f.concat(l.slice(c,b-h+c));f=f.concat(c?
l.slice(c):l);h+=n;c=0}return f}function ha(a,b){const c=B(),d=B(),e=[];for(let f=0;f<a.length;f++)c[a[f]]=1;for(let f=0,g;f<b.length;f++){g=b[f];for(let h=0,k;h<g.length;h++)k=g[h],c[k]&&!d[k]&&(d[k]=1,e[e.length]=k)}return e};function K(a){this.h=!0!==a&&a;this.cache=B();this.g=[]}function ia(a,b,c){D(a)&&(a=a.query);let d=this.cache.get(a);d||(d=this.search(a,b,c),this.cache.set(a,d));return d}K.prototype.set=function(a,b){if(!this.cache[a]){var c=this.g.length;c===this.h?delete this.cache[this.g[c-1]]:c++;for(--c;0<c;c--)this.g[c]=this.g[c-1];this.g[0]=a}this.cache[a]=b};K.prototype.get=function(a){const b=this.cache[a];if(this.h&&b&&(a=this.g.indexOf(a))){const c=this.g[a-1];this.g[a-1]=this.g[a];this.g[a]=c}return b};const ja={memory:{charset:"latin:extra",s:3,o:3,j:!1,m:"memory"},performance:{threshold:8,o:3,context:{depth:1,v:!0}},match:{charset:"latin:extra",I:"full",s:3},score:{charset:"latin:advanced",threshold:1,context:{depth:3,v:!0}},"default":{s:3,threshold:0,depth:3}};function ka(a,b,c,d,e,f){setTimeout(function(){const g=a(c,JSON.stringify(f));g&&g.then?g.then(function(){b.export(a,b,c,d,e+1)}):b.export(a,b,c,d,e+1)})};function L(a,b){if(!(this instanceof L))return new L(a);var c;if(a){C(a)?a=ja[a]:(c=a.preset)&&(a=Object.assign({},c[c],a));c=a.charset;var d=a.lang;C(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=da[c]);C(d)&&(d=ca[d])}else a={};let e,f,g,h=a.context||{};this.encode=a.encode||c&&c.encode||aa;this.register=b||B();e=a.resolution||9;f=a.threshold||0;f>=e&&(f=e-1);this.s=e;this.threshold=f;this.u=b=c&&c.I||a.tokenize||"strict";this.depth="strict"===b&&h.depth;this.v=z(h.bidirectional,!0);this.m=g="memory"=== l.slice(c):l);h+=n;c=0}return f}function ha(a,b){const c=B(),d=B(),e=[];for(let f=0;f<a.length;f++)c[a[f]]=1;for(let f=0,g;f<b.length;f++){g=b[f];for(let h=0,k;h<g.length;h++)k=g[h],c[k]&&!d[k]&&(d[k]=1,e[e.length]=k)}return e};function K(a){this.h=!0!==a&&a;this.cache=B();this.g=[]}function ia(a,b,c){D(a)&&(a=a.query);let d=this.cache.get(a);d||(d=this.search(a,b,c),this.cache.set(a,d));return d}K.prototype.set=function(a,b){if(!this.cache[a]){var c=this.g.length;c===this.h?delete this.cache[this.g[c-1]]:c++;for(--c;0<c;c--)this.g[c]=this.g[c-1];this.g[0]=a}this.cache[a]=b};K.prototype.get=function(a){const b=this.cache[a];if(this.h&&b&&(a=this.g.indexOf(a))){const c=this.g[a-1];this.g[a-1]=this.g[a];this.g[a]=c}return b};const ja={memory:{charset:"latin:extra",s:3,o:3,j:!1,m:"memory"},performance:{threshold:8,o:3,context:{depth:1,v:!0}},match:{charset:"latin:extra",I:"full",s:3},score:{charset:"latin:advanced",threshold:1,context:{depth:3,v:!0}},"default":{s:3,threshold:0,depth:3}};function ka(a,b,c,d,e,f){setTimeout(function(){const g=a(c,JSON.stringify(f));g&&g.then?g.then(function(){b.export(a,b,c,d,e+1)}):b.export(a,b,c,d,e+1)})};function L(a,b){if(!(this instanceof L))return new L(a);var c;if(a){C(a)?a=ja[a]:(c=a.preset)&&(a=Object.assign({},c[c],a));c=a.charset;var d=a.lang;C(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=ca[c]);C(d)&&(d=I[d])}else a={};let e,f,g,h=a.context||{};this.encode=a.encode||c&&c.encode||aa;this.register=b||B();e=a.resolution||9;f=a.threshold||0;f>=e&&(f=e-1);this.s=e;this.threshold=f;this.u=b=c&&c.I||a.tokenize||"strict";this.depth="strict"===b&&h.depth;this.v=z(h.bidirectional,!0);this.m=g="memory"===
a.optimize;this.j=z(a.fastupdate,!0);this.o=a.minlength||1;this.map=g?A(e-f):B();e=h.resolution||e;f=h.threshold||f;f>=e&&(f=e-1);this.h=e;this.l=f;this.g=g?A(e-f):B();this.F=c&&c.F||a.rtl;this.C=(b=a.matcher||d&&d.C)&&H(b,!1);this.G=(b=a.stemmer||d&&d.G)&&H(b,!0);if(c=b=a.filter||d&&d.filter){c=b;d=B();for(let k=0,l=c.length;k<l;k++)d[c[k]]=1;c=d}this.filter=c;this.cache=(b=a.cache)&&new K(b)}u=L.prototype;u.append=function(a,b){return this.add(a,b,!0)}; a.optimize;this.j=z(a.fastupdate,!0);this.o=a.minlength||1;this.map=g?A(e-f):B();e=h.resolution||e;f=h.threshold||f;f>=e&&(f=e-1);this.h=e;this.l=f;this.g=g?A(e-f):B();this.F=c&&c.F||a.rtl;this.C=(b=a.matcher||d&&d.C)&&H(b,!1);this.G=(b=a.stemmer||d&&d.G)&&H(b,!0);if(c=b=a.filter||d&&d.filter){c=b;d=B();for(let k=0,l=c.length;k<l;k++)d[c[k]]=1;c=d}this.filter=c;this.cache=(b=a.cache)&&new K(b)}u=L.prototype;u.append=function(a,b){return this.add(a,b,!0)};
u.add=function(a,b,c){if(this.register[a]&&!c)return this.update(a,b);if(b&&(a||0===a)){b=this.encode(b);const l=b.length;if(l){const n=this.depth,q=this.s-this.threshold,r=B(),v=B();for(let p=0;p<l;p++){let m=b[this.F?l-1-p:p];var d=m.length;if(m&&d>=this.o&&(n||!r[m])){var e=Math.min(this.s/l*p|0,p);if(e<q){var f="";switch(this.u){case "full":if(3<d){for(var g=0;g<d;g++){var h=g?Math.min(e/2+this.s/d*g/2|0,e+g):e;if(h<q)for(var k=d;k>g;k--)f=m.substring(g,k),f.length>=this.o&&M(this,r,f,h,a,c)}break}case "reverse":if(2< u.add=function(a,b,c){if(this.register[a]&&!c)return this.update(a,b);if(b&&(a||0===a)){b=this.encode(b);const l=b.length;if(l){const n=this.depth,q=this.s-this.threshold,r=B(),v=B();for(let p=0;p<l;p++){let m=b[this.F?l-1-p:p];var d=m.length;if(m&&d>=this.o&&(n||!r[m])){var e=Math.min(this.s/l*p|0,p);if(e<q){var f="";switch(this.u){case "full":if(3<d){for(var g=0;g<d;g++){var h=g?Math.min(e/2+this.s/d*g/2|0,e+g):e;if(h<q)for(var k=d;k>g;k--)f=m.substring(g,k),f.length>=this.o&&O(this,r,f,h,a,c)}break}case "reverse":if(2<
d){for(g=d-1;0<g;g--)f=m[g]+f,f.length>=this.o&&M(this,r,f,e,a,c);f=""}case "forward":if(1<d)for(g=0;g<d;g++)f+=m[g],f.length>=this.o&&M(this,r,f,e,a,c);break;default:if(M(this,r,m,e,a,c),n&&1<l&&p<l-1)for(d=this.h-this.l,e=B(),f=m,g=Math.min(n+1,l-p),e[f]=1,h=1;h<g;h++)if((m=b[this.F?l-1-p-h:p+h])&&m.length>=this.o&&!e[m]){if(e[m]=1,k=Math.min((this.h-g)/l*p+h|0,p+(h-1)),k<d){const t=this.v&&m>f;M(this,v,t?f:m,k,a,c,t?m:f)}}else g=Math.min(g+1,l-p)}}}}this.j||(this.register[a]=1)}}return this}; d){for(g=d-1;0<g;g--)f=m[g]+f,f.length>=this.o&&O(this,r,f,e,a,c);f=""}case "forward":if(1<d)for(g=0;g<d;g++)f+=m[g],f.length>=this.o&&O(this,r,f,e,a,c);break;default:if(O(this,r,m,e,a,c),n&&1<l&&p<l-1)for(d=this.h-this.l,e=B(),f=m,g=Math.min(n+1,l-p),e[f]=1,h=1;h<g;h++)if((m=b[this.F?l-1-p-h:p+h])&&m.length>=this.o&&!e[m]){if(e[m]=1,k=Math.min((this.h-g)/l*p+h|0,p+(h-1)),k<d){const t=this.v&&m>f;O(this,v,t?f:m,k,a,c,t?m:f)}}else g=Math.min(g+1,l-p)}}}}this.j||(this.register[a]=1)}}return this};
function M(a,b,c,d,e,f,g){let h=g?a.g:a.map;if(!b[c]||g&&!b[c][g])a.m&&(h=h[d]),g?(b=b[c]||(b[c]=B()),b[g]=1,h=h[g]||(h[g]=B())):b[c]=1,h=h[c]||(h[c]=[]),a.m||(h=h[d]||(h[d]=[])),f&&-1!==h.indexOf(e)||(h[h.length]=e,a.j&&(a=a.register[e]||(a.register[e]=[]),a[a.length]=h))} function O(a,b,c,d,e,f,g){let h=g?a.g:a.map;if(!b[c]||g&&!b[c][g])a.m&&(h=h[d]),g?(b=b[c]||(b[c]=B()),b[g]=1,h=h[g]||(h[g]=B())):b[c]=1,h=h[c]||(h[c]=[]),a.m||(h=h[d]||(h[d]=[])),f&&-1!==h.indexOf(e)||(h[h.length]=e,a.j&&(a=a.register[e]||(a.register[e]=[]),a[a.length]=h))}
u.search=function(a,b,c){D(a)?(c=a,a=c.query):D(b)&&(c=b);let d=[],e;var f=this.threshold;let g,h=0;if(c){b=c.limit;h=c.offset||0;f=z(c.threshold,f);var k=c.context;g=c.suggest}if(a&&(a=this.encode(a),e=a.length,1<e)){c=B();var l=[];for(let q=0,r=0,v;q<e;q++)if((v=a[q])&&v.length>=this.o&&!c[v])if(this.m||g||this.map[v])l[r++]=v,c[v]=1;else return d;a=l;e=a.length}if(!e)return d;b||(b=100);c=this.s-f;f=this.h-f;k=this.depth&&1<e&&!1!==k;l=0;let n;k?(n=a[0],l=1):1<e&&a.sort(ba);for(let q,r;l<e;l++){r= u.search=function(a,b,c){D(a)?(c=a,a=c.query):D(b)&&(c=b);let d=[],e;var f=this.threshold;let g,h=0;if(c){b=c.limit;h=c.offset||0;f=z(c.threshold,f);var k=c.context;g=c.suggest}if(a&&(a=this.encode(a),e=a.length,1<e)){c=B();var l=[];for(let q=0,r=0,v;q<e;q++)if((v=a[q])&&v.length>=this.o&&!c[v])if(this.m||g||this.map[v])l[r++]=v,c[v]=1;else return d;a=l;e=a.length}if(!e)return d;b||(b=100);c=this.s-f;f=this.h-f;k=this.depth&&1<e&&!1!==k;l=0;let n;k?(n=a[0],l=1):1<e&&a.sort(ba);for(let q,r;l<e;l++){r=
a[l];k?(q=na(this,d,g,f,b,h,2===e,r,n),g&&!1===q&&d.length||(n=r)):q=na(this,d,g,c,b,h,1===e,r);if(q)return q;if(g&&l===e-1){let v=d.length;if(!v){if(k){k=0;l=-1;continue}return d}if(1===v)return oa(d[0],b,h)}}return fa(d,b,h,g)}; a[l];k?(q=na(this,d,g,f,b,h,2===e,r,n),g&&!1===q&&d.length||(n=r)):q=na(this,d,g,c,b,h,1===e,r);if(q)return q;if(g&&l===e-1){let v=d.length;if(!v){if(k){k=0;l=-1;continue}return d}if(1===v)return oa(d[0],b,h)}}return fa(d,b,h,g)};
function na(a,b,c,d,e,f,g,h,k){let l=[],n=k?a.g:a.map;a.m||(n=pa(n,h,k,a.v));if(n){let q=0;d=Math.min(n.length,d);for(let r=0,v=0,p,m;r<d&&!(p=n[r],a.m&&(p=pa(p,h,k,a.v)),p&&g&&(m=p.length,m<=f?(f-=m,p=null):f&&(p=p.slice(f),f=0)),p&&(l[q++]=p,g&&(v+=p.length,v>=e)));r++);if(q){if(g)return oa(l,e,0);b[b.length]=l;return}}return!c&&l}function oa(a,b,c){a=1===a.length?a[0]:[].concat.apply([],a);return c||a.length>b?a.slice(c,c+b):a} function na(a,b,c,d,e,f,g,h,k){let l=[],n=k?a.g:a.map;a.m||(n=pa(n,h,k,a.v));if(n){let q=0;d=Math.min(n.length,d);for(let r=0,v=0,p,m;r<d&&!(p=n[r],a.m&&(p=pa(p,h,k,a.v)),p&&g&&(m=p.length,m<=f?(f-=m,p=null):f&&(p=p.slice(f),f=0)),p&&(l[q++]=p,g&&(v+=p.length,v>=e)));r++);if(q){if(g)return oa(l,e,0);b[b.length]=l;return}}return!c&&l}function oa(a,b,c){a=1===a.length?a[0]:[].concat.apply([],a);return c||a.length>b?a.slice(c,c+b):a}
@@ -18,16 +18,16 @@ function pa(a,b,c,d){c?(d=d&&b>c,a=(a=a[d?b:c])&&a[d?c:b]):a=a[b];return a}u.con
u.remove=function(a,b){const c=this.register[a];if(c){if(this.j)for(let d=0,e;d<c.length;d++)e=c[d],e.splice(e.indexOf(a),1);else P(this.map,a,this.s-this.threshold,this.m),this.depth&&P(this.g,a,this.h-this.l,this.m);b||delete this.register[a];if(this.cache){b=this.cache;for(let d=0,e,f;d<b.g.length;d++)f=b.g[d],e=b.cache[f],-1!==e.indexOf(a)&&(b.g.splice(d--,1),delete b.cache[f])}}return this}; u.remove=function(a,b){const c=this.register[a];if(c){if(this.j)for(let d=0,e;d<c.length;d++)e=c[d],e.splice(e.indexOf(a),1);else P(this.map,a,this.s-this.threshold,this.m),this.depth&&P(this.g,a,this.h-this.l,this.m);b||delete this.register[a];if(this.cache){b=this.cache;for(let d=0,e,f;d<b.g.length;d++)f=b.g[d],e=b.cache[f],-1!==e.indexOf(a)&&(b.g.splice(d--,1),delete b.cache[f])}}return this};
function P(a,b,c,d,e){let f=0;if(a.constructor===Array)if(e)b=a.indexOf(b),-1!==b?1<a.length&&(a.splice(b,1),f++):f++;else{e=Math.min(a.length,c);for(let g=0,h;g<e;g++)if(h=a[g])f=P(h,b,c,d,e),d||f||delete a[g]}else for(let g in a)(f=P(a[g],b,c,d,e))||delete a[g];return f}u.searchCache=ia; function P(a,b,c,d,e){let f=0;if(a.constructor===Array)if(e)b=a.indexOf(b),-1!==b?1<a.length&&(a.splice(b,1),f++):f++;else{e=Math.min(a.length,c);for(let g=0,h;g<e;g++)if(h=a[g])f=P(h,b,c,d,e),d||f||delete a[g]}else for(let g in a)(f=P(a[g],b,c,d,e))||delete a[g];return f}u.searchCache=ia;
u.export=function(a,b,c,d,e){let f,g;switch(e||(e=0)){case 0:f="reg";if(this.j){g=B();for(let h in this.register)g[h]=1}else g=this.register;break;case 1:f="cfg";g={doc:0,opt:this.m?1:0};break;case 2:f="map";g=this.map;break;case 3:f="ctx";g=this.g;break;default:return}ka(a,b||this,c?c+"."+f:f,d,e,g);return!0};u.import=function(a,b){if(b)switch(C(b)&&(b=JSON.parse(b)),a){case "cfg":this.m=!!b.opt;break;case "reg":this.j=!1;this.register=b;break;case "map":this.map=b;break;case "ctx":this.g=b}};ea(L.prototype);function qa(a){var b=self._index;a=a.data;var c=a.args;const d=a.task;switch(d){case "init":b=a.options||{};a=a.factory;c=b.encode;b.cache=!1;c&&0===c.indexOf("function")&&(b.encode=Function("return "+c)());a?(Function("return "+a)()(self),self._index=new self.FlexSearch.Index(b),delete self.FlexSearch):self._index=new L(b);break;case "search":b=b.search.apply(b,c);postMessage(b);break;default:b[d].apply(b,c)}};function Q(a,b){var c;D(a)?b=a:b?E(c=b.encode)&&(b.encode=c.toString()):b={};(a=(self||window)._factory)&&(a=a.toString());c=self.exports;if(this.i=ra(a,c)){this.g=null;var d=this;if(c)this.i.on("message",function(e){d.g(e)});else this.i.onmessage=function(e){d.g(e.data)};this.i.postMessage({task:"init",factory:a,options:b})}}R("add");R("append");R("search");R("update");R("remove"); u.export=function(a,b,c,d,e){let f,g;switch(e||(e=0)){case 0:f="reg";if(this.j){g=B();for(let h in this.register)g[h]=1}else g=this.register;break;case 1:f="cfg";g={doc:0,opt:this.m?1:0};break;case 2:f="map";g=this.map;break;case 3:f="ctx";g=this.g;break;default:return}ka(a,b||this,c?c+"."+f:f,d,e,g);return!0};u.import=function(a,b){if(b)switch(C(b)&&(b=JSON.parse(b)),a){case "cfg":this.m=!!b.opt;break;case "reg":this.j=!1;this.register=b;break;case "map":this.map=b;break;case "ctx":this.g=b}};ea(L.prototype);function qa(a){var b=self._index;a=a.data;var c=a.args;const d=a.task;switch(d){case "init":b=a.options||{};a=a.factory;c=b.encode;b.cache=!1;c&&0===c.indexOf("function")&&(b.encode=Function("return "+c)());a?(Function("return "+a)()(self),self._index=new self.FlexSearch.Index(b),delete self.FlexSearch):self._index=new L(b);break;case "search":b=b.search.apply(b,c);postMessage(b);break;default:b[d].apply(b,c)}};function Q(a,b){var c;D(a)?b=a:b?E(c=b.encode)&&(b.encode=c.toString()):b={};(a=(self||window)._factory)&&(a=a.toString());c=self.exports;if(this.i=ra(a,c)){this.g=null;var d=this;if(c)this.i.on("message",function(e){d.g(e)});else this.i.onmessage=function(e){d.g(e.data)};this.i.postMessage({task:"init",factory:a,options:b})}}R("add");R("append");R("search");R("update");R("remove");
function R(a){Q.prototype[a]=Q.prototype[a+"Async"]=function(){const b=this,c=[].slice.call(arguments);var d=c[c.length-1];let e;E(d)&&(e=d,c.splice(c.length-1,1));d=new I(function(f){setTimeout(function(){b.i.postMessage({task:a,args:c});"search"===a?b.g=f:f()})});return e?(d.then(e),this):d}} function R(a){Q.prototype[a]=Q.prototype[a+"Async"]=function(){const b=this,c=[].slice.call(arguments);var d=c[c.length-1];let e;E(d)&&(e=d,c.splice(c.length-1,1));d=new da(function(f){setTimeout(function(){b.i.postMessage({task:a,args:c});"search"===a?b.g=f:f()})});return e?(d.then(e),this):d}}
function ra(a,b){let c;try{c=b?eval('new (require("worker_threads")["Worker"])("../dist/node/node.js")'):a?new Worker(URL.createObjectURL(new Blob(["onmessage="+qa.toString()],{type:"text/javascript"}))):new Worker("worker.js",{type:"module"})}catch(d){}return c};function S(a){if(!(this instanceof S))return new S(a);var b;a||(a={});this.H=[];this.g=[];this.u=[];this.register=B();this.key=(b=a.key)&&T(b,this.u)||"id";this.j=z(a.fastupdate,!0);this.B=!!(b=a.extern);this.A=!this.B&&(b=a.store)&&!0!==b&&[];this.store=b&&(this.B?b:B());this.D=(b=a.tag)&&T(b,this.u);this.h=b&&B();this.cache=(b=a.cache)&&new K(b);a.cache=!1;this.i=a.worker;this.async=!1;b=a;a=B();let c=b.doc;if(C(c))c=[c];else if(c.constructor!==Array){var d=c;c=Object.keys(c)}for(let e=0,f,g;e< function ra(a,b){let c;try{c=b?eval('new (require("worker_threads")["Worker"])("../dist/node/node.js")'):a?new Worker(URL.createObjectURL(new Blob(["onmessage="+qa.toString()],{type:"text/javascript"}))):new Worker("worker.js",{type:"module"})}catch(d){}return c};function S(a){if(!(this instanceof S))return new S(a);var b;a||(a={});this.H=[];this.g=[];this.u=[];this.register=B();this.key=(b=a.key)&&U(b,this.u)||"id";this.j=z(a.fastupdate,!0);this.B=!!(b=a.extern);this.A=!this.B&&(b=a.store)&&!0!==b&&[];this.store=b&&(this.B?b:B());this.D=(b=a.tag)&&U(b,this.u);this.h=b&&B();this.cache=(b=a.cache)&&new K(b);a.cache=!1;this.i=a.worker;this.async=!1;b=a;a=B();let c=b.doc;if(C(c))c=[c];else if(c.constructor!==Array){var d=c;c=Object.keys(c)}for(let e=0,f,g;e<
c.length;e++)f=c[e],C(f)?d&&(g=d[f]):(g=f,f=f.field),g=D(g)?Object.assign({},b,g):b,this.i&&(a[f]=new Q(g),a[f].i||(this.i=!1)),this.i||(a[f]=new L(g,this.register)),this.H[e]=T(f,this.u),this.g[e]=f;if(this.A)for(d=b.store,C(d)&&(d=[d]),b=0;b<d.length;b++)this.A[b]=T(d[b],this.u);this.l=a}function T(a,b){const c=a.split(":");let d=0;for(let e=0;e<c.length;e++)a=c[e],0<=a.indexOf("[]")&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]} c.length;e++)f=c[e],C(f)?d&&(g=d[f]):(g=f,f=f.field),g=D(g)?Object.assign({},b,g):b,this.i&&(a[f]=new Q(g),a[f].i||(this.i=!1)),this.i||(a[f]=new L(g,this.register)),this.H[e]=U(f,this.u),this.g[e]=f;if(this.A)for(d=b.store,C(d)&&(d=[d]),b=0;b<d.length;b++)this.A[b]=U(d[b],this.u);this.l=a}function U(a,b){const c=a.split(":");let d=0;for(let e=0;e<c.length;e++)a=c[e],0<=a.indexOf("[]")&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}
function sa(a,b){if(C(b))a=a[b];else for(let c=0;a&&c<b.length;c++)a=a[b[c]];return a}function V(a,b,c,d,e){a=a[e];if(d===c.length-1)b[e]=a;else if(a)if(a.constructor===Array)for(b=b[e]=Array(a.length),e=0;e<a.length;e++)V(a,b,c,d,e);else b=b[e]||(b[e]=B()),e=c[++d],V(a,b,c,d,e)} function sa(a,b){if(C(b))a=a[b];else for(let c=0;a&&c<b.length;c++)a=a[b[c]];return a}function V(a,b,c,d,e){a=a[e];if(d===c.length-1)b[e]=a;else if(a)if(a.constructor===Array)for(b=b[e]=Array(a.length),e=0;e<a.length;e++)V(a,b,c,d,e);else b=b[e]||(b[e]=B()),e=c[++d],V(a,b,c,d,e)}
function W(a,b,c,d,e,f,g,h){a=a[g];if(d===b.length-1){if(a.constructor===Array){if(c[d]){for(b=0;b<a.length;b++)e.add(f,a[b],!0);return}a=a.join(" ")}e.add(f,a,h)}else if(a)if(a.constructor===Array)for(g=0;g<a.length;g++)W(a,b,c,d,e,f,g,h);else g=b[++d],W(a,b,c,d,e,f,g,h)}u=S.prototype; function W(a,b,c,d,e,f,g,h){a=a[g];if(d===b.length-1){if(a.constructor===Array){if(c[d]){for(b=0;b<a.length;b++)e.add(f,a[b],!0);return}a=a.join(" ")}e.add(f,a,h)}else if(a)if(a.constructor===Array)for(g=0;g<a.length;g++)W(a,b,c,d,e,f,g,h);else g=b[++d],W(a,b,c,d,e,f,g,h)}u=S.prototype;
u.add=function(a,b,c){D(a)&&(b=a,a=sa(b,this.key));if(b&&(a||0===a)){if(this.register[a])return this.update(a,b);for(let d=0,e,f;d<this.g.length;d++)f=this.g[d],e=this.H[d],C(e)&&(e=[e]),W(b,e,this.u,0,this.l[f],a,e[0],c);if(this.D){let d=sa(b,this.D),e=B();C(d)&&(d=[d]);for(let f=0,g,h;f<d.length;f++)if(g=d[f],!e[g]&&(e[g]=1,h=this.h[g]||(this.h[g]=[]),!c||-1===h.indexOf(a)))if(h[h.length]=a,this.j){const k=this.register[a]||(this.register[a]=[]);k[k.length]=h}}if(this.store&&!this.B){let d;if(this.A){d= u.add=function(a,b,c){D(a)&&(b=a,a=sa(b,this.key));if(b&&(a||0===a)){if(this.register[a])return this.update(a,b);for(let d=0,e,f;d<this.g.length;d++)f=this.g[d],e=this.H[d],C(e)&&(e=[e]),W(b,e,this.u,0,this.l[f],a,e[0],c);if(this.D){let d=sa(b,this.D),e=B();C(d)&&(d=[d]);for(let f=0,g,h;f<d.length;f++)if(g=d[f],!e[g]&&(e[g]=1,h=this.h[g]||(this.h[g]=[]),!c||-1===h.indexOf(a)))if(h[h.length]=a,this.j){const k=this.register[a]||(this.register[a]=[]);k[k.length]=h}}if(this.store&&!this.B){let d;if(this.A){d=
B();for(let e=0,f;e<this.A.length;e++)f=this.A[e],C(f)?d[f]=b[f]:V(b,d,f,0,f[0])}this.store[a]=d||b}}return this};u.append=function(a,b){return this.add(a,b,!0)};u.update=function(a,b){return this.remove(a).add(a,b)}; B();for(let e=0,f;e<this.A.length;e++)f=this.A[e],C(f)?d[f]=b[f]:V(b,d,f,0,f[0])}this.store[a]=d||b}}return this};u.append=function(a,b){return this.add(a,b,!0)};u.update=function(a,b){return this.remove(a).add(a,b)};
u.remove=function(a){D(a)&&(a=a[this.key]);if(this.register[a]){for(var b=0;b<this.g.length&&(this.l[this.g[b]].remove(a,!0),!this.j||this.i);b++);if(this.D&&(!this.j||this.i))for(let c in this.h){b=this.h[c];const d=b.indexOf(a);-1!==d&&(1<b.length?b.splice(d,1):delete this.h[c])}this.store&&!this.B&&delete this.store[a];delete this.register[a]}return this}; u.remove=function(a){D(a)&&(a=a[this.key]);if(this.register[a]){for(var b=0;b<this.g.length&&(this.l[this.g[b]].remove(a,!0),!this.j||this.i);b++);if(this.D&&(!this.j||this.i))for(let c in this.h){b=this.h[c];const d=b.indexOf(a);-1!==d&&(1<b.length?b.splice(d,1):delete this.h[c])}this.store&&!this.B&&delete this.store[a];delete this.register[a]}return this};
u.search=function(a,b,c,d){D(a)?(c=a,a=c.query):D(b)&&(c=b,b=0);let e=[],f=[],g,h,k,l,n,q,r,v=0;if(c)if(c.constructor===Array)k=c,c=null;else if(k=(g=c.pluck)||c.field||c.doc,n=c.tag,h=this.store&&c.enrich,q="and"===c.bool,b=c.limit||100,r=c.offset||0,k&&(C(k)?k=[k]:k.constructor!==Array&&(l=k,k=Object.keys(k))),n&&(C(n)&&(n=[n]),!a)){for(let m=0,t;m<n.length;m++)if(t=ta.call(this,n[m],b,r,h))e[e.length]=t,v++;return v?e:[]}k||(k=this.g);q=q&&(1<k.length||n&&1<n.length);const p=!d&&(this.i||this.async)&& u.search=function(a,b,c,d){D(a)?(c=a,a=c.query):D(b)&&(c=b,b=0);let e=[],f=[],g,h,k,l,n,q,r,v=0;if(c)if(c.constructor===Array)k=c,c=null;else if(k=(g=c.pluck)||c.field||c.doc,n=c.tag,h=this.store&&c.enrich,q="and"===c.bool,b=c.limit||100,r=c.offset||0,k&&(C(k)?k=[k]:k.constructor!==Array&&(l=k,k=Object.keys(k))),n&&(C(n)&&(n=[n]),!a)){for(let m=0,t;m<n.length;m++)if(t=ta.call(this,n[m],b,r,h))e[e.length]=t,v++;return v?e:[]}k||(k=this.g);q=q&&(1<k.length||n&&1<n.length);const p=!d&&(this.i||this.async)&&
[];for(let m=0,t,x,F;m<k.length;m++){let N;x=k[m];C(x)?l&&(N=l[x]):(N=x,x=x.field);if(p)p[m]=this.l[x].searchAsync(a,b,N||c);else{d?t=d[m]:t=this.l[x].search(a,b,N||c);F=t.length;if(n&&F){const G=[];let la=0;q&&(G[0]=[t]);for(let U=0,ma,O;U<n.length;U++)if(ma=n[U],F=(O=this.h[ma])&&O.length)la++,G[G.length]=q?[O]:O;la&&(t=q?fa(G,b||100,r||0):ha(t,G),F=t.length)}if(F)f[v]=x,e[v++]=t;else if(q)return[]}}if(p){const m=this;return new Promise(function(t){Promise.all(p).then(function(x){t(m.search(a,b, [];for(let m=0,t,x,F;m<k.length;m++){let M;x=k[m];C(x)?l&&(M=l[x]):(M=x,x=x.field);if(p)p[m]=this.l[x].searchAsync(a,b,M||c);else{d?t=d[m]:t=this.l[x].search(a,b,M||c);F=t.length;if(n&&F){const G=[];let la=0;q&&(G[0]=[t]);for(let T=0,ma,N;T<n.length;T++)if(ma=n[T],F=(N=this.h[ma])&&N.length)la++,G[G.length]=q?[N]:N;la&&(t=q?fa(G,b||100,r||0):ha(t,G),F=t.length)}if(F)f[v]=x,e[v++]=t;else if(q)return[]}}if(p){const m=this;return new Promise(function(t){Promise.all(p).then(function(x){t(m.search(a,b,
c,x))})})}if(!v)return[];if(g&&(!h||!this.store))return e[0];for(let m=0,t;m<f.length;m++){t=e[m];t.length&&h&&(t=ua.call(this,t));if(g)return t;e[m]={field:f[m],result:t}}return e};function ta(a,b,c,d){let e=this.h[a],f=e&&e.length-c;if(f&&0<f){if(f>b||c)e=e.slice(c,c+b);d&&(e=ua.call(this,e));return{tag:a,result:e}}}function ua(a){const b=Array(a.length);for(let c=0,d;c<a.length;c++)d=a[c],b[c]={key:d,doc:this.store[d]};return b}u.contain=function(a){return!!this.register[a]};u.get=function(a){return this.store[a]}; c,x))})})}if(!v)return[];if(g&&(!h||!this.store))return e[0];for(let m=0,t;m<f.length;m++){t=e[m];t.length&&h&&(t=ua.call(this,t));if(g)return t;e[m]={field:f[m],result:t}}return e};function ta(a,b,c,d){let e=this.h[a],f=e&&e.length-c;if(f&&0<f){if(f>b||c)e=e.slice(c,c+b);d&&(e=ua.call(this,e));return{tag:a,result:e}}}function ua(a){const b=Array(a.length);for(let c=0,d;c<a.length;c++)d=a[c],b[c]={key:d,doc:this.store[d]};return b}u.contain=function(a){return!!this.register[a]};u.get=function(a){return this.store[a]};
u.set=function(a,b){this.store[a]=b;return this};u.searchCache=ia;u.export=function(a,b,c,d,e){e||(e=0);d||(d=0);if(d<this.g.length){const f=this.g[d],g=this.l[f];b=this;setTimeout(function(){g.export(a,b,e?f.replace(":","-"):"",d,e++)||(d++,e=1,b.export(a,b,f,d,e))})}else{let f;switch(e){case 1:c="tag";f=this.h;break;case 2:c="store";f=this.store;break;default:return}ka(a,this,c,d,e,f)}}; u.set=function(a,b){this.store[a]=b;return this};u.searchCache=ia;u.export=function(a,b,c,d,e){e||(e=0);d||(d=0);if(d<this.g.length){const f=this.g[d],g=this.l[f];b=this;setTimeout(function(){g.export(a,b,e?f.replace(":","-"):"",d,e++)||(d++,e=1,b.export(a,b,f,d,e))})}else{let f;switch(e){case 1:c="tag";f=this.h;break;case 2:c="store";f=this.store;break;default:return}ka(a,this,c,d,e,f)}};
u.import=function(a,b){if(b)switch(C(b)&&(b=JSON.parse(b)),a){case "tag":this.h=b;break;case "reg":this.j=!1;this.register=b;for(let d=0,e;d<this.g.length;d++)e=this.l[this.g[d]],e.register=b,e.j=!1;break;case "store":this.store=b;break;default:a=a.split(".");const c=a[0];a=a[1];c&&a&&this.l[c].import(a,b)}};ea(S.prototype);const X=self;let Y;const Z={Index:L,Document:S,Worker:Q,registerCharset:function(a,b){da[a]=b},registerLanguage:function(a,b){ca[a]=b}};(Y=X.define)&&Y.amd?Y([],function(){return Z}):X.exports?X.exports=Z:X.FlexSearch=Z;}(this)); u.import=function(a,b){if(b)switch(C(b)&&(b=JSON.parse(b)),a){case "tag":this.h=b;break;case "reg":this.j=!1;this.register=b;for(let d=0,e;d<this.g.length;d++)e=this.l[this.g[d]],e.register=b,e.j=!1;break;case "store":this.store=b;break;default:a=a.split(".");const c=a[0];a=a[1];c&&a&&this.l[c].import(a,b)}};ea(S.prototype);const X=self;let Y;const Z={Index:L,Document:S,Worker:Q,registerCharset:function(a,b){ca[a]=b},registerLanguage:function(a,b){I[a]=b}};(Y=X.define)&&Y.amd?Y([],function(){return Z}):X.exports?X.exports=Z:X.FlexSearch=Z;}(this));

View File

@@ -5,23 +5,22 @@
* Licence: Apache-2.0 * Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch * https://github.com/nextapps-de/flexsearch
*/ */
(function(){'use strict';var w;function aa(a){function b(c){return a.next(c)}function d(c){return a.throw(c)}return new Promise(function(c,e){function g(f){f.done?c(f.value):Promise.resolve(f.value).then(b,d).then(g,e)}g(a.next())})};const x=/[\W_]+/;function ba(a){if(a=a.toLowerCase())if(a&&this.A&&(a=y(a,this.A)),this.C&&1<a.length&&(a=y(a,this.C)),a&&(x||""===x)&&(a=a.split(x),this.filter)){var b=this.filter;const d=a.length,c=[];for(let e=0,g=0;e<d;e++){const f=a[e];f&&!b[f]&&(c[g++]=f)}a=c}return a};function A(a,b){return"undefined"!==typeof a?a:b}function E(a){const b=Array(a);for(let d=0;d<a;d++)b[d]=G();return b}function G(){return Object.create(null)}function ca(a,b){return b.length-a.length}function H(a){return"string"===typeof a}function I(a){return"object"===typeof a}function J(a){return"function"===typeof a};function da(a,b){const d=Object.keys(a),c=d.length,e=[];let g="",f=0;for(let h=0,l,k;h<c;h++)l=d[h],(k=a[l])?(e[f++]=new RegExp(b?"(?!\\b)"+l+"(\\b|_)":l,"g"),e[f++]=k):g+=(g?"|":"")+l;g&&(e[f++]=new RegExp(b?"(?!\\b)("+g+")(\\b|_)":"("+g+")","g"),e[f]="");return e}function y(a,b){for(let d=0,c=b.length;d<c&&(a=a.replace(b[d],b[d+1]),a);d+=2);return a};const ea={},fa={};let ha=Promise;function ia(a){N(a,"add");N(a,"append");N(a,"search");N(a,"update");N(a,"remove")}function N(a,b){a[b+"Async"]=function(){const d=this,c=arguments;var e=c[c.length-1];let g;J(e)&&(g=e,delete c[c.length-1]);e=new ha(function(f){setTimeout(function(){const h=d[b];h.async=!0;f(h.apply(d,c));h.async=!1})});return g?(e.then(g),this):e}};function ja(a,b,d,c){const e=a.length;let g=[],f=G(),h=0;c&&(c=[]);for(let l=0;l<e;l++){const k=a[l],r=k.length,q=G();let t=!l;for(let m=0;m<r;m++){const v=k[m],p=v.length;if(p){c&&(c[m]=[]);for(let z=0,u=0,n;z<p;z++)if(n=v[z],!l)q[n]=1;else if(f[n]){if(l===e-1)if(d)d--;else{if(g[h++]=n,h===b)return g}else c&&u<b&&(c[m][u++]=n),q[n]=1;t=!0}}}if(!t&&!c)return[];f=q}if(c)for(let l=c.length-1,k,r;0<=l;l--)if(r=(k=c[l])&&k.length){if(h+r>=b)return g.concat(k.slice(0,b-h));g=g.concat(k);h+=r}return g} (function(self){'use strict';var v;const x=/[\W_]+/;function aa(a){if(a=a.toLowerCase())if(a&&this.A&&(a=y(a,this.A)),this.C&&1<a.length&&(a=y(a,this.C)),a&&(x||""===x)&&(a=a.split(x),this.filter)){var b=this.filter;const c=a.length,e=[];for(let d=0,f=0;d<c;d++){const g=a[d];g&&!b[g]&&(e[f++]=g)}a=e}return a};function z(a,b){return"undefined"!==typeof a?a:b}function A(a){const b=Array(a);for(let c=0;c<a;c++)b[c]=B();return b}function B(){return Object.create(null)}function ba(a,b){return b.length-a.length}function C(a){return"string"===typeof a}function D(a){return"object"===typeof a};function G(a,b){const c=Object.keys(a),e=c.length,d=[];let f="",g=0;for(let h=0,k,l;h<e;h++)k=c[h],(l=a[k])?(d[g++]=new RegExp(b?"(?!\\b)"+k+"(\\b|_)":k,"g"),d[g++]=l):f+=(f?"|":"")+k;f&&(d[g++]=new RegExp(b?"(?!\\b)("+f+")(\\b|_)":"("+f+")","g"),d[g]="");return d}function y(a,b){for(let c=0,e=b.length;c<e&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a};const H={},K={};let ea=Promise;function L(a){M(a,"add");M(a,"append");M(a,"search");M(a,"update");M(a,"remove")}function M(a,b){a[b+"Async"]=function(){const c=this,e=arguments;var d=e[e.length-1];let f;"function"===typeof d&&(f=d,delete e[e.length-1]);d=new ea(function(g){setTimeout(function(){c.async=!0;g(c[b].apply(c,e));c.async=!1})});return f?(d.then(f),this):d}};function N(a,b,c,e){var d=a.length;let f=[],g,h=0;e&&(e=[]);for(--d;0<=d;d--){const k=a[d],l=k.length,n=B();let q=!g;for(let r=0;r<l;r++){const u=k[r],p=u.length;if(p)for(let m=0,t=0,w;m<p;m++)if(w=u[m],!g)n[w]=1;else if(g[w]){if(d)e&&t<b&&((e[r]||(e[r]=[]))[t++]=w),n[w]=1;else if(c)c--;else if(f[h++]=w,h===b)return f;q=!0}}if(!q&&!e)return[];g=n}if(e)for(let k=e.length-1,l,n;0<=k;k--)if((n=(l=e[k])&&l.length)&&c&&(n<=c?(c-=n,n=0):n-=c),n){if(h+n>=b)return f.concat(l.slice(c,b-h+c));f=f.concat(c?
;const ka={memory:{charset:"latin:extra",m:3,j:3,s:!1,l:"memory"},performance:{threshold:8,j:3,context:{depth:1,u:!0}},match:{charset:"latin:extra",H:"full",m:3},score:{charset:"latin:advanced",threshold:1,context:{depth:3,u:!0}},"default":{m:3,threshold:0,depth:3}};function O(a,b){if(!(this instanceof O))return new O(a);var d;let c;a?(H(a)?a=ka[a]:(d=a.preset)&&(a=Object.assign({},ka[d],a)),d=a.charset,c=a.lang,H(d)&&(-1===d.indexOf(":")&&(d+=":default"),d=fa[d]),H(c)&&(c=ea[c])):a={};let e,g,f,h=a.context||{};this.encode=a.encode||d&&d.encode||ba;this.register=b||G();e=a.resolution||9;g=a.threshold||0;g>=e&&(g=e-1);this.m=e;this.threshold=g;this.v=b=d&&d.H||a.tokenize||"strict";this.depth="strict"===b&&h.depth;this.u=A(h.bidirectional,!0);this.l=f="memory"=== l.slice(c):l);h+=n;c=0}return f}function fa(a,b){const c=B(),e=B(),d=[];for(let f=0;f<a.length;f++)c[a[f]]=1;for(let f=0,g;f<b.length;f++){g=b[f];for(let h=0,k;h<g.length;h++)k=g[h],c[k]&&!e[k]&&(e[k]=1,d[d.length]=k)}return d};const ha={memory:{charset:"latin:extra",m:3,j:3,s:!1,l:"memory"},performance:{threshold:8,j:3,context:{depth:1,v:!0}},match:{charset:"latin:extra",H:"full",m:3},score:{charset:"latin:advanced",threshold:1,context:{depth:3,v:!0}},"default":{m:3,threshold:0,depth:3}};function O(a,b){if(!(this instanceof O))return new O(a);var c;let e;a?(C(a)?a=ha[a]:(c=a.preset)&&(a=Object.assign({},c[c],a)),c=a.charset,e=a.lang,C(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=K[c]),C(e)&&(e=H[e])):a={};let d,f,g,h=a.context||{};this.encode=a.encode||c&&c.encode||aa;this.register=b||B();d=a.resolution||9;f=a.threshold||0;f>=d&&(f=d-1);this.m=d;this.threshold=f;this.u=b=c&&c.H||a.tokenize||"strict";this.depth="strict"===b&&h.depth;this.v=z(h.bidirectional,!0);this.l=g="memory"===
a.optimize;this.s=A(a.fastupdate,!0);this.j=a.minlength||1;this.g=f?E(e-g):G();e=h.resolution||e;g=h.threshold||g;g>=e&&(g=e-1);this.h=e;this.o=g;this.i=f?E(e-g):G();this.B=d&&d.B||a.rtl;this.A=(b=a.matcher||c&&c.A)&&da(b,!1);this.C=(b=a.stemmer||c&&c.C)&&da(b,!0);if(a=b=a.filter||c&&c.filter){a=b;d=G();for(let l=0,k=a.length;l<k;l++)d[a[l]]=1;a=d}this.filter=a}w=O.prototype;w.append=function(a,b){return this.add(a,b,!0)}; a.optimize;this.s=z(a.fastupdate,!0);this.j=a.minlength||1;this.g=g?A(d-f):B();d=h.resolution||d;f=h.threshold||f;f>=d&&(f=d-1);this.h=d;this.o=f;this.i=g?A(d-f):B();this.B=c&&c.B||a.rtl;this.A=(b=a.matcher||e&&e.A)&&G(b,!1);this.C=(b=a.stemmer||e&&e.C)&&G(b,!0);if(a=b=a.filter||e&&e.filter){a=b;c=B();for(let k=0,l=a.length;k<l;k++)c[a[k]]=1;a=c}this.filter=a}v=O.prototype;v.append=function(a,b){return this.add(a,b,!0)};
w.add=function(a,b,d){if(this.register[a]&&!d)return this.update(a,b);if(b&&(a||0===a)){b=this.encode(b);const k=b.length;if(k){const r=this.depth,q=this.m-this.threshold,t=G(),m=G();for(let v=0;v<k;v++){let p=b[this.B?k-1-v:v];var c=p.length;if(p&&c>=this.j&&(r||!t[p])){var e=Math.min(this.m/k*v|0,v);if(e<q){var g="";switch(this.v){case "full":if(3<c){for(var f=0;f<c;f++){var h=f?Math.min(e/2+this.m/c*f/2|0,e+f):e;if(h<q)for(var l=c;l>f;l--)g=p.substring(f,l),g.length>=this.j&&P(this,t,g,h,a,d)}break}case "reverse":if(2< v.add=function(a,b,c){if(this.register[a]&&!c)return this.update(a,b);if(b&&(a||0===a)){b=this.encode(b);const l=b.length;if(l){const n=this.depth,q=this.m-this.threshold,r=B(),u=B();for(let p=0;p<l;p++){let m=b[this.B?l-1-p:p];var e=m.length;if(m&&e>=this.j&&(n||!r[m])){var d=Math.min(this.m/l*p|0,p);if(d<q){var f="";switch(this.u){case "full":if(3<e){for(var g=0;g<e;g++){var h=g?Math.min(d/2+this.m/e*g/2|0,d+g):d;if(h<q)for(var k=e;k>g;k--)f=m.substring(g,k),f.length>=this.j&&Q(this,r,f,h,a,c)}break}case "reverse":if(2<
c){for(f=c-1;0<f;f--)g=p[f]+g,g.length>=this.j&&P(this,t,g,e,a,d);g=""}case "forward":if(1<c)for(f=0;f<c;f++)g+=p[f],g.length>=this.j&&P(this,t,g,e,a,d);break;default:if(P(this,t,p,e,a,d),r&&1<k&&v<k-1)for(c=this.h-this.o,e=G(),g=p,f=Math.min(r+1,k-v),e[g]=1,h=1;h<f;h++)if((p=b[this.B?k-1-v-h:v+h])&&p.length>=this.j&&!e[p]){if(e[p]=1,l=Math.min((this.h-f)/k*v+h|0,v+(h-1)),l<c){const z=this.u&&p>g;P(this,m,z?g:p,l,a,d,z?p:g)}}else f=Math.min(f+1,k-v)}}}}this.s||(this.register[a]=1)}}return this}; e){for(g=e-1;0<g;g--)f=m[g]+f,f.length>=this.j&&Q(this,r,f,d,a,c);f=""}case "forward":if(1<e)for(g=0;g<e;g++)f+=m[g],f.length>=this.j&&Q(this,r,f,d,a,c);break;default:if(Q(this,r,m,d,a,c),n&&1<l&&p<l-1)for(e=this.h-this.o,d=B(),f=m,g=Math.min(n+1,l-p),d[f]=1,h=1;h<g;h++)if((m=b[this.B?l-1-p-h:p+h])&&m.length>=this.j&&!d[m]){if(d[m]=1,k=Math.min((this.h-g)/l*p+h|0,p+(h-1)),k<e){const t=this.v&&m>f;Q(this,u,t?f:m,k,a,c,t?m:f)}}else g=Math.min(g+1,l-p)}}}}this.s||(this.register[a]=1)}}return this};
function P(a,b,d,c,e,g,f){let h=f?a.i:a.g;if(!b[d]||f&&!b[d][f])a.l&&(h=h[c]),f?(b[d]||(b[d]=G()),b[d][f]=1,h=h[f]||(h[f]=G())):b[d]=1,h=h[d]||(h[d]=[]),a.l||(h=h[c]||(h[c]=[])),g&&-1!==h.indexOf(e)||(h[h.length]=e,a.s&&(a=a.register[e]||(a.register[e]=[]),a[a.length]=h))} function Q(a,b,c,e,d,f,g){let h=g?a.i:a.g;if(!b[c]||g&&!b[c][g])a.l&&(h=h[e]),g?(b=b[c]||(b[c]=B()),b[g]=1,h=h[g]||(h[g]=B())):b[c]=1,h=h[c]||(h[c]=[]),a.l||(h=h[e]||(h[e]=[])),f&&-1!==h.indexOf(d)||(h[h.length]=d,a.s&&(a=a.register[d]||(a.register[d]=[]),a[a.length]=h))}
w.search=function(a,b,d){I(a)?(d=a,a=d.query):I(b)&&(d=b);let c=[],e;var g=this.threshold;let f,h=0;if(d){b=d.limit;h=d.offset||0;g=A(d.threshold,g);var l=d.context;f=d.suggest}if(a&&(a=this.encode(a),e=a.length,1<e)){d=G();var k=[];for(let q=0,t=0,m;q<e;q++)if((m=a[q])&&m.length>=this.j&&!d[m])if(this.l||f||this.g[m])k[t++]=m,d[m]=1;else return c;a=k;e=a.length}if(!e)return c;b||(b=100);d=this.m-g;g=this.h-g;l=this.depth&&1<e&&!1!==l;k=0;let r;l?(r=a[0],k=1):1<e&&a.sort(ca);for(let q,t;k<e;k++){t= v.search=function(a,b,c){D(a)?(c=a,a=c.query):D(b)&&(c=b);let e=[],d;var f=this.threshold;let g,h=0;if(c){b=c.limit;h=c.offset||0;f=z(c.threshold,f);var k=c.context;g=c.suggest}if(a&&(a=this.encode(a),d=a.length,1<d)){c=B();var l=[];for(let q=0,r=0,u;q<d;q++)if((u=a[q])&&u.length>=this.j&&!c[u])if(this.l||g||this.g[u])l[r++]=u,c[u]=1;else return e;a=l;d=a.length}if(!d)return e;b||(b=100);c=this.m-f;f=this.h-f;k=this.depth&&1<d&&!1!==k;l=0;let n;k?(n=a[0],l=1):1<d&&a.sort(ba);for(let q,r;l<d;l++){r=
a[k];l?(q=la(this,c,f,g,b,2===e,t,r),f&&!1===q&&c.length||(r=t)):q=la(this,c,f,d,b,1===e,t);if(q)return q;if(f&&k===e-1){let m=c.length;if(!m){if(l){l=0;k=-1;continue}return c}if(1===m)return c=c[0],c=1===c.length?c[0]:[].concat.apply([],c),c.length>b?c.slice(0,b):c}}return ja(c,b,h,f)};function ma(a,b,d,c){d?(c=c&&b>d,a=(a=a[c?b:d])&&a[c?d:b]):a=a[b];return a} a[l];k?(q=R(this,e,g,f,b,h,2===d,r,n),g&&!1===q&&e.length||(n=r)):q=R(this,e,g,c,b,h,1===d,r);if(q)return q;if(g&&l===d-1){let u=e.length;if(!u){if(k){k=0;l=-1;continue}return e}if(1===u)return ia(e[0],b,h)}}return N(e,b,h,g)};
function la(a,b,d,c,e,g,f,h){let l=[],k=h?a.i:a.g;a.l||(k=ma(k,f,h,a.u));if(k){let r=0;c=Math.min(k.length,c);for(let q=0,t=0,m;q<c&&!(m=k[q],a.l&&(m=ma(m,f,h,a.u)),m&&(l[r++]=m,g&&(t+=m.length,t>=e)));q++);if(r){if(g)return l=1===r?l[0]:[].concat.apply([],l),l.length>e?l.slice(0,e):l;b[b.length]=l;return}}return!d&&l}w.contain=function(a){return!!this.register[a]};w.update=function(a,b){return this.remove(a).add(a,b)}; function R(a,b,c,e,d,f,g,h,k){let l=[],n=k?a.i:a.g;a.l||(n=ja(n,h,k,a.v));if(n){let q=0;e=Math.min(n.length,e);for(let r=0,u=0,p,m;r<e&&!(p=n[r],a.l&&(p=ja(p,h,k,a.v)),p&&g&&(m=p.length,m<=f?(f-=m,p=null):f&&(p=p.slice(f),f=0)),p&&(l[q++]=p,g&&(u+=p.length,u>=d)));r++);if(q){if(g)return ia(l,d,0);b[b.length]=l;return}}return!c&&l}function ia(a,b,c){a=1===a.length?a[0]:[].concat.apply([],a);return c||a.length>b?a.slice(c,c+b):a}
w.remove=function(a,b){const d=this.register[a];if(d){if(this.s)for(let c=0,e;c<d.length;c++)e=d[c],e.splice(e.indexOf(a),1);else Q(this.g,a,this.m-this.threshold,this.l),this.depth&&Q(this.i,a,this.h-this.o,this.l);b||delete this.register[a]}return this}; function ja(a,b,c,e){c?(e=e&&b>c,a=(a=a[e?b:c])&&a[e?c:b]):a=a[b];return a}v.contain=function(a){return!!this.register[a]};v.update=function(a,b){return this.remove(a).add(a,b)};v.remove=function(a,b){const c=this.register[a];if(c){if(this.s)for(let e=0,d;e<c.length;e++)d=c[e],d.splice(d.indexOf(a),1);else S(this.g,a,this.m-this.threshold,this.l),this.depth&&S(this.i,a,this.h-this.o,this.l);b||delete this.register[a]}return this};
function Q(a,b,d,c,e){let g=0;if(a.constructor===Array)if(e)b=a.indexOf(b),-1!==b?1<a.length&&(a.splice(b,1),g++):g++;else{e=Math.min(a.length,d);for(let f=0,h;f<e;f++)if(h=a[f])g=Q(h,b,d,c,e),c||g||delete a[f]}else for(let f in a)(g=Q(a[f],b,d,c,e))||delete a[f];return g}ia(O.prototype);let na=0;function R(a){if(I(a)){var b=a;a=0}J(b.encode)&&(b.encode=b.encode.toString());const d=this;this.id=a||na++;this.h=null;this.g=new Worker("worker.js",{type:"module"});this.g.onmessage=function(c){d.h(c.data)};this.g.postMessage({G:"create",options:b})}S("add");S("append");S("search");S("update");S("remove"); function S(a,b,c,e,d){let f=0;if(a.constructor===Array)if(d)b=a.indexOf(b),-1!==b?1<a.length&&(a.splice(b,1),f++):f++;else{d=Math.min(a.length,c);for(let g=0,h;g<d;g++)if(h=a[g])f=S(h,b,c,e,d),e||f||delete a[g]}else for(let g in a)(f=S(a[g],b,c,e,d))||delete a[g];return f}L(O.prototype);function T(a){if(!(this instanceof T))return new T(a);var b;a||(a={});this.D=[];this.g=[];this.u=[];this.register=B();this.key=(b=a.key)&&U(b,this.u)||"id";this.s=z(a.fastupdate,!0);this.o=!!(b=a.extern);this.h=!this.o&&(b=a.store)&&!0!==b&&[];this.store=b&&(this.o?b:B());this.async=!1;b=a;a=B();let c=b.doc;if(C(c))c=[c];else if(c.constructor!==Array){var e=c;c=Object.keys(c)}for(let d=0,f,g;d<c.length;d++)f=c[d],C(f)?e&&(g=e[f]):(g=f,f=f.field),g=D(g)?Object.assign({},b,g):b,this.F||(a[f]=new O(g,
function S(a){R.prototype[a]=R.prototype[a+"Async"]=function(){const b=this,d=[].slice.call(arguments);var c=d[d.length-1];let e;J(c)&&(e=c,d.splice(d.length-1,1));c=new ha(function(g){b.g.postMessage({G:a,I:d});"search"===a?b.h=g:g()});return e?(c.then(e),this):c}};function T(a){if(!(this instanceof T))return new T(a);var b;a||(a={});this.D=[];this.g=[];this.o=[];this.register=G();this.key=(b=a.key)&&U(b,this.o)||"id";this.s=A(a.fastupdate,!0);this.store=(b=a.store)&&G();this.h=b&&!0!==b&&[];this.async=!1;b=a;a=G();let d=b.doc;if(H(d))d=[d];else if(d.constructor!==Array){var c=d;d=Object.keys(d)}for(let e=0,g,f;e<d.length;e++)g=d[e],H(g)?c&&(f=c[g]):(f=g,g=g.field),f=I(f)?Object.assign({},b,f):b,a[g]=this.v?new R(f):new O(f,this.register),this.D[e]=U(g,this.o), this.register)),this.D[d]=U(f,this.u),this.g[d]=f;if(this.h)for(e=b.store,C(e)&&(e=[e]),b=0;b<e.length;b++)this.h[b]=U(e[b],this.u);this.i=a}function U(a,b){const c=a.split(":");let e=0;for(let d=0;d<c.length;d++)a=c[d],0<=a.indexOf("[]")&&(a=a.substring(0,a.length-2))&&(b[e]=!0),a&&(c[e++]=a);e<c.length&&(c.length=e);return 1<e?c:c[0]}
this.g[e]=g;if(this.h)for(c=b.store,H(c)&&(c=[c]),b=0;b<c.length;b++)this.h[b]=U(c[b],this.o);this.i=a}function U(a,b){const d=a.split(":");let c=0;for(let e=0;e<d.length;e++)a=d[e],0<=a.indexOf("[]")&&(a=a.substring(0,a.length-2))&&(b[c]=!0),a&&(d[c++]=a);c<d.length&&(d.length=c);return 1<c?d:d[0]}function Y(a,b,d,c,e){a=a[e];if(c===d.length-1)b[e]=a;else if(a)if(a.constructor===Array)for(b=b[e]=Array(a.length),e=0;e<a.length;e++)Y(a,b,d,c,e);else b=b[e]||(b[e]=G()),e=d[++c],Y(a,b,d,c,e)} function V(a,b,c,e,d){a=a[d];if(e===c.length-1)b[d]=a;else if(a)if(a.constructor===Array)for(b=b[d]=Array(a.length),d=0;d<a.length;d++)V(a,b,c,e,d);else b=b[d]||(b[d]=B()),d=c[++e],V(a,b,c,e,d)}function W(a,b,c,e,d,f,g,h){a=a[g];if(e===b.length-1){if(a.constructor===Array){if(c[e]){for(b=0;b<a.length;b++)d.add(f,a[b],!0);return}a=a.join(" ")}d.add(f,a,h)}else if(a)if(a.constructor===Array)for(g=0;g<a.length;g++)W(a,b,c,e,d,f,g,h);else g=b[++e],W(a,b,c,e,d,f,g,h)}v=T.prototype;
function Z(a,b,d,c,e,g,f,h){a=a[f];if(c===b.length-1){if(a.constructor===Array){if(d[c]){for(b=0;b<a.length;b++)e.add(g,a[b],!0);return}a=a.join(" ")}e.add(g,a,h)}else if(a)if(a.constructor===Array)for(f=0;f<a.length;f++)Z(a,b,d,c,e,g,f,h);else f=b[++c],Z(a,b,d,c,e,g,f,h)}w=T.prototype; v.add=function(a,b,c){if(D(a)){a=b=a;var e=this.key;if(C(e))a=a[e];else for(let d=0;a&&d<e.length;d++)a=a[e[d]]}if(b&&(a||0===a)){if(this.register[a])return this.update(a,b);for(let d=0,f,g;d<this.g.length;d++)g=this.g[d],f=this.D[d],C(f)&&(f=[f]),W(b,f,this.u,0,this.i[g],a,f[0],c);if(this.store&&!this.o){let d;if(this.h){d=B();for(let f=0,g;f<this.h.length;f++)g=this.h[f],C(g)?d[g]=b[g]:V(b,d,g,0,g[0])}this.store[a]=d||b}}return this};v.append=function(a,b){return this.add(a,b,!0)};
w.add=function(a,b,d){if(I(a)){a=b=a;var c=this.key;if(H(c))a=a[c];else for(let e=0;a&&e<c.length;e++)a=a[c[e]]}if(b&&(a||0===a)){if(this.register[a])return this.update(a,b);for(let e=0,g,f;e<this.g.length;e++)f=this.g[e],g=this.D[e],H(g)&&(g=[g]),Z(b,g,this.o,0,this.i[f],a,g[0],d);if(this.store){let e;if(this.h){e=G();for(let g=0,f;g<this.h.length;g++)f=this.h[g],H(f)?e[f]=b[f]:Y(b,e,f,0,f[0])}this.store[a]=e||b}}return this};w.append=function(a,b){return this.add(a,b,!0)}; v.update=function(a,b){return this.remove(a).add(a,b)};v.remove=function(a){D(a)&&(a=a[this.key]);if(this.register[a]){for(let b=0;b<this.g.length&&(this.i[this.g[b]].remove(a,!0),!this.s||this.F);b++);this.store&&!this.o&&delete this.store[a];delete this.register[a]}return this};
w.update=function(a,b){return this.remove(a).add(a,b)};w.remove=function(a){I(a)&&(a=a[this.key]);if(this.register[a]){for(let b=0;b<this.g.length&&(this.i[this.g[b]].remove(a,!0),!this.s||this.v);b++);this.store&&delete this.store[a];delete this.register[a]}return this}; v.search=function(a,b,c,e){D(a)?(c=a,a=c.query):D(b)&&(c=b,b=0);let d=[],f=[],g,h,k,l,n,q,r,u=0;if(c)if(c.constructor===Array)k=c,c=null;else if(k=(g=c.pluck)||c.field||c.doc,n=!1,h=this.store&&c.enrich,q="and"===c.bool,b=c.limit||100,r=c.offset||0,k&&(C(k)?k=[k]:k.constructor!==Array&&(l=k,k=Object.keys(k))),n&&(C(n)&&(n=[n]),!a)){for(let m=0,t;m<n.length;m++)if(t=ka.call(this,n[m],b,r,h))d[d.length]=t,u++;return u?d:[]}k||(k=this.g);q=q&&(1<k.length||n&&1<n.length);const p=!e&&(this.F||this.async)&&
w.search=function(a,b,d){const c=this;return aa(function*(){I(a)?(d=a,a=d.query):I(b)&&(d=b,b=0);let e=[];var g=[],f;let h;let l,k,r,q,t=0;if(d)if(d.constructor===Array){var m=d;d=null}else if(m=(f=d.pluck)||d.field||d.doc,k=!1,h=c.store&&d.enrich,r="and"===d.bool,b=d.limit||100,q=d.offset||0,m&&(H(m)?m=[m]:m.constructor!==Array&&(l=m,m=Object.keys(m))),k&&(H(k)&&(k=[k]),!a)){for(let u=0,n;u<k.length;u++){g=k[u];if((m=(f=c.F[g])&&f.length-q)&&0<m){if(m>b||q)f=f.slice(q,q+b);h&&(f=oa.call(c,f));n= [];for(let m=0,t,w,E;m<k.length;m++){let I;w=k[m];C(w)?l&&(I=l[w]):(I=w,w=w.field);if(p)p[m]=this.i[w].searchAsync(a,b,I||c);else{e?t=e[m]:t=this.i[w].search(a,b,I||c);E=t.length;if(n&&E){const F=[];let ca=0;q&&(F[0]=[t]);for(let P=0,da,J;P<n.length;P++)if(da=n[P],E=(J=this.G[da])&&J.length)ca++,F[F.length]=q?[J]:J;ca&&(t=q?N(F,b||100,r||0):fa(t,F),E=t.length)}if(E)f[u]=w,d[u++]=t;else if(q)return[]}}if(p){const m=this;return new Promise(function(t){Promise.all(p).then(function(w){t(m.search(a,b,
{tag:g,result:f}}else n=void 0;n&&(e[e.length]=n,t++)}return t?e:[]}m||(m=c.g);r=r&&(1<m.length||k&&1<k.length);let v=[];if(c.v||c.async){for(let u=0,n;u<m.length;u++){var p=void 0;n=m[u];H(n)?l&&(p=l[n]):(p=n,n=n.field);v[u]=c.i[n].searchAsync(a,b,p||d)}v=yield Promise.all(v)}for(let u=0,n,B,K;u<m.length;u++){let V;B=m[u];H(B)?l&&(V=l[B]):(V=B,B=B.field);n=c.v||c.async?v[u]:c.i[B].search(a,b,V||d);K=n.length;if(k&&K){var z=[];p=0;r&&(z[0]=[n]);for(let F=0,L,C;F<k.length;F++)if(L=k[F],K=(C=c.F[L])&& c,w))})})}if(!u)return[];if(g&&(!h||!this.store))return d[0];for(let m=0,t;m<f.length;m++){t=d[m];t.length&&h&&(t=la.call(this,t));if(g)return t;d[m]={field:f[m],result:t}}return d};function ka(a,b,c,e){let d=this.G[a],f=d&&d.length-c;if(f&&0<f){if(f>b||c)d=d.slice(c,c+b);e&&(d=la.call(this,d));return{tag:a,result:d}}}function la(a){const b=Array(a.length);for(let c=0,e;c<a.length;c++)e=a[c],b[c]={key:e,doc:this.store[e]};return b}v.contain=function(a){return!!this.register[a]};v.get=function(a){return this.store[a]};
C.length)p++,z[z.length]=r?[C]:C;if(p){if(r)p=ja(z,b||100,q||0);else{p=n;const F=G(),L=G(),C=[];for(let D=0;D<p.length;D++)F[p[D]]=1;for(let D=0,W;D<z.length;D++){W=z[D];for(let X=0,M;X<W.length;X++)M=W[X],F[M]&&!L[M]&&(L[M]=1,C[C.length]=M)}p=C}n=p;K=n.length}}if(K)g[t]=B,e[t++]=n;else if(r)return[]}if(!t)return[];if(f&&(!h||!c.store))return e[0];for(let u=0,n;u<g.length;u++){n=e[u];n.length&&h&&(n=oa.call(c,n));if(f)return n;e[u]={field:g[u],result:n}}return e}())}; v.set=function(a,b){this.store[a]=b;return this};L(T.prototype);const X=self;let Y;const Z={Index:O,Document:T,Worker:null,registerCharset:function(a,b){K[a]=b},registerLanguage:function(a,b){H[a]=b}};(Y=X.define)&&Y.amd?Y([],function(){return Z}):X.exports?X.exports=Z:X.FlexSearch=Z;}(this));
function oa(a){const b=Array(a.length);for(let d=0,c;d<a.length;d++)c=a[d],b[d]={key:c,doc:this.store[c]};return b}w.contain=function(a){return!!this.register[a]};w.get=function(a){return this.store[a]};w.set=function(a,b){this.store[a]=b;return this};ia(T.prototype);window.FlexSearch={Index:O,Document:T,registerCharset:function(a,b){fa[a]=b},registerLanguage:function(a,b){ea[a]=b}};}).call(this);

914
dist/flexsearch.debug.js vendored Normal file
View File

@@ -0,0 +1,914 @@
/**!
* FlexSearch.js v0.7.0-beta (Debug)
* Copyright 2019 Nextapps GmbH
* Author: Thomas Wilkerling
* Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch
*/
(function(self){'use strict';
const aa = /[\W_]+/;
function ba(a) {
return this.pipeline(a.toLowerCase(), !1, aa, !1);
}
;function v(a, b) {
return "undefined" !== typeof a ? a : b;
}
function x(a) {
const b = Array(a);
for (let c = 0; c < a; c++) {
b[c] = y();
}
return b;
}
function y() {
return Object.create(null);
}
function ca(a, b) {
return b.length - a.length;
}
function z(a) {
return "string" === typeof a;
}
function A(a) {
return "object" === typeof a;
}
function B(a) {
return "function" === typeof a;
}
;function C(a, b) {
const c = Object.keys(a), d = c.length, e = [];
let f = "", g = 0;
for (let k = 0, h, l; k < d; k++) {
h = c[k], (l = a[h]) ? (e[g++] = new RegExp(b ? "(?!\\b)" + h + "(\\b|_)" : h, "g"), e[g++] = l) : f += (f ? "|" : "") + h;
}
f && (e[g++] = new RegExp(b ? "(?!\\b)(" + f + ")(\\b|_)" : "(" + f + ")", "g"), e[g] = "");
return e;
}
function D(a, b) {
for (let c = 0, d = b.length; c < d && (a = a.replace(b[c], b[c + 1]), a); c += 2) {
}
return a;
}
;const G = {}, H = {};
let I = Promise;
function J(a) {
M(a, "add");
M(a, "append");
M(a, "search");
M(a, "update");
M(a, "remove");
}
function M(a, b) {
a[b + "Async"] = function() {
const c = this, d = arguments;
var e = d[d.length - 1];
let f;
B(e) && (f = e, delete d[d.length - 1]);
e = new I(function(g) {
setTimeout(function() {
c.async = !0;
g(c[b].apply(c, d));
c.async = !1;
});
});
return f ? (e.then(f), this) : e;
};
}
;function da(a, b, c, d) {
var e = a.length;
let f = [], g, k = 0;
d && (d = []);
for (--e; 0 <= e; e--) {
const h = a[e], l = h.length, n = y();
let q = !g;
for (let r = 0; r < l; r++) {
const p = h[r], t = p.length;
if (t) {
for (let m = 0, u = 0, w; m < t; m++) {
if (w = p[m], !g) {
n[w] = 1;
} else {
if (g[w]) {
if (e) {
d && u < b && ((d[r] || (d[r] = []))[u++] = w), n[w] = 1;
} else {
if (c) {
c--;
} else {
if (f[k++] = w, k === b) {
return f;
}
}
}
q = !0;
}
}
}
}
}
if (!q && !d) {
return [];
}
g = n;
}
if (d) {
for (let h = d.length - 1, l, n; 0 <= h; h--) {
if ((n = (l = d[h]) && l.length) && c && (n <= c ? (c -= n, n = 0) : n -= c), n) {
if (k + n >= b) {
return f.concat(l.slice(c, b - k + c));
}
f = f.concat(c ? l.slice(c) : l);
k += n;
c = 0;
}
}
}
return f;
}
function ea(a, b) {
const c = y(), d = y(), e = [];
for (let f = 0; f < a.length; f++) {
c[a[f]] = 1;
}
for (let f = 0, g; f < b.length; f++) {
g = b[f];
for (let k = 0, h; k < g.length; k++) {
h = g[k], c[h] && !d[h] && (d[h] = 1, e[e.length] = h);
}
}
return e;
}
;function N(a) {
this.limit = !0 !== a && a;
this.cache = y();
this.queue = [];
}
function fa(a, b, c) {
A(a) && (a = a.query);
let d = this.cache.get(a);
d || (d = this.search(a, b, c), this.cache.set(a, d));
return d;
}
N.prototype.set = function(a, b) {
if (!this.cache[a]) {
var c = this.queue.length;
c === this.limit ? delete this.cache[this.queue[c - 1]] : c++;
for (--c; 0 < c; c--) {
this.queue[c] = this.queue[c - 1];
}
this.queue[0] = a;
}
this.cache[a] = b;
};
N.prototype.get = function(a) {
const b = this.cache[a];
if (this.limit && b && (a = this.queue.indexOf(a))) {
const c = this.queue[a - 1];
this.queue[a - 1] = this.queue[a];
this.queue[a] = c;
}
return b;
};
N.prototype.del = function(a) {
for (let b = 0, c, d; b < this.queue.length; b++) {
d = this.queue[b], c = this.cache[d], -1 !== c.indexOf(a) && (this.queue.splice(b--, 1), delete this.cache[d]);
}
};
const ha = {memory:{charset:"latin:extra", resolution:3, minlength:3, fastupdate:!1, optimize:"memory"}, performance:{threshold:8, minlength:3, context:{depth:1, bidirectional:!0}}, match:{charset:"latin:extra", tokenize:"full", resolution:3, }, score:{charset:"latin:advanced", threshold:1, context:{depth:3, bidirectional:!0}}, "default":{resolution:3, threshold:0, depth:3}, };
function ka(a, b, c, d, e, f) {
setTimeout(function() {
const g = a(c, JSON.stringify(f));
g && g.then ? g.then(function() {
b.export(a, b, c, d, e + 1);
}) : b.export(a, b, c, d, e + 1);
});
}
;function O(a, b) {
if (!(this instanceof O)) {
return new O(a);
}
var c;
if (a) {
if (z(a)) {
ha[a] || console.warn("Preset not found: " + a), a = ha[a];
} else {
if (c = a.preset) {
c[c] || console.warn("Preset not found: " + c), a = Object.assign({}, c[c], a);
}
}
c = a.charset;
var d = a.lang;
z(c) && (-1 === c.indexOf(":") && (c += ":default"), c = H[c]);
z(d) && (d = G[d]);
} else {
a = {};
}
let e, f, g, k = a.context || {};
this.encode = a.encode || c && c.encode || ba;
this.register = b || y();
e = a.resolution || 9;
f = a.threshold || 0;
f >= e && (f = e - 1);
this.resolution = e;
this.threshold = f;
this.tokenizer = b = c && c.tokenize || a.tokenize || "strict";
this.depth = "strict" === b && k.depth;
this.bidirectional = v(k.bidirectional, !0);
this.optimize = g = "memory" === a.optimize;
this.fastupdate = v(a.fastupdate, !0);
this.minlength = a.minlength || 1;
this.map = g ? x(e - f) : y();
e = k.resolution || e;
f = k.threshold || f;
f >= e && (f = e - 1);
this.resolution_ctx = e;
this.threshold_ctx = f;
this.ctx = g ? x(e - f) : y();
this.rtl = c && c.rtl || a.rtl;
this.matcher = (b = a.matcher || d && d.matcher) && C(b, !1);
this.stemmer = (b = a.stemmer || d && d.stemmer) && C(b, !0);
if (c = b = a.filter || d && d.filter) {
c = b;
d = y();
for (let h = 0, l = c.length; h < l; h++) {
d[c[h]] = 1;
}
c = d;
}
this.filter = c;
this.cache = (b = a.cache) && new N(b);
}
O.prototype.pipeline = function(a, b, c, d) {
if (a) {
b && a && (a = D(a, b));
a && this.matcher && (a = D(a, this.matcher));
this.stemmer && 1 < a.length && (a = D(a, this.stemmer));
if (d && 1 < a.length) {
d = b = "";
for (let e = 0, f = a.length, g; e < f; e++) {
(g = a[e]) !== d && (b += d = g);
}
a = b;
}
if (a && (c || "" === c)) {
a = a.split(c);
if (this.filter) {
c = this.filter;
b = a.length;
d = [];
for (let e = 0, f = 0; e < b; e++) {
const g = a[e];
g && !c[g] && (d[f++] = g);
}
a = d;
}
return a;
}
}
return a;
};
O.prototype.append = function(a, b) {
return this.add(a, b, !0);
};
O.prototype.add = function(a, b, c) {
if (this.register[a] && !c) {
return this.update(a, b);
}
if (b && (a || 0 === a)) {
b = this.encode(b);
const l = b.length;
if (l) {
const n = this.depth, q = this.resolution - this.threshold, r = y(), p = y();
for (let t = 0; t < l; t++) {
let m = b[this.rtl ? l - 1 - t : t];
var d = m.length;
if (m && d >= this.minlength && (n || !r[m])) {
var e = Math.min(this.resolution / l * t | 0, t);
if (e < q) {
var f = "";
switch(this.tokenizer) {
case "full":
if (3 < d) {
for (var g = 0; g < d; g++) {
var k = g ? Math.min(e / 2 + this.resolution / d * g / 2 | 0, e + g) : e;
if (k < q) {
for (var h = d; h > g; h--) {
f = m.substring(g, h), f.length >= this.minlength && this.push_index(r, f, k, a, c);
}
}
}
break;
}
case "reverse":
if (2 < d) {
for (g = d - 1; 0 < g; g--) {
f = m[g] + f, f.length >= this.minlength && this.push_index(r, f, e, a, c);
}
f = "";
}
case "forward":
if (1 < d) {
for (g = 0; g < d; g++) {
f += m[g], f.length >= this.minlength && this.push_index(r, f, e, a, c);
}
}
break;
default:
if (this.push_index(r, m, e, a, c), n && 1 < l && t < l - 1) {
for (d = this.resolution_ctx - this.threshold_ctx, e = y(), f = m, g = Math.min(n + 1, l - t), e[f] = 1, k = 1; k < g; k++) {
if ((m = b[this.rtl ? l - 1 - t - k : t + k]) && m.length >= this.minlength && !e[m]) {
if (e[m] = 1, h = Math.min((this.resolution_ctx - g) / l * t + k | 0, t + (k - 1)), h < d) {
const u = this.bidirectional && m > f;
this.push_index(p, u ? f : m, h, a, c, u ? m : f);
}
} else {
g = Math.min(g + 1, l - t);
}
}
}
}
}
}
}
this.fastupdate || (this.register[a] = 1);
}
}
return this;
};
O.prototype.push_index = function(a, b, c, d, e, f) {
let g = f ? this.ctx : this.map;
if (!a[b] || f && !a[b][f]) {
this.optimize && (g = g[c]), f ? (a = a[b] || (a[b] = y()), a[f] = 1, g = g[f] || (g[f] = y())) : a[b] = 1, g = g[b] || (g[b] = []), this.optimize || (g = g[c] || (g[c] = [])), e && -1 !== g.indexOf(d) || (g[g.length] = d, this.fastupdate && (a = this.register[d] || (this.register[d] = []), a[a.length] = g));
}
};
O.prototype.search = function(a, b, c) {
A(a) ? (c = a, a = c.query) : A(b) && (c = b);
let d = [], e;
var f = this.threshold;
let g, k = 0;
if (c) {
b = c.limit;
k = c.offset || 0;
f = v(c.threshold, f);
var h = c.context;
g = c.suggest;
}
if (a && (a = this.encode(a), e = a.length, 1 < e)) {
c = y();
var l = [];
for (let q = 0, r = 0, p; q < e; q++) {
if ((p = a[q]) && p.length >= this.minlength && !c[p]) {
if (this.optimize || g || this.map[p]) {
l[r++] = p, c[p] = 1;
} else {
return d;
}
}
}
a = l;
e = a.length;
}
if (!e) {
return d;
}
b || (b = 100);
c = this.resolution - f;
f = this.resolution_ctx - f;
h = this.depth && 1 < e && !1 !== h;
l = 0;
let n;
h ? (n = a[0], l = 1) : 1 < e && a.sort(ca);
for (let q, r; l < e; l++) {
r = a[l];
h ? (q = this.add_result(d, g, f, b, k, 2 === e, r, n), g && !1 === q && d.length || (n = r)) : q = this.add_result(d, g, c, b, k, 1 === e, r);
if (q) {
return q;
}
if (g && l === e - 1) {
let p = d.length;
if (!p) {
if (h) {
h = 0;
l = -1;
continue;
}
return d;
}
if (1 === p) {
return la(d[0], b, k);
}
}
}
return da(d, b, k, g);
};
O.prototype.add_result = function(a, b, c, d, e, f, g, k) {
let h = [], l = k ? this.ctx : this.map;
this.optimize || (l = ma(l, g, k, this.bidirectional));
if (l) {
let n = 0;
c = Math.min(l.length, c);
for (let q = 0, r = 0, p, t; q < c && !(p = l[q], this.optimize && (p = ma(p, g, k, this.bidirectional)), p && f && (t = p.length, t <= e ? (e -= t, p = null) : e && (p = p.slice(e), e = 0)), p && (h[n++] = p, f && (r += p.length, r >= d))); q++) {
}
if (n) {
if (f) {
return la(h, d, 0);
}
a[a.length] = h;
return;
}
}
return !b && h;
};
function la(a, b, c) {
a = 1 === a.length ? a[0] : [].concat.apply([], a);
return c || a.length > b ? a.slice(c, c + b) : a;
}
function ma(a, b, c, d) {
c ? (d = d && b > c, a = (a = a[d ? b : c]) && a[d ? c : b]) : a = a[b];
return a;
}
O.prototype.contain = function(a) {
return !!this.register[a];
};
O.prototype.update = function(a, b) {
return this.remove(a).add(a, b);
};
O.prototype.remove = function(a, b) {
const c = this.register[a];
if (c) {
if (this.fastupdate) {
for (let d = 0, e; d < c.length; d++) {
e = c[d], e.splice(e.indexOf(a), 1);
}
} else {
P(this.map, a, this.resolution - this.threshold, this.optimize), this.depth && P(this.ctx, a, this.resolution_ctx - this.threshold_ctx, this.optimize);
}
b || delete this.register[a];
this.cache && this.cache.del(a);
}
return this;
};
function P(a, b, c, d, e) {
let f = 0;
if (a.constructor === Array) {
if (e) {
b = a.indexOf(b), -1 !== b ? 1 < a.length && (a.splice(b, 1), f++) : f++;
} else {
e = Math.min(a.length, c);
for (let g = 0, k; g < e; g++) {
if (k = a[g]) {
f = P(k, b, c, d, e), d || f || delete a[g];
}
}
}
} else {
for (let g in a) {
(f = P(a[g], b, c, d, e)) || delete a[g];
}
}
return f;
}
O.prototype.searchCache = fa;
O.prototype.export = function(a, b, c, d, e) {
let f, g;
switch(e || (e = 0)) {
case 0:
f = "reg";
if (this.fastupdate) {
g = y();
for (let k in this.register) {
g[k] = 1;
}
} else {
g = this.register;
}
break;
case 1:
f = "cfg";
g = {doc:0, opt:this.optimize ? 1 : 0};
break;
case 2:
f = "map";
g = this.map;
break;
case 3:
f = "ctx";
g = this.ctx;
break;
default:
return;
}
ka(a, b || this, c ? c + "." + f : f, d, e, g);
return !0;
};
O.prototype.import = function(a, b) {
if (b) {
switch(z(b) && (b = JSON.parse(b)), a) {
case "cfg":
this.optimize = !!b.opt;
break;
case "reg":
this.fastupdate = !1;
this.register = b;
break;
case "map":
this.map = b;
break;
case "ctx":
this.ctx = b;
}
}
};
J(O.prototype);
function na(a) {
var b = self._index;
a = a.data;
var c = a.args;
const d = a.task;
switch(d) {
case "init":
b = a.options || {};
a = a.factory;
c = b.encode;
b.cache = !1;
c && 0 === c.indexOf("function") && (b.encode = Function("return " + c)());
a ? (Function("return " + a)()(self), self._index = new self.FlexSearch.Index(b), delete self.FlexSearch) : self._index = new O(b);
break;
case "search":
b = b.search.apply(b, c);
postMessage(b);
break;
default:
b[d].apply(b, c);
}
}
;function Q(a, b) {
var c;
A(a) ? b = a : b ? B(c = b.encode) && (b.encode = c.toString()) : b = {};
(a = (self || window)._factory) && (a = a.toString());
c = self.exports;
if (this.worker = oa(a, c)) {
this.resolver = null;
var d = this;
if (c) {
this.worker.on("message", function(e) {
d.resolver(e);
});
} else {
this.worker.onmessage = function(e) {
d.resolver(e.data);
};
}
this.worker.postMessage({task:"init", factory:a, options:b});
}
}
S("add");
S("append");
S("search");
S("update");
S("remove");
function S(a) {
Q.prototype[a] = Q.prototype[a + "Async"] = function() {
const b = this, c = [].slice.call(arguments);
var d = c[c.length - 1];
let e;
B(d) && (e = d, c.splice(c.length - 1, 1));
d = new I(function(f) {
setTimeout(function() {
b.worker.postMessage({task:a, args:c});
"search" === a ? b.resolver = f : f();
});
});
return e ? (d.then(e), this) : d;
};
}
function oa(a, b) {
let c;
try {
c = b ? eval('new (require("worker_threads")["Worker"])("../dist/node/node.js")') : a ? new Worker(URL.createObjectURL(new Blob(["onmessage=" + na.toString()], {type:"text/javascript"}))) : new Worker("worker.js", {type:"module"});
} catch (d) {
}
return c;
}
;function T(a) {
if (!(this instanceof T)) {
return new T(a);
}
var b;
a || (a = {});
this.tree = [];
this.field = [];
this.marker = [];
this.register = y();
this.key = (b = a.key) && U(b, this.marker) || "id";
this.fastupdate = v(a.fastupdate, !0);
this.extern = !!(b = a.extern);
this.storetree = !this.extern && (b = a.store) && !0 !== b && [];
this.store = b && (this.extern ? b : y());
this.tag = (b = a.tag) && U(b, this.marker);
this.tagindex = b && y();
this.cache = (b = a.cache) && new N(b);
a.cache = !1;
this.worker = a.worker;
this.async = !1;
b = a;
a = y();
let c = b.doc;
if (z(c)) {
c = [c];
} else {
if (c.constructor !== Array) {
var d = c;
c = Object.keys(c);
}
}
for (let e = 0, f, g; e < c.length; e++) {
f = c[e], z(f) ? d && (g = d[f]) : (g = f, f = f.field), g = A(g) ? Object.assign({}, b, g) : b, this.worker && (a[f] = new Q(g), a[f].worker || (this.worker = !1)), this.worker || (a[f] = new O(g, this.register)), this.tree[e] = U(f, this.marker), this.field[e] = f;
}
if (this.storetree) {
for (d = b.store, z(d) && (d = [d]), b = 0; b < d.length; b++) {
this.storetree[b] = U(d[b], this.marker);
}
}
this.index = a;
}
function U(a, b) {
const c = a.split(":");
let d = 0;
for (let e = 0; e < c.length; e++) {
a = c[e], 0 <= a.indexOf("[]") && (a = a.substring(0, a.length - 2)) && (b[d] = !0), a && (c[d++] = a);
}
d < c.length && (c.length = d);
return 1 < d ? c : c[0];
}
function pa(a, b) {
if (z(b)) {
a = a[b];
} else {
for (let c = 0; a && c < b.length; c++) {
a = a[b[c]];
}
}
return a;
}
function V(a, b, c, d, e) {
a = a[e];
if (d === c.length - 1) {
b[e] = a;
} else {
if (a) {
if (a.constructor === Array) {
for (b = b[e] = Array(a.length), e = 0; e < a.length; e++) {
V(a, b, c, d, e);
}
} else {
b = b[e] || (b[e] = y()), e = c[++d], V(a, b, c, d, e);
}
}
}
}
function W(a, b, c, d, e, f, g, k) {
a = a[g];
if (d === b.length - 1) {
if (a.constructor === Array) {
if (c[d]) {
for (b = 0; b < a.length; b++) {
e.add(f, a[b], !0);
}
return;
}
a = a.join(" ");
}
e.add(f, a, k);
} else {
if (a) {
if (a.constructor === Array) {
for (g = 0; g < a.length; g++) {
W(a, b, c, d, e, f, g, k);
}
} else {
g = b[++d], W(a, b, c, d, e, f, g, k);
}
}
}
}
T.prototype.add = function(a, b, c) {
A(a) && (b = a, a = pa(b, this.key));
if (b && (a || 0 === a)) {
if (this.register[a]) {
return this.update(a, b);
}
for (let d = 0, e, f; d < this.field.length; d++) {
f = this.field[d], e = this.tree[d], z(e) && (e = [e]), W(b, e, this.marker, 0, this.index[f], a, e[0], c);
}
if (this.tag) {
let d = pa(b, this.tag), e = y();
z(d) && (d = [d]);
for (let f = 0, g, k; f < d.length; f++) {
if (g = d[f], !e[g] && (e[g] = 1, k = this.tagindex[g] || (this.tagindex[g] = []), !c || -1 === k.indexOf(a))) {
if (k[k.length] = a, this.fastupdate) {
const h = this.register[a] || (this.register[a] = []);
h[h.length] = k;
}
}
}
}
if (this.store && !this.extern) {
let d;
if (this.storetree) {
d = y();
for (let e = 0, f; e < this.storetree.length; e++) {
f = this.storetree[e], z(f) ? d[f] = b[f] : V(b, d, f, 0, f[0]);
}
}
this.store[a] = d || b;
}
}
return this;
};
T.prototype.append = function(a, b) {
return this.add(a, b, !0);
};
T.prototype.update = function(a, b) {
return this.remove(a).add(a, b);
};
T.prototype.remove = function(a) {
A(a) && (a = a[this.key]);
if (this.register[a]) {
for (var b = 0; b < this.field.length && (this.index[this.field[b]].remove(a, !0), !this.fastupdate || this.worker); b++) {
}
if (this.tag && (!this.fastupdate || this.worker)) {
for (let c in this.tagindex) {
b = this.tagindex[c];
const d = b.indexOf(a);
-1 !== d && (1 < b.length ? b.splice(d, 1) : delete this.tagindex[c]);
}
}
this.store && !this.extern && delete this.store[a];
delete this.register[a];
}
return this;
};
T.prototype.search = function(a, b, c, d) {
A(a) ? (c = a, a = c.query) : A(b) && (c = b, b = 0);
let e = [], f = [], g, k, h, l, n, q, r, p = 0;
if (c) {
if (c.constructor === Array) {
h = c, c = null;
} else {
if (h = (g = c.pluck) || c.field || c.doc, n = c.tag, k = this.store && c.enrich, q = "and" === c.bool, b = c.limit || 100, r = c.offset || 0, h && (z(h) ? h = [h] : h.constructor !== Array && (l = h, h = Object.keys(h))), n && (z(n) && (n = [n]), !a)) {
for (let m = 0, u; m < n.length; m++) {
if (u = qa.call(this, n[m], b, r, k)) {
e[e.length] = u, p++;
}
}
return p ? e : [];
}
}
}
h || (h = this.field);
q = q && (1 < h.length || n && 1 < n.length);
const t = !d && (this.worker || this.async) && [];
for (let m = 0, u, w, E; m < h.length; m++) {
let K;
w = h[m];
z(w) ? l && (K = l[w]) : (K = w, w = w.field);
if (t) {
t[m] = this.index[w].searchAsync(a, b, K || c);
} else {
u = d ? d[m] : this.index[w].search(a, b, K || c);
E = u.length;
if (n && E) {
const F = [];
let ia = 0;
q && (F[0] = [u]);
for (let R = 0, ja, L; R < n.length; R++) {
if (ja = n[R], E = (L = this.tagindex[ja]) && L.length) {
ia++, F[F.length] = q ? [L] : L;
}
}
ia && (u = q ? da(F, b || 100, r || 0) : ea(u, F), E = u.length);
}
if (E) {
f[p] = w, e[p++] = u;
} else {
if (q) {
return [];
}
}
}
}
if (t) {
const m = this;
return new Promise(function(u) {
Promise.all(t).then(function(w) {
u(m.search(a, b, c, w));
});
});
}
if (!p) {
return [];
}
if (g && (!k || !this.store)) {
return e[0];
}
for (let m = 0, u; m < f.length; m++) {
u = e[m];
u.length && k && (u = ra.call(this, u));
if (g) {
return u;
}
e[m] = {field:f[m], result:u};
}
return e;
};
function qa(a, b, c, d) {
let e = this.tagindex[a], f = e && e.length - c;
if (f && 0 < f) {
if (f > b || c) {
e = e.slice(c, c + b);
}
d && (e = ra.call(this, e));
return {tag:a, result:e};
}
}
function ra(a) {
const b = Array(a.length);
for (let c = 0, d; c < a.length; c++) {
d = a[c], b[c] = {key:d, doc:this.store[d]};
}
return b;
}
T.prototype.contain = function(a) {
return !!this.register[a];
};
T.prototype.get = function(a) {
return this.store[a];
};
T.prototype.set = function(a, b) {
this.store[a] = b;
return this;
};
T.prototype.searchCache = fa;
T.prototype.export = function(a, b, c, d, e) {
e || (e = 0);
d || (d = 0);
if (d < this.field.length) {
const f = this.field[d], g = this.index[f];
b = this;
setTimeout(function() {
g.export(a, b, e ? f.replace(":", "-") : "", d, e++) || (d++, e = 1, b.export(a, b, f, d, e));
});
} else {
let f;
switch(e) {
case 1:
c = "tag";
f = this.tagindex;
break;
case 2:
c = "store";
f = this.store;
break;
default:
return;
}
ka(a, this, c, d, e, f);
}
};
T.prototype.import = function(a, b) {
if (b) {
switch(z(b) && (b = JSON.parse(b)), a) {
case "tag":
this.tagindex = b;
break;
case "reg":
this.fastupdate = !1;
this.register = b;
for (let d = 0, e; d < this.field.length; d++) {
e = this.index[this.field[d]], e.register = b, e.fastupdate = !1;
}
break;
case "store":
this.store = b;
break;
default:
a = a.split(".");
const c = a[0];
a = a[1];
c && a && this.index[c].import(a, b);
}
}
};
J(T.prototype);
const X = self;
let Y;
const Z = {Index:O, Document:T, Worker:Q, registerCharset:function(a, b) {
H[a] = b;
}, registerLanguage:function(a, b) {
G[a] = b;
}};
(Y = X.define) && Y.amd ? Y([], function() {
return Z;
}) : X.exports ? X.exports = Z : X.FlexSearch = Z;
}(this));

44
dist/flexsearch.es5.js vendored Normal file
View File

@@ -0,0 +1,44 @@
/**!
* FlexSearch.js v0.7.0-beta (ES5)
* Copyright 2019 Nextapps GmbH
* Author: Thomas Wilkerling
* Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch
*/
(function(self){'use strict';var u;function v(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}var y="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};
function aa(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var A=aa(this);function B(a,b){if(b)a:{var c=A;a=a.split(".");for(var d=0;d<a.length-1;d++){var f=a[d];if(!(f in c))break a;c=c[f]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&y(c,a,{configurable:!0,writable:!0,value:b})}}
B("Symbol",function(a){function b(g){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new c(d+(g||"")+"_"+f++,g)}function c(g,e){this.g=g;y(this,"description",{configurable:!0,writable:!0,value:e})}if(a)return a;c.prototype.toString=function(){return this.g};var d="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",f=0;return b});
B("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c<b.length;c++){var d=A[b[c]];"function"===typeof d&&"function"!=typeof d.prototype[a]&&y(d.prototype,a,{configurable:!0,writable:!0,value:function(){return ba(v(this))}})}return a});function ba(a){a={next:a};a[Symbol.iterator]=function(){return this};return a}
function ca(a,b){a instanceof String&&(a+="");var c=0,d=!1,f={next:function(){if(!d&&c<a.length){var g=c++;return{value:b(g,a[g]),done:!1}}d=!0;return{done:!0,value:void 0}}};f[Symbol.iterator]=function(){return f};return f}B("Array.prototype.keys",function(a){return a?a:function(){return ca(this,function(b){return b})}});function C(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):{next:v(a)}}
B("Promise",function(a){function b(e){this.h=0;this.i=void 0;this.g=[];this.B=!1;var h=this.j();try{e(h.resolve,h.reject)}catch(k){h.reject(k)}}function c(){this.g=null}function d(e){return e instanceof b?e:new b(function(h){h(e)})}if(a)return a;c.prototype.h=function(e){if(null==this.g){this.g=[];var h=this;this.i(function(){h.o()})}this.g.push(e)};var f=A.setTimeout;c.prototype.i=function(e){f(e,0)};c.prototype.o=function(){for(;this.g&&this.g.length;){var e=this.g;this.g=[];for(var h=0;h<e.length;++h){var k=
e[h];e[h]=null;try{k()}catch(l){this.j(l)}}}this.g=null};c.prototype.j=function(e){this.i(function(){throw e;})};b.prototype.j=function(){function e(l){return function(n){k||(k=!0,l.call(h,n))}}var h=this,k=!1;return{resolve:e(this.K),reject:e(this.o)}};b.prototype.K=function(e){if(e===this)this.o(new TypeError("A Promise cannot resolve to itself"));else if(e instanceof b)this.M(e);else{a:switch(typeof e){case "object":var h=null!=e;break a;case "function":h=!0;break a;default:h=!1}h?this.J(e):this.A(e)}};
b.prototype.J=function(e){var h=void 0;try{h=e.then}catch(k){this.o(k);return}"function"==typeof h?this.N(h,e):this.A(e)};b.prototype.o=function(e){this.D(2,e)};b.prototype.A=function(e){this.D(1,e)};b.prototype.D=function(e,h){if(0!=this.h)throw Error("Cannot settle("+e+", "+h+"): Promise already settled in state"+this.h);this.h=e;this.i=h;2===this.h&&this.L();this.P()};b.prototype.L=function(){var e=this;f(function(){if(e.R()){var h=A.console;"undefined"!==typeof h&&h.error(e.i)}},1)};b.prototype.R=
function(){if(this.B)return!1;var e=A.CustomEvent,h=A.Event,k=A.dispatchEvent;if("undefined"===typeof k)return!0;"function"===typeof e?e=new e("unhandledrejection",{cancelable:!0}):"function"===typeof h?e=new h("unhandledrejection",{cancelable:!0}):(e=A.document.createEvent("CustomEvent"),e.initCustomEvent("unhandledrejection",!1,!0,e));e.promise=this;e.reason=this.i;return k(e)};b.prototype.P=function(){if(null!=this.g){for(var e=0;e<this.g.length;++e)g.h(this.g[e]);this.g=null}};var g=new c;b.prototype.M=
function(e){var h=this.j();e.F(h.resolve,h.reject)};b.prototype.N=function(e,h){var k=this.j();try{e.call(h,k.resolve,k.reject)}catch(l){k.reject(l)}};b.prototype.then=function(e,h){function k(m,p){return"function"==typeof m?function(r){try{l(m(r))}catch(t){n(t)}}:p}var l,n,q=new b(function(m,p){l=m;n=p});this.F(k(e,l),k(h,n));return q};b.prototype.catch=function(e){return this.then(void 0,e)};b.prototype.F=function(e,h){function k(){switch(l.h){case 1:e(l.i);break;case 2:h(l.i);break;default:throw Error("Unexpected state: "+
l.h);}}var l=this;null==this.g?g.h(k):this.g.push(k);this.B=!0};b.resolve=d;b.reject=function(e){return new b(function(h,k){k(e)})};b.race=function(e){return new b(function(h,k){for(var l=C(e),n=l.next();!n.done;n=l.next())d(n.value).F(h,k)})};b.all=function(e){var h=C(e),k=h.next();return k.done?d([]):new b(function(l,n){function q(r){return function(t){m[r]=t;p--;0==p&&l(m)}}var m=[],p=0;do m.push(void 0),p++,d(k.value).F(q(m.length-1),n),k=h.next();while(!k.done)})};return b});
var da="function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var f in d)Object.prototype.hasOwnProperty.call(d,f)&&(a[f]=d[f])}return a};B("Object.assign",function(a){return a||da});var E=/[\W_]+/;function ea(a){if(a=a.toLowerCase())if(a&&this.G&&(a=fa(a,this.G)),this.I&&1<a.length&&(a=fa(a,this.I)),a&&(E||""===E)&&(a=a.split(E),this.filter)){for(var b=this.filter,c=a.length,d=[],f=0,g=0;f<c;f++){var e=a[f];e&&!b[e]&&(d[g++]=e)}a=d}return a};function F(a,b){return"undefined"!==typeof a?a:b}function ha(a){for(var b=Array(a),c=0;c<a;c++)b[c]=G();return b}function G(){return Object.create(null)}function ia(a,b){return b.length-a.length}function H(a){return"string"===typeof a}function I(a){return"object"===typeof a}function K(a){return"function"===typeof a};function ja(a,b){for(var c=Object.keys(a),d=c.length,f=[],g="",e=0,h=0,k,l;h<d;h++)k=c[h],(l=a[k])?(f[e++]=new RegExp(b?"(?!\\b)"+k+"(\\b|_)":k,"g"),f[e++]=l):g+=(g?"|":"")+k;g&&(f[e++]=new RegExp(b?"(?!\\b)("+g+")(\\b|_)":"("+g+")","g"),f[e]="");return f}function fa(a,b){for(var c=0,d=b.length;c<d&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a};var ka={},la={};var ma=Promise;function na(a){L(a,"add");L(a,"append");L(a,"search");L(a,"update");L(a,"remove")}function L(a,b){a[b+"Async"]=function(){var c=this,d=arguments,f=d[d.length-1];if(K(f)){var g=f;delete d[d.length-1]}f=new ma(function(e){setTimeout(function(){c.async=!0;e(c[b].apply(c,d));c.async=!1})});return g?(f.then(g),this):f}};function oa(a,b,c,d){var f=a.length,g=[],e=0;d&&(d=[]);for(--f;0<=f;f--){for(var h=a[f],k=h.length,l=G(),n=!w,q=0;q<k;q++){var m=h[q],p=m.length;if(p)for(var r=0,t=0,x;r<p;r++)if(x=m[r],!w)l[x]=1;else if(w[x]){if(f)d&&t<b&&((d[q]||(d[q]=[]))[t++]=x),l[x]=1;else if(c)c--;else if(g[e++]=x,e===b)return g;n=!0}}if(!n&&!d)return[];var w=l}if(d)for(a=d.length-1;0<=a;a--)if((f=(w=d[a])&&w.length)&&c&&(f<=c?(c-=f,f=0):f-=c),f){if(e+f>=b)return g.concat(w.slice(c,b-e+c));g=g.concat(c?w.slice(c):w);e+=f;c=
0}return g}function qa(a,b){for(var c=G(),d=G(),f=[],g=0;g<a.length;g++)c[a[g]]=1;for(a=0;a<b.length;a++){g=b[a];for(var e=0,h;e<g.length;e++)h=g[e],c[h]&&!d[h]&&(d[h]=1,f[f.length]=h)}return f};function M(a){this.h=!0!==a&&a;this.cache=G();this.g=[]}function ra(a,b,c){I(a)&&(a=a.query);var d=this.cache.get(a);d||(d=this.search(a,b,c),this.cache.set(a,d));return d}M.prototype.set=function(a,b){if(!this.cache[a]){var c=this.g.length;c===this.h?delete this.cache[this.g[c-1]]:c++;for(--c;0<c;c--)this.g[c]=this.g[c-1];this.g[0]=a}this.cache[a]=b};M.prototype.get=function(a){var b=this.cache[a];if(this.h&&b&&(a=this.g.indexOf(a))){var c=this.g[a-1];this.g[a-1]=this.g[a];this.g[a]=c}return b};var sa={memory:{charset:"latin:extra",v:3,u:3,m:!1,s:"memory"},performance:{threshold:8,u:3,context:{depth:1,C:!0}},match:{charset:"latin:extra",O:"full",v:3},score:{charset:"latin:advanced",threshold:1,context:{depth:3,C:!0}},"default":{v:3,threshold:0,depth:3}};function ta(a,b,c,d,f,g){setTimeout(function(){var e=a(c,JSON.stringify(g));e&&e.then?e.then(function(){b.export(a,b,c,d,f+1)}):b.export(a,b,c,d,f+1)})};function N(a,b){if(!(this instanceof N))return new N(a);var c;if(a){H(a)?a=sa[a]:(c=a.preset)&&(a=Object.assign({},c[c],a));c=a.charset;var d=a.lang;H(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=la[c]);H(d)&&(d=ka[d])}else a={};var f,g=a.context||{};this.encode=a.encode||c&&c.encode||ea;this.register=b||G();var e=a.resolution||9;var h=a.threshold||0;h>=e&&(h=e-1);this.v=e;this.threshold=h;this.j=b=c&&c.O||a.tokenize||"strict";this.depth="strict"===b&&g.depth;this.C=F(g.bidirectional,!0);this.s=f=
"memory"===a.optimize;this.m=F(a.fastupdate,!0);this.u=a.minlength||1;this.map=f?ha(e-h):G();e=g.resolution||e;h=g.threshold||h;h>=e&&(h=e-1);this.h=e;this.i=h;this.g=f?ha(e-h):G();this.H=c&&c.H||a.rtl;this.G=(b=a.matcher||d&&d.G)&&ja(b,!1);this.I=(b=a.stemmer||d&&d.I)&&ja(b,!0);if(c=b=a.filter||d&&d.filter){c=b;d=G();g=0;for(e=c.length;g<e;g++)d[c[g]]=1;c=d}this.filter=c;this.cache=(b=a.cache)&&new M(b)}u=N.prototype;u.append=function(a,b){return this.add(a,b,!0)};
u.add=function(a,b,c){if(this.register[a]&&!c)return this.update(a,b);if(b&&(a||0===a)){b=this.encode(b);var d=b.length;if(d){for(var f=this.depth,g=this.v-this.threshold,e=G(),h=G(),k=0;k<d;k++){var l=b[this.H?d-1-k:k],n=l.length;if(l&&n>=this.u&&(f||!e[l])){var q=Math.min(this.v/d*k|0,k);if(q<g){var m="";switch(this.j){case "full":if(3<n){for(var p=0;p<n;p++){var r=p?Math.min(q/2+this.v/n*p/2|0,q+p):q;if(r<g)for(var t=n;t>p;t--)m=l.substring(p,t),m.length>=this.u&&O(this,e,m,r,a,c)}break}case "reverse":if(2<
n){for(p=n-1;0<p;p--)m=l[p]+m,m.length>=this.u&&O(this,e,m,q,a,c);m=""}case "forward":if(1<n)for(p=0;p<n;p++)m+=l[p],m.length>=this.u&&O(this,e,m,q,a,c);break;default:if(O(this,e,l,q,a,c),f&&1<d&&k<d-1)for(n=this.h-this.i,q=G(),m=l,p=Math.min(f+1,d-k),r=q[m]=1;r<p;r++)if((l=b[this.H?d-1-k-r:k+r])&&l.length>=this.u&&!q[l]){if(q[l]=1,t=Math.min((this.h-p)/d*k+r|0,k+(r-1)),t<n){var x=this.C&&l>m;O(this,h,x?m:l,t,a,c,x?l:m)}}else p=Math.min(p+1,d-k)}}}}this.m||(this.register[a]=1)}}return this};
function O(a,b,c,d,f,g,e){var h=e?a.g:a.map;if(!b[c]||e&&!b[c][e])a.s&&(h=h[d]),e?(b=b[c]||(b[c]=G()),b[e]=1,h=h[e]||(h[e]=G())):b[c]=1,h=h[c]||(h[c]=[]),a.s||(h=h[d]||(h[d]=[])),g&&-1!==h.indexOf(f)||(h[h.length]=f,a.m&&(a=a.register[f]||(a.register[f]=[]),a[a.length]=h))}
u.search=function(a,b,c){I(a)?(c=a,a=c.query):I(b)&&(c=b);var d=[],f=this.threshold,g=0;if(c){b=c.limit;g=c.offset||0;f=F(c.threshold,f);var e=c.context;var h=c.suggest}if(a){a=this.encode(a);var k=a.length;if(1<k){c=G();for(var l=[],n=0,q=0,m;n<k;n++)if((m=a[n])&&m.length>=this.u&&!c[m])if(this.s||h||this.map[m])l[q++]=m,c[m]=1;else return d;a=l;k=a.length}}if(!k)return d;b||(b=100);c=this.v-f;f=this.h-f;e=this.depth&&1<k&&!1!==e;l=0;if(e){var p=a[0];l=1}else 1<k&&a.sort(ia);for(;l<k;l++){q=a[l];
e?(n=ua(this,d,h,f,b,g,2===k,q,p),h&&!1===n&&d.length||(p=q)):n=ua(this,d,h,c,b,g,1===k,q);if(n)return n;if(h&&l===k-1){n=d.length;if(!n){if(e){e=0;l=-1;continue}return d}if(1===n)return va(d[0],b,g)}}return oa(d,b,g,h)};
function ua(a,b,c,d,f,g,e,h,k){var l=[],n=k?a.g:a.map;a.s||(n=wa(n,h,k,a.C));if(n){var q=0;d=Math.min(n.length,d);for(var m=0,p=0,r,t;m<d&&!(r=n[m],a.s&&(r=wa(r,h,k,a.C)),r&&e&&(t=r.length,t<=g?(g-=t,r=null):g&&(r=r.slice(g),g=0)),r&&(l[q++]=r,e&&(p+=r.length,p>=f)));m++);if(q){if(e)return va(l,f,0);b[b.length]=l;return}}return!c&&l}function va(a,b,c){a=1===a.length?a[0]:[].concat.apply([],a);return c||a.length>b?a.slice(c,c+b):a}
function wa(a,b,c,d){c?(d=d&&b>c,a=(a=a[d?b:c])&&a[d?c:b]):a=a[b];return a}u.contain=function(a){return!!this.register[a]};u.update=function(a,b){return this.remove(a).add(a,b)};
u.remove=function(a,b){var c=this.register[a];if(c){if(this.m)for(var d=0,f;d<c.length;d++)f=c[d],f.splice(f.indexOf(a),1);else P(this.map,a,this.v-this.threshold,this.s),this.depth&&P(this.g,a,this.h-this.i,this.s);b||delete this.register[a];if(this.cache)for(b=this.cache,c=0;c<b.g.length;c++)f=b.g[c],d=b.cache[f],-1!==d.indexOf(a)&&(b.g.splice(c--,1),delete b.cache[f])}return this};
function P(a,b,c,d,f){var g=0;if(a.constructor===Array)if(f)b=a.indexOf(b),-1!==b?1<a.length&&(a.splice(b,1),g++):g++;else{f=Math.min(a.length,c);for(var e=0,h;e<f;e++)if(h=a[e])g=P(h,b,c,d,f),d||g||delete a[e]}else for(e in a)(g=P(a[e],b,c,d,f))||delete a[e];return g}u.searchCache=ra;
u.export=function(a,b,c,d,f){switch(f||(f=0)){case 0:var g="reg";if(this.m){var e=G();for(var h in this.register)e[h]=1}else e=this.register;break;case 1:g="cfg";e={doc:0,opt:this.s?1:0};break;case 2:g="map";e=this.map;break;case 3:g="ctx";e=this.g;break;default:return}ta(a,b||this,c?c+"."+g:g,d,f,e);return!0};u.import=function(a,b){if(b)switch(H(b)&&(b=JSON.parse(b)),a){case "cfg":this.s=!!b.opt;break;case "reg":this.m=!1;this.register=b;break;case "map":this.map=b;break;case "ctx":this.g=b}};na(N.prototype);function xa(a){var b=self._index;a=a.data;var c=a.args,d=a.task;switch(d){case "init":b=a.options||{};a=a.factory;c=b.encode;b.cache=!1;c&&0===c.indexOf("function")&&(b.encode=Function("return "+c)());a?(Function("return "+a)()(self),self._index=new self.FlexSearch.Index(b),delete self.FlexSearch):self._index=new N(b);break;case "search":b=b.search.apply(b,c);postMessage(b);break;default:b[d].apply(b,c)}};function Q(a,b){var c;I(a)?b=a:b?K(c=b.encode)&&(b.encode=c.toString()):b={};(a=(self||window)._factory)&&(a=a.toString());c=self.exports;if(this.l=ya(a,c)){this.g=null;var d=this;if(c)this.l.on("message",function(f){d.g(f)});else this.l.onmessage=function(f){d.g(f.data)};this.l.postMessage({task:"init",factory:a,options:b})}}R("add");R("append");R("search");R("update");R("remove");
function R(a){Q.prototype[a]=Q.prototype[a+"Async"]=function(){var b=this,c=[].slice.call(arguments),d=c[c.length-1];if(K(d)){var f=d;c.splice(c.length-1,1)}d=new ma(function(g){setTimeout(function(){b.l.postMessage({task:a,args:c});"search"===a?b.g=g:g()})});return f?(d.then(f),this):d}}
function ya(a,b){try{var c=b?eval('new (require("worker_threads")["Worker"])("../dist/node/node.js")'):a?new Worker(URL.createObjectURL(new Blob(["onmessage="+xa.toString()],{type:"text/javascript"}))):new Worker("worker.js",{type:"module"})}catch(d){}return c};function S(a){if(!(this instanceof S))return new S(a);var b;a||(a={});this.D=[];this.g=[];this.j=[];this.register=G();this.key=(b=a.key)&&T(b,this.j)||"id";this.m=F(a.fastupdate,!0);this.A=!!(b=a.extern);this.o=!this.A&&(b=a.store)&&!0!==b&&[];this.store=b&&(this.A?b:G());this.B=(b=a.tag)&&T(b,this.j);this.h=b&&G();this.cache=(b=a.cache)&&new M(b);a.cache=!1;this.l=a.worker;this.async=!1;b=a;a=G();var c=b.doc;if(H(c))c=[c];else if(c.constructor!==Array){var d=c;c=Object.keys(c)}for(var f=0,g,e=void 0;f<
c.length;f++)g=c[f],H(g)?d&&(e=d[g]):(e=g,g=g.field),e=I(e)?Object.assign({},b,e):b,this.l&&(a[g]=new Q(e),a[g].l||(this.l=!1)),this.l||(a[g]=new N(e,this.register)),this.D[f]=T(g,this.j),this.g[f]=g;if(this.o)for(d=b.store,H(d)&&(d=[d]),b=0;b<d.length;b++)this.o[b]=T(d[b],this.j);this.i=a}function T(a,b){for(var c=a.split(":"),d=0,f=0;f<c.length;f++)a=c[f],0<=a.indexOf("[]")&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}
function za(a,b){if(H(b))a=a[b];else for(var c=0;a&&c<b.length;c++)a=a[b[c]];return a}function U(a,b,c,d,f){a=a[f];if(d===c.length-1)b[f]=a;else if(a)if(a.constructor===Array)for(b=b[f]=Array(a.length),f=0;f<a.length;f++)U(a,b,c,d,f);else b=b[f]||(b[f]=G()),f=c[++d],U(a,b,c,d,f)}
function W(a,b,c,d,f,g,e,h){a=a[e];if(d===b.length-1){if(a.constructor===Array){if(c[d]){for(b=0;b<a.length;b++)f.add(g,a[b],!0);return}a=a.join(" ")}f.add(g,a,h)}else if(a)if(a.constructor===Array)for(e=0;e<a.length;e++)W(a,b,c,d,f,g,e,h);else e=b[++d],W(a,b,c,d,f,g,e,h)}u=S.prototype;
u.add=function(a,b,c){I(a)&&(b=a,a=za(b,this.key));if(b&&(a||0===a)){if(this.register[a])return this.update(a,b);for(var d=0,f,g;d<this.g.length;d++)g=this.g[d],f=this.D[d],H(f)&&(f=[f]),W(b,f,this.j,0,this.i[g],a,f[0],c);if(this.B){d=za(b,this.B);f=G();H(d)&&(d=[d]);g=0;for(var e;g<d.length;g++)if(e=d[g],!f[e]&&(f[e]=1,e=this.h[e]||(this.h[e]=[]),!c||-1===e.indexOf(a)))if(e[e.length]=a,this.m){var h=this.register[a]||(this.register[a]=[]);h[h.length]=e}}if(this.store&&!this.A){if(this.o){var k=G();
for(c=0;c<this.o.length;c++)d=this.o[c],H(d)?k[d]=b[d]:U(b,k,d,0,d[0])}this.store[a]=k||b}}return this};u.append=function(a,b){return this.add(a,b,!0)};u.update=function(a,b){return this.remove(a).add(a,b)};
u.remove=function(a){I(a)&&(a=a[this.key]);if(this.register[a]){for(var b=0;b<this.g.length&&(this.i[this.g[b]].remove(a,!0),!this.m||this.l);b++);if(this.B&&(!this.m||this.l))for(var c in this.h){b=this.h[c];var d=b.indexOf(a);-1!==d&&(1<b.length?b.splice(d,1):delete this.h[c])}this.store&&!this.A&&delete this.store[a];delete this.register[a]}return this};
u.search=function(a,b,c,d){I(a)?(c=a,a=c.query):I(b)&&(c=b,b=0);var f=[],g=[],e,h=0;if(c)if(c.constructor===Array){var k=c;c=null}else{k=(e=c.pluck)||c.field||c.doc;var l=c.tag;var n=this.store&&c.enrich;var q="and"===c.bool;b=c.limit||100;var m=c.offset||0;if(k)if(H(k))k=[k];else if(k.constructor!==Array){var p=k;k=Object.keys(k)}if(l&&(H(l)&&(l=[l]),!a)){g=0;for(e=void 0;g<l.length;g++)if(e=Aa.call(this,l[g],b,m,n))f[f.length]=e,h++;return h?f:[]}}k||(k=this.g);q=q&&(1<k.length||l&&1<l.length);
for(var r=!d&&(this.l||this.async)&&[],t=0,x=void 0,w=void 0,z=void 0;t<k.length;t++)if(z=void 0,w=k[t],H(w)?p&&(z=p[w]):(z=w,w=w.field),r)r[t]=this.i[w].searchAsync(a,b,z||c);else{d?x=d[t]:x=this.i[w].search(a,b,z||c);z=x.length;if(l&&z){var J=[],pa=0;q&&(J[0]=[x]);var V=0,D=void 0;for(D=void 0;V<l.length;V++)if(D=l[V],z=(D=this.h[D])&&D.length)pa++,J[J.length]=q?[D]:D;pa&&(x=q?oa(J,b||100,m||0):qa(x,J),z=x.length)}if(z)g[h]=w,f[h++]=x;else if(q)return[]}if(r){var Ca=this;return new Promise(function(Da){Promise.all(r).then(function(Ea){Da(Ca.search(a,
b,c,Ea))})})}if(!h)return[];if(e&&(!n||!this.store))return f[0];l=0;for(m=void 0;l<g.length;l++){m=f[l];m.length&&n&&(m=Ba.call(this,m));if(e)return m;f[l]={field:g[l],result:m}}return f};function Aa(a,b,c,d){var f=this.h[a],g=f&&f.length-c;if(g&&0<g){if(g>b||c)f=f.slice(c,c+b);d&&(f=Ba.call(this,f));return{tag:a,result:f}}}function Ba(a){for(var b=Array(a.length),c=0,d;c<a.length;c++)d=a[c],b[c]={key:d,doc:this.store[d]};return b}u.contain=function(a){return!!this.register[a]};u.get=function(a){return this.store[a]};
u.set=function(a,b){this.store[a]=b;return this};u.searchCache=ra;u.export=function(a,b,c,d,f){f||(f=0);d||(d=0);if(d<this.g.length){var g=this.g[d],e=this.i[g];b=this;setTimeout(function(){e.export(a,b,f?g.replace(":","-"):"",d,f++)||(d++,f=1,b.export(a,b,g,d,f))})}else{switch(f){case 1:c="tag";var h=this.h;break;case 2:c="store";h=this.store;break;default:return}ta(a,this,c,d,f,h)}};
u.import=function(a,b){if(b)switch(H(b)&&(b=JSON.parse(b)),a){case "tag":this.h=b;break;case "reg":this.m=!1;this.register=b;a=0;for(var c;a<this.g.length;a++)c=this.i[this.g[a]],c.register=b,c.m=!1;break;case "store":this.store=b;break;default:a=a.split("."),c=a[0],a=a[1],c&&a&&this.i[c].import(a,b)}};na(S.prototype);var X=self,Y,Z={Index:N,Document:S,Worker:Q,registerCharset:function(a,b){la[a]=b},registerLanguage:function(a,b){ka[a]=b}};(Y=X.define)&&Y.amd?Y([],function(){return Z}):X.exports?X.exports=Z:X.FlexSearch=Z;}(this));

View File

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

View File

@@ -17,36 +17,36 @@
"url": "https://github.com/nextapps-de/flexsearch/issues", "url": "https://github.com/nextapps-de/flexsearch/issues",
"email": "info@nextapps.de" "email": "info@nextapps.de"
}, },
"main": "dist/flexsearch.min.js", "main": "dist/flexsearch.bundle.js",
"browser": "dist/flexsearch.min.js", "browser": "dist/flexsearch.bundle.js",
"types": "index.d.ts",
"preferGlobal": false, "preferGlobal": false,
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/nextapps-de/flexsearch.git" "url": "https://github.com/nextapps-de/flexsearch.git"
}, },
"scripts": { "scripts": {
"build": "node task/build RELEASE=min DEBUG=false PROFILER=false POLYFILL=true SUPPORT_WORKER=true SUPPORT_ENCODER=true SUPPORT_LANG=false SUPPORT_CACHE=true SUPPORT_ASYNC=true SUPPORT_PRESET=true SUPPORT_SUGGESTION=true SUPPORT_SERIALIZE=true SUPPORT_INFO=true SUPPORT_DOCUMENT=true SUPPORT_OPERATOR=true SUPPORT_WHERE=true SUPPORT_PAGINATION=true", "copy": "npm run clean && cpx \"src/**\" tmp/",
"build:debug": "node task/build RELEASE=debug DEBUG=true PROFILER=false POLYFILL=true SUPPORT_WORKER=true SUPPORT_ENCODER=true SUPPORT_LANG=true SUPPORT_CACHE=true SUPPORT_ASYNC=true SUPPORT_PRESET=true SUPPORT_SUGGESTION=true SUPPORT_SERIALIZE=true SUPPORT_INFO=true SUPPORT_DOCUMENT=true SUPPORT_OPERATOR=true SUPPORT_WHERE=true SUPPORT_PAGINATION=true", "clean": "if exist tmp rmdir tmp /s /q && mkdir tmp",
"build:compact": "node task/build RELEASE=compact DEBUG=false PROFILER=false POLYFILL=true SUPPORT_WORKER=false SUPPORT_ENCODER=true SUPPORT_LANG=false SUPPORT_CACHE=false SUPPORT_ASYNC=true SUPPORT_PRESET=true SUPPORT_SUGGESTION=false SUPPORT_SERIALIZE=false SUPPORT_INFO=false SUPPORT_DOCUMENT=true SUPPORT_OPERATOR=true SUPPORT_WHERE=false SUPPORT_PAGINATION=false", "build": "npm run copy && npm run build:bundle",
"build:light": "node task/build RELEASE=light DEBUG=false PROFILER=false POLYFILL=true SUPPORT_WORKER=false SUPPORT_ENCODER=false SUPPORT_LANG=false SUPPORT_CACHE=false SUPPORT_ASYNC=false SUPPORT_PRESET=false SUPPORT_SUGGESTION=false SUPPORT_SERIALIZE=false SUPPORT_INFO=false SUPPORT_DOCUMENT=false SUPPORT_OPERATOR=false SUPPORT_WHERE=false SUPPORT_PAGINATION=false", "build:bundle": "cpx src/config/bundle/config.js tmp/ && node task/build RELEASE=bundle",
"build:custom": "node task/build RELEASE=custom DEBUG=false PROFILER=false POLYFILL=false SUPPORT_WORKER=false SUPPORT_ENCODER=false SUPPORT_LANG=false SUPPORT_CACHE=false SUPPORT_ASYNC=false SUPPORT_PRESET=false SUPPORT_SUGGESTION=false SUPPORT_SERIALIZE=false SUPPORT_INFO=false SUPPORT_DOCUMENT=false SUPPORT_OPERATOR=false SUPPORT_WHERE=false SUPPORT_PAGINATION=false", "build:debug": "cpx src/config/debug/config.js tmp/ && node task/build RELEASE=debug COMPILATION_LEVEL=SIMPLE FORMATTING=PRETTY_PRINT",
"build:es5": "node task/build RELEASE=es5 DEBUG=true PROFILER=false POLYFILL=true SUPPORT_WORKER=true SUPPORT_ENCODER=true SUPPORT_LANG=false SUPPORT_CACHE=true SUPPORT_ASYNC=true SUPPORT_PRESET=true SUPPORT_SUGGESTION=true SUPPORT_SERIALIZE=true SUPPORT_INFO=true SUPPORT_DOCUMENT=true SUPPORT_OPERATOR=true SUPPORT_WHERE=true SUPPORT_PAGINATION=true LANGUAGE_OUT=ECMASCRIPT5_STRICT", "build:compact": "cpx src/config/compact/config.js tmp/ && node task/build RELEASE=compact",
"build:node": "node task/build RELEASE=node DEBUG=false PROFILER=false POLYFILL=false SUPPORT_WORKER=false SUPPORT_ENCODER=true SUPPORT_LANG=false SUPPORT_CACHE=true SUPPORT_ASYNC=true SUPPORT_PRESET=true SUPPORT_SUGGESTION=true SUPPORT_SERIALIZE=true SUPPORT_INFO=true SUPPORT_DOCUMENT=true SUPPORT_OPERATOR=true SUPPORT_WHERE=true SUPPORT_PAGINATION=true", "build:light": "cpx src/config/light/config.js tmp/ && node task/build RELEASE=light",
"build:pre": "node task/build RELEASE=pre DEBUG=false PROFILER=false POLYFILL=true SUPPORT_WORKER=false SUPPORT_ENCODER=true SUPPORT_LANG=true SUPPORT_CACHE=true SUPPORT_ASYNC=true SUPPORT_PRESET=true SUPPORT_SUGGESTION=true SUPPORT_SERIALIZE=true SUPPORT_INFO=true SUPPORT_DOCUMENT=true SUPPORT_OPERATOR=true SUPPORT_WHERE=true SUPPORT_PAGINATION=true FORMATTING=PRETTY_PRINT", "build:custom": "cpx src/config/custom/config.js tmp/ && node task/build RELEASE=custom",
"build:es5": "cpx src/config/bundle/config.js tmp/ && node task/build RELEASE=es5 LANGUAGE_OUT=ECMASCRIPT5_STRICT POLYFILL=true",
"build:pre": "cpx src/config/bundle/config.js tmp/ && node task/build RELEASE=pre COMPILATION_LEVEL=WHITESPACE FORMATTING=PRETTY_PRINT",
"build:lang": "node task/build RELEASE=lang POLYFILL=false", "build:lang": "node task/build RELEASE=lang POLYFILL=false",
"build:module": "babel src -d dist/module && exit 0", "build:module": "babel src -d dist/module && exit 0",
"build:all": "npm run build && npm run build:light && npm run build:compact && npm run build:es5 && npm run build:node && npm run build:pre && npm run build:debug && npm run build:lang && npm run build:module", "build:all": "npm run build && npm run build:light && npm run build:compact && npm run build:es5 && npm run build:pre && npm run build:debug",
"test": "npm run build:pre && cd test && npm install && npm run test", "test": "npm run build:pre && cd test && npm install && npm run test",
"update": "npm install google-closure-compiler@nightly" "update": "npm install google-closure-compiler@nightly"
}, },
"files": [ "files": [
"flexsearch.js",
"dist/**", "dist/**",
"src/**", "src/**",
"task/**",
"test/", "test/",
"index.d.ts", "index.d.ts",
"compile.js",
"README.md", "README.md",
"CHANGELOG.md", "CHANGELOG.md",
"LICENSE" "LICENSE"
@@ -70,6 +70,7 @@
"babel-plugin-transform-property-literals": "^6.9.4", "babel-plugin-transform-property-literals": "^6.9.4",
"babel-plugin-transform-simplify-comparison-operators": "^6.9.4", "babel-plugin-transform-simplify-comparison-operators": "^6.9.4",
"babel-plugin-transform-undefined-to-void": "^6.9.4", "babel-plugin-transform-undefined-to-void": "^6.9.4",
"cpx": "^1.5.0",
"google-closure-compiler": "^20210505.0.0" "google-closure-compiler": "^20210505.0.0"
} }
} }

View File

@@ -1,11 +1,8 @@
/** @define {string} */
export const RELEASE = "browser";
/** @define {boolean} */ /** @define {boolean} */
export const DEBUG = false; export const DEBUG = false;
/** @define {boolean} */ /** @define {boolean} */
export const POLYFILL = true; export const POLYFILL = false;
/** @define {boolean} */ /** @define {boolean} */
export const SUPPORT_WORKER = true; export const SUPPORT_WORKER = true;

View File

@@ -1,6 +1,3 @@
/** @define {string} */
export const RELEASE = "browser";
/** @define {boolean} */ /** @define {boolean} */
export const DEBUG = false; export const DEBUG = false;

View File

@@ -0,0 +1,38 @@
/** @define {boolean} */
export const DEBUG = true;
/** @define {boolean} */
export const POLYFILL = false;
/** @define {boolean} */
export const SUPPORT_WORKER = true;
/** @define {boolean|string} */
export const SUPPORT_ENCODER = true;
/** @define {boolean|string} */
export const SUPPORT_LANG = true;
/** @define {boolean} */
export const SUPPORT_CACHE = true;
/** @define {boolean} */
export const SUPPORT_ASYNC = true;
/** @define {boolean} */
export const SUPPORT_PRESET = true;
/** @define {boolean} */
export const SUPPORT_STORE = true;
/** @define {boolean} */
export const SUPPORT_TAGS = true;
/** @define {boolean} */
export const SUPPORT_SUGGESTION = true;
/** @define {boolean} */
export const SUPPORT_SERIALIZE = true;
/** @define {boolean} */
export const SUPPORT_DOCUMENT = true;

View File

@@ -1,6 +1,3 @@
/** @define {string} */
export const RELEASE = "browser";
/** @define {boolean} */ /** @define {boolean} */
export const DEBUG = false; export const DEBUG = false;

View File

@@ -126,7 +126,7 @@ function parse_descriptor(options){
opt = is_object(opt) ? Object.assign({}, options, opt) : options; opt = is_object(opt) ? Object.assign({}, options, opt) : options;
if(this.worker){ if(SUPPORT_WORKER && this.worker){
index[key] = new WorkerIndex(opt); index[key] = new WorkerIndex(opt);

View File

@@ -1,4 +1,4 @@
import { SUPPORT_ASYNC, SUPPORT_DOCUMENT, SUPPORT_CACHE, SUPPORT_SERIALIZE } from "./config.js"; import { SUPPORT_ASYNC, SUPPORT_DOCUMENT, SUPPORT_CACHE, SUPPORT_SERIALIZE, SUPPORT_WORKER } from "./config.js";
import Document from "./document.js"; import Document from "./document.js";
import Index from "./index.js"; import Index from "./index.js";
import WorkerIndex from "./worker/index.js"; import WorkerIndex from "./worker/index.js";
@@ -56,7 +56,7 @@ const FlexSearch = {
"Index": Index, "Index": Index,
"Document": SUPPORT_DOCUMENT ? Document : null, "Document": SUPPORT_DOCUMENT ? Document : null,
"Worker": WorkerIndex, "Worker": SUPPORT_WORKER ? WorkerIndex : null,
"registerCharset": registerCharset, "registerCharset": registerCharset,
"registerLanguage": registerLanguage "registerLanguage": registerLanguage
}; };

View File

@@ -1,5 +1,5 @@
const { parentPort } = require("worker_threads"); const { parentPort } = require("worker_threads");
const { Index } = require("../flexsearch.min.js"); const { Index } = require("../flexsearch.bundle.js");
let index; let index;

View File

@@ -55,12 +55,16 @@ var options = (function(argv){
compilation_level = val; compilation_level = val;
} }
else if(index === "POLYFILL"){
use_polyfill = val === "true";
}
else{ else{
if(index !== "RELEASE"){ // if(index !== "RELEASE"){
//
//flag_str += " --define='" + index + "=" + val + "'"; // flag_str += " --define='" + index + "=" + val + "'";
} // }
arr[index] = val; arr[index] = val;
} }
@@ -76,9 +80,15 @@ var options = (function(argv){
})(process.argv); })(process.argv);
var release = options["RELEASE"]; var release = options["RELEASE"];
const light_version = (release === "light") || (process.argv[2] === "--light");
const es5_version = (release === "es5") || (process.argv[2] === "--es5"); // const light_version = (release === "light") || (process.argv[2] === "--light");
const module_version = (release === "module") || (process.argv[2] === "--module"); // const es5_version = (release === "es5") || (process.argv[2] === "--es5");
// const module_version = (release === "module") || (process.argv[2] === "--module");
if(release === "es5"){
release = "ES5";
}
let parameter = (function(opt){ let parameter = (function(opt){
@@ -103,7 +113,7 @@ let parameter = (function(opt){
return parameter; return parameter;
})({ })({
compilation_level: compilation_level || (release === "pre" ? "SIMPLE" : (release === "debug" ? "WHITESPACE" : "ADVANCED_OPTIMIZATIONS")), //"SIMPLE" compilation_level: compilation_level || "ADVANCED_OPTIMIZATIONS", //"SIMPLE"
use_types_for_optimization: true, use_types_for_optimization: true,
//new_type_inf: true, //new_type_inf: true,
//jscomp_warning: "newCheckTypes", //jscomp_warning: "newCheckTypes",
@@ -131,9 +141,9 @@ let parameter = (function(opt){
module_resolution: "BROWSER", module_resolution: "BROWSER",
//dependency_mode: "SORT_ONLY", //dependency_mode: "SORT_ONLY",
//js_module_root: "./", //js_module_root: "./",
entry_point: "./src/webpack.js", entry_point: "./tmp/webpack.js",
//manage_closure_dependencies: true, //manage_closure_dependencies: true,
dependency_mode: "PRUNE_LEGACY", dependency_mode: "PRUNE", // PRUNE_LEGACY
rewrite_polyfills: use_polyfill || false, rewrite_polyfills: use_polyfill || false,
// isolation_mode: "IIFE", // isolation_mode: "IIFE",
@@ -142,15 +152,15 @@ let parameter = (function(opt){
//formatting: "PRETTY_PRINT" //formatting: "PRETTY_PRINT"
}); });
if(release === "pre" || release === "debug"){ // if(release === "pre" || release === "debug"){
//
// parameter += ' --formatting=PRETTY_PRINT';
// }
parameter += ' --formatting=PRETTY_PRINT'; // if(release === "demo"){
} //
// options['RELEASE'] = "custom";
if(release === "demo"){ // }
options['RELEASE'] = "custom";
}
const custom = (!release || (release === "custom")); const custom = (!release || (release === "custom"));
@@ -222,17 +232,20 @@ else{
: :
"java -jar node_modules/google-closure-compiler-java/compiler.jar" "java -jar node_modules/google-closure-compiler-java/compiler.jar"
) + parameter + " --js='src/**.js' --js='!src/**/node.js'" + flag_str + " --js_output_file='" + filename + "' && exit 0", function(){ ) + parameter + " --js='tmp/**.js' --js='!tmp/**/node.js'" + flag_str + " --js_output_file='" + filename + "' && exit 0", function(){
let build = fs.readFileSync(filename); let build = fs.readFileSync(filename);
let preserve = fs.readFileSync("src/index.js", "utf8"); let preserve = fs.readFileSync("src/index.js", "utf8");
const package_json = require("../package.json"); const package_json = require("../package.json");
preserve = preserve.replace("* FlexSearch.js", "* FlexSearch.js v" + package_json.version + (light_version ? " (Light)" : es5_version ? " (ES5)" : "")); preserve = preserve.replace("* FlexSearch.js", "* FlexSearch.js v" + package_json.version + (release ? " (" + (release.charAt(0).toUpperCase() + release.substring(1)) + ")" : ""));
build = preserve.substring(0, preserve.indexOf('*/') + 2) + "\n" + build; build = preserve.substring(0, preserve.indexOf('*/') + 2) + "\n" + build;
build = build.replace("(function(self){'use strict';", "(function _f(self){'use strict';try{if(module)self=module}catch(e){}self._factory=_f;"); if(release === "bundle"){
build = build.replace("(function(self){'use strict';", "(function _f(self){'use strict';try{if(module)self=module}catch(e){}self._factory=_f;");
}
if(release === "pre"){ if(release === "pre"){