@inseefr/lunatic 3.0.0-rc.6 → 3.0.0-rc.9

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 (125) hide show
  1. package/lib/components/CheckboxGroup/CheckboxGroup.js +3 -2
  2. package/lib/components/CheckboxGroup/CustomCheckboxGroup.js +2 -3
  3. package/lib/components/CheckboxGroup/CustomCheckboxGroup.spec.js +3 -0
  4. package/lib/components/CheckboxOne/CheckboxOne.js +0 -1
  5. package/lib/components/Datepicker/Datepicker.js +0 -1
  6. package/lib/components/Dropdown/Dropdown.js +0 -17
  7. package/lib/components/Duration/Duration.js +0 -1
  8. package/lib/components/Input/Input.js +0 -1
  9. package/lib/components/InputNumber/InputNumber.js +0 -1
  10. package/lib/components/LunaticComponents.js +19 -15
  11. package/lib/components/RosterForLoop/RosterForLoop.js +0 -1
  12. package/lib/components/Roundabout/Roundabout.js +0 -1
  13. package/lib/components/Sequence/Sequence.js +0 -1
  14. package/lib/components/Subsequence/Subsequence.spec.js +1 -1
  15. package/lib/components/Suggester/CustomSuggester.js +7 -4
  16. package/lib/components/Suggester/Suggester.js +67 -4
  17. package/lib/components/Suggester/SuggesterType.js +5 -0
  18. package/lib/components/Textarea/Textarea.js +1 -2
  19. package/lib/components/shared/Button/Button.js +0 -1
  20. package/lib/components/shared/Button/IconButton.js +0 -1
  21. package/lib/components/shared/Checkbox/CheckboxOption.js +0 -1
  22. package/lib/components/shared/Combobox/Combobox.js +3 -2
  23. package/lib/components/shared/ComponentErrors/ComponentErrors.js +0 -1
  24. package/lib/components/shared/Declarations/Declarations.js +3 -4
  25. package/lib/components/shared/Declarations/Declarations.spec.js +5 -5
  26. package/lib/components/shared/Fieldset/Fieldset.js +0 -1
  27. package/lib/components/shared/Icons/lunatic-icon.js +0 -1
  28. package/lib/components/shared/Label/Label.js +0 -1
  29. package/lib/components/shared/Missing/Missing.js +0 -1
  30. package/lib/components/shared/ModalControls/ModalControls.js +0 -1
  31. package/lib/components/shared/Radio/RadioGroup.js +0 -1
  32. package/lib/components/shared/Table/Table.js +0 -1
  33. package/lib/components/shared/VariableStatus/VariableStatus.js +0 -1
  34. package/lib/components/shared/suggester-loader-widget/dragger/dragger.js +0 -1
  35. package/lib/components/shared/suggester-loader-widget/widget.js +0 -1
  36. package/lib/css/components/Button.scss +24 -0
  37. package/lib/css/components/CheckboxGroup.scss +13 -0
  38. package/lib/css/components/CheckboxOne.scss +19 -0
  39. package/lib/css/components/CheckboxOption.scss +19 -0
  40. package/lib/css/components/Combobox.scss +206 -0
  41. package/lib/css/components/ComponentErrors.scss +5 -0
  42. package/lib/css/components/Datepicker.scss +19 -0
  43. package/lib/css/components/Declarations.scss +42 -0
  44. package/lib/css/components/Dragger.scss +8 -0
  45. package/lib/css/components/Dropdown.scss +38 -0
  46. package/lib/css/components/Duration.scss +9 -0
  47. package/lib/css/components/Fieldset.scss +5 -0
  48. package/lib/css/components/IconButton.scss +38 -0
  49. package/lib/css/components/Input.scss +42 -0
  50. package/lib/css/components/InputNumber.scss +11 -0
  51. package/lib/css/components/Label.scss +6 -0
  52. package/lib/css/components/Missing.scss +27 -0
  53. package/lib/css/components/ModalControls.scss +48 -0
  54. package/lib/css/components/RadioGroup.scss +21 -0
  55. package/lib/css/components/RosterForLoop.scss +39 -0
  56. package/lib/css/components/Roundabout.scss +13 -0
  57. package/lib/css/components/Sequence.scss +10 -0
  58. package/lib/css/components/Suggester.scss +170 -0
  59. package/lib/css/components/SuggesterWidget.scss +176 -0
  60. package/lib/css/components/Table.scss +27 -0
  61. package/lib/css/components/Textarea.scss +8 -0
  62. package/lib/css/components/VariableStatus.scss +36 -0
  63. package/lib/css/main.scss +181 -0
  64. package/lib/hooks/useSuggesterInfo.js +14 -12
  65. package/lib/main.css +1063 -0
  66. package/lib/main.css.map +1 -0
  67. package/lib/src/components/CheckboxGroup/CheckboxGroup.d.ts +1 -1
  68. package/lib/src/components/CheckboxOne/CheckboxOne.d.ts +0 -1
  69. package/lib/src/components/Datepicker/Datepicker.d.ts +0 -1
  70. package/lib/src/components/Dropdown/Dropdown.d.ts +0 -1
  71. package/lib/src/components/Duration/Duration.d.ts +0 -1
  72. package/lib/src/components/Input/Input.d.ts +0 -1
  73. package/lib/src/components/InputNumber/InputNumber.d.ts +0 -1
  74. package/lib/src/components/RosterForLoop/RosterForLoop.d.ts +0 -1
  75. package/lib/src/components/Roundabout/Roundabout.d.ts +0 -1
  76. package/lib/src/components/Sequence/Sequence.d.ts +1 -2
  77. package/lib/src/components/Subsequence/Subsequence.d.ts +1 -1
  78. package/lib/src/components/Suggester/CustomSuggester.d.ts +7 -3
  79. package/lib/src/components/Suggester/Suggester.d.ts +1 -2
  80. package/lib/src/components/Suggester/SuggesterType.d.ts +6 -0
  81. package/lib/src/components/Suggester/helpers.d.ts +2 -2
  82. package/lib/src/components/Textarea/Textarea.d.ts +0 -1
  83. package/lib/src/components/library.d.ts +3 -3
  84. package/lib/src/components/shared/Button/Button.d.ts +0 -1
  85. package/lib/src/components/shared/Button/IconButton.d.ts +0 -1
  86. package/lib/src/components/shared/Checkbox/CheckboxOption.d.ts +0 -1
  87. package/lib/src/components/shared/Combobox/Combobox.d.ts +1 -1
  88. package/lib/src/components/shared/ComponentErrors/ComponentErrors.d.ts +0 -1
  89. package/lib/src/components/shared/Declarations/Declarations.d.ts +2 -3
  90. package/lib/src/components/shared/Fieldset/Fieldset.d.ts +0 -1
  91. package/lib/src/components/shared/HOC/slottableComponent.d.ts +4 -0
  92. package/lib/src/components/shared/Icons/lunatic-icon.d.ts +0 -1
  93. package/lib/src/components/shared/Label/Label.d.ts +0 -1
  94. package/lib/src/components/shared/Missing/Missing.d.ts +0 -1
  95. package/lib/src/components/shared/ModalControls/ModalControls.d.ts +0 -1
  96. package/lib/src/components/shared/Radio/RadioGroup.d.ts +0 -1
  97. package/lib/src/components/shared/Table/Table.d.ts +0 -1
  98. package/lib/src/components/shared/VariableStatus/VariableStatus.d.ts +0 -1
  99. package/lib/src/components/shared/suggester-loader-widget/dragger/dragger.d.ts +0 -1
  100. package/lib/src/components/shared/suggester-loader-widget/widget.d.ts +0 -1
  101. package/lib/src/components/type.d.ts +7 -2
  102. package/lib/src/hooks/use-track-changes.d.ts +9 -1
  103. package/lib/src/hooks/useSuggesterInfo.d.ts +1 -1
  104. package/lib/src/use-lunatic/commons/fill-components/fill-component-required.d.ts +106 -44
  105. package/lib/src/use-lunatic/commons/fill-components/fill-from-state.d.ts +87 -21
  106. package/lib/src/use-lunatic/commons/fill-components/fill-iterations.d.ts +47 -36
  107. package/lib/src/use-lunatic/commons/fill-components/fill-specific-expression.d.ts +166 -46
  108. package/lib/src/use-lunatic/commons/use-components-from-state.d.ts +1 -1
  109. package/lib/src/use-lunatic/replace-component-sequence.d.ts +21 -3
  110. package/lib/src/use-lunatic/type-source.d.ts +55 -42
  111. package/lib/src/use-lunatic/type.d.ts +4 -4
  112. package/lib/src/use-lunatic/use-lunatic.d.ts +57 -15
  113. package/lib/src/utils/variables.d.ts +10 -2
  114. package/lib/stories/loop/source-roster.json +2 -2
  115. package/lib/stories/suggester/fakeReferentiel.json +12 -0
  116. package/lib/stories/suggester/source-option-responses.json +145 -0
  117. package/lib/stories/suggester/suggester.stories.js +46 -1
  118. package/lib/use-lunatic/use-lunatic.test.js +8 -7
  119. package/package.json +2 -2
  120. package/lib/components/Dropdown/DropdownWritable.js +0 -58
  121. package/lib/components/Dropdown/renderer/WritableLabelRenderer.js +0 -38
  122. package/lib/components/Dropdown/renderer/WritableOptionRenderer.js +0 -140
  123. package/lib/src/components/Dropdown/DropdownWritable.d.ts +0 -17
  124. package/lib/src/components/Dropdown/renderer/WritableLabelRenderer.d.ts +0 -8
  125. package/lib/src/components/Dropdown/renderer/WritableOptionRenderer.d.ts +0 -8
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.CheckboxGroup = CheckboxGroup;
7
7
  var _CustomCheckboxGroup = require("./CustomCheckboxGroup");
8
8
  var _ComponentErrors = require("../shared/ComponentErrors/ComponentErrors");
9
- require("./CheckboxGroup.scss");
10
9
  var _jsxRuntime = require("react/jsx-runtime");
11
10
  function CheckboxGroup(_ref) {
12
11
  var id = _ref.id,
@@ -20,11 +19,13 @@ function CheckboxGroup(_ref) {
20
19
  var options = responses.map(function (_ref2) {
21
20
  var label = _ref2.label,
22
21
  response = _ref2.response,
23
- description = _ref2.description;
22
+ description = _ref2.description,
23
+ id = _ref2.id;
24
24
  var name = response.name;
25
25
  return {
26
26
  label: label,
27
27
  name: name,
28
+ id: id,
28
29
  checked: castValueToBoolean(value, name),
29
30
  description: description,
30
31
  onClick: function onClick(checked) {
@@ -28,16 +28,15 @@ var CustomCheckboxGroup = exports.CustomCheckboxGroup = (0, _slottableComponent.
28
28
  legend: label,
29
29
  description: description,
30
30
  children: [options.map(function (option, index) {
31
- var checkboxId = "lunatic-checkbox-".concat(id, "-").concat(option.name);
32
31
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
33
32
  className: "lunatic-checkbox-group-option",
34
33
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CheckboxOption.CheckboxOption, _objectSpread(_objectSpread({}, option), {}, {
35
34
  shortcut: shortcut,
36
35
  invalid: !!errors,
37
- id: checkboxId,
36
+ id: option.id,
38
37
  codeModality: shortcut ? (0, _getShortcutKey.getShortcutKey)(index, options.length) : undefined
39
38
  }))
40
- }, checkboxId);
39
+ }, option.id);
41
40
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ComponentErrors.ComponentErrors, {
42
41
  errors: errors
43
42
  })]
@@ -6,16 +6,19 @@ var _CustomCheckboxGroup = require("./CustomCheckboxGroup");
6
6
  var _jsxRuntime = require("react/jsx-runtime");
7
7
  (0, _vitest.describe)('CheckboxGroupContent', function () {
8
8
  var options = [{
9
+ id: '1',
9
10
  label: 'Option 1',
10
11
  checked: false,
11
12
  name: 'option1',
12
13
  onClick: _vitest.vi.fn()
13
14
  }, {
15
+ id: '2',
14
16
  label: 'Option 2',
15
17
  checked: true,
16
18
  name: 'option2',
17
19
  onClick: _vitest.vi.fn()
18
20
  }, {
21
+ id: '3',
19
22
  label: 'Option 3',
20
23
  checked: false,
21
24
  name: 'option3',
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.CheckboxOne = CheckboxOne;
7
7
  var _RadioGroup = require("../shared/Radio/RadioGroup");
8
- require("./CheckboxOne.scss");
9
8
  var _ComponentErrors = require("../shared/ComponentErrors/ComponentErrors");
10
9
  var _jsxRuntime = require("react/jsx-runtime");
11
10
  /**
@@ -8,7 +8,6 @@ exports.CustomDatepicker = void 0;
8
8
  exports.Datepicker = Datepicker;
9
9
  var _react = require("react");
10
10
  var _DatepickerField = require("./DatepickerField");
11
- require("./Datepicker.scss");
12
11
  var _slottableComponent = require("../shared/HOC/slottableComponent");
13
12
  var _Label = require("../shared/Label/Label");
14
13
  var _ComponentErrors = require("../shared/ComponentErrors/ComponentErrors");
@@ -6,12 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.CustomDropdown = void 0;
8
8
  exports.Dropdown = Dropdown;
9
- require("./Dropdown.scss");
10
9
  var _ComponentErrors = require("../shared/ComponentErrors/ComponentErrors");
11
10
  var _slottableComponent = require("../shared/HOC/slottableComponent");
12
11
  var _SimpleOptionRenderer = require("./renderer/SimpleOptionRenderer");
13
12
  var _SimpleLabelRenderer = require("./renderer/SimpleLabelRenderer");
14
- var _DropdownWritable = require("./DropdownWritable");
15
13
  var _Combobox = require("../shared/Combobox/Combobox");
16
14
  var _classnames = _interopRequireDefault(require("classnames"));
17
15
  var _jsxRuntime = require("react/jsx-runtime");
@@ -40,7 +38,6 @@ var CustomDropdown = exports.CustomDropdown = (0, _slottableComponent.slottableC
40
38
  var id = props.id,
41
39
  disabled = props.disabled,
42
40
  options = props.options,
43
- writable = props.writable,
44
41
  className = props.className,
45
42
  value = props.value,
46
43
  description = props.description,
@@ -48,20 +45,6 @@ var CustomDropdown = exports.CustomDropdown = (0, _slottableComponent.slottableC
48
45
  errors = props.errors,
49
46
  onChange = props.onChange,
50
47
  readOnly = props.readOnly;
51
- if (writable) {
52
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DropdownWritable.DropdownWritable, {
53
- id: id,
54
- className: (0, _classnames["default"])(className, 'lunatic-dropdown'),
55
- disabled: disabled,
56
- readOnly: readOnly,
57
- options: options,
58
- onSelect: onChange,
59
- value: value,
60
- label: label,
61
- errors: errors,
62
- description: description
63
- });
64
- }
65
48
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Combobox.Combobox, {
66
49
  id: id,
67
50
  className: (0, _classnames["default"])(className, 'lunatic-dropdown'),
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.CustomDuration = void 0;
8
8
  exports.Duration = Duration;
9
- require("./Duration.scss");
10
9
  var _react = require("react");
11
10
  var _getDurationFromValue = require("./getDurationFromValue");
12
11
  var _durationUtils = require("./durationUtils");
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.CustomInput = void 0;
8
8
  exports.Input = Input;
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
- require("./Input.scss");
11
10
  var _Label = require("../shared/Label/Label");
12
11
  var _slottableComponent = require("../shared/HOC/slottableComponent");
13
12
  var _ComponentErrors = require("../shared/ComponentErrors/ComponentErrors");
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.CustomInputNumber = void 0;
8
8
  exports.InputNumber = InputNumber;
9
9
  var _InputNumberThousand = require("./InputNumberThousand");
10
- require("./InputNumber.scss");
11
10
  var _Label = require("../shared/Label/Label");
12
11
  var _ComponentErrors = require("../shared/ComponentErrors/ComponentErrors");
13
12
  var _slottableComponent = require("../shared/HOC/slottableComponent");
@@ -19,24 +19,28 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
19
19
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
20
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
21
21
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
22
+ var LunaticComponentWrapper = (0, _slottableComponent.slottableComponent)('ComponentWrapper', function (_ref) {
23
+ var children = _ref.children;
24
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
25
+ className: "lunatic lunatic-component",
26
+ children: children
27
+ });
28
+ });
29
+
22
30
  /**
23
31
  * Entry point for orchestrators, this component display the list of fields
24
32
  */
25
- function LunaticComponents(_ref) {
26
- var components = _ref.components,
27
- autoFocusKey = _ref.autoFocusKey,
28
- componentProps = _ref.componentProps,
29
- blocklist = _ref.blocklist,
30
- memo = _ref.memo,
31
- slots = _ref.slots,
32
- _ref$wrapper = _ref.wrapper,
33
- wrapper = _ref$wrapper === void 0 ? function (_ref2) {
34
- var children = _ref2.children;
35
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
36
- className: "lunatic lunatic-component",
37
- children: children
38
- });
39
- } : _ref$wrapper;
33
+ function LunaticComponents(_ref2) {
34
+ var components = _ref2.components,
35
+ autoFocusKey = _ref2.autoFocusKey,
36
+ componentProps = _ref2.componentProps,
37
+ blocklist = _ref2.blocklist,
38
+ memo = _ref2.memo,
39
+ slots = _ref2.slots,
40
+ _ref2$wrapper = _ref2.wrapper,
41
+ wrapper = _ref2$wrapper === void 0 ? function (args) {
42
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(LunaticComponentWrapper, _objectSpread({}, args));
43
+ } : _ref2$wrapper;
40
44
  var wrapperRef = (0, _react.useRef)(null);
41
45
  var hasComponents = components.length > 0;
42
46
  var WrapperComponent = autoFocusKey ? 'div' : _react.Fragment;
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.RosterForLoop = void 0;
8
8
  var _react = require("react");
9
- require("./RosterForLoop.scss");
10
9
  var _Table = require("../shared/Table");
11
10
  var _array = require("../../utils/array");
12
11
  var _LunaticComponents = require("../LunaticComponents");
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Roundabout = Roundabout;
7
- require("./Roundabout.scss");
8
7
  var _react = require("react");
9
8
  var _CustomRoundabout = require("./CustomRoundabout");
10
9
  var _jsxRuntime = require("react/jsx-runtime");
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Sequence = void 0;
7
- require("./Sequence.scss");
8
7
  var _slottableComponent = require("../shared/HOC/slottableComponent");
9
8
  var _LabelDescription = require("../shared/LabelDescription");
10
9
  var _Declarations = require("../shared/Declarations/Declarations");
@@ -14,7 +14,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
14
14
  var mockDeclarations = [{
15
15
  id: '1',
16
16
  label: 'Declaration 1',
17
- declarationType: 'TYPE_1',
17
+ declarationType: 'COMMENT',
18
18
  position: 'AFTER_QUESTION_TEXT'
19
19
  }];
20
20
  var mockProps = {
@@ -38,18 +38,21 @@ var CustomSuggester = exports.CustomSuggester = (0, _slottableComponent.slottabl
38
38
  searching = _ref.searching,
39
39
  label = _ref.label,
40
40
  description = _ref.description,
41
- errors = _ref.errors;
41
+ errors = _ref.errors,
42
+ defaultOptions = _ref.defaultOptions;
42
43
  var _useState = (0, _react.useState)(''),
43
44
  _useState2 = _slicedToArray(_useState, 2),
44
45
  search = _useState2[0],
45
46
  setSearch = _useState2[1];
46
- var _useState3 = (0, _react.useState)([]),
47
+ var _useState3 = (0, _react.useState)(defaultOptions !== null && defaultOptions !== void 0 ? defaultOptions : []),
47
48
  _useState4 = _slicedToArray(_useState3, 2),
48
49
  options = _useState4[0],
49
50
  setOptions = _useState4[1];
50
51
  var lastSearch = (0, _react.useRef)('');
51
52
  var handleSelect = (0, _react.useCallback)(function (id) {
52
- onSelect(id ? id : null);
53
+ onSelect(id ? options.find(function (o) {
54
+ return o.id === id;
55
+ }) : null);
53
56
  }, [onSelect]);
54
57
  var handleChange = (0, _react.useCallback)( /*#__PURE__*/function () {
55
58
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(search) {
@@ -77,7 +80,7 @@ var CustomSuggester = exports.CustomSuggester = (0, _slottableComponent.slottabl
77
80
  _context.next = 13;
78
81
  break;
79
82
  case 10:
80
- setOptions([]);
83
+ setOptions(defaultOptions !== null && defaultOptions !== void 0 ? defaultOptions : []);
81
84
  onSelect(null);
82
85
  setSearch('');
83
86
  case 13:
@@ -10,8 +10,11 @@ var _helpers = require("./helpers");
10
10
  var _SuggesterStatus = require("./SuggesterStatus");
11
11
  var _ComponentErrors = require("../shared/ComponentErrors/ComponentErrors");
12
12
  var _useSuggesterInfo2 = require("../../hooks/useSuggesterInfo");
13
- require("./Suggester.scss");
14
13
  var _jsxRuntime = require("react/jsx-runtime");
14
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
15
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
15
18
  function Suggester(_ref) {
16
19
  var storeName = _ref.storeName,
17
20
  _ref$idbVersion = _ref.idbVersion,
@@ -29,13 +32,39 @@ function Suggester(_ref) {
29
32
  errors = _ref.errors,
30
33
  readOnly = _ref.readOnly,
31
34
  workersBasePath = _ref.workersBasePath,
32
- response = _ref.response;
35
+ response = _ref.response,
36
+ _ref$optionResponses = _ref.optionResponses,
37
+ optionResponses = _ref$optionResponses === void 0 ? [] : _ref$optionResponses,
38
+ executeExpression = _ref.executeExpression,
39
+ iteration = _ref.iteration;
33
40
  var _useSuggesterInfo = (0, _useSuggesterInfo2.useSuggesterInfo)(storeName, idbVersion),
34
41
  state = _useSuggesterInfo.state,
35
42
  fetchInfos = _useSuggesterInfo.fetchInfos,
36
43
  infos = _useSuggesterInfo.infos;
37
44
  var onChange = function onChange(v) {
38
- handleChange(response, v);
45
+ if (v && _typeof(v) === 'object' && optionResponses) {
46
+ if (v.id) {
47
+ handleChange(response, v.id);
48
+ }
49
+ var _iterator = _createForOfIteratorHelper(optionResponses),
50
+ _step;
51
+ try {
52
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
53
+ var optionResponse = _step.value;
54
+ if (optionResponse.attribute in v) {
55
+ handleChange({
56
+ name: optionResponse.name
57
+ }, v[optionResponse.attribute]);
58
+ }
59
+ }
60
+ } catch (err) {
61
+ _iterator.e(err);
62
+ } finally {
63
+ _iterator.f();
64
+ }
65
+ } else {
66
+ handleChange(response, v);
67
+ }
39
68
  };
40
69
 
41
70
  // Fetch suggester info when the suggester is mounted
@@ -48,6 +77,39 @@ function Suggester(_ref) {
48
77
  }
49
78
  return undefined;
50
79
  }, [infos, storeName, idbVersion, workersBasePath]);
80
+
81
+ // Default options should not change between render
82
+ // so we can break the rule of hooks here
83
+ var defaultOptions = (0, _react.useMemo)(function () {
84
+ if (!value) {
85
+ return [];
86
+ }
87
+ var labelResponse = optionResponses === null || optionResponses === void 0 ? void 0 : optionResponses.find(function (o) {
88
+ return o.attribute === 'label';
89
+ });
90
+ if (!labelResponse) {
91
+ return [{
92
+ id: value,
93
+ label: value,
94
+ value: value
95
+ }];
96
+ }
97
+ var label = executeExpression(labelResponse.name, {
98
+ iteration: iteration
99
+ });
100
+ if (typeof label !== 'string') {
101
+ return [{
102
+ id: value,
103
+ label: value,
104
+ value: value
105
+ }];
106
+ }
107
+ return [{
108
+ id: value,
109
+ label: label,
110
+ value: value
111
+ }];
112
+ }, []);
51
113
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_SuggesterStatus.SuggesterStatus, {
52
114
  storeName: storeName,
53
115
  getSuggesterStatus: getSuggesterStatus,
@@ -59,11 +121,12 @@ function Suggester(_ref) {
59
121
  }), state === 'Error' && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
60
122
  className: "lunatic-suggester-unvailable",
61
123
  children: "La suggestion sur liste n'est pas possible sur votre navigateur, vous pouvez passer la question en appuyant sur Enregistrer et Continuer"
62
- }), state === 'Ready' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CustomSuggester.CustomSuggester, {
124
+ }), state === 'Ready' && searching && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CustomSuggester.CustomSuggester, {
63
125
  id: id,
64
126
  className: className,
65
127
  optionRenderer: optionRenderer,
66
128
  labelRenderer: labelRenderer,
129
+ defaultOptions: defaultOptions,
67
130
  onSelect: onChange,
68
131
  searching: searching,
69
132
  disabled: disabled,
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.CustomTextarea = void 0;
8
8
  exports.Textarea = Textarea;
9
- require("./Textarea.scss");
10
9
  var _Label = require("../shared/Label/Label");
11
10
  var _ComponentErrors = require("../shared/ComponentErrors/ComponentErrors");
12
11
  var _slottableComponent = require("../shared/HOC/slottableComponent");
@@ -32,7 +31,7 @@ function Textarea(_ref) {
32
31
  errors: (0, _ComponentErrors.getComponentErrors)(errors, props.id)
33
32
  }));
34
33
  }
35
- var CustomTextarea = exports.CustomTextarea = (0, _slottableComponent.slottableComponent)('Input', function (props) {
34
+ var CustomTextarea = exports.CustomTextarea = (0, _slottableComponent.slottableComponent)('Textarea', function (props) {
36
35
  var value = props.value,
37
36
  _onChange = props.onChange,
38
37
  disabled = props.disabled,
@@ -7,7 +7,6 @@ exports.Button = void 0;
7
7
  var _classnames = _interopRequireDefault(require("classnames"));
8
8
  var _dom = require("../../../utils/dom");
9
9
  var _isElement = require("../../../utils/is-element");
10
- require("./Button.scss");
11
10
  var _slottableComponent = require("../HOC/slottableComponent");
12
11
  var _jsxRuntime = require("react/jsx-runtime");
13
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.IconButton = IconButton;
7
7
  var _classnames = _interopRequireDefault(require("classnames"));
8
- require("./IconButton.scss");
9
8
  var _function = require("../../../utils/function");
10
9
  var _jsxRuntime = require("react/jsx-runtime");
11
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -7,7 +7,6 @@ exports.CheckboxOption = void 0;
7
7
  var _react = require("react");
8
8
  var _classnames = _interopRequireDefault(require("classnames"));
9
9
  var _Icons = require("../Icons");
10
- require("./CheckboxOption.scss");
11
10
  var _reactKeyboardEventHandler = _interopRequireDefault(require("react-keyboard-event-handler"));
12
11
  var _slottableComponent = require("../HOC/slottableComponent");
13
12
  var _Label = require("../Label/Label");
@@ -8,7 +8,6 @@ var _classnames = _interopRequireDefault(require("classnames"));
8
8
  var _react = require("react");
9
9
  var _ComboboxContainer = require("./ComboboxContainer");
10
10
  var _ComboboxContent = require("./ComboboxContent");
11
- require("./Combobox.scss");
12
11
  var _constants = require("./constants");
13
12
  var _ComboboxPanel = require("./Panel/ComboboxPanel");
14
13
  var _ComboboxClearButton = require("./Selection/ComboboxClearButton");
@@ -50,7 +49,8 @@ function LunaticComboBox(_ref) {
50
49
  getOptionValue = _ref$getOptionValue === void 0 ? getDefaultOptionValue : _ref$getOptionValue,
51
50
  label = _ref.label,
52
51
  description = _ref.description,
53
- errors = _ref.errors;
52
+ errors = _ref.errors,
53
+ onBlur = _ref.onBlur;
54
54
  var _useState = (0, _react.useState)(false),
55
55
  _useState2 = _slicedToArray(_useState, 2),
56
56
  expanded = _useState2[0],
@@ -76,6 +76,7 @@ function LunaticComboBox(_ref) {
76
76
  if (disabled || readOnly) {
77
77
  return;
78
78
  }
79
+ onBlur === null || onBlur === void 0 || onBlur();
79
80
  setExpanded(false);
80
81
  setFocused(false);
81
82
  };
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.ComponentErrors = ComponentErrors;
7
7
  exports.getComponentErrors = getComponentErrors;
8
- require("./ComponentErrors.scss");
9
8
  var _jsxRuntime = require("react/jsx-runtime");
10
9
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
10
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -5,16 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Declarations = exports.Declaration = void 0;
7
7
  var _slottableComponent = require("../HOC/slottableComponent");
8
- require("./Declarations.scss");
9
8
  var _classnames = _interopRequireDefault(require("classnames"));
10
9
  var _jsxRuntime = require("react/jsx-runtime");
11
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
11
  var Declaration = exports.Declaration = (0, _slottableComponent.slottableComponent)('Declaration', function (_ref) {
13
12
  var children = _ref.children,
14
- type = _ref.type;
13
+ declarationType = _ref.declarationType;
15
14
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
16
15
  "data-testid": "declaration",
17
- className: (0, _classnames["default"])('declaration-lunatic', "declaration-".concat(type.toLowerCase())),
16
+ className: (0, _classnames["default"])('declaration-lunatic', "declaration-".concat(declarationType.toLowerCase())),
18
17
  children: children
19
18
  });
20
19
  });
@@ -38,7 +37,7 @@ function LunaticDeclarations(_ref2) {
38
37
  label = _ref3.label,
39
38
  declarationType = _ref3.declarationType;
40
39
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Declaration, {
41
- type: declarationType,
40
+ declarationType: declarationType,
42
41
  children: label
43
42
  }, id);
44
43
  })
@@ -7,17 +7,17 @@ var _jsxRuntime = require("react/jsx-runtime");
7
7
  var declarations = [{
8
8
  id: '1',
9
9
  label: 'Declaration 1',
10
- declarationType: 'AFTER',
10
+ declarationType: 'COMMENT',
11
11
  position: 'AFTER_QUESTION_TEXT'
12
12
  }, {
13
13
  id: '2',
14
14
  label: 'Declaration 2',
15
- declarationType: 'BEFORE',
15
+ declarationType: 'COMMENT',
16
16
  position: 'BEFORE_QUESTION_TEXT'
17
17
  }, {
18
18
  id: '3',
19
19
  label: 'Declaration 3',
20
- declarationType: 'DETACHABLE',
20
+ declarationType: 'COMMENT',
21
21
  position: 'DETACHABLE'
22
22
  }];
23
23
  (0, _vitest.describe)('Declarations component', function () {
@@ -38,13 +38,13 @@ var declarations = [{
38
38
  var declarationElement = getByText('Declaration 1');
39
39
  (0, _vitest.expect)(declarationElement).toBeInTheDocument();
40
40
  (0, _vitest.expect)(declarationElement).toHaveClass('declaration-lunatic');
41
- (0, _vitest.expect)(declarationElement).toHaveClass('declaration-after');
41
+ (0, _vitest.expect)(declarationElement).toHaveClass('declaration-comment');
42
42
  });
43
43
  (0, _vitest.it)('renders nothing with unfiltered Declarations', function () {
44
44
  var declarationstest = [{
45
45
  id: '3',
46
46
  label: 'Declaration 3',
47
- declarationType: 'DETACHABLE',
47
+ declarationType: 'COMMENT',
48
48
  position: 'DETACHABLE'
49
49
  }];
50
50
  var _render2 = (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
@@ -7,7 +7,6 @@ exports.Fieldset = void 0;
7
7
  var _classnames = _interopRequireDefault(require("classnames"));
8
8
  var _slottableComponent = require("../HOC/slottableComponent");
9
9
  var _LabelDescription = require("../LabelDescription");
10
- require("./Fieldset.scss");
11
10
  var _isElement = require("../../../utils/is-element");
12
11
  var _jsxRuntime = require("react/jsx-runtime");
13
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.LunaticIcon = LunaticIcon;
7
7
  var _classnames = _interopRequireDefault(require("classnames"));
8
- require("./lunatic-icon.scss");
9
8
  var _jsxRuntime = require("react/jsx-runtime");
10
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
10
  function LunaticIcon(_ref) {
@@ -7,7 +7,6 @@ exports.Label = void 0;
7
7
  var _classnames = _interopRequireDefault(require("classnames"));
8
8
  var _slottableComponent = require("../HOC/slottableComponent");
9
9
  var _LabelDescription = require("../LabelDescription");
10
- require("./Label.scss");
11
10
  var _jsxRuntime = require("react/jsx-runtime");
12
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
12
  /**
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = exports.MissingPure = exports.Missing = void 0;
7
- require("./Missing.scss");
8
7
  var _react = require("react");
9
8
  var _constants = require("../../../utils/constants");
10
9
  var _reactKeyboardEventHandler = _interopRequireDefault(require("react-keyboard-event-handler"));
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.ModalControls = ModalControls;
7
7
  var _classnames = _interopRequireDefault(require("classnames"));
8
- require("./ModalControls.scss");
9
8
  var _reactDom = _interopRequireDefault(require("react-dom"));
10
9
  var _Button = require("../Button/Button");
11
10
  var _i18n = _interopRequireDefault(require("../../../i18n"));
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.RadioGroup = void 0;
7
- require("./RadioGroup.scss");
8
7
  var _Fieldset = require("../Fieldset/Fieldset");
9
8
  var _ComponentErrors = require("../ComponentErrors/ComponentErrors");
10
9
  var _slottableComponent = require("../HOC/slottableComponent");
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.Table = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _classnames = _interopRequireDefault(require("classnames"));
9
- require("./Table.scss");
10
9
  var _slottableComponent = require("../HOC/slottableComponent");
11
10
  var _jsxRuntime = require("react/jsx-runtime");
12
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -8,7 +8,6 @@ var _react = require("react");
8
8
  var _reactTooltip = require("react-tooltip");
9
9
  var _edited = _interopRequireDefault(require("./icons/edited.png"));
10
10
  var _forced = _interopRequireDefault(require("./icons/forced.png"));
11
- require("./VariableStatus.scss");
12
11
  var _jsxRuntime = require("react/jsx-runtime");
13
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
13
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports["default"] = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
- require("./dragger.scss");
10
9
  var _function = require("../../../../utils/function");
11
10
  var _useDocumentEvent = _interopRequireDefault(require("../../../../hooks/useDocumentEvent"));
12
11
  var _jsxRuntime = require("react/jsx-runtime");
@@ -14,7 +14,6 @@ var _Icons = require("../Icons");
14
14
  var _loaderRow = _interopRequireDefault(require("./loader-row"));
15
15
  var _tools = require("./tools");
16
16
  var _widgetContainer = _interopRequireDefault(require("./widget-container"));
17
- require("./widget.scss");
18
17
  var _jsxRuntime = require("react/jsx-runtime");
19
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
20
19
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }