@inseefr/lunatic 3.0.0-rc.26 → 3.0.0-rc.27

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 (149) hide show
  1. package/lib/components/LunaticComponents.d.ts +7 -11
  2. package/lib/components/LunaticComponents.js +4 -1
  3. package/lib/components/LunaticComponents.js.map +1 -1
  4. package/lib/components/Table/Table.js.map +1 -1
  5. package/lib/components/library.d.ts +1 -1
  6. package/lib/components/shared/HOC/slottableComponent.d.ts +2 -2
  7. package/lib/components/shared/MDLabel/MDLabel.js +4 -1
  8. package/lib/components/shared/MDLabel/MDLabel.js.map +1 -1
  9. package/lib/components/shared/MDLabel/MDLabel.spec.js +4 -1
  10. package/lib/components/shared/MDLabel/MDLabel.spec.js.map +1 -1
  11. package/lib/components/type.d.ts +10 -10
  12. package/lib/index.d.ts +1 -1
  13. package/lib/use-lunatic/actions.d.ts +3 -52
  14. package/lib/use-lunatic/actions.js +0 -7
  15. package/lib/use-lunatic/actions.js.map +1 -1
  16. package/lib/use-lunatic/commons/check-loops.d.ts +2 -2
  17. package/lib/use-lunatic/commons/check-loops.js.map +1 -1
  18. package/lib/use-lunatic/commons/compile-controls.d.ts +2 -2
  19. package/lib/use-lunatic/commons/compile-controls.js +5 -3
  20. package/lib/use-lunatic/commons/compile-controls.js.map +1 -1
  21. package/lib/use-lunatic/commons/create-map-pages.d.ts +2 -2
  22. package/lib/use-lunatic/commons/create-map-pages.js.map +1 -1
  23. package/lib/use-lunatic/commons/execute-condition-filter.d.ts +2 -2
  24. package/lib/use-lunatic/commons/execute-condition-filter.js +3 -4
  25. package/lib/use-lunatic/commons/execute-condition-filter.js.map +1 -1
  26. package/lib/use-lunatic/commons/fill-components/fill-component-expressions.d.ts +614 -6
  27. package/lib/use-lunatic/commons/fill-components/fill-component-expressions.js +6 -13
  28. package/lib/use-lunatic/commons/fill-components/fill-component-expressions.js.map +1 -1
  29. package/lib/use-lunatic/commons/fill-components/fill-component-expressions.spec.js +1 -1
  30. package/lib/use-lunatic/commons/fill-components/fill-component-expressions.spec.js.map +1 -1
  31. package/lib/use-lunatic/commons/fill-components/fill-components.d.ts +19 -17
  32. package/lib/use-lunatic/commons/fill-components/fill-components.js +29 -29
  33. package/lib/use-lunatic/commons/fill-components/fill-components.js.map +1 -1
  34. package/lib/use-lunatic/commons/get-components-from-state.d.ts +2 -3
  35. package/lib/use-lunatic/commons/get-components-from-state.js +1 -2
  36. package/lib/use-lunatic/commons/get-components-from-state.js.map +1 -1
  37. package/lib/use-lunatic/commons/index.d.ts +0 -3
  38. package/lib/use-lunatic/commons/index.js +0 -3
  39. package/lib/use-lunatic/commons/index.js.map +1 -1
  40. package/lib/use-lunatic/commons/page.d.ts +2 -2
  41. package/lib/use-lunatic/commons/page.js +2 -1
  42. package/lib/use-lunatic/commons/page.js.map +1 -1
  43. package/lib/use-lunatic/hooks/use-loop-variables.d.ts +2 -2
  44. package/lib/use-lunatic/hooks/use-loop-variables.js.map +1 -1
  45. package/lib/use-lunatic/hooks/use-page-has-response.d.ts +2 -2
  46. package/lib/use-lunatic/hooks/use-page-has-response.js.map +1 -1
  47. package/lib/use-lunatic/hooks/useOverview.d.ts +2 -2
  48. package/lib/use-lunatic/hooks/useOverview.js.map +1 -1
  49. package/lib/use-lunatic/props/propComponentType.d.ts +9 -0
  50. package/lib/use-lunatic/{commons/fill-components/fill-specific-expression.js → props/propComponentType.js} +21 -27
  51. package/lib/use-lunatic/props/propComponentType.js.map +1 -0
  52. package/lib/use-lunatic/props/propIterations.d.ts +7 -0
  53. package/lib/use-lunatic/props/propIterations.js +26 -0
  54. package/lib/use-lunatic/props/propIterations.js.map +1 -0
  55. package/lib/use-lunatic/props/propMissingResponse.d.ts +9 -0
  56. package/lib/use-lunatic/props/propMissingResponse.js +13 -0
  57. package/lib/use-lunatic/props/propMissingResponse.js.map +1 -0
  58. package/lib/use-lunatic/props/propValue.d.ts +6 -0
  59. package/lib/use-lunatic/props/propValue.js +28 -0
  60. package/lib/use-lunatic/props/propValue.js.map +1 -0
  61. package/lib/use-lunatic/{commons/fill-components/fill-component-value.spec.js → props/propValue.spec.js} +6 -6
  62. package/lib/use-lunatic/props/propValue.spec.js.map +1 -0
  63. package/lib/use-lunatic/reducer/commons/auto-explore-loop.d.ts +2 -2
  64. package/lib/use-lunatic/reducer/commons/auto-explore-loop.js.map +1 -1
  65. package/lib/use-lunatic/reducer/commons/validate-condition-filter.d.ts +2 -2
  66. package/lib/use-lunatic/reducer/commons/validate-condition-filter.js.map +1 -1
  67. package/lib/use-lunatic/reducer/controls/check-base-control.d.ts +2 -2
  68. package/lib/use-lunatic/reducer/controls/check-base-control.js.map +1 -1
  69. package/lib/use-lunatic/reducer/controls/check-roundabout-control.d.ts +2 -2
  70. package/lib/use-lunatic/reducer/controls/check-roundabout-control.js.map +1 -1
  71. package/lib/use-lunatic/reducer/overview/overviewOnInit.d.ts +4 -105
  72. package/lib/use-lunatic/reducer/overview/overviewOnInit.js +1 -12
  73. package/lib/use-lunatic/reducer/overview/overviewOnInit.js.map +1 -1
  74. package/lib/use-lunatic/reducer/reduce-go-next-page.d.ts +2 -2
  75. package/lib/use-lunatic/reducer/reduce-go-next-page.js.map +1 -1
  76. package/lib/use-lunatic/reducer/reduce-go-previous-page.d.ts +2 -3
  77. package/lib/use-lunatic/reducer/reduce-go-previous-page.js +1 -2
  78. package/lib/use-lunatic/reducer/reduce-go-previous-page.js.map +1 -1
  79. package/lib/use-lunatic/reducer/reduce-go-to-page.d.ts +2 -3
  80. package/lib/use-lunatic/reducer/reduce-go-to-page.js +1 -2
  81. package/lib/use-lunatic/reducer/reduce-go-to-page.js.map +1 -1
  82. package/lib/use-lunatic/reducer/reduce-handle-change.d.ts +2 -2
  83. package/lib/use-lunatic/reducer/reduce-handle-change.js.map +1 -1
  84. package/lib/use-lunatic/reducer/reducer.d.ts +2 -3
  85. package/lib/use-lunatic/reducer/reducer.js +3 -10
  86. package/lib/use-lunatic/reducer/reducer.js.map +1 -1
  87. package/lib/use-lunatic/reducer/reducerInitializer.d.ts +10 -0
  88. package/lib/use-lunatic/reducer/{reduce-on-init.js → reducerInitializer.js} +70 -72
  89. package/lib/use-lunatic/reducer/reducerInitializer.js.map +1 -0
  90. package/lib/use-lunatic/type.d.ts +77 -49
  91. package/lib/use-lunatic/use-lunatic.d.ts +23 -69
  92. package/lib/use-lunatic/use-lunatic.js +69 -74
  93. package/lib/use-lunatic/use-lunatic.js.map +1 -1
  94. package/lib/utils/object.d.ts +1 -0
  95. package/lib/utils/object.js +6 -0
  96. package/lib/utils/object.js.map +1 -1
  97. package/package.json +2 -1
  98. package/lib/stories/behaviour/cleaning/source-loop.json +0 -130
  99. package/lib/stories/behaviour/resizing/source-resizing-cleaning.json +0 -171
  100. package/lib/stories/overview/dataLoop.json +0 -189
  101. package/lib/stories/overview/source.json +0 -28
  102. package/lib/stories/overview/sourceLoop.json +0 -1423
  103. package/lib/stories/questionnaires/logement/source.json +0 -31762
  104. package/lib/stories/questionnaires2023/simpsons/source.json +0 -4728
  105. package/lib/use-lunatic/commons/fill-components/fill-component-required.d.ts +0 -442
  106. package/lib/use-lunatic/commons/fill-components/fill-component-required.js +0 -13
  107. package/lib/use-lunatic/commons/fill-components/fill-component-required.js.map +0 -1
  108. package/lib/use-lunatic/commons/fill-components/fill-component-value.d.ts +0 -5
  109. package/lib/use-lunatic/commons/fill-components/fill-component-value.js +0 -34
  110. package/lib/use-lunatic/commons/fill-components/fill-component-value.js.map +0 -1
  111. package/lib/use-lunatic/commons/fill-components/fill-component-value.spec.js.map +0 -1
  112. package/lib/use-lunatic/commons/fill-components/fill-from-state.d.ts +0 -770
  113. package/lib/use-lunatic/commons/fill-components/fill-from-state.js +0 -18
  114. package/lib/use-lunatic/commons/fill-components/fill-from-state.js.map +0 -1
  115. package/lib/use-lunatic/commons/fill-components/fill-iterations.d.ts +0 -124
  116. package/lib/use-lunatic/commons/fill-components/fill-iterations.js +0 -36
  117. package/lib/use-lunatic/commons/fill-components/fill-iterations.js.map +0 -1
  118. package/lib/use-lunatic/commons/fill-components/fill-management.d.ts +0 -6
  119. package/lib/use-lunatic/commons/fill-components/fill-management.js +0 -9
  120. package/lib/use-lunatic/commons/fill-components/fill-management.js.map +0 -1
  121. package/lib/use-lunatic/commons/fill-components/fill-missing-response.d.ts +0 -12
  122. package/lib/use-lunatic/commons/fill-components/fill-missing-response.js +0 -20
  123. package/lib/use-lunatic/commons/fill-components/fill-missing-response.js.map +0 -1
  124. package/lib/use-lunatic/commons/fill-components/fill-pagination.d.ts +0 -9
  125. package/lib/use-lunatic/commons/fill-components/fill-pagination.js +0 -10
  126. package/lib/use-lunatic/commons/fill-components/fill-pagination.js.map +0 -1
  127. package/lib/use-lunatic/commons/fill-components/fill-specific-expression.d.ts +0 -1268
  128. package/lib/use-lunatic/commons/fill-components/fill-specific-expression.js.map +0 -1
  129. package/lib/use-lunatic/commons/fill-components/index.d.ts +0 -1
  130. package/lib/use-lunatic/commons/fill-components/index.js +0 -2
  131. package/lib/use-lunatic/commons/fill-components/index.js.map +0 -1
  132. package/lib/use-lunatic/commons/use-components-from-state.d.ts +0 -4
  133. package/lib/use-lunatic/commons/use-components-from-state.js +0 -15
  134. package/lib/use-lunatic/commons/use-components-from-state.js.map +0 -1
  135. package/lib/use-lunatic/initial-state.d.ts +0 -3
  136. package/lib/use-lunatic/initial-state.js +0 -39
  137. package/lib/use-lunatic/initial-state.js.map +0 -1
  138. package/lib/use-lunatic/reducer/index.d.ts +0 -1
  139. package/lib/use-lunatic/reducer/index.js +0 -2
  140. package/lib/use-lunatic/reducer/index.js.map +0 -1
  141. package/lib/use-lunatic/reducer/reduce-on-init.d.ts +0 -4
  142. package/lib/use-lunatic/reducer/reduce-on-init.js.map +0 -1
  143. package/lib/use-lunatic/reducer/reduce-on-set-waiting.d.ts +0 -4
  144. package/lib/use-lunatic/reducer/reduce-on-set-waiting.js +0 -8
  145. package/lib/use-lunatic/reducer/reduce-on-set-waiting.js.map +0 -1
  146. package/lib/use-lunatic/use-lunatic.test.d.ts +0 -1
  147. package/lib/use-lunatic/use-lunatic.test.js +0 -280
  148. package/lib/use-lunatic/use-lunatic.test.js.map +0 -1
  149. /package/lib/use-lunatic/{commons/fill-components/fill-component-value.spec.d.ts → props/propValue.spec.d.ts} +0 -0
@@ -1,6 +1,9 @@
1
- import type { ReactNode } from 'react';
2
- import type { ComponentType, ControlType, LunaticSource, Variable } from './type-source';
1
+ import type { FunctionComponent, PropsWithChildren, ReactNode } from 'react';
2
+ import type { ComponentType, ControlType, Variable } from './type-source';
3
3
  import type { LunaticVariablesStore } from './commons/variables/lunatic-variables-store';
4
+ import type { IndexEntry } from '../utils/search/SearchInterface';
5
+ import type { InterpretedLunaticOverviewItem } from './hooks/useOverview';
6
+ import type { LunaticComponentProps } from '../components/type';
4
7
  export type LunaticComponentDefinition<T extends ComponentType['componentType'] = ComponentType['componentType']> = ComponentType & {
5
8
  componentType: T;
6
9
  };
@@ -34,7 +37,6 @@ export type LunaticExpression = {
34
37
  type: ExpressionType;
35
38
  bindingDependencies?: string[];
36
39
  };
37
- export type TODO = unknown;
38
40
  export type PageTag = `${number}.${number}#${number}` | `${number}`;
39
41
  export type LunaticVariable = Variable;
40
42
  export type LunaticCollectedValue = Partial<{
@@ -54,9 +56,21 @@ export type LunaticStateVariable = {
54
56
  CalculatedLinked?: LunaticVariable[];
55
57
  };
56
58
  }[LunaticVariable['variableType']];
57
- export type LunaticState = {
58
- updatedAt: number;
59
+ export type LunaticPager = {
60
+ lastReachedPage?: PageTag;
61
+ maxPage: number;
62
+ nbSubPages?: number;
63
+ page: number;
64
+ subPage?: number;
65
+ iteration?: number;
66
+ nbIterations?: number;
67
+ shallowIteration?: number;
68
+ linksIterations?: number[];
69
+ };
70
+ export type LunaticReducerState = {
59
71
  variables: LunaticVariablesStore;
72
+ overview: LunaticOverviewItem[];
73
+ pager: LunaticPager;
60
74
  pages: {
61
75
  [key: number | string]: {
62
76
  components: ComponentType[];
@@ -72,37 +86,50 @@ export type LunaticState = {
72
86
  subPages: string[];
73
87
  };
74
88
  };
89
+ executeExpression: <T extends unknown = unknown>(expression: unknown, args?: {
90
+ iteration?: number | number[];
91
+ bindingDependencies?: string[];
92
+ deps?: string[];
93
+ }) => T;
94
+ isInLoop: boolean;
95
+ updatedAt: number;
96
+ updateBindings: (variableName: string, value: unknown, options: {
97
+ iteration?: number[];
98
+ }) => unknown;
99
+ };
100
+ export type LunaticOptions = {
101
+ features?: ('MD' | 'VTL')[];
102
+ preferences?: ['COLLECTED'];
103
+ savingType?: 'COLLECTED';
104
+ onChange?: LunaticChangeHandler;
105
+ management?: boolean;
106
+ shortcut?: boolean;
107
+ initialPage?: PageTag;
108
+ lastReachedPage?: PageTag;
109
+ autoSuggesterLoading?: boolean;
110
+ getReferentiel?: (name: string) => Promise<Array<IndexEntry>>;
111
+ activeControls?: boolean;
112
+ withOverview?: boolean;
113
+ missing?: boolean;
114
+ missingStrategy?: () => void;
115
+ missingShortcut?: {
116
+ dontKnow: string;
117
+ refused: string;
118
+ };
119
+ dontKnowButton?: string;
120
+ refusedButton?: string;
121
+ trackChanges?: boolean;
122
+ };
123
+ export type LunaticState = {
124
+ pager: LunaticPager;
125
+ overview: InterpretedLunaticOverviewItem[];
126
+ pageTag: PageTag;
127
+ updatedAt: number;
128
+ Provider: FunctionComponent<PropsWithChildren>;
75
129
  isInLoop: boolean;
130
+ loopVariables: string[];
76
131
  isFirstPage: boolean;
77
132
  isLastPage: boolean;
78
- features: ['VTL'] | ['VTL', 'MD'];
79
- preferences: ['COLLECTED'];
80
- savingType: 'COLLECTED';
81
- cleaning: LunaticSource['cleaning'];
82
- missingBlock: {
83
- [variable: string]: string[];
84
- };
85
- resizing: {
86
- [variable: string]: {
87
- size: string;
88
- variables: string[];
89
- sizeForLinksVariables?: unknown;
90
- linksVariables?: string[];
91
- };
92
- };
93
- overview: LunaticOverviewItem[];
94
- pager: {
95
- lastReachedPage?: PageTag;
96
- maxPage: number;
97
- nbSubPages?: number;
98
- page: number;
99
- subPage?: number;
100
- iteration?: number;
101
- nbIterations?: number;
102
- shallowIteration?: number;
103
- linksIterations?: number[];
104
- };
105
- waiting: boolean;
106
133
  errors?: {
107
134
  [page: string]: {
108
135
  [id: string]: LunaticError[];
@@ -112,22 +139,6 @@ export type LunaticState = {
112
139
  [id: string]: LunaticError[];
113
140
  };
114
141
  modalErrors?: Record<string, LunaticError[]>;
115
- handleChange: (response: {
116
- name: string;
117
- }, value: any, args?: {
118
- iteration?: number[];
119
- }) => void;
120
- executeExpression: <T extends unknown = unknown>(expression: unknown, args?: {
121
- iteration?: number | number[];
122
- bindingDependencies?: string[];
123
- deps?: string[];
124
- }) => T;
125
- updateBindings: (variableName: string, value: unknown, options: {
126
- iteration?: number[];
127
- }) => unknown;
128
- activeControls: boolean;
129
- shortcut?: boolean;
130
- management?: boolean;
131
142
  goToPage: (page: {
132
143
  page: PageTag | number;
133
144
  iteration?: number;
@@ -136,4 +147,21 @@ export type LunaticState = {
136
147
  }) => void;
137
148
  goNextPage: () => void;
138
149
  goPreviousPage: () => void;
150
+ compileControls: () => void;
151
+ getComponents: (params?: {
152
+ only?: LunaticComponentProps['componentType'];
153
+ except?: LunaticComponentProps['componentType'];
154
+ }) => LunaticComponentProps[];
155
+ getData: (withRefreshedCalculated: boolean, variableNames?: string[]) => LunaticData;
156
+ getChangedData: (reset: boolean) => LunaticData;
157
+ resetChangedData: () => void;
158
+ hasPageResponse: () => boolean;
159
+ testing: {
160
+ handleChange: LunaticChangeHandler;
161
+ };
139
162
  };
163
+ export type LunaticChangeHandler = (response: {
164
+ name: string;
165
+ }, value: any, args?: {
166
+ iteration?: number[];
167
+ }) => void;
@@ -1,71 +1,29 @@
1
1
  /// <reference types="react" />
2
- import type { LunaticState, PageTag } from './type';
2
+ import type { LunaticChangeHandler, LunaticData, LunaticOptions, PageTag } from './type';
3
3
  import type { LunaticSource } from './type-source';
4
- import type { LunaticComponentProps } from '../components/type';
5
- import type { IndexEntry } from '../utils/search/SearchInterface';
6
- declare function useLunatic(source: LunaticSource, data: Partial<Record<"EXTERNAL" | "CALCULATED", Record<string, unknown>> & {
7
- COLLECTED: Record<string, Partial<{
8
- COLLECTED: unknown;
9
- EDITED: unknown;
10
- FORCED: unknown;
11
- INPUTTED: unknown;
12
- PREVIOUS: unknown;
13
- }>>;
14
- }> | undefined, { features, preferences, savingType, onChange, management, shortcut, initialPage, lastReachedPage, autoSuggesterLoading, activeControls, getReferentiel, withOverview, missing, missingStrategy, missingShortcut, dontKnowButton, refusedButton, trackChanges, }: {
15
- features?: LunaticState['features'];
16
- preferences?: LunaticState['preferences'];
17
- savingType?: LunaticState['savingType'];
18
- onChange?: LunaticState['handleChange'];
19
- management?: boolean;
20
- shortcut?: boolean;
21
- initialPage?: PageTag;
22
- lastReachedPage?: PageTag;
23
- autoSuggesterLoading?: boolean;
24
- getReferentiel?: (name: string) => Promise<Array<IndexEntry>>;
25
- activeControls?: boolean;
26
- withOverview?: boolean;
27
- missing?: boolean;
28
- missingStrategy?: () => void;
29
- missingShortcut?: {
30
- dontKnow: string;
31
- refused: string;
32
- };
33
- dontKnowButton?: string;
34
- refusedButton?: string;
35
- trackChanges?: boolean;
36
- }): {
37
- getComponents: ({ only, except, }?: {
38
- only?: LunaticComponentProps['componentType'];
39
- except?: LunaticComponentProps['componentType'];
40
- }) => LunaticComponentProps[];
4
+ declare function useLunatic(source: LunaticSource, data?: LunaticData, argOptions?: LunaticOptions): {
5
+ pageTag: PageTag;
6
+ isFirstPage: boolean;
7
+ isLastPage: boolean;
8
+ updatedAt: number;
9
+ pager: import("./type").LunaticPager;
10
+ isInLoop: boolean;
11
+ overview: import("./hooks/useOverview").InterpretedLunaticOverviewItem[];
12
+ loopVariables: string[];
13
+ getComponents: (params?: {
14
+ only?: "Sequence" | "Subsequence" | "RosterForLoop" | "Loop" | "Table" | "InputNumber" | "Datepicker" | "Duration" | "CheckboxGroup" | "CheckboxBoolean" | "Radio" | "FilterDescription" | "Dropdown" | "PairwiseLinks" | "Roundabout" | "Suggester" | "Input" | "Textarea" | "CheckboxOne" | "Question" | "Switch" | "Summary" | undefined;
15
+ except?: "Sequence" | "Subsequence" | "RosterForLoop" | "Loop" | "Table" | "InputNumber" | "Datepicker" | "Duration" | "CheckboxGroup" | "CheckboxBoolean" | "Radio" | "FilterDescription" | "Dropdown" | "PairwiseLinks" | "Roundabout" | "Suggester" | "Input" | "Textarea" | "CheckboxOne" | "Question" | "Switch" | "Summary" | undefined;
16
+ } | undefined) => import("..").LunaticComponentProps[];
41
17
  goPreviousPage: () => void;
42
- goNextPage: (payload?: {}) => void;
18
+ goNextPage: () => void;
43
19
  goToPage: (page: {
44
20
  page: number | PageTag;
45
21
  iteration?: number | undefined;
46
22
  nbIterations?: number | undefined;
47
23
  subPage?: number | undefined;
48
24
  }) => void;
49
- compileControls: () => {
50
- currentErrors: Record<string, import("./type").LunaticError[]> | undefined;
51
- isCritical: boolean;
52
- };
53
- pageTag: PageTag;
54
- isFirstPage: boolean;
55
- isLastPage: boolean;
56
- pager: {
57
- lastReachedPage?: PageTag | undefined;
58
- maxPage: number;
59
- nbSubPages?: number | undefined;
60
- page: number;
61
- subPage?: number | undefined;
62
- iteration?: number | undefined;
63
- nbIterations?: number | undefined;
64
- shallowIteration?: number | undefined;
65
- linksIterations?: number[] | undefined;
66
- };
67
- waiting: boolean;
68
- getData: (withRefreshedCalculated: boolean, variableNames?: string[]) => Partial<Record<"EXTERNAL" | "CALCULATED", Record<string, unknown>> & {
25
+ compileControls: () => void;
26
+ getData: (withRefreshedCalculated: boolean, variableNames?: string[] | undefined) => Partial<Record<"EXTERNAL" | "CALCULATED", Record<string, unknown>> & {
69
27
  COLLECTED: Record<string, Partial<{
70
28
  COLLECTED: unknown;
71
29
  EDITED: unknown;
@@ -74,16 +32,6 @@ declare function useLunatic(source: LunaticSource, data: Partial<Record<"EXTERNA
74
32
  PREVIOUS: unknown;
75
33
  }>>;
76
34
  }>;
77
- Provider: import("react").FunctionComponent<{
78
- children?: import("react").ReactNode;
79
- }>;
80
- onChange: (response: {
81
- name: string;
82
- }, value: any, args?: {
83
- iteration?: number[] | undefined;
84
- } | undefined) => void;
85
- overview: import("./hooks/useOverview").InterpretedLunaticOverviewItem[];
86
- loopVariables: string[];
87
35
  getChangedData: (reset?: boolean) => Partial<Record<"EXTERNAL" | "CALCULATED", Record<string, unknown>> & {
88
36
  COLLECTED: Record<string, Partial<{
89
37
  COLLECTED: unknown;
@@ -95,5 +43,11 @@ declare function useLunatic(source: LunaticSource, data: Partial<Record<"EXTERNA
95
43
  }>;
96
44
  resetChangedData: () => void;
97
45
  hasPageResponse: () => boolean;
46
+ Provider: import("react").FunctionComponent<{
47
+ children?: import("react").ReactNode;
48
+ }>;
49
+ testing: {
50
+ handleChange: LunaticChangeHandler;
51
+ };
98
52
  };
99
53
  export default useLunatic;
@@ -1,35 +1,54 @@
1
1
  import { useCallback, useEffect, useMemo, useReducer } from 'react';
2
2
  import * as actions from './actions';
3
- import { getPageTag, isFirstLastPage, useComponentsFromState } from './commons';
3
+ import { getPageTag, isFirstLastPage } from './commons';
4
4
  import D from '../i18n';
5
5
  import { COLLECTED } from '../utils/constants';
6
- import INITIAL_STATE from './initial-state';
7
6
  import { createLunaticProvider } from './lunatic-context';
8
7
  import { compileControls as compileControlsLib } from './commons/compile-controls';
9
8
  import { useLoopVariables } from './hooks/use-loop-variables';
10
- import reducer from './reducer';
11
9
  import { getQuestionnaireData } from './commons/variables/get-questionnaire-data';
12
10
  import { useTrackChanges } from '../hooks/use-track-changes';
13
11
  import { usePageHasResponse } from './hooks/use-page-has-response';
14
12
  import { registerSuggesters } from '../utils/search/SuggestersDatabase';
15
13
  import { useRefSync } from '../hooks/useRefSync';
16
14
  import { useOverview } from './hooks/useOverview';
15
+ import { reducerInitializer } from './reducer/reducerInitializer';
16
+ import { getComponentsFromState } from './commons/get-components-from-state';
17
+ import { fillComponents } from './commons/fill-components/fill-components';
18
+ import { reducer } from './reducer/reducer';
19
+ import { mergeDefault } from '../utils/object';
17
20
  const empty = {}; // Keep the same empty object (to avoid problem with useEffect dependencies)
18
- const emptyFn = () => { };
19
21
  const DEFAULT_DATA = empty;
20
22
  const DEFAULT_FEATURES = ['VTL', 'MD'];
21
23
  const DEFAULT_PREFERENCES = [COLLECTED];
22
24
  const DEFAULT_SHORTCUT = { dontKnow: '', refused: '' };
23
25
  const DEFAULT_DONT_KNOW = D.DK;
24
26
  const DEFAULT_REFUSED = D.RF;
25
- const nothing = () => { };
26
- function useLunatic(source, data = DEFAULT_DATA, { features = DEFAULT_FEATURES, preferences = DEFAULT_PREFERENCES, savingType = COLLECTED, onChange = nothing, management = false, shortcut = false, initialPage = '1', lastReachedPage = undefined, autoSuggesterLoading = false, activeControls = false, getReferentiel,
27
- // Calculate an overview of every sequence (will be exposed as "overview")
28
- withOverview = false, missing = false, missingStrategy = emptyFn, missingShortcut = DEFAULT_SHORTCUT, dontKnowButton = DEFAULT_DONT_KNOW, refusedButton = DEFAULT_REFUSED, trackChanges = false, }) {
29
- const [state, dispatch] = useReducer(reducer, INITIAL_STATE);
30
- const { pager, waiting, overview, pages, executeExpression, isInLoop } = state;
31
- const components = useComponentsFromState(state);
32
- const getReferentielRef = useRefSync(getReferentiel);
27
+ const defaultOptions = {
28
+ features: DEFAULT_FEATURES,
29
+ preferences: DEFAULT_PREFERENCES,
30
+ savingType: COLLECTED,
31
+ onChange: () => { },
32
+ management: false,
33
+ shortcut: false,
34
+ initialPage: '1',
35
+ lastReachedPage: undefined,
36
+ autoSuggesterLoading: false,
37
+ activeControls: false,
38
+ // Calculate an overview of every sequence (will be exposed as "overview")
39
+ withOverview: false,
40
+ missing: false,
41
+ missingStrategy: () => { },
42
+ missingShortcut: DEFAULT_SHORTCUT,
43
+ dontKnowButton: DEFAULT_DONT_KNOW,
44
+ refusedButton: DEFAULT_REFUSED,
45
+ trackChanges: false,
46
+ };
47
+ function useLunatic(source, data = DEFAULT_DATA, argOptions = empty) {
48
+ const options = mergeDefault(argOptions, defaultOptions);
49
+ const { management, missing, missingStrategy, shortcut, missingShortcut, dontKnowButton, refusedButton, onChange, trackChanges, preferences, } = options;
50
+ const [state, dispatch] = useReducer(reducer, { ...options, source, data }, reducerInitializer);
51
+ const getReferentielRef = useRefSync(options.getReferentiel);
33
52
  // Register the list of suggesters
34
53
  useEffect(() => {
35
54
  if (source.suggesters && getReferentielRef.current) {
@@ -54,9 +73,9 @@ withOverview = false, missing = false, missingStrategy = emptyFn, missingShortcu
54
73
  dontKnowButton,
55
74
  refusedButton,
56
75
  ]);
57
- const compileControls = useCallback(function () {
58
- return compileControlsLib({ pager, pages, isInLoop, executeExpression });
59
- }, [pager, pages, isInLoop, executeExpression]);
76
+ const compileControls = () => {
77
+ return compileControlsLib(state);
78
+ };
60
79
  const goPreviousPage = useCallback(function () {
61
80
  dispatch(actions.goPreviousPage());
62
81
  }, [dispatch]);
@@ -66,18 +85,6 @@ withOverview = false, missing = false, missingStrategy = emptyFn, missingShortcu
66
85
  const goToPage = useCallback(function (payload) {
67
86
  dispatch(actions.goToPage(payload));
68
87
  }, [dispatch]);
69
- const getComponents = useCallback(function ({ only, except, } = {}) {
70
- if (only && except) {
71
- throw new Error('"only" and "except" cannot be used together in getComponents()');
72
- }
73
- if (only) {
74
- return components.filter((c) => only.includes(c.componentType ?? ''));
75
- }
76
- if (except) {
77
- return components.filter((c) => !except.includes(c.componentType ?? ''));
78
- }
79
- return components;
80
- }, [components]);
81
88
  const handleChange = useCallback((response, value, args) => {
82
89
  dispatch(actions.handleChange(typeof response === 'string' ? response : response.name, value, args?.iteration));
83
90
  onChange(response, value, args);
@@ -86,66 +93,54 @@ withOverview = false, missing = false, missingStrategy = emptyFn, missingShortcu
86
93
  return getQuestionnaireData(state.variables, source.variables, withRefreshedCalculated, variableNames);
87
94
  };
88
95
  const { resetChangedData, getChangedData } = useTrackChanges(trackChanges, state.variables, (variableNames) => getData(false, variableNames));
89
- const pageTag = getPageTag(pager);
90
- const { isFirstPage, isLastPage } = isFirstLastPage(pager);
91
- useEffect(function () {
92
- dispatch(actions.onInit({
93
- source,
94
- data,
95
- initialPage,
96
- lastReachedPage,
97
- features,
98
- preferences,
99
- savingType,
100
- management,
101
- shortcut,
102
- handleChange,
103
- activeControls,
104
- goToPage,
105
- goNextPage,
106
- goPreviousPage,
107
- withOverview,
108
- }));
109
- }, [
110
- source,
111
- data,
112
- initialPage,
113
- features,
114
- preferences,
115
- savingType,
116
- management,
117
- shortcut,
96
+ const pageTag = getPageTag(state.pager);
97
+ const { isFirstPage, isLastPage } = isFirstLastPage(state.pager);
98
+ const components = fillComponents(getComponentsFromState(state), {
118
99
  handleChange,
119
- activeControls,
120
- withOverview,
100
+ preferences,
121
101
  goToPage,
102
+ shortcut,
122
103
  goNextPage,
123
104
  goPreviousPage,
124
- lastReachedPage,
125
- ]);
105
+ management,
106
+ ...state,
107
+ });
108
+ const getComponents = ({ only, except, } = {}) => {
109
+ if (only && except) {
110
+ throw new Error('"only" and "except" cannot be used together in getComponents()');
111
+ }
112
+ if (only) {
113
+ return components.filter((c) => only.includes(c.componentType ?? ''));
114
+ }
115
+ if (except) {
116
+ return components.filter((c) => !except.includes(c.componentType ?? ''));
117
+ }
118
+ return components;
119
+ };
126
120
  return {
121
+ pageTag,
122
+ isFirstPage,
123
+ isLastPage,
124
+ updatedAt: state.updatedAt,
125
+ pager: state.pager,
126
+ isInLoop: state.isInLoop,
127
+ overview: useOverview(state, [pageTag]),
128
+ loopVariables: useLoopVariables(state.pager, state.pages),
129
+ // Methods
127
130
  getComponents,
128
131
  goPreviousPage,
129
132
  goNextPage,
130
133
  goToPage,
131
134
  compileControls,
132
- pageTag,
133
- isFirstPage,
134
- isLastPage,
135
- pager,
136
- waiting,
137
135
  getData,
138
- Provider,
139
- onChange: handleChange,
140
- overview: useOverview({
141
- executeExpression,
142
- overview,
143
- pager,
144
- }, [pageTag]),
145
- loopVariables: useLoopVariables(pager, state.pages),
146
136
  getChangedData,
147
137
  resetChangedData,
148
- hasPageResponse: usePageHasResponse(components, executeExpression),
138
+ hasPageResponse: usePageHasResponse(components, state.executeExpression),
139
+ // Components
140
+ Provider,
141
+ testing: {
142
+ handleChange,
143
+ },
149
144
  };
150
145
  }
151
146
  export default useLunatic;
@@ -1 +1 @@
1
- {"version":3,"file":"use-lunatic.js","sourceRoot":"","sources":["../../src/use-lunatic/use-lunatic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-lunatic.js","sourceRoot":"","sources":["../../src/use-lunatic/use-lunatic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAQxD,OAAO,CAAC,MAAM,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,4EAA4E;AAC9F,MAAM,YAAY,GAAG,KAAoB,CAAC;AAC1C,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,IAAI,CAAkB,CAAC;AACxD,MAAM,mBAAmB,GAAG,CAAC,SAAS,CAAkB,CAAC;AACzD,MAAM,gBAAgB,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAEvD,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,CAAC;AAC/B,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC;AAE7B,MAAM,cAAc,GAAG;IACtB,QAAQ,EAAE,gBAAgB;IAC1B,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE,SAAS;IACrB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;IAClB,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,GAAc;IAC3B,eAAe,EAAE,SAAS;IAC1B,oBAAoB,EAAE,KAAK;IAC3B,cAAc,EAAE,KAAK;IACrB,0EAA0E;IAC1E,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,KAAK;IACd,eAAe,EAAE,GAAG,EAAE,GAAE,CAAC;IACzB,eAAe,EAAE,gBAAgB;IACjC,cAAc,EAAE,iBAAiB;IACjC,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,KAAK;CACM,CAAC;AAE3B,SAAS,UAAU,CAClB,MAAqB,EACrB,OAAoB,YAAY,EAChC,aAA6B,KAAK;IAElC,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACzD,MAAM,EACL,UAAU,EACV,OAAO,EACP,eAAe,EACf,QAAQ,EACR,eAAe,EACf,cAAc,EACd,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,WAAW,GACX,GAAG,OAAO,CAAC;IACZ,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,UAAU,CACnC,OAAO,EACP,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAC5B,kBAAkB,CAClB,CAAC;IACF,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAE7D,kCAAkC;IAClC,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,MAAM,CAAC,UAAU,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACpD,kBAAkB,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC;IACF,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE3C,gFAAgF;IAChF,MAAM,QAAQ,GAAG,OAAO,CACvB,GAAG,EAAE,CACJ,qBAAqB,CAAC;QACrB,UAAU;QACV,OAAO;QACP,eAAe;QACf,QAAQ;QACR,eAAe;QACf,cAAc;QACd,aAAa;KACb,CAAC,EACH;QACC,UAAU;QACV,OAAO;QACP,eAAe;QACf,QAAQ;QACR,eAAe;QACf,cAAc;QACd,aAAa;KACb,CACD,CAAC;IAEF,MAAM,eAAe,GAAoC,GAAG,EAAE;QAC7D,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,cAAc,GAAmC,WAAW,CACjE;QACC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACpC,CAAC,EACD,CAAC,QAAQ,CAAC,CACV,CAAC;IAEF,MAAM,UAAU,GAA+B,WAAW,CACzD,UAAU,OAAO,GAAG,EAAE;QACrB,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC,EACD,CAAC,QAAQ,CAAC,CACV,CAAC;IAEF,MAAM,QAAQ,GAA6B,WAAW,CACrD,UAAU,OAAO;QAChB,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,CAAC,EACD,CAAC,QAAQ,CAAC,CACV,CAAC;IACF,MAAM,YAAY,GAAG,WAAW,CAC/B,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACzB,QAAQ,CACP,OAAO,CAAC,YAAY,CACnB,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EACvD,KAAK,EACL,IAAI,EAAE,SAAS,CACf,CACD,CAAC;QACF,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,EACD,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACpB,CAAC;IAEF,MAAM,OAAO,GAA4B,CACxC,uBAAuB,EACvB,aAAa,EACZ,EAAE;QACH,OAAO,oBAAoB,CAC1B,KAAK,CAAC,SAAS,EACf,MAAM,CAAC,SAAS,EAChB,uBAAuB,EACvB,aAAa,CACb,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,eAAe,CAC3D,YAAY,EACZ,KAAK,CAAC,SAAS,EACf,CAAC,aAAwB,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAC3D,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;QAChE,YAAY;QACZ,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,cAAc;QACd,UAAU;QACV,GAAG,KAAK;KACR,CAAC,CAAC;IAEH,MAAM,aAAa,GAAkC,CAAC,EACrD,IAAI,EACJ,MAAM,GACN,GAAG,EAAE,EAAE,EAAE;QACT,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACd,gEAAgE,CAChE,CAAC;QACH,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACV,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,UAAU,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO;QACN,OAAO;QACP,WAAW;QACX,UAAU;QACV,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;QACvC,aAAa,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;QACzD,UAAU;QACV,aAAa;QACb,cAAc;QACd,UAAU;QACV,QAAQ;QACR,eAAe;QACf,OAAO;QACP,cAAc;QACd,gBAAgB;QAChB,eAAe,EAAE,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC;QACxE,aAAa;QACb,QAAQ;QACR,OAAO,EAAE;YACR,YAAY;SACZ;KACsB,CAAC;AAC1B,CAAC;AAED,eAAe,UAAU,CAAC"}
@@ -3,3 +3,4 @@
3
3
  */
4
4
  export declare function objectMap<T extends Record<string, any>, V extends unknown>(object: T, callback: (k: keyof T, v: T[keyof T]) => [k: keyof T, v: V] | null): Record<keyof T, V>;
5
5
  export declare function objectKeys<T extends Record<string, unknown>>(object: T): (keyof T)[];
6
+ export declare function mergeDefault<T extends Record<string, unknown>, D extends Record<string, unknown>>(obj: T, defaults: D): T & D;
@@ -17,4 +17,10 @@ export function objectMap(object, callback) {
17
17
  export function objectKeys(object) {
18
18
  return Object.keys(object);
19
19
  }
20
+ export function mergeDefault(obj, defaults) {
21
+ return objectMap({ ...obj, ...defaults }, (k) => {
22
+ // @ts-ignore Ignore this line since TS is not able to handle this case
23
+ return [k, obj[k] ?? defaults[k]];
24
+ });
25
+ }
20
26
  //# sourceMappingURL=object.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/utils/object.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,SAAS,CACxB,MAAS,EACT,QAAkE;IAElE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CACnC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACjB,OAAO,GAAG,CAAC;IACZ,CAAC,EACD,EAAwB,CACxB,CAAC;AACH,CAAC;AACD,6EAA6E;AAC7E,kEAAkE;AAClE,MAAM,UAAU,UAAU,CAAoC,MAAS;IACtE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAgB,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/utils/object.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,SAAS,CACxB,MAAS,EACT,QAAkE;IAElE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CACnC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACjB,OAAO,GAAG,CAAC;IACZ,CAAC,EACD,EAAwB,CACxB,CAAC;AACH,CAAC;AACD,6EAA6E;AAC7E,kEAAkE;AAClE,MAAM,UAAU,UAAU,CAAoC,MAAS;IACtE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAgB,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,YAAY,CAG1B,GAAM,EAAE,QAAW;IACpB,OAAO,SAAS,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;QAC/C,uEAAuE;QACvE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAU,CAAC;IAC5C,CAAC,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inseefr/lunatic",
3
- "version": "3.0.0-rc.26",
3
+ "version": "3.0.0-rc.27",
4
4
  "description": "Library of questionnaire components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -70,6 +70,7 @@
70
70
  "react-markdown": "^8.0.3",
71
71
  "react-number-format": "^5.1.3",
72
72
  "react-tooltip": "^5.23.0",
73
+ "remark-breaks": "^4.0.0",
73
74
  "sass": "^1.58.3"
74
75
  },
75
76
  "resolutions": {