@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
@@ -1 +1 @@
1
- {"version":3,"file":"array.spec.js","sourceRoot":"","sources":["../../src/utils/array.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.spec.js","sourceRoot":"","sources":["../../src/utils/array.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACN,cAAc,EACd,WAAW,EACX,wBAAwB,EACxB,UAAU,GACV,MAAM,SAAS,CAAC;AAEjB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACtB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;YAClC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC9B,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACtC,MAAM,CACL,UAAU,CACT;gBACC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACT,EACD,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,EAAE,CACF,CACD,CAAC,OAAO,CAAC;gBACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACT,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACV,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACT,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACzB,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC3C,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YACnD,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -7,6 +7,14 @@ declare const dictionary: {
7
7
  readonly fr: "Supprimer une ligne";
8
8
  readonly en: "Remove row";
9
9
  };
10
+ readonly DEFAULT_BUTTON_REMOVE_THAT_ROW: {
11
+ readonly fr: "Supprimer cette ligne";
12
+ readonly en: "Remove that row";
13
+ };
14
+ readonly ACTION_HEADER: {
15
+ readonly fr: "Action";
16
+ readonly en: "Action";
17
+ };
10
18
  readonly MODAL_IGNORE: {
11
19
  readonly fr: "Poursuivre";
12
20
  readonly en: "Ignore";
@@ -3,6 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const dictionary = {
4
4
  DEFAULT_BUTTON_ADD: { fr: 'Ajouter une ligne', en: 'Add row' },
5
5
  DEFAULT_BUTTON_REMOVE: { fr: 'Supprimer une ligne', en: 'Remove row' },
6
+ DEFAULT_BUTTON_REMOVE_THAT_ROW: {
7
+ fr: 'Supprimer cette ligne',
8
+ en: 'Remove that row',
9
+ },
10
+ ACTION_HEADER: { fr: 'Action', en: 'Action' },
6
11
  MODAL_IGNORE: { fr: 'Poursuivre', en: 'Ignore' },
7
12
  MODAL_CORRECT: { fr: 'Corriger ma réponse', en: 'Correct' },
8
13
  DK: { fr: 'Ne sais pas', en: "Don't know" },
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../src/i18n/dictionary.ts"],"names":[],"mappings":";;AAAA,MAAM,UAAU,GAAG;IAClB,kBAAkB,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,EAAE;IAC9D,qBAAqB,EAAE,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,YAAY,EAAE;IACtE,YAAY,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE;IAChD,aAAa,EAAE,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,SAAS,EAAE;IAC3D,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE;IAC3C,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE;IAClC,WAAW,EAAE,EAAE,EAAE,EAAE,2BAA2B,EAAE,EAAE,EAAE,iBAAiB,EAAE;IACvE,iBAAiB,EAAE;QAClB,EAAE,EAAE,8BAA8B;QAClC,EAAE,EAAE,iBAAiB;KACrB;IACD,mBAAmB,EAAE;QACpB,EAAE,EAAE,uBAAuB;QAC3B,EAAE,EAAE,YAAY;KAChB;IACD,eAAe,EAAE;QAChB,EAAE,EAAE,uCAAuC;QAC3C,EAAE,EAAE,6CAA6C;KACjD;IACD,mBAAmB,EAAE;QACpB,EAAE,EAAE,SAAS;QACb,EAAE,EAAE,QAAQ;KACZ;CACQ,CAAC;AAEX,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../src/i18n/dictionary.ts"],"names":[],"mappings":";;AAAA,MAAM,UAAU,GAAG;IAClB,kBAAkB,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,EAAE;IAC9D,qBAAqB,EAAE,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,YAAY,EAAE;IACtE,8BAA8B,EAAE;QAC/B,EAAE,EAAE,uBAAuB;QAC3B,EAAE,EAAE,iBAAiB;KACrB;IACD,aAAa,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC7C,YAAY,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE;IAChD,aAAa,EAAE,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,SAAS,EAAE;IAC3D,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE;IAC3C,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE;IAClC,WAAW,EAAE,EAAE,EAAE,EAAE,2BAA2B,EAAE,EAAE,EAAE,iBAAiB,EAAE;IACvE,iBAAiB,EAAE;QAClB,EAAE,EAAE,8BAA8B;QAClC,EAAE,EAAE,iBAAiB;KACrB;IACD,mBAAmB,EAAE;QACpB,EAAE,EAAE,uBAAuB;QAC3B,EAAE,EAAE,YAAY;KAChB;IACD,eAAe,EAAE;QAChB,EAAE,EAAE,uCAAuC;QAC3C,EAAE,EAAE,6CAA6C;KACjD;IACD,mBAAmB,EAAE;QACpB,EAAE,EAAE,SAAS;QACb,EAAE,EAAE,QAAQ;KACZ;CACQ,CAAC;AAEX,kBAAe,UAAU,CAAC"}
package/i18n/index.d.ts CHANGED
@@ -3,5 +3,5 @@ export declare const inputNumberPropsI18N: {
3
3
  thousandSeparator: string;
4
4
  decimalSeparator: string;
5
5
  };
6
- declare const _default: Record<"DK" | "RF" | "DEFAULT_BUTTON_ADD" | "DEFAULT_BUTTON_REMOVE" | "MODAL_IGNORE" | "MODAL_CORRECT" | "PLACEHOLDER" | "SUGGESTER_LOADING" | "SUGGESTER_NO_RESULT" | "SUGGESTER_ERROR" | "SUGGESTER_ARBITRARY", string>;
6
+ declare const _default: Record<"DK" | "RF" | "DEFAULT_BUTTON_ADD" | "DEFAULT_BUTTON_REMOVE" | "DEFAULT_BUTTON_REMOVE_THAT_ROW" | "ACTION_HEADER" | "MODAL_IGNORE" | "MODAL_CORRECT" | "PLACEHOLDER" | "SUGGESTER_LOADING" | "SUGGESTER_NO_RESULT" | "SUGGESTER_ERROR" | "SUGGESTER_ARBITRARY", string>;
7
7
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inseefr/lunatic",
3
- "version": "3.4.10-rc.1",
3
+ "version": "3.4.11-rc.0",
4
4
  "description": "Library of questionnaire components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -428,7 +428,6 @@
428
428
  "src/use-lunatic/props/propValue.ts",
429
429
  "src/use-lunatic/reducer/commons/auto-explore-loop.ts",
430
430
  "src/use-lunatic/reducer/commons/index.ts",
431
- "src/use-lunatic/reducer/commons/resize-array-variable.ts",
432
431
  "src/use-lunatic/reducer/commons/validate-condition-filter.ts",
433
432
  "src/use-lunatic/reducer/controls/check-base-control.ts",
434
433
  "src/use-lunatic/reducer/controls/check-roundabout-control.ts",
@@ -1528,9 +1527,6 @@
1528
1527
  "esm/use-lunatic/reducer/commons/index.d.ts",
1529
1528
  "esm/use-lunatic/reducer/commons/index.js",
1530
1529
  "esm/use-lunatic/reducer/commons/index.js.map",
1531
- "esm/use-lunatic/reducer/commons/resize-array-variable.d.ts",
1532
- "esm/use-lunatic/reducer/commons/resize-array-variable.js",
1533
- "esm/use-lunatic/reducer/commons/resize-array-variable.js.map",
1534
1530
  "esm/use-lunatic/reducer/commons/validate-condition-filter.d.ts",
1535
1531
  "esm/use-lunatic/reducer/commons/validate-condition-filter.js",
1536
1532
  "esm/use-lunatic/reducer/commons/validate-condition-filter.js.map",
@@ -1852,9 +1848,6 @@
1852
1848
  "use-lunatic/reducer/commons/index.d.ts",
1853
1849
  "use-lunatic/reducer/commons/index.js",
1854
1850
  "use-lunatic/reducer/commons/index.js.map",
1855
- "use-lunatic/reducer/commons/resize-array-variable.d.ts",
1856
- "use-lunatic/reducer/commons/resize-array-variable.js",
1857
- "use-lunatic/reducer/commons/resize-array-variable.js.map",
1858
1851
  "use-lunatic/reducer/commons/validate-condition-filter.d.ts",
1859
1852
  "use-lunatic/reducer/commons/validate-condition-filter.js",
1860
1853
  "use-lunatic/reducer/commons/validate-condition-filter.js.map",
@@ -51,6 +51,30 @@ export function Loop({
51
51
  }
52
52
  }, [nbRows, handleChanges, value]);
53
53
 
54
+ const removeRowWithIndex = useCallback(
55
+ (indexToRemove: number) => {
56
+ if (nbRows <= min) {
57
+ return;
58
+ }
59
+ /**
60
+ * Case 0: trying to delete
61
+ */
62
+ if (indexToRemove >= nbRows || indexToRemove < 0) {
63
+ return;
64
+ }
65
+ const newResponses = Object.entries(value).map(([k, v]) => {
66
+ return {
67
+ name: k,
68
+ value: v?.filter((_, i) => i !== indexToRemove),
69
+ removedIndex: indexToRemove,
70
+ };
71
+ });
72
+ handleChanges(newResponses);
73
+ setNbRows((n) => n - 1);
74
+ },
75
+ [nbRows, min, value, handleChanges]
76
+ );
77
+
54
78
  if (nbRows <= 0) {
55
79
  return null;
56
80
  }
@@ -64,19 +88,25 @@ export function Loop({
64
88
  canControlRows={min !== max && Number.isFinite(max)}
65
89
  >
66
90
  {times(nbRows, (n) => (
67
- <LunaticComponents
68
- blocklist={blockedInLoopComponents}
69
- key={n}
70
- components={getComponents(n)}
71
- componentProps={(c) => ({
72
- ...props,
73
- ...c,
74
- iteration: n,
75
- id: `${c.id}-${n}`,
76
- errors,
77
- })}
78
- />
91
+ <>
92
+ <LunaticComponents
93
+ blocklist={blockedInLoopComponents}
94
+ key={n}
95
+ components={getComponents(n)}
96
+ componentProps={(c) => ({
97
+ ...props,
98
+ ...c,
99
+ iteration: n,
100
+ id: `${c.id}-${n}`,
101
+ errors,
102
+ })}
103
+ />
104
+ <Button onClick={() => removeRowWithIndex(n)} disabled={nbRows === 1}>
105
+ {D.DEFAULT_BUTTON_REMOVE_THAT_ROW}
106
+ </Button>
107
+ </>
79
108
  ))}
109
+ <br />
80
110
  </CustomLoop>
81
111
  );
82
112
  }
@@ -19,21 +19,21 @@ import {
19
19
  import type { LunaticComponentProps } from './type';
20
20
 
21
21
  type Props<V = unknown> = {
22
- // List of components to display (coming from getComponents)
22
+ /** List of components to display (coming from getComponents). */
23
23
  components: LunaticComponentProps[];
24
- // Should we memoized children
24
+ /** Should we memoized children. */
25
25
  memo?: boolean;
26
- // Key that trigger autofocus when it changes (pageTag)
26
+ /** Key that trigger autofocus when it changes (pageTag). */
27
27
  autoFocusKey?: string;
28
- // Returns the list of extra props to add to components
28
+ /** Returns the list of extra props to add to components. */
29
29
  componentProps?: (component: LunaticComponentProps) => V;
30
- // Forbidden components
30
+ /** Forbidden components. */
31
31
  blocklist?: string[];
32
- // Add additional wrapper around each component
32
+ /** Add additional wrapper around each component. */
33
33
  wrapper?: (
34
34
  props: PropsWithChildren<LunaticComponentProps & V & { index: number }>
35
35
  ) => ReactNode;
36
- // Customized deep components
36
+ /** Customized deep components. */
37
37
  slots?: Partial<LunaticSlotComponents>;
38
38
  };
39
39
 
@@ -45,7 +45,9 @@ const LunaticComponentWrapper = slottableComponent(
45
45
  );
46
46
 
47
47
  /**
48
- * Entry point for orchestrators, this component display the list of fields
48
+ * Entry point for orchestrators, this component display the list of fields.
49
+ *
50
+ * Components offered by Lunatic can be seen at {@link https://github.com/InseeFr/Lunatic/tree/3.0/src/components}
49
51
  */
50
52
  export function LunaticComponents<V = unknown>({
51
53
  components,
@@ -2,6 +2,7 @@ import { Fragment, useCallback, useState } from 'react';
2
2
  import type { LunaticComponentProps } from '../type';
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 {
@@ -9,6 +10,7 @@ import {
9
10
  getComponentErrors,
10
11
  } from '../shared/ComponentErrors/ComponentErrors';
11
12
  import { CustomLoop } from '../Loop/Loop';
13
+ import { Button } from '../shared/Button/Button';
12
14
 
13
15
  const DEFAULT_MIN_ROWS = 1;
14
16
  const DEFAULT_MAX_ROWS = 12;
@@ -44,6 +46,8 @@ export const RosterForLoop = (
44
46
  }
45
47
  }, [max, nbRows]);
46
48
 
49
+ const cantRemove = nbRows === min;
50
+
47
51
  const removeRow = useCallback(() => {
48
52
  if (nbRows <= min) {
49
53
  return;
@@ -60,22 +64,50 @@ export const RosterForLoop = (
60
64
  handleChanges(newResponses);
61
65
  }, [nbRows, min, valueMap, handleChanges]);
62
66
 
67
+ const removeRowWithIndex = useCallback(
68
+ (indexToRemove: number) => {
69
+ if (nbRows <= min) {
70
+ return;
71
+ }
72
+ /**
73
+ * Case 0: trying to delete
74
+ */
75
+ if (indexToRemove >= nbRows || indexToRemove < 0) {
76
+ return;
77
+ }
78
+ const newResponses = Object.entries(valueMap).map(([k, v]) => {
79
+ return {
80
+ name: k,
81
+ value: v?.filter((_, i) => i !== indexToRemove),
82
+ removedIndex: indexToRemove,
83
+ };
84
+ });
85
+ handleChanges(newResponses);
86
+ setNbRows((n) => n - 1);
87
+ },
88
+ [nbRows, min, valueMap, handleChanges]
89
+ );
90
+
63
91
  if (nbRows === 0) {
64
92
  return null;
65
93
  }
66
94
 
67
95
  let cols = 0;
68
96
 
97
+ const headerWithActions = header
98
+ ? [...header, { label: D.ACTION_HEADER }]
99
+ : undefined;
100
+
69
101
  return (
70
102
  <CustomLoop
71
103
  {...props}
72
104
  errors={getComponentErrors(errors, props.id)}
73
105
  addRow={nbRows === max ? undefined : addRow}
74
- removeRow={nbRows === min ? undefined : removeRow}
106
+ removeRow={cantRemove ? undefined : removeRow}
75
107
  canControlRows={!!(min && max && min !== max)}
76
108
  >
77
109
  <Table id={id}>
78
- {header && <TableHeader header={header} />}
110
+ {headerWithActions && <TableHeader header={headerWithActions} />}
79
111
  <Tbody>
80
112
  {times(nbRows, (n) => {
81
113
  const components = getComponents(n);
@@ -104,6 +136,14 @@ export const RosterForLoop = (
104
136
  })}
105
137
  wrapper={(props) => <Td {...props} />}
106
138
  />
139
+ <Td id={`delete-action-${n}`}>
140
+ <Button
141
+ onClick={() => removeRowWithIndex(n)}
142
+ disabled={cantRemove}
143
+ >
144
+ {D.DEFAULT_BUTTON_REMOVE_THAT_ROW}
145
+ </Button>
146
+ </Td>
107
147
  </Tr>
108
148
  {hasLineErrors && (
109
149
  <Tr className="lunatic-errors">
@@ -45,6 +45,15 @@ exports[`RosterForLoop > renders the right number of columns 1`] = `
45
45
  </div>
46
46
  </div>
47
47
  </td>
48
+ <td
49
+ class="lunatic-table-td"
50
+ >
51
+ <input
52
+ class="button-lunatic"
53
+ type="button"
54
+ value="Remove that row"
55
+ />
56
+ </td>
48
57
  </tr>
49
58
  <tr
50
59
  class="lunatic-table-tr"
@@ -75,6 +84,15 @@ exports[`RosterForLoop > renders the right number of columns 1`] = `
75
84
  </div>
76
85
  </div>
77
86
  </td>
87
+ <td
88
+ class="lunatic-table-td"
89
+ >
90
+ <input
91
+ class="button-lunatic"
92
+ type="button"
93
+ value="Remove that row"
94
+ />
95
+ </td>
78
96
  </tr>
79
97
  </tbody>
80
98
  </table>
@@ -45,7 +45,7 @@ import type { MarkdownLink } from '../MDLabel/MarkdownLink';
45
45
  import type { Accordion } from '../../Accordion/Accordion';
46
46
 
47
47
  /**
48
- * Contains the type of every customizable component
48
+ * Contain the type of every customizable components.
49
49
  */
50
50
  export type LunaticSlotComponents = {
51
51
  // Components
@@ -130,9 +130,9 @@ export const SlotsProvider = ({
130
130
  };
131
131
 
132
132
  /**
133
- * Create a replaceable version of a component
133
+ * Create a replaceable version of a component.
134
134
  *
135
- * The component can be replaced using the "slots" props on <LunaticComponents>
135
+ * The component can be replaced through the `slots` props on `LunaticComponents`.
136
136
  */
137
137
  export function slottableComponent<T>(
138
138
  name: keyof LunaticSlotComponents,
@@ -1,6 +1,11 @@
1
1
  const dictionary = {
2
2
  DEFAULT_BUTTON_ADD: { fr: 'Ajouter une ligne', en: 'Add row' },
3
3
  DEFAULT_BUTTON_REMOVE: { fr: 'Supprimer une ligne', en: 'Remove row' },
4
+ DEFAULT_BUTTON_REMOVE_THAT_ROW: {
5
+ fr: 'Supprimer cette ligne',
6
+ en: 'Remove that row',
7
+ },
8
+ ACTION_HEADER: { fr: 'Action', en: 'Action' },
4
9
  MODAL_IGNORE: { fr: 'Poursuivre', en: 'Ignore' },
5
10
  MODAL_CORRECT: { fr: 'Corriger ma réponse', en: 'Correct' },
6
11
  DK: { fr: 'Ne sais pas', en: "Don't know" },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "COLLECTED": {
3
- "PRENOM": { "COLLECTED": ["Dad", "Mom", "Unknow"] },
3
+ "PRENOM": { "COLLECTED": ["Dad", "Mom", "Daughter"] },
4
4
  "AGE": { "COLLECTED": [30, 29, 5] },
5
5
  "LINKS": {
6
6
  "COLLECTED": [[null]]
@@ -341,7 +341,9 @@
341
341
  "resizing": {
342
342
  "PRENOM": {
343
343
  "sizeForLinksVariables": ["count(PRENOM)", "count(PRENOM)"],
344
- "linksVariables": ["LINKS"]
344
+ "linksVariables": ["LINKS"],
345
+ "size": "count(PRENOM)",
346
+ "variables": ["AGE"]
345
347
  }
346
348
  }
347
349
  }
@@ -1,4 +1,3 @@
1
- /* eslint-disable */
2
1
  /**
3
2
  * This file was automatically generated by json-schema-to-typescript.
4
3
  * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,