@inseefr/lunatic 2.7.0-rc.5 → 2.7.2

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 (161) hide show
  1. package/README.md +45 -11
  2. package/lib/components/checkbox/checkbox-boolean/html/checkbox-boolean.js +3 -3
  3. package/lib/components/checkbox/checkbox-boolean/lunatic-checkbox-boolean.js +2 -1
  4. package/lib/components/checkbox/checkbox-group/checkbox-group-content.js +0 -2
  5. package/lib/components/checkbox/checkbox-group/html/checkbox-group-content.js +4 -2
  6. package/lib/components/checkbox/checkbox-group/html/checkbox-group.js +3 -3
  7. package/lib/components/checkbox/checkbox-group/lunatic-checkbox-group.js +2 -2
  8. package/lib/components/checkbox/checkbox-one/lunatic-checkbox-one.js +2 -1
  9. package/lib/components/checkbox/commons/checkbox-option.js +3 -1
  10. package/lib/components/commons/components/combo-box/combo-box-container.js +1 -2
  11. package/lib/components/commons/components/combo-box/combo-box.js +2 -2
  12. package/lib/components/commons/components/combo-box/selection/LabelOrInput.js +3 -1
  13. package/lib/components/commons/components/combo-box/selection/input.js +3 -1
  14. package/lib/components/commons/components/combo-box/selection/selection.js +3 -1
  15. package/lib/components/commons/components/errors/errors.js +12 -10
  16. package/lib/components/commons/components/errors/errors.spec.js +6 -6
  17. package/lib/components/component-set/html/__snapshots__/component-set.spec.tsx.snap +2 -0
  18. package/lib/components/component-set/html/component-set.js +2 -2
  19. package/lib/components/datepicker/html/DatepickerField.js +47 -0
  20. package/lib/components/datepicker/html/__snapshots__/datepicker.spec.tsx.snap +209 -17
  21. package/lib/components/datepicker/html/datepicker.js +104 -21
  22. package/lib/components/datepicker/html/datepicker.scss +19 -1
  23. package/lib/components/datepicker/html/datepicker.spec.js +71 -23
  24. package/lib/components/datepicker/lunatic-datepicker.js +5 -2
  25. package/lib/components/dropdown/lunatic-dropdown.js +2 -1
  26. package/lib/components/duration/duration.js +6 -7
  27. package/lib/components/duration/duration.scss +6 -14
  28. package/lib/components/duration/durationInput.js +14 -8
  29. package/lib/components/duration/durationUtils.js +38 -8
  30. package/lib/components/input/html/__snapshots__/input.spec.tsx.snap +2 -0
  31. package/lib/components/input/html/input.js +3 -3
  32. package/lib/components/input/lunatic-input.js +2 -1
  33. package/lib/components/input-number/html/__snapshots__/input-number.spec.tsx.snap +2 -2
  34. package/lib/components/input-number/html/input-number-thousand.js +4 -17
  35. package/lib/components/input-number/html/input-number.js +3 -5
  36. package/lib/components/input-number/lunatic-input-number.js +2 -3
  37. package/lib/components/loop/roster-for-loop/__snapshots__/roster-for-loop.spec.tsx.snap +88 -0
  38. package/lib/components/loop/roster-for-loop/roster-for-loop.js +7 -3
  39. package/lib/components/loop/roster-for-loop/roster-for-loop.spec.js +46 -0
  40. package/lib/components/lunatic-components.js +2 -11
  41. package/lib/components/radio/html/radio-group-content.js +4 -2
  42. package/lib/components/radio/html/radio-group.js +3 -3
  43. package/lib/components/radio/html/radio-option.js +3 -1
  44. package/lib/components/radio/lunatic-radio-group.js +2 -1
  45. package/lib/components/suggester/find-best-label/find-best-label.js +5 -5
  46. package/lib/components/suggester/idb-suggester/check-store.js +6 -3
  47. package/lib/components/suggester/idb-suggester/idb-suggester.js +8 -7
  48. package/lib/components/suggester/idb-suggester/suggester-status.js +1 -4
  49. package/lib/components/suggester/lunatic-suggester.js +7 -4
  50. package/lib/components/suggester/searching/create-searching.js +5 -5
  51. package/lib/components/switch/html/switch.js +2 -2
  52. package/lib/components/switch/lunatic-switch.js +2 -1
  53. package/lib/components/table/lunatic-table.js +2 -2
  54. package/lib/components/textarea/html/__snapshots__/textarea.spec.tsx.snap +2 -0
  55. package/lib/components/textarea/html/textarea.js +6 -4
  56. package/lib/components/textarea/lunatic-textarea.js +6 -3
  57. package/lib/hooks/use-auto-focus.js +26 -0
  58. package/lib/src/components/checkbox/checkbox-boolean/html/checkbox-boolean.d.ts +1 -1
  59. package/lib/src/components/checkbox/checkbox-group/html/checkbox-group-content.d.ts +2 -1
  60. package/lib/src/components/checkbox/checkbox-group/html/checkbox-group.d.ts +1 -1
  61. package/lib/src/components/checkbox/commons/checkbox-option.d.ts +1 -0
  62. package/lib/src/components/commons/components/combo-box/combo-box-container.d.ts +2 -2
  63. package/lib/src/components/commons/components/combo-box/combo-box.d.ts +2 -2
  64. package/lib/src/components/commons/components/combo-box/selection/LabelOrInput.d.ts +1 -0
  65. package/lib/src/components/commons/components/combo-box/selection/input.d.ts +1 -0
  66. package/lib/src/components/commons/components/combo-box/selection/selection.d.ts +2 -1
  67. package/lib/src/components/commons/components/errors/errors.d.ts +6 -3
  68. package/lib/src/components/datepicker/html/DatepickerField.d.ts +12 -0
  69. package/lib/src/components/datepicker/html/datepicker.d.ts +4 -3
  70. package/lib/src/components/datepicker/lunatic-datepicker.d.ts +1 -0
  71. package/lib/src/components/dropdown/html/dropdown-writable/dropdown-writable.d.ts +1 -1
  72. package/lib/src/components/dropdown/html/dropdown.d.ts +3 -1
  73. package/lib/src/components/duration/durationInput.d.ts +6 -2
  74. package/lib/src/components/duration/durationUtils.d.ts +24 -7
  75. package/lib/src/components/input/html/input.d.ts +2 -2
  76. package/lib/src/components/input-number/html/input-number-thousand.d.ts +2 -2
  77. package/lib/src/components/input-number/html/input-number.d.ts +2 -3
  78. package/lib/src/components/radio/html/radio-group-content.d.ts +2 -1
  79. package/lib/src/components/radio/html/radio-group.d.ts +1 -1
  80. package/lib/src/components/radio/html/radio-option.d.ts +1 -0
  81. package/lib/src/components/suggester/find-best-label/find-best-label.d.ts +1 -1
  82. package/lib/src/components/suggester/html/suggester.d.ts +1 -1
  83. package/lib/src/components/suggester/idb-suggester/check-store.d.ts +5 -2
  84. package/lib/src/components/suggester/idb-suggester/idb-suggester.d.ts +5 -2
  85. package/lib/src/components/suggester/idb-suggester/suggester-status.d.ts +1 -4
  86. package/lib/src/components/suggester/lunatic-suggester.d.ts +1 -1
  87. package/lib/src/components/suggester/searching/create-searching.d.ts +1 -1
  88. package/lib/src/components/switch/html/switch.d.ts +1 -1
  89. package/lib/src/components/textarea/html/textarea.d.ts +3 -2
  90. package/lib/src/components/type.d.ts +5 -3
  91. package/lib/src/hooks/use-auto-focus.d.ts +6 -0
  92. package/lib/src/use-lunatic/actions.d.ts +2 -0
  93. package/lib/src/use-lunatic/commons/fill-components/fill-component-required.d.ts +383 -0
  94. package/lib/src/use-lunatic/commons/fill-components/fill-component-value.d.ts +1 -1
  95. package/lib/src/use-lunatic/commons/fill-components/fill-component-value.spec.d.ts +1 -0
  96. package/lib/src/use-lunatic/commons/fill-components/fill-from-state.d.ts +20 -0
  97. package/lib/src/use-lunatic/commons/variables/lunatic-variables-store.d.ts +4 -0
  98. package/lib/src/use-lunatic/reducer/overview/overview-on-init.d.ts +1 -0
  99. package/lib/src/use-lunatic/type.d.ts +1 -0
  100. package/lib/src/use-lunatic/use-lunatic.d.ts +9 -5
  101. package/lib/src/use-lunatic/use-suggesters.d.ts +2 -1
  102. package/lib/src/utils/suggester-workers/append-to-index/create-append-task.d.ts +2 -2
  103. package/lib/src/utils/suggester-workers/worker-path.d.ts +1 -1
  104. package/lib/stories/behaviour/cleaning/source.json +151 -0
  105. package/lib/stories/behaviour/cleaning/test.stories.js +82 -0
  106. package/lib/stories/{questionnaires-test → behaviour}/controls/controls.stories.js +5 -5
  107. package/lib/stories/{questionnaires-test → behaviour/others}/test.stories.js +7 -7
  108. package/lib/stories/{paste-questionnaire → behaviour/paste}/test.stories.js +3 -3
  109. package/lib/stories/{resizing-questionnaire → behaviour/resizing}/test.stories.js +3 -3
  110. package/lib/stories/date-picker/datepicker.stories.js +32 -29
  111. package/lib/stories/duration/duration.stories.js +4 -4
  112. package/lib/stories/duration/{source.json → mois.json} +1 -1
  113. package/lib/stories/duration/{source1.json → time.json} +1 -1
  114. package/lib/use-lunatic/commons/fill-components/fill-component-required.js +23 -0
  115. package/lib/use-lunatic/commons/fill-components/fill-component-value.js +1 -1
  116. package/lib/use-lunatic/commons/fill-components/fill-component-value.spec.js +67 -0
  117. package/lib/use-lunatic/commons/fill-components/fill-components.js +2 -1
  118. package/lib/use-lunatic/commons/fill-components/fill-from-state.js +2 -0
  119. package/lib/use-lunatic/commons/variables/lunatic-variables-store.js +20 -0
  120. package/lib/use-lunatic/commons/variables/lunatic-variables-store.spec.js +15 -1
  121. package/lib/use-lunatic/initial-state.js +2 -1
  122. package/lib/use-lunatic/reducer/reduce-on-init.js +4 -2
  123. package/lib/use-lunatic/use-lunatic.js +12 -10
  124. package/lib/use-lunatic/use-suggesters.js +54 -37
  125. package/lib/utils/env.js +9 -1
  126. package/lib/utils/suggester-workers/append-to-index/create-append-task.js +4 -3
  127. package/lib/utils/suggester-workers/{create-worker-ts.js → create-worker.js} +10 -1
  128. package/lib/utils/suggester-workers/worker-path.js +5 -4
  129. package/package.json +20 -10
  130. package/scripts/build/add-workers-to-public.js +31 -31
  131. package/scripts/build/workers-paths.js +18 -7
  132. package/workers-release/{lunatic-append-worker-0.3.0-experimental.js → lunatic-append-worker-0.3.0.js} +1 -1
  133. package/workers-release/{lunatic-label-worker-0.3.0-experimental.js → lunatic-label-worker-0.3.0.js} +1 -1
  134. package/workers-release/{lunatic-searching-worker-0.3.0-experimental.js → lunatic-search-worker-0.3.0.js} +1 -1
  135. package/lib/components/datepicker/html/datepicker-container.js +0 -17
  136. package/lib/components/datepicker/html/datepicker-input.js +0 -35
  137. package/lib/env.d.js +0 -1
  138. package/lib/src/components/datepicker/html/datepicker-container.d.ts +0 -3
  139. package/lib/src/components/datepicker/html/datepicker-input.d.ts +0 -13
  140. package/lib/src/utils/get-component-value.d.ts +0 -5
  141. package/lib/utils/get-component-value.js +0 -34
  142. package/lib/utils/get-component-value.test.js +0 -57
  143. /package/lib/src/{utils/get-component-value.test.d.ts → components/loop/roster-for-loop/roster-for-loop.spec.d.ts} +0 -0
  144. /package/lib/src/utils/suggester-workers/{create-worker-ts.d.ts → create-worker.d.ts} +0 -0
  145. /package/lib/stories/{questionnaires-test → behaviour}/controls/V2_ControlesNonNum_horsBoucle_PasPageFin.json +0 -0
  146. /package/lib/stories/{questionnaires-test → behaviour}/controls/V2_ControlesNum_horsBoucle_PasPageFin.json +0 -0
  147. /package/lib/stories/{questionnaires-test → behaviour}/controls/V2_Controles_BouclesLiees2_PasPageFin.json +0 -0
  148. /package/lib/stories/{questionnaires-test → behaviour}/controls/V2_Controles_BouclesLiees_PasPageFin.json +0 -0
  149. /package/lib/stories/{questionnaires-test → behaviour}/controls/boucles-n.json +0 -0
  150. /package/lib/stories/{questionnaires-test → behaviour}/controls/controls-externes.json +0 -0
  151. /package/lib/stories/{questionnaires-test → behaviour}/controls/controls-externes.stories.js +0 -0
  152. /package/lib/stories/{questionnaires-test → behaviour/others}/V2_DeclarationsSimples.json +0 -0
  153. /package/lib/stories/{questionnaires-test → behaviour/others}/V2_MinMaxSum_Boucles.json +0 -0
  154. /package/lib/stories/{questionnaires-test → behaviour/others}/V2_QuestSimple_Boucles.json +0 -0
  155. /package/lib/stories/{questionnaires-test → behaviour/others}/V2_TCMRallyeGames.json +0 -0
  156. /package/lib/stories/{questionnaires-test → behaviour/others}/test-dylan.json +0 -0
  157. /package/lib/stories/{paste-questionnaire → behaviour/paste}/source.json +0 -0
  158. /package/lib/stories/{resizing-questionnaire → behaviour/resizing}/source.json +0 -0
  159. /package/workers-release/{lunatic-append-worker-0.3.0-experimental.js.LICENSE.txt → lunatic-append-worker-0.3.0.js.LICENSE.txt} +0 -0
  160. /package/workers-release/{lunatic-label-worker-0.3.0-experimental.js.LICENSE.txt → lunatic-label-worker-0.3.0.js.LICENSE.txt} +0 -0
  161. /package/workers-release/{lunatic-searching-worker-0.3.0-experimental.js.LICENSE.txt → lunatic-search-worker-0.3.0.js.LICENSE.txt} +0 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@inseefr/lunatic",
3
- "version": "2.7.0-rc.5",
4
- "workersVersion": "0.3.0-experimental",
3
+ "version": "2.7.2",
4
+ "workersVersion": "0.3.0",
5
5
  "description": "Library of questionnaire components",
6
6
  "repository": {
7
7
  "type": "git",
@@ -9,9 +9,17 @@
9
9
  },
10
10
  "author": "INSEE (http://www.insee.fr)",
11
11
  "contributor": [
12
+ {
13
+ "name": "Jonathan Boyer",
14
+ "email": "contact@grafikart.fr"
15
+ },
12
16
  {
13
17
  "name": "Laurent Caouissin",
14
- "email": "laurent.caouissin@agriculture.gouv.fr"
18
+ "email": "laurent.caouissin@insee.fr"
19
+ },
20
+ {
21
+ "name": "Dylan Decrulle",
22
+ "email": "dylan.decrulle@insee.fr"
15
23
  },
16
24
  {
17
25
  "name": "Renaud Genevois",
@@ -28,14 +36,15 @@
28
36
  "files": [
29
37
  "lib",
30
38
  "workers-release",
31
- "scripts/build/workers-paths.js"
39
+ "scripts/build/workers-paths.js",
40
+ "scripts/build/add-workers-to-public.js"
32
41
  ],
33
42
  "scripts": {
34
- "test": "npm run prepare-workers && vitest run",
35
- "test:e2e": "npm run prepare-workers && playwright test",
36
- "test:e2e:visual": "npm run prepare-workers && playwright test --headed --debug e2e/pairwise.spec.ts",
37
- "test:e2e:codegen": "npm run prepare-workers && playwright codegen http://localhost:9999/iframe.html?viewMode=story&id=",
38
- "test:storybook": "npm run prepare-workers && test-storybook --url http://localhost:9999 --maxWorkers=4 --no-cache",
43
+ "test": "vitest run",
44
+ "test:e2e": "playwright test",
45
+ "test:e2e:visual": "playwright test --headed --debug e2e/pairwise.spec.ts",
46
+ "test:e2e:codegen": "playwright codegen http://localhost:9999/iframe.html?viewMode=story&id=",
47
+ "test:storybook": "test-storybook --url http://localhost:9999 --maxWorkers=4 --no-cache",
39
48
  "test-watch": "vitest",
40
49
  "check": "tsc",
41
50
  "lint": "eslint ./src",
@@ -46,12 +55,13 @@
46
55
  "test-coverage": "vitest run --coverage",
47
56
  "build-workers": "node ./scripts/build/build-workers.js",
48
57
  "prepare-workers": "npm run build-workers && node ./scripts/build/add-workers-to-public.js",
58
+ "postinstall": "node ./scripts/build/add-workers-to-public.js",
49
59
  "build": "babel src --out-dir lib --extensions \".ts,.js,.tsx,.jsx\" --copy-files && tsc --project tsconfig.prod.json && npm run build-workers",
50
60
  "storybook": "npm run prepare-workers && storybook dev -p 9999 --no-open",
51
61
  "build-storybook": "npm run prepare-workers && storybook build"
52
62
  },
53
63
  "bin": {
54
- "add-lunatic-workes": "./scripts/build/add-workers-to-public.js"
64
+ "workers": "./scripts/build/add-workers-to-public.js"
55
65
  },
56
66
  "keywords": [
57
67
  "react",
@@ -1,44 +1,44 @@
1
1
  #!/usr/bin/env node
2
2
  const fs = require('fs');
3
+ const path = require('path');
3
4
  const { currentPublicFolder, workersPath } = require('./workers-paths');
4
5
 
6
+ const currentPackageJson = require(path.resolve(
7
+ `${process.cwd()}/package.json`
8
+ ));
9
+ const lunaticPackageJson = require('../../package.json');
10
+
5
11
  /**
6
12
  * Copy worker only if not exists
7
13
  */
8
14
  const copyWorkerToPublicFolder = () => {
15
+ console.log('Running add-workers-to-public....');
16
+
9
17
  if (!fs.existsSync(currentPublicFolder)) {
10
18
  fs.mkdirSync(currentPublicFolder, { recursive: true });
11
19
  }
12
- const isAppendWorkerExists = fs.existsSync(workersPath.append.dest);
13
- const isLabelWorkerExists = fs.existsSync(workersPath.label.dest);
14
- const isSearchingWorkerExists = fs.existsSync(workersPath.searching.dest);
15
-
16
- if (!isAppendWorkerExists) {
17
- console.log(`Copy : ${workersPath.append.name} to ${currentPublicFolder}`);
18
- fs.copyFileSync(workersPath.append.source, workersPath.append.dest);
19
- } else {
20
- console.log(
21
- `${workersPath.append.name} is already in ${currentPublicFolder} -> Skipped`
22
- );
23
- }
24
- if (!isLabelWorkerExists) {
25
- console.log(`Copy : ${workersPath.label.name} to ${currentPublicFolder}`);
26
- fs.copyFileSync(workersPath.label.source, workersPath.label.dest);
27
- } else {
28
- console.log(
29
- `${workersPath.label.name} is already in ${currentPublicFolder} -> Skipped`
30
- );
31
- }
32
- if (!isSearchingWorkerExists) {
33
- console.log(
34
- `Copy : ${workersPath.searching.name} to ${currentPublicFolder}`
35
- );
36
- fs.copyFileSync(workersPath.searching.source, workersPath.searching.dest);
37
- } else {
38
- console.log(
39
- `${workersPath.searching.name} is already in ${currentPublicFolder} -> Skipped`
40
- );
41
- }
20
+
21
+ Object.keys(workersPath).forEach((worker) => {
22
+ const { name, source, dest } = workersPath[worker];
23
+ const isWorkerExists = fs.existsSync(dest);
24
+
25
+ if (!isWorkerExists) {
26
+ console.log(`Copy : ${name} to ${currentPublicFolder}`);
27
+ fs.copyFileSync(source, dest);
28
+ } else {
29
+ console.log(`${name} is already in ${currentPublicFolder} -> Skipped`);
30
+ }
31
+ });
32
+ };
33
+
34
+ const isLunaticPostInstall = () => {
35
+ const lunaticName = lunaticPackageJson.name;
36
+ const currentName = currentPackageJson.name;
37
+
38
+ const currentNpmLiveCycle = process.env.npm_lifecycle_event;
39
+ return lunaticName === currentName && currentNpmLiveCycle === 'postinstall';
42
40
  };
43
41
 
44
- copyWorkerToPublicFolder();
42
+ if (isLunaticPostInstall()) {
43
+ console.log('PostInstall skipped !');
44
+ } else copyWorkerToPublicFolder();
@@ -1,7 +1,7 @@
1
- var PACKAGE = require('../../package.json');
1
+ const lunaticPackageJson = require('../../package.json');
2
2
  const path = require('path');
3
3
 
4
- var version = PACKAGE.workersVersion;
4
+ const version = lunaticPackageJson.workersVersion;
5
5
 
6
6
  const currentPublicFolder = path.resolve(`${process.cwd()}/public/workers`);
7
7
  const workersReleaseFolder = path.resolve(__dirname, '../../workers-release');
@@ -11,19 +11,30 @@ const workersPath = {
11
11
  name: 'Append worker',
12
12
  source: `${workersReleaseFolder}/lunatic-append-worker-${version}.js`,
13
13
  dest: `${currentPublicFolder}/lunatic-append-worker-${version}.js`,
14
- webpack: `${path.resolve(__dirname)}/webpack-append-worker.config.js`,
14
+ webpack: {
15
+ entry: './src/utils/suggester-workers/append-to-index/append.worker.js',
16
+ filename: `lunatic-append-worker-${version}.js`,
17
+ },
15
18
  },
19
+ // Label worker is not currently used
16
20
  label: {
17
21
  name: 'Label worker',
18
22
  source: `${workersReleaseFolder}/lunatic-label-worker-${version}.js`,
19
23
  dest: `${currentPublicFolder}/lunatic-label-worker-${version}.js`,
20
- webpack: `${path.resolve(__dirname)}/webpack-label-worker.config.js`,
24
+ webpack: {
25
+ entry:
26
+ './src/utils/suggester-workers/find-best-label/find-best-label.worker.js',
27
+ filename: `lunatic-label-worker-${version}.js`,
28
+ },
21
29
  },
22
30
  searching: {
23
31
  name: 'Searching worker',
24
- source: `${workersReleaseFolder}/lunatic-searching-worker-${version}.js`,
25
- dest: `${currentPublicFolder}/lunatic-searching-worker-${version}.js`,
26
- webpack: `${path.resolve(__dirname)}/webpack-searching-worker.config.js`,
32
+ source: `${workersReleaseFolder}/lunatic-search-worker-${version}.js`,
33
+ dest: `${currentPublicFolder}/lunatic-search-worker-${version}.js`,
34
+ webpack: {
35
+ entry: './src/utils/suggester-workers/searching/searching.worker.js',
36
+ filename: `lunatic-search-worker-${version}.js`,
37
+ },
27
38
  },
28
39
  };
29
40