{"version":3,"file":"index.umd.production.min.cjs","sources":["../src/index.ts"],"sourcesContent":["/**\n * Created by user on 2018/7/4/004.\n */\n\nimport { array_unique } from 'array-hyper-unique';\n// @ts-ignore\nimport equals from 'deep-eql';\n\nexport interface IPositions\n{\n\t[k: string]: string[];\n\n\t[i: number]: string[];\n}\n\nexport function allPos(words: string, positions: IPositions): IPositions\n{\n\tlet i = 0;\n\tconst ks = Object.keys(positions) as any as number[];\n\tconst len = words.length;\n\n\tlet j = 0;\n\n\tconst ret: IPositions = {};\n\n\twhile (i < len)\n\t{\n\t\tif (positions[i])\n\t\t{\n\t\t\tret[j] ||= [];\n\n\t\t\tif (j !== i)\n\t\t\t{\n\t\t\t\tret[j].push(words.slice(j, i));\n\t\t\t}\n\n\t\t\tret[i] ||= [];\n\t\t\tret[i] = positions[i].slice();\n\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-loop-func\n\t\t\tret[i].forEach(function (w)\n\t\t\t{\n\t\t\t\tlet i4: number;\n\t\t\t\tlet i2: number;\n\t\t\t\tlet i3: number;\n\t\t\t\tfor (i2 = 1; i2 < w.length; i2++)\n\t\t\t\t{\n\t\t\t\t\ti3 = i + i2;\n\n\t\t\t\t\tif (positions[i3])\n\t\t\t\t\t{\n\t\t\t\t\t\tconst s = w.slice(0, i2);\n\n\t\t\t\t\t\ti4 = i3 - 1;\n\n\t\t\t\t\t\tret[i4] ||= [];\n\n\t\t\t\t\t\tret[i4].push(s);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tks.forEach(function (i5)\n\t\t\t\t{\n\t\t\t\t\tif (i5 > i3)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst s = words.slice(i3, i5);\n\n\t\t\t\t\t\tret[i3] ||= [];\n\n\t\t\t\t\t\tret[i3].push(s);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (i5 > i)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst s = words.slice(i, i5);\n\n\t\t\t\t\t\tret[i] ||= [];\n\n\t\t\t\t\t\tret[i].push(s);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tj = i + 1;\n\t\t}\n\n\t\ti++;\n\t}\n\n\tif (j !== i)\n\t{\n\t\tconst s = words.slice(j);\n\n\t\tret[j] ||= [];\n\n\t\tret[j].push(s);\n\t}\n\n\tfor (const i in ret)\n\t{\n\t\tret[i] = array_unique(ret[i]);\n\t\tret[i].sort();\n\t}\n\n\treturn ret;\n}\n\nexport function allPosMax(words: string, positions: IPositions, limit = 5): IPositions\n{\n\tlet ret = allPos(words, positions);\n\n\tlet _do = true;\n\tlet i = 0;\n\tlet ret2: IPositions;\n\n\tlimit = Number(limit);\n\n\tlimit = limit > 0 ? limit : 5;\n\n\twhile (_do && limit > i++)\n\t{\n\t\tret2 = allPos(words, ret);\n\t\t_do = !equals(ret, ret2);\n\t\tret = ret2;\n\t}\n\n\treturn ret;\n}\n\nexport function validPos(positions: IPositions)\n{\n\treturn Object.keys(positions)\n\t\t.every(function (v)\n\t\t{\n\t\t\treturn (\n\t\t\t\tv.toString() === Number(v).toString()\n\t\t\t\t&& positions[v]\n\t\t\t\t&& Array.isArray(positions[v])\n\t\t\t);\n\t\t})\n\t\t;\n}\n\nexport function triePosList(words: string, positions: IPositions)\n{\n\treturn allPos(words, positions);\n}\n\n// @ts-ignore\nif (process.env.TSDX_FORMAT !== 'esm')\n{\n\tObject.defineProperty(triePosList, \"__esModule\", { value: true });\n\n\tObject.defineProperty(triePosList, 'triePosList', { value: triePosList });\n\tObject.defineProperty(triePosList, 'default', { value: triePosList });\n\n\tObject.defineProperty(triePosList, 'allPos', { value: allPos });\n\tObject.defineProperty(triePosList, 'allPosMax', { value: allPosMax });\n\tObject.defineProperty(triePosList, 'validPos', { value: validPos });\n\n}\n\nexport default triePosList;\n"],"names":["allPos","words","positions","i","ks","Object","keys","len","length","j","ret","_j","_i","push","slice","forEach","w","i4","i2","i3","_i2","s","i5","_i3","_i4","_j2","array_unique","sort","allPosMax","limit","ret2","_do","Number","equals","validPos","every","v","toString","Array","isArray","triePosList","defineProperty","value"],"mappings":";;;;EAegB,SAAAA,OAAOC,GAAeC;IAErC,IAAIC,IAAI;IACR,MAAMC,IAAKC,OAAOC,KAAKJ,IACjBK,IAAMN,EAAMO;IAElB,IAAIC,IAAI;IAER,MAAMC,IAAkB,CAAA;IAExB,MAAOP,IAAII,KACX;MAEC,IAAAI,GAAAC;MADIV,EAAUC,OAEbO,MAAID,OAAJC,EAAGC,KAAQ,KAEPF,MAAMN,KAETO,EAAID,GAAGI,KAAKZ,EAAMa,MAAML,GAAGN,KAG5BO,MAAIP,OAAJO,EAAGE,KAAQ;MACXF,EAAIP,KAAKD,EAAUC,GAAGW,SAGtBJ,EAAIP,GAAGY,SAAQ,SAAUC;QAExB,IAAIC,GACAC,GACAC;QACJ,KAAKD,IAAK,GAAGA,IAAKF,EAAER,QAAQU,KAI3B,IAFAC,IAAKhB,IAAIe,GAELhB,EAAUiB,IACd;UAAA,IAAAC;UACC,MAAMC,IAAIL,EAAEF,MAAM,GAAGI;UAErBD,IAAKE,IAAK,GAEVT,MAAIO,OAAJP,EAAGU,KAAS,KAEZV,EAAIO,GAAIJ,KAAKQ;AACb;QAGFjB,EAAGW,SAAQ,SAAUO;UAEpB,IAAIA,IAAKH,GACT;YAAA,IAAAI;YACC,MAAMF,IAAIpB,EAAMa,MAAMK,GAAIG;YAE1BZ,MAAIS,OAAJT,EAAGa,KAAS,KAEZb,EAAIS,GAAIN,KAAKQ;AACb;UAED,IAAIC,IAAKnB,GACT;YAAA,IAAAqB;YACC,MAAMH,IAAIpB,EAAMa,MAAMX,GAAGmB;YAEzBZ,MAAIP,OAAJO,EAAGc,KAAQ,KAEXd,EAAIP,GAAGU,KAAKQ;AACZ;AACF;AACD,WAEAZ,IAAIN,IAAI,IAGTA;AACA;IAED,IAAIM,MAAMN,GACV;MAAA,IAAAsB;MACC,MAAMJ,IAAIpB,EAAMa,MAAML;MAEtBC,MAAID,OAAJC,EAAGe,KAAQ,KAEXf,EAAID,GAAGI,KAAKQ;AACZ;IAED,KAAK,MAAMlB,KAAKO,GAEfA,EAAIP,KAAKuB,EAAAA,aAAahB,EAAIP,KAC1BO,EAAIP,GAAGwB;IAGR,OAAOjB;AACR;EAEM,SAAUkB,UAAU3B,GAAeC,GAAuB2B,IAAQ;IAEvE,IAIIC,GAJApB,IAAMV,OAAOC,GAAOC,IAEpB6B,KAAM,GACN5B,IAAI;IAOR,KAFA0B,KAFAA,IAAQG,OAAOH,MAEC,IAAIA,IAAQ,GAErBE,KAAOF,IAAQ1B,OAErB2B,IAAO9B,OAAOC,GAAOS,IACrBqB,KAAOE,EAAOvB,GAAKoB;IACnBpB,IAAMoB;IAGP,OAAOpB;AACR;EAEM,SAAUwB,SAAShC;IAExB,OAAOG,OAAOC,KAAKJ,GACjBiC,OAAM,SAAUC;MAEhB,OACCA,EAAEC,eAAeL,OAAOI,GAAGC,cACxBnC,EAAUkC,MACVE,MAAMC,QAAQrC,EAAUkC;AAE7B;AAEF;EAEgB,SAAAI,YAAYvC,GAAeC;IAE1C,OAAOF,OAAOC,GAAOC;AACtB;EAKCG,OAAOoC,eAAeD,aAAa,cAAc;IAAEE,QAAO;MAE1DrC,OAAOoC,eAAeD,aAAa,eAAe;IAAEE,OAAOF;MAC3DnC,OAAOoC,eAAeD,aAAa,WAAW;IAAEE,OAAOF;MAEvDnC,OAAOoC,eAAeD,aAAa,UAAU;IAAEE,OAAO1C;MACtDK,OAAOoC,eAAeD,aAAa,aAAa;IAAEE,OAAOd;MACzDvB,OAAOoC,eAAeD,aAAa,YAAY;IAAEE,OAAOR;;;;;"}