@orfium/ictinus 4.66.0 → 4.67.1

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 (29) hide show
  1. package/dist/components/Filter/components/MultiFilter/MultiFilter.js +2 -2
  2. package/dist/components/MultiTextFieldBase/MultiTextFieldBase.d.ts +43 -0
  3. package/dist/components/{MultiSelectBase/MultiSelectBase.js → MultiTextFieldBase/MultiTextFieldBase.js} +26 -22
  4. package/dist/components/{MultiSelectBase/MultiSelectBase.style.d.ts → MultiTextFieldBase/MultiTextFieldBase.style.d.ts} +2 -1
  5. package/dist/components/MultiTextFieldBase/MultiTextFieldBase.style.js +159 -0
  6. package/dist/components/MultiTextFieldBase/hooks.d.ts +15 -0
  7. package/dist/components/{MultiSelectBase → MultiTextFieldBase}/hooks.js +29 -12
  8. package/dist/components/MultiTextFieldBase/index.d.ts +1 -0
  9. package/dist/components/MultiTextFieldBase/index.js +10 -0
  10. package/dist/components/SearchField/SearchField.d.ts +6 -0
  11. package/dist/components/SearchField/SearchFieldShowcase.d.ts +6 -0
  12. package/dist/components/Select/Select.d.ts +6 -0
  13. package/dist/components/Select/Select.js +2 -2
  14. package/dist/components/Select/components/SelectMenu/SelectMenu.style.d.ts +6 -0
  15. package/dist/components/Table/Table.js +7 -11
  16. package/dist/components/TextField/TextField.d.ts +24 -0
  17. package/dist/components/TextField/TextField.js +44 -6
  18. package/dist/components/TextField/hooks/useMultiTextFieldUtils.d.ts +11 -0
  19. package/dist/components/TextField/hooks/useMultiTextFieldUtils.js +97 -0
  20. package/dist/components/TextInputBase/config.d.ts +4 -3
  21. package/dist/components/TextInputBase/config.js +3 -1
  22. package/dist/utils/size-utils.d.ts +2 -1
  23. package/dist/utils/size-utils.js +11 -3
  24. package/package.json +4 -1
  25. package/dist/components/MultiSelectBase/MultiSelectBase.d.ts +0 -23
  26. package/dist/components/MultiSelectBase/MultiSelectBase.style.js +0 -156
  27. package/dist/components/MultiSelectBase/hooks.d.ts +0 -17
  28. package/dist/components/MultiSelectBase/index.d.ts +0 -1
  29. package/dist/components/MultiSelectBase/index.js +0 -10
@@ -87,24 +87,17 @@ function Table(_ref) {
87
87
  return Boolean(row.expanded);
88
88
  });
89
89
  var columnCount = getColumnCount(columns, onCheck, hasExpandableRows);
90
- (0, _react.useEffect)(function () {
91
- if (onSort) {
92
- onSort(sorting.column, sorting.order);
93
- }
94
- }, [onSort, sorting]);
95
90
  /** when the selection of ids change then inform the user if onCheck callback provided **/
96
91
 
97
- _react["default"].useEffect(function () {
92
+ (0, _react.useEffect)(function () {
98
93
  if (onCheck && selectedIds) {
99
94
  onCheck(selectedIds);
100
95
  }
101
96
  }, [onCheck, selectedIds]);
102
-
103
- _react["default"].useEffect(function () {
97
+ (0, _react.useEffect)(function () {
104
98
  // when data are fresh initialize the selectedIds state
105
99
  setSelectedIds(undefined);
106
- }, [data]); // @ts-ignore
107
-
100
+ }, [data]);
108
101
 
109
102
  var onSelectionAdd = _react["default"].useCallback(function (rowId) {
110
103
  setSelectedIds(function (selectedIds) {
@@ -148,6 +141,7 @@ function Table(_ref) {
148
141
  var handleSorting = function handleSorting(column) {
149
142
  setSorting(function (prevState) {
150
143
  if (sortDir) {
144
+ onSort == null ? void 0 : onSort(column, sortDir);
151
145
  return {
152
146
  column: column,
153
147
  order: sortDir
@@ -155,12 +149,14 @@ function Table(_ref) {
155
149
  }
156
150
 
157
151
  if (prevState.column !== column) {
152
+ onSort == null ? void 0 : onSort(column, 'asc');
158
153
  return {
159
154
  column: column,
160
155
  order: 'asc'
161
156
  };
162
157
  }
163
158
 
159
+ onSort == null ? void 0 : onSort(column, prevState.order === 'asc' ? 'desc' : 'asc');
164
160
  return {
165
161
  column: column,
166
162
  order: prevState.order === 'asc' ? 'desc' : 'asc'
@@ -268,6 +264,6 @@ function Table(_ref) {
268
264
  }))));
269
265
  }
270
266
 
271
- var _default = /*#__PURE__*/_react["default"].memo(Table, _reactFastCompare["default"]);
267
+ var _default = /*#__PURE__*/(0, _react.memo)(Table, _reactFastCompare["default"]);
272
268
 
273
269
  exports["default"] = _default;
@@ -17,6 +17,18 @@ export declare type Props = {
17
17
  /** @deprecated This is a compatibility prop that will be removed in the next version, along with the min-width value
18
18
  * of the TextField. It will be replaced by a fullWidth prop. */
19
19
  hasMinWidthCompat?: boolean;
20
+ /** If true the user can enter multiple values by pressing 'Enter' */
21
+ multi?: boolean;
22
+ /** The initial multi values */
23
+ multiValues?: string[];
24
+ /** Maximum multi values */
25
+ maxMultiValues?: number;
26
+ /** A callback for when a Chip value is created */
27
+ onMultiValueCreate?: (value?: string) => void;
28
+ /** A callback for when a Chip value is deleted */
29
+ onMultiValueDelete?: (value?: string) => void;
30
+ /** A callback for when all values are deleted (the Clear All icon is clicked) */
31
+ onClearAllValues?: () => void;
20
32
  } & TextInputWrapperProps;
21
33
  export declare type InputProps = Partial<Omit<InputHTMLAttributes<HTMLInputElement>, 'size'>>;
22
34
  declare const TextField: React.ForwardRefExoticComponent<{
@@ -35,5 +47,17 @@ declare const TextField: React.ForwardRefExoticComponent<{
35
47
  /** @deprecated This is a compatibility prop that will be removed in the next version, along with the min-width value
36
48
  * of the TextField. It will be replaced by a fullWidth prop. */
37
49
  hasMinWidthCompat?: boolean | undefined;
50
+ /** If true the user can enter multiple values by pressing 'Enter' */
51
+ multi?: boolean | undefined;
52
+ /** The initial multi values */
53
+ multiValues?: string[] | undefined;
54
+ /** Maximum multi values */
55
+ maxMultiValues?: number | undefined;
56
+ /** A callback for when a Chip value is created */
57
+ onMultiValueCreate?: ((value?: string | undefined) => void) | undefined;
58
+ /** A callback for when a Chip value is deleted */
59
+ onMultiValueDelete?: ((value?: string | undefined) => void) | undefined;
60
+ /** A callback for when all values are deleted (the Clear All icon is clicked) */
61
+ onClearAllValues?: (() => void) | undefined;
38
62
  } & TextInputWrapperProps & Partial<Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">> & TestProps & React.RefAttributes<HTMLInputElement>>;
39
63
  export default TextField;
@@ -17,20 +17,24 @@ var _Label = _interopRequireDefault(require("../Label"));
17
17
 
18
18
  var _commons = require("./components/commons");
19
19
 
20
+ var _useMultiTextFieldUtils = _interopRequireDefault(require("./hooks/useMultiTextFieldUtils"));
21
+
22
+ var _MultiTextFieldBase = _interopRequireDefault(require("../MultiTextFieldBase/MultiTextFieldBase"));
23
+
20
24
  var _TextInputBase = _interopRequireDefault(require("../TextInputBase"));
21
25
 
22
26
  var _TextInputBase2 = require("../TextInputBase/TextInputBase.style");
23
27
 
24
28
  var _react2 = require("@emotion/react");
25
29
 
26
- var _excluded = ["id", "rightIcon", "leftIcon", "label", "placeholder", "required", "disabled", "locked", "size", "dark", "lean", "hintMsg", "styleType", "readOnly", "status", "hasMinWidthCompat"];
30
+ var _excluded = ["id", "rightIcon", "leftIcon", "label", "placeholder", "required", "disabled", "locked", "size", "dark", "lean", "hintMsg", "styleType", "readOnly", "status", "hasMinWidthCompat", "onInput", "multi", "multiValues", "maxMultiValues", "onMultiValueCreate", "onMultiValueDelete", "onClearAllValues"];
27
31
 
28
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
29
33
 
30
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
31
-
32
34
  function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
33
35
 
36
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
37
+
34
38
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
35
39
 
36
40
  console.warn('Deprecation warning! min-width will be removed from the component in v5 of ictinus. ' + 'hasMinWidthCompat prop has been added to temporarily disable min-width when necessary');
@@ -41,7 +45,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
41
45
  } : {
42
46
  name: "1rlc0zw-TextField",
43
47
  styles: "width:100% ;label:TextField;",
44
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RleHRGaWVsZC9UZXh0RmllbGQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThFZSIsImZpbGUiOiIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UZXh0RmllbGQvVGV4dEZpZWxkLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1c2VUaGVtZSBmcm9tICdob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgb21pdCBmcm9tICdsb2Rhc2gvb21pdCc7XG5pbXBvcnQgUmVhY3QsIHsgSW5wdXRIVE1MQXR0cmlidXRlcywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgREVGQVVMVF9TSVpFIH0gZnJvbSAndXRpbHMvc2l6ZS11dGlscyc7XG5cbmltcG9ydCB7IFRlc3RQcm9wcyB9IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVzJztcbmltcG9ydCBJY29uIGZyb20gJy4uL0ljb24nO1xuaW1wb3J0IExhYmVsIGZyb20gJy4uL0xhYmVsJztcbmltcG9ydCB7IEljb25XcmFwcGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbW1vbnMnO1xuaW1wb3J0IHsgQWNjZXB0ZWRJY29uTmFtZXMgfSBmcm9tICdjb21wb25lbnRzL0ljb24vdHlwZXMnO1xuaW1wb3J0IFRleHRJbnB1dEJhc2UsIHsgUHJvcHMgYXMgVGV4dElucHV0V3JhcHBlclByb3BzIH0gZnJvbSAnY29tcG9uZW50cy9UZXh0SW5wdXRCYXNlJztcbmltcG9ydCB7IGlucHV0U3R5bGUgfSBmcm9tICdjb21wb25lbnRzL1RleHRJbnB1dEJhc2UvVGV4dElucHV0QmFzZS5zdHlsZSc7XG5cbmV4cG9ydCB0eXBlIFByb3BzID0ge1xuICAvKiogVGhlIGlkIG9mIHRoZSB0ZXh0IGZpZWxkIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZvciBpbiBsYWJlbCB0b28gKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIC8qKiBDYWxsYmFjayBmaXJlZCB3aGVuIHRoZSBgaW5wdXRgIGlzIGJsdXJyZWQuICovXG4gIG9uQmx1cj86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50PjtcbiAgLyoqIENhbGxiYWNrIGZpcmVkIHdoZW4gdGhlIGBpbnB1dGAgaXMgY2hhbmdlZC4gKi9cbiAgb25DaGFuZ2U/OiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudCB8IEhUTUxJbnB1dEVsZW1lbnQ+O1xuICAvKiogQ2FsbGJhY2sgZmlyZWQgd2hlbiB0aGUgYGlucHV0YCBpcyBmb2N1c2VkLiAqL1xuICBvbkZvY3VzPzogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuICAvKiogQ2FsbGJhY2sgZmlyZWQgd2hlbiB0aGUgYGlucHV0YCBoYXMgYSBrZXkgZG93biBldmVudC4gKi9cbiAgb25LZXlEb3duPzogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudCB8IEhUTUxJbnB1dEVsZW1lbnQ+O1xuICAvKiogQ2FsbGJhY2sgZmlyZWQgd2hlbiB0aGUgYGlucHV0YCB2YWx1ZSB0eXBlZCBpcyBjaGFuZ2VkICovXG4gIG9uSW5wdXQ/OiBSZWFjdC5FdmVudEhhbmRsZXI8YW55PjtcbiAgLyoqIEBkZXByZWNhdGVkIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHByb3AgdGhhdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgdmVyc2lvbiwgYWxvbmcgd2l0aCB0aGUgbWluLXdpZHRoIHZhbHVlXG4gICAqIG9mIHRoZSBUZXh0RmllbGQuIEl0IHdpbGwgYmUgcmVwbGFjZWQgYnkgYSBmdWxsV2lkdGggcHJvcC4gKi9cbiAgaGFzTWluV2lkdGhDb21wYXQ/OiBib29sZWFuO1xufSAmIFRleHRJbnB1dFdyYXBwZXJQcm9wcztcblxuZXhwb3J0IHR5cGUgSW5wdXRQcm9wcyA9IFBhcnRpYWw8T21pdDxJbnB1dEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+LCAnc2l6ZSc+PjtcblxuY29uc29sZS53YXJuKFxuICAnRGVwcmVjYXRpb24gd2FybmluZyEgbWluLXdpZHRoIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBjb21wb25lbnQgaW4gdjUgb2YgaWN0aW51cy4gJyArXG4gICAgJ2hhc01pbldpZHRoQ29tcGF0IHByb3AgaGFzIGJlZW4gYWRkZWQgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSBtaW4td2lkdGggd2hlbiBuZWNlc3NhcnknXG4pO1xuXG5jb25zdCBUZXh0RmllbGQgPSBSZWFjdC5mb3J3YXJkUmVmPEhUTUxJbnB1dEVsZW1lbnQsIFByb3BzICYgSW5wdXRQcm9wcyAmIFRlc3RQcm9wcz4oXG4gIChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgaWQgPSB1bmRlZmluZWQsXG4gICAgICByaWdodEljb24gPSBudWxsLFxuICAgICAgbGVmdEljb24gPSBudWxsLFxuICAgICAgbGFiZWwsXG4gICAgICBwbGFjZWhvbGRlciA9ICcnLFxuICAgICAgcmVxdWlyZWQgPSBmYWxzZSxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgbG9ja2VkID0gZmFsc2UsXG4gICAgICBzaXplID0gREVGQVVMVF9TSVpFLFxuICAgICAgZGFyayA9IGZhbHNlLFxuICAgICAgbGVhbixcbiAgICAgIGhpbnRNc2c6IF9faGludE1zZyxcbiAgICAgIHN0eWxlVHlwZTogX19zdHlsZVR5cGUsXG4gICAgICByZWFkT25seSxcbiAgICAgIHN0YXR1cyxcbiAgICAgIGhhc01pbldpZHRoQ29tcGF0ID0gdHJ1ZSxcbiAgICAgIC4uLnJlc3RcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChpY29uOiBBY2NlcHRlZEljb25OYW1lcyB8IEpTWC5FbGVtZW50IHwgbnVsbCkgPT5cbiAgICAgIGljb24gPyAoXG4gICAgICAgIHR5cGVvZiBpY29uID09PSAnc3RyaW5nJyA/IChcbiAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgbmFtZT17aWNvbiBhcyBBY2NlcHRlZEljb25OYW1lc31cbiAgICAgICAgICAgIHNpemU9ezI0fVxuICAgICAgICAgICAgY29sb3I9e3RoZW1lLnV0aWxzLmdldENvbG9yKCdsaWdodEdyZXknLCA2NTApfVxuICAgICAgICAgIC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgaWNvblxuICAgICAgICApXG4gICAgICApIDogbnVsbDtcblxuICAgIHJldHVybiAoXG4gICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgIDxUZXh0SW5wdXRCYXNlIHsuLi5wcm9wc30gaGFzTWluV2lkdGhDb21wYXQ9e2hhc01pbldpZHRoQ29tcGF0fT5cbiAgICAgICAgICB7bGVmdEljb24gJiYgPEljb25XcmFwcGVyIGljb25Qb3NpdGlvbj17J2xlZnQnfT57Z2V0SWNvbihsZWZ0SWNvbil9PC9JY29uV3JhcHBlcj59XG4gICAgICAgICAgPGRpdiBjc3M9e3sgd2lkdGg6ICcxMDAlICcgfX0+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgICBjc3M9e2lucHV0U3R5bGUoeyBsYWJlbCwgcGxhY2Vob2xkZXIsIHNpemUsIGRhcmssIGxlYW4gfSl9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXshbGFiZWwgJiYgcGxhY2Vob2xkZXIgPyBgJHtwbGFjZWhvbGRlcn0gJHtyZXF1aXJlZCA/ICcqJyA6ICcnfWAgOiBsYWJlbH1cbiAgICAgICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZCB8fCBsb2NrZWR9XG4gICAgICAgICAgICAgIHsuLi5vbWl0KHJlc3QsICdkYXRhVGVzdElkJyl9XG4gICAgICAgICAgICAgIHJlZj17cmVmfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYWJlbCAmJiAoXG4gICAgICAgICAgICAgIDxMYWJlbFxuICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgaHRtbEZvcj17aWR9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICAgICAgICBhbmltYXRlVG9Ub3A9e0Jvb2xlYW4ocmVzdC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgZXJyb3I9e3N0YXR1cyA9PT0gJ2Vycm9yJ31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAge3JpZ2h0SWNvbiAmJiAhbG9ja2VkICYmIChcbiAgICAgICAgICAgIDxJY29uV3JhcHBlciBpY29uUG9zaXRpb249eydyaWdodCd9PntnZXRJY29uKHJpZ2h0SWNvbil9PC9JY29uV3JhcHBlcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtsb2NrZWQgJiYgKFxuICAgICAgICAgICAgPEljb25XcmFwcGVyIGljb25Qb3NpdGlvbj17J3JpZ2h0J30+XG4gICAgICAgICAgICAgIDxJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cImxvY2tcIlxuICAgICAgICAgICAgICAgIHNpemU9e3NpemUgPT09ICdtZCcgPyAyMCA6IDE2fVxuICAgICAgICAgICAgICAgIGNvbG9yPXt0aGVtZS51dGlscy5nZXRDb2xvcignbGlnaHRHcmV5JywgNjUwKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvSWNvbldyYXBwZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9UZXh0SW5wdXRCYXNlPlxuICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICApO1xuICB9XG4pO1xuXG5UZXh0RmllbGQuZGlzcGxheU5hbWUgPSAnVGV4dEZpZWxkJztcblxuZXhwb3J0IGRlZmF1bHQgVGV4dEZpZWxkO1xuIl19 */",
48
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RleHRGaWVsZC9UZXh0RmllbGQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdJZSIsImZpbGUiOiIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UZXh0RmllbGQvVGV4dEZpZWxkLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1c2VUaGVtZSBmcm9tICdob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgb21pdCBmcm9tICdsb2Rhc2gvb21pdCc7XG5pbXBvcnQgUmVhY3QsIHsgSW5wdXRIVE1MQXR0cmlidXRlcyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IERFRkFVTFRfU0laRSB9IGZyb20gJ3V0aWxzL3NpemUtdXRpbHMnO1xuXG5pbXBvcnQgeyBUZXN0UHJvcHMgfSBmcm9tICcuLi8uLi91dGlscy90eXBlcyc7XG5pbXBvcnQgSWNvbiBmcm9tICcuLi9JY29uJztcbmltcG9ydCBMYWJlbCBmcm9tICcuLi9MYWJlbCc7XG5pbXBvcnQgeyBJY29uV3JhcHBlciB9IGZyb20gJy4vY29tcG9uZW50cy9jb21tb25zJztcbmltcG9ydCB1c2VNdWx0aVRleHRGaWVsZFV0aWxzIGZyb20gJy4vaG9va3MvdXNlTXVsdGlUZXh0RmllbGRVdGlscyc7XG5pbXBvcnQgeyBBY2NlcHRlZEljb25OYW1lcyB9IGZyb20gJ2NvbXBvbmVudHMvSWNvbi90eXBlcyc7XG5pbXBvcnQgTXVsdGlUZXh0RmllbGRCYXNlIGZyb20gJ2NvbXBvbmVudHMvTXVsdGlUZXh0RmllbGRCYXNlL011bHRpVGV4dEZpZWxkQmFzZSc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICdjb21wb25lbnRzL1NlbGVjdC9TZWxlY3QnO1xuaW1wb3J0IFRleHRJbnB1dEJhc2UsIHsgUHJvcHMgYXMgVGV4dElucHV0V3JhcHBlclByb3BzIH0gZnJvbSAnY29tcG9uZW50cy9UZXh0SW5wdXRCYXNlJztcbmltcG9ydCB7IGlucHV0U3R5bGUgfSBmcm9tICdjb21wb25lbnRzL1RleHRJbnB1dEJhc2UvVGV4dElucHV0QmFzZS5zdHlsZSc7XG5cbmV4cG9ydCB0eXBlIFByb3BzID0ge1xuICAvKiogVGhlIGlkIG9mIHRoZSB0ZXh0IGZpZWxkIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZvciBpbiBsYWJlbCB0b28gKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIC8qKiBDYWxsYmFjayBmaXJlZCB3aGVuIHRoZSBgaW5wdXRgIGlzIGJsdXJyZWQuICovXG4gIG9uQmx1cj86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50PjtcbiAgLyoqIENhbGxiYWNrIGZpcmVkIHdoZW4gdGhlIGBpbnB1dGAgaXMgY2hhbmdlZC4gKi9cbiAgb25DaGFuZ2U/OiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudCB8IEhUTUxJbnB1dEVsZW1lbnQ+O1xuICAvKiogQ2FsbGJhY2sgZmlyZWQgd2hlbiB0aGUgYGlucHV0YCBpcyBmb2N1c2VkLiAqL1xuICBvbkZvY3VzPzogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuICAvKiogQ2FsbGJhY2sgZmlyZWQgd2hlbiB0aGUgYGlucHV0YCBoYXMgYSBrZXkgZG93biBldmVudC4gKi9cbiAgb25LZXlEb3duPzogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudCB8IEhUTUxJbnB1dEVsZW1lbnQ+O1xuICAvKiogQ2FsbGJhY2sgZmlyZWQgd2hlbiB0aGUgYGlucHV0YCB2YWx1ZSB0eXBlZCBpcyBjaGFuZ2VkICovXG4gIG9uSW5wdXQ/OiBSZWFjdC5FdmVudEhhbmRsZXI8YW55PjtcbiAgLyoqIEBkZXByZWNhdGVkIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHByb3AgdGhhdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgdmVyc2lvbiwgYWxvbmcgd2l0aCB0aGUgbWluLXdpZHRoIHZhbHVlXG4gICAqIG9mIHRoZSBUZXh0RmllbGQuIEl0IHdpbGwgYmUgcmVwbGFjZWQgYnkgYSBmdWxsV2lkdGggcHJvcC4gKi9cbiAgaGFzTWluV2lkdGhDb21wYXQ/OiBib29sZWFuO1xuICAvKiogSWYgdHJ1ZSB0aGUgdXNlciBjYW4gZW50ZXIgbXVsdGlwbGUgdmFsdWVzIGJ5IHByZXNzaW5nICdFbnRlcicgKi9cbiAgbXVsdGk/OiBib29sZWFuO1xuICAvKiogVGhlIGluaXRpYWwgbXVsdGkgdmFsdWVzICovXG4gIG11bHRpVmFsdWVzPzogc3RyaW5nW107XG4gIC8qKiBNYXhpbXVtIG11bHRpIHZhbHVlcyAqL1xuICBtYXhNdWx0aVZhbHVlcz86IG51bWJlcjtcbiAgLyoqIEEgY2FsbGJhY2sgZm9yIHdoZW4gYSBDaGlwIHZhbHVlIGlzIGNyZWF0ZWQgKi9cbiAgb25NdWx0aVZhbHVlQ3JlYXRlPzogKHZhbHVlPzogc3RyaW5nKSA9PiB2b2lkO1xuICAvKiogQSBjYWxsYmFjayBmb3Igd2hlbiBhIENoaXAgdmFsdWUgaXMgZGVsZXRlZCAqL1xuICBvbk11bHRpVmFsdWVEZWxldGU/OiAodmFsdWU/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIC8qKiBBIGNhbGxiYWNrIGZvciB3aGVuIGFsbCB2YWx1ZXMgYXJlIGRlbGV0ZWQgKHRoZSBDbGVhciBBbGwgaWNvbiBpcyBjbGlja2VkKSAqL1xuICBvbkNsZWFyQWxsVmFsdWVzPzogKCkgPT4gdm9pZDtcbn0gJiBUZXh0SW5wdXRXcmFwcGVyUHJvcHM7XG5cbmV4cG9ydCB0eXBlIElucHV0UHJvcHMgPSBQYXJ0aWFsPE9taXQ8SW5wdXRIVE1MQXR0cmlidXRlczxIVE1MSW5wdXRFbGVtZW50PiwgJ3NpemUnPj47XG5cbmNvbnNvbGUud2FybihcbiAgJ0RlcHJlY2F0aW9uIHdhcm5pbmchIG1pbi13aWR0aCB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgY29tcG9uZW50IGluIHY1IG9mIGljdGludXMuICcgK1xuICAgICdoYXNNaW5XaWR0aENvbXBhdCBwcm9wIGhhcyBiZWVuIGFkZGVkIHRvIHRlbXBvcmFyaWx5IGRpc2FibGUgbWluLXdpZHRoIHdoZW4gbmVjZXNzYXJ5J1xuKTtcblxuY29uc3QgVGV4dEZpZWxkID0gUmVhY3QuZm9yd2FyZFJlZjxIVE1MSW5wdXRFbGVtZW50LCBQcm9wcyAmIElucHV0UHJvcHMgJiBUZXN0UHJvcHM+KFxuICAocHJvcHMsIHJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGlkID0gdW5kZWZpbmVkLFxuICAgICAgcmlnaHRJY29uID0gbnVsbCxcbiAgICAgIGxlZnRJY29uID0gbnVsbCxcbiAgICAgIGxhYmVsLFxuICAgICAgcGxhY2Vob2xkZXIgPSAnJyxcbiAgICAgIHJlcXVpcmVkID0gZmFsc2UsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGxvY2tlZCA9IGZhbHNlLFxuICAgICAgc2l6ZSA9IERFRkFVTFRfU0laRSxcbiAgICAgIGRhcmsgPSBmYWxzZSxcbiAgICAgIGxlYW4sXG4gICAgICBoaW50TXNnOiBfX2hpbnRNc2csXG4gICAgICBzdHlsZVR5cGU6IF9fc3R5bGVUeXBlLFxuICAgICAgcmVhZE9ubHksXG4gICAgICBzdGF0dXMsXG4gICAgICBoYXNNaW5XaWR0aENvbXBhdCA9IHRydWUsXG4gICAgICBvbklucHV0LFxuICAgICAgbXVsdGkgPSBmYWxzZSxcbiAgICAgIG11bHRpVmFsdWVzID0gW10sXG4gICAgICBtYXhNdWx0aVZhbHVlcyxcbiAgICAgIG9uTXVsdGlWYWx1ZUNyZWF0ZSxcbiAgICAgIG9uTXVsdGlWYWx1ZURlbGV0ZSxcbiAgICAgIG9uQ2xlYXJBbGxWYWx1ZXMsXG4gICAgICAuLi5yZXN0XG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcblxuICAgIGNvbnN0IGdldEljb24gPSAoaWNvbjogQWNjZXB0ZWRJY29uTmFtZXMgfCBKU1guRWxlbWVudCB8IG51bGwpID0+XG4gICAgICBpY29uID8gKFxuICAgICAgICB0eXBlb2YgaWNvbiA9PT0gJ3N0cmluZycgPyAoXG4gICAgICAgICAgPEljb25cbiAgICAgICAgICAgIG5hbWU9e2ljb24gYXMgQWNjZXB0ZWRJY29uTmFtZXN9XG4gICAgICAgICAgICBzaXplPXsyNH1cbiAgICAgICAgICAgIGNvbG9yPXt0aGVtZS51dGlscy5nZXRDb2xvcignbGlnaHRHcmV5JywgNjUwKX1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIGljb25cbiAgICAgICAgKVxuICAgICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCB7XG4gICAgICBpbnB1dFZhbHVlLFxuICAgICAgdmFsdWVzLFxuICAgICAgaGFuZGxlVmFsdWVEZWxldGUsXG4gICAgICBoYW5kbGVDbGVhckFsbFZhbHVlcyxcbiAgICAgIGhhbmRsZUtleURvd24sXG4gICAgICBoYW5kbGVUeXBpbmcsXG4gICAgfSA9IHVzZU11bHRpVGV4dEZpZWxkVXRpbHMoe1xuICAgICAgbXVsdGlWYWx1ZXMsXG4gICAgICBtYXhNdWx0aVZhbHVlcyxcbiAgICAgIG9uTXVsdGlWYWx1ZUNyZWF0ZSxcbiAgICAgIG9uTXVsdGlWYWx1ZURlbGV0ZSxcbiAgICAgIG9uQ2xlYXJBbGxWYWx1ZXMsXG4gICAgICBvbklucHV0LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG11bHRpID8gKFxuICAgICAgPE11bHRpVGV4dEZpZWxkQmFzZVxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIGlzVGV4dGZpZWxkXG4gICAgICAgIG9uT3B0aW9uRGVsZXRlPXtoYW5kbGVWYWx1ZURlbGV0ZSBhcyAob3B0aW9uPzogc3RyaW5nIHwgU2VsZWN0T3B0aW9uKSA9PiB2b2lkfVxuICAgICAgICBvbkNsZWFyQWxsT3B0aW9ucz17aGFuZGxlQ2xlYXJBbGxWYWx1ZXN9XG4gICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgb25JbnB1dD17aGFuZGxlVHlwaW5nfVxuICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucz17dmFsdWVzfVxuICAgICAgICB2YWx1ZT17aW5wdXRWYWx1ZX1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgPFRleHRJbnB1dEJhc2Ugey4uLnByb3BzfSBoYXNNaW5XaWR0aENvbXBhdD17aGFzTWluV2lkdGhDb21wYXR9PlxuICAgICAgICAgIHtsZWZ0SWNvbiAmJiA8SWNvbldyYXBwZXIgaWNvblBvc2l0aW9uPXsnbGVmdCd9PntnZXRJY29uKGxlZnRJY29uKX08L0ljb25XcmFwcGVyPn1cbiAgICAgICAgICA8ZGl2IGNzcz17eyB3aWR0aDogJzEwMCUgJyB9fT5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICAgIGNzcz17aW5wdXRTdHlsZSh7IGxhYmVsLCBwbGFjZWhvbGRlciwgc2l6ZSwgZGFyaywgbGVhbiB9KX1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9eyFsYWJlbCAmJiBwbGFjZWhvbGRlciA/IGAke3BsYWNlaG9sZGVyfSAke3JlcXVpcmVkID8gJyonIDogJyd9YCA6IGxhYmVsfVxuICAgICAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IGxvY2tlZH1cbiAgICAgICAgICAgICAgb25JbnB1dD17b25JbnB1dH1cbiAgICAgICAgICAgICAgey4uLm9taXQocmVzdCwgJ2RhdGFUZXN0SWQnKX1cbiAgICAgICAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2xhYmVsICYmIChcbiAgICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICBodG1sRm9yPXtpZH1cbiAgICAgICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgICAgICAgIGFuaW1hdGVUb1RvcD17Qm9vbGVhbihyZXN0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICBlcnJvcj17c3RhdHVzID09PSAnZXJyb3InfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7cmlnaHRJY29uICYmICFsb2NrZWQgJiYgKFxuICAgICAgICAgICAgPEljb25XcmFwcGVyIGljb25Qb3NpdGlvbj17J3JpZ2h0J30+e2dldEljb24ocmlnaHRJY29uKX08L0ljb25XcmFwcGVyPlxuICAgICAgICAgICl9XG4gICAgICAgICAge2xvY2tlZCAmJiAoXG4gICAgICAgICAgICA8SWNvbldyYXBwZXIgaWNvblBvc2l0aW9uPXsncmlnaHQnfT5cbiAgICAgICAgICAgICAgPEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwibG9ja1wiXG4gICAgICAgICAgICAgICAgc2l6ZT17c2l6ZSA9PT0gJ21kJyA/IDIwIDogMTZ9XG4gICAgICAgICAgICAgICAgY29sb3I9e3RoZW1lLnV0aWxzLmdldENvbG9yKCdsaWdodEdyZXknLCA2NTApfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JY29uV3JhcHBlcj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1RleHRJbnB1dEJhc2U+XG4gICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICk7XG4gIH1cbik7XG5cblRleHRGaWVsZC5kaXNwbGF5TmFtZSA9ICdUZXh0RmllbGQnO1xuXG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGQ7XG4iXX0= */",
45
49
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
46
50
  };
47
51
 
@@ -71,6 +75,15 @@ var TextField = /*#__PURE__*/_react["default"].forwardRef(function (props, ref)
71
75
  status = props.status,
72
76
  _props$hasMinWidthCom = props.hasMinWidthCompat,
73
77
  hasMinWidthCompat = _props$hasMinWidthCom === void 0 ? true : _props$hasMinWidthCom,
78
+ onInput = props.onInput,
79
+ _props$multi = props.multi,
80
+ multi = _props$multi === void 0 ? false : _props$multi,
81
+ _props$multiValues = props.multiValues,
82
+ multiValues = _props$multiValues === void 0 ? [] : _props$multiValues,
83
+ maxMultiValues = props.maxMultiValues,
84
+ onMultiValueCreate = props.onMultiValueCreate,
85
+ onMultiValueDelete = props.onMultiValueDelete,
86
+ onClearAllValues = props.onClearAllValues,
74
87
  rest = _objectWithoutPropertiesLoose(props, _excluded);
75
88
 
76
89
  var theme = (0, _useTheme["default"])();
@@ -83,7 +96,31 @@ var TextField = /*#__PURE__*/_react["default"].forwardRef(function (props, ref)
83
96
  }) : icon : null;
84
97
  };
85
98
 
86
- return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_TextInputBase["default"], _extends({}, props, {
99
+ var _useMultiTextFieldUti = (0, _useMultiTextFieldUtils["default"])({
100
+ multiValues: multiValues,
101
+ maxMultiValues: maxMultiValues,
102
+ onMultiValueCreate: onMultiValueCreate,
103
+ onMultiValueDelete: onMultiValueDelete,
104
+ onClearAllValues: onClearAllValues,
105
+ onInput: onInput
106
+ }),
107
+ inputValue = _useMultiTextFieldUti.inputValue,
108
+ values = _useMultiTextFieldUti.values,
109
+ handleValueDelete = _useMultiTextFieldUti.handleValueDelete,
110
+ handleClearAllValues = _useMultiTextFieldUti.handleClearAllValues,
111
+ handleKeyDown = _useMultiTextFieldUti.handleKeyDown,
112
+ handleTyping = _useMultiTextFieldUti.handleTyping;
113
+
114
+ return multi ? (0, _react2.jsx)(_MultiTextFieldBase["default"], _extends({}, props, {
115
+ isTextfield: true,
116
+ onOptionDelete: handleValueDelete,
117
+ onClearAllOptions: handleClearAllValues,
118
+ label: label,
119
+ onInput: handleTyping,
120
+ onKeyDown: handleKeyDown,
121
+ selectedOptions: values,
122
+ value: inputValue
123
+ })) : (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_TextInputBase["default"], _extends({}, props, {
87
124
  hasMinWidthCompat: hasMinWidthCompat
88
125
  }), leftIcon && (0, _react2.jsx)(_commons.IconWrapper, {
89
126
  iconPosition: 'left'
@@ -101,7 +138,8 @@ var TextField = /*#__PURE__*/_react["default"].forwardRef(function (props, ref)
101
138
  placeholder: !label && placeholder ? placeholder + " " + (required ? '*' : '') : label,
102
139
  required: required,
103
140
  id: id,
104
- disabled: disabled || locked
141
+ disabled: disabled || locked,
142
+ onInput: onInput
105
143
  }, (0, _omit["default"])(rest, 'dataTestId'), {
106
144
  ref: ref
107
145
  })), label && (0, _react2.jsx)(_Label["default"], {
@@ -0,0 +1,11 @@
1
+ import { Props as TextFieldProps } from '../TextField';
2
+ declare type Props = Pick<TextFieldProps, 'multiValues' | 'maxMultiValues' | 'onMultiValueCreate' | 'onMultiValueDelete' | 'onClearAllValues' | 'onInput'>;
3
+ declare const useMultiTextFieldUtils: ({ multiValues, maxMultiValues, onMultiValueCreate, onMultiValueDelete, onClearAllValues, onInput, }: Props) => {
4
+ values: string[];
5
+ handleValueDelete: (option?: string | undefined) => void;
6
+ handleClearAllValues: () => void;
7
+ handleKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
8
+ handleTyping: (event: React.ChangeEvent<HTMLInputElement>) => void;
9
+ inputValue: string;
10
+ };
11
+ export default useMultiTextFieldUtils;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _react = require("react");
7
+
8
+ var useMultiTextFieldUtils = function useMultiTextFieldUtils(_ref) {
9
+ var _ref$multiValues = _ref.multiValues,
10
+ multiValues = _ref$multiValues === void 0 ? [] : _ref$multiValues,
11
+ maxMultiValues = _ref.maxMultiValues,
12
+ onMultiValueCreate = _ref.onMultiValueCreate,
13
+ onMultiValueDelete = _ref.onMultiValueDelete,
14
+ onClearAllValues = _ref.onClearAllValues,
15
+ onInput = _ref.onInput;
16
+
17
+ var _useState = (0, _react.useState)(multiValues),
18
+ values = _useState[0],
19
+ setValues = _useState[1];
20
+
21
+ var _useState2 = (0, _react.useState)(''),
22
+ inputValue = _useState2[0],
23
+ setInputValue = _useState2[1];
24
+
25
+ var handleValueDelete = function handleValueDelete(option) {
26
+ if (option) {
27
+ setValues(values.filter(function (opt) {
28
+ return opt !== option;
29
+ }));
30
+
31
+ if (onMultiValueDelete) {
32
+ onMultiValueDelete(option);
33
+ }
34
+ } else {
35
+ if (values.length > 0) {
36
+ var lastItem = values[values.length - 1];
37
+ setValues(values.filter(function (opt) {
38
+ return opt !== lastItem;
39
+ }));
40
+ }
41
+ }
42
+ };
43
+
44
+ var handleClearAllValues = function handleClearAllValues() {
45
+ setValues([]);
46
+ setInputValue('');
47
+
48
+ if (onClearAllValues) {
49
+ onClearAllValues();
50
+ }
51
+ };
52
+
53
+ var handleTyping = function handleTyping(event) {
54
+ setInputValue(event.target.value);
55
+
56
+ if (onInput) {
57
+ onInput(event);
58
+ }
59
+ };
60
+
61
+ var handleKeyDown = function handleKeyDown(event) {
62
+ if (maxMultiValues && values.length >= maxMultiValues) {
63
+ event.preventDefault();
64
+ return;
65
+ }
66
+
67
+ if (event.key === 'Enter') {
68
+ if (inputValue === '') {
69
+ event.preventDefault();
70
+ }
71
+
72
+ setValues([].concat(values, [inputValue]));
73
+
74
+ if (onMultiValueCreate) {
75
+ onMultiValueCreate(inputValue);
76
+ }
77
+
78
+ setInputValue('');
79
+ } else if (event.key === 'Backspace') {
80
+ if (inputValue === '') {
81
+ handleValueDelete();
82
+ }
83
+ }
84
+ };
85
+
86
+ return {
87
+ values: values,
88
+ handleValueDelete: handleValueDelete,
89
+ handleClearAllValues: handleClearAllValues,
90
+ handleKeyDown: handleKeyDown,
91
+ handleTyping: handleTyping,
92
+ inputValue: inputValue
93
+ };
94
+ };
95
+
96
+ var _default = useMultiTextFieldUtils;
97
+ exports["default"] = _default;
@@ -4,6 +4,7 @@ export declare const SM = "sm";
4
4
  export declare const MD_HEIGHT = 46;
5
5
  export declare const SM_HEIGHT = 28;
6
6
  export declare const MIN_WIDTH = 150;
7
+ export declare const MULTI_WIDTH = 220;
7
8
  export declare const textInputSizes: readonly ["md", "sm"];
8
9
  export declare const textInputStates: readonly ["default", "pressed", "error"];
9
10
  declare type TextInputType = {
@@ -11,9 +12,9 @@ declare type TextInputType = {
11
12
  border: {
12
13
  width: number;
13
14
  color: {
14
- [key in (typeof textInputStates)[number]]: {
15
- name: (typeof flatColors)[number];
16
- shade: (typeof colorShades)[number];
15
+ [key in typeof textInputStates[number]]: {
16
+ name: typeof flatColors[number];
17
+ shade: typeof colorShades[number];
17
18
  };
18
19
  };
19
20
  };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.textInputConfig = exports.textInputStates = exports.textInputSizes = exports.MIN_WIDTH = exports.SM_HEIGHT = exports.MD_HEIGHT = exports.SM = exports.MD = void 0;
4
+ exports.textInputConfig = exports.textInputStates = exports.textInputSizes = exports.MULTI_WIDTH = exports.MIN_WIDTH = exports.SM_HEIGHT = exports.MD_HEIGHT = exports.SM = exports.MD = void 0;
5
5
  var MD = 'md';
6
6
  exports.MD = MD;
7
7
  var SM = 'sm';
@@ -12,6 +12,8 @@ var SM_HEIGHT = 28;
12
12
  exports.SM_HEIGHT = SM_HEIGHT;
13
13
  var MIN_WIDTH = 150;
14
14
  exports.MIN_WIDTH = MIN_WIDTH;
15
+ var MULTI_WIDTH = 220;
16
+ exports.MULTI_WIDTH = MULTI_WIDTH;
15
17
  var textInputSizes = [MD, SM];
16
18
  exports.textInputSizes = textInputSizes;
17
19
  var textInputStates = ['default', 'pressed', 'error'];
@@ -2,9 +2,10 @@ import { Theme } from '../theme';
2
2
  declare type Size = 'md' | 'sm';
3
3
  export declare const DEFAULT_SIZE: Size;
4
4
  export declare const getTextFieldHeight: (size?: Size | undefined) => string;
5
- export declare const getTextFieldSize: (hasMinWidthCompat?: boolean, size?: Size | undefined) => {
5
+ export declare const getTextFieldSize: (hasMinWidthCompat?: boolean, size?: Size | undefined, multi?: boolean) => {
6
6
  minWidth?: string;
7
7
  height: string;
8
+ width?: string;
8
9
  };
9
10
  export declare const getSpacingBySize: (size: Size, theme: Theme) => string;
10
11
  export {};
@@ -7,6 +7,8 @@ var _polished = require("polished");
7
7
 
8
8
  var _config = require("../components/TextInputBase/config");
9
9
 
10
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
11
+
10
12
  var DEFAULT_SIZE = 'md';
11
13
  exports.DEFAULT_SIZE = DEFAULT_SIZE;
12
14
 
@@ -38,21 +40,27 @@ var getTextFieldWidth = function getTextFieldWidth(size) {
38
40
  }
39
41
  };
40
42
 
41
- var getTextFieldSize = function getTextFieldSize(hasMinWidthCompat, size) {
43
+ var getTextFieldSize = function getTextFieldSize(hasMinWidthCompat, size, multi) {
42
44
  if (hasMinWidthCompat === void 0) {
43
45
  hasMinWidthCompat = true;
44
46
  }
45
47
 
48
+ if (multi === void 0) {
49
+ multi = false;
50
+ }
51
+
46
52
  if (!hasMinWidthCompat) {
47
53
  return {
48
54
  height: getTextFieldHeight(size)
49
55
  };
50
56
  }
51
57
 
52
- return {
58
+ return _extends({
53
59
  minWidth: getTextFieldWidth(size),
54
60
  height: getTextFieldHeight(size)
55
- };
61
+ }, multi ? {
62
+ width: (0, _polished.rem)(_config.MULTI_WIDTH)
63
+ } : {});
56
64
  };
57
65
 
58
66
  exports.getTextFieldSize = getTextFieldSize;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orfium/ictinus",
3
- "version": "4.66.0",
3
+ "version": "4.67.1",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "license": "MIT",
@@ -84,6 +84,7 @@
84
84
  "styled-components": "^5.2.0",
85
85
  "ts-jest": "^26.5.6",
86
86
  "ts-loader": "^9.1.2",
87
+ "tsc-watch": "^5.0.3",
87
88
  "typedoc": "^0.22.12",
88
89
  "typescript": "4.2.4",
89
90
  "url-loader": "^4.1.0"
@@ -129,6 +130,8 @@
129
130
  "build:lib": "yarn build:partial:style && yarn build:partial:nostyle && yarn build:partial:types",
130
131
  "build": "build-storybook -o build/",
131
132
  "lint": "eslint './src/**/*.{ts,tsx}'",
133
+ "yalc:watch": "tsc-watch --noClear -p ./tsconfig.json --onSuccess \"yarn yalc:push\"",
134
+ "yalc:push": "yalc publish --push",
132
135
  "test": "jest",
133
136
  "test:watch": "jest --watch",
134
137
  "test:update": "jest -u",
@@ -1,23 +0,0 @@
1
- import React from 'react';
2
- import { TestProps } from 'utils/types';
3
- import { SelectOption } from 'components/Select/Select';
4
- import { Props as TextFieldProps } from 'components/TextField/TextField';
5
- declare const MultiSelectBase: React.ForwardRefExoticComponent<{
6
- /** the values of the MultiSelect if MultiSelect is controlled */
7
- selectedOptions?: SelectOption[] | undefined;
8
- /** Callback fired when the `input` value typed is changed */
9
- onInput?: ((event: any) => void) | undefined;
10
- /** Value of the `input` element */
11
- value?: string | number | undefined;
12
- /** Callback fired when the Delete button of each Chip is clicked */
13
- onOptionDelete: (option?: SelectOption | undefined) => void;
14
- /** Callback fired when the Delete button of the whole MultiSelect is clicked */
15
- onClearAllOptions: () => void;
16
- /** If the component is loading */
17
- isLoading?: boolean | undefined;
18
- /** Whether the Textfield should change its styles when hovered/focused etc */
19
- isInteractive?: boolean | undefined;
20
- /** If true, the TextField has a dynamic width, bounded by max and min width values */
21
- isResponsive?: boolean | undefined;
22
- } & Omit<TextFieldProps, "size"> & Partial<Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">> & TestProps & React.RefAttributes<HTMLInputElement>>;
23
- export default MultiSelectBase;