@inseefr/lunatic 2.5.0-fix-last-reached-page → 2.5.1-panelContainer

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 (69) hide show
  1. package/lib/components/commons/components/combo-box/combo-box-container.js +15 -7
  2. package/lib/components/commons/components/combo-box/combo-box-container.spec.js +5 -5
  3. package/lib/components/commons/components/combo-box/combo-box-content-box.js +30 -0
  4. package/lib/components/commons/components/combo-box/combo-box-content.js +8 -9
  5. package/lib/components/commons/components/combo-box/combo-box.js +8 -9
  6. package/lib/components/commons/components/{default-option-renderer.js → combo-box/panel/combo-box-option.js} +3 -2
  7. package/lib/components/commons/components/{default-option-renderer.spec.js → combo-box/panel/combo-box-option.spec.js} +5 -5
  8. package/lib/components/commons/components/combo-box/panel/panel-container.js +5 -2
  9. package/lib/components/commons/components/combo-box/panel/panel-container.spec.js +7 -6
  10. package/lib/components/commons/components/combo-box/panel/panel.js +6 -6
  11. package/lib/components/commons/components/combo-box/selection/LabelOrInput.js +51 -0
  12. package/lib/components/commons/components/combo-box/selection/LabelOrInput.spec.js +23 -0
  13. package/lib/components/commons/components/combo-box/selection/__snapshots__/selection.spec.tsx.snap +14 -12
  14. package/lib/components/commons/components/combo-box/selection/{delete.js → clear-button.js} +6 -3
  15. package/lib/components/commons/components/combo-box/selection/{delete.spec.js → clear-button.spec.js} +9 -9
  16. package/lib/components/commons/components/combo-box/selection/combo-box-label-selection.js +47 -0
  17. package/lib/components/commons/components/{default-label-renderer.spec.js → combo-box/selection/combo-box-label-selection.spec.js} +4 -4
  18. package/lib/components/commons/components/combo-box/selection/input.js +2 -2
  19. package/lib/components/commons/components/combo-box/selection/label-selection.js +8 -12
  20. package/lib/components/commons/components/combo-box/selection/label-selection.spec.js +3 -11
  21. package/lib/components/commons/components/combo-box/selection/selection-container.js +3 -2
  22. package/lib/components/commons/components/combo-box/selection/selection.js +8 -12
  23. package/lib/components/commons/components/combo-box/selection/selection.spec.js +5 -30
  24. package/lib/components/commons/index.js +1 -12
  25. package/lib/components/suggester/html/suggester.js +3 -5
  26. package/lib/components/suggester/lunatic-suggester.js +3 -1
  27. package/lib/src/components/commons/components/combo-box/combo-box-container.d.ts +4 -2
  28. package/lib/src/components/commons/components/combo-box/combo-box-content-box.d.ts +11 -0
  29. package/lib/src/components/commons/components/combo-box/combo-box-content.d.ts +2 -1
  30. package/lib/src/components/commons/components/combo-box/combo-box.d.ts +3 -3
  31. package/lib/src/components/commons/components/combo-box/combo-box.stories.d.ts +4 -3
  32. package/lib/src/components/commons/components/combo-box/combo-box.type.d.ts +1 -1
  33. package/lib/src/components/commons/components/combo-box/panel/combo-box-option.d.ts +8 -0
  34. package/lib/src/components/commons/components/combo-box/panel/panel-container.d.ts +2 -2
  35. package/lib/src/components/commons/components/combo-box/panel/panel.d.ts +7 -4
  36. package/lib/src/components/commons/components/combo-box/selection/LabelOrInput.d.ts +16 -0
  37. package/lib/src/components/commons/components/combo-box/selection/clear-button.d.ts +9 -0
  38. package/lib/src/components/commons/components/combo-box/selection/combo-box-label-selection.d.ts +10 -0
  39. package/lib/src/components/commons/components/combo-box/selection/input.d.ts +9 -4
  40. package/lib/src/components/commons/components/combo-box/selection/label-selection.d.ts +9 -9
  41. package/lib/src/components/commons/components/combo-box/selection/selection-container.d.ts +2 -1
  42. package/lib/src/components/commons/components/combo-box/selection/selection.d.ts +2 -1
  43. package/lib/src/components/commons/components/combo-box/state-management/actions.d.ts +5 -5
  44. package/lib/src/components/commons/index.d.ts +0 -3
  45. package/lib/src/components/dropdown/html/dropdown-simple/simple-label-renderer.d.ts +2 -2
  46. package/lib/src/components/dropdown/html/dropdown-simple/simple-option-renderer.d.ts +2 -2
  47. package/lib/src/components/dropdown/html/dropdown-writable/dropdown-writable.d.ts +2 -2
  48. package/lib/src/components/dropdown/html/dropdown-writable/writable-label-renderer.d.ts +2 -2
  49. package/lib/src/components/dropdown/html/dropdown-writable/writable-option-renderer.d.ts +2 -2
  50. package/lib/src/components/loop/block-for-loop/block-for-loop-ochestrator.d.ts +1 -1
  51. package/lib/src/components/loop/roster-for-loop/roster-for-loop-orchestrator.d.ts +1 -1
  52. package/lib/src/components/suggester/html/suggester.d.ts +2 -2
  53. package/lib/src/components/suggester/lunatic-suggester.d.ts +1 -1
  54. package/lib/src/components/suggester/searching/create-searching.d.ts +2 -2
  55. package/lib/src/i18n/index.d.ts +2 -2
  56. package/lib/src/i18n/inputNumberProps.d.ts +1 -1
  57. package/lib/stories/suggester/simple.json +15 -0
  58. package/package.json +1 -1
  59. package/lib/components/commons/components/combo-box/selection/displayLabelOrInput.js +0 -26
  60. package/lib/components/commons/components/combo-box/selection/displayLabelOrInput.spec.js +0 -56
  61. package/lib/components/commons/components/default-label-renderer.js +0 -37
  62. package/lib/src/components/commons/components/combo-box/selection/delete.d.ts +0 -8
  63. package/lib/src/components/commons/components/combo-box/selection/displayLabelOrInput.d.ts +0 -5
  64. package/lib/src/components/commons/components/default-label-renderer.d.ts +0 -8
  65. package/lib/src/components/commons/components/default-option-renderer.d.ts +0 -7
  66. /package/lib/src/components/commons/components/combo-box/{selection/delete.spec.d.ts → panel/combo-box-option.spec.d.ts} +0 -0
  67. /package/lib/src/components/commons/components/combo-box/selection/{displayLabelOrInput.spec.d.ts → LabelOrInput.spec.d.ts} +0 -0
  68. /package/lib/src/components/commons/components/{default-label-renderer.spec.d.ts → combo-box/selection/clear-button.spec.d.ts} +0 -0
  69. /package/lib/src/components/commons/components/{default-option-renderer.spec.d.ts → combo-box/selection/combo-box-label-selection.spec.d.ts} +0 -0
@@ -3,8 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ComboBoxContainer = ComboBoxContainer;
6
+ exports["default"] = void 0;
7
7
  var _classnames = _interopRequireDefault(require("classnames"));
8
+ var _createCustomizableField = _interopRequireDefault(require("../../create-customizable-field"));
9
+ var _errors = _interopRequireDefault(require("../errors"));
8
10
  var _jsxRuntime = require("react/jsx-runtime");
9
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
12
  function ComboBoxContainer(_ref) {
@@ -12,10 +14,16 @@ function ComboBoxContainer(_ref) {
12
14
  className = _ref.className,
13
15
  id = _ref.id,
14
16
  _ref$classStyle = _ref.classStyle,
15
- classStyle = _ref$classStyle === void 0 ? 'default-style' : _ref$classStyle;
16
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
17
- id: "lunatic-combo-box-container-".concat(id),
18
- className: (0, _classnames["default"])('lunatic-combo-box-container', className, classStyle),
19
- children: children
17
+ classStyle = _ref$classStyle === void 0 ? 'default-style' : _ref$classStyle,
18
+ errors = _ref.errors;
19
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
20
+ id: "".concat(className !== null && className !== void 0 ? className : 'lunatic', "-combo-box-container-").concat(id),
21
+ className: (0, _classnames["default"])("".concat(className !== null && className !== void 0 ? className : 'lunatic', "-combo-box-container"), "".concat(className !== null && className !== void 0 ? className : 'lunatic', "-suggester-").concat(classStyle), "lunatic-suggester-default-style", classStyle),
22
+ children: [children, errors && /*#__PURE__*/(0, _jsxRuntime.jsx)(_errors["default"], {
23
+ errors: errors,
24
+ activeId: id
25
+ })]
20
26
  });
21
- }
27
+ }
28
+ var _default = (0, _createCustomizableField["default"])(ComboBoxContainer, 'ComboboxContainer');
29
+ exports["default"] = _default;
@@ -2,13 +2,13 @@
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
4
  var _react2 = require("@testing-library/react");
5
- var _comboBoxContainer = require("./combo-box-container");
5
+ var _comboBoxContainer = _interopRequireDefault(require("./combo-box-container"));
6
6
  var _vitest = require("vitest");
7
7
  var _jsxRuntime = require("react/jsx-runtime");
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
9
  (0, _vitest.describe)('ComboBoxContainer', function () {
10
10
  (0, _vitest.it)('renders with default styles when no classStyle prop is provided', function () {
11
- var _render = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboBoxContainer.ComboBoxContainer, {
11
+ var _render = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboBoxContainer["default"], {
12
12
  id: "test-id",
13
13
  children: "Content"
14
14
  })),
@@ -16,7 +16,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
16
16
  (0, _vitest.expect)(container.firstChild).toHaveClass('default-style');
17
17
  });
18
18
  (0, _vitest.it)('renders with additional styles when classStyle prop is provided', function () {
19
- var _render2 = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboBoxContainer.ComboBoxContainer, {
19
+ var _render2 = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboBoxContainer["default"], {
20
20
  id: "test-id",
21
21
  classStyle: "custom-style",
22
22
  children: "Content"
@@ -26,7 +26,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
26
26
  (0, _vitest.expect)(container.firstChild).toHaveClass('custom-style');
27
27
  });
28
28
  (0, _vitest.it)('renders children inside the component', function () {
29
- var _render3 = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboBoxContainer.ComboBoxContainer, {
29
+ var _render3 = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboBoxContainer["default"], {
30
30
  id: "test-id",
31
31
  children: "Content"
32
32
  })),
@@ -34,7 +34,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
34
34
  (0, _vitest.expect)(getByText('Content')).toBeInTheDocument();
35
35
  });
36
36
  (0, _vitest.it)('passes className prop to the component', function () {
37
- var _render4 = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboBoxContainer.ComboBoxContainer, {
37
+ var _render4 = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboBoxContainer["default"], {
38
38
  id: "test-id",
39
39
  className: "test-class",
40
40
  children: "Content"
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ComboBoxContentBox = ComboBoxContentBox;
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _index = require("../../index");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
+ function ComboBoxContentBox(_ref) {
14
+ var children = _ref.children,
15
+ className = _ref.className,
16
+ onFocus = _ref.onFocus,
17
+ onKeyDown = _ref.onKeyDown,
18
+ focused = _ref.focused;
19
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
20
+ className: (0, _classnames["default"])("".concat(className !== null && className !== void 0 ? className : 'lunatic', "-combo-box"), {
21
+ focused: focused
22
+ }),
23
+ onFocus: onFocus,
24
+ onClick: onFocus,
25
+ onKeyDown: onKeyDown,
26
+ children: children
27
+ });
28
+ }
29
+ var _default = (0, _index.createCustomizableLunaticField)(ComboBoxContentBox, 'ComboboxContentBox');
30
+ exports["default"] = _default;
@@ -10,6 +10,7 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _keyboardKeyCodes = require("./state-management/reduce-on-keydown/keyboard-key-codes");
12
12
  var _index = require("../../index");
13
+ var _comboBoxContentBox = _interopRequireDefault(require("./combo-box-content-box"));
13
14
  var _jsxRuntime = require("react/jsx-runtime");
14
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -19,7 +20,8 @@ function ComboBoxContent(_ref) {
19
20
  focused = _ref.focused,
20
21
  onFocus = _ref.onFocus,
21
22
  onBlur = _ref.onBlur,
22
- onKeyDown = _ref.onKeyDown;
23
+ onKeyDown = _ref.onKeyDown,
24
+ className = _ref.className;
23
25
  var ref = (0, _react.useRef)(null);
24
26
  var onClick = (0, _react.useCallback)(function (e) {
25
27
  var _ref$current;
@@ -44,19 +46,16 @@ function ComboBoxContent(_ref) {
44
46
 
45
47
  onKeyDown(key);
46
48
  }, [onKeyDown]);
47
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
48
- className: (0, _classnames["default"])('lunatic-combo-box', {
49
- focused: focused
50
- }),
49
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboBoxContentBox["default"], {
50
+ className: className,
51
51
  onFocus: onFocus,
52
- onClick: onFocus,
53
52
  onKeyDown: handleKeyDown,
54
- ref: ref,
55
- tabIndex: 0,
56
53
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
57
- className: (0, _classnames["default"])('lunatic-combo-box-content', {
54
+ className: (0, _classnames["default"])("".concat(className !== null && className !== void 0 ? className : 'lunatic', "-combo-box-content"), {
58
55
  focused: focused
59
56
  }),
57
+ ref: ref,
58
+ tabIndex: 0,
60
59
  children: children
61
60
  })
62
61
  });
@@ -7,15 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports["default"] = void 0;
8
8
  var _react = require("react");
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
- var _delete = require("./selection/delete");
10
+ var _clearButton = require("./selection/clear-button");
11
11
  var _stateManagement = require("./state-management");
12
12
  require("./combo-box.scss");
13
13
  var _selection = require("./selection/selection");
14
14
  var _panel = require("./panel/panel");
15
- var _comboBoxContainer = require("./combo-box-container");
15
+ var _comboBoxContainer = _interopRequireDefault(require("./combo-box-container"));
16
16
  var _comboBoxContent = _interopRequireDefault(require("./combo-box-content"));
17
17
  var _label = _interopRequireDefault(require("../label"));
18
- var _errors = _interopRequireDefault(require("../errors"));
19
18
  var _index = require("../../index");
20
19
  var _jsxRuntime = require("react/jsx-runtime");
21
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -103,10 +102,11 @@ function ComboBox(_ref) {
103
102
  children: messageError
104
103
  });
105
104
  }
106
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_comboBoxContainer.ComboBoxContainer, {
105
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_comboBoxContainer["default"], {
107
106
  id: id,
108
107
  classStyle: classStyle,
109
108
  className: className,
109
+ errors: errors,
110
110
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_label["default"], {
111
111
  htmlFor: id,
112
112
  id: labelId,
@@ -117,6 +117,7 @@ function ComboBox(_ref) {
117
117
  onFocus: onFocus,
118
118
  onBlur: onBlur,
119
119
  onKeyDown: onKeyDown,
120
+ className: className,
120
121
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_selection.Selection, {
121
122
  labelRenderer: labelRenderer,
122
123
  placeholder: placeholder,
@@ -129,7 +130,8 @@ function ComboBox(_ref) {
129
130
  editable: editable,
130
131
  selectedIndex: selectedIndex,
131
132
  options: options,
132
- onChange: handleChange
133
+ onChange: handleChange,
134
+ className: className
133
135
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_panel.Panel, {
134
136
  optionRenderer: optionRenderer,
135
137
  options: options,
@@ -140,16 +142,13 @@ function ComboBox(_ref) {
140
142
  search: search,
141
143
  onSelect: handleSelect
142
144
  })]
143
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.Delete, {
145
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_clearButton.ClearButton, {
144
146
  className: (0, _classnames["default"])({
145
147
  focused: focused
146
148
  }),
147
149
  search: search,
148
150
  onClick: onDelete,
149
151
  editable: editable
150
- }), errors && /*#__PURE__*/(0, _jsxRuntime.jsx)(_errors["default"], {
151
- errors: errors,
152
- activeId: id
153
152
  })]
154
153
  });
155
154
  }
@@ -5,9 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
  var _classnames = _interopRequireDefault(require("classnames"));
8
+ var _createCustomizableField = _interopRequireDefault(require("../../../create-customizable-field"));
8
9
  var _jsxRuntime = require("react/jsx-runtime");
9
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
- function DefaultOptionRenderer(_ref) {
11
+ function ComboBoxOption(_ref) {
11
12
  var option = _ref.option,
12
13
  selected = _ref.selected;
13
14
  var id = option.id,
@@ -39,5 +40,5 @@ function DefaultOptionRenderer(_ref) {
39
40
  })
40
41
  });
41
42
  }
42
- var _default = DefaultOptionRenderer;
43
+ var _default = (0, _createCustomizableField["default"])(ComboBoxOption, 'ComboboxOption');
43
44
  exports["default"] = _default;
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
4
  var _react2 = require("@testing-library/react");
5
- var _defaultOptionRenderer = _interopRequireDefault(require("./default-option-renderer"));
5
+ var _comboBoxOption = _interopRequireDefault(require("./combo-box-option"));
6
6
  var _vitest = require("vitest");
7
7
  var _jsxRuntime = require("react/jsx-runtime");
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -12,7 +12,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
12
12
  id: '1',
13
13
  value: 'Value'
14
14
  };
15
- var _render = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_defaultOptionRenderer["default"], {
15
+ var _render = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboBoxOption["default"], {
16
16
  option: option
17
17
  })),
18
18
  getByText = _render.getByText,
@@ -28,7 +28,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
28
28
  value: 'Value',
29
29
  label: 'Label'
30
30
  };
31
- var _render2 = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_defaultOptionRenderer["default"], {
31
+ var _render2 = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboBoxOption["default"], {
32
32
  option: option
33
33
  })),
34
34
  getByText = _render2.getByText;
@@ -43,7 +43,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
43
43
  value: 'Value',
44
44
  label: 'Label'
45
45
  };
46
- var _render3 = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_defaultOptionRenderer["default"], {
46
+ var _render3 = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboBoxOption["default"], {
47
47
  option: option,
48
48
  selected: true
49
49
  })),
@@ -56,7 +56,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
56
56
  value: 'Value',
57
57
  label: 'Label'
58
58
  };
59
- var _render4 = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_defaultOptionRenderer["default"], {
59
+ var _render4 = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboBoxOption["default"], {
60
60
  option: option
61
61
  })),
62
62
  container = _render4.container;
@@ -3,8 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.PanelContainer = PanelContainer;
6
+ exports["default"] = void 0;
7
7
  var _classnames = _interopRequireDefault(require("classnames"));
8
+ var _createCustomizableField = _interopRequireDefault(require("../../../create-customizable-field"));
8
9
  var _jsxRuntime = require("react/jsx-runtime");
9
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
11
  function PanelContainer(_ref) {
@@ -22,4 +23,6 @@ function PanelContainer(_ref) {
22
23
  role: "listbox",
23
24
  children: children
24
25
  });
25
- }
26
+ }
27
+ var _default = (0, _createCustomizableField["default"])(PanelContainer, 'ComboboxPanelContainer');
28
+ exports["default"] = _default;
@@ -2,11 +2,12 @@
2
2
 
3
3
  var _react = require("@testing-library/react");
4
4
  var _vitest = require("vitest");
5
- var _panelContainer = require("./panel-container");
5
+ var _panelContainer = _interopRequireDefault(require("./panel-container"));
6
6
  var _jsxRuntime = require("react/jsx-runtime");
7
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7
8
  (0, _vitest.describe)('PanelContainer', function () {
8
9
  (0, _vitest.it)('should render children', function () {
9
- (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsxs)(_panelContainer.PanelContainer, {
10
+ (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsxs)(_panelContainer["default"], {
10
11
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
11
12
  children: "Item 1"
12
13
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
@@ -20,7 +21,7 @@ var _jsxRuntime = require("react/jsx-runtime");
20
21
  });
21
22
  (0, _vitest.it)('should set the id attribute', function () {
22
23
  var id = 'test-panel';
23
- (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_panelContainer.PanelContainer, {
24
+ (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_panelContainer["default"], {
24
25
  id: id,
25
26
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
26
27
  children: "Item 1"
@@ -29,7 +30,7 @@ var _jsxRuntime = require("react/jsx-runtime");
29
30
  (0, _vitest.expect)(_react.screen.getByRole('listbox')).toHaveAttribute('id', "lunatic-combo-box-panel-".concat(id));
30
31
  });
31
32
  (0, _vitest.it)('should set the aria-label attribute', function () {
32
- (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_panelContainer.PanelContainer, {
33
+ (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_panelContainer["default"], {
33
34
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
34
35
  children: "Item 1"
35
36
  })
@@ -37,7 +38,7 @@ var _jsxRuntime = require("react/jsx-runtime");
37
38
  (0, _vitest.expect)(_react.screen.getByRole('listbox')).toHaveAttribute('aria-label', 'suggestions');
38
39
  });
39
40
  (0, _vitest.it)('should set the focused class when focused prop is true', function () {
40
- (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_panelContainer.PanelContainer, {
41
+ (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_panelContainer["default"], {
41
42
  focused: true,
42
43
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
43
44
  children: "Item 1"
@@ -46,7 +47,7 @@ var _jsxRuntime = require("react/jsx-runtime");
46
47
  (0, _vitest.expect)(_react.screen.getByRole('listbox')).toHaveClass('focused');
47
48
  });
48
49
  (0, _vitest.it)('should set the expanded class when expanded prop is true', function () {
49
- (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_panelContainer.PanelContainer, {
50
+ (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_panelContainer["default"], {
50
51
  expanded: true,
51
52
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
52
53
  children: "Item 1"
@@ -5,14 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Panel = Panel;
7
7
  var _react = _interopRequireDefault(require("react"));
8
- var _panelContainer = require("./panel-container");
8
+ var _panelContainer = _interopRequireDefault(require("./panel-container"));
9
9
  var _optionContainer = require("./option-container");
10
- var _index = require("../../../index");
10
+ var _comboBoxOption = _interopRequireDefault(require("./combo-box-option"));
11
11
  var _jsxRuntime = require("react/jsx-runtime");
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
13
  function Panel(_ref) {
14
- var _ref$optionRenderer = _ref.optionRenderer,
15
- OptionRender = _ref$optionRenderer === void 0 ? _index.DefaultOptionRenderer : _ref$optionRenderer,
14
+ var OptionRender = _ref.optionRenderer,
16
15
  _ref$options = _ref.options,
17
16
  options = _ref$options === void 0 ? [] : _ref$options,
18
17
  focused = _ref.focused,
@@ -22,7 +21,8 @@ function Panel(_ref) {
22
21
  search = _ref.search,
23
22
  onSelect = _ref.onSelect;
24
23
  var visibleOptions = expanded ? options : [];
25
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_panelContainer.PanelContainer, {
24
+ var ComboBoxOptionComponent = OptionRender !== null && OptionRender !== void 0 ? OptionRender : _comboBoxOption["default"];
25
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_panelContainer["default"], {
26
26
  expanded: expanded,
27
27
  focused: focused,
28
28
  id: "".concat(id, "-list"),
@@ -32,7 +32,7 @@ function Panel(_ref) {
32
32
  index: index.toString(),
33
33
  selected: selectedIndex === index,
34
34
  onSelect: onSelect,
35
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(OptionRender, {
35
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ComboBoxOptionComponent, {
36
36
  option: option,
37
37
  selected: selectedIndex === index,
38
38
  search: search
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LabelOrInput = LabelOrInput;
7
+ var _labelSelection = _interopRequireDefault(require("./label-selection"));
8
+ var _input = _interopRequireDefault(require("./input"));
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+ /**
12
+ * Display the input or the label of the selection based on the state of the Suggester.
13
+ *
14
+ * When the component is not focused, a representation of what is being searched
15
+ * is presented instead of the Input. This is related to what the user searched
16
+ * (i.e. the letters entered), not directly to the option chosen among the suggestions.
17
+ * Using the input directly to represent the selection causes a conflict with that which the user enters in order to search.
18
+ */
19
+ function LabelOrInput(props) {
20
+ var editable = props.editable,
21
+ expanded = props.expanded;
22
+ var displayLabel = !editable || !expanded;
23
+ var labelRenderer = props.labelRenderer,
24
+ placeholder = props.placeholder,
25
+ selectedIndex = props.selectedIndex,
26
+ options = props.options,
27
+ search = props.search,
28
+ disabled = props.disabled,
29
+ id = props.id,
30
+ focused = props.focused,
31
+ onChange = props.onChange;
32
+ if (displayLabel) {
33
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_labelSelection["default"], {
34
+ labelRenderer: labelRenderer,
35
+ placeholder: placeholder,
36
+ selectedIndex: selectedIndex,
37
+ options: options,
38
+ search: search,
39
+ disabled: disabled
40
+ });
41
+ }
42
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_input["default"], {
43
+ id: "combobox-input-".concat(id),
44
+ className: "lunatic-combo-box-input",
45
+ onChange: onChange,
46
+ value: search,
47
+ placeholder: placeholder,
48
+ disabled: disabled,
49
+ focused: focused
50
+ });
51
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+ var _react2 = require("@testing-library/react");
5
+ var _LabelOrInput = require("./LabelOrInput");
6
+ var _vitest = require("vitest");
7
+ var _jsxRuntime = require("react/jsx-runtime");
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
+ (0, _vitest.describe)('displayLabelOrInput', function () {
10
+ (0, _vitest.it)('Render Label when not expended', function () {
11
+ var _render = (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_LabelOrInput.LabelOrInput, {
12
+ editable: true,
13
+ expanded: false,
14
+ options: [{
15
+ label: 'hello',
16
+ value: '-1'
17
+ }],
18
+ selectedIndex: 0
19
+ })),
20
+ getByText = _render.getByText;
21
+ (0, _vitest.expect)(getByText('-1 - hello')).toBeInTheDocument();
22
+ });
23
+ });
@@ -13,9 +13,11 @@ exports[`Selection component > should render correctly when it is disabled 1`] =
13
13
  <div
14
14
  class="lunatic-combo-box-selected disabled"
15
15
  >
16
- <div>
17
- No selection
18
- </div>
16
+ <span
17
+ class="placeholder"
18
+ >
19
+ hello!
20
+ </span>
19
21
  </div>
20
22
  </div>
21
23
  `;
@@ -33,9 +35,9 @@ exports[`Selection component > should render correctly when it is editable 1`] =
33
35
  <div
34
36
  class="lunatic-combo-box-selected"
35
37
  >
36
- <div>
37
- No selection
38
- </div>
38
+ <span
39
+ class="placeholder"
40
+ />
39
41
  </div>
40
42
  </div>
41
43
  `;
@@ -54,9 +56,9 @@ exports[`Selection component > should render correctly when it is expanded 1`] =
54
56
  <div
55
57
  class="lunatic-combo-box-selected"
56
58
  >
57
- <div>
58
- No selection
59
- </div>
59
+ <span
60
+ class="placeholder"
61
+ />
60
62
  </div>
61
63
  </div>
62
64
  `;
@@ -74,9 +76,9 @@ exports[`Selection component > should render correctly with default props 1`] =
74
76
  <div
75
77
  class="lunatic-combo-box-selected"
76
78
  >
77
- <div>
78
- No selection
79
- </div>
79
+ <span
80
+ class="placeholder"
81
+ />
80
82
  </div>
81
83
  </div>
82
84
  `;
@@ -3,11 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Delete = Delete;
6
+ exports.ClearButton = void 0;
7
7
  var _react = require("react");
8
8
  var _classnames = _interopRequireDefault(require("classnames"));
9
9
  var _icons = require("../../../icons");
10
10
  var _fab = require("../../fab");
11
+ var _createCustomizableField = _interopRequireDefault(require("../../../create-customizable-field"));
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
14
  function isDisabled(search) {
@@ -23,7 +24,7 @@ function createOnKeyDown(onClick) {
23
24
  }
24
25
  };
25
26
  }
26
- function Delete(_ref) {
27
+ function ClearButtonComponent(_ref) {
27
28
  var className = _ref.className,
28
29
  search = _ref.search,
29
30
  onClick = _ref.onClick,
@@ -44,4 +45,6 @@ function Delete(_ref) {
44
45
  className: "lunatic-combo-box-icon"
45
46
  })
46
47
  });
47
- }
48
+ }
49
+ var ClearButton = (0, _createCustomizableField["default"])(ClearButtonComponent, 'ComboboxClearButton');
50
+ exports.ClearButton = ClearButton;
@@ -3,7 +3,7 @@
3
3
  var _react = require("@testing-library/react");
4
4
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
5
5
  var _vitest = require("vitest");
6
- var _delete = require("./delete");
6
+ var _clearButton = require("./clear-button");
7
7
  var _jsxRuntime = require("react/jsx-runtime");
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
9
  (0, _vitest.describe)('Delete', function () {
@@ -14,13 +14,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
14
14
  onClickMock.mockClear();
15
15
  });
16
16
  (0, _vitest.it)('should not render when editable is false', function () {
17
- (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.Delete, {
17
+ (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_clearButton.ClearButton, {
18
18
  editable: false
19
19
  }));
20
20
  (0, _vitest.expect)(_react.screen.queryByRole('button')).not.toBeInTheDocument();
21
21
  });
22
22
  (0, _vitest.it)('should call onClick when clicked and search is not empty', function () {
23
- (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.Delete, {
23
+ (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_clearButton.ClearButton, {
24
24
  editable: true,
25
25
  search: search,
26
26
  onClick: onClickMock
@@ -29,7 +29,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
29
29
  (0, _vitest.expect)(onClickMock).toHaveBeenCalledTimes(1);
30
30
  });
31
31
  (0, _vitest.it)('should not call onClick when clicked and search is empty', function () {
32
- (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.Delete, {
32
+ (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_clearButton.ClearButton, {
33
33
  editable: true,
34
34
  search: "",
35
35
  onClick: onClickMock
@@ -40,7 +40,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
40
40
  (0, _vitest.it)('should call onClick when the Enter key is pressed and search is not empty', function () {
41
41
  var search = 'test';
42
42
  var onClick = _vitest.vi.fn();
43
- (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.Delete, {
43
+ (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_clearButton.ClearButton, {
44
44
  search: search,
45
45
  onClick: onClick,
46
46
  editable: true
@@ -52,7 +52,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
52
52
  (0, _vitest.expect)(onClick).toHaveBeenCalledTimes(1);
53
53
  });
54
54
  (0, _vitest.it)('should not call onClick when the Enter key is pressed and search is empty', function () {
55
- (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.Delete, {
55
+ (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_clearButton.ClearButton, {
56
56
  editable: true,
57
57
  search: "",
58
58
  onClick: onClickMock
@@ -61,7 +61,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
61
61
  (0, _vitest.expect)(onClickMock).toHaveBeenCalledTimes(0);
62
62
  });
63
63
  (0, _vitest.it)('should apply the className prop', function () {
64
- (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.Delete, {
64
+ (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_clearButton.ClearButton, {
65
65
  className: className,
66
66
  editable: true,
67
67
  search: search,
@@ -70,7 +70,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
70
70
  (0, _vitest.expect)(_react.screen.getByRole('button')).toHaveClass(className);
71
71
  });
72
72
  (0, _vitest.it)('should be disabled when search is empty', function () {
73
- (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.Delete, {
73
+ (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_clearButton.ClearButton, {
74
74
  editable: true,
75
75
  search: "",
76
76
  onClick: onClickMock
@@ -78,7 +78,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
78
78
  (0, _vitest.expect)(_react.screen.getByRole('button')).toBeDisabled();
79
79
  });
80
80
  (0, _vitest.it)('should not be disabled when search is not empty', function () {
81
- (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.Delete, {
81
+ (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_clearButton.ClearButton, {
82
82
  editable: true,
83
83
  search: search,
84
84
  onClick: onClickMock