@inseefr/lunatic 3.4.8-rc.0 → 3.4.9

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 (205) hide show
  1. package/components/CheckboxGroup/CheckboxGroup.js +3 -1
  2. package/components/CheckboxGroup/CheckboxGroup.js.map +1 -1
  3. package/components/CheckboxGroup/CustomCheckboxGroup.d.ts +1 -1
  4. package/components/CheckboxGroup/CustomCheckboxGroup.js +2 -5
  5. package/components/CheckboxGroup/CustomCheckboxGroup.js.map +1 -1
  6. package/components/CheckboxOne/CheckboxOne.js +3 -1
  7. package/components/CheckboxOne/CheckboxOne.js.map +1 -1
  8. package/components/Datepicker/Datepicker.js +7 -1
  9. package/components/Datepicker/Datepicker.js.map +1 -1
  10. package/components/Input/Input.js +3 -1
  11. package/components/Input/Input.js.map +1 -1
  12. package/components/InputNumber/InputNumber.spec.js +12 -0
  13. package/components/InputNumber/InputNumber.spec.js.map +1 -1
  14. package/components/InputNumber/InputNumberThousand.js +3 -1
  15. package/components/InputNumber/InputNumberThousand.js.map +1 -1
  16. package/components/Radio/Radio.d.ts +1 -0
  17. package/components/Radio/Radio.js +3 -1
  18. package/components/Radio/Radio.js.map +1 -1
  19. package/components/library.d.ts +1 -0
  20. package/components/shared/Checkbox/CheckboxOption.d.ts +4 -0
  21. package/components/shared/Checkbox/CheckboxOption.js +4 -2
  22. package/components/shared/Checkbox/CheckboxOption.js.map +1 -1
  23. package/components/shared/Checkbox/CheckboxOption.spec.js +14 -0
  24. package/components/shared/Checkbox/CheckboxOption.spec.js.map +1 -1
  25. package/components/shared/Radio/RadioGroup.d.ts +1 -1
  26. package/components/shared/Radio/RadioGroup.js +2 -2
  27. package/components/shared/Radio/RadioGroup.js.map +1 -1
  28. package/components/shared/Radio/RadioOption.d.ts +1 -0
  29. package/components/shared/Radio/RadioOption.js +2 -2
  30. package/components/shared/Radio/RadioOption.js.map +1 -1
  31. package/components/shared/Radio/RadioOption.spec.js +12 -0
  32. package/components/shared/Radio/RadioOption.spec.js.map +1 -1
  33. package/components/type.d.ts +3 -0
  34. package/esm/components/CheckboxGroup/CheckboxGroup.js +3 -1
  35. package/esm/components/CheckboxGroup/CheckboxGroup.js.map +1 -1
  36. package/esm/components/CheckboxGroup/CustomCheckboxGroup.d.ts +1 -1
  37. package/esm/components/CheckboxGroup/CustomCheckboxGroup.js +2 -6
  38. package/esm/components/CheckboxGroup/CustomCheckboxGroup.js.map +1 -1
  39. package/esm/components/CheckboxOne/CheckboxOne.js +3 -1
  40. package/esm/components/CheckboxOne/CheckboxOne.js.map +1 -1
  41. package/esm/components/Datepicker/Datepicker.js +7 -1
  42. package/esm/components/Datepicker/Datepicker.js.map +1 -1
  43. package/esm/components/Input/Input.js +3 -1
  44. package/esm/components/Input/Input.js.map +1 -1
  45. package/esm/components/InputNumber/InputNumber.spec.js +12 -0
  46. package/esm/components/InputNumber/InputNumber.spec.js.map +1 -1
  47. package/esm/components/InputNumber/InputNumberThousand.js +3 -1
  48. package/esm/components/InputNumber/InputNumberThousand.js.map +1 -1
  49. package/esm/components/Radio/Radio.d.ts +1 -0
  50. package/esm/components/Radio/Radio.js +3 -1
  51. package/esm/components/Radio/Radio.js.map +1 -1
  52. package/esm/components/library.d.ts +1 -0
  53. package/esm/components/shared/Checkbox/CheckboxOption.d.ts +4 -0
  54. package/esm/components/shared/Checkbox/CheckboxOption.js +4 -2
  55. package/esm/components/shared/Checkbox/CheckboxOption.js.map +1 -1
  56. package/esm/components/shared/Checkbox/CheckboxOption.spec.js +14 -0
  57. package/esm/components/shared/Checkbox/CheckboxOption.spec.js.map +1 -1
  58. package/esm/components/shared/Radio/RadioGroup.d.ts +1 -1
  59. package/esm/components/shared/Radio/RadioGroup.js +2 -2
  60. package/esm/components/shared/Radio/RadioGroup.js.map +1 -1
  61. package/esm/components/shared/Radio/RadioOption.d.ts +1 -0
  62. package/esm/components/shared/Radio/RadioOption.js +2 -2
  63. package/esm/components/shared/Radio/RadioOption.js.map +1 -1
  64. package/esm/components/shared/Radio/RadioOption.spec.js +12 -0
  65. package/esm/components/shared/Radio/RadioOption.spec.js.map +1 -1
  66. package/esm/components/type.d.ts +3 -0
  67. package/esm/index.d.ts +0 -1
  68. package/esm/index.js +0 -1
  69. package/esm/index.js.map +1 -1
  70. package/esm/main.css +5 -2
  71. package/esm/main.css.map +1 -1
  72. package/esm/type.source.d.ts +25 -40
  73. package/esm/type.source.js +1 -0
  74. package/esm/type.source.js.map +1 -1
  75. package/esm/use-lunatic/commons/fill-components/fill-components.d.ts +1 -0
  76. package/esm/use-lunatic/commons/fill-components/fill-components.js +1 -1
  77. package/esm/use-lunatic/commons/fill-components/fill-components.js.map +1 -1
  78. package/esm/use-lunatic/commons/page.js +4 -1
  79. package/esm/use-lunatic/commons/page.js.map +1 -1
  80. package/esm/use-lunatic/lunatic-context.d.ts +7 -1
  81. package/esm/use-lunatic/lunatic-context.js +7 -1
  82. package/esm/use-lunatic/lunatic-context.js.map +1 -1
  83. package/esm/use-lunatic/props/getComponentTypeProps.d.ts +3 -0
  84. package/esm/use-lunatic/props/propOptions.d.ts +1 -1
  85. package/esm/use-lunatic/props/propOptions.js.map +1 -1
  86. package/esm/use-lunatic/reducer/reducerInitializer.d.ts +2 -1
  87. package/esm/use-lunatic/reducer/reducerInitializer.js +3 -1
  88. package/esm/use-lunatic/reducer/reducerInitializer.js.map +1 -1
  89. package/esm/use-lunatic/type.d.ts +7 -0
  90. package/esm/use-lunatic/use-lunatic.js +6 -1
  91. package/esm/use-lunatic/use-lunatic.js.map +1 -1
  92. package/esm/utils/search/SearchMiniSearch.spec.d.ts +1 -0
  93. package/esm/utils/search/SearchMiniSearch.spec.js +51 -0
  94. package/esm/utils/search/SearchMiniSearch.spec.js.map +1 -0
  95. package/esm/utils/search/melauto.js +1 -1
  96. package/esm/utils/search/melauto.spec.d.ts +1 -0
  97. package/esm/utils/search/melauto.spec.js +67 -0
  98. package/esm/utils/search/melauto.spec.js.map +1 -0
  99. package/esm/utils/search/tokenizer.d.ts +7 -2
  100. package/esm/utils/search/tokenizer.js +23 -8
  101. package/esm/utils/search/tokenizer.js.map +1 -1
  102. package/esm/utils/search/tokenizer.spec.d.ts +1 -0
  103. package/esm/utils/search/tokenizer.spec.js +160 -0
  104. package/esm/utils/search/tokenizer.spec.js.map +1 -0
  105. package/index.d.ts +0 -1
  106. package/index.js +1 -4
  107. package/index.js.map +1 -1
  108. package/main.css +5 -2
  109. package/main.css.map +1 -1
  110. package/package.json +28 -1
  111. package/src/components/CheckboxGroup/CheckboxGroup.tsx +3 -0
  112. package/src/components/CheckboxGroup/CustomCheckboxGroup.tsx +3 -14
  113. package/src/components/CheckboxOne/CheckboxOne.tsx +3 -0
  114. package/src/components/Datepicker/Datepicker.tsx +8 -1
  115. package/src/components/Input/Input.tsx +4 -0
  116. package/src/components/Input/__snapshots__/Input.spec.tsx.snap +2 -0
  117. package/src/components/InputNumber/InputNumber.spec.tsx +20 -0
  118. package/src/components/InputNumber/InputNumberThousand.tsx +4 -0
  119. package/src/components/InputNumber/__snapshots__/InputNumber.spec.tsx.snap +2 -0
  120. package/src/components/Radio/Radio.tsx +3 -0
  121. package/src/components/RosterForLoop/__snapshots__/RosterForLoop.spec.tsx.snap +2 -0
  122. package/src/components/shared/Checkbox/CheckboxOption.spec.tsx +21 -0
  123. package/src/components/shared/Checkbox/CheckboxOption.tsx +19 -0
  124. package/src/components/shared/Radio/RadioGroup.tsx +3 -0
  125. package/src/components/shared/Radio/RadioOption.spec.tsx +36 -0
  126. package/src/components/shared/Radio/RadioOption.tsx +5 -1
  127. package/src/components/type.ts +3 -0
  128. package/src/css/components/CheckboxOne.scss +1 -1
  129. package/src/css/components/CheckboxOption.scss +14 -18
  130. package/src/css/components/Combobox.scss +3 -2
  131. package/src/css/components/Datepicker.scss +8 -8
  132. package/src/css/components/Declarations.scss +1 -1
  133. package/src/css/components/Dragger.scss +6 -6
  134. package/src/css/components/Duration.scss +4 -4
  135. package/src/css/components/IconButton.scss +4 -2
  136. package/src/css/components/Input.scss +3 -0
  137. package/src/css/components/Missing.scss +1 -1
  138. package/src/css/components/Roundabout.scss +3 -3
  139. package/src/css/components/Suggester.scss +2 -2
  140. package/src/css/components/Table.scss +9 -7
  141. package/src/css/main.scss +167 -167
  142. package/src/index.ts +0 -2
  143. package/src/stories/behaviour/filter/dataLoop.json +22 -0
  144. package/src/stories/behaviour/filter/filter.stories.jsx +36 -0
  145. package/src/stories/behaviour/filter/source.json +238 -0
  146. package/src/stories/behaviour/filter/sourceLoop.json +372 -0
  147. package/src/stories/behaviour/missing/missing.stories.jsx +9 -0
  148. package/src/stories/behaviour/paste/test.stories.jsx +5 -0
  149. package/src/stories/checkbox-group/checkbox-group.stories.jsx +25 -6
  150. package/src/stories/checkbox-one/checkboxOne.stories.jsx +24 -2
  151. package/src/stories/overview/overview.stories.jsx +8 -1
  152. package/src/stories/radio/radio.stories.jsx +46 -6
  153. package/src/stories/utils/default-arg-types.js +12 -1
  154. package/src/stories/utils/default-args.js +3 -0
  155. package/src/stories/utils/orchestrator.jsx +11 -1
  156. package/src/stories/utils/orchestrator.scss +9 -7
  157. package/src/stories/utils/overview.scss +0 -1
  158. package/src/type.source.ts +93 -108
  159. package/src/use-lunatic/commons/fill-components/fill-components.ts +4 -1
  160. package/src/use-lunatic/commons/page.ts +4 -1
  161. package/src/use-lunatic/lunatic-context.tsx +9 -0
  162. package/src/use-lunatic/props/propOptions.ts +2 -1
  163. package/src/use-lunatic/reducer/reducerInitializer.tsx +4 -0
  164. package/src/use-lunatic/type.ts +5 -0
  165. package/src/use-lunatic/use-lunatic.test.ts +52 -0
  166. package/src/use-lunatic/use-lunatic.ts +7 -0
  167. package/src/utils/search/SearchMiniSearch.spec.ts +58 -0
  168. package/src/utils/search/melauto.spec.ts +75 -0
  169. package/src/utils/search/melauto.ts +1 -1
  170. package/src/utils/search/tokenizer.spec.ts +205 -0
  171. package/src/utils/search/tokenizer.ts +27 -8
  172. package/tsconfig.build.tsbuildinfo +1 -1
  173. package/type.source.d.ts +25 -40
  174. package/type.source.js +1 -0
  175. package/type.source.js.map +1 -1
  176. package/use-lunatic/commons/fill-components/fill-components.d.ts +1 -0
  177. package/use-lunatic/commons/fill-components/fill-components.js +1 -1
  178. package/use-lunatic/commons/fill-components/fill-components.js.map +1 -1
  179. package/use-lunatic/commons/page.js +4 -1
  180. package/use-lunatic/commons/page.js.map +1 -1
  181. package/use-lunatic/lunatic-context.d.ts +7 -1
  182. package/use-lunatic/lunatic-context.js +9 -2
  183. package/use-lunatic/lunatic-context.js.map +1 -1
  184. package/use-lunatic/props/getComponentTypeProps.d.ts +3 -0
  185. package/use-lunatic/props/propOptions.d.ts +1 -1
  186. package/use-lunatic/props/propOptions.js.map +1 -1
  187. package/use-lunatic/reducer/reducerInitializer.d.ts +2 -1
  188. package/use-lunatic/reducer/reducerInitializer.js +3 -1
  189. package/use-lunatic/reducer/reducerInitializer.js.map +1 -1
  190. package/use-lunatic/type.d.ts +7 -0
  191. package/use-lunatic/use-lunatic.js +6 -1
  192. package/use-lunatic/use-lunatic.js.map +1 -1
  193. package/utils/search/SearchMiniSearch.spec.d.ts +1 -0
  194. package/utils/search/SearchMiniSearch.spec.js +51 -0
  195. package/utils/search/SearchMiniSearch.spec.js.map +1 -0
  196. package/utils/search/melauto.js +1 -1
  197. package/utils/search/melauto.spec.d.ts +1 -0
  198. package/utils/search/melauto.spec.js +69 -0
  199. package/utils/search/melauto.spec.js.map +1 -0
  200. package/utils/search/tokenizer.d.ts +7 -2
  201. package/utils/search/tokenizer.js +24 -8
  202. package/utils/search/tokenizer.js.map +1 -1
  203. package/utils/search/tokenizer.spec.d.ts +1 -0
  204. package/utils/search/tokenizer.spec.js +162 -0
  205. package/utils/search/tokenizer.spec.js.map +1 -0
@@ -0,0 +1,67 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { applyMelauto, melautoScore } from './melauto';
3
+ // Mock data to test the sorting and scoring
4
+ const data = [
5
+ { id: '1', label: 'Hello world' },
6
+ { id: '2', label: 'Bonjour le monde' },
7
+ { id: '3', label: 'Hello everyone' },
8
+ { id: '4', label: 'Greetings planet' },
9
+ ];
10
+ describe('applyMelauto', () => {
11
+ it('should sort data by relevance to the query', () => {
12
+ const sortedData = applyMelauto('hello', data);
13
+ const expectedSortedData = [
14
+ { id: '1', label: 'Hello world' },
15
+ { id: '3', label: 'Hello everyone' },
16
+ { id: '2', label: 'Bonjour le monde' },
17
+ { id: '4', label: 'Greetings planet' },
18
+ ];
19
+ expect(sortedData).toStrictEqual(expectedSortedData);
20
+ });
21
+ it('should return data in original order if query is empty', () => {
22
+ const sortedData = applyMelauto('', data);
23
+ expect(sortedData).toEqual(data);
24
+ });
25
+ it('should handle data without labels by using id instead', () => {
26
+ const noLabelData = [
27
+ { id: 'a' },
28
+ { id: 'b', label: 'Hello' },
29
+ { id: 'hello-w' },
30
+ ];
31
+ const sortedData = applyMelauto('hello', noLabelData);
32
+ const expectedSortedData = [
33
+ { id: 'b', label: 'Hello' },
34
+ { id: 'hello-w' },
35
+ { id: 'a' },
36
+ ];
37
+ expect(sortedData).toStrictEqual(expectedSortedData);
38
+ });
39
+ });
40
+ describe('melautoScore', () => {
41
+ it('should return a non-null score', () => {
42
+ const score = melautoScore('Hello world', 'hello');
43
+ const expectedScore = 1;
44
+ expect(score).toBeCloseTo(expectedScore, 2);
45
+ });
46
+ it('should give a higher score for a closer match', () => {
47
+ const score1 = melautoScore('Hello beautiful world', 'hello world');
48
+ const score2 = melautoScore('Hello beautiful world', 'hello');
49
+ expect(score1).toBeGreaterThan(score2);
50
+ });
51
+ it('should give the same score for a same query if the comparison string is longer', () => {
52
+ const score1 = melautoScore('Hello world', 'hello');
53
+ const score2 = melautoScore('Hello beautiful world', 'hello');
54
+ expect(score1).toBeCloseTo(score2, 2);
55
+ });
56
+ it('should calculate a null score', () => {
57
+ const score = melautoScore('Greetings planet', 'hello');
58
+ const expectedScore = 0;
59
+ expect(score).toBe(expectedScore);
60
+ });
61
+ it('should handle accent and special characters correctly', () => {
62
+ const score1 = melautoScore('Héllo wörld', 'hello world');
63
+ const score2 = melautoScore('Hello world', 'héllo-wOrld');
64
+ expect(score1).toBeCloseTo(score2, 2);
65
+ });
66
+ });
67
+ //# sourceMappingURL=melauto.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"melauto.spec.js","sourceRoot":"","sources":["../../../src/utils/search/melauto.spec.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import type { SearchInfo } from './SearchInterface';
2
2
  import type { ItemOf } from '../../type.utils';
3
3
  /**
4
- * Generates a tokenize method
4
+ * Generates a tokenize method.
5
+ * When used for tokenizing a search query instead of the indexing, the fieldName is undefined.
5
6
  */
6
7
  export declare const tokenizer: (info: SearchInfo) => (str: string, fieldName?: string) => string[];
7
8
  /**
@@ -11,4 +12,8 @@ export declare const tokenizeQuery: (str: string, info: SearchInfo["queryParser"
11
12
  /**
12
13
  * Tokenizer used for indexing (based on "fields" specification)
13
14
  */
14
- export declare const tokenizeIndex: (str: string, info: ItemOf<SearchInfo["fields"]>) => string[];
15
+ export declare const tokenizeIndex: (str: string, info: ItemOf<SearchInfo["fields"]>, stopWords?: string[]) => string[];
16
+ /**
17
+ * remove from a string all the words that are included in a stopwords list
18
+ */
19
+ export declare function filterStopWords(input: string, stopWords?: string[]): string;
@@ -1,10 +1,12 @@
1
1
  /**
2
- * Generates a tokenize method
2
+ * Generates a tokenize method.
3
+ * When used for tokenizing a search query instead of the indexing, the fieldName is undefined.
3
4
  */
4
5
  export const tokenizer = (info) => (str, fieldName) => {
5
6
  const field = info.fields.find((f) => f.name === fieldName);
7
+ const stopWords = info.stopWords;
6
8
  return field
7
- ? tokenizeIndex(str, field)
9
+ ? tokenizeIndex(str, field, stopWords)
8
10
  : tokenizeQuery(str, info.queryParser);
9
11
  };
10
12
  /**
@@ -18,8 +20,8 @@ export const tokenizeQuery = (str, info) => {
18
20
  .filter((w) => w.length > 0);
19
21
  }
20
22
  const wordRegex = info.params.pattern && info.params.pattern !== 'soft'
21
- ? /\w+/gi
22
- : new RegExp(info.params.pattern, 'gi');
23
+ ? new RegExp(info.params.pattern, 'gi')
24
+ : /\w+/gi;
23
25
  const minLength = (_a = info.params.min) !== null && _a !== void 0 ? _a : 1;
24
26
  return ((_c = (_b = normalizeStr(str)
25
27
  .match(wordRegex)) === null || _b === void 0 ? void 0 : _b.filter((w) => w.length >= minLength)) !== null && _c !== void 0 ? _c : []);
@@ -27,11 +29,11 @@ export const tokenizeQuery = (str, info) => {
27
29
  /**
28
30
  * Tokenizer used for indexing (based on "fields" specification)
29
31
  */
30
- export const tokenizeIndex = (str, info) => {
32
+ export const tokenizeIndex = (str, info, stopWords) => {
31
33
  var _a, _b, _c;
32
34
  const wordRegex = info.rules && info.rules !== 'soft'
33
- ? /\w+/gi
34
- : new RegExp(info.rules[0], 'gi');
35
+ ? new RegExp(info.rules[0], 'gi')
36
+ : /\w+/gi;
35
37
  const minLength = (_a = info.min) !== null && _a !== void 0 ? _a : 1;
36
38
  // For synonyms, add the synonyms to the string
37
39
  if (info.synonyms) {
@@ -40,7 +42,8 @@ export const tokenizeIndex = (str, info) => {
40
42
  str = str.replaceAll(source, `${source} ${synonyms}`);
41
43
  }
42
44
  }
43
- return ((_c = (_b = normalizeStr(str)
45
+ // We remove the stopWords from the string
46
+ return ((_c = (_b = filterStopWords(normalizeStr(str), stopWords)
44
47
  .match(wordRegex)) === null || _b === void 0 ? void 0 : _b.filter((w) => w.length >= minLength)) !== null && _c !== void 0 ? _c : []);
45
48
  };
46
49
  /**
@@ -54,4 +57,16 @@ const normalizeStr = (str) => {
54
57
  .replace(/[\u0300-\u036f]/g, '')
55
58
  .toLowerCase();
56
59
  };
60
+ /**
61
+ * remove from a string all the words that are included in a stopwords list
62
+ */
63
+ export function filterStopWords(input, stopWords) {
64
+ if (!stopWords) {
65
+ return input;
66
+ }
67
+ const lowerCaseStopWords = stopWords.map((word) => word.toLowerCase());
68
+ const words = input.split(/\s+/);
69
+ const filteredWords = words.filter((word) => !lowerCaseStopWords.includes(word.toLowerCase()));
70
+ return filteredWords.join(' ');
71
+ }
57
72
  //# sourceMappingURL=tokenizer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../../src/utils/search/tokenizer.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GACrB,CAAC,IAAgB,EAAE,EAAE,CAAC,CAAC,GAAW,EAAE,SAAkB,EAAE,EAAE;IACzD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAE5D,OAAO,KAAK;QACX,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC;QAC3B,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACzC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,IAA+B,EAAE,EAAE;;IAC7E,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,YAAY,CAAC,GAAG,CAAC;aACtB,KAAK,CAAC,YAAY,CAAC;aACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,SAAS,GACd,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM;QACpD,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,mCAAI,CAAC,CAAC;IAEvC,OAAO,CACN,MAAA,MAAA,YAAY,CAAC,GAAG,CAAC;SACf,KAAK,CAAC,SAAS,CAAC,0CACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,mCAAI,EAAE,CAC7C,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC5B,GAAW,EACX,IAAkC,EACjC,EAAE;;IACH,MAAM,SAAS,GACd,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;QAClC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,GAAG,mCAAI,CAAC,CAAC;IAEhC,+CAA+C;IAC/C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjD,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;IACF,CAAC;IAED,OAAO,CACN,MAAA,MAAA,YAAY,CAAC,GAAG,CAAC;SACf,KAAK,CAAC,SAAS,CAAC,0CACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,mCAAI,EAAE,CAC7C,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;IACpC,OAAO,GAAG;SACR,SAAS,CAAC,KAAK,CAAC;SAChB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,WAAW,EAAE,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../../src/utils/search/tokenizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,160 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { tokenizer, tokenizeQuery, tokenizeIndex, filterStopWords, } from './tokenizer';
3
+ const mockSearchInfo = {
4
+ name: 'Products',
5
+ fields: [
6
+ {
7
+ name: 'title',
8
+ min: 3,
9
+ rules: ['[\\w]+'],
10
+ synonyms: {
11
+ car: ['vehicle', 'automobile'],
12
+ },
13
+ },
14
+ ],
15
+ queryParser: {
16
+ type: 'tokenized',
17
+ params: {
18
+ language: 'English',
19
+ pattern: '[\\w.]+',
20
+ min: 2,
21
+ },
22
+ },
23
+ };
24
+ describe('filterStopWords', () => {
25
+ it('should remove only stopwords from the input string', () => {
26
+ const input = 'This is a test.';
27
+ const stopWords = ['is', 'a'];
28
+ const result = filterStopWords(input, stopWords);
29
+ expect(result).toBe('This test.');
30
+ });
31
+ it('should not alter words that are substrings of stopwords', () => {
32
+ const input = 'this is a testing example';
33
+ const stopWords = ['test'];
34
+ const result = filterStopWords(input, stopWords);
35
+ expect(result).toBe('this is a testing example');
36
+ });
37
+ it('should be case-insensitive', () => {
38
+ const input = 'This Is A Test.';
39
+ const stopWords = ['is', 'a'];
40
+ const result = filterStopWords(input, stopWords);
41
+ expect(result).toBe('This Test.');
42
+ });
43
+ it('should return the input string unchanged if stopWords is undefined', () => {
44
+ const input = 'This is a test.';
45
+ const result = filterStopWords(input);
46
+ expect(result).toBe(input);
47
+ });
48
+ it('should return the input string unchanged if stopWords is a empty array', () => {
49
+ const input = 'This is a test.';
50
+ const stopWords = [];
51
+ const result = filterStopWords(input, stopWords);
52
+ expect(result).toBe(input);
53
+ });
54
+ it('should return an empty string if all words are stopwords', () => {
55
+ const input = 'this is a test';
56
+ const stopWords = ['this', 'is', 'a', 'test'];
57
+ const result = filterStopWords(input, stopWords);
58
+ expect(result).toBe('');
59
+ });
60
+ it('should handle strings with multiple spaces correctly', () => {
61
+ const input = 'This is a test.';
62
+ const stopWords = ['is', 'a'];
63
+ const result = filterStopWords(input, stopWords);
64
+ expect(result).toBe('This test.');
65
+ });
66
+ it('should handle empty input string', () => {
67
+ const input = '';
68
+ const stopWords = ['is', 'a'];
69
+ const result = filterStopWords(input, stopWords);
70
+ expect(result).toBe('');
71
+ });
72
+ it('should handle punctuation correctly', () => {
73
+ const input = 'Hello, world! This is a test.';
74
+ const stopWords = ['is', 'a'];
75
+ const result = filterStopWords(input, stopWords);
76
+ expect(result).toBe('Hello, world! This test.');
77
+ });
78
+ });
79
+ describe('tokenizeQuery', () => {
80
+ it('should tokenize based on soft type', () => {
81
+ const queryParser = { type: 'soft' };
82
+ const result = tokenizeQuery('This is a test!', queryParser);
83
+ expect(result).toEqual(['this', 'is', 'a', 'test']);
84
+ });
85
+ it('should tokenize with a custom regex and a min', () => {
86
+ const queryParser = {
87
+ type: 'tokenized',
88
+ params: { pattern: '[\\w.]+', min: 3 },
89
+ };
90
+ const result = tokenizeQuery('This is a test !', queryParser);
91
+ expect(result).toEqual(['this', 'test']);
92
+ });
93
+ it('should normalize the input', () => {
94
+ const queryParser = {
95
+ type: 'tokenized',
96
+ params: { pattern: '\\w+', min: 1 },
97
+ };
98
+ const result = tokenizeQuery('Élève Étudiant!', queryParser);
99
+ expect(result).toEqual(['eleve', 'etudiant']);
100
+ });
101
+ it('should return an empty array for unmatched patterns', () => {
102
+ const queryParser = {
103
+ type: 'tokenized',
104
+ params: { language: 'French', pattern: '[\\d.]+', min: 1 }, // only digits
105
+ };
106
+ const result = tokenizeQuery('No numbers here!', queryParser);
107
+ expect(result).toEqual([]);
108
+ });
109
+ });
110
+ describe('tokenizeIndex', () => {
111
+ it('should filter out words shorter than the required minimum length', () => {
112
+ const fieldInfo = mockSearchInfo.fields[0];
113
+ const result = tokenizeIndex('The bus is so slow', fieldInfo);
114
+ expect(result).toEqual(['the', 'bus', 'slow']);
115
+ });
116
+ it('should tokenize and apply synonyms', () => {
117
+ const fieldInfo = mockSearchInfo.fields[0];
118
+ const result = tokenizeIndex('The car is fast', fieldInfo);
119
+ expect(result).toEqual(['the', 'car', 'vehicle', 'automobile', 'fast']);
120
+ });
121
+ it('should normalize the input', () => {
122
+ const fieldInfo = mockSearchInfo.fields[0];
123
+ const result = tokenizeIndex('Élève Étudiant!', fieldInfo);
124
+ expect(result).toEqual(['eleve', 'etudiant']);
125
+ });
126
+ it('should filter out stopWords', () => {
127
+ const fieldInfo = { ...mockSearchInfo.fields[0], min: 1 };
128
+ const stopWords = ['is', 'the', 'of', 'this', 'a'];
129
+ const result = tokenizeIndex('This is a test of stopWords !', fieldInfo, stopWords);
130
+ expect(result).toEqual(['test', 'stopwords']);
131
+ });
132
+ it('should return an empty array for unmatched patterns', () => {
133
+ const fieldInfo = { ...mockSearchInfo.fields[0], rules: ['\\d+'] }; // Only numbers
134
+ const result = tokenizeIndex('No numbers here', fieldInfo);
135
+ expect(result).toEqual([]);
136
+ });
137
+ });
138
+ describe('tokenizer', () => {
139
+ it('should tokenize using field rules', () => {
140
+ const tokenize = tokenizer(mockSearchInfo);
141
+ const result = tokenize('The car is fast', 'title');
142
+ expect(result).toEqual(['the', 'car', 'vehicle', 'automobile', 'fast']);
143
+ });
144
+ it('should tokenize using query parser when field is not found', () => {
145
+ const tokenize = tokenizer(mockSearchInfo);
146
+ const result = tokenize('This is a test!');
147
+ expect(result).toEqual(['this', 'is', 'test']);
148
+ });
149
+ it('should normalize the input', () => {
150
+ const tokenize = tokenizer(mockSearchInfo);
151
+ const result = tokenize('Élève Étudiant!');
152
+ expect(result).toEqual(['eleve', 'etudiant']);
153
+ });
154
+ it('should handle empty strings', () => {
155
+ const tokenize = tokenizer(mockSearchInfo);
156
+ expect(tokenize('', 'title')).toEqual([]);
157
+ expect(tokenize('')).toEqual([]);
158
+ });
159
+ });
160
+ //# sourceMappingURL=tokenizer.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.spec.js","sourceRoot":"","sources":["../../../src/utils/search/tokenizer.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACN,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,GACf,MAAM,aAAa,CAAC;AAGrB,MAAM,cAAc,GAAe;IAClC,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE;QACP;YACC,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,CAAC;YACN,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,QAAQ,EAAE;gBACT,GAAG,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;aAC9B;SACD;KACD;IACD,WAAW,EAAE;QACZ,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACP,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,SAAS;YAClB,GAAG,EAAE,CAAC;SACN;KACD;CACD,CAAC;AAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC7D,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAChC,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QAClE,MAAM,KAAK,GAAG,2BAA2B,CAAC;QAC1C,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACrC,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAChC,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC7E,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAChC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QACjF,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAChC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QACnE,MAAM,KAAK,GAAG,gBAAgB,CAAC;QAC/B,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC/D,MAAM,KAAK,GAAG,qBAAqB,CAAC;QACpC,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC3C,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC9C,MAAM,KAAK,GAAG,+BAA+B,CAAC;QAC9C,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC7C,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,MAAM,EAA+B,CAAC;QAElE,MAAM,MAAM,GAAG,aAAa,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACxD,MAAM,WAAW,GAAG;YACnB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;SACT,CAAC;QAE/B,MAAM,MAAM,GAAG,aAAa,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACrC,MAAM,WAAW,GAAG;YACnB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE;SACN,CAAC;QAE/B,MAAM,MAAM,GAAG,aAAa,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC9D,MAAM,WAAW,GAAG;YACnB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,cAAc;SAC7C,CAAC;QAE/B,MAAM,MAAM,GAAG,aAAa,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC3E,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,aAAa,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC7C,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,aAAa,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACrC,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,aAAa,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACtC,MAAM,SAAS,GAAG,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,aAAa,CAC3B,+BAA+B,EAC/B,SAAS,EACT,SAAS,CACT,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC9D,MAAM,SAAS,GAAG,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,eAAe;QAEnF,MAAM,MAAM,GAAG,aAAa,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACrE,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QAE3C,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/index.d.ts CHANGED
@@ -7,7 +7,6 @@ export { ModalControls } from './components/shared/ModalControls/ModalControls';
7
7
  export { Button } from './components/shared/Button/Button';
8
8
  export { LunaticComponents } from './components/LunaticComponents';
9
9
  export { useLunatic } from './use-lunatic/use-lunatic';
10
- export { interpretVTL, getVTLCompatibleValue } from './utils/vtl';
11
10
  export type { LunaticComponentDefinition, LunaticControl, LunaticData, LunaticValues, LunaticError, LunaticExpression, LunaticVariable, LunaticCollectedValue, LunaticStateVariable, LunaticState, LunaticPager, LunaticOptions, LunaticChangesHandler, } from './use-lunatic/type';
12
11
  export type { LunaticComponentProps, LunaticExtraProps, } from './components/type';
13
12
  export type { LunaticSlotComponents } from './components/shared/HOC/slottableComponent';
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VTLInterpretationError = exports.VTLMissingDependency = exports.VTLExpressionError = exports.VTLMissingDependencies = exports.getVTLCompatibleValue = exports.interpretVTL = exports.useLunatic = exports.LunaticComponents = exports.Button = exports.ModalControls = exports.components = void 0;
3
+ exports.VTLInterpretationError = exports.VTLMissingDependency = exports.VTLExpressionError = exports.VTLMissingDependencies = exports.useLunatic = exports.LunaticComponents = exports.Button = exports.ModalControls = exports.components = void 0;
4
4
  /**
5
5
  * We should remove this export to avoid `import * as lunatic from "@inseefr/lunatic"` in orchestrators
6
6
  * but this is a breaking change
@@ -15,9 +15,6 @@ var LunaticComponents_1 = require("./components/LunaticComponents");
15
15
  Object.defineProperty(exports, "LunaticComponents", { enumerable: true, get: function () { return LunaticComponents_1.LunaticComponents; } });
16
16
  var use_lunatic_1 = require("./use-lunatic/use-lunatic");
17
17
  Object.defineProperty(exports, "useLunatic", { enumerable: true, get: function () { return use_lunatic_1.useLunatic; } });
18
- var vtl_1 = require("./utils/vtl");
19
- Object.defineProperty(exports, "interpretVTL", { enumerable: true, get: function () { return vtl_1.interpretVTL; } });
20
- Object.defineProperty(exports, "getVTLCompatibleValue", { enumerable: true, get: function () { return vtl_1.getVTLCompatibleValue; } });
21
18
  // Export errors (useful for typeof)
22
19
  var errors_1 = require("./use-lunatic/commons/variables/errors");
23
20
  Object.defineProperty(exports, "VTLMissingDependencies", { enumerable: true, get: function () { return errors_1.VTLMissingDependencies; } });
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,gDAA6D;AAApD,qGAAA,OAAO,OAAc;AAC9B,iFAAgF;AAAvE,8GAAA,aAAa,OAAA;AACtB,4DAA2D;AAAlD,gGAAA,MAAM,OAAA;AAEf,oEAAmE;AAA1D,sHAAA,iBAAiB,OAAA;AAC1B,yDAAuD;AAA9C,yGAAA,UAAU,OAAA;AAEnB,mCAAkE;AAAzD,mGAAA,YAAY,OAAA;AAAE,4GAAA,qBAAqB,OAAA;AAyB5C,oCAAoC;AACpC,iEAKgD;AAJ/C,gHAAA,sBAAsB,OAAA;AACtB,4GAAA,kBAAkB,OAAA;AAClB,8GAAA,oBAAoB,OAAA;AACpB,gHAAA,sBAAsB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,gDAA6D;AAApD,qGAAA,OAAO,OAAc;AAC9B,iFAAgF;AAAvE,8GAAA,aAAa,OAAA;AACtB,4DAA2D;AAAlD,gGAAA,MAAM,OAAA;AAEf,oEAAmE;AAA1D,sHAAA,iBAAiB,OAAA;AAC1B,yDAAuD;AAA9C,yGAAA,UAAU,OAAA;AAyBnB,oCAAoC;AACpC,iEAKgD;AAJ/C,gHAAA,sBAAsB,OAAA;AACtB,4GAAA,kBAAkB,OAAA;AAClB,8GAAA,oBAAoB,OAAA;AACpB,gHAAA,sBAAsB,OAAA"}
package/main.css CHANGED
@@ -212,7 +212,7 @@
212
212
  height: 18px;
213
213
  flex: none;
214
214
  border-radius: 2px;
215
- color: #FFF;
215
+ color: #fff;
216
216
  border: 2px solid var(--color-primary-dark);
217
217
  }
218
218
  .lunatic-input-checkbox__icon svg {
@@ -579,6 +579,9 @@ fieldset {
579
579
  min-width: 0;
580
580
  box-sizing: content-box;
581
581
  background: none;
582
+ overflow: hidden;
583
+ text-overflow: ellipsis;
584
+ white-space: nowrap;
582
585
  }
583
586
  .lunatic-component .lunatic-input input:focus,
584
587
  .lunatic-component .lunatic-datepicker input:focus,
@@ -940,7 +943,7 @@ fieldset {
940
943
  top: 0;
941
944
  z-index: 2;
942
945
  border-collapse: separate;
943
- background-color: #FFF;
946
+ background-color: #fff;
944
947
  border-top: none !important;
945
948
  box-shadow: inset 0 1px 0 var(--color-primary-dark), inset 0 -1px 0 var(--color-primary-dark);
946
949
  }
package/main.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../src/css/main.scss","../src/css/components/Button.scss","../src/css/components/CheckboxGroup.scss","../src/css/components/CheckboxOne.scss","../src/css/components/CheckboxOption.scss","../src/css/components/Combobox.scss","../src/css/components/ComponentErrors.scss","../src/css/components/Datepicker.scss","../src/css/components/Declarations.scss","../src/css/components/Dropdown.scss","../src/css/components/Duration.scss","../src/css/components/Fieldset.scss","../src/css/components/IconButton.scss","../src/css/components/Input.scss","../src/css/components/InputNumber.scss","../src/css/components/Label.scss","../src/css/components/Missing.scss","../src/css/components/ModalControls.scss","../src/css/components/RosterForLoop.scss","../src/css/components/Roundabout.scss","../src/css/components/Sequence.scss","../src/css/components/Suggester.scss","../src/css/components/Table.scss","../src/css/components/Textarea.scss","../src/css/components/VariableStatus.scss","../src/css/components/Dragger.scss","../src/css/components/SuggesterWidget.scss"],"names":[],"mappings":";AAAA;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;;;AAkBF;AAyBE;AA+BA;;AAvDA;EACE;EACA;;AAEF;EACE;EACA;;AAIF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;;AASF;EACE;;AAEA;EACE;EACA;;AACA;EACE;;AAGJ;EACE;EACA;;AACA;EACE;;AAGJ;EACE;;AAEF;EACE;;AAMJ;EAxEA;EACA;;AA0EA;EA3EA;EACA;;AA6EA;EACE;EA1EF;EACA;EACA;;AAEA;EACE;;AAwEF;EA7EA;EACA;EACA;;AAEA;EACE;;AA4EF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AACA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEE;EACE;;AAEF;EACE;;;AAMR;EACE;;;AC1JF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EAEC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;;;ACnBA;EACC;EACA;;AAGF;EACC;EACA;EACA;;;ACRA;EACC;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AACA;EACC;;;ACdJ;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;;;AAGD;AAAA;EAEC;;AAEA;AAAA;EAEC;EACA;;;AAQD;AAAA;EACC;;;AAMF;EACC;;AAEA;EACC;;;AAKF;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AC9DD;EACC;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EAEA;;AACA;EACC;EACA;EACA;;AAEC;EACC;EACA;EACA;;AACA;EACC;;AAED;EACC;EACA;EACA;EACA;EApCL;;AAuCK;EAhDL;EASA;EAPA;EACA;EACA;EACA;;AAgDI;EACC;EACA;EACA;EACA;EAhDL;EAkDK;EACA;EACA;EA7DL;EASA;EAPA;EACA;EACA;EACA;;AA2DK;EACC;EACA;EACA;;AAGD;EACC;;AAKH;EAnEH;EAqEI;EACA;EACA;EACA;;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAED;EACC;EACA;;AAQN;EACC;EACA;EACA;EACA;;AACA;EACC;;AAIA;EACC;EACA;EACA;EACA;;AAKH;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAEA;EACC;;AACA;EACC;EACA;EACA;EACA;EAKA;;AAJA;EACC;;AAMF;EAEC;EACA;EACA;EACA;;AACA;EACC;;AAKH;AAAA;AAAA;AAAA;EAIC;EACA;EACA;EACA;;AAIA;EACC;;AAED;EAnMH;EACA;EACA;;;ACFA;EACC;;;ACFF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AChBD;EACC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAIF;EACC;EACA;;AACA;EACC;;;ACxBD;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;;ACjCJ;AAAA;EAEE;EACA;EACA;;;AAEF;EACE;;;ACPF;EACC;EACA;EACA;;;ACHD;EACC;EACA;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;AAGD;EACC;EACA;;;AC9BA;AAAA;AAAA;AAAA;EACC;;AACA;AAAA;AAAA;AAAA;EACC;EACA;EACA;;AAGF;AAAA;AAAA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;AAAA;AAAA;AAAA;EACC;EACA;;AAED;AAAA;AAAA;AAAA;EACC;;AAED;AAAA;AAAA;AAAA;EACC;;AAIF;AAAA;AAAA;AAAA;EACC;EACA;EACA;;;ACnCF;EACC;;AAEA;EACC;;;ACNF;EACC;EACA;;;ACHF;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;ACzBD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;;AAGD;EACC;EACA;;AACA;EACC;;AAMF;AAAA;AAAA;AAAA;EAIC;EACA;;AAGF;EACC;EACA;;;AClBF;EACC;EACA;EACA;EACA;;AAEC;EACC;EACA;;;ACnCH;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;AAAA;EAEC;;;AAED;AAAA;EAEC;;;AC5BA;EACC;EACA;EACA;EACA;EACA;EACA;;;AC8BD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EACC;;AACA;EACC;EACA;EACA;;AAQC;EACC;EACA;EACA;;AACA;EACC;;AAED;EACC;EACA;EACA;EACA;EAvEN;;AA0EM;EAlEN;EARA;EAUA;EACA;EACA;EACA;;AAkEK;EACC;EACA;EACA;EACA;EACA;EApFN;;AAuFM;EACC;EAhFP;EARA;EAUA;EACA;EACA;EACA;;AA8EM;EACC;EACA;EACA;;AAGD;EACC;;AAKH;EAvGJ;EAyGK;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;;AAED;EACC;EACA;;AASP;EACC;EACA;EACA;;AAEA;EACC;;AAjIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAsHA;EACC;;AArIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AA0HA;EACC;;AAzIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AA+HA;EACC;EACA;;AACA;EACC;EACA;EACA;;;ACrKJ;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;AAAA;EAEC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EAEA;EACA;;AAIA;AAAA;EAEC;EACA;EACA;;;AAKD;EACE;EACA;;;ACtCH;EACC;EACA;;;ACLF;EACC;AAMA;AAUA;;AAdA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEC;EACC;;AAED;EACC;;;AC/BJ;EACE;EACA;EACA;EACA;EACA;EACA;;;ACaD;EACC;EACA;;AAED;EACC;EACA;EACA,kBA1BO;EA2BP;EACA;EACA;EACA;;AAlBD;EACC;EACA;;AAoBA;EACC;EACA;EACA;EACA;;AACA;EACC;EACA,OAxCK;EAyCL;EACA;EACA;;AAED;EACC,OA9CK;EA+CL;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;EACA,kBA1DK;;AA4DL;EACC;EACA;;AAGD;EACC,kBAjEI;EAkEJ;EACA;;AAIA;EACC;EACA;EACA,MA5EG;;AAiFN;EACC;EACA;EACA;EACA;;AAGC;EACC,cAvFG;EAwFH;EAMA;;AALA;EACC,kBA1FE;EA2FF;;AAOH;EACC;EACA;EACA;;AACA;EACC,kBAxGG;EAyGH;;AAMJ;EACC;EACA;EACA;EACA,kBApHM;EAqHN;EACA;EACA;EACA;EACA;;AAGC;EACC;;AAIF;EACC;EACA;EACA,MAnIK;;AAWR;EACC;EACA;;AA4HA;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA,kBAnJK;EAoJL;EACA;;AAEA;EACC;;AAGD;EACC,kBA1JI;EA2JJ;;AAGD;EACC;;AACA;EACC;;AAED;EACC;EACA;EACA,MAzKG","file":"main.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../src/css/main.scss","../src/css/components/Button.scss","../src/css/components/CheckboxGroup.scss","../src/css/components/CheckboxOne.scss","../src/css/components/CheckboxOption.scss","../src/css/components/Combobox.scss","../src/css/components/ComponentErrors.scss","../src/css/components/Datepicker.scss","../src/css/components/Declarations.scss","../src/css/components/Dropdown.scss","../src/css/components/Duration.scss","../src/css/components/Fieldset.scss","../src/css/components/IconButton.scss","../src/css/components/Input.scss","../src/css/components/InputNumber.scss","../src/css/components/Label.scss","../src/css/components/Missing.scss","../src/css/components/ModalControls.scss","../src/css/components/RosterForLoop.scss","../src/css/components/Roundabout.scss","../src/css/components/Sequence.scss","../src/css/components/Suggester.scss","../src/css/components/Table.scss","../src/css/components/Textarea.scss","../src/css/components/VariableStatus.scss","../src/css/components/Dragger.scss","../src/css/components/SuggesterWidget.scss"],"names":[],"mappings":";AAAA;EACC;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;;;AAkBD;AAyBC;AA+BA;;AAvDA;EACC;EACA;;AAED;EACC;EACA;;AAID;AAAA;AAAA;AAAA;AAAA;EAKC;EACA;EACA;EACA;EACA;EACA;EACA;;AASD;EACC;;AAEA;EACC;EACA;;AACA;EACC;;AAGF;EACC;EACA;;AACA;EACC;;AAGF;EACC;;AAED;EACC;;AAMF;EAxEA;EACA;;AA0EA;EA3EA;EACA;;AA6EA;EACC;EA1ED;EACA;EACA;;AAEA;EACC;;AAwED;EA7EA;EACA;EACA;;AAEA;EACC;;AA4ED;EACC;;AAGD;EACC;;AAGD;EACC;EACA;;AAGD;EACC;;AACA;EACC;EACA;EACA;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEC;EACC;;AAED;EACC;;;AAMJ;EACC;;;AC1JD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EAEC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;;;ACnBA;EACC;EACA;;AAGF;EACC;EACA;EACA;;;ACRA;EACC;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AACA;EACC;;;ACdJ;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;;;AAGD;AAAA;EAEC;;AAEA;AAAA;EACC;EACA;;;AAMD;AAAA;EACC;;;AAMF;EACC;;AAEA;EACC;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AC1DD;EACC;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EAEA;;AACA;EACC;EACA;EACA;;AAEC;EACC;EACA;EACA;;AACA;EACC;;AAED;EACC;EACA;EACA;EACA;EApCL;;AAuCK;EAhDL;EASA;EAPA;EACA;EACA;EACA;;AAgDI;EACC;EACA;EACA;EACA;EAhDL;EAkDK;EACA;EACA;EA7DL;EASA;EAPA;EACA;EACA;EACA;;AA2DK;EACC;EACA;EACA;;AAGD;EACC;;AAKH;EAnEH;EAqEI;EACA;EACA;EACA,YACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAED;EACC;EACA;;AAQN;EACC;EACA;EACA;EACA;;AACA;EACC;;AAIA;EACC;EACA;EACA;EACA;;AAKH;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAEA;EACC;;AACA;EACC;EACA;EACA;EACA;EAKA;;AAJA;EACC;;AAMF;EAEC;EACA;EACA;EACA;;AACA;EACC;;AAKH;AAAA;AAAA;AAAA;EAIC;EACA;EACA;EACA;;AAIA;EACC;;AAED;EApMH;EACA;EACA;;;ACFA;EACC;;;ACFF;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AChBA;EACC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAIF;EACC;EACA;;AACA;EACC;;;ACxBD;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;;ACjCJ;AAAA;EAEC;EACA;EACA;;;AAED;EACC;;;ACPD;EACC;EACA;EACA;;;ACHD;EACC;EACA;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACC;;AAID;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;AAGD;EACC;EACA;;;AChCA;AAAA;AAAA;AAAA;EACC;;AACA;AAAA;AAAA;AAAA;EACC;EACA;EACA;;AAGF;AAAA;AAAA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;AAAA;AAAA;AAAA;EACC;EACA;;AAED;AAAA;AAAA;AAAA;EACC;;AAED;AAAA;AAAA;AAAA;EACC;;AAIF;AAAA;AAAA;AAAA;EACC;EACA;EACA;;;ACtCF;EACC;;AAEA;EACC;;;ACNF;EACC;EACA;;;ACHF;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;ACzBD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;;AAGD;EACC;EACA;;AACA;EACC;;AAMF;AAAA;AAAA;AAAA;EAIC;EACA;;AAGF;EACC;EACA;;;AClBF;EACC;EACA;EACA;EACA;;AAEC;EACC;EACA;;;ACnCH;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;AAAA;EAEC;;;AAED;AAAA;EAEC;;;AC5BA;EACC;EACA;EACA;EACA;EACA;EACA;;;AC8BD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EACC;;AACA;EACC;EACA;EACA;;AAOC;EACC;EACA;EACA;;AACA;EACC;;AAED;EACC;EACA;EACA;EACA;EAtEN;;AAyEM;EAjEN;EARA;EAUA;EACA;EACA;EACA;;AAiEK;EACC;EACA;EACA;EACA;EACA;EAnFN;;AAsFM;EACC;EA/EP;EARA;EAUA;EACA;EACA;EACA;;AA6EM;EACC;EACA;EACA;;AAGD;EACC;;AAKH;EAtGJ;EAwGK;EACA;EACA;EACA,YACC;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;;AAED;EACC;EACA;;AASP;EACC;EACA;EACA;;AAEA;EACC;;AAjIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAsHA;EACC;;AArIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AA0HA;EACC;;AAzIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AA+HA;EACC;EACA;;AACA;EACC;EACA;EACA;;;ACrKJ;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;AAAA;EAEC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EAEA;EACA,YACC;;AAKD;AAAA;EAEC;EACA;EACA;;;AAKH;EACC;EACA;;;ACxCA;EACC;EACA;;;ACLF;EACC;AAMA;AAUA;;AAdA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEC;EACC;;AAED;EACC;;;AC/BJ;EACC;EACA;EACA;EACA;EACA;EACA;;;ACaA;EACC;EACA;;AAED;EACC;EACA;EACA,kBA1BO;EA2BP;EACA;EACA;EACA;;AAlBD;EACC;EACA;;AAoBA;EACC;EACA;EACA;EACA;;AACA;EACC;EACA,OAxCK;EAyCL;EACA;EACA;;AAED;EACC,OA9CK;EA+CL;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;EACA,kBA1DK;;AA4DL;EACC;EACA;;AAGD;EACC,kBAjEI;EAkEJ;EACA;;AAIA;EACC;EACA;EACA,MA5EG;;AAiFN;EACC;EACA;EACA;EACA;;AAGC;EACC,cAvFG;EAwFH;EAMA;;AALA;EACC,kBA1FE;EA2FF;;AAOH;EACC;EACA;EACA;;AACA;EACC,kBAxGG;EAyGH;;AAMJ;EACC;EACA;EACA;EACA,kBApHM;EAqHN;EACA;EACA;EACA;EACA;;AAGC;EACC;;AAIF;EACC;EACA;EACA,MAnIK;;AAWR;EACC;EACA;;AA4HA;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA,kBAnJK;EAoJL;EACA;;AAEA;EACC;;AAGD;EACC,kBA1JI;EA2JJ;;AAGD;EACC;;AACA;EACC;;AAED;EACC;EACA;EACA,MAzKG","file":"main.css"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inseefr/lunatic",
3
- "version": "3.4.8-rc.0",
3
+ "version": "3.4.9",
4
4
  "description": "Library of questionnaire components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -241,6 +241,10 @@
241
241
  "src/stories/behaviour/controls/roundabout.json",
242
242
  "src/stories/behaviour/controls/simple-numeric.json",
243
243
  "src/stories/behaviour/controls/simple.json",
244
+ "src/stories/behaviour/filter/dataLoop.json",
245
+ "src/stories/behaviour/filter/filter.stories.jsx",
246
+ "src/stories/behaviour/filter/source.json",
247
+ "src/stories/behaviour/filter/sourceLoop.json",
244
248
  "src/stories/behaviour/missing/missing.stories.jsx",
245
249
  "src/stories/behaviour/missing/source.json",
246
250
  "src/stories/behaviour/others/V2_DeclarationsSimples.json",
@@ -365,6 +369,7 @@
365
369
  "src/stories/utils/SchemaValidator.jsx",
366
370
  "src/stories/utils/custom-lunatic.scss",
367
371
  "src/stories/utils/default-arg-types.js",
372
+ "src/stories/utils/default-args.js",
368
373
  "src/stories/utils/options.js",
369
374
  "src/stories/utils/orchestrator.jsx",
370
375
  "src/stories/utils/orchestrator.scss",
@@ -457,9 +462,12 @@
457
462
  "src/utils/number.ts",
458
463
  "src/utils/object.ts",
459
464
  "src/utils/search/SearchInterface.ts",
465
+ "src/utils/search/SearchMiniSearch.spec.ts",
460
466
  "src/utils/search/SearchMinisearch.ts",
461
467
  "src/utils/search/SuggestersDatabase.ts",
468
+ "src/utils/search/melauto.spec.ts",
462
469
  "src/utils/search/melauto.ts",
470
+ "src/utils/search/tokenizer.spec.ts",
463
471
  "src/utils/search/tokenizer.ts",
464
472
  "src/utils/to-number.ts",
465
473
  "src/utils/variables.spec.ts",
@@ -1619,6 +1627,9 @@
1619
1627
  "esm/utils/search/SearchInterface.d.ts",
1620
1628
  "esm/utils/search/SearchInterface.js",
1621
1629
  "esm/utils/search/SearchInterface.js.map",
1630
+ "esm/utils/search/SearchMiniSearch.spec.d.ts",
1631
+ "esm/utils/search/SearchMiniSearch.spec.js",
1632
+ "esm/utils/search/SearchMiniSearch.spec.js.map",
1622
1633
  "esm/utils/search/SearchMinisearch.d.ts",
1623
1634
  "esm/utils/search/SearchMinisearch.js",
1624
1635
  "esm/utils/search/SearchMinisearch.js.map",
@@ -1628,9 +1639,15 @@
1628
1639
  "esm/utils/search/melauto.d.ts",
1629
1640
  "esm/utils/search/melauto.js",
1630
1641
  "esm/utils/search/melauto.js.map",
1642
+ "esm/utils/search/melauto.spec.d.ts",
1643
+ "esm/utils/search/melauto.spec.js",
1644
+ "esm/utils/search/melauto.spec.js.map",
1631
1645
  "esm/utils/search/tokenizer.d.ts",
1632
1646
  "esm/utils/search/tokenizer.js",
1633
1647
  "esm/utils/search/tokenizer.js.map",
1648
+ "esm/utils/search/tokenizer.spec.d.ts",
1649
+ "esm/utils/search/tokenizer.spec.js",
1650
+ "esm/utils/search/tokenizer.spec.js.map",
1634
1651
  "esm/utils/to-number.d.ts",
1635
1652
  "esm/utils/to-number.js",
1636
1653
  "esm/utils/to-number.js.map",
@@ -1934,6 +1951,9 @@
1934
1951
  "utils/search/SearchInterface.d.ts",
1935
1952
  "utils/search/SearchInterface.js",
1936
1953
  "utils/search/SearchInterface.js.map",
1954
+ "utils/search/SearchMiniSearch.spec.d.ts",
1955
+ "utils/search/SearchMiniSearch.spec.js",
1956
+ "utils/search/SearchMiniSearch.spec.js.map",
1937
1957
  "utils/search/SearchMinisearch.d.ts",
1938
1958
  "utils/search/SearchMinisearch.js",
1939
1959
  "utils/search/SearchMinisearch.js.map",
@@ -1943,9 +1963,15 @@
1943
1963
  "utils/search/melauto.d.ts",
1944
1964
  "utils/search/melauto.js",
1945
1965
  "utils/search/melauto.js.map",
1966
+ "utils/search/melauto.spec.d.ts",
1967
+ "utils/search/melauto.spec.js",
1968
+ "utils/search/melauto.spec.js.map",
1946
1969
  "utils/search/tokenizer.d.ts",
1947
1970
  "utils/search/tokenizer.js",
1948
1971
  "utils/search/tokenizer.js.map",
1972
+ "utils/search/tokenizer.spec.d.ts",
1973
+ "utils/search/tokenizer.spec.js",
1974
+ "utils/search/tokenizer.spec.js.map",
1949
1975
  "utils/to-number.d.ts",
1950
1976
  "utils/to-number.js",
1951
1977
  "utils/to-number.js.map",
@@ -2007,6 +2033,7 @@
2007
2033
  "@types/react": "^18.3.3",
2008
2034
  "@types/react-dom": "^18.3.0",
2009
2035
  "@vitejs/plugin-react": "^4.3.1",
2036
+ "@vitest/coverage-v8": "2.1.2",
2010
2037
  "ajv": "^8.17.1",
2011
2038
  "concurrently": "^8.2.2",
2012
2039
  "eslint": "^9.9.0",
@@ -1,6 +1,7 @@
1
1
  import type { LunaticComponentProps } from '../type';
2
2
  import { CustomCheckboxGroup } from './CustomCheckboxGroup';
3
3
  import { getComponentErrors } from '../shared/ComponentErrors/ComponentErrors';
4
+ import { useLunaticComponentsOptions } from '../../use-lunatic/lunatic-context';
4
5
 
5
6
  export function CheckboxGroup({
6
7
  id,
@@ -14,6 +15,7 @@ export function CheckboxGroup({
14
15
  declarations,
15
16
  orientation,
16
17
  }: LunaticComponentProps<'CheckboxGroup'>) {
18
+ const { detailAlwaysDisplayed } = useLunaticComponentsOptions();
17
19
  return (
18
20
  <CustomCheckboxGroup
19
21
  id={id}
@@ -26,6 +28,7 @@ export function CheckboxGroup({
26
28
  readOnly={readOnly}
27
29
  declarations={declarations}
28
30
  orientation={orientation}
31
+ detailAlwaysDisplayed={detailAlwaysDisplayed}
29
32
  />
30
33
  );
31
34
  }
@@ -6,7 +6,6 @@ import { CheckboxOption } from '../shared/Checkbox/CheckboxOption';
6
6
  import { getShortcutKey } from '../shared/Checkbox/getShortcutKey';
7
7
  import type { LunaticComponentProps } from '../type';
8
8
  import { Declarations } from '../shared/Declarations/Declarations';
9
- import { CustomInput } from '../Input/Input';
10
9
 
11
10
  type Props = Pick<
12
11
  LunaticComponentProps<'CheckboxGroup'>,
@@ -19,6 +18,7 @@ type Props = Pick<
19
18
  | 'disabled'
20
19
  | 'options'
21
20
  | 'orientation'
21
+ | 'detailAlwaysDisplayed'
22
22
  > & {
23
23
  errors?: LunaticError[];
24
24
  };
@@ -35,6 +35,7 @@ export const CustomCheckboxGroup = slottableComponent<Props>(
35
35
  readOnly,
36
36
  declarations,
37
37
  orientation,
38
+ detailAlwaysDisplayed,
38
39
  }: Props) => {
39
40
  return (
40
41
  <Fieldset
@@ -59,20 +60,8 @@ export const CustomCheckboxGroup = slottableComponent<Props>(
59
60
  codeModality={
60
61
  shortcut ? getShortcutKey(index, options.length) : undefined
61
62
  }
63
+ detailAlwaysDisplayed={detailAlwaysDisplayed}
62
64
  />
63
- {option.onDetailChange && option.checked && (
64
- <CustomInput
65
- id="detailId"
66
- label={option.detailLabel ?? 'Précisez :'}
67
- value={
68
- typeof option.detailValue === 'string'
69
- ? option.detailValue
70
- : ''
71
- }
72
- onChange={option.onDetailChange}
73
- disabled={disabled}
74
- />
75
- )}
76
65
  </div>
77
66
  );
78
67
  })}