@laerdal/life-react-components 1.7.0-dev.7.full → 1.7.0-dev.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 (82) hide show
  1. package/dist/Chips/ActionChip.cjs +4 -4
  2. package/dist/Chips/ActionChip.cjs.map +1 -1
  3. package/dist/Chips/ActionChip.js +4 -4
  4. package/dist/Chips/ActionChip.js.map +1 -1
  5. package/dist/Chips/ChipStyles.cjs +3 -15
  6. package/dist/Chips/ChipStyles.cjs.map +1 -1
  7. package/dist/Chips/ChipStyles.d.ts +0 -3
  8. package/dist/Chips/ChipStyles.js +2 -5
  9. package/dist/Chips/ChipStyles.js.map +1 -1
  10. package/dist/Chips/ChipTypes.d.ts +6 -18
  11. package/dist/Chips/ChoiceChips.cjs +2 -2
  12. package/dist/Chips/ChoiceChips.cjs.map +1 -1
  13. package/dist/Chips/ChoiceChips.js +2 -2
  14. package/dist/Chips/ChoiceChips.js.map +1 -1
  15. package/dist/Chips/FilterChip.cjs +3 -3
  16. package/dist/Chips/FilterChip.cjs.map +1 -1
  17. package/dist/Chips/FilterChip.js +3 -3
  18. package/dist/Chips/FilterChip.js.map +1 -1
  19. package/dist/Chips/InputChip.cjs +4 -4
  20. package/dist/Chips/InputChip.cjs.map +1 -1
  21. package/dist/Chips/InputChip.js +4 -4
  22. package/dist/Chips/InputChip.js.map +1 -1
  23. package/dist/Chips/index.cjs +1 -1
  24. package/dist/Chips/index.cjs.map +1 -1
  25. package/dist/Chips/index.d.ts +1 -1
  26. package/dist/Chips/index.js +1 -1
  27. package/dist/Chips/index.js.map +1 -1
  28. package/dist/ChipsInput/ChipDropdownInput.cjs +398 -0
  29. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -0
  30. package/dist/ChipsInput/ChipDropdownInput.d.ts +22 -0
  31. package/dist/ChipsInput/ChipDropdownInput.js +382 -0
  32. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -0
  33. package/dist/ChipsInput/ChipInput.cjs +141 -0
  34. package/dist/ChipsInput/ChipInput.cjs.map +1 -0
  35. package/dist/{Chips → ChipsInput}/ChipInput.d.ts +1 -4
  36. package/dist/ChipsInput/ChipInput.js +122 -0
  37. package/dist/ChipsInput/ChipInput.js.map +1 -0
  38. package/dist/ChipsInput/ChipInputField.cjs +193 -0
  39. package/dist/ChipsInput/ChipInputField.cjs.map +1 -0
  40. package/dist/ChipsInput/ChipInputField.d.ts +24 -0
  41. package/dist/ChipsInput/ChipInputField.js +158 -0
  42. package/dist/ChipsInput/ChipInputField.js.map +1 -0
  43. package/dist/ChipsInput/ChipInputTypes.cjs +6 -0
  44. package/dist/ChipsInput/ChipInputTypes.cjs.map +1 -0
  45. package/dist/ChipsInput/ChipInputTypes.d.ts +22 -0
  46. package/dist/ChipsInput/ChipInputTypes.js +2 -0
  47. package/dist/ChipsInput/ChipInputTypes.js.map +1 -0
  48. package/dist/ChipsInput/index.cjs +19 -0
  49. package/dist/ChipsInput/index.cjs.map +1 -0
  50. package/dist/ChipsInput/index.d.ts +1 -0
  51. package/dist/ChipsInput/index.js +2 -0
  52. package/dist/ChipsInput/index.js.map +1 -0
  53. package/dist/Dropdown/DropdownContent.cjs +14 -21
  54. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  55. package/dist/Dropdown/DropdownContent.js +14 -21
  56. package/dist/Dropdown/DropdownContent.js.map +1 -1
  57. package/dist/Dropdown/index.cjs +0 -8
  58. package/dist/Dropdown/index.cjs.map +1 -1
  59. package/dist/Dropdown/index.d.ts +1 -2
  60. package/dist/Dropdown/index.js +1 -2
  61. package/dist/Dropdown/index.js.map +1 -1
  62. package/dist/InputFields/styling.cjs.map +1 -1
  63. package/dist/InputFields/styling.js.map +1 -1
  64. package/dist/Tabs/TabLink.cjs +46 -46
  65. package/dist/Tabs/TabLink.cjs.map +1 -1
  66. package/dist/Tabs/TabLink.js +45 -46
  67. package/dist/Tabs/TabLink.js.map +1 -1
  68. package/dist/index.cjs +14 -0
  69. package/dist/index.cjs.map +1 -1
  70. package/dist/index.d.ts +1 -0
  71. package/dist/index.js +1 -0
  72. package/dist/index.js.map +1 -1
  73. package/package.json +1 -1
  74. package/dist/Chips/ChipInput.cjs +0 -199
  75. package/dist/Chips/ChipInput.cjs.map +0 -1
  76. package/dist/Chips/ChipInput.js +0 -182
  77. package/dist/Chips/ChipInput.js.map +0 -1
  78. package/dist/Dropdown/ChipDropdownInput.cjs +0 -431
  79. package/dist/Dropdown/ChipDropdownInput.cjs.map +0 -1
  80. package/dist/Dropdown/ChipDropdownInput.d.ts +0 -24
  81. package/dist/Dropdown/ChipDropdownInput.js +0 -418
  82. package/dist/Dropdown/ChipDropdownInput.js.map +0 -1
@@ -50,14 +50,14 @@ var InputChip = function InputChip(_ref) {
50
50
  return /*#__PURE__*/_jsx(_Fragment, {
51
51
  children: /*#__PURE__*/_jsx(ChipContainer, {
52
52
  ref: containerRef,
53
- className: "".concat(size, " ").concat(disabled ? 'disabled' : '', " ").concat(variant),
54
- tabIndex: disabled ? -1 : 0,
53
+ className: "".concat(size, " ").concat(disabled ? 'disabled' : '', " ").concat(variant, " ").concat(!!_onClick ? 'interactive' : ''),
54
+ tabIndex: disabled || !_onClick ? -1 : 0,
55
55
  onMouseDown: defaultOnMouseDownHandler,
56
56
  onKeyDown: function onKeyDown(e) {
57
- return e.key === 'Enter' && _onClick();
57
+ return e.key === 'Enter' && _onClick && _onClick();
58
58
  },
59
59
  onClick: function onClick() {
60
- return _onClick();
60
+ return _onClick && _onClick();
61
61
  },
62
62
  children: /*#__PURE__*/_jsx(ChipContentContainer, {
63
63
  children: /*#__PURE__*/_jsxs(ChipContent, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Chips/InputChip.tsx"],"names":["React","SystemIcons","icons","ChipContainer","ChipContent","ChipContentContainer","defaultOnMouseDownHandler","useActionWithin","InputChip","icon","text","variant","size","disabled","onClick","disableRemove","onRemove","containerRef","useRef","removeRef","onRemoveClick","event","stopPropagation","e","key","className"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {SystemIcons, SystemIcons as icons} from '../icons/index';\nimport {IconButton} from '../Button/index';\nimport {Size} from '../types';\n\n/**\n * Import custom styles.\n */\nimport {ChipContainer, ChipContent, ChipContentContainer} from './ChipStyles';\n\n/**\n * Import custom types.\n */\nimport {InputChipProps} from './ChipTypes';\nimport {defaultOnMouseDownHandler, useActionWithin} from '../common';\n\nconst InputChip: React.FunctionComponent<InputChipProps> = ({\n icon,\n text,\n variant,\n size,\n disabled,\n onClick,\n disableRemove,\n onRemove\n }: InputChipProps) => {\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const removeRef = React.useRef<HTMLDivElement>(null);\n\n useActionWithin(containerRef, [removeRef]);\n\n /**\n * Calls onRemove action when remove button is clicked.\n * @param event - Event handler from the button click.\n */\n const onRemoveClick = (event?: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent) => {\n !!event && event.stopPropagation();\n onRemove();\n };\n\n /**\n * Return Input Chip component.\n */\n return (\n <>\n <ChipContainer ref={containerRef}\n className={`${size} ${disabled ? 'disabled' : ''} ${variant}`}\n tabIndex={disabled ? -1 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyDown={e => e.key === 'Enter' && onClick()}\n onClick={() => onClick()}>\n <ChipContentContainer>\n <ChipContent className={'with-action-right'}>\n {icon && <div className={'chip-icon icon-left'}>{icons[icon]({className: 'icon'})}</div>}\n\n <div>{text}</div>\n\n <div ref={removeRef}\n className={`action-right ${disableRemove ? 'disabled' : ''}`}\n tabIndex={disableRemove || disabled ? -1 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n onClick={e => !disableRemove && onRemoveClick(e)}\n onKeyDown={e => e.key === 'Enter' && onRemoveClick(e)}>\n <div className={'chip-icon'}>\n <SystemIcons.Close className={'remove'}/>\n </div>\n </div>\n </ChipContent>\n </ChipContentContainer>\n </ChipContainer>\n </>\n );\n};\n\nexport default InputChip;\n"],"file":"InputChip.js"}
1
+ {"version":3,"sources":["../../src/Chips/InputChip.tsx"],"names":["React","SystemIcons","icons","ChipContainer","ChipContent","ChipContentContainer","defaultOnMouseDownHandler","useActionWithin","InputChip","icon","text","variant","size","disabled","onClick","disableRemove","onRemove","containerRef","useRef","removeRef","onRemoveClick","event","stopPropagation","e","key","className"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {SystemIcons, SystemIcons as icons} from '../icons/index';\nimport {IconButton} from '../Button/index';\nimport {Size} from '../types';\n\n/**\n * Import custom styles.\n */\nimport {ChipContainer, ChipContent, ChipContentContainer} from './ChipStyles';\n\n/**\n * Import custom types.\n */\nimport {InputChipProps} from './ChipTypes';\nimport {defaultOnMouseDownHandler, useActionWithin} from '../common';\n\nconst InputChip: React.FunctionComponent<InputChipProps> = ({\n icon,\n text,\n variant,\n size,\n disabled,\n onClick,\n disableRemove,\n onRemove\n }: InputChipProps) => {\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const removeRef = React.useRef<HTMLDivElement>(null);\n\n useActionWithin(containerRef, [removeRef]);\n\n /**\n * Calls onRemove action when remove button is clicked.\n * @param event - Event handler from the button click.\n */\n const onRemoveClick = (event?: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent) => {\n !!event && event.stopPropagation();\n onRemove();\n };\n\n /**\n * Return Input Chip component.\n */\n return (\n <>\n <ChipContainer ref={containerRef}\n className={`${size} ${disabled ? 'disabled' : ''} ${variant} ${!!onClick ? 'interactive' : ''}`}\n tabIndex={disabled || !onClick ? -1 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyDown={e => e.key === 'Enter' && onClick && onClick()}\n onClick={() => onClick && onClick()}>\n <ChipContentContainer>\n <ChipContent className={'with-action-right'}>\n {icon && <div className={'chip-icon icon-left'}>{icons[icon]({className: 'icon'})}</div>}\n\n <div>{text}</div>\n\n <div ref={removeRef}\n className={`action-right ${disableRemove ? 'disabled' : ''}`}\n tabIndex={disableRemove || disabled ? -1 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n onClick={e => !disableRemove && onRemoveClick(e)}\n onKeyDown={e => e.key === 'Enter' && onRemoveClick(e)}>\n <div className={'chip-icon'}>\n <SystemIcons.Close className={'remove'}/>\n </div>\n </div>\n </ChipContent>\n </ChipContentContainer>\n </ChipContainer>\n </>\n );\n};\n\nexport default InputChip;\n"],"file":"InputChip.js"}
@@ -42,7 +42,7 @@ var _FilterChip = _interopRequireDefault(require("./FilterChip"));
42
42
 
43
43
  var _ActionChip = _interopRequireDefault(require("./ActionChip"));
44
44
 
45
- var _ChipInput = _interopRequireDefault(require("./ChipInput"));
45
+ var _ChipInput = _interopRequireDefault(require("../ChipsInput/ChipInput"));
46
46
 
47
47
  var _ChoiceChips = _interopRequireDefault(require("./ChoiceChips"));
48
48
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Chips/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["export { default as InputChip } from './InputChip';\nexport { default as FilterChip } from './FilterChip';\nexport { default as ActionChip } from './ActionChip';\nexport { default as ChipInput } from './ChipInput';\nexport { default as ChoiceChips } from './ChoiceChips';"],"file":"index.cjs"}
1
+ {"version":3,"sources":["../../src/Chips/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["export { default as InputChip } from './InputChip';\nexport { default as FilterChip } from './FilterChip';\nexport { default as ActionChip } from './ActionChip';\nexport { default as ChipInput } from '../ChipsInput/ChipInput';\nexport { default as ChoiceChips } from './ChoiceChips';\n"],"file":"index.cjs"}
@@ -1,5 +1,5 @@
1
1
  export { default as InputChip } from './InputChip';
2
2
  export { default as FilterChip } from './FilterChip';
3
3
  export { default as ActionChip } from './ActionChip';
4
- export { default as ChipInput } from './ChipInput';
4
+ export { default as ChipInput } from '../ChipsInput/ChipInput';
5
5
  export { default as ChoiceChips } from './ChoiceChips';
@@ -1,6 +1,6 @@
1
1
  export { default as InputChip } from './InputChip';
2
2
  export { default as FilterChip } from './FilterChip';
3
3
  export { default as ActionChip } from './ActionChip';
4
- export { default as ChipInput } from './ChipInput';
4
+ export { default as ChipInput } from '../ChipsInput/ChipInput';
5
5
  export { default as ChoiceChips } from './ChoiceChips';
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Chips/index.ts"],"names":["default","InputChip","FilterChip","ActionChip","ChipInput","ChoiceChips"],"mappings":"AAAA,SAASA,OAAO,IAAIC,SAApB,QAAqC,aAArC;AACA,SAASD,OAAO,IAAIE,UAApB,QAAsC,cAAtC;AACA,SAASF,OAAO,IAAIG,UAApB,QAAsC,cAAtC;AACA,SAASH,OAAO,IAAII,SAApB,QAAqC,aAArC;AACA,SAASJ,OAAO,IAAIK,WAApB,QAAuC,eAAvC","sourcesContent":["export { default as InputChip } from './InputChip';\nexport { default as FilterChip } from './FilterChip';\nexport { default as ActionChip } from './ActionChip';\nexport { default as ChipInput } from './ChipInput';\nexport { default as ChoiceChips } from './ChoiceChips';"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/Chips/index.ts"],"names":["default","InputChip","FilterChip","ActionChip","ChipInput","ChoiceChips"],"mappings":"AAAA,SAASA,OAAO,IAAIC,SAApB,QAAqC,aAArC;AACA,SAASD,OAAO,IAAIE,UAApB,QAAsC,cAAtC;AACA,SAASF,OAAO,IAAIG,UAApB,QAAsC,cAAtC;AACA,SAASH,OAAO,IAAII,SAApB,QAAqC,yBAArC;AACA,SAASJ,OAAO,IAAIK,WAApB,QAAuC,eAAvC","sourcesContent":["export { default as InputChip } from './InputChip';\nexport { default as FilterChip } from './FilterChip';\nexport { default as ActionChip } from './ActionChip';\nexport { default as ChipInput } from '../ChipsInput/ChipInput';\nexport { default as ChoiceChips } from './ChoiceChips';\n"],"file":"index.js"}
@@ -0,0 +1,398 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.ChipDropdownInput = void 0;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
19
+
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
21
+
22
+ var React = _interopRequireWildcard(require("react"));
23
+
24
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
25
+
26
+ var _ChipInputField = require("./ChipInputField");
27
+
28
+ var _types = require("../types");
29
+
30
+ var _Dropdown = require("../Dropdown");
31
+
32
+ var _icons = require("../icons");
33
+
34
+ var _jsxRuntime = require("react/jsx-runtime");
35
+
36
+ var _templateObject;
37
+
38
+ 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); }
39
+
40
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
+
42
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
43
+
44
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
45
+
46
+ var Wrapper = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n display: inline-block;\n width: 100%;\n"])));
47
+
48
+ var ChipDropdownInput = function ChipDropdownInput(_ref) {
49
+ var list = _ref.list,
50
+ onInputChange = _ref.onInputChange,
51
+ disableSorting = _ref.disableSorting,
52
+ messageOnNoResults = _ref.messageOnNoResults,
53
+ values = _ref.values,
54
+ inputId = _ref.inputId,
55
+ variants = _ref.variants,
56
+ placeholder = _ref.placeholder,
57
+ validationType = _ref.validationType,
58
+ validationMessage = _ref.validationMessage,
59
+ onValueChange = _ref.onValueChange,
60
+ suggestion = _ref.suggestion,
61
+ loading = _ref.loading,
62
+ maxSelectedItems = _ref.maxSelectedItems,
63
+ _ref$multiLine = _ref.multiLine,
64
+ multiLine = _ref$multiLine === void 0 ? true : _ref$multiLine,
65
+ _ref$size = _ref.size,
66
+ size = _ref$size === void 0 ? _types.Size.Medium : _ref$size,
67
+ icon = _ref.icon,
68
+ disableFiltering = _ref.disableFiltering,
69
+ disabled = _ref.disabled,
70
+ altPlaceholder = _ref.altPlaceholder;
71
+
72
+ // Initiate states
73
+ var _React$useState = React.useState([]),
74
+ _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
75
+ givenList = _React$useState2[0],
76
+ setGivenList = _React$useState2[1];
77
+
78
+ var _React$useState3 = React.useState([]),
79
+ _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
80
+ chips = _React$useState4[0],
81
+ setChips = _React$useState4[1];
82
+
83
+ var _React$useState5 = React.useState(''),
84
+ _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
85
+ value = _React$useState6[0],
86
+ setValue = _React$useState6[1];
87
+
88
+ var _React$useState7 = React.useState(false),
89
+ _React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
90
+ restartFilter = _React$useState8[0],
91
+ setRestartFilter = _React$useState8[1];
92
+
93
+ var _React$useState9 = React.useState(),
94
+ _React$useState10 = (0, _slicedToArray2.default)(_React$useState9, 2),
95
+ filteredList = _React$useState10[0],
96
+ setFilteredList = _React$useState10[1];
97
+
98
+ var _React$useState11 = React.useState(false),
99
+ _React$useState12 = (0, _slicedToArray2.default)(_React$useState11, 2),
100
+ dropdownIsOpen = _React$useState12[0],
101
+ setDropdownIsOpen = _React$useState12[1];
102
+
103
+ var _React$useState13 = React.useState([]),
104
+ _React$useState14 = (0, _slicedToArray2.default)(_React$useState13, 2),
105
+ dropdownList = _React$useState14[0],
106
+ setDropdownList = _React$useState14[1];
107
+
108
+ var _React$useState15 = React.useState(''),
109
+ _React$useState16 = (0, _slicedToArray2.default)(_React$useState15, 2),
110
+ dropdownValue = _React$useState16[0],
111
+ setDropdownValue = _React$useState16[1];
112
+
113
+ var _React$useState17 = React.useState(null),
114
+ _React$useState18 = (0, _slicedToArray2.default)(_React$useState17, 2),
115
+ focused = _React$useState18[0],
116
+ setFocused = _React$useState18[1];
117
+
118
+ var containerRef = React.useRef(null);
119
+ var inputRef = React.useRef(null);
120
+ /**
121
+ * Sets initial values for the chips.
122
+ */
123
+
124
+ React.useEffect(function () {
125
+ var list = values.map(function (a) {
126
+ return chips.find(function (b) {
127
+ return b.value === a;
128
+ }) || givenList.find(function (b) {
129
+ return b.value === a;
130
+ }) || {
131
+ label: a,
132
+ value: a,
133
+ icon: icon
134
+ };
135
+ }).map(function (a, index) {
136
+ return _objectSpread(_objectSpread({}, a), {}, {
137
+ variant: a.variant || variants && variants[index] || 'normal'
138
+ });
139
+ }).map(function (a, index) {
140
+ return _objectSpread(_objectSpread({}, a), {}, {
141
+ icon: a.icon || icon
142
+ });
143
+ });
144
+ setChips(list);
145
+ }, [values, variants, icon, givenList]);
146
+ /**
147
+ * Convert string[] to List[] if necessary
148
+ */
149
+
150
+ React.useEffect(function () {
151
+ if (typeof list[0] === 'string') {
152
+ var newList = list.map(function (e) {
153
+ return {
154
+ label: e,
155
+ value: e
156
+ };
157
+ });
158
+ setGivenList(newList);
159
+ } else {
160
+ setGivenList(list);
161
+ }
162
+ }, [list]);
163
+ /**
164
+ * filter and sort list if remoteOperations is false
165
+ * */
166
+
167
+ React.useEffect(function () {
168
+ var options = (0, _toConsumableArray2.default)(givenList);
169
+
170
+ if (!disableFiltering) {
171
+ if (!restartFilter && value !== '') {
172
+ options = options.filter(function (option) {
173
+ var _option$secondaryLabe;
174
+
175
+ return option.label.toUpperCase().indexOf(value.toUpperCase()) !== -1 || option.secondaryLabel && ((_option$secondaryLabe = option.secondaryLabel) === null || _option$secondaryLabe === void 0 ? void 0 : _option$secondaryLabe.toUpperCase().indexOf(value.toUpperCase())) !== -1;
176
+ });
177
+ }
178
+ }
179
+
180
+ if (!disableSorting) {
181
+ options = options.sort();
182
+ }
183
+
184
+ suggestion && options.push(suggestion);
185
+ options = options.filter(function (o) {
186
+ return !chips.find(function (a) {
187
+ return a.value === o.value;
188
+ });
189
+ });
190
+ setFilteredList(options);
191
+ }, [value, givenList, chips, disableFiltering, disableSorting]);
192
+ /**
193
+ * if there is only one active item in dropdown mark it as focused
194
+ * */
195
+
196
+ React.useEffect(function () {
197
+ if (dropdownIsOpen && !!value && (dropdownList === null || dropdownList === void 0 ? void 0 : dropdownList.filter(function (a) {
198
+ return !a.disabled;
199
+ }).length) === 1) {
200
+ setDropdownValue(dropdownList.find(function (a) {
201
+ return !a.disabled;
202
+ }).value);
203
+ } else {
204
+ setDropdownValue('');
205
+ }
206
+ }, [dropdownList, dropdownIsOpen, value]);
207
+
208
+ var handleClickOutside = function handleClickOutside(e) {
209
+ var _containerRef$current;
210
+
211
+ if (!((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.contains(e.target))) {
212
+ if (dropdownIsOpen) {
213
+ setDropdownIsOpen(false);
214
+
215
+ if (!givenList.find(function (e) {
216
+ return e.value === value;
217
+ })) {
218
+ setValue('');
219
+ }
220
+ }
221
+ }
222
+ };
223
+ /**
224
+ * register click outside event listener
225
+ * */
226
+
227
+
228
+ React.useEffect(function () {
229
+ document.addEventListener('click', handleClickOutside);
230
+ return function () {
231
+ document.removeEventListener('click', handleClickOutside);
232
+ };
233
+ });
234
+ /**
235
+ * update dropdown items when filtered list changes
236
+ * */
237
+
238
+ React.useEffect(function () {
239
+ var _filteredList$map;
240
+
241
+ setDropdownList((_filteredList$map = filteredList === null || filteredList === void 0 ? void 0 : filteredList.map(function (x) {
242
+ var _x$icon;
243
+
244
+ return {
245
+ value: x.value,
246
+ displayLabel: x.label,
247
+ noteLabel: x.secondaryLabel,
248
+ icon: ((_x$icon = x.icon) !== null && _x$icon !== void 0 ? _x$icon : icon) && _icons.SystemIcons[x.icon || icon]({}),
249
+ disabled: x.disabled
250
+ };
251
+ })) !== null && _filteredList$map !== void 0 ? _filteredList$map : []);
252
+ }, [filteredList]);
253
+
254
+ var addChip = function addChip(newChip) {
255
+ var newList = [].concat((0, _toConsumableArray2.default)(chips), [newChip]); // Let's add the chip
256
+
257
+ setChips(newList);
258
+ onValueChange(newList.map(function (a) {
259
+ return a.value;
260
+ }));
261
+ setValue('');
262
+ };
263
+
264
+ var handleInputValueChange = function handleInputValueChange(value) {
265
+ setValue(value);
266
+ setRestartFilter(false);
267
+ setDropdownIsOpen(true);
268
+ onInputChange && onInputChange(value);
269
+ };
270
+ /**
271
+ * Add chip from dropdown
272
+ * */
273
+
274
+
275
+ var handleValueUpdate = function handleValueUpdate(values) {
276
+ var _inputRef$current;
277
+
278
+ var item = filteredList === null || filteredList === void 0 ? void 0 : filteredList.find(function (a) {
279
+ return a.value === values[0];
280
+ });
281
+ item && addChip(item);
282
+ setRestartFilter(true);
283
+ inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
284
+ };
285
+ /**
286
+ * Adds a chip to the chip list.
287
+ * @param event - Event handler from the key down event.
288
+ */
289
+
290
+
291
+ var handleInputKeyDown = function handleInputKeyDown(event) {
292
+ // Let's trigger only on enter, comma and space key press
293
+ if ((event.key === 'Enter' || event.key === 'Space' || event.key === 'Comma') && value) {
294
+ if ((dropdownList === null || dropdownList === void 0 ? void 0 : dropdownList.filter(function (a) {
295
+ return !a.disabled;
296
+ }).length) === 1) {
297
+ handleValueUpdate([dropdownList.find(function (a) {
298
+ return !a.disabled;
299
+ }).value]);
300
+ event.stopPropagation();
301
+ }
302
+ }
303
+
304
+ if ((event.key === 'ArrowDown' || event.key === 'Down') && !!(dropdownList !== null && dropdownList !== void 0 && dropdownList.length)) {
305
+ setDropdownIsOpen(true);
306
+ setFocused(dropdownList.findIndex(function (a) {
307
+ return !a.disabled;
308
+ }) + 1);
309
+ event.stopPropagation();
310
+ }
311
+ };
312
+ /**
313
+ * Removes a specific chip from the chip list.
314
+ * @param index - Index of the chip that needs to be removed.
315
+ */
316
+
317
+
318
+ var handleOnChipRemoved = function handleOnChipRemoved(index) {
319
+ // Let's copy the chips
320
+ var newChips = (0, _toConsumableArray2.default)(chips); // Let's delete the chip
321
+ // If necessary, let's replace it with a different chip
322
+
323
+ newChips.splice(index, 1); // Let's update the chip list
324
+
325
+ setChips((0, _toConsumableArray2.default)(newChips));
326
+ onValueChange(newChips.map(function (e) {
327
+ return e.value;
328
+ }));
329
+ };
330
+
331
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Wrapper, {
332
+ ref: containerRef,
333
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChipInputField.ChipInputField, {
334
+ inputId: inputId,
335
+ ref: inputRef,
336
+ items: chips,
337
+ inputValue: value,
338
+ size: size,
339
+ placeholder: placeholder,
340
+ altPlaceholder: altPlaceholder,
341
+ disabled: disabled,
342
+ multiLine: multiLine,
343
+ validationType: validationType,
344
+ validationMessage: validationMessage,
345
+ loading: loading,
346
+ onRemoveItem: function onRemoveItem(chip, index) {
347
+ return handleOnChipRemoved(index);
348
+ },
349
+ onInputValueChange: handleInputValueChange,
350
+ onInputKeyDown: handleInputKeyDown,
351
+ onActivation: function onActivation() {
352
+ return setDropdownIsOpen(true);
353
+ }
354
+ }), (!maxSelectedItems || maxSelectedItems && chips.length < maxSelectedItems) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.DropdownContent, {
355
+ customizationProps: {
356
+ action: function action() {},
357
+ pinTopItem: true,
358
+ itemsType: 'normal',
359
+ scrollable: true,
360
+ actionLabel: '',
361
+ multiSelect: false,
362
+ onValueUpdate: handleValueUpdate,
363
+ items: dropdownList
364
+ },
365
+ focused: focused,
366
+ setFocused: setFocused,
367
+ hideOnClickOutside: false,
368
+ selectedValues: [dropdownValue],
369
+ messageOnNoResults: messageOnNoResults !== null && messageOnNoResults !== void 0 ? messageOnNoResults : '',
370
+ setSelectedValues: function setSelectedValues() {},
371
+ isOpen: dropdownIsOpen,
372
+ setIsOpen: setDropdownIsOpen,
373
+ filter: '',
374
+ isButton: false,
375
+ id: "".concat(inputId, "_dropdowncontent")
376
+ })]
377
+ });
378
+ };
379
+
380
+ exports.ChipDropdownInput = ChipDropdownInput;
381
+ ChipDropdownInput.propTypes = {
382
+ list: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.shape({
383
+ secondaryLabel: _propTypes.default.string,
384
+ value: _propTypes.default.string.isRequired
385
+ })), _propTypes.default.arrayOf(_propTypes.default.string)]).isRequired,
386
+ onInputChange: _propTypes.default.func,
387
+ messageOnNoResults: _propTypes.default.string,
388
+ suggestion: _propTypes.default.shape({
389
+ secondaryLabel: _propTypes.default.string,
390
+ value: _propTypes.default.string.isRequired
391
+ }),
392
+ loading: _propTypes.default.bool,
393
+ maxSelectedItems: _propTypes.default.number,
394
+ disableSorting: _propTypes.default.bool,
395
+ disableFiltering: _propTypes.default.bool,
396
+ allowCustomItem: _propTypes.default.bool
397
+ };
398
+ //# sourceMappingURL=ChipDropdownInput.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ChipsInput/ChipDropdownInput.tsx"],"names":["Wrapper","styled","div","ChipDropdownInput","list","onInputChange","disableSorting","messageOnNoResults","values","inputId","variants","placeholder","validationType","validationMessage","onValueChange","suggestion","loading","maxSelectedItems","multiLine","size","Size","Medium","icon","disableFiltering","disabled","altPlaceholder","React","useState","givenList","setGivenList","chips","setChips","value","setValue","restartFilter","setRestartFilter","filteredList","setFilteredList","dropdownIsOpen","setDropdownIsOpen","dropdownList","setDropdownList","dropdownValue","setDropdownValue","focused","setFocused","containerRef","useRef","inputRef","useEffect","map","a","find","b","label","index","variant","newList","e","options","filter","option","toUpperCase","indexOf","secondaryLabel","sort","push","o","length","handleClickOutside","current","contains","target","document","addEventListener","removeEventListener","x","displayLabel","noteLabel","SystemIcons","addChip","newChip","handleInputValueChange","handleValueUpdate","item","focus","handleInputKeyDown","event","key","stopPropagation","findIndex","handleOnChipRemoved","newChips","splice","chip","action","pinTopItem","itemsType","scrollable","actionLabel","multiSelect","onValueUpdate","items","allowCustomItem"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\n\n/**\n * Import custom components.\n */\nimport {ChipInputField} from './ChipInputField';\nimport {Size} from '../types';\nimport {DropdownContent, DropdownItem} from '../Dropdown';\nimport {SystemIcons} from '../icons';\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n`;\n\n\ninterface ListItem extends ChipItem {\n secondaryLabel?: string;\n value: string;\n}\n\ninterface ChipDropdownInputProps extends ChipInputProps {\n list: ListItem[] | string[];\n onInputChange?: (input: string) => void;\n messageOnNoResults?: string;\n suggestion?: ListItem;\n loading?: boolean;\n maxSelectedItems?: number;\n disableSorting?: boolean;\n disableFiltering?: boolean;\n allowCustomItem?: boolean;\n}\n\nexport const ChipDropdownInput: React.FunctionComponent<ChipDropdownInputProps> = ({\n list,\n onInputChange,\n disableSorting,\n messageOnNoResults,\n values,\n inputId,\n variants,\n placeholder,\n validationType,\n validationMessage,\n onValueChange,\n suggestion,\n loading,\n maxSelectedItems,\n multiLine = true,\n size = Size.Medium,\n icon,\n disableFiltering,\n disabled,\n altPlaceholder\n }: ChipDropdownInputProps) => {\n // Initiate states\n const [givenList, setGivenList] = React.useState<ListItem[]>([]);\n const [chips, setChips] = React.useState<ListItem[]>([]);\n\n const [value, setValue] = React.useState<string>('');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [filteredList, setFilteredList] = React.useState<ListItem[]>();\n\n const [dropdownIsOpen, setDropdownIsOpen] = React.useState<boolean>(false);\n const [dropdownList, setDropdownList] = React.useState<DropdownItem[]>([]);\n const [dropdownValue, setDropdownValue] = React.useState<string>('');\n\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n\n const list =\n values.map((a) => chips.find(b => b.value === a) || givenList.find(b => b.value === a) || {\n label: a,\n value: a,\n icon: icon\n })\n .map((a, index) => ({...a, variant: a.variant || (variants && variants[index]) || 'normal'}))\n .map((a, index) => ({...a, icon: a.icon || icon}));\n\n setChips(list);\n }, [values, variants, icon, givenList]);\n\n /**\n * Convert string[] to List[] if necessary\n */\n React.useEffect(() => {\n if (typeof list[0] === 'string') {\n const newList: ListItem[] = (list as string[]).map((e: string) => ({label: e, value: e}));\n setGivenList(newList);\n } else {\n setGivenList(list as ListItem[]);\n }\n }, [list]);\n\n /**\n * filter and sort list if remoteOperations is false\n * */\n React.useEffect(() => {\n let options = [...givenList];\n if (!disableFiltering) {\n if (!restartFilter && value !== '') {\n options = options.filter((option) => option.label.toUpperCase().indexOf(value.toUpperCase()) !== -1 ||\n (option.secondaryLabel && option.secondaryLabel?.toUpperCase().indexOf(value.toUpperCase()) !== -1));\n }\n }\n\n if (!disableSorting) {\n options = options.sort();\n }\n\n suggestion && options.push(suggestion);\n\n options = options.filter((o) => !chips.find(a => a.value === o.value));\n setFilteredList(options);\n }, [value, givenList, chips, disableFiltering, disableSorting]);\n\n /**\n * if there is only one active item in dropdown mark it as focused\n * */\n React.useEffect(() => {\n if (dropdownIsOpen && !!value && dropdownList?.filter(a => !a.disabled).length === 1) {\n setDropdownValue(dropdownList.find(a => !a.disabled)!.value);\n } else {\n setDropdownValue('');\n }\n }, [dropdownList, dropdownIsOpen, value]);\n\n const handleClickOutside = (e: any) => {\n if (!containerRef.current?.contains(e.target)) {\n if (dropdownIsOpen) {\n setDropdownIsOpen(false);\n if (!givenList.find((e) => e.value === value)) {\n setValue('');\n }\n }\n }\n };\n\n /**\n * register click outside event listener\n * */\n React.useEffect(() => {\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n /**\n * update dropdown items when filtered list changes\n * */\n React.useEffect(() => {\n setDropdownList(filteredList?.map(x => ({\n value: x.value,\n displayLabel: x.label,\n noteLabel: x.secondaryLabel,\n icon: (x.icon ?? icon) && SystemIcons[(x.icon || icon)!]({}),\n disabled: x.disabled,\n })) ?? []);\n }, [filteredList]);\n\n const addChip = (newChip: ListItem) => {\n const newList = [...chips, newChip];\n // Let's add the chip\n setChips(newList);\n onValueChange(newList.map(a => a.value));\n\n setValue('');\n };\n\n const handleInputValueChange = (value: string) => {\n setValue(value);\n setRestartFilter(false);\n setDropdownIsOpen(true);\n onInputChange && onInputChange(value);\n }\n\n /**\n * Add chip from dropdown\n * */\n const handleValueUpdate = (values: string[]) => {\n const item = filteredList?.find(a => a.value === values[0]);\n item && addChip(item);\n setRestartFilter(true);\n inputRef?.current?.focus();\n }\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n // Let's trigger only on enter, comma and space key press\n if ((event.key === 'Enter' || event.key === 'Space' || event.key === 'Comma') && value) {\n if (dropdownList?.filter(a => !a.disabled).length === 1) {\n handleValueUpdate([dropdownList!.find(a => !a.disabled)!.value]);\n event.stopPropagation();\n }\n }\n\n if ((event.key === 'ArrowDown' || event.key === 'Down') && !!dropdownList?.length) {\n setDropdownIsOpen(true);\n setFocused(dropdownList.findIndex(a => !a.disabled) + 1);\n event.stopPropagation();\n }\n };\n\n /**\n * Removes a specific chip from the chip list.\n * @param index - Index of the chip that needs to be removed.\n */\n const handleOnChipRemoved = (index: number): void => {\n // Let's copy the chips\n const newChips = [...chips];\n\n // Let's delete the chip\n // If necessary, let's replace it with a different chip\n newChips.splice(index, 1);\n\n // Let's update the chip list\n setChips([...newChips]);\n onValueChange(newChips.map((e) => e.value));\n };\n\n return (\n <Wrapper ref={containerRef}>\n <ChipInputField inputId={inputId}\n ref={inputRef}\n items={chips}\n inputValue={value}\n size={size}\n placeholder={placeholder}\n altPlaceholder={altPlaceholder}\n disabled={disabled}\n multiLine={multiLine}\n validationType={validationType}\n validationMessage={validationMessage}\n loading={loading}\n onRemoveItem={(chip, index) => handleOnChipRemoved(index)}\n onInputValueChange={handleInputValueChange}\n onInputKeyDown={handleInputKeyDown}\n onActivation={() => setDropdownIsOpen(true)}/>\n {(!maxSelectedItems || (maxSelectedItems && chips.length < maxSelectedItems)) && (\n <DropdownContent\n customizationProps={{\n action: () => {\n },\n pinTopItem: true,\n\n itemsType: 'normal',\n scrollable: true,\n actionLabel: '',\n multiSelect: false,\n onValueUpdate: handleValueUpdate,\n items: dropdownList\n }}\n focused={focused}\n setFocused={setFocused}\n hideOnClickOutside={false}\n selectedValues={[dropdownValue]}\n messageOnNoResults={messageOnNoResults ?? ''}\n setSelectedValues={() => {\n }}\n isOpen={dropdownIsOpen}\n setIsOpen={setDropdownIsOpen}\n filter={''}\n isButton={false}\n id={`${inputId}_dropdowncontent`}/>\n )}\n\n </Wrapper>\n );\n};\n"],"file":"ChipDropdownInput.cjs"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Import React libraries.
3
+ */
4
+ import * as React from 'react';
5
+ import { ChipInputProps, ChipItem } from './ChipInputTypes';
6
+ interface ListItem extends ChipItem {
7
+ secondaryLabel?: string;
8
+ value: string;
9
+ }
10
+ interface ChipDropdownInputProps extends ChipInputProps {
11
+ list: ListItem[] | string[];
12
+ onInputChange?: (input: string) => void;
13
+ messageOnNoResults?: string;
14
+ suggestion?: ListItem;
15
+ loading?: boolean;
16
+ maxSelectedItems?: number;
17
+ disableSorting?: boolean;
18
+ disableFiltering?: boolean;
19
+ allowCustomItem?: boolean;
20
+ }
21
+ export declare const ChipDropdownInput: React.FunctionComponent<ChipDropdownInputProps>;
22
+ export {};