@inseefr/lunatic 3.4.10-rc.1 → 3.4.11-rc.0

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 (140) hide show
  1. package/README.md +6 -4
  2. package/components/Loop/Loop.js +27 -7
  3. package/components/Loop/Loop.js.map +1 -1
  4. package/components/LunaticComponents.d.ts +10 -1
  5. package/components/LunaticComponents.js +3 -1
  6. package/components/LunaticComponents.js.map +1 -1
  7. package/components/RosterForLoop/RosterForLoop.js +37 -8
  8. package/components/RosterForLoop/RosterForLoop.js.map +1 -1
  9. package/components/Sequence/Sequence.d.ts +1 -1
  10. package/components/Subsequence/Subsequence.d.ts +1 -1
  11. package/components/library.d.ts +2 -2
  12. package/components/shared/HOC/slottableComponent.d.ts +3 -3
  13. package/components/shared/HOC/slottableComponent.js +2 -2
  14. package/esm/components/Loop/Loop.js +27 -7
  15. package/esm/components/Loop/Loop.js.map +1 -1
  16. package/esm/components/LunaticComponents.d.ts +10 -1
  17. package/esm/components/LunaticComponents.js +3 -1
  18. package/esm/components/LunaticComponents.js.map +1 -1
  19. package/esm/components/RosterForLoop/RosterForLoop.js +34 -8
  20. package/esm/components/RosterForLoop/RosterForLoop.js.map +1 -1
  21. package/esm/components/Sequence/Sequence.d.ts +1 -1
  22. package/esm/components/Subsequence/Subsequence.d.ts +1 -1
  23. package/esm/components/library.d.ts +2 -2
  24. package/esm/components/shared/HOC/slottableComponent.d.ts +3 -3
  25. package/esm/components/shared/HOC/slottableComponent.js +2 -2
  26. package/esm/i18n/dictionary.d.ts +8 -0
  27. package/esm/i18n/dictionary.js +5 -0
  28. package/esm/i18n/dictionary.js.map +1 -1
  29. package/esm/i18n/index.d.ts +1 -1
  30. package/esm/type.source.js +0 -1
  31. package/esm/type.source.js.map +1 -1
  32. package/esm/use-lunatic/commons/compile-controls.d.ts +1 -1
  33. package/esm/use-lunatic/commons/compile-controls.js +4 -3
  34. package/esm/use-lunatic/commons/compile-controls.js.map +1 -1
  35. package/esm/use-lunatic/commons/variables/behaviours/resizing-behaviour.js +23 -7
  36. package/esm/use-lunatic/commons/variables/behaviours/resizing-behaviour.js.map +1 -1
  37. package/esm/use-lunatic/commons/variables/lunatic-variables-store.d.ts +19 -1
  38. package/esm/use-lunatic/commons/variables/lunatic-variables-store.js +6 -6
  39. package/esm/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
  40. package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js +66 -1
  41. package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
  42. package/esm/use-lunatic/hooks/use-loop-variables.d.ts +1 -1
  43. package/esm/use-lunatic/hooks/use-loop-variables.js +1 -1
  44. package/esm/use-lunatic/hooks/use-page-has-response.d.ts +1 -1
  45. package/esm/use-lunatic/hooks/use-page-has-response.js +6 -6
  46. package/esm/use-lunatic/hooks/useOverview.d.ts +1 -1
  47. package/esm/use-lunatic/hooks/useOverview.js +4 -4
  48. package/esm/use-lunatic/hooks/useWarnDepChange.d.ts +3 -2
  49. package/esm/use-lunatic/hooks/useWarnDepChange.js +3 -2
  50. package/esm/use-lunatic/hooks/useWarnDepChange.js.map +1 -1
  51. package/esm/use-lunatic/lunatic-context.d.ts +5 -2
  52. package/esm/use-lunatic/lunatic-context.js +5 -2
  53. package/esm/use-lunatic/lunatic-context.js.map +1 -1
  54. package/esm/use-lunatic/props/getComponentTypeProps.d.ts +4 -4
  55. package/esm/use-lunatic/reducer/commons/index.d.ts +0 -1
  56. package/esm/use-lunatic/reducer/commons/index.js +0 -1
  57. package/esm/use-lunatic/reducer/commons/index.js.map +1 -1
  58. package/esm/use-lunatic/type.d.ts +153 -2
  59. package/esm/use-lunatic/use-lunatic.d.ts +13 -36
  60. package/esm/use-lunatic/use-lunatic.js +13 -2
  61. package/esm/use-lunatic/use-lunatic.js.map +1 -1
  62. package/esm/utils/array.d.ts +4 -0
  63. package/esm/utils/array.js +15 -2
  64. package/esm/utils/array.js.map +1 -1
  65. package/esm/utils/array.spec.js +12 -1
  66. package/esm/utils/array.spec.js.map +1 -1
  67. package/i18n/dictionary.d.ts +8 -0
  68. package/i18n/dictionary.js +5 -0
  69. package/i18n/dictionary.js.map +1 -1
  70. package/i18n/index.d.ts +1 -1
  71. package/package.json +1 -8
  72. package/src/components/Loop/Loop.tsx +42 -12
  73. package/src/components/LunaticComponents.tsx +10 -8
  74. package/src/components/RosterForLoop/RosterForLoop.tsx +42 -2
  75. package/src/components/RosterForLoop/__snapshots__/RosterForLoop.spec.tsx.snap +18 -0
  76. package/src/components/shared/HOC/slottableComponent.tsx +3 -3
  77. package/src/i18n/dictionary.ts +5 -0
  78. package/src/stories/pairwise/data.json +1 -1
  79. package/src/stories/pairwise/source.json +3 -1
  80. package/src/type.source.ts +0 -1
  81. package/src/use-lunatic/__snapshots__/use-lunatic.test.ts.snap +0 -323
  82. package/src/use-lunatic/commons/compile-controls.ts +4 -3
  83. package/src/use-lunatic/commons/variables/behaviours/resizing-behaviour.ts +35 -10
  84. package/src/use-lunatic/commons/variables/lunatic-variables-store.spec.ts +68 -1
  85. package/src/use-lunatic/commons/variables/lunatic-variables-store.ts +21 -19
  86. package/src/use-lunatic/hooks/use-loop-variables.ts +1 -1
  87. package/src/use-lunatic/hooks/use-page-has-response.ts +6 -6
  88. package/src/use-lunatic/hooks/useOverview.ts +4 -4
  89. package/src/use-lunatic/hooks/useWarnDepChange.ts +3 -2
  90. package/src/use-lunatic/lunatic-context.tsx +5 -2
  91. package/src/use-lunatic/reducer/commons/index.ts +0 -1
  92. package/src/use-lunatic/type.ts +154 -17
  93. package/src/use-lunatic/use-lunatic.ts +11 -2
  94. package/src/utils/array.spec.ts +18 -1
  95. package/src/utils/array.ts +21 -3
  96. package/tsconfig.build.tsbuildinfo +1 -1
  97. package/type.source.js +0 -1
  98. package/type.source.js.map +1 -1
  99. package/use-lunatic/commons/compile-controls.d.ts +1 -1
  100. package/use-lunatic/commons/compile-controls.js +4 -3
  101. package/use-lunatic/commons/compile-controls.js.map +1 -1
  102. package/use-lunatic/commons/variables/behaviours/resizing-behaviour.js +22 -6
  103. package/use-lunatic/commons/variables/behaviours/resizing-behaviour.js.map +1 -1
  104. package/use-lunatic/commons/variables/lunatic-variables-store.d.ts +19 -1
  105. package/use-lunatic/commons/variables/lunatic-variables-store.js +13 -13
  106. package/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
  107. package/use-lunatic/commons/variables/lunatic-variables-store.spec.js +66 -1
  108. package/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
  109. package/use-lunatic/hooks/use-loop-variables.d.ts +1 -1
  110. package/use-lunatic/hooks/use-loop-variables.js +1 -1
  111. package/use-lunatic/hooks/use-page-has-response.d.ts +1 -1
  112. package/use-lunatic/hooks/use-page-has-response.js +6 -6
  113. package/use-lunatic/hooks/useOverview.d.ts +1 -1
  114. package/use-lunatic/hooks/useOverview.js +4 -4
  115. package/use-lunatic/hooks/useWarnDepChange.d.ts +3 -2
  116. package/use-lunatic/hooks/useWarnDepChange.js +3 -2
  117. package/use-lunatic/hooks/useWarnDepChange.js.map +1 -1
  118. package/use-lunatic/lunatic-context.d.ts +5 -2
  119. package/use-lunatic/lunatic-context.js +5 -2
  120. package/use-lunatic/lunatic-context.js.map +1 -1
  121. package/use-lunatic/props/getComponentTypeProps.d.ts +4 -4
  122. package/use-lunatic/reducer/commons/index.d.ts +0 -1
  123. package/use-lunatic/reducer/commons/index.js +0 -6
  124. package/use-lunatic/reducer/commons/index.js.map +1 -1
  125. package/use-lunatic/type.d.ts +153 -2
  126. package/use-lunatic/use-lunatic.d.ts +13 -36
  127. package/use-lunatic/use-lunatic.js +13 -2
  128. package/use-lunatic/use-lunatic.js.map +1 -1
  129. package/utils/array.d.ts +4 -0
  130. package/utils/array.js +16 -2
  131. package/utils/array.js.map +1 -1
  132. package/utils/array.spec.js +11 -0
  133. package/utils/array.spec.js.map +1 -1
  134. package/esm/use-lunatic/reducer/commons/resize-array-variable.d.ts +0 -5
  135. package/esm/use-lunatic/reducer/commons/resize-array-variable.js +0 -21
  136. package/esm/use-lunatic/reducer/commons/resize-array-variable.js.map +0 -1
  137. package/src/use-lunatic/reducer/commons/resize-array-variable.ts +0 -28
  138. package/use-lunatic/reducer/commons/resize-array-variable.d.ts +0 -5
  139. package/use-lunatic/reducer/commons/resize-array-variable.js +0 -23
  140. package/use-lunatic/reducer/commons/resize-array-variable.js.map +0 -1
package/README.md CHANGED
@@ -1,14 +1,16 @@
1
- <img align="right" src="docs/img/lunatic-logo.png" alt="Lunatic logo"/>
1
+ <p align="center">
2
+ <img alt="Lunatic" src="public/images/lunatic-logo.png" style="max-width: 100%;">
3
+ </p>
2
4
 
3
- # Lunatic
5
+ Lunatic is a front-end library in the form of a React hook and component libraries for generating a questionnaire from the [Lunatic-Model](https://github.com/InseeFr/Lunatic-Model) data format.
4
6
 
5
7
  [![Lunatic CI](https://github.com/InseeFr/Lunatic/actions/workflows/ci-main.yaml/badge.svg)](https://github.com/InseeFr/Lunatic/actions/workflows/ci-main.yaml)
6
8
  [![npm version](https://badge.fury.io/js/%40inseefr%2Flunatic.svg)](https://badge.fury.io/js/%40inseefr%2Flunatic)
7
- [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=InseeFr_Lunatic&metric=coverage)](https://sonarcloud.io/dashboard?id=InseeFr_Lunatic)
8
9
  [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=InseeFr_Lunatic&metric=alert_status)](https://sonarcloud.io/dashboard?id=InseeFr_Lunatic)
10
+ [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=InseeFr_Lunatic&metric=coverage)](https://sonarcloud.io/dashboard?id=InseeFr_Lunatic)
9
11
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
10
12
 
11
- Lunatic is a front-end library in the form of a React hook and component libraries for generating a questionnaire from the [Lunatic-Model](https://github.com/InseeFr/Lunatic-Model) data format.
13
+ ---
12
14
 
13
15
  - [Storybook 3.0](https://inseefr.github.io/Lunatic/storybook-3.0), branch `3.0`
14
16
  - [Storybook 2.7](https://inseefr.github.io/Lunatic/storybook-2.7), branch `2.7`
@@ -44,16 +44,36 @@ function Loop({ lines, iterations, value, handleChanges, getComponents, errors,
44
44
  handleChanges(newResponses);
45
45
  }
46
46
  }, [nbRows, handleChanges, value]);
47
+ const removeRowWithIndex = (0, react_1.useCallback)((indexToRemove) => {
48
+ if (nbRows <= min) {
49
+ return;
50
+ }
51
+ /**
52
+ * Case 0: trying to delete
53
+ */
54
+ if (indexToRemove >= nbRows || indexToRemove < 0) {
55
+ return;
56
+ }
57
+ const newResponses = Object.entries(value).map(([k, v]) => {
58
+ return {
59
+ name: k,
60
+ value: v?.filter((_, i) => i !== indexToRemove),
61
+ removedIndex: indexToRemove,
62
+ };
63
+ });
64
+ handleChanges(newResponses);
65
+ setNbRows((n) => n - 1);
66
+ }, [nbRows, min, value, handleChanges]);
47
67
  if (nbRows <= 0) {
48
68
  return null;
49
69
  }
50
- return ((0, jsx_runtime_1.jsx)(exports.CustomLoop, { ...props, errors: (0, ComponentErrors_1.getComponentErrors)(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: nbRows === 1 ? undefined : removeRow, canControlRows: min !== max && Number.isFinite(max), children: (0, array_1.times)(nbRows, (n) => ((0, jsx_runtime_1.jsx)(LunaticComponents_1.LunaticComponents, { blocklist: constant_1.blockedInLoopComponents, components: getComponents(n), componentProps: (c) => ({
51
- ...props,
52
- ...c,
53
- iteration: n,
54
- id: `${c.id}-${n}`,
55
- errors,
56
- }) }, n))) }));
70
+ return ((0, jsx_runtime_1.jsxs)(exports.CustomLoop, { ...props, errors: (0, ComponentErrors_1.getComponentErrors)(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: nbRows === 1 ? undefined : removeRow, canControlRows: min !== max && Number.isFinite(max), children: [(0, array_1.times)(nbRows, (n) => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(LunaticComponents_1.LunaticComponents, { blocklist: constant_1.blockedInLoopComponents, components: getComponents(n), componentProps: (c) => ({
71
+ ...props,
72
+ ...c,
73
+ iteration: n,
74
+ id: `${c.id}-${n}`,
75
+ errors,
76
+ }) }, n), (0, jsx_runtime_1.jsx)(Button_1.Button, { onClick: () => removeRowWithIndex(n), disabled: nbRows === 1, children: i18n_1.default.DEFAULT_BUTTON_REMOVE_THAT_ROW })] }))), (0, jsx_runtime_1.jsx)("br", {})] }));
57
77
  }
58
78
  exports.CustomLoop = (0, slottableComponent_1.slottableComponent)('Loop', (props) => {
59
79
  const { declarations, id, label, canControlRows, children, errors, addRow, removeRow, } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"Loop.js","sourceRoot":"","sources":["../../src/components/Loop/Loop.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Loop.js","sourceRoot":"","sources":["../../src/components/Loop/Loop.tsx"],"names":[],"mappings":"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"}
@@ -2,18 +2,27 @@ import { type PropsWithChildren, type ReactNode } from 'react';
2
2
  import { type LunaticSlotComponents } from './shared/HOC/slottableComponent';
3
3
  import type { LunaticComponentProps } from './type';
4
4
  type Props<V = unknown> = {
5
+ /** List of components to display (coming from getComponents). */
5
6
  components: LunaticComponentProps[];
7
+ /** Should we memoized children. */
6
8
  memo?: boolean;
9
+ /** Key that trigger autofocus when it changes (pageTag). */
7
10
  autoFocusKey?: string;
11
+ /** Returns the list of extra props to add to components. */
8
12
  componentProps?: (component: LunaticComponentProps) => V;
13
+ /** Forbidden components. */
9
14
  blocklist?: string[];
15
+ /** Add additional wrapper around each component. */
10
16
  wrapper?: (props: PropsWithChildren<LunaticComponentProps & V & {
11
17
  index: number;
12
18
  }>) => ReactNode;
19
+ /** Customized deep components. */
13
20
  slots?: Partial<LunaticSlotComponents>;
14
21
  };
15
22
  /**
16
- * Entry point for orchestrators, this component display the list of fields
23
+ * Entry point for orchestrators, this component display the list of fields.
24
+ *
25
+ * Components offered by Lunatic can be seen at {@link https://github.com/InseeFr/Lunatic/tree/3.0/src/components}
17
26
  */
18
27
  export declare function LunaticComponents<V = unknown>({ components, autoFocusKey, componentProps, blocklist, memo, slots, wrapper, }: Props<V>): import("react/jsx-runtime").JSX.Element;
19
28
  export declare function hasLabel<T>(component: T): component is {
@@ -14,7 +14,9 @@ const LunaticComponentWrapper = (0, slottableComponent_1.slottableComponent)('Co
14
14
  return (0, jsx_runtime_1.jsx)("div", { className: "lunatic lunatic-component", children: children });
15
15
  });
16
16
  /**
17
- * Entry point for orchestrators, this component display the list of fields
17
+ * Entry point for orchestrators, this component display the list of fields.
18
+ *
19
+ * Components offered by Lunatic can be seen at {@link https://github.com/InseeFr/Lunatic/tree/3.0/src/components}
18
20
  */
19
21
  function LunaticComponents({ components, autoFocusKey, componentProps, blocklist, memo, slots, wrapper = (args) => (0, jsx_runtime_1.jsx)(LunaticComponentWrapper, { ...args }), }) {
20
22
  const wrapperRef = (0, react_1.useRef)(null);
@@ -1 +1 @@
1
- {"version":3,"file":"LunaticComponents.js","sourceRoot":"","sources":["../src/components/LunaticComponents.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LunaticComponents.js","sourceRoot":"","sources":["../src/components/LunaticComponents.tsx"],"names":[],"mappings":";;AAmDA,8CAwFC;AAwCD,4BASC;;AA5LD,iCAOe;AACf,4DAAuD;AACvD,gEAAoE;AACpE,gEAA6D;AAC7D,uCAAoC;AACpC,+DAAqD;AACrD,wEAIyC;AAsBzC,MAAM,uBAAuB,GAAG,IAAA,uCAAkB,EACjD,kBAAkB,EAClB,CAAC,EAAE,QAAQ,EAA4C,EAAE,EAAE;IAC1D,OAAO,gCAAK,SAAS,EAAC,2BAA2B,YAAE,QAAQ,GAAO,CAAC;AACpE,CAAC,CACD,CAAC;AAEF;;;;GAIG;AACH,SAAgB,iBAAiB,CAAc,EAC9C,UAAU,EACV,YAAY,EACZ,cAAc,EACd,SAAS,EACT,IAAI,EACJ,KAAK,EACL,OAAO,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAC,uBAAuB,OAAK,IAAI,GAAI,GAC/C;IACV,MAAM,UAAU,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAQ,CAAC;IAEzD,IAAA,6BAAY,EAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEnE,OAAO,CACN,uBAAC,gBAAgB,IAChB,GAAG,EAAE,gBAAgB,KAAK,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,YAE3D,uBAAC,kCAAa,IAAC,KAAK,EAAE,KAAK,YACzB,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBAChC,IAAI,IAAA,4BAAgB,EAAC,SAAS,CAAC,EAAE,CAAC;oBACjC,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;wBAC9D,OAAO,CACN,uBAAC,gBAAQ,cACP,OAAO,CAAC;gCACR,QAAQ,EAAE,CACT,iCAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6BACf,SAAS,CAAC,aAAa,8BAE9B,CACN;gCACD,KAAK,EAAE,CAAC;gCACR,GAAG,SAAS;6BACZ,CAAC,IAVY,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAW3B,CACX,CAAC;oBACH,CAAC;oBACD,MAAM,KAAK,GAAG;wBACb,GAAG,SAAS;wBACZ,GAAG,cAAc,EAAE,CAAC,SAAS,CAAC;wBAC9B,gBAAgB,EAAE,cAAc;qBAChC,CAAC;oBACF,OAAO,CACN,uBAAC,gBAAQ,cACP,OAAO,CAAC;4BACR,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAChB,uBAAC,oBAAoB,OAAK,KAAK,GAAI,CACnC,CAAC,CAAC,CAAC,CACH,uBAAC,gBAAgB,OAAK,KAAK,GAAI,CAC/B;4BACD,KAAK,EAAE,CAAC;4BACR,GAAG,KAAK;yBACR,CAAC,IATY,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAU3B,CACX,CAAC;gBACH,CAAC;gBAED,uGAAuG;gBACvG,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACzB,OAAO,CACN,uBAAC,gBAAQ,cACP,OAAO,CAAC;4BACR,GAAG,SAAS;4BACZ,QAAQ,EAAE,SAAS,CAAC,KAAK;4BACzB,KAAK,EAAE,CAAC;yBACD,CAAC,IALK,CAAC,CAML,CACX,CAAC;gBACH,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,IAAA,sBAAc,EAAC,SAAS,CAAC,EAAE,CAAC;oBAC/B,OAAO,CACN,uBAAC,gBAAQ,cACP,OAAO,CAAC;4BACR,QAAQ,EAAE,SAAS;4BACnB,KAAK,EAAE,CAAC;yBACD,CAAC,IAJK,CAAC,CAKL,CACX,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC;YACb,CAAC,CAAC,GACa,GACE,CACnB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA4B;IACrD,uCAAuC;IACvC,MAAM,SAAS,GAAI,iBAAe,CAAC,KAAK,CAAC,aAAc,CAAC,CAAC;IACzD,OAAO,CACN,uBAAC,oCAAa,IAAC,iBAAiB,EAAE,YAAY,YAC7C,uBAAC,mCAAgB,OAAM,KAAa,YACnC,uBAAC,SAAS,OAAK,KAAK,GAAI,GACN,GACJ,CAChB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,KAAK,EAAyC;IACrE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CACN,+BAAG,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gDACO,KAAK,CAAC,QAAQ,EAAE,IAC7C,CACJ,CAAC;AACH,CAAC;AAED,MAAM,oBAAoB,GAAG,IAAA,YAAI,EAAC,gBAAgB,CAAC,CAAC;AAEpD,SAAS,SAAS,CACjB,SAAkB,EAClB,QAAyB;IAEzB,IACC,SAAS;QACT,OAAO,SAAS,KAAK,QAAQ;QAC7B,IAAI,IAAI,SAAS;QACjB,OAAO,SAAS,CAAC,EAAE,KAAK,QAAQ,EAC/B,CAAC;QACF,OAAO,SAAS,CAAC,EAAE,CAAC;IACrB,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAgB,QAAQ,CACvB,SAAY;IAEZ,OAAO,CACN,CAAC,CAAC,SAAS;QACX,OAAO,SAAS,KAAK,QAAQ;QAC7B,OAAO,IAAI,SAAS;QACpB,IAAA,sBAAc,EAAC,SAAS,CAAC,KAAK,CAAC,CAC/B,CAAC;AACH,CAAC"}
@@ -1,14 +1,19 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.RosterForLoop = void 0;
4
7
  const jsx_runtime_1 = require("react/jsx-runtime");
5
8
  const react_1 = require("react");
6
9
  const Table_1 = require("../shared/Table");
7
10
  const array_1 = require("../../utils/array");
11
+ const i18n_1 = __importDefault(require("../../i18n"));
8
12
  const LunaticComponents_1 = require("../LunaticComponents");
9
13
  const constant_1 = require("../Loop/constant");
10
14
  const ComponentErrors_1 = require("../shared/ComponentErrors/ComponentErrors");
11
15
  const Loop_1 = require("../Loop/Loop");
16
+ const Button_1 = require("../shared/Button/Button");
12
17
  const DEFAULT_MIN_ROWS = 1;
13
18
  const DEFAULT_MAX_ROWS = 12;
14
19
  /**
@@ -29,6 +34,7 @@ const RosterForLoop = (props) => {
29
34
  setNbRows(nbRows + 1);
30
35
  }
31
36
  }, [max, nbRows]);
37
+ const cantRemove = nbRows === min;
32
38
  const removeRow = (0, react_1.useCallback)(() => {
33
39
  if (nbRows <= min) {
34
40
  return;
@@ -44,22 +50,45 @@ const RosterForLoop = (props) => {
44
50
  });
45
51
  handleChanges(newResponses);
46
52
  }, [nbRows, min, valueMap, handleChanges]);
53
+ const removeRowWithIndex = (0, react_1.useCallback)((indexToRemove) => {
54
+ if (nbRows <= min) {
55
+ return;
56
+ }
57
+ /**
58
+ * Case 0: trying to delete
59
+ */
60
+ if (indexToRemove >= nbRows || indexToRemove < 0) {
61
+ return;
62
+ }
63
+ const newResponses = Object.entries(valueMap).map(([k, v]) => {
64
+ return {
65
+ name: k,
66
+ value: v?.filter((_, i) => i !== indexToRemove),
67
+ removedIndex: indexToRemove,
68
+ };
69
+ });
70
+ handleChanges(newResponses);
71
+ setNbRows((n) => n - 1);
72
+ }, [nbRows, min, valueMap, handleChanges]);
47
73
  if (nbRows === 0) {
48
74
  return null;
49
75
  }
50
76
  let cols = 0;
51
- return ((0, jsx_runtime_1.jsx)(Loop_1.CustomLoop, { ...props, errors: (0, ComponentErrors_1.getComponentErrors)(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: nbRows === min ? undefined : removeRow, canControlRows: !!(min && max && min !== max), children: (0, jsx_runtime_1.jsxs)(Table_1.Table, { id: id, children: [header && (0, jsx_runtime_1.jsx)(Table_1.TableHeader, { header: header }), (0, jsx_runtime_1.jsx)(Table_1.Tbody, { children: (0, array_1.times)(nbRows, (n) => {
77
+ const headerWithActions = header
78
+ ? [...header, { label: i18n_1.default.ACTION_HEADER }]
79
+ : undefined;
80
+ return ((0, jsx_runtime_1.jsx)(Loop_1.CustomLoop, { ...props, errors: (0, ComponentErrors_1.getComponentErrors)(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: cantRemove ? undefined : removeRow, canControlRows: !!(min && max && min !== max), children: (0, jsx_runtime_1.jsxs)(Table_1.Table, { id: id, children: [headerWithActions && (0, jsx_runtime_1.jsx)(Table_1.TableHeader, { header: headerWithActions }), (0, jsx_runtime_1.jsx)(Table_1.Tbody, { children: (0, array_1.times)(nbRows, (n) => {
52
81
  const components = getComponents(n);
53
82
  const lineErrors = (0, ComponentErrors_1.getComponentErrors)(props.errors, `${id}-${n}`);
54
83
  const hasLineErrors = !!lineErrors?.length;
55
84
  cols = components.length;
56
- return ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Table_1.Tr, { row: n, className: hasLineErrors ? 'lunatic-row-has-error' : undefined, children: (0, jsx_runtime_1.jsx)(LunaticComponents_1.LunaticComponents, { blocklist: constant_1.blockedInLoopComponents, components: components, memo: true, componentProps: (c) => ({
57
- ...otherProps,
58
- ...c,
59
- id: `${c.id}-${n}`,
60
- iteration: n,
61
- errors,
62
- }), wrapper: (props) => (0, jsx_runtime_1.jsx)(Table_1.Td, { ...props }) }) }, n), hasLineErrors && ((0, jsx_runtime_1.jsx)(Table_1.Tr, { className: "lunatic-errors", children: (0, jsx_runtime_1.jsx)(Table_1.Td, { colSpan: cols, children: (0, jsx_runtime_1.jsx)(ComponentErrors_1.ComponentErrors, { errors: lineErrors }) }) }))] }, n));
85
+ return ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(Table_1.Tr, { row: n, className: hasLineErrors ? 'lunatic-row-has-error' : undefined, children: [(0, jsx_runtime_1.jsx)(LunaticComponents_1.LunaticComponents, { blocklist: constant_1.blockedInLoopComponents, components: components, memo: true, componentProps: (c) => ({
86
+ ...otherProps,
87
+ ...c,
88
+ id: `${c.id}-${n}`,
89
+ iteration: n,
90
+ errors,
91
+ }), wrapper: (props) => (0, jsx_runtime_1.jsx)(Table_1.Td, { ...props }) }), (0, jsx_runtime_1.jsx)(Table_1.Td, { id: `delete-action-${n}`, children: (0, jsx_runtime_1.jsx)(Button_1.Button, { onClick: () => removeRowWithIndex(n), disabled: cantRemove, children: i18n_1.default.DEFAULT_BUTTON_REMOVE_THAT_ROW }) })] }, n), hasLineErrors && ((0, jsx_runtime_1.jsx)(Table_1.Tr, { className: "lunatic-errors", children: (0, jsx_runtime_1.jsx)(Table_1.Td, { colSpan: cols, children: (0, jsx_runtime_1.jsx)(ComponentErrors_1.ComponentErrors, { errors: lineErrors }) }) }))] }, n));
63
92
  }) })] }) }));
64
93
  };
65
94
  exports.RosterForLoop = RosterForLoop;
@@ -1 +1 @@
1
- {"version":3,"file":"RosterForLoop.js","sourceRoot":"","sources":["../../src/components/RosterForLoop/RosterForLoop.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RosterForLoop.js","sourceRoot":"","sources":["../../src/components/RosterForLoop/RosterForLoop.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export declare const Sequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "label" | "description" | "declarations" | "id" | "style"> & import("../type").LunaticExtraProps & {
1
+ export declare const Sequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "id" | "label" | "style" | "declarations" | "description"> & import("../type").LunaticExtraProps & {
2
2
  componentType?: "Sequence";
3
3
  }>;
@@ -1,3 +1,3 @@
1
- export declare const Subsequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "label" | "description" | "declarations" | "id"> & import("../type").LunaticExtraProps & {
1
+ export declare const Subsequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "id" | "label" | "declarations" | "description"> & import("../type").LunaticExtraProps & {
2
2
  componentType?: "Subsequence";
3
3
  }>;
@@ -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>, "label" | "description" | "declarations" | "id" | "style"> & import("./type").LunaticExtraProps & {
19
+ Sequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "id" | "label" | "style" | "declarations" | "description"> & import("./type").LunaticExtraProps & {
20
20
  componentType?: "Sequence";
21
21
  }>;
22
- Subsequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "label" | "description" | "declarations" | "id"> & import("./type").LunaticExtraProps & {
22
+ Subsequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "id" | "label" | "declarations" | "description"> & import("./type").LunaticExtraProps & {
23
23
  componentType?: "Subsequence";
24
24
  }>;
25
25
  RosterForLoop: (props: LunaticComponentProps<"RosterForLoop">) => import("react/jsx-runtime").JSX.Element | null;
@@ -38,7 +38,7 @@ import type { LunaticComponentProps } from '../../type';
38
38
  import type { MarkdownLink } from '../MDLabel/MarkdownLink';
39
39
  import type { Accordion } from '../../Accordion/Accordion';
40
40
  /**
41
- * Contains the type of every customizable component
41
+ * Contain the type of every customizable components.
42
42
  */
43
43
  export type LunaticSlotComponents = {
44
44
  Input: typeof CustomInput;
@@ -94,8 +94,8 @@ export declare const SlotsProvider: ({ slots, children, }: PropsWithChildren<{
94
94
  slots?: Partial<LunaticSlotComponents>;
95
95
  }>) => import("react/jsx-runtime").JSX.Element;
96
96
  /**
97
- * Create a replaceable version of a component
97
+ * Create a replaceable version of a component.
98
98
  *
99
- * The component can be replaced using the "slots" props on <LunaticComponents>
99
+ * The component can be replaced through the `slots` props on `LunaticComponents`.
100
100
  */
101
101
  export declare function slottableComponent<T>(name: keyof LunaticSlotComponents, OriginalComponent: FunctionComponent<T>): ComponentType<T>;
@@ -14,9 +14,9 @@ const SlotsProvider = ({ slots, children, }) => {
14
14
  };
15
15
  exports.SlotsProvider = SlotsProvider;
16
16
  /**
17
- * Create a replaceable version of a component
17
+ * Create a replaceable version of a component.
18
18
  *
19
- * The component can be replaced using the "slots" props on <LunaticComponents>
19
+ * The component can be replaced through the `slots` props on `LunaticComponents`.
20
20
  */
21
21
  function slottableComponent(name, OriginalComponent) {
22
22
  const DecoratedComponent = (props) => {
@@ -38,16 +38,36 @@ export function Loop({ lines, iterations, value, handleChanges, getComponents, e
38
38
  handleChanges(newResponses);
39
39
  }
40
40
  }, [nbRows, handleChanges, value]);
41
+ const removeRowWithIndex = useCallback((indexToRemove) => {
42
+ if (nbRows <= min) {
43
+ return;
44
+ }
45
+ /**
46
+ * Case 0: trying to delete
47
+ */
48
+ if (indexToRemove >= nbRows || indexToRemove < 0) {
49
+ return;
50
+ }
51
+ const newResponses = Object.entries(value).map(([k, v]) => {
52
+ return {
53
+ name: k,
54
+ value: v === null || v === void 0 ? void 0 : v.filter((_, i) => i !== indexToRemove),
55
+ removedIndex: indexToRemove,
56
+ };
57
+ });
58
+ handleChanges(newResponses);
59
+ setNbRows((n) => n - 1);
60
+ }, [nbRows, min, value, handleChanges]);
41
61
  if (nbRows <= 0) {
42
62
  return null;
43
63
  }
44
- return (_jsx(CustomLoop, { ...props, errors: getComponentErrors(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: nbRows === 1 ? undefined : removeRow, canControlRows: min !== max && Number.isFinite(max), children: times(nbRows, (n) => (_jsx(LunaticComponents, { blocklist: blockedInLoopComponents, components: getComponents(n), componentProps: (c) => ({
45
- ...props,
46
- ...c,
47
- iteration: n,
48
- id: `${c.id}-${n}`,
49
- errors,
50
- }) }, n))) }));
64
+ return (_jsxs(CustomLoop, { ...props, errors: getComponentErrors(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: nbRows === 1 ? undefined : removeRow, canControlRows: min !== max && Number.isFinite(max), children: [times(nbRows, (n) => (_jsxs(_Fragment, { children: [_jsx(LunaticComponents, { blocklist: blockedInLoopComponents, components: getComponents(n), componentProps: (c) => ({
65
+ ...props,
66
+ ...c,
67
+ iteration: n,
68
+ id: `${c.id}-${n}`,
69
+ errors,
70
+ }) }, n), _jsx(Button, { onClick: () => removeRowWithIndex(n), disabled: nbRows === 1, children: D.DEFAULT_BUTTON_REMOVE_THAT_ROW })] }))), _jsx("br", {})] }));
51
71
  }
52
72
  export const CustomLoop = slottableComponent('Loop', (props) => {
53
73
  const { declarations, id, label, canControlRows, children, errors, addRow, removeRow, } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"Loop.js","sourceRoot":"","sources":["../../../src/components/Loop/Loop.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Loop.js","sourceRoot":"","sources":["../../../src/components/Loop/Loop.tsx"],"names":[],"mappings":"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"}
@@ -2,18 +2,27 @@ import { type PropsWithChildren, type ReactNode } from 'react';
2
2
  import { type LunaticSlotComponents } from './shared/HOC/slottableComponent';
3
3
  import type { LunaticComponentProps } from './type';
4
4
  type Props<V = unknown> = {
5
+ /** List of components to display (coming from getComponents). */
5
6
  components: LunaticComponentProps[];
7
+ /** Should we memoized children. */
6
8
  memo?: boolean;
9
+ /** Key that trigger autofocus when it changes (pageTag). */
7
10
  autoFocusKey?: string;
11
+ /** Returns the list of extra props to add to components. */
8
12
  componentProps?: (component: LunaticComponentProps) => V;
13
+ /** Forbidden components. */
9
14
  blocklist?: string[];
15
+ /** Add additional wrapper around each component. */
10
16
  wrapper?: (props: PropsWithChildren<LunaticComponentProps & V & {
11
17
  index: number;
12
18
  }>) => ReactNode;
19
+ /** Customized deep components. */
13
20
  slots?: Partial<LunaticSlotComponents>;
14
21
  };
15
22
  /**
16
- * Entry point for orchestrators, this component display the list of fields
23
+ * Entry point for orchestrators, this component display the list of fields.
24
+ *
25
+ * Components offered by Lunatic can be seen at {@link https://github.com/InseeFr/Lunatic/tree/3.0/src/components}
17
26
  */
18
27
  export declare function LunaticComponents<V = unknown>({ components, autoFocusKey, componentProps, blocklist, memo, slots, wrapper, }: Props<V>): import("react/jsx-runtime").JSX.Element;
19
28
  export declare function hasLabel<T>(component: T): component is {
@@ -10,7 +10,9 @@ const LunaticComponentWrapper = slottableComponent('ComponentWrapper', ({ childr
10
10
  return _jsx("div", { className: "lunatic lunatic-component", children: children });
11
11
  });
12
12
  /**
13
- * Entry point for orchestrators, this component display the list of fields
13
+ * Entry point for orchestrators, this component display the list of fields.
14
+ *
15
+ * Components offered by Lunatic can be seen at {@link https://github.com/InseeFr/Lunatic/tree/3.0/src/components}
14
16
  */
15
17
  export function LunaticComponents({ components, autoFocusKey, componentProps, blocklist, memo, slots, wrapper = (args) => _jsx(LunaticComponentWrapper, { ...args }), }) {
16
18
  const wrapperRef = useRef(null);
@@ -1 +1 @@
1
- {"version":3,"file":"LunaticComponents.js","sourceRoot":"","sources":["../../src/components/LunaticComponents.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LunaticComponents.js","sourceRoot":"","sources":["../../src/components/LunaticComponents.tsx"],"names":[],"mappings":";AAAA,OAAO,EACN,QAAQ,EACR,cAAc,EACd,IAAI,EAGJ,MAAM,GACN,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACN,aAAa,EAEb,kBAAkB,GAClB,MAAM,iCAAiC,CAAC;AAsBzC,MAAM,uBAAuB,GAAG,kBAAkB,CACjD,kBAAkB,EAClB,CAAC,EAAE,QAAQ,EAA4C,EAAE,EAAE;IAC1D,OAAO,cAAK,SAAS,EAAC,2BAA2B,YAAE,QAAQ,GAAO,CAAC;AACpE,CAAC,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAc,EAC9C,UAAU,EACV,YAAY,EACZ,cAAc,EACd,SAAS,EACT,IAAI,EACJ,KAAK,EACL,OAAO,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,uBAAuB,OAAK,IAAI,GAAI,GAC/C;IACV,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEzD,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEnE,OAAO,CACN,KAAC,gBAAgB,IAChB,GAAG,EAAE,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,YAE3D,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,YACzB,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBAChC,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;oBACjC,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;wBAC9D,OAAO,CACN,KAAC,QAAQ,cACP,OAAO,CAAC;gCACR,QAAQ,EAAE,CACT,eAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6BACf,SAAS,CAAC,aAAa,8BAE9B,CACN;gCACD,KAAK,EAAE,CAAC;gCACR,GAAG,SAAS;6BACZ,CAAC,IAVY,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAW3B,CACX,CAAC;oBACH,CAAC;oBACD,MAAM,KAAK,GAAG;wBACb,GAAG,SAAS;wBACZ,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,SAAS,CAAC;wBAC9B,gBAAgB,EAAE,cAAc;qBAChC,CAAC;oBACF,OAAO,CACN,KAAC,QAAQ,cACP,OAAO,CAAC;4BACR,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAChB,KAAC,oBAAoB,OAAK,KAAK,GAAI,CACnC,CAAC,CAAC,CAAC,CACH,KAAC,gBAAgB,OAAK,KAAK,GAAI,CAC/B;4BACD,KAAK,EAAE,CAAC;4BACR,GAAG,KAAK;yBACR,CAAC,IATY,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAU3B,CACX,CAAC;gBACH,CAAC;gBAED,uGAAuG;gBACvG,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACzB,OAAO,CACN,KAAC,QAAQ,cACP,OAAO,CAAC;4BACR,GAAG,SAAS;4BACZ,QAAQ,EAAE,SAAS,CAAC,KAAK;4BACzB,KAAK,EAAE,CAAC;yBACD,CAAC,IALK,CAAC,CAML,CACX,CAAC;gBACH,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC/B,OAAO,CACN,KAAC,QAAQ,cACP,OAAO,CAAC;4BACR,QAAQ,EAAE,SAAS;4BACnB,KAAK,EAAE,CAAC;yBACD,CAAC,IAJK,CAAC,CAKL,CACX,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC;YACb,CAAC,CAAC,GACa,GACE,CACnB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA4B;IACrD,uCAAuC;IACvC,MAAM,SAAS,GAAI,OAAe,CAAC,KAAK,CAAC,aAAc,CAAC,CAAC;IACzD,OAAO,CACN,KAAC,aAAa,IAAC,iBAAiB,EAAE,YAAY,YAC7C,KAAC,gBAAgB,OAAM,KAAa,YACnC,KAAC,SAAS,OAAK,KAAK,GAAI,GACN,GACJ,CAChB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,KAAK,EAAyC;IACrE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CACN,aAAG,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gDACO,KAAK,CAAC,QAAQ,EAAE,IAC7C,CACJ,CAAC;AACH,CAAC;AAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAEpD,SAAS,SAAS,CACjB,SAAkB,EAClB,QAAyB;IAEzB,IACC,SAAS;QACT,OAAO,SAAS,KAAK,QAAQ;QAC7B,IAAI,IAAI,SAAS;QACjB,OAAO,SAAS,CAAC,EAAE,KAAK,QAAQ,EAC/B,CAAC;QACF,OAAO,SAAS,CAAC,EAAE,CAAC;IACrB,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,QAAQ,CACvB,SAAY;IAEZ,OAAO,CACN,CAAC,CAAC,SAAS;QACX,OAAO,SAAS,KAAK,QAAQ;QAC7B,OAAO,IAAI,SAAS;QACpB,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAC/B,CAAC;AACH,CAAC"}
@@ -2,10 +2,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Fragment, useCallback, useState } from 'react';
3
3
  import { Table, Tbody, Td, Tr, TableHeader } from '../shared/Table';
4
4
  import { times } from '../../utils/array';
5
+ import D from '../../i18n';
5
6
  import { LunaticComponents } from '../LunaticComponents';
6
7
  import { blockedInLoopComponents } from '../Loop/constant';
7
8
  import { ComponentErrors, getComponentErrors, } from '../shared/ComponentErrors/ComponentErrors';
8
9
  import { CustomLoop } from '../Loop/Loop';
10
+ import { Button } from '../shared/Button/Button';
9
11
  const DEFAULT_MIN_ROWS = 1;
10
12
  const DEFAULT_MAX_ROWS = 12;
11
13
  /**
@@ -27,6 +29,7 @@ export const RosterForLoop = (props) => {
27
29
  setNbRows(nbRows + 1);
28
30
  }
29
31
  }, [max, nbRows]);
32
+ const cantRemove = nbRows === min;
30
33
  const removeRow = useCallback(() => {
31
34
  if (nbRows <= min) {
32
35
  return;
@@ -42,22 +45,45 @@ export const RosterForLoop = (props) => {
42
45
  });
43
46
  handleChanges(newResponses);
44
47
  }, [nbRows, min, valueMap, handleChanges]);
48
+ const removeRowWithIndex = useCallback((indexToRemove) => {
49
+ if (nbRows <= min) {
50
+ return;
51
+ }
52
+ /**
53
+ * Case 0: trying to delete
54
+ */
55
+ if (indexToRemove >= nbRows || indexToRemove < 0) {
56
+ return;
57
+ }
58
+ const newResponses = Object.entries(valueMap).map(([k, v]) => {
59
+ return {
60
+ name: k,
61
+ value: v === null || v === void 0 ? void 0 : v.filter((_, i) => i !== indexToRemove),
62
+ removedIndex: indexToRemove,
63
+ };
64
+ });
65
+ handleChanges(newResponses);
66
+ setNbRows((n) => n - 1);
67
+ }, [nbRows, min, valueMap, handleChanges]);
45
68
  if (nbRows === 0) {
46
69
  return null;
47
70
  }
48
71
  let cols = 0;
49
- return (_jsx(CustomLoop, { ...props, errors: getComponentErrors(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: nbRows === min ? undefined : removeRow, canControlRows: !!(min && max && min !== max), children: _jsxs(Table, { id: id, children: [header && _jsx(TableHeader, { header: header }), _jsx(Tbody, { children: times(nbRows, (n) => {
72
+ const headerWithActions = header
73
+ ? [...header, { label: D.ACTION_HEADER }]
74
+ : undefined;
75
+ return (_jsx(CustomLoop, { ...props, errors: getComponentErrors(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: cantRemove ? undefined : removeRow, canControlRows: !!(min && max && min !== max), children: _jsxs(Table, { id: id, children: [headerWithActions && _jsx(TableHeader, { header: headerWithActions }), _jsx(Tbody, { children: times(nbRows, (n) => {
50
76
  const components = getComponents(n);
51
77
  const lineErrors = getComponentErrors(props.errors, `${id}-${n}`);
52
78
  const hasLineErrors = !!(lineErrors === null || lineErrors === void 0 ? void 0 : lineErrors.length);
53
79
  cols = components.length;
54
- return (_jsxs(Fragment, { children: [_jsx(Tr, { row: n, className: hasLineErrors ? 'lunatic-row-has-error' : undefined, children: _jsx(LunaticComponents, { blocklist: blockedInLoopComponents, components: components, memo: true, componentProps: (c) => ({
55
- ...otherProps,
56
- ...c,
57
- id: `${c.id}-${n}`,
58
- iteration: n,
59
- errors,
60
- }), wrapper: (props) => _jsx(Td, { ...props }) }) }, n), hasLineErrors && (_jsx(Tr, { className: "lunatic-errors", children: _jsx(Td, { colSpan: cols, children: _jsx(ComponentErrors, { errors: lineErrors }) }) }))] }, n));
80
+ return (_jsxs(Fragment, { children: [_jsxs(Tr, { row: n, className: hasLineErrors ? 'lunatic-row-has-error' : undefined, children: [_jsx(LunaticComponents, { blocklist: blockedInLoopComponents, components: components, memo: true, componentProps: (c) => ({
81
+ ...otherProps,
82
+ ...c,
83
+ id: `${c.id}-${n}`,
84
+ iteration: n,
85
+ errors,
86
+ }), wrapper: (props) => _jsx(Td, { ...props }) }), _jsx(Td, { id: `delete-action-${n}`, children: _jsx(Button, { onClick: () => removeRowWithIndex(n), disabled: cantRemove, children: D.DEFAULT_BUTTON_REMOVE_THAT_ROW }) })] }, n), hasLineErrors && (_jsx(Tr, { className: "lunatic-errors", children: _jsx(Td, { colSpan: cols, children: _jsx(ComponentErrors, { errors: lineErrors }) }) }))] }, n));
61
87
  }) })] }) }));
62
88
  };
63
89
  //# sourceMappingURL=RosterForLoop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RosterForLoop.js","sourceRoot":"","sources":["../../../src/components/RosterForLoop/RosterForLoop.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RosterForLoop.js","sourceRoot":"","sources":["../../../src/components/RosterForLoop/RosterForLoop.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export declare const Sequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "label" | "description" | "declarations" | "id" | "style"> & import("../type").LunaticExtraProps & {
1
+ export declare const Sequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "id" | "label" | "style" | "declarations" | "description"> & import("../type").LunaticExtraProps & {
2
2
  componentType?: "Sequence";
3
3
  }>;
@@ -1,3 +1,3 @@
1
- export declare const Subsequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "label" | "description" | "declarations" | "id"> & import("../type").LunaticExtraProps & {
1
+ export declare const Subsequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "id" | "label" | "declarations" | "description"> & import("../type").LunaticExtraProps & {
2
2
  componentType?: "Subsequence";
3
3
  }>;
@@ -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>, "label" | "description" | "declarations" | "id" | "style"> & import("./type").LunaticExtraProps & {
19
+ Sequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "id" | "label" | "style" | "declarations" | "description"> & import("./type").LunaticExtraProps & {
20
20
  componentType?: "Sequence";
21
21
  }>;
22
- Subsequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "label" | "description" | "declarations" | "id"> & import("./type").LunaticExtraProps & {
22
+ Subsequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "id" | "label" | "declarations" | "description"> & import("./type").LunaticExtraProps & {
23
23
  componentType?: "Subsequence";
24
24
  }>;
25
25
  RosterForLoop: (props: LunaticComponentProps<"RosterForLoop">) => import("react/jsx-runtime").JSX.Element | null;
@@ -38,7 +38,7 @@ import type { LunaticComponentProps } from '../../type';
38
38
  import type { MarkdownLink } from '../MDLabel/MarkdownLink';
39
39
  import type { Accordion } from '../../Accordion/Accordion';
40
40
  /**
41
- * Contains the type of every customizable component
41
+ * Contain the type of every customizable components.
42
42
  */
43
43
  export type LunaticSlotComponents = {
44
44
  Input: typeof CustomInput;
@@ -94,8 +94,8 @@ export declare const SlotsProvider: ({ slots, children, }: PropsWithChildren<{
94
94
  slots?: Partial<LunaticSlotComponents>;
95
95
  }>) => import("react/jsx-runtime").JSX.Element;
96
96
  /**
97
- * Create a replaceable version of a component
97
+ * Create a replaceable version of a component.
98
98
  *
99
- * The component can be replaced using the "slots" props on <LunaticComponents>
99
+ * The component can be replaced through the `slots` props on `LunaticComponents`.
100
100
  */
101
101
  export declare function slottableComponent<T>(name: keyof LunaticSlotComponents, OriginalComponent: FunctionComponent<T>): ComponentType<T>;
@@ -9,9 +9,9 @@ export const SlotsProvider = ({ slots, children, }) => {
9
9
  return (_jsx(SlotsContext.Provider, { value: slots !== null && slots !== void 0 ? slots : empty, children: children }));
10
10
  };
11
11
  /**
12
- * Create a replaceable version of a component
12
+ * Create a replaceable version of a component.
13
13
  *
14
- * The component can be replaced using the "slots" props on <LunaticComponents>
14
+ * The component can be replaced through the `slots` props on `LunaticComponents`.
15
15
  */
16
16
  export function slottableComponent(name, OriginalComponent) {
17
17
  const DecoratedComponent = (props) => {