@inseefr/lunatic 0.3.0-experimental → 0.3.0-prisme

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +25 -23
  3. package/lib/index.esm.js +3539 -0
  4. package/lib/index.esm.js.map +1 -0
  5. package/lib/index.js +240 -282
  6. package/lib/index.js.map +1 -1
  7. package/package.json +179 -173
  8. package/src/components/breadcrumb/breadcrumb.scss +22 -22
  9. package/src/components/checkbox/boolean.js +172 -172
  10. package/src/components/checkbox/checkbox.scss +73 -73
  11. package/src/components/checkbox/group.js +231 -231
  12. package/src/components/checkbox/one.js +11 -11
  13. package/src/components/component-wrapper/controls/component.js +70 -70
  14. package/src/components/component-wrapper/controls/controls.scss +6 -6
  15. package/src/components/component-wrapper/controls/index.js +1 -1
  16. package/src/components/component-wrapper/controls/validators/datepicker.js +44 -33
  17. package/src/components/component-wrapper/controls/validators/index.js +16 -16
  18. package/src/components/component-wrapper/controls/validators/input-number.js +23 -23
  19. package/src/components/component-wrapper/index.js +1 -1
  20. package/src/components/component-wrapper/missing/component.js +200 -180
  21. package/src/components/component-wrapper/missing/index.js +1 -1
  22. package/src/components/component-wrapper/missing/missing.scss +32 -32
  23. package/src/components/component-wrapper/wrapper.js +23 -23
  24. package/src/components/components.js +19 -19
  25. package/src/components/datepicker/component.js +26 -30
  26. package/src/components/declarations/component.js +46 -46
  27. package/src/components/declarations/declarations.scss +40 -40
  28. package/src/components/declarations/wrappers/input-declarations-wrapper.js +328 -302
  29. package/src/components/declarations/wrappers/simple-declarations-wrapper.js +54 -54
  30. package/src/components/dropdown/commons/actions.js +65 -65
  31. package/src/components/dropdown/commons/children-to-option.js +9 -9
  32. package/src/components/dropdown/commons/cleaner-callbacks.js +58 -58
  33. package/src/components/dropdown/commons/components/dropdown-container.js +29 -29
  34. package/src/components/dropdown/commons/components/dropdown.js +204 -183
  35. package/src/components/dropdown/commons/components/panel.js +78 -78
  36. package/src/components/dropdown/commons/event-callbacks/on-mousedown-callback.js +15 -15
  37. package/src/components/dropdown/commons/reducer.js +152 -152
  38. package/src/components/dropdown/commons/tools/index.js +17 -17
  39. package/src/components/dropdown/component.js +135 -135
  40. package/src/components/dropdown/dropdown-edit/dropdown-edit.js +194 -191
  41. package/src/components/dropdown/dropdown-edit/index.js +11 -11
  42. package/src/components/dropdown/dropdown-simple/dropdown.js +173 -171
  43. package/src/components/dropdown/dropdown-simple/index.js +20 -20
  44. package/src/components/dropdown/dropdown.scss +178 -178
  45. package/src/components/icon/icon.scss +15 -15
  46. package/src/components/index.js +2 -0
  47. package/src/components/index.scss +177 -177
  48. package/src/components/input/input-number.js +30 -28
  49. package/src/components/input/input.js +11 -11
  50. package/src/components/input/input.scss +31 -31
  51. package/src/components/loop/component.js +170 -170
  52. package/src/components/loop/loop.scss +13 -13
  53. package/src/components/loop/wrapper.js +15 -15
  54. package/src/components/loop-constructor/block/block.scss +10 -10
  55. package/src/components/loop-constructor/block/component.js +9 -9
  56. package/src/components/loop-constructor/roster/component.js +8 -8
  57. package/src/components/loop-constructor/wrapper/body-component.js +146 -131
  58. package/src/components/loop-constructor/wrapper/component.js +190 -190
  59. package/src/components/modal/component.js +36 -36
  60. package/src/components/modal/index.js +1 -1
  61. package/src/components/modal/modal.scss +33 -33
  62. package/src/components/progress-bar/progress-bar.scss +54 -54
  63. package/src/components/radio/component.js +9 -9
  64. package/src/components/radio/radio.scss +59 -59
  65. package/src/components/sequence/component.js +50 -50
  66. package/src/components/sequence/sequence.scss +10 -10
  67. package/src/components/subsequence/component.js +49 -49
  68. package/src/components/suggester/check-store.js +2 -4
  69. package/src/components/suggester/components/panel/default-option-renderer.js +27 -27
  70. package/src/components/suggester/components/panel/option-container.js +61 -61
  71. package/src/components/suggester/components/panel/panel.js +47 -47
  72. package/src/components/suggester/components/selection/default-label-renderer.js +31 -31
  73. package/src/components/suggester/components/selection/label.js +35 -35
  74. package/src/components/suggester/components/selection/selection.js +50 -50
  75. package/src/components/suggester/components/suggester-content.js +2 -2
  76. package/src/components/suggester/components/suggester.js +128 -88
  77. package/src/components/suggester/components/suggester.scss +101 -101
  78. package/src/components/suggester/default-style.scss +125 -125
  79. package/src/components/suggester/find-best-label/find-best-label.js +51 -51
  80. package/src/components/suggester/find-best-label/index.js +1 -1
  81. package/src/components/suggester/idb-suggester.js +73 -67
  82. package/src/components/suggester/lunatic-suggester.js +140 -139
  83. package/src/components/suggester/searching/create-searching.js +49 -49
  84. package/src/components/suggester/searching/index.js +1 -1
  85. package/src/components/suggester/state-management/actions.js +38 -38
  86. package/src/components/suggester/state-management/reducer/reduce-on-delete-search.js +11 -11
  87. package/src/components/suggester/state-management/reducer/reduce-on-init.js +29 -29
  88. package/src/components/suggester/state-management/reducer/reducer.js +38 -38
  89. package/src/components/suggester/suggester-wrapper.js +127 -121
  90. package/src/components/suggester-loader-widget/loader.js +67 -67
  91. package/src/components/suggester-loader-widget/widget.js +123 -123
  92. package/src/components/table/table.js +173 -171
  93. package/src/components/table/table.scss +26 -26
  94. package/src/components/textarea/component.js +11 -11
  95. package/src/components/textarea/textarea.scss +8 -8
  96. package/src/components/tooltip/tooltip.scss +30 -30
  97. package/src/stories/breadcrumb/breadcrumb.stories.js +21 -21
  98. package/src/stories/checkbox-boolean/data.json +78 -78
  99. package/src/stories/datepicker/data.json +45 -45
  100. package/src/stories/declarations/declarations.stories.js +116 -116
  101. package/src/stories/dropdown/README.md +44 -44
  102. package/src/stories/dropdown/data.json +98 -98
  103. package/src/stories/dropdown/dropdown.stories.js +89 -89
  104. package/src/stories/progress-bar/progress-bar.stories.js +24 -24
  105. package/src/stories/questionnaire/arithmetic-management.json +47 -0
  106. package/src/stories/questionnaire/arithmetic.json +247 -247
  107. package/src/stories/questionnaire/calc-var.json +187 -187
  108. package/src/stories/questionnaire/data-logement.json +2691 -2691
  109. package/src/stories/questionnaire/kish.json +275 -0
  110. package/src/stories/questionnaire/logement-queen.json +23390 -22706
  111. package/src/stories/questionnaire/logement-s2.json +46028 -44537
  112. package/src/stories/questionnaire/logement-sequence.json +26741 -26741
  113. package/src/stories/questionnaire/logement.json +21072 -21072
  114. package/src/stories/questionnaire/loop-and-controls.json +481 -0
  115. package/src/stories/questionnaire/questionnaire.stories.js +236 -172
  116. package/src/stories/questionnaire/update-external/data.json +1 -0
  117. package/src/stories/questionnaire/update-external/questionnaire.json +75 -0
  118. package/src/stories/sequence/sequence.stories.js +32 -32
  119. package/src/stories/subsequence/subsequence.stories.js +32 -32
  120. package/src/stories/suggester/README.md +46 -46
  121. package/src/stories/suggester/bailleurs-sociaux/fetch-bailleurs.js +15 -15
  122. package/src/stories/suggester/bailleurs-sociaux/index.js +2 -2
  123. package/src/stories/suggester/bailleurs-sociaux/option-bailleur-renderer.js +58 -58
  124. package/src/stories/suggester/bailleurs-sociaux/preloader.svg +51 -51
  125. package/src/stories/suggester/bailleurs-sociaux/theme.scss +22 -22
  126. package/src/stories/suggester/bailleurs-sociaux-2021/fetch-bailleurs.js +12 -0
  127. package/src/stories/suggester/bailleurs-sociaux-2021/index.js +1 -0
  128. package/src/stories/suggester/cog-communes/fetch-cog.js +15 -15
  129. package/src/stories/suggester/data-auto.json +232 -232
  130. package/src/stories/suggester/data-vtl.json +82 -82
  131. package/src/stories/suggester/data.json +169 -136
  132. package/src/stories/suggester/naf-rev2/index.js +2 -2
  133. package/src/stories/suggester/naf-rev2/option-naf-renderer.js +17 -17
  134. package/src/stories/suggester/suggester-workers.stories.js +226 -179
  135. package/src/stories/suggester/suggester.stories.js +138 -133
  136. package/src/stories/utils/orchestrator-split.js +119 -0
  137. package/src/stories/utils/orchestrator.js +119 -110
  138. package/src/tests/components/input-number.spec.js +188 -188
  139. package/src/tests/components/loops/roster-loop.json +71 -71
  140. package/src/tests/components/missing-wrapper.spec.js +32 -32
  141. package/src/tests/utils/lib/table/roster.spec.js +25 -25
  142. package/src/tests/utils/to-expose/handler/results/res-input-edited.json +1 -1
  143. package/src/tests/utils/to-expose/init-questionnaire/questionnaire.json +148 -148
  144. package/src/tests/utils/to-expose/init-questionnaire/result.json +181 -181
  145. package/src/utils/components/dragger/dragger.scss +7 -7
  146. package/src/utils/idb-tools/create-db-opener.js +43 -43
  147. package/src/utils/idb-tools/create-open-db.js +25 -25
  148. package/src/utils/idb-tools/idb-bulk-insert.js +96 -96
  149. package/src/utils/idb-tools/index.js +10 -10
  150. package/src/utils/idb-tools/insert-entity.js +15 -15
  151. package/src/utils/idb-tools/open-db.js +13 -13
  152. package/src/utils/idb-tools/open-or-create-db.js +34 -34
  153. package/src/utils/lib/controls/index.js +1 -1
  154. package/src/utils/lib/controls/utils.js +152 -146
  155. package/src/utils/lib/decorator/title-decorator.js +16 -16
  156. package/src/utils/lib/env.js +2 -2
  157. package/src/utils/lib/index.js +21 -20
  158. package/src/utils/lib/input-number.js +1 -1
  159. package/src/utils/lib/options-positioning.js +9 -9
  160. package/src/utils/lib/pagination/navigation/shared.js +256 -256
  161. package/src/utils/lib/prop-types/lines.js +6 -6
  162. package/src/utils/lib/responses.js +11 -11
  163. package/src/utils/lib/splitting.js +142 -0
  164. package/src/utils/lib/style.js +10 -10
  165. package/src/utils/store-tools/auto-load.js +74 -74
  166. package/src/utils/suggester-workers/append-to-index/append.js +25 -25
  167. package/src/utils/suggester-workers/append-to-index/append.worker.js +16 -16
  168. package/src/utils/suggester-workers/append-to-index/create-append-task.js +45 -45
  169. package/src/utils/suggester-workers/append-to-index/index.js +2 -2
  170. package/src/utils/suggester-workers/append-to-index/prepare-entities.js +61 -61
  171. package/src/utils/suggester-workers/append-to-index/store-messages.js +21 -21
  172. package/src/utils/suggester-workers/commons-tokenizer/create-entity-tokenizer.js +56 -54
  173. package/src/utils/suggester-workers/commons-tokenizer/create-fields-tokenizer.js +56 -52
  174. package/src/utils/suggester-workers/commons-tokenizer/create-filter-stop-words.js +17 -17
  175. package/src/utils/suggester-workers/commons-tokenizer/filters/compose-filters.js +10 -10
  176. package/src/utils/suggester-workers/commons-tokenizer/filters/create-filter-stop-words.js +17 -17
  177. package/src/utils/suggester-workers/commons-tokenizer/filters/create-filter-stop-words.spec.js +14 -14
  178. package/src/utils/suggester-workers/commons-tokenizer/filters/{filter-accents-to-lower.js → filter-accents.js} +12 -12
  179. package/src/utils/suggester-workers/commons-tokenizer/filters/{filter-accents-to-lower.spec.js → filter-accents.spec.js} +12 -12
  180. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-double.js +12 -12
  181. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-double.spec.js +20 -20
  182. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-length.js +7 -7
  183. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-length.spec.js +18 -18
  184. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-stemmer.js +13 -13
  185. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-stemmer.spec.js +12 -12
  186. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-synonyms.js +36 -10
  187. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-synonyms.spec.js +12 -12
  188. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-to-lower.js +10 -0
  189. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-to-lower.spec.js +12 -0
  190. package/src/utils/suggester-workers/commons-tokenizer/filters/index.js +2 -2
  191. package/src/utils/suggester-workers/commons-tokenizer/filters/stop-words.js +118 -118
  192. package/src/utils/suggester-workers/commons-tokenizer/get-regexp-from-pattern.js +8 -8
  193. package/src/utils/suggester-workers/commons-tokenizer/get-stemmer.js +18 -18
  194. package/src/utils/suggester-workers/commons-tokenizer/index.js +9 -8
  195. package/src/utils/suggester-workers/commons-tokenizer/prepare-string-indexation.js +13 -13
  196. package/src/utils/suggester-workers/commons-tokenizer/soft-tokenizer.js +7 -7
  197. package/src/utils/suggester-workers/create-worker.js +56 -56
  198. package/src/utils/suggester-workers/find-best-label/find-best-label.js +39 -39
  199. package/src/utils/suggester-workers/find-best-label/find-best-label.worker.js +40 -40
  200. package/src/utils/suggester-workers/find-best-label/tokenize.js +30 -30
  201. package/src/utils/suggester-workers/find-best-label/tokenize.spec.js +19 -19
  202. package/src/utils/suggester-workers/searching/compute-score.js +33 -33
  203. package/src/utils/suggester-workers/searching/get-db.js +18 -18
  204. package/src/utils/suggester-workers/searching/index.js +1 -1
  205. package/src/utils/suggester-workers/searching/order/create-alphanumeric-orderer.js +20 -20
  206. package/src/utils/suggester-workers/searching/order/index.js +19 -19
  207. package/src/utils/suggester-workers/searching/query-parser/index.js +2 -2
  208. package/src/utils/suggester-workers/searching/query-parser/query-parser-soft.js +7 -7
  209. package/src/utils/suggester-workers/searching/query-parser/query-parser-soft.spec.js +24 -24
  210. package/src/utils/suggester-workers/searching/query-parser/query-parser-tokenized.js +34 -28
  211. package/src/utils/suggester-workers/searching/resolve-query-parser.js +27 -27
  212. package/src/utils/suggester-workers/searching/search-in-index.js +17 -17
  213. package/src/utils/suggester-workers/searching/searching.js +70 -70
  214. package/src/utils/suggester-workers/searching/searching.worker.js +11 -11
  215. package/src/utils/to-expose/calculated-variables.js +113 -113
  216. package/src/utils/to-expose/handler.js +149 -112
  217. package/src/utils/to-expose/hooks/filter-components.js +27 -12
  218. package/src/utils/to-expose/hooks/index.js +2 -1
  219. package/src/utils/to-expose/hooks/lunatic-split.js +428 -0
  220. package/src/utils/to-expose/hooks/lunatic.js +284 -235
  221. package/src/utils/to-expose/index.js +1 -1
  222. package/src/utils/to-expose/init-questionnaire.js +164 -164
  223. package/src/utils/to-expose/interpret/vtl.js +18 -18
  224. package/src/utils/to-expose/state.js +66 -58
  225. package/src/tests/utils/to-expose/hooks/use-lunatic.spec.js +0 -46
@@ -1,118 +1,118 @@
1
- const STOP_WORDS = [
2
- 'alors',
3
- 'au',
4
- 'aucuns',
5
- 'aussi',
6
- 'autre',
7
- 'avant',
8
- 'avec',
9
- 'avoir',
10
- 'bon',
11
- 'car',
12
- 'ce',
13
- 'cela',
14
- 'ces',
15
- 'ceux',
16
- 'chaque',
17
- 'ci',
18
- 'comme',
19
- 'comment',
20
- 'dans',
21
- 'des',
22
- 'du',
23
- 'dedans',
24
- 'dehors',
25
- 'depuis',
26
- 'devrait',
27
- 'doit',
28
- 'donc',
29
- 'dos',
30
- 'debut',
31
- 'elle',
32
- 'elles',
33
- 'en',
34
- 'encore',
35
- 'essai',
36
- 'est',
37
- 'et',
38
- 'eu',
39
- 'fait',
40
- 'faites',
41
- 'fois',
42
- 'font',
43
- 'hors',
44
- 'ici',
45
- 'il',
46
- 'ils',
47
- 'je',
48
- 'juste',
49
- 'le',
50
- 'les',
51
- 'leur',
52
- 'la',
53
- 'ma',
54
- 'maintenant',
55
- 'mais',
56
- 'mes',
57
- 'mien',
58
- 'moins',
59
- 'mon',
60
- 'mot',
61
- 'meme',
62
- 'ni',
63
- 'nommes',
64
- 'notre',
65
- 'nous',
66
- 'ou',
67
- 'par',
68
- 'parce',
69
- 'pas',
70
- 'peut',
71
- 'peu',
72
- 'plupart',
73
- 'pour',
74
- 'pourquoi',
75
- 'quand',
76
- 'que',
77
- 'quel',
78
- 'quelle',
79
- 'quelles',
80
- 'quels',
81
- 'qui',
82
- 'sa',
83
- 'sans',
84
- 'ses',
85
- 'seulement',
86
- 'si',
87
- 'sien',
88
- 'son',
89
- 'sont',
90
- 'sous',
91
- 'soyez',
92
- 'sois',
93
- 'sujet',
94
- 'sur',
95
- 'ta',
96
- 'tandis',
97
- 'tellement',
98
- 'tels',
99
- 'tes',
100
- 'ton',
101
- 'tous',
102
- 'tout',
103
- 'trop',
104
- 'tres',
105
- 'tu',
106
- 'voient',
107
- 'vont',
108
- 'votre',
109
- 'vous',
110
- 'vu',
111
- 'ca',
112
- 'etaient',
113
- 'etat',
114
- 'etions',
115
- 'ete',
116
- 'etre',
117
- ];
118
- export default STOP_WORDS;
1
+ const STOP_WORDS = [
2
+ 'alors',
3
+ 'au',
4
+ 'aucuns',
5
+ 'aussi',
6
+ 'autre',
7
+ 'avant',
8
+ 'avec',
9
+ 'avoir',
10
+ 'bon',
11
+ 'car',
12
+ 'ce',
13
+ 'cela',
14
+ 'ces',
15
+ 'ceux',
16
+ 'chaque',
17
+ 'ci',
18
+ 'comme',
19
+ 'comment',
20
+ 'dans',
21
+ 'des',
22
+ 'du',
23
+ 'dedans',
24
+ 'dehors',
25
+ 'depuis',
26
+ 'devrait',
27
+ 'doit',
28
+ 'donc',
29
+ 'dos',
30
+ 'debut',
31
+ 'elle',
32
+ 'elles',
33
+ 'en',
34
+ 'encore',
35
+ 'essai',
36
+ 'est',
37
+ 'et',
38
+ 'eu',
39
+ 'fait',
40
+ 'faites',
41
+ 'fois',
42
+ 'font',
43
+ 'hors',
44
+ 'ici',
45
+ 'il',
46
+ 'ils',
47
+ 'je',
48
+ 'juste',
49
+ 'le',
50
+ 'les',
51
+ 'leur',
52
+ 'la',
53
+ 'ma',
54
+ 'maintenant',
55
+ 'mais',
56
+ 'mes',
57
+ 'mien',
58
+ 'moins',
59
+ 'mon',
60
+ 'mot',
61
+ 'meme',
62
+ 'ni',
63
+ 'nommes',
64
+ 'notre',
65
+ 'nous',
66
+ 'ou',
67
+ 'par',
68
+ 'parce',
69
+ 'pas',
70
+ 'peut',
71
+ 'peu',
72
+ 'plupart',
73
+ 'pour',
74
+ 'pourquoi',
75
+ 'quand',
76
+ 'que',
77
+ 'quel',
78
+ 'quelle',
79
+ 'quelles',
80
+ 'quels',
81
+ 'qui',
82
+ 'sa',
83
+ 'sans',
84
+ 'ses',
85
+ 'seulement',
86
+ 'si',
87
+ 'sien',
88
+ 'son',
89
+ 'sont',
90
+ 'sous',
91
+ 'soyez',
92
+ 'sois',
93
+ 'sujet',
94
+ 'sur',
95
+ 'ta',
96
+ 'tandis',
97
+ 'tellement',
98
+ 'tels',
99
+ 'tes',
100
+ 'ton',
101
+ 'tous',
102
+ 'tout',
103
+ 'trop',
104
+ 'tres',
105
+ 'tu',
106
+ 'voient',
107
+ 'vont',
108
+ 'votre',
109
+ 'vous',
110
+ 'vu',
111
+ 'ca',
112
+ 'etaient',
113
+ 'etat',
114
+ 'etions',
115
+ 'ete',
116
+ 'etre',
117
+ ];
118
+ export default STOP_WORDS;
@@ -1,8 +1,8 @@
1
- function get(pattern) {
2
- if (typeof pattern === 'string') {
3
- return new RegExp(pattern);
4
- }
5
- return pattern;
6
- }
7
-
8
- export default get;
1
+ function get(pattern) {
2
+ if (typeof pattern === 'string') {
3
+ return new RegExp(pattern);
4
+ }
5
+ return pattern;
6
+ }
7
+
8
+ export default get;
@@ -1,18 +1,18 @@
1
- import Snowball from 'snowball';
2
-
3
- const STEMMERS = {};
4
-
5
- function getStemmer(language = 'French') {
6
- if (!(language in STEMMERS)) {
7
- const stemmer = new Snowball(language);
8
- STEMMERS[language] = function (token) {
9
- stemmer.setCurrent(token);
10
- stemmer.stem();
11
- return stemmer.getCurrent();
12
- };
13
- }
14
-
15
- return STEMMERS[language];
16
- }
17
-
18
- export default getStemmer;
1
+ import Snowball from 'snowball';
2
+
3
+ const STEMMERS = {};
4
+
5
+ function getStemmer(language = 'French') {
6
+ if (!(language in STEMMERS)) {
7
+ const stemmer = new Snowball(language);
8
+ STEMMERS[language] = function (token) {
9
+ stemmer.setCurrent(token);
10
+ stemmer.stem();
11
+ return stemmer.getCurrent();
12
+ };
13
+ }
14
+
15
+ return STEMMERS[language];
16
+ }
17
+
18
+ export default getStemmer;
@@ -1,8 +1,9 @@
1
- export { default as getStemmer } from './get-stemmer';
2
- export { default as createTokenizer } from './create-entity-tokenizer';
3
- export { default as prepareStringIndexation } from './prepare-string-indexation';
4
- export { default as filterStemmer } from './filters/filter-stemmer';
5
- export { default as filterLength } from './filters/filter-length';
6
- export { default as filterDouble } from './filters/filter-double';
7
- export { default as filterAccentsToLower } from './filters/filter-accents-to-lower';
8
- export { default as getRegExpFromPattern } from './get-regexp-from-pattern';
1
+ export { default as getStemmer } from './get-stemmer';
2
+ export { default as createTokenizer } from './create-entity-tokenizer';
3
+ export { default as prepareStringIndexation } from './prepare-string-indexation';
4
+ export { default as filterStemmer } from './filters/filter-stemmer';
5
+ export { default as filterLength } from './filters/filter-length';
6
+ export { default as filterDouble } from './filters/filter-double';
7
+ export { default as filterAccents } from './filters/filter-accents';
8
+ export { default as filterToLower } from './filters/filter-to-lower';
9
+ export { default as getRegExpFromPattern } from './get-regexp-from-pattern';
@@ -1,13 +1,13 @@
1
- import removeAccents from 'remove-accents';
2
-
3
- function prepare(token = '', replacement = '') {
4
- if (typeof token === 'string') {
5
- return removeAccents(token.trim().toLowerCase()).replace(
6
- /[- ']/g,
7
- replacement
8
- );
9
- }
10
- return token;
11
- }
12
-
13
- export default prepare;
1
+ import removeAccents from 'remove-accents';
2
+
3
+ function prepare(token = '', replacement = '') {
4
+ if (typeof token === 'string') {
5
+ return removeAccents(token.trim().toLowerCase()).replace(
6
+ /[- ']/g,
7
+ replacement
8
+ );
9
+ }
10
+ return token;
11
+ }
12
+
13
+ export default prepare;
@@ -1,7 +1,7 @@
1
- import { prepareStringIndexation } from '../commons-tokenizer';
2
-
3
- function softTokenizer(string) {
4
- return [prepareStringIndexation(string, '-')];
5
- }
6
-
7
- export default softTokenizer;
1
+ import { prepareStringIndexation } from '../commons-tokenizer';
2
+
3
+ function softTokenizer(string) {
4
+ return [prepareStringIndexation(string, '-')];
5
+ }
6
+
7
+ export default softTokenizer;
@@ -1,56 +1,56 @@
1
- // Enable cross domain workers
2
-
3
- const testSameOrigin = (url) => {
4
- var loc = window.location;
5
- var a = document.createElement('a');
6
- a.href = url;
7
- return (
8
- a.hostname === loc.hostname &&
9
- a.port === loc.port &&
10
- a.protocol === loc.protocol
11
- );
12
- };
13
-
14
- const createWorkerFallback = (workerUrl) => {
15
- console.log('Create worker for MFE');
16
- var worker = null;
17
- try {
18
- var blob;
19
- try {
20
- blob = new Blob([`importScripts('${workerUrl}');`], {
21
- type: 'application/javascript',
22
- });
23
- } catch (e) {
24
- var blobBuilder = new (window.BlobBuilder ||
25
- window.WebKitBlobBuilder ||
26
- window.MozBlobBuilder)();
27
- blobBuilder.append(`importScripts('${workerUrl}');`);
28
- blob = blobBuilder.getBlob('application/javascript');
29
- }
30
- var url = window.URL || window.webkitURL;
31
- var blobUrl = url.createObjectURL(blob);
32
- worker = new Worker(blobUrl);
33
- } catch (e1) {
34
- console.error(`Lunatic-worker : Failed to load web worker : ${workerUrl}`);
35
- }
36
- return worker;
37
- };
38
-
39
- export const createWorker = (workerUrl) => {
40
- var worker = null;
41
- try {
42
- if (testSameOrigin(workerUrl)) {
43
- console.log('Trying create classic worker');
44
- worker = new Worker(workerUrl);
45
- worker.onerror = (event) => {
46
- event.preventDefault();
47
- worker = createWorkerFallback(workerUrl);
48
- };
49
- } else {
50
- worker = createWorkerFallback(workerUrl);
51
- }
52
- } catch (e) {
53
- worker = createWorkerFallback(workerUrl);
54
- }
55
- return worker;
56
- };
1
+ // Enable cross domain workers
2
+
3
+ const testSameOrigin = (url) => {
4
+ var loc = window.location;
5
+ var a = document.createElement('a');
6
+ a.href = url;
7
+ return (
8
+ a.hostname === loc.hostname &&
9
+ a.port === loc.port &&
10
+ a.protocol === loc.protocol
11
+ );
12
+ };
13
+
14
+ const createWorkerFallback = (workerUrl) => {
15
+ console.log('Create worker for MFE');
16
+ var worker = null;
17
+ try {
18
+ var blob;
19
+ try {
20
+ blob = new Blob([`importScripts('${workerUrl}');`], {
21
+ type: 'application/javascript',
22
+ });
23
+ } catch (e) {
24
+ var blobBuilder = new (window.BlobBuilder ||
25
+ window.WebKitBlobBuilder ||
26
+ window.MozBlobBuilder)();
27
+ blobBuilder.append(`importScripts('${workerUrl}');`);
28
+ blob = blobBuilder.getBlob('application/javascript');
29
+ }
30
+ var url = window.URL || window.webkitURL;
31
+ var blobUrl = url.createObjectURL(blob);
32
+ worker = new Worker(blobUrl);
33
+ } catch (e1) {
34
+ console.error(`Lunatic-worker : Failed to load web worker : ${workerUrl}`);
35
+ }
36
+ return worker;
37
+ };
38
+
39
+ export const createWorker = (workerUrl) => {
40
+ var worker = null;
41
+ try {
42
+ if (testSameOrigin(workerUrl)) {
43
+ console.log('Trying create classic worker');
44
+ worker = new Worker(workerUrl);
45
+ worker.onerror = (event) => {
46
+ event.preventDefault();
47
+ worker = createWorkerFallback(workerUrl);
48
+ };
49
+ } else {
50
+ worker = createWorkerFallback(workerUrl);
51
+ }
52
+ } catch (e) {
53
+ worker = createWorkerFallback(workerUrl);
54
+ }
55
+ return worker;
56
+ };
@@ -1,39 +1,39 @@
1
- import distance from 'damerau-levenshtein';
2
-
3
- function reduceFields(map, fields, similarity) {
4
- return fields.reduce(function (m, field) {
5
- if (field in m) {
6
- return { ...m, [field]: m[field] + similarity };
7
- }
8
- return { ...m, [field]: similarity };
9
- }, map);
10
- }
11
-
12
- function reduceTokensMap(map, entries, word) {
13
- return entries.reduce(function (inter, [token, { fields }]) {
14
- const { similarity } = distance(token, word);
15
- return reduceFields(inter, fields, similarity);
16
- }, map);
17
- }
18
-
19
- function findBest(map) {
20
- let best = -1;
21
- return Object.entries(map).reduce(function (curr, [field, score]) {
22
- if (score > best) {
23
- best = score;
24
- return field;
25
- }
26
- return curr;
27
- }, undefined);
28
- }
29
-
30
- function findBestLabel(searchTokens = [], tokensMap = {}) {
31
- const entries = Object.entries(tokensMap);
32
- const map = searchTokens.reduce(function (map, word) {
33
- return reduceTokensMap(map, entries, word);
34
- }, {});
35
- const best = findBest(map);
36
- return best;
37
- }
38
-
39
- export default findBestLabel;
1
+ import distance from 'damerau-levenshtein';
2
+
3
+ function reduceFields(map, fields, similarity) {
4
+ return fields.reduce(function (m, field) {
5
+ if (field in m) {
6
+ return { ...m, [field]: m[field] + similarity };
7
+ }
8
+ return { ...m, [field]: similarity };
9
+ }, map);
10
+ }
11
+
12
+ function reduceTokensMap(map, entries, word) {
13
+ return entries.reduce(function (inter, [token, { fields }]) {
14
+ const { similarity } = distance(token, word);
15
+ return reduceFields(inter, fields, similarity);
16
+ }, map);
17
+ }
18
+
19
+ function findBest(map) {
20
+ let best = -1;
21
+ return Object.entries(map).reduce(function (curr, [field, score]) {
22
+ if (score > best) {
23
+ best = score;
24
+ return field;
25
+ }
26
+ return curr;
27
+ }, undefined);
28
+ }
29
+
30
+ function findBestLabel(searchTokens = [], tokensMap = {}) {
31
+ const entries = Object.entries(tokensMap);
32
+ const map = searchTokens.reduce(function (map, word) {
33
+ return reduceTokensMap(map, entries, word);
34
+ }, {});
35
+ const best = findBest(map);
36
+ return best;
37
+ }
38
+
39
+ export default findBestLabel;
@@ -1,40 +1,40 @@
1
- /* eslint-disable no-restricted-globals */
2
- import 'core-js/stable';
3
- import 'regenerator-runtime/runtime';
4
- import tokenize from './tokenize';
5
- import findBestLabel from './find-best-label';
6
-
7
- const TASKS = [];
8
- let RUN = false;
9
-
10
- function executeTask(task) {
11
- const { option, search, idTask } = task;
12
- const { tokensMap } = option;
13
- const { search: st } = tokenize({ search });
14
- const label = findBestLabel(st, tokensMap);
15
-
16
- self.postMessage({ response: label, idTask });
17
- }
18
-
19
- function appendTask(task) {
20
- TASKS.push(task);
21
- if (!RUN) {
22
- activate();
23
- }
24
- }
25
-
26
- function activate() {
27
- RUN = true;
28
- while (TASKS.length) {
29
- const task = TASKS.pop();
30
- executeTask(task);
31
- }
32
- RUN = false;
33
- }
34
-
35
- self.onmessage = function (e) {
36
- const { option, search, idTask } = e.data;
37
- if (option && search && idTask) {
38
- appendTask({ option, search, idTask });
39
- }
40
- };
1
+ /* eslint-disable no-restricted-globals */
2
+ import 'core-js/stable';
3
+ import 'regenerator-runtime/runtime';
4
+ import tokenize from './tokenize';
5
+ import findBestLabel from './find-best-label';
6
+
7
+ const TASKS = [];
8
+ let RUN = false;
9
+
10
+ function executeTask(task) {
11
+ const { option, search, idTask } = task;
12
+ const { tokensMap } = option;
13
+ const { search: st } = tokenize({ search });
14
+ const label = findBestLabel(st, tokensMap);
15
+
16
+ self.postMessage({ response: label, idTask });
17
+ }
18
+
19
+ function appendTask(task) {
20
+ TASKS.push(task);
21
+ if (!RUN) {
22
+ activate();
23
+ }
24
+ }
25
+
26
+ function activate() {
27
+ RUN = true;
28
+ while (TASKS.length) {
29
+ const task = TASKS.pop();
30
+ executeTask(task);
31
+ }
32
+ RUN = false;
33
+ }
34
+
35
+ self.onmessage = function (e) {
36
+ const { option, search, idTask } = e.data;
37
+ if (option && search && idTask) {
38
+ appendTask({ option, search, idTask });
39
+ }
40
+ };