@inseefr/lunatic 3.0.6 → 3.0.7

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 (26) hide show
  1. package/lib/components/CheckboxBoolean/CheckboxBoolean.js +1 -1
  2. package/lib/components/CheckboxGroup/CheckboxGroup.d.ts +1 -10
  3. package/lib/components/CheckboxGroup/CheckboxGroup.js +1 -21
  4. package/lib/components/CheckboxGroup/CheckboxGroup.js.map +1 -1
  5. package/lib/components/CheckboxGroup/CustomCheckboxGroup.d.ts +1 -3
  6. package/lib/components/CheckboxGroup/CustomCheckboxGroup.js +4 -2
  7. package/lib/components/CheckboxGroup/CustomCheckboxGroup.js.map +1 -1
  8. package/lib/components/CheckboxGroup/CustomCheckboxGroup.spec.js +10 -10
  9. package/lib/components/Sequence/Sequence.d.ts +1 -1
  10. package/lib/components/Subsequence/Subsequence.d.ts +1 -1
  11. package/lib/components/library.d.ts +3 -3
  12. package/lib/components/shared/Checkbox/CheckboxOption.d.ts +1 -1
  13. package/lib/components/shared/Checkbox/CheckboxOption.js +2 -2
  14. package/lib/components/shared/Checkbox/CheckboxOption.spec.js +7 -7
  15. package/lib/components/type.d.ts +8 -5
  16. package/lib/main.css +1 -0
  17. package/lib/main.css.map +1 -1
  18. package/lib/type.source.d.ts +24 -13
  19. package/lib/use-lunatic/commons/fill-components/fill-component-expressions.d.ts +1 -1
  20. package/lib/use-lunatic/commons/fill-components/fill-component-expressions.js +1 -0
  21. package/lib/use-lunatic/commons/fill-components/fill-component-expressions.js.map +1 -1
  22. package/lib/use-lunatic/props/getComponentTypeProps.d.ts +14 -9
  23. package/lib/use-lunatic/props/propOptions.d.ts +12 -1
  24. package/lib/use-lunatic/props/propOptions.js +27 -0
  25. package/lib/use-lunatic/props/propOptions.js.map +1 -1
  26. package/package.json +1 -1
@@ -14,6 +14,6 @@ export function CheckboxBoolean({ handleChanges, response, errors, value, ...pro
14
14
  }
15
15
  export const CustomCheckboxBoolean = slottableComponent('CheckboxBoolean', (props) => {
16
16
  const { disabled, checked, id, onChange, label, declarations, description, errors, } = props;
17
- return (_jsxs("div", { className: "lunatic-checkbox-boolean", children: [_jsx(CheckboxOption, { disabled: disabled, checked: checked, id: id, onClick: onChange, label: _jsxs(_Fragment, { children: [label, _jsx(Declarations, { type: "AFTER_QUESTION_TEXT", declarations: declarations })] }), description: description, invalid: !!errors }), _jsx(ComponentErrors, { errors: errors })] }));
17
+ return (_jsxs("div", { className: "lunatic-checkbox-boolean", children: [_jsx(CheckboxOption, { disabled: disabled, checked: checked, id: id, onCheck: onChange, label: _jsxs(_Fragment, { children: [label, _jsx(Declarations, { type: "AFTER_QUESTION_TEXT", declarations: declarations })] }), description: description, invalid: !!errors }), _jsx(ComponentErrors, { errors: errors })] }));
18
18
  });
19
19
  //# sourceMappingURL=CheckboxBoolean.js.map
@@ -1,11 +1,2 @@
1
- import { type ReactNode } from 'react';
2
1
  import type { LunaticComponentProps } from '../type';
3
- export type CheckboxGroupOption = {
4
- id: string;
5
- label: ReactNode;
6
- name: string;
7
- checked: boolean;
8
- description?: ReactNode;
9
- onClick: (b: boolean) => void;
10
- };
11
- export declare function CheckboxGroup({ id, value, responses, shortcut, readOnly, disabled, handleChanges, errors, label, description, declarations, }: LunaticComponentProps<'CheckboxGroup'>): import("react/jsx-runtime").JSX.Element;
2
+ export declare function CheckboxGroup({ id, shortcut, readOnly, options, disabled, errors, label, description, declarations, }: LunaticComponentProps<'CheckboxGroup'>): import("react/jsx-runtime").JSX.Element;
@@ -1,27 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import {} from 'react';
3
2
  import { CustomCheckboxGroup } from './CustomCheckboxGroup';
4
3
  import { getComponentErrors } from '../shared/ComponentErrors/ComponentErrors';
5
- export function CheckboxGroup({ id, value, responses, shortcut, readOnly, disabled, handleChanges, errors, label, description, declarations, }) {
6
- const options = responses.map(({ label, response, description, id }) => {
7
- const { name } = response;
8
- return {
9
- label,
10
- name,
11
- id,
12
- checked: castValueToBoolean(value, name),
13
- description,
14
- onClick: function (checked) {
15
- handleChanges([{ name: response.name, value: checked }]);
16
- },
17
- };
18
- });
4
+ export function CheckboxGroup({ id, shortcut, readOnly, options, disabled, errors, label, description, declarations, }) {
19
5
  return (_jsx(CustomCheckboxGroup, { id: id, description: description, options: options, label: label, errors: getComponentErrors(errors, id), shortcut: shortcut, disabled: disabled, readOnly: readOnly, declarations: declarations }));
20
6
  }
21
- function castValueToBoolean(value, name) {
22
- if (value && name in value) {
23
- return value[name] ?? false;
24
- }
25
- return false;
26
- }
27
7
  //# sourceMappingURL=CheckboxGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxGroup.js","sourceRoot":"","sources":["../../../src/components/CheckboxGroup/CheckboxGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAW/E,MAAM,UAAU,aAAa,CAAC,EAC7B,EAAE,EACF,KAAK,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,MAAM,EACN,KAAK,EACL,WAAW,EACX,YAAY,GAC4B;IACxC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE;QACtE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;QAE1B,OAAO;YACN,KAAK;YACL,IAAI;YACJ,EAAE;YACF,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC;YACxC,WAAW;YACX,OAAO,EAAE,UAAU,OAAgB;gBAClC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;SACD,CAAC;IACH,CAAC,CAAiC,CAAC;IAEnC,OAAO,CACN,KAAC,mBAAmB,IACnB,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,EACtC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,GACzB,CACF,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAC1B,KAAsD,EACtD,IAAY;IAEZ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"CheckboxGroup.js","sourceRoot":"","sources":["../../../src/components/CheckboxGroup/CheckboxGroup.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAE/E,MAAM,UAAU,aAAa,CAAC,EAC7B,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,MAAM,EACN,KAAK,EACL,WAAW,EACX,YAAY,GAC4B;IACxC,OAAO,CACN,KAAC,mBAAmB,IACnB,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,EACtC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,GACzB,CACF,CAAC;AACH,CAAC"}
@@ -1,9 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import type { LunaticError } from '../../use-lunatic/type';
3
- import { type CheckboxGroupOption } from './CheckboxGroup';
4
3
  import type { LunaticComponentProps } from '../type';
5
- type Props = Pick<LunaticComponentProps<'CheckboxGroup'>, 'id' | 'label' | 'description' | 'declarations' | 'shortcut' | 'readOnly' | 'disabled'> & {
6
- options: CheckboxGroupOption[];
4
+ type Props = Pick<LunaticComponentProps<'CheckboxGroup'>, 'id' | 'label' | 'description' | 'declarations' | 'shortcut' | 'readOnly' | 'disabled' | 'options'> & {
7
5
  errors?: LunaticError[];
8
6
  };
9
7
  export declare const CustomCheckboxGroup: import("react").ComponentType<Props>;
@@ -1,14 +1,16 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import {} from './CheckboxGroup';
3
2
  import { slottableComponent } from '../shared/HOC/slottableComponent';
4
3
  import { ComponentErrors } from '../shared/ComponentErrors/ComponentErrors';
5
4
  import { Fieldset } from '../shared/Fieldset/Fieldset';
6
5
  import { CheckboxOption } from '../shared/Checkbox/CheckboxOption';
7
6
  import { getShortcutKey } from '../shared/Checkbox/getShortcutKey';
8
7
  import { Declarations } from '../shared/Declarations/Declarations';
8
+ import { CustomInput } from '../Input/Input';
9
9
  export const CustomCheckboxGroup = slottableComponent('CheckboxGroup', ({ options, label, description, errors, shortcut, disabled, readOnly, declarations, }) => {
10
10
  return (_jsxs(Fieldset, { className: "lunatic-checkbox-group", legend: label, description: description, children: [_jsx(Declarations, { type: "AFTER_QUESTION_TEXT", declarations: declarations }), options.map((option, index) => {
11
- return (_jsx("div", { className: "lunatic-checkbox-group-option", children: _jsx(CheckboxOption, { ...option, disabled: disabled, readOnly: readOnly, shortcut: shortcut, invalid: !!errors, id: option.id, codeModality: shortcut ? getShortcutKey(index, options.length) : undefined }) }, option.id));
11
+ return (_jsxs("div", { className: "lunatic-checkbox-group-option", children: [_jsx(CheckboxOption, { ...option, disabled: disabled, readOnly: readOnly, shortcut: shortcut, invalid: !!errors, id: option.id, codeModality: shortcut ? getShortcutKey(index, options.length) : undefined }), option.onDetailChange && option.checked && (_jsx(CustomInput, { id: "detailId", label: option.detailLabel ?? 'Précisez :', value: typeof option.detailValue === 'string'
12
+ ? option.detailValue
13
+ : '', onChange: option.onDetailChange, disabled: disabled }))] }, option.id));
12
14
  }), _jsx(ComponentErrors, { errors: errors })] }));
13
15
  });
14
16
  //# sourceMappingURL=CustomCheckboxGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomCheckboxGroup.js","sourceRoot":"","sources":["../../../src/components/CheckboxGroup/CustomCheckboxGroup.tsx"],"names":[],"mappings":";AACA,OAAO,EAA4B,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAgBnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CACpD,eAAe,EACf,CAAC,EACA,OAAO,EACP,KAAK,EACL,WAAW,EACX,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,YAAY,GACL,EAAE,EAAE;IACX,OAAO,CACN,MAAC,QAAQ,IACR,SAAS,EAAC,wBAAwB,EAClC,MAAM,EAAE,KAAK,EACb,WAAW,EAAE,WAAW,aAExB,KAAC,YAAY,IAAC,IAAI,EAAC,qBAAqB,EAAC,YAAY,EAAE,YAAY,GAAI,EACtE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC9B,OAAO,CACN,cAAK,SAAS,EAAC,+BAA+B,YAC7C,KAAC,cAAc,OACV,MAAM,EACV,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EACjB,EAAE,EAAE,MAAM,CAAC,EAAE,EACb,YAAY,EACX,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,GAE5D,IAXiD,MAAM,CAAC,EAAE,CAYvD,CACN,CAAC;YACH,CAAC,CAAC,EACF,KAAC,eAAe,IAAC,MAAM,EAAE,MAAM,GAAI,IACzB,CACX,CAAC;AACH,CAAC,CACD,CAAC"}
1
+ {"version":3,"file":"CustomCheckboxGroup.js","sourceRoot":"","sources":["../../../src/components/CheckboxGroup/CustomCheckboxGroup.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAgB7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CACpD,eAAe,EACf,CAAC,EACA,OAAO,EACP,KAAK,EACL,WAAW,EACX,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,YAAY,GACL,EAAE,EAAE;IACX,OAAO,CACN,MAAC,QAAQ,IACR,SAAS,EAAC,wBAAwB,EAClC,MAAM,EAAE,KAAK,EACb,WAAW,EAAE,WAAW,aAExB,KAAC,YAAY,IAAC,IAAI,EAAC,qBAAqB,EAAC,YAAY,EAAE,YAAY,GAAI,EACtE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC9B,OAAO,CACN,eAAK,SAAS,EAAC,+BAA+B,aAC7C,KAAC,cAAc,OACV,MAAM,EACV,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EACjB,EAAE,EAAE,MAAM,CAAC,EAAE,EACb,YAAY,EACX,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,GAE5D,EACD,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,OAAO,IAAI,CAC3C,KAAC,WAAW,IACX,EAAE,EAAC,UAAU,EACb,KAAK,EAAE,MAAM,CAAC,WAAW,IAAI,YAAY,EACzC,KAAK,EACJ,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;gCACrC,CAAC,CAAC,MAAM,CAAC,WAAW;gCACpB,CAAC,CAAC,EAAE,EAEN,QAAQ,EAAE,MAAM,CAAC,cAAc,EAC/B,QAAQ,EAAE,QAAQ,GACjB,CACF,KAxBkD,MAAM,CAAC,EAAE,CAyBvD,CACN,CAAC;YACH,CAAC,CAAC,EACF,KAAC,eAAe,IAAC,MAAM,EAAE,MAAM,GAAI,IACzB,CACX,CAAC;AACH,CAAC,CACD,CAAC"}
@@ -9,37 +9,37 @@ describe('CheckboxGroupContent', () => {
9
9
  label: 'Option 1',
10
10
  checked: false,
11
11
  name: 'option1',
12
- onClick: vi.fn(),
12
+ onCheck: vi.fn(),
13
13
  },
14
14
  {
15
15
  id: '2',
16
16
  label: 'Option 2',
17
17
  checked: true,
18
18
  name: 'option2',
19
- onClick: vi.fn(),
19
+ onCheck: vi.fn(),
20
20
  },
21
21
  {
22
22
  id: '3',
23
23
  label: 'Option 3',
24
24
  checked: false,
25
25
  name: 'option3',
26
- onClick: vi.fn(),
26
+ onCheck: vi.fn(),
27
27
  },
28
28
  ];
29
- it('calls onClick callback when an option is clicked', () => {
29
+ it('calls onCheck callback when an option is clicked', () => {
30
30
  const { getByLabelText } = render(_jsx(CustomCheckboxGroup, { options: options, id: "test-checkbox-group" }));
31
31
  const option1 = getByLabelText('Option 1');
32
32
  const option2 = getByLabelText('Option 2');
33
33
  const option3 = getByLabelText('Option 3');
34
34
  fireEvent.click(option1);
35
- expect(options[0].onClick).toHaveBeenCalledTimes(1);
36
- expect(options[0].onClick).toHaveBeenCalledWith(true);
35
+ expect(options[0].onCheck).toHaveBeenCalledTimes(1);
36
+ expect(options[0].onCheck).toHaveBeenCalledWith(true);
37
37
  fireEvent.click(option2);
38
- expect(options[1].onClick).toHaveBeenCalledTimes(1);
39
- expect(options[1].onClick).toHaveBeenCalledWith(false);
38
+ expect(options[1].onCheck).toHaveBeenCalledTimes(1);
39
+ expect(options[1].onCheck).toHaveBeenCalledWith(false);
40
40
  fireEvent.click(option3);
41
- expect(options[2].onClick).toHaveBeenCalledTimes(1);
42
- expect(options[2].onClick).toHaveBeenCalledWith(true);
41
+ expect(options[2].onCheck).toHaveBeenCalledTimes(1);
42
+ expect(options[2].onCheck).toHaveBeenCalledWith(true);
43
43
  });
44
44
  });
45
45
  //# sourceMappingURL=CustomCheckboxGroup.spec.js.map
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
- export declare const Sequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "description" | "declarations" | "id" | "label" | "style"> & {
2
+ export declare const Sequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "label" | "description" | "declarations" | "id" | "style"> & {
3
3
  componentType?: "Sequence" | undefined;
4
4
  }>;
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
- export declare const Subsequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "description" | "declarations" | "id" | "label"> & {
2
+ export declare const Subsequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "label" | "description" | "declarations" | "id"> & {
3
3
  componentType?: "Subsequence" | undefined;
4
4
  }>;
@@ -16,10 +16,10 @@ import { CheckboxOne } from './CheckboxOne/CheckboxOne';
16
16
  import { Suggester } from './Suggester/Suggester';
17
17
  import { Summary } from './Summary/Summary';
18
18
  export declare const library: {
19
- Sequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "description" | "declarations" | "id" | "label" | "style"> & {
19
+ Sequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "label" | "description" | "declarations" | "id" | "style"> & {
20
20
  componentType?: "Sequence" | undefined;
21
21
  }>;
22
- Subsequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "description" | "declarations" | "id" | "label"> & {
22
+ Subsequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "label" | "description" | "declarations" | "id"> & {
23
23
  componentType?: "Subsequence" | undefined;
24
24
  }>;
25
25
  RosterForLoop: (props: import("./type").LunaticBaseProps<unknown> & {
@@ -72,7 +72,7 @@ export declare const library: {
72
72
  } | undefined;
73
73
  componentType?: "Switch" | undefined;
74
74
  }>;
75
- Question: ({ components, ...props }: Pick<import("./type").LunaticBaseProps<unknown>, "description" | "declarations" | "id" | "label" | "errors" | "disabled" | "readOnly"> & {
75
+ Question: ({ components, ...props }: Pick<import("./type").LunaticBaseProps<unknown>, "label" | "description" | "declarations" | "id" | "errors" | "disabled" | "readOnly"> & {
76
76
  components: LunaticComponentProps<keyof import("./type").ComponentPropsByType>[];
77
77
  componentType?: "Question" | undefined;
78
78
  }) => import("react/jsx-runtime").JSX.Element;
@@ -5,7 +5,7 @@ export type CheckboxOptionProps = {
5
5
  readOnly?: boolean;
6
6
  checked?: boolean;
7
7
  id?: string;
8
- onClick: (b: boolean) => void;
8
+ onCheck: (b: boolean) => void;
9
9
  label?: ReactNode;
10
10
  description?: LunaticBaseProps['description'];
11
11
  codeModality?: string;
@@ -3,12 +3,12 @@ import {} from 'react';
3
3
  import { slottableComponent } from '../HOC/slottableComponent';
4
4
  import { Label } from '../Label/Label';
5
5
  import { useKeyboardKey } from '../../../hooks/useKeyboardKey';
6
- function LunaticCheckboxOption({ disabled, readOnly, checked, id, onClick, label, description, codeModality, shortcut, invalid, }) {
6
+ function LunaticCheckboxOption({ disabled, readOnly, checked, id, onCheck, label, description, codeModality, shortcut, invalid, }) {
7
7
  const isEnabled = !readOnly && !disabled;
8
8
  const hasKeyboardShortcut = Boolean(shortcut && codeModality && isEnabled);
9
9
  const onClickOption = () => {
10
10
  if (isEnabled) {
11
- onClick(!checked);
11
+ onCheck(!checked);
12
12
  }
13
13
  };
14
14
  const handleKeyDown = (e) => {
@@ -5,7 +5,7 @@ import { describe, it, expect, vi } from 'vitest';
5
5
  describe('CheckboxOption', () => {
6
6
  const props = {
7
7
  id: 'checkbox',
8
- onClick: vi.fn(),
8
+ onCheck: vi.fn(),
9
9
  checked: false,
10
10
  disabled: false,
11
11
  label: 'Option 1',
@@ -15,7 +15,7 @@ describe('CheckboxOption', () => {
15
15
  };
16
16
  const defaultProps = {
17
17
  id: 'test-checkbox',
18
- onClick: vi.fn(),
18
+ onCheck: vi.fn(),
19
19
  label: 'Test checkbox',
20
20
  };
21
21
  it('renders the component correctly', () => {
@@ -35,18 +35,18 @@ describe('CheckboxOption', () => {
35
35
  const checkbox = getByRole('checkbox');
36
36
  expect(checkbox).toBeChecked();
37
37
  });
38
- it('calls the onClick function when clicked', () => {
38
+ it('calls the onCheck function when clicked', () => {
39
39
  const { getByRole } = render(_jsx(CheckboxOption, { ...props }));
40
40
  const checkbox = getByRole('checkbox');
41
41
  fireEvent.click(checkbox);
42
- expect(props.onClick).toHaveBeenCalledTimes(1);
43
- expect(props.onClick).toHaveBeenCalledWith(true);
42
+ expect(props.onCheck).toHaveBeenCalledTimes(1);
43
+ expect(props.onCheck).toHaveBeenCalledWith(true);
44
44
  });
45
- it('calls the onClick function when space key is pressed', () => {
45
+ it('calls the onCheck function when space key is pressed', () => {
46
46
  const { getByRole } = render(_jsx(CheckboxOption, { ...defaultProps }));
47
47
  const checkbox = getByRole('checkbox');
48
48
  fireEvent.keyDown(checkbox, { code: 'Space' });
49
- expect(defaultProps.onClick).toHaveBeenCalledWith(true);
49
+ expect(defaultProps.onCheck).toHaveBeenCalledWith(true);
50
50
  });
51
51
  });
52
52
  //# sourceMappingURL=CheckboxOption.spec.js.map
@@ -157,14 +157,17 @@ export type ComponentPropsByType = {
157
157
  componentType?: 'Datepicker';
158
158
  };
159
159
  CheckboxGroup: LunaticBaseProps<Record<string, boolean | null>> & {
160
- responses: Array<{
160
+ options: {
161
161
  id: string;
162
162
  label: ReactNode;
163
+ name: string;
164
+ checked: boolean;
163
165
  description?: ReactNode;
164
- response: {
165
- name: string;
166
- };
167
- }>;
166
+ onCheck: (b: boolean) => void;
167
+ onDetailChange?: (v: string) => void;
168
+ detailValue?: string | null;
169
+ detailLabel?: ReactNode;
170
+ }[];
168
171
  componentType?: 'CheckboxGroup';
169
172
  };
170
173
  CheckboxOne: LunaticBaseProps<string | null> & {
package/lib/main.css CHANGED
@@ -162,6 +162,7 @@
162
162
  }
163
163
  .lunatic-checkbox-group .lunatic-checkbox-group-option {
164
164
  display: flex;
165
+ flex-direction: column;
165
166
  font-size: 13px;
166
167
  }
167
168
 
package/lib/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;AA0BE;AA+BA;;AAxDA;EACE;EACA;;AAEF;EACE;EACA;;AAIF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AASF;EACE;;AAEA;EACE;EACA;;AACA;EACE;;AAGJ;EACE;EACA;;AACA;EACE;;AAGJ;EACE;;AAEF;EACE;;AAMJ;EAzEA;EACA;;AA2EA;EA5EA;EACA;;AA8EA;EACE;EA3EF;EACA;EACA;;AAEA;EACE;;AAyEF;EA9EA;EACA;EACA;;AAEA;EACE;;AA6EF;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;;;AC3JF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EAEC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;;;AClBE;EACE;EACA;;AAGJ;EACE;EACA;;;ACRF;EACC;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AACA;EACC;;;ACdJ;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;;;ACpDD;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;;AAED;EACC;EACA;EACA;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;EACA;;AACA;EACC;;AAKH;AAAA;AAAA;AAAA;EAIC;EACA;EACA;EACA;;AAIA;EACC;;AAED;EACC;EApMJ;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;;AAGC;EACC;;AAGD;EACC;;;ACRF;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;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;;;AAkBF;AA0BE;AA+BA;;AAxDA;EACE;EACA;;AAEF;EACE;EACA;;AAIF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AASF;EACE;;AAEA;EACE;EACA;;AACA;EACE;;AAGJ;EACE;EACA;;AACA;EACE;;AAGJ;EACE;;AAEF;EACE;;AAMJ;EAzEA;EACA;;AA2EA;EA5EA;EACA;;AA8EA;EACE;EA3EF;EACA;EACA;;AAEA;EACE;;AAyEF;EA9EA;EACA;EACA;;AAEA;EACE;;AA6EF;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;;;AC3JF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EAEC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;;;AClBE;EACE;EACA;;AAGJ;EACE;EACA;EACA;;;ACTF;EACC;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AACA;EACC;;;ACdJ;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;;;ACpDD;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;;AAED;EACC;EACA;EACA;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;EACA;;AACA;EACC;;AAKH;AAAA;AAAA;AAAA;EAIC;EACA;EACA;EACA;;AAIA;EACC;;AAED;EACC;EApMJ;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;;AAGC;EACC;;AAGD;EACC;;;ACRF;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"}
@@ -8,7 +8,7 @@ export type ComponentDefinitionWithPage = ComponentDefinition & ({
8
8
  } | {
9
9
  goToPage: string;
10
10
  });
11
- export type ComponentDefinition = ComponentInputDefinition | ComponentSequenceDefinition | ComponentRoundaboutDefinition | ComponentLoopDefinition | ComponentRosterForLoopDefinition | ComponentTableDefinition | ComponentNumberDefinition | ComponentDurationDefinition | ComponentDatePickerDefinition | ComponentCheckboxGroupDefinition | ComponentCheckboxBooleanDefinition | ComponentRadioDefinition | ComponentDropdownDefinition | ComponentQuestionDefinition | ComponentCheckboxOneDefinition | ComponentSuggesterDefinition | ComponentPairWiseLinksDefinition | ComponentSummaryDefinition | ComponentText;
11
+ export type ComponentDefinition = ComponentInputDefinition | ComponentSequenceDefinition | ComponentRoundaboutDefinition | ComponentLoopDefinition | ComponentRosterForLoopDefinition | ComponentTableDefinition | ComponentNumberDefinition | ComponentDurationDefinition | ComponentDatePickerDefinition | ComponentCheckboxGroupDefinition | ComponentCheckboxBooleanDefinition | ComponentRadioDefinition | ComponentDropdownDefinition | ComponentQuestionDefinition | ComponentCheckboxOneDefinition | ComponentSuggesterDefinition | ComponentPairWiseLinksDefinition | ComponentSummaryDefinition | ComponentText | ComponentAccordion;
12
12
  export type ComponentInputDefinition = ComponentInputDefinition1 & {
13
13
  componentType: 'Input' | 'Textarea';
14
14
  maxLength?: number;
@@ -117,6 +117,10 @@ export type ComponentCheckboxGroupDefinition = ComponentCheckboxGroupDefinition1
117
117
  description?: VTLExpression;
118
118
  response: ResponseDefinition;
119
119
  id: string;
120
+ detail?: {
121
+ label?: VTLExpression;
122
+ response: ResponseDefinition;
123
+ };
120
124
  }[];
121
125
  };
122
126
  export type ComponentCheckboxGroupDefinition1 = ComponentDefinitionBase;
@@ -126,9 +130,20 @@ export type ComponentCheckboxBooleanDefinition = ComponentCheckboxBooleanDefinit
126
130
  export type ComponentCheckboxBooleanDefinition1 = ComponentDefinitionBaseWithResponse;
127
131
  export type ComponentRadioDefinition = ComponentRadioDefinition1 & {
128
132
  componentType: 'Radio';
129
- options: Options;
133
+ options: OptionsWithDetail;
130
134
  };
131
135
  export type ComponentRadioDefinition1 = ComponentDefinitionBaseWithResponse;
136
+ export type OptionsWithDetail = {
137
+ value: string | boolean;
138
+ label: VTLExpression;
139
+ description?: VTLExpression;
140
+ detail?: {
141
+ label: VTLExpression;
142
+ response: {
143
+ name: string;
144
+ };
145
+ };
146
+ }[];
132
147
  export type ComponentDropdownDefinition = ComponentDropdownDefinition1 & {
133
148
  componentType: 'Dropdown';
134
149
  options: Options;
@@ -144,17 +159,6 @@ export type ComponentCheckboxOneDefinition = ComponentCheckboxOneDefinition1 & {
144
159
  options: OptionsWithDetail;
145
160
  };
146
161
  export type ComponentCheckboxOneDefinition1 = ComponentDefinitionBaseWithResponse;
147
- export type OptionsWithDetail = {
148
- value: string | boolean;
149
- label: VTLExpression;
150
- description?: VTLExpression;
151
- detail?: {
152
- label: VTLExpression;
153
- response: {
154
- name: string;
155
- };
156
- };
157
- }[];
158
162
  export type ComponentSuggesterDefinition = ComponentSuggesterDefinition1 & {
159
163
  componentType: 'Suggester';
160
164
  /**
@@ -336,6 +340,13 @@ export interface ComponentText {
336
340
  componentType: 'Text';
337
341
  label: VTLExpression;
338
342
  }
343
+ export interface ComponentAccordion {
344
+ componentType: 'Accordion';
345
+ items: {
346
+ label: VTLExpression;
347
+ body: VTLExpression;
348
+ }[];
349
+ }
339
350
  export interface SuggesterDefinition {
340
351
  /**
341
352
  * Name of the list (will be used as storeName for suggester)
@@ -1,7 +1,7 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { LunaticComponentDefinition, LunaticExpression, LunaticReducerState } from '../../type';
3
3
  type UntranslatedProperties = 'expressions' | 'sections';
4
- export type DeepTranslateExpression<T> = T extends LunaticExpression ? ReactNode : T extends {
4
+ export type DeepTranslateExpression<T> = T extends LunaticExpression ? ReactNode : T extends (infer ElementType)[] ? DeepTranslateExpression<ElementType>[] : T extends {
5
5
  [k: string | number]: unknown;
6
6
  } ? {
7
7
  [key in keyof T]: key extends UntranslatedProperties ? T[key] : DeepTranslateExpression<T[key]>;
@@ -7,6 +7,7 @@ const VTL_ATTRIBUTES = [
7
7
  ['iterations', castNumber],
8
8
  ['responses.label', null],
9
9
  ['responses.description', null],
10
+ ['responses.detail.label', null],
10
11
  ['options.description', null],
11
12
  ['options.detail.label', null],
12
13
  ['controls.iterations', castNumber],
@@ -1 +1 @@
1
- {"version":3,"file":"fill-component-expressions.js","sourceRoot":"","sources":["../../../../src/use-lunatic/commons/fill-components/fill-component-expressions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAOpD,MAAM,cAAc,GAAG;IACtB,CAAC,OAAO,EAAE,IAAI,CAAC;IACf,CAAC,eAAe,EAAE,IAAI,CAAC;IACvB,CAAC,oBAAoB,EAAE,IAAI,CAAC;IAC5B,CAAC,aAAa,EAAE,IAAI,CAAC;IACrB,CAAC,YAAY,EAAE,UAAU,CAAC;IAC1B,CAAC,iBAAiB,EAAE,IAAI,CAAC;IACzB,CAAC,uBAAuB,EAAE,IAAI,CAAC;IAC/B,CAAC,qBAAqB,EAAE,IAAI,CAAC;IAC7B,CAAC,sBAAsB,EAAE,IAAI,CAAC;IAC9B,CAAC,qBAAqB,EAAE,UAAU,CAAC;IACnC,CAAC,aAAa,EAAE,IAAI,CAAC;IACrB,CAAC,YAAY,EAAE,IAAI,CAAC;IACpB,CAAC,WAAW,EAAE,UAAU,CAAC;IACzB,CAAC,WAAW,EAAE,UAAU,CAAC;IACzB,CAAC,iBAAiB,EAAE,UAAU,CAAC;IAC/B,CAAC,iBAAiB,EAAE,UAAU,CAAC;IAC/B,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7B,CAAC,cAAc,EAAE,IAAI,CAAC;IACtB,CAAC,UAAU,EAAE,QAAQ,CAAC;IACtB,CAAC,UAAU,EAAE,QAAQ,CAAC;IACtB,iBAAiB;IACjB,CAAC,iBAAiB,EAAE,UAAU,CAAC;IAC/B,CAAC,sBAAsB,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEX,SAAS,UAAU,CAAC,CAAU;IAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU;IAC3B,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,CAAC,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACrB,CAAC;AAcD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,wBAAwB,CACvC,SAAqC,EACrC,KAGC;IAED,IAAI,eAAe,GAAQ,SAAS,CAAC,CAAC,4DAA4D;IAElG,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,8DAA8D;QAC9D,MAAM,OAAO,GAAG,CAAC,UAAmB,EAAE,EAAE;YACvC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CACd,2BAA2B,SAAS,CAAC,CAAC,CAAC,UAAU,UAAU,EAAE,CAC7D,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE;gBAClD,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS;aAC/D,CAAC,CAAC;YACH,IAAI,CAAC;gBACJ,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACzC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,wBAAwB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;QACF,CAAC,CAAC;QACF,eAAe,GAAG,uBAAuB,CACxC,eAAe,EACf,YAAY,EACZ,OAAO,CACP,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAC;AACxB,CAAC;AAED,SAAS,iBAAiB,CACzB,UAAmB;IAEnB,OAAO,OAAO,CACb,UAAU;QACT,OAAO,UAAU,KAAK,QAAQ;QAC9B,MAAM,IAAI,UAAU;QACpB,OAAO,IAAI,UAAU,CACtB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC/B,GAAY,EACZ,IAAc,EACd,WAAoC;IAEpC,sDAAsD;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,+CAA+C;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,GAAG,CAAC;IACZ,CAAC;IACD,OAAO;QACN,GAAG,GAAG;QACN,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC;KACrE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fill-component-expressions.js","sourceRoot":"","sources":["../../../../src/use-lunatic/commons/fill-components/fill-component-expressions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAOpD,MAAM,cAAc,GAAG;IACtB,CAAC,OAAO,EAAE,IAAI,CAAC;IACf,CAAC,eAAe,EAAE,IAAI,CAAC;IACvB,CAAC,oBAAoB,EAAE,IAAI,CAAC;IAC5B,CAAC,aAAa,EAAE,IAAI,CAAC;IACrB,CAAC,YAAY,EAAE,UAAU,CAAC;IAC1B,CAAC,iBAAiB,EAAE,IAAI,CAAC;IACzB,CAAC,uBAAuB,EAAE,IAAI,CAAC;IAC/B,CAAC,wBAAwB,EAAE,IAAI,CAAC;IAChC,CAAC,qBAAqB,EAAE,IAAI,CAAC;IAC7B,CAAC,sBAAsB,EAAE,IAAI,CAAC;IAC9B,CAAC,qBAAqB,EAAE,UAAU,CAAC;IACnC,CAAC,aAAa,EAAE,IAAI,CAAC;IACrB,CAAC,YAAY,EAAE,IAAI,CAAC;IACpB,CAAC,WAAW,EAAE,UAAU,CAAC;IACzB,CAAC,WAAW,EAAE,UAAU,CAAC;IACzB,CAAC,iBAAiB,EAAE,UAAU,CAAC;IAC/B,CAAC,iBAAiB,EAAE,UAAU,CAAC;IAC/B,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7B,CAAC,cAAc,EAAE,IAAI,CAAC;IACtB,CAAC,UAAU,EAAE,QAAQ,CAAC;IACtB,CAAC,UAAU,EAAE,QAAQ,CAAC;IACtB,iBAAiB;IACjB,CAAC,iBAAiB,EAAE,UAAU,CAAC;IAC/B,CAAC,sBAAsB,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEX,SAAS,UAAU,CAAC,CAAU;IAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU;IAC3B,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,CAAC,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACrB,CAAC;AAgBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,wBAAwB,CACvC,SAAqC,EACrC,KAGC;IAED,IAAI,eAAe,GAAQ,SAAS,CAAC,CAAC,4DAA4D;IAElG,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,8DAA8D;QAC9D,MAAM,OAAO,GAAG,CAAC,UAAmB,EAAE,EAAE;YACvC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CACd,2BAA2B,SAAS,CAAC,CAAC,CAAC,UAAU,UAAU,EAAE,CAC7D,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE;gBAClD,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS;aAC/D,CAAC,CAAC;YACH,IAAI,CAAC;gBACJ,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACzC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,wBAAwB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;QACF,CAAC,CAAC;QACF,eAAe,GAAG,uBAAuB,CACxC,eAAe,EACf,YAAY,EACZ,OAAO,CACP,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAC;AACxB,CAAC;AAED,SAAS,iBAAiB,CACzB,UAAmB;IAEnB,OAAO,OAAO,CACb,UAAU;QACT,OAAO,UAAU,KAAK,QAAQ;QAC9B,MAAM,IAAI,UAAU;QACpB,OAAO,IAAI,UAAU,CACtB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC/B,GAAY,EACZ,IAAc,EACd,WAAoC;IAEpC,sDAAsD;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,+CAA+C;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,GAAG,CAAC;IACZ,CAAC;IACD,OAAO;QACN,GAAG,GAAG;QACN,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC;KACrE,CAAC;AACH,CAAC"}
@@ -34,11 +34,11 @@ export declare function getComponentTypeProps(component: DeepTranslateExpression
34
34
  componentType?: "Textarea" | undefined;
35
35
  } & {
36
36
  conditionFilter?: boolean | undefined;
37
- }) | (Pick<import("../../components/type").LunaticBaseProps<string>, "description" | "declarations" | "id" | "label" | "style"> & {
37
+ }) | (Pick<import("../../components/type").LunaticBaseProps<string>, "label" | "description" | "declarations" | "id" | "style"> & {
38
38
  componentType?: "Sequence" | undefined;
39
39
  } & {
40
40
  conditionFilter?: boolean | undefined;
41
- }) | (Pick<import("../../components/type").LunaticBaseProps<string>, "description" | "declarations" | "id" | "label"> & {
41
+ }) | (Pick<import("../../components/type").LunaticBaseProps<string>, "label" | "description" | "declarations" | "id"> & {
42
42
  componentType?: "Subsequence" | undefined;
43
43
  } & {
44
44
  conditionFilter?: boolean | undefined;
@@ -49,7 +49,9 @@ export declare function getComponentTypeProps(component: DeepTranslateExpression
49
49
  iteration?: number | undefined;
50
50
  nbIterations?: number | undefined;
51
51
  subPage?: number | undefined;
52
- }) => void;
52
+ }) => void; /**
53
+ * Get component specific props (RoundAbout for instance)
54
+ */
53
55
  page: number;
54
56
  locked?: boolean | undefined;
55
57
  expressions: {
@@ -153,13 +155,16 @@ export declare function getComponentTypeProps(component: DeepTranslateExpression
153
155
  } & {
154
156
  conditionFilter?: boolean | undefined;
155
157
  }) | (import("../../components/type").LunaticBaseProps<Record<string, boolean | null>> & {
156
- responses: {
158
+ options: {
157
159
  id: string;
158
160
  label: import("react").ReactNode;
161
+ name: string;
162
+ checked: boolean;
159
163
  description?: import("react").ReactNode;
160
- response: {
161
- name: string;
162
- };
164
+ onCheck: (b: boolean) => void;
165
+ onDetailChange?: ((v: string) => void) | undefined;
166
+ detailValue?: string | null | undefined;
167
+ detailLabel?: import("react").ReactNode;
163
168
  }[];
164
169
  componentType?: "CheckboxGroup" | undefined;
165
170
  } & {
@@ -192,7 +197,7 @@ export declare function getComponentTypeProps(component: DeepTranslateExpression
192
197
  componentType?: "Dropdown" | undefined;
193
198
  } & {
194
199
  conditionFilter?: boolean | undefined;
195
- }) | (Pick<import("../../components/type").LunaticBaseProps<unknown>, "description" | "declarations" | "id" | "label" | "errors" | "disabled" | "readOnly"> & {
200
+ }) | (Pick<import("../../components/type").LunaticBaseProps<unknown>, "label" | "description" | "declarations" | "id" | "errors" | "disabled" | "readOnly"> & {
196
201
  components: import("../..").LunaticComponentProps<keyof import("../../components/type").ComponentPropsByType>[];
197
202
  componentType?: "Question" | undefined;
198
203
  } & {
@@ -296,7 +301,7 @@ export declare function getComponentTypeProps(component: DeepTranslateExpression
296
301
  componentType?: "Switch" | undefined;
297
302
  } & {
298
303
  conditionFilter?: boolean | undefined;
299
- }) | (Pick<import("../../components/type").LunaticBaseProps<string>, "id" | "label"> & {
304
+ }) | (Pick<import("../../components/type").LunaticBaseProps<string>, "label" | "id"> & {
300
305
  componentType?: "FilterDescription" | undefined;
301
306
  } & {
302
307
  conditionFilter?: boolean | undefined;
@@ -8,7 +8,7 @@ export type InterpretedOption = {
8
8
  checked?: boolean;
9
9
  detailLabel?: ReactNode;
10
10
  description?: ReactNode;
11
- detailValue?: unknown;
11
+ detailValue?: string | null;
12
12
  onDetailChange?: (value: string) => void;
13
13
  onCheck?: () => void;
14
14
  };
@@ -16,10 +16,21 @@ export type InterpretedOption = {
16
16
  * Compute options for checkboxes / radios
17
17
  */
18
18
  export declare function getOptionsProp(definition: DeepTranslateExpression<LunaticComponentDefinition>, state: Parameters<typeof fillComponent>[1], value: unknown): {
19
+ label: import("../../type.source").VTLExpression;
20
+ name: string;
21
+ id: string;
22
+ checked: boolean;
23
+ description: import("../../type.source").VTLExpression | undefined;
24
+ detailLabel: import("../../type.source").VTLExpression | undefined;
25
+ detailValue: unknown;
26
+ onCheck: (checked: boolean) => void;
27
+ onDetailChange: ((v: string) => void) | undefined;
28
+ }[] | {
19
29
  label: import("../../type.source").VTLExpression;
20
30
  description: import("../../type.source").VTLExpression | undefined;
21
31
  value: string | boolean;
22
32
  checked: boolean;
33
+ detailLabel: import("../../type.source").VTLExpression | undefined;
23
34
  onCheck: () => void;
24
35
  detailValue: unknown;
25
36
  onDetailChange: ((value: string) => void) | null;
@@ -4,6 +4,32 @@ import { isNumber } from '../../utils/number';
4
4
  * Compute options for checkboxes / radios
5
5
  */
6
6
  export function getOptionsProp(definition, state, value) {
7
+ if (definition.componentType === 'CheckboxGroup') {
8
+ const iteration = state.pager.iteration
9
+ ? [state.pager.iteration]
10
+ : undefined;
11
+ return definition.responses.map((response) => ({
12
+ label: response.label,
13
+ name: response.response.name,
14
+ id: response.id,
15
+ checked: !!state.variables.get(response.response.name, iteration),
16
+ description: response.description,
17
+ detailLabel: response.detail?.label,
18
+ detailValue: response.detail?.response
19
+ ? state.variables.get(response.detail.response.name, iteration)
20
+ : undefined,
21
+ onCheck: (checked) => {
22
+ state.handleChanges([{ name: response.response.name, value: checked }]);
23
+ },
24
+ onDetailChange: response.detail?.response
25
+ ? (v) => {
26
+ state.handleChanges([
27
+ { name: response.detail.response.name, value: v },
28
+ ]);
29
+ }
30
+ : undefined,
31
+ }));
32
+ }
7
33
  if (!('options' in definition)) {
8
34
  return [];
9
35
  }
@@ -12,6 +38,7 @@ export function getOptionsProp(definition, state, value) {
12
38
  description: option.description,
13
39
  value: option.value,
14
40
  checked: value === option.value,
41
+ detailLabel: 'detail' in option ? option.detail?.label : undefined,
15
42
  onCheck: () => {
16
43
  state.handleChanges([
17
44
  { name: definition.response.name, value: option.value },
@@ -1 +1 @@
1
- {"version":3,"file":"propOptions.js","sourceRoot":"","sources":["../../../src/use-lunatic/props/propOptions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAa9C;;GAEG;AACH,MAAM,UAAU,cAAc,CAC7B,UAA+D,EAC/D,KAA0C,EAC1C,KAAc;IAEd,IAAI,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACX,CAAC;IACD,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1C,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,KAAK,KAAK,MAAM,CAAC,KAAK;QAC/B,OAAO,EAAE,GAAG,EAAE;YACb,KAAK,CAAC,aAAa,CAAC;gBACnB,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;aACvD,CAAC,CAAC;QACJ,CAAC;QACD,WAAW,EACV,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM;YAClC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CACnB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAC3B,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;gBAC9B,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;gBACzB,CAAC,CAAC,SAAS,CACZ;YACF,CAAC,CAAC,IAAI;QACR,cAAc,EACb,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM;YAClC,CAAC,CAAC,CAAC,KAAa,EAAE,EAAE;gBAClB,KAAK,CAAC,aAAa,CAAC;oBACnB,EAAE,IAAI,EAAE,MAAM,CAAC,MAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;iBAC7C,CAAC,CAAC;YACJ,CAAC;YACF,CAAC,CAAC,IAAI;KACR,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"propOptions.js","sourceRoot":"","sources":["../../../src/use-lunatic/props/propOptions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inseefr/lunatic",
3
- "version": "3.0.6",
3
+ "version": "3.0.7",
4
4
  "description": "Library of questionnaire components",
5
5
  "type": "module",
6
6
  "repository": {