@inseefr/lunatic 3.6.2 → 3.6.4

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 (47) hide show
  1. package/components/Input/Input.d.ts +1 -0
  2. package/components/Input/Input.js +2 -2
  3. package/components/Input/Input.js.map +1 -1
  4. package/components/PairwiseLinks/PairwiseLinks.js +2 -0
  5. package/components/PairwiseLinks/PairwiseLinks.js.map +1 -1
  6. package/components/shared/Checkbox/CheckboxOption.js +1 -1
  7. package/components/shared/Checkbox/CheckboxOption.js.map +1 -1
  8. package/components/shared/Radio/RadioOption.js +2 -8
  9. package/components/shared/Radio/RadioOption.js.map +1 -1
  10. package/components/type.d.ts +2 -0
  11. package/esm/components/Input/Input.d.ts +1 -0
  12. package/esm/components/Input/Input.js +2 -2
  13. package/esm/components/Input/Input.js.map +1 -1
  14. package/esm/components/PairwiseLinks/PairwiseLinks.js +2 -0
  15. package/esm/components/PairwiseLinks/PairwiseLinks.js.map +1 -1
  16. package/esm/components/shared/Checkbox/CheckboxOption.js +1 -1
  17. package/esm/components/shared/Checkbox/CheckboxOption.js.map +1 -1
  18. package/esm/components/shared/Radio/RadioOption.js +3 -9
  19. package/esm/components/shared/Radio/RadioOption.js.map +1 -1
  20. package/esm/components/type.d.ts +2 -0
  21. package/esm/use-lunatic/commons/variables/lunatic-variables-store.js +6 -1
  22. package/esm/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
  23. package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js +1 -1
  24. package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
  25. package/esm/use-lunatic/props/getComponentTypeProps.d.ts +2 -0
  26. package/esm/use-lunatic/props/propOptions.d.ts +2 -1
  27. package/esm/use-lunatic/props/propOptions.js +1 -1
  28. package/esm/use-lunatic/props/propOptions.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/components/Input/Input.tsx +3 -0
  31. package/src/components/PairwiseLinks/PairwiseLinks.tsx +1 -0
  32. package/src/components/shared/Checkbox/CheckboxOption.tsx +1 -0
  33. package/src/components/shared/Radio/RadioOption.tsx +2 -12
  34. package/src/components/type.ts +2 -0
  35. package/src/stories/pairwise/source.json +4 -1
  36. package/src/use-lunatic/commons/variables/lunatic-variables-store.spec.ts +1 -1
  37. package/src/use-lunatic/commons/variables/lunatic-variables-store.ts +8 -1
  38. package/src/use-lunatic/props/propOptions.ts +2 -1
  39. package/tsconfig.build.tsbuildinfo +1 -1
  40. package/use-lunatic/commons/variables/lunatic-variables-store.js +6 -1
  41. package/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
  42. package/use-lunatic/commons/variables/lunatic-variables-store.spec.js +1 -1
  43. package/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
  44. package/use-lunatic/props/getComponentTypeProps.d.ts +2 -0
  45. package/use-lunatic/props/propOptions.d.ts +2 -1
  46. package/use-lunatic/props/propOptions.js +1 -1
  47. package/use-lunatic/props/propOptions.js.map +1 -1
@@ -11,12 +11,13 @@ export type InterpretedOption = {
11
11
  detailLabel?: ReactNode;
12
12
  detailValue?: string | null;
13
13
  detailMaxLength?: number;
14
+ shouldBeFiltered?: boolean;
14
15
  onDetailChange?: (value: string) => void;
15
16
  onCheck?: () => void;
16
17
  onUncheck?: () => void;
17
18
  };
18
19
  /**
19
- * Compute options for checkboxes / radios
20
+ * Compute options for checkboxes / radios / dropdown
20
21
  */
21
22
  export declare function getOptionsProp(definition: DeepTranslateExpression<LunaticComponentDefinition>, variables: LunaticVariablesStore, handleChanges: LunaticChangesHandler, pagerIteration: LunaticState['pager']['iteration'], value: unknown, logger: LunaticLogger, disableFilters?: boolean, shouldParentBeFiltered?: boolean): {
22
23
  label: ReactNode;
@@ -1,6 +1,6 @@
1
1
  import { isNumber } from '../../utils/number';
2
2
  /**
3
- * Compute options for checkboxes / radios
3
+ * Compute options for checkboxes / radios / dropdown
4
4
  */
5
5
  export function getOptionsProp(definition, variables, handleChanges, pagerIteration, value, logger, disableFilters, shouldParentBeFiltered) {
6
6
  const iteration = isNumber(pagerIteration) ? [pagerIteration] : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"propOptions.js","sourceRoot":"","sources":["../../../src/use-lunatic/props/propOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"propOptions.js","sourceRoot":"","sources":["../../../src/use-lunatic/props/propOptions.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAoB9C;;GAEG;AACH,MAAM,UAAU,cAAc,CAC7B,UAA+D,EAC/D,SAAgC,EAChC,aAAoC,EACpC,cAAkD,EAClD,KAAc,EACd,MAAqB,EACrB,cAAwB,EACxB,sBAAgC;IAEhC,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1E,IAAI,UAAU,CAAC,aAAa,KAAK,eAAe,EAAE,CAAC;QAClD,OAAO,UAAU,CAAC,SAAS;aACzB,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,cAAc,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;gBACjD,OAAO,IAAI,CAAC;YACb,CAAC;YACD,OAAO,CAAC,mBAAmB,CAC1B,SAAS,EACT,SAAS,EACT,MAAM,EACN,QAAQ,CAAC,eAAe,CACxB,CAAC;QACH,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;;YAAC,OAAA,CAAC;gBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;gBAC5B,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC3D,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,WAAW,EAAE,MAAA,QAAQ,CAAC,MAAM,0CAAE,KAAK;gBACnC,WAAW,EAAE,CAAA,MAAA,QAAQ,CAAC,MAAM,0CAAE,QAAQ;oBACrC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;oBACzD,CAAC,CAAC,SAAS;gBACZ,eAAe,EAAE,MAAA,QAAQ,CAAC,MAAM,0CAAE,SAAS;gBAC3C,OAAO,EAAE,CAAC,OAAgB,EAAE,EAAE;oBAC7B,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBACnE,CAAC;gBACD,cAAc,EAAE,CAAA,MAAA,QAAQ,CAAC,MAAM,0CAAE,QAAQ;oBACxC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE;wBACd,aAAa,CAAC;4BACb,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;yBAClD,CAAC,CAAC;oBACJ,CAAC;oBACF,CAAC,CAAC,SAAS;gBACZ,gBAAgB,EACf,sBAAsB;oBACtB,mBAAmB,CAClB,SAAS,EACT,SAAS,EACT,MAAM,EACN,QAAQ,CAAC,eAAe,CACxB;aACF,CAAC,CAAA;SAAA,CAAC,CAAC;IACN,CAAC;IAED,IAAI,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO,UAAU,CAAC,OAAO;SACvB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QAClB,IACC,cAAc;YACd,CAAC,CAAC,iBAAiB,IAAI,MAAM,CAAC;YAC9B,CAAC,MAAM,CAAC,eAAe,EACtB,CAAC;YACF,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,CAAC,mBAAmB,CAC1B,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,CAAC,eAAe,CACtB,CAAC;IACH,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;;QAAC,OAAA,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,KAAK,KAAK,MAAM,CAAC,KAAK;YAC/B,WAAW,EAAE,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,MAAM,0CAAE,KAAK,CAAC,CAAC,CAAC,SAAS;YAClE,WAAW,EACV,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM;gBAClC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;gBACvD,CAAC,CAAC,IAAI;YACR,eAAe,EACd,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,MAAM,0CAAE,SAAS,CAAC,CAAC,CAAC,SAAS;YAC1D,OAAO,EAAE,GAAG,EAAE;gBACb,aAAa,CAAC;oBACb,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;iBACvD,CAAC,CAAC;YACJ,CAAC;YACD,oCAAoC;YACpC,SAAS,EAAE,GAAG,EAAE;gBACf,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YACD,cAAc,EACb,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM;gBAClC,CAAC,CAAC,CAAC,KAAa,EAAE,EAAE;oBAClB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAChE,CAAC;gBACF,CAAC,CAAC,IAAI;YACR,gBAAgB,EACf,sBAAsB;gBACtB,CAAC,iBAAiB,IAAI,MAAM;oBAC3B,mBAAmB,CAClB,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,CAAC,eAAe,CACtB,CAAC;SACJ,CAAC,CAAA;KAAA,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC3B,SAAgC,EAChC,SAA+B,EAC/B,MAAqB,EACrB,eAA+B;IAE/B,IAAI,CAAC,eAAe;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,CAAC;QACJ,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAU,EAAE,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inseefr/lunatic",
3
- "version": "3.6.2",
3
+ "version": "3.6.4",
4
4
  "description": "Library of questionnaire components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -32,6 +32,7 @@ type CustomProps = Omit<
32
32
  > & {
33
33
  onChange: (v: string) => void;
34
34
  errors?: LunaticError[];
35
+ autoFocus?: boolean;
35
36
  };
36
37
 
37
38
  export const CustomInput = slottableComponent<CustomProps>('Input', (props) => {
@@ -47,6 +48,7 @@ export const CustomInput = slottableComponent<CustomProps>('Input', (props) => {
47
48
  errors,
48
49
  readOnly,
49
50
  declarations,
51
+ autoFocus = false,
50
52
  } = props;
51
53
  const labelId = `label-${id}`;
52
54
  const charactersCountId = getCharactersCountId(id, maxLength);
@@ -80,6 +82,7 @@ export const CustomInput = slottableComponent<CustomProps>('Input', (props) => {
80
82
  onBlur={(e) => {
81
83
  e.target.setSelectionRange(0, 0);
82
84
  }}
85
+ autoFocus={autoFocus}
83
86
  />
84
87
  <CharactersCount id={id} maxLength={maxLength} value={value} />
85
88
  </div>
@@ -44,6 +44,7 @@ export const PairwiseLinks = ({
44
44
  .map(([x, y]) => {
45
45
  const components = getComponents(y, x);
46
46
  const firstComponent = components[0];
47
+ if (firstComponent === undefined || firstComponent === null) return;
47
48
  if (firstComponent.componentType !== 'Dropdown') {
48
49
  return (
49
50
  <div>
@@ -110,6 +110,7 @@ function LunaticCheckboxOption({
110
110
  maxLength={detailMaxLength}
111
111
  onChange={onDetailChange}
112
112
  disabled={disabled}
113
+ autoFocus
113
114
  />
114
115
  )}
115
116
  </>
@@ -1,4 +1,4 @@
1
- import { type KeyboardEventHandler, useEffect, useRef } from 'react';
1
+ import { type KeyboardEventHandler, useRef } from 'react';
2
2
  import { slottableComponent } from '../HOC/slottableComponent';
3
3
  import { useKeyboardKey } from '../../../hooks/useKeyboardKey';
4
4
  import { Label } from '../Label/Label';
@@ -25,7 +25,6 @@ function LunaticRadioOption({
25
25
  disabled,
26
26
  readOnly,
27
27
  checkboxStyle,
28
- value,
29
28
  onKeyDown,
30
29
  index,
31
30
  shortcut,
@@ -64,16 +63,6 @@ function LunaticRadioOption({
64
63
  divEl.current?.blur();
65
64
  };
66
65
 
67
- useEffect(
68
- function () {
69
- const { current } = divEl;
70
- if (current && checked) {
71
- current.focus();
72
- }
73
- },
74
- [checked, divEl, value]
75
- );
76
-
77
66
  const hasKeyboardShortcut = Boolean(shortcut && codeModality && isEnabled);
78
67
  useKeyboardKey(
79
68
  codeModality ? [codeModality] : [],
@@ -131,6 +120,7 @@ function LunaticRadioOption({
131
120
  maxLength={detailMaxLength}
132
121
  onChange={onDetailChange}
133
122
  disabled={disabled}
123
+ autoFocus
134
124
  />
135
125
  )}
136
126
  </div>
@@ -198,6 +198,7 @@ export type ComponentPropsByType = {
198
198
  detailLabel?: ReactNode;
199
199
  detailMaxLength?: number;
200
200
  detailValue?: string | null;
201
+ shouldBeFiltered?: boolean;
201
202
  }[];
202
203
  orientation?: 'horizontal' | 'vertical';
203
204
  detailAlwaysDisplayed?: boolean;
@@ -252,6 +253,7 @@ export type ComponentPropsByType = {
252
253
  description?: ReactNode;
253
254
  label: ReactNode;
254
255
  value: string;
256
+ shouldBeFiltered?: boolean;
255
257
  }>;
256
258
  response: { name: string };
257
259
  componentType?: 'Dropdown';
@@ -90,7 +90,10 @@
90
90
  {
91
91
  "componentType": "Dropdown",
92
92
  "id": "dropdown-1",
93
- "conditionFilter": { "value": "xAxis <> yAxis", "type": "VTL" },
93
+ "conditionFilter": {
94
+ "value": "(nvl(xAxis, \"\") <> \"\") and (nvl(yAxis, \"\") <> \"\")",
95
+ "type": "VTL"
96
+ },
94
97
  "label": {
95
98
  "value": "\"Qui est \" || yAxis || \" pour \" || xAxis || \" ?\"",
96
99
  "type": "VTL|MD"
@@ -268,7 +268,7 @@ describe('lunatic-variables-store', () => {
268
268
  variables.run('"hello"', { iteration: [0] });
269
269
  variables.run('"hello"', { iteration: [1] });
270
270
  expect(variables.run('"hello"')).toEqual('hello');
271
- expect(variables.interpretCount).toBe(3);
271
+ expect(variables.interpretCount).toBe(1); // only 1 interpretation by the engine since optimisation for primitive value
272
272
  });
273
273
  it('should handle deep refresh', () => {
274
274
  variables.set('LIENS', [
@@ -372,9 +372,16 @@ class LunaticVariable {
372
372
 
373
373
  // Calculate bindings first to refresh "updatedAt" on calculated dependencies
374
374
  const bindings = this.getDependenciesValues(iteration);
375
+ const hasNoBinding = Object.keys(bindings).length === 0;
376
+
377
+ // A static expression should not be reevaluated
378
+ if (hasNoBinding && this.value) {
379
+ return this.value;
380
+ }
381
+
375
382
  // A variable without binding is a primitive (string, boolean...)
376
383
  // it yields the same results for every iteration, so we can ignore iteration
377
- if (Object.keys(bindings).length === 0) {
384
+ if (hasNoBinding) {
378
385
  iteration = undefined;
379
386
  }
380
387
  if (this.shapeFrom && !this.isOutdated(iteration)) {
@@ -19,13 +19,14 @@ export type InterpretedOption = {
19
19
  detailLabel?: ReactNode;
20
20
  detailValue?: string | null;
21
21
  detailMaxLength?: number;
22
+ shouldBeFiltered?: boolean;
22
23
  onDetailChange?: (value: string) => void;
23
24
  onCheck?: () => void;
24
25
  onUncheck?: () => void;
25
26
  };
26
27
 
27
28
  /**
28
- * Compute options for checkboxes / radios
29
+ * Compute options for checkboxes / radios / dropdown
29
30
  */
30
31
  export function getOptionsProp(
31
32
  definition: DeepTranslateExpression<LunaticComponentDefinition>,