@inseefr/lunatic 3.1.1 → 3.1.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.
@@ -1,7 +1,7 @@
1
+ /// <reference types="react" />
1
2
  import type { LunaticComponentProps } from '../type';
2
- import React from 'react';
3
- type Props = Pick<LunaticComponentProps<'Roundabout'>, 'items' | 'label'> & {
3
+ type Props = Pick<LunaticComponentProps<'Roundabout'>, 'items' | 'label' | 'locked'> & {
4
4
  goToIteration: (v: number) => void;
5
5
  };
6
- export declare const CustomRoundabout: React.ComponentType<Props>;
6
+ export declare const CustomRoundabout: import("react").ComponentType<Props>;
7
7
  export {};
@@ -3,12 +3,11 @@ import { slottableComponent } from '../shared/HOC/slottableComponent';
3
3
  import { Label } from '../shared/Label/Label';
4
4
  import { Button } from '../shared/Button/Button';
5
5
  import classnames from 'classnames';
6
- import React from 'react';
7
- function RoundaboutItem({ label, progress, description, onClick, disabled, iteration, }) {
8
- return (_jsxs("section", { className: "lunatic-roundabout__item", children: [_jsxs("div", { children: [label && (_jsx("label", { className: "lunatic-roundabout__label", htmlFor: `action${iteration}`, children: label })), description && (_jsx("div", { className: "lunatic-roundabout__description", children: description }))] }), !disabled && (_jsx(Button, { id: `action${iteration}`, className: classnames('lunatic-roundabout__button', getButtonClass(progress)), onClick: onClick, children: getButtonLabel(progress) }))] }));
6
+ function RoundaboutItem({ label, progress, description, onClick, disabled, iteration, locked, }) {
7
+ return (_jsxs("section", { className: "lunatic-roundabout__item", children: [_jsxs("div", { children: [label && (_jsx("label", { className: "lunatic-roundabout__label", htmlFor: `action${iteration}`, children: label })), description && (_jsx("div", { className: "lunatic-roundabout__description", children: description }))] }), !disabled && (_jsx(Button, { id: `action${iteration}`, className: classnames('lunatic-roundabout__button', getButtonClass(progress)), onClick: onClick, disabled: locked && progress === 1, children: getButtonLabel(progress) }))] }));
9
8
  }
10
- export const CustomRoundabout = slottableComponent('Roundabout', ({ items, goToIteration, label }) => {
11
- return (_jsxs("div", { className: "lunatic-roundabout", children: [_jsx(Label, { children: label }), _jsx("div", { className: "lunatic-roundabout__items", children: items.map((item, k) => (_jsx(RoundaboutItem, { iteration: k, ...item, onClick: () => goToIteration(k) }, k))) })] }));
9
+ export const CustomRoundabout = slottableComponent('Roundabout', ({ items, goToIteration, label, locked }) => {
10
+ return (_jsxs("div", { className: "lunatic-roundabout", children: [_jsx(Label, { children: label }), _jsx("div", { className: "lunatic-roundabout__items", children: items.map((item, k) => (_jsx(RoundaboutItem, { iteration: k, ...item, onClick: () => goToIteration(k), locked: locked }, k))) })] }));
12
11
  });
13
12
  function getButtonLabel(progress) {
14
13
  if (progress === 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"CustomRoundabout.js","sourceRoot":"","sources":["../../../src/components/Roundabout/CustomRoundabout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,SAAS,cAAc,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,OAAO,EACP,QAAQ,EACR,SAAS,GACE;IACX,OAAO,CACN,mBAAS,SAAS,EAAC,0BAA0B,aAC5C,0BACE,KAAK,IAAI,CACT,gBACC,SAAS,EAAC,2BAA2B,EACrC,OAAO,EAAE,SAAS,SAAS,EAAE,YAE5B,KAAK,GACC,CACR,EACA,WAAW,IAAI,CACf,cAAK,SAAS,EAAC,iCAAiC,YAAE,WAAW,GAAO,CACpE,IACI,EACL,CAAC,QAAQ,IAAI,CACb,KAAC,MAAM,IACN,EAAE,EAAE,SAAS,SAAS,EAAE,EACxB,SAAS,EAAE,UAAU,CACpB,4BAA4B,EAC5B,cAAc,CAAC,QAAQ,CAAC,CACxB,EACD,OAAO,EAAE,OAAO,YAEf,cAAc,CAAC,QAAQ,CAAC,GACjB,CACT,IACQ,CACV,CAAC;AACH,CAAC;AAMD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CACjD,YAAY,EACZ,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE;IACnC,OAAO,CACN,eAAK,SAAS,EAAC,oBAAoB,aAClC,KAAC,KAAK,cAAE,KAAK,GAAS,EACtB,cAAK,SAAS,EAAC,2BAA2B,YACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,KAAC,cAAc,IAEd,SAAS,EAAE,CAAC,KACR,IAAI,EACR,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAH1B,CAAC,CAIL,CACF,CAAC,GACG,IACD,CACN,CAAC;AACH,CAAC,CACD,CAAC;AAEF,SAAS,cAAc,CAAC,QAAgB;IACvC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACvC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,sCAAsC,CAAC;IAC/C,CAAC;IACD,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,qCAAqC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"CustomRoundabout.js","sourceRoot":"","sources":["../../../src/components/Roundabout/CustomRoundabout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,UAAU,MAAM,YAAY,CAAC;AAQpC,SAAS,cAAc,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,OAAO,EACP,QAAQ,EACR,SAAS,EACT,MAAM,GACK;IACX,OAAO,CACN,mBAAS,SAAS,EAAC,0BAA0B,aAC5C,0BACE,KAAK,IAAI,CACT,gBACC,SAAS,EAAC,2BAA2B,EACrC,OAAO,EAAE,SAAS,SAAS,EAAE,YAE5B,KAAK,GACC,CACR,EACA,WAAW,IAAI,CACf,cAAK,SAAS,EAAC,iCAAiC,YAAE,WAAW,GAAO,CACpE,IACI,EACL,CAAC,QAAQ,IAAI,CACb,KAAC,MAAM,IACN,EAAE,EAAE,SAAS,SAAS,EAAE,EACxB,SAAS,EAAE,UAAU,CACpB,4BAA4B,EAC5B,cAAc,CAAC,QAAQ,CAAC,CACxB,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,IAAI,QAAQ,KAAK,CAAC,YAEjC,cAAc,CAAC,QAAQ,CAAC,GACjB,CACT,IACQ,CACV,CAAC;AACH,CAAC;AASD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CACjD,YAAY,EACZ,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3C,OAAO,CACN,eAAK,SAAS,EAAC,oBAAoB,aAClC,KAAC,KAAK,cAAE,KAAK,GAAS,EACtB,cAAK,SAAS,EAAC,2BAA2B,YACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,KAAC,cAAc,IAEd,SAAS,EAAE,CAAC,KACR,IAAI,EACR,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,IAJT,CAAC,CAKL,CACF,CAAC,GACG,IACD,CACN,CAAC;AACH,CAAC,CACD,CAAC;AAEF,SAAS,cAAc,CAAC,QAAgB;IACvC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACvC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,sCAAsC,CAAC;IAC/C,CAAC;IACD,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,qCAAqC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -5,8 +5,6 @@ import { CustomRoundabout } from './CustomRoundabout';
5
5
  */
6
6
  export function Roundabout(props) {
7
7
  const goToIteration = (iteration) => {
8
- // Update progress
9
- console.log(props.items);
10
8
  if (props.items[iteration].progress !== 1 &&
11
9
  props.items[iteration].progress !== 0) {
12
10
  props.handleChanges([
@@ -1 +1 @@
1
- {"version":3,"file":"Roundabout.js","sourceRoot":"","sources":["../../../src/components/Roundabout/Roundabout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAA0C;IACpE,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,EAAE;QAC3C,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,IACC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,CAAC;YACrC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,CAAC,EACpC,CAAC;YACF,KAAK,CAAC,aAAa,CAAC;gBACnB,EAAE,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE;aAClE,CAAC,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,CAAC;YACV,SAAS;YACT,YAAY,EAAE,KAAK,CAAC,UAAU;SAC9B,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,KAAC,gBAAgB,OAAK,KAAK,EAAE,aAAa,EAAE,aAAa,GAAI,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"Roundabout.js","sourceRoot":"","sources":["../../../src/components/Roundabout/Roundabout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAA0C;IACpE,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,EAAE;QAC3C,IACC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,CAAC;YACrC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,CAAC,EACpC,CAAC;YACF,KAAK,CAAC,aAAa,CAAC;gBACnB,EAAE,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE;aAClE,CAAC,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,CAAC;YACV,SAAS;YACT,YAAY,EAAE,KAAK,CAAC,UAAU;SAC9B,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,KAAC,gBAAgB,OAAK,KAAK,EAAE,aAAa,EAAE,aAAa,GAAI,CAAC;AACtE,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import React, {} from 'react';
3
2
  import { render, fireEvent } from '@testing-library/react';
4
3
  import { CustomRoundabout } from './CustomRoundabout';
5
4
  import { describe, it, expect, vi, afterEach } from 'vitest';
@@ -24,7 +23,7 @@ describe('Roundabout', () => {
24
23
  ];
25
24
  const label = 'My Roundabout';
26
25
  it('renders the roundabout correctly', () => {
27
- const { getByText } = render(_jsx(CustomRoundabout, { items: items, goToIteration: mockGoToIteration }));
26
+ const { getByText } = render(_jsx(CustomRoundabout, { items: items, goToIteration: mockGoToIteration, locked: false }));
28
27
  expect(getByText('Step 1')).toBeInTheDocument();
29
28
  expect(getByText('Step 2')).toBeInTheDocument();
30
29
  expect(getByText('Step 3')).toBeInTheDocument();
@@ -33,11 +32,16 @@ describe('Roundabout', () => {
33
32
  expect(getByText('Commencer')).toBeInTheDocument();
34
33
  });
35
34
  it('calls the goToIteration function when a button is clicked', () => {
36
- const { getByText } = render(_jsx(CustomRoundabout, { items: items, goToIteration: mockGoToIteration, label: label }));
35
+ const { getByText } = render(_jsx(CustomRoundabout, { items: items, goToIteration: mockGoToIteration, label: label, locked: false }));
37
36
  const button = getByText('Modifier');
38
37
  fireEvent.click(button);
39
38
  expect(mockGoToIteration).toHaveBeenCalledTimes(1);
40
39
  expect(mockGoToIteration).toHaveBeenCalledWith(1);
41
40
  });
41
+ it('it lock an iteration when finished and locked property is true', () => {
42
+ const { getByText } = render(_jsx(CustomRoundabout, { items: items, goToIteration: mockGoToIteration, locked: true }));
43
+ const completeButton = getByText('Complété');
44
+ expect(completeButton).toBeDisabled();
45
+ });
42
46
  });
43
47
  //# sourceMappingURL=roundabout.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"roundabout.spec.js","sourceRoot":"","sources":["../../../src/components/Roundabout/roundabout.spec.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAkB,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE7D,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC3B,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAElC,SAAS,CAAC,GAAG,EAAE;QACd,iBAAiB,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACb;YACC,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,CAAC,CAAC;SACZ;QACD;YACC,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,CAAC;SACX;QACD;YACC,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,CAAC;SACX;KACD,CAAC;IACF,MAAM,KAAK,GAAG,eAAe,CAAC;IAE9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC3B,KAAC,gBAAgB,IAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,iBAAiB,GAAI,CACpE,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACpE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC3B,KAAC,gBAAgB,IAChB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,iBAAiB,EAChC,KAAK,EAAE,KAAK,GACX,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAExB,MAAM,CAAC,iBAAiB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"roundabout.spec.js","sourceRoot":"","sources":["../../../src/components/Roundabout/roundabout.spec.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE7D,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC3B,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAElC,SAAS,CAAC,GAAG,EAAE;QACd,iBAAiB,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACb;YACC,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,CAAC,CAAC;SACZ;QACD;YACC,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,CAAC;SACX;QACD;YACC,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,CAAC;SACX;KACD,CAAC;IACF,MAAM,KAAK,GAAG,eAAe,CAAC;IAE9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC3B,KAAC,gBAAgB,IAChB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,iBAAiB,EAChC,MAAM,EAAE,KAAK,GACZ,CACF,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACpE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC3B,KAAC,gBAAgB,IAChB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,iBAAiB,EAChC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,GACZ,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAExB,MAAM,CAAC,iBAAiB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACzE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC3B,KAAC,gBAAgB,IAChB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,iBAAiB,EAChC,MAAM,EAAE,IAAI,GACX,CACF,CAAC;QAEF,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,CAAC,cAAc,CAAC,CAAC,YAAY,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -207,6 +207,7 @@ export type ComponentPropsByType = {
207
207
  goToPage: ReturnType<typeof useLunatic>['goToPage'];
208
208
  page: number;
209
209
  progressVariable: string;
210
+ locked: boolean;
210
211
  items: {
211
212
  label?: ReactNode;
212
213
  progress: number;
@@ -1,6 +1,7 @@
1
1
  import { isObject } from '../../../utils/is-object';
2
2
  const VTL_ATTRIBUTES = [
3
3
  ['label', null],
4
+ ['unit', null],
4
5
  ['options.label', null],
5
6
  ['declarations.label', null],
6
7
  ['description', null],
@@ -25,6 +26,8 @@ const VTL_ATTRIBUTES = [
25
26
  ['arbitrary.label', castString],
26
27
  ['arbitrary.inputLabel', castString],
27
28
  ];
29
+ // List of property that can be simple string instead of expressions
30
+ const allowString = new Set(['unit']);
28
31
  function castNumber(v) {
29
32
  if (typeof v === 'number') {
30
33
  return v;
@@ -90,8 +93,12 @@ export function fillComponentExpressions(component, state) {
90
93
  for (const attribute of VTL_ATTRIBUTES) {
91
94
  const propertyPath = attribute[0].split('.');
92
95
  const caster = attribute[1];
93
- // Function that will convert expression into the desired type
96
+ // Interpret an expression
94
97
  const convert = (expression) => {
98
+ // For backward compatibility, some properties can be both a string and an expression
99
+ if (typeof expression === 'string' && allowString.has(propertyPath[0])) {
100
+ return expression;
101
+ }
95
102
  if (!isValidExpression(expression)) {
96
103
  throw new Error(`Expression expected at "${attribute[0]}", got ${expression}`);
97
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fill-component-expressions.js","sourceRoot":"","sources":["../../../../src/use-lunatic/commons/fill-components/fill-component-expressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fill-component-expressions.js","sourceRoot":"","sources":["../../../../src/use-lunatic/commons/fill-components/fill-component-expressions.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,7 @@ export declare function getComponentTypeProps(component: DeepTranslateExpression
54
54
  }) => void;
55
55
  page: number;
56
56
  progressVariable: string;
57
+ locked: boolean;
57
58
  items: {
58
59
  label?: import("react").ReactNode;
59
60
  progress: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inseefr/lunatic",
3
- "version": "3.1.1",
3
+ "version": "3.1.2",
4
4
  "description": "Library of questionnaire components",
5
5
  "type": "module",
6
6
  "repository": {