@laerdal/life-react-components 1.7.0-dev.7.full → 1.7.0-dev.8

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 (78) 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/index.cjs +14 -0
  65. package/dist/index.cjs.map +1 -1
  66. package/dist/index.d.ts +1 -0
  67. package/dist/index.js +1 -0
  68. package/dist/index.js.map +1 -1
  69. package/package.json +1 -1
  70. package/dist/Chips/ChipInput.cjs +0 -199
  71. package/dist/Chips/ChipInput.cjs.map +0 -1
  72. package/dist/Chips/ChipInput.js +0 -182
  73. package/dist/Chips/ChipInput.js.map +0 -1
  74. package/dist/Dropdown/ChipDropdownInput.cjs +0 -431
  75. package/dist/Dropdown/ChipDropdownInput.cjs.map +0 -1
  76. package/dist/Dropdown/ChipDropdownInput.d.ts +0 -24
  77. package/dist/Dropdown/ChipDropdownInput.js +0 -418
  78. package/dist/Dropdown/ChipDropdownInput.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Chips/ChipInput.tsx"],"names":["React","InputChip","Size","WarningMessage","ErrorMessage","COLORS","TechnicalWarning","ChipInputContainer","ChipInputEl","RequiredStar","ChipInput","values","inputId","variants","required","icon","placeholder","validationType","validationMessage","onValueChange","chipInput","useState","chips","setChips","value","setValue","useEffect","onAddChip","event","keyCode","preventDefault","onRemoveChip","index","elementToAdd","newChips","splice","onEditChip","text","focus","map","chip","Medium","length","target","input","critical_500","critical_400"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport { InputChip } from './index';\nimport { Size } from '../types';\nimport { WarningMessage, ErrorMessage } from '../InputFields/styling';\nimport { COLORS } from '../styles';\nimport { TechnicalWarning } from '../icons/systemicons/SystemIcons';\n\n/**\n * Import custom styles.\n */\nimport { ChipInputContainer, ChipInputEl, RequiredStar } from './ChipStyles';\n\n/**\n * Import custom types.\n */\nimport { ChipInputProps } from './ChipTypes';\n\nconst ChipInput: React.FunctionComponent<ChipInputProps> = ({\n values,\n inputId,\n variants,\n required,\n icon,\n placeholder,\n validationType,\n validationMessage,\n onValueChange,\n}: ChipInputProps) => {\n // Globally used variables within the chip input\n let chipInput: HTMLInputElement;\n const [chips, setChips] = React.useState<string[]>([]);\n const [value, setValue] = React.useState<string>('');\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n // Let's add initial chip values\n setChips(values);\n }, [values]);\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const onAddChip = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n // Let's trigger only on enter, comma and space key press\n if ((event.keyCode === 13 || event.keyCode === 32 || event.keyCode === 188) && value) {\n // Let's prevent default action - adding new key to the value\n event.preventDefault();\n\n // Let's add the chip\n setChips([...chips, value]);\n onValueChange([...chips, value]);\n\n // Let's clear the old value\n chipInput.value = '';\n setValue('');\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 * @param elementToAdd - Element which needs to be added in the deleted element place.\n */\n const onRemoveChip = (index: number, elementToAdd?: string): 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 if (elementToAdd) {\n newChips.splice(index, 1, elementToAdd);\n } else {\n newChips.splice(index, 1);\n }\n\n // Let's update the chip list\n setChips([...newChips]);\n onValueChange([...newChips]);\n };\n\n /**\n * Changes a status of the chip to edit.\n * @param text - Text of the chip that is being edited.\n * @param index - Index of the chip in the array.\n */\n const onEditChip = (text: string, index: number): void => {\n // Let's check if we have to add value as a chip (in case we have entered something in the input field)\n if (chipInput.value !== '') {\n // Let's replace the chip\n onRemoveChip(index, chipInput.value);\n } else {\n // Let's just remove the chip\n onRemoveChip(index);\n }\n\n // Let's update the text value of input field\n chipInput.value = text;\n setValue(text);\n };\n\n /**\n * Return Chip Input component.\n */\n return (\n <>\n {required && <RequiredStar>*</RequiredStar>}\n <ChipInputContainer onClick={() => chipInput.focus()} id={inputId} className={validationType}>\n {chips.map((chip: string, index: number) => (\n <InputChip\n icon={icon}\n size={Size.Medium}\n variant={variants && variants.length && variants[index] ? variants[index] : 'normal'}\n text={chip}\n onRemove={() => onRemoveChip(index)}\n onClick={() => onEditChip(chip, index)}\n key={`chip_${index}`}/>\n ))}\n <ChipInputEl\n type=\"text\"\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => setValue(event.target.value)}\n onKeyDown={(event: React.KeyboardEvent<HTMLInputElement>) => {\n onAddChip(event);\n }}\n placeholder={placeholder && chips.length === 0 ? placeholder : ''}\n ref={(input: HTMLInputElement) => {\n chipInput = input;\n }}\n />\n </ChipInputContainer>\n\n {/* If there is an error, let's render the error */}\n {validationMessage && validationType === 'warning' ? (\n <WarningMessage>\n <TechnicalWarning size=\"20px\" color={COLORS.critical_500} />\n <span>{validationMessage}</span>\n </WarningMessage>\n ) : (\n validationType === 'error' && (\n <ErrorMessage>\n <TechnicalWarning size=\"20px\" color={COLORS.critical_400} />\n <span>{validationMessage}</span>\n </ErrorMessage>\n )\n )}\n </>\n );\n};\n\nexport default ChipInput;\n"],"file":"ChipInput.js"}
@@ -1,431 +0,0 @@
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.default = void 0;
11
-
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
-
18
- var _propTypes = _interopRequireDefault(require("prop-types"));
19
-
20
- var React = _interopRequireWildcard(require("react"));
21
-
22
- var _styledComponents = _interopRequireDefault(require("styled-components"));
23
-
24
- var _index = require("../Chips/index");
25
-
26
- var _SystemIcons = require("../icons/systemicons/SystemIcons");
27
-
28
- var _styling = require("../InputFields/styling");
29
-
30
- var _styles = require("../styles");
31
-
32
- var _ChipStyles = require("../Chips/ChipStyles");
33
-
34
- var _types = require("../types");
35
-
36
- var _DropdownContent = _interopRequireDefault(require("./DropdownContent"));
37
-
38
- var _LoadingIndicator = require("../LoadingIndicator");
39
-
40
- var _typography = require("../styles/typography");
41
-
42
- var _jsxRuntime = require("react/jsx-runtime");
43
-
44
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
45
-
46
- 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); }
47
-
48
- 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; }
49
-
50
- var Wrapper = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 344px;\n"])));
51
-
52
- var StyledChipInputContainer = (0, _styledComponents.default)(_ChipStyles.ChipInputContainer)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n padding: 2px 2px 2px 48px !important;\n min-height: 56px;\n max-height: 176px;\n overflow-y: auto;\n box-shadow: 0px 0px 0px 1px ", ";\n\n .medium {\n margin-right: 8px !important;\n }\n .SearchIcon {\n position: absolute;\n left: 18px;\n top: 18px;\n }\n\n &:active {\n background-color: ", ";\n }\n\n &.invalid {\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n &.alreadyInOrganization {\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &.empty:hover {\n box-shadow: 0px 0px 0px 2px ", ";\n }\n\n &.inputHasFocus {\n box-shadow: 0px 0px 0px 2px ", ";\n }\n &:hover {\n box-shadow: 0px 0px 0px 2px ", ";\n }\n"])), _styles.COLORS.neutral_400, _styles.COLORS.primary_100, _styles.COLORS.critical_400, _styles.COLORS.warning_400, _styles.COLORS.primary_600, _styles.COLORS.primary_800, _styles.COLORS.primary_700);
53
-
54
- var ChipInput = _styledComponents.default.input(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n height: 40px;\n width: auto;\n display: inline-flex;\n border: none;\n outline: none;\n margin: 4px;\n\n ", "\n color: ", " !important;\n background-color: inherit;\n"])), (0, _typography.ComponentMStyling)(_typography.ComponentTextStyle.Regular, _styles.COLORS.black), _styles.COLORS.black);
55
-
56
- var Loading = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n margin: auto 16px auto auto !important;\n height: 20px;\n div {\n height: 20px;\n }\n"])));
57
-
58
- var ChipDropdownInput = function ChipDropdownInput(_ref) {
59
- var list = _ref.list,
60
- onInputChange = _ref.onInputChange,
61
- disableSorting = _ref.disableSorting,
62
- messageOnNoResults = _ref.messageOnNoResults,
63
- values = _ref.values,
64
- inputId = _ref.inputId,
65
- variants = _ref.variants,
66
- placeholder = _ref.placeholder,
67
- validationType = _ref.validationType,
68
- validationMessage = _ref.validationMessage,
69
- onValueChange = _ref.onValueChange,
70
- suggestion = _ref.suggestion,
71
- excludeIcon = _ref.excludeIcon,
72
- loading = _ref.loading,
73
- maxSelectedItems = _ref.maxSelectedItems;
74
-
75
- // Initiate states
76
- var _React$useState = React.useState([]),
77
- _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
78
- givenList = _React$useState2[0],
79
- setGivenList = _React$useState2[1];
80
-
81
- var _React$useState3 = React.useState([]),
82
- _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
83
- chips = _React$useState4[0],
84
- setChips = _React$useState4[1];
85
-
86
- var _React$useState5 = React.useState(''),
87
- _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
88
- value = _React$useState6[0],
89
- setValue = _React$useState6[1];
90
-
91
- var _React$useState7 = React.useState(false),
92
- _React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
93
- dropdownIsOpen = _React$useState8[0],
94
- setDropdownIsOpen = _React$useState8[1];
95
-
96
- var _React$useState9 = React.useState(),
97
- _React$useState10 = (0, _slicedToArray2.default)(_React$useState9, 2),
98
- currentSearchResult = _React$useState10[0],
99
- setCurrentSearchResult = _React$useState10[1];
100
-
101
- var _React$useState11 = React.useState(false),
102
- _React$useState12 = (0, _slicedToArray2.default)(_React$useState11, 2),
103
- restartFilter = _React$useState12[0],
104
- setRestartFilter = _React$useState12[1];
105
-
106
- var _React$useState13 = React.useState(null),
107
- _React$useState14 = (0, _slicedToArray2.default)(_React$useState13, 2),
108
- focused = _React$useState14[0],
109
- setFocused = _React$useState14[1]; // Initiate refs
110
-
111
-
112
- var chipInput = React.useRef();
113
- var styledFieldRef = React.useRef(null);
114
- /**
115
- * Sets initial values for the chips.
116
- */
117
-
118
- React.useEffect(function () {
119
- // Let's add initial chip values
120
- setChips(values);
121
- }, [values]);
122
- /**
123
- * Convert string[] to List[] if necessary
124
- */
125
-
126
- React.useEffect(function () {
127
- if (typeof list[0] === 'string') {
128
- var newList = list.map(function (e) {
129
- return {
130
- label: e,
131
- value: e
132
- };
133
- });
134
- setGivenList(newList);
135
- } else {
136
- setGivenList(list);
137
- }
138
- }, [list]);
139
-
140
- var addChip = function addChip(newChip) {
141
- // Let's add the chip
142
- setChips([].concat((0, _toConsumableArray2.default)(chips), [newChip]));
143
- onValueChange([].concat((0, _toConsumableArray2.default)(chips), [newChip])); // Let's clear the old value
144
-
145
- chipInput.current.value = '';
146
- setValue('');
147
- };
148
- /**
149
- * Adds a chip to the chip list.
150
- * @param event - Event handler from the key down event.
151
- */
152
-
153
-
154
- var onAddChip = function onAddChip(event) {
155
- // Let's trigger only on enter, comma and space key press
156
- if ((event.keyCode === 13 || event.keyCode === 32 || event.keyCode === 188) && value) {
157
- if (!givenList.find(function (e) {
158
- return e.value === value;
159
- })) {
160
- setValue('');
161
- return;
162
- } // Let's prevent default action - adding new key to the value
163
-
164
-
165
- event.preventDefault();
166
- addChip(value);
167
- }
168
-
169
- if (event.keyCode === 8 && value === '') {
170
- onRemoveChip(chips.length - 1);
171
- }
172
- };
173
- /**
174
- * Removes a specific chip from the chip list.
175
- * @param index - Index of the chip that needs to be removed.
176
- * @param elementToAdd - Element which needs to be added in the deleted element place.
177
- */
178
-
179
-
180
- var onRemoveChip = function onRemoveChip(index, elementToAdd) {
181
- // Let's copy the chips
182
- var newChips = (0, _toConsumableArray2.default)(chips); // Let's delete the chip
183
- // If necessary, let's replace it with a different chip
184
-
185
- if (elementToAdd) {
186
- newChips.splice(index, 1, elementToAdd);
187
- } else {
188
- newChips.splice(index, 1);
189
- } // Let's update the chip list
190
-
191
-
192
- setChips((0, _toConsumableArray2.default)(newChips));
193
- onValueChange((0, _toConsumableArray2.default)(newChips));
194
- };
195
- /**
196
- * Changes a status of the chip to edit.
197
- * @param text - Text of the chip that is being edited.
198
- * @param index - Index of the chip in the array.
199
- */
200
-
201
-
202
- var onEditChip = function onEditChip(text, index) {
203
- // Let's check if we have to add value as a chip (in case we have entered something in the input field)
204
- if (chipInput.current.value !== '') {
205
- // Let's replace the chip
206
- onRemoveChip(index, chipInput.current.value);
207
- } else {
208
- // Let's just remove the chip
209
- onRemoveChip(index);
210
- } // Let's update the text value of input field
211
-
212
-
213
- chipInput.current.value = text;
214
- setValue(text);
215
- };
216
-
217
- React.useEffect(function () {
218
- var options = (0, _toConsumableArray2.default)(givenList);
219
-
220
- if (!restartFilter && value !== '') {
221
- options = options.filter(function (option) {
222
- var _option$secondaryLabe;
223
-
224
- 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;
225
- });
226
- }
227
-
228
- if (!disableSorting) {
229
- options = options.sort();
230
- }
231
-
232
- options = options.filter(function (o) {
233
- return !chips.includes(o.value);
234
- });
235
- setCurrentSearchResult(options);
236
- }, [value, givenList, chips]);
237
-
238
- var handleValueUpdate = function handleValueUpdate(values) {
239
- var _chipInput$current;
240
-
241
- setRestartFilter(true);
242
- addChip(values[0]);
243
- chipInput === null || chipInput === void 0 ? void 0 : (_chipInput$current = chipInput.current) === null || _chipInput$current === void 0 ? void 0 : _chipInput$current.focus();
244
- };
245
-
246
- var handleKeyPress = function handleKeyPress(e) {
247
- if (styledFieldRef !== null && styledFieldRef !== void 0 && styledFieldRef.current && styledFieldRef.current.contains(e.target)) {
248
- if (e.keyCode === 13) {
249
- var matches = currentSearchResult === null || currentSearchResult === void 0 ? void 0 : currentSearchResult.filter(function (c) {
250
- return c.value.toLowerCase() === value.toLowerCase();
251
- });
252
-
253
- if ((matches === null || matches === void 0 ? void 0 : matches.length) === 1
254
- /*&& onSelect*/
255
- ) {
256
- addChip(matches[0].value); //onSelect(chips);
257
- } else if (e.target.value === (suggestion === null || suggestion === void 0 ? void 0 : suggestion.label)) {
258
- addChip(e.target.value);
259
- }
260
-
261
- setDropdownIsOpen(!dropdownIsOpen);
262
-
263
- if ((matches === null || matches === void 0 ? void 0 : matches.length) === 0) {
264
- setValue('');
265
- }
266
- } else if (e.keyCode === 40) {
267
- setDropdownIsOpen(!dropdownIsOpen);
268
- }
269
- }
270
- };
271
-
272
- var handleClickOutside = function handleClickOutside(e) {
273
- if (styledFieldRef !== null && styledFieldRef !== void 0 && styledFieldRef.current && !styledFieldRef.current.contains(e.target)) {
274
- if (dropdownIsOpen) {
275
- setDropdownIsOpen(false);
276
-
277
- if (!givenList.find(function (e) {
278
- return e.value === value;
279
- })) {
280
- setValue('');
281
- }
282
- }
283
- }
284
- };
285
-
286
- React.useEffect(function () {
287
- document.addEventListener('keypress', handleKeyPress);
288
- document.addEventListener('click', handleClickOutside);
289
- return function () {
290
- document.removeEventListener('keypress', handleKeyPress);
291
- document.removeEventListener('click', handleClickOutside);
292
- };
293
- });
294
- /**
295
- * Return Chip Input component.
296
- */
297
-
298
- var dropdownItems = [];
299
- if (currentSearchResult) dropdownItems = currentSearchResult.map(function (x) {
300
- return {
301
- value: x.value,
302
- displayLabel: x.label,
303
- noteLabel: x.secondaryLabel
304
- };
305
- });
306
- if (suggestion && !chips.includes(suggestion.value)) dropdownItems = [{
307
- value: suggestion.value,
308
- displayLabel: suggestion.label,
309
- noteLabel: suggestion.secondaryLabel,
310
- suggestion: true
311
- }].concat((0, _toConsumableArray2.default)(dropdownItems));
312
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Wrapper, {
313
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledChipInputContainer, {
314
- id: inputId,
315
- onClick: function onClick(e) {
316
- e.stopPropagation();
317
- setDropdownIsOpen(true);
318
- chipInput.current.focus();
319
- },
320
- className: validationType,
321
- ref: styledFieldRef,
322
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.Search, {
323
- size: "24px",
324
- className: "SearchIcon"
325
- }), chips === null || chips === void 0 ? void 0 : chips.map(function (chip, index) {
326
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.InputChip, {
327
- icon: givenList.find(function (l) {
328
- return l.value === chip;
329
- }) ? 'User' : undefined,
330
- size: _types.Size.Medium,
331
- variant: variants && variants !== null && variants !== void 0 && variants.length && variants[index] ? variants[index] : 'normal',
332
- text: chip,
333
- onRemove: function onRemove() {
334
- return onRemoveChip(index);
335
- },
336
- onClick: function onClick() {
337
- return onEditChip(chip, index);
338
- }
339
- }, "chip_".concat(index));
340
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ChipInput, {
341
- type: "text",
342
- onChange: function onChange(event) {
343
- setValue(event.target.value);
344
- setRestartFilter(false);
345
- setDropdownIsOpen(true);
346
-
347
- if (onInputChange) {
348
- onInputChange(event.target.value || '');
349
- }
350
- },
351
- onKeyDown: function onKeyDown(event) {
352
- onAddChip(event);
353
- },
354
- placeholder: placeholder && (chips === null || chips === void 0 ? void 0 : chips.length) === 0 ? placeholder : '',
355
- onClick: function onClick(e) {
356
- e.stopPropagation();
357
- setDropdownIsOpen(true);
358
- },
359
- onFocus: function onFocus() {
360
- setDropdownIsOpen(true);
361
- },
362
- ref: chipInput
363
- }), loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Loading, {
364
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicator.LoadingIndicator, {
365
- size: _types.Size.Small,
366
- color: _styles.COLORS.neutral_600
367
- })
368
- }) : null]
369
- }), (!maxSelectedItems || maxSelectedItems && chips.length < maxSelectedItems) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_DropdownContent.default, {
370
- customizationProps: {
371
- action: function action() {},
372
- pinTopItem: true,
373
- itemsType: 'normal',
374
- scrollable: true,
375
- actionLabel: '',
376
- multiSelect: false,
377
- onValueUpdate: handleValueUpdate,
378
- items: dropdownItems
379
- },
380
- focused: focused,
381
- setFocused: setFocused,
382
- hideOnClickOutside: false,
383
- selectedValues: [],
384
- messageOnNoResults: messageOnNoResults !== null && messageOnNoResults !== void 0 ? messageOnNoResults : '',
385
- setSelectedValues: function setSelectedValues() {},
386
- isOpen: dropdownIsOpen,
387
- setIsOpen: setDropdownIsOpen,
388
- filter: '',
389
- isButton: false,
390
- id: "".concat(inputId, "_dropdowncontent")
391
- }), validationMessage && validationType === 'warning' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styling.WarningMessage, {
392
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.TechnicalWarning, {
393
- size: "20px",
394
- color: _styles.COLORS.critical_500
395
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
396
- children: validationMessage
397
- })]
398
- }) : validationType === 'error' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styling.ErrorMessage, {
399
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.TechnicalWarning, {
400
- size: "20px",
401
- color: _styles.COLORS.critical_400
402
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
403
- children: validationMessage
404
- })]
405
- })]
406
- });
407
- };
408
-
409
- ChipDropdownInput.propTypes = {
410
- list: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.shape({
411
- label: _propTypes.default.string.isRequired,
412
- secondaryLabel: _propTypes.default.string,
413
- value: _propTypes.default.string.isRequired
414
- })), _propTypes.default.arrayOf(_propTypes.default.string)]).isRequired,
415
- onInputChange: _propTypes.default.func,
416
- disableSorting: _propTypes.default.bool,
417
- messageOnNoResults: _propTypes.default.string,
418
- isButton: _propTypes.default.bool,
419
- autofilledMessage: _propTypes.default.string,
420
- suggestion: _propTypes.default.shape({
421
- label: _propTypes.default.string.isRequired,
422
- secondaryLabel: _propTypes.default.string,
423
- value: _propTypes.default.string.isRequired
424
- }),
425
- excludeIcon: _propTypes.default.bool,
426
- loading: _propTypes.default.bool,
427
- maxSelectedItems: _propTypes.default.number
428
- };
429
- var _default = ChipDropdownInput;
430
- exports.default = _default;
431
- //# sourceMappingURL=ChipDropdownInput.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Dropdown/ChipDropdownInput.tsx"],"names":["Wrapper","styled","div","StyledChipInputContainer","ChipInputContainer","COLORS","neutral_400","primary_100","critical_400","warning_400","primary_600","primary_800","primary_700","ChipInput","input","ComponentTextStyle","Regular","black","Loading","ChipDropdownInput","list","onInputChange","disableSorting","messageOnNoResults","values","inputId","variants","placeholder","validationType","validationMessage","onValueChange","suggestion","excludeIcon","loading","maxSelectedItems","React","useState","givenList","setGivenList","chips","setChips","value","setValue","dropdownIsOpen","setDropdownIsOpen","currentSearchResult","setCurrentSearchResult","restartFilter","setRestartFilter","focused","setFocused","chipInput","useRef","styledFieldRef","useEffect","newList","map","e","label","addChip","newChip","current","onAddChip","event","keyCode","find","preventDefault","onRemoveChip","length","index","elementToAdd","newChips","splice","onEditChip","text","options","filter","option","toUpperCase","indexOf","secondaryLabel","sort","o","includes","handleValueUpdate","focus","handleKeyPress","contains","target","matches","c","toLowerCase","handleClickOutside","document","addEventListener","removeEventListener","dropdownItems","x","displayLabel","noteLabel","stopPropagation","chip","l","undefined","Size","Medium","Small","neutral_600","action","pinTopItem","itemsType","scrollable","actionLabel","multiSelect","onValueUpdate","items","critical_500","isButton","autofilledMessage"],"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 { InputChip } from '../Chips/index';\nimport { Search, TechnicalWarning, User } from '../icons/systemicons/SystemIcons';\nimport { WarningMessage, ErrorMessage } from '../InputFields/styling';\nimport { COLORS, scrollBarStyling } from '../styles';\n\n/**\n * Import custom styles.\n */\nimport { ChipInputContainer } from '../Chips/ChipStyles';\n\n/**\n * Import custom types.\n */\nimport { Size } from '../types';\nimport { ChipInputProps } from '../Chips/ChipTypes';\n\nimport DropdownContent, { DropdownItem } from './DropdownContent';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { ComponentMStyling, ComponentXXSStyling, ComponentTextStyle } from '../styles/typography';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 344px;\n`;\n\nconst StyledChipInputContainer = styled(ChipInputContainer)`\n padding: 2px 2px 2px 48px !important;\n min-height: 56px;\n max-height: 176px;\n overflow-y: auto;\n box-shadow: 0px 0px 0px 1px ${COLORS.neutral_400};\n\n .medium {\n margin-right: 8px !important;\n }\n .SearchIcon {\n position: absolute;\n left: 18px;\n top: 18px;\n }\n\n &:active {\n background-color: ${COLORS.primary_100};\n }\n\n &.invalid {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.critical_400};\n }\n &.alreadyInOrganization {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.warning_400};\n }\n\n &.empty:hover {\n box-shadow: 0px 0px 0px 2px ${COLORS.primary_600};\n }\n\n &.inputHasFocus {\n box-shadow: 0px 0px 0px 2px ${COLORS.primary_800};\n }\n &:hover {\n box-shadow: 0px 0px 0px 2px ${COLORS.primary_700};\n }\n`;\n\nconst ChipInput = styled.input`\n height: 40px;\n width: auto;\n display: inline-flex;\n border: none;\n outline: none;\n margin: 4px;\n\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\n color: ${COLORS.black} !important;\n background-color: inherit;\n`;\n\nconst Loading = styled.div`\n margin: auto 16px auto auto !important;\n height: 20px;\n div {\n height: 20px;\n }\n`;\n\ninterface List {\n label: string;\n secondaryLabel?: string;\n value: string;\n}\n\ninterface ChipDropdownInputProps extends ChipInputProps {\n list: List[] | string[];\n onInputChange?: (input: string) => void;\n disableSorting?: boolean;\n messageOnNoResults?: string;\n isButton?: boolean;\n autofilledMessage?: string;\n suggestion?: List;\n excludeIcon?: boolean;\n loading?: boolean;\n maxSelectedItems?: number;\n}\n\nconst 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 excludeIcon,\n loading,\n maxSelectedItems,\n}: ChipDropdownInputProps) => {\n // Initiate states\n const [givenList, setGivenList] = React.useState<List[]>([]);\n const [chips, setChips] = React.useState<string[]>([]);\n const [value, setValue] = React.useState<string>('');\n const [dropdownIsOpen, setDropdownIsOpen] = React.useState<boolean>(false);\n const [currentSearchResult, setCurrentSearchResult] = React.useState<List[]>();\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [focused, setFocused] = React.useState<number | null>(null);\n\n // Initiate refs\n const chipInput = React.useRef<any>();\n const styledFieldRef = React.useRef<HTMLDivElement>(null);\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n // Let's add initial chip values\n setChips(values);\n }, [values]);\n\n /**\n * Convert string[] to List[] if necessary\n */\n React.useEffect(() => {\n if (typeof list[0] === 'string') {\n const newList: List[] = (list as string[]).map((e: string) => ({ label: e, value: e }));\n setGivenList(newList);\n } else {\n setGivenList(list as List[]);\n }\n }, [list]);\n\n const addChip = (newChip: string) => {\n // Let's add the chip\n setChips([...chips, newChip]);\n onValueChange([...chips, newChip]);\n\n // Let's clear the old value\n chipInput.current.value = '';\n setValue('');\n };\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const onAddChip = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n // Let's trigger only on enter, comma and space key press\n if ((event.keyCode === 13 || event.keyCode === 32 || event.keyCode === 188) && value) {\n if (!givenList.find((e) => e.value === value)) {\n setValue('');\n return;\n }\n // Let's prevent default action - adding new key to the value\n event.preventDefault();\n\n addChip(value);\n }\n if (event.keyCode === 8 && value === '') {\n onRemoveChip(chips.length - 1);\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 * @param elementToAdd - Element which needs to be added in the deleted element place.\n */\n const onRemoveChip = (index: number, elementToAdd?: string): 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 if (elementToAdd) {\n newChips.splice(index, 1, elementToAdd);\n } else {\n newChips.splice(index, 1);\n }\n\n // Let's update the chip list\n setChips([...newChips]);\n onValueChange([...newChips]);\n };\n\n /**\n * Changes a status of the chip to edit.\n * @param text - Text of the chip that is being edited.\n * @param index - Index of the chip in the array.\n */\n const onEditChip = (text: string, index: number): void => {\n // Let's check if we have to add value as a chip (in case we have entered something in the input field)\n if (chipInput.current.value !== '') {\n // Let's replace the chip\n onRemoveChip(index, chipInput.current.value);\n } else {\n // Let's just remove the chip\n onRemoveChip(index);\n }\n\n // Let's update the text value of input field\n chipInput.current.value = text;\n setValue(text);\n };\n\n React.useEffect(() => {\n let options = [...givenList];\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 if (!disableSorting) {\n options = options.sort();\n }\n options = options.filter((o) => !chips.includes(o.value));\n setCurrentSearchResult(options);\n }, [value, givenList, chips]);\n\n const handleValueUpdate = (values: string[]) => {\n setRestartFilter(true);\n addChip(values[0]);\n chipInput?.current?.focus();\n }\n\n const handleKeyPress = (e: any) => {\n if (styledFieldRef?.current && styledFieldRef.current.contains(e.target)) {\n if (e.keyCode === 13) {\n const matches = currentSearchResult?.filter((c) => c.value.toLowerCase() === value.toLowerCase());\n if (matches?.length === 1 /*&& onSelect*/) {\n addChip(matches[0].value);\n //onSelect(chips);\n } else if (e.target.value === suggestion?.label) {\n addChip(e.target.value);\n }\n\n setDropdownIsOpen(!dropdownIsOpen);\n if (matches?.length === 0) {\n setValue('');\n }\n } else if (e.keyCode === 40) {\n setDropdownIsOpen(!dropdownIsOpen);\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (styledFieldRef?.current && !styledFieldRef.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 React.useEffect(() => {\n document.addEventListener('keypress', handleKeyPress);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keypress', handleKeyPress);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n /**\n * Return Chip Input component.\n */\n\n let dropdownItems: DropdownItem[] = [];\n if(currentSearchResult)\n dropdownItems = currentSearchResult.map(x => ({ value: x.value, displayLabel: x.label, noteLabel: x.secondaryLabel }));\n \n if(suggestion && !chips.includes(suggestion.value))\n dropdownItems = [{ value: suggestion.value, displayLabel: suggestion.label, noteLabel: suggestion.secondaryLabel, suggestion: true }, ...dropdownItems];\n\n return (\n <Wrapper>\n <StyledChipInputContainer\n id={inputId}\n onClick={(e: any) => {\n e.stopPropagation();\n setDropdownIsOpen(true);\n chipInput.current.focus();\n }}\n className={validationType}\n ref={styledFieldRef}>\n <Search size=\"24px\" className=\"SearchIcon\" />\n {chips?.map((chip: string, index: number) => (\n <InputChip\n icon={givenList.find((l: List) => l.value === chip) ? 'User' : undefined}\n size={Size.Medium}\n variant={variants && variants?.length && variants[index] ? variants[index] : 'normal'}\n text={chip}\n onRemove={() => onRemoveChip(index)}\n onClick={() => onEditChip(chip, index)}\n key={`chip_${index}`}></InputChip>\n ))}\n\n <ChipInput\n type=\"text\"\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value);\n setRestartFilter(false);\n setDropdownIsOpen(true);\n if (onInputChange) {\n onInputChange(event.target.value || '');\n }\n }}\n onKeyDown={(event: React.KeyboardEvent<HTMLInputElement>) => {\n onAddChip(event);\n }}\n placeholder={placeholder && chips?.length === 0 ? placeholder : ''}\n onClick={(e: any) => {\n e.stopPropagation();\n setDropdownIsOpen(true);\n }}\n onFocus={() => {\n setDropdownIsOpen(true);\n }}\n ref={chipInput}\n />\n {loading ? (\n <Loading>\n <LoadingIndicator size={Size.Small} color={COLORS.neutral_600} />\n </Loading>\n ) : null}\n </StyledChipInputContainer>\n {(!maxSelectedItems || (maxSelectedItems && chips.length < maxSelectedItems)) && (\n <DropdownContent \n customizationProps={{\n action: () => {},\n pinTopItem: true,\n \n itemsType: 'normal',\n scrollable: true,\n actionLabel: '',\n multiSelect: false,\n onValueUpdate: handleValueUpdate,\n items: dropdownItems\n }}\n focused={focused}\n setFocused={setFocused}\n hideOnClickOutside={false}\n selectedValues={[]}\n messageOnNoResults={messageOnNoResults ?? ''}\n setSelectedValues={() => {}}\n isOpen={dropdownIsOpen}\n setIsOpen={setDropdownIsOpen}\n filter={''}\n isButton={false} \n id={`${inputId}_dropdowncontent`} />\n )}\n\n {/* If there is an error, let's render the error */}\n {validationMessage && validationType === 'warning' ? (\n <WarningMessage>\n <TechnicalWarning size=\"20px\" color={COLORS.critical_500} />\n <span>{validationMessage}</span>\n </WarningMessage>\n ) : (\n validationType === 'error' && (\n <ErrorMessage>\n <TechnicalWarning size=\"20px\" color={COLORS.critical_400} />\n <span>{validationMessage}</span>\n </ErrorMessage>\n )\n )}\n </Wrapper>\n );\n};\n\nexport default ChipDropdownInput;\n"],"file":"ChipDropdownInput.cjs"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Import React libraries.
3
- */
4
- import * as React from 'react';
5
- import { ChipInputProps } from '../Chips/ChipTypes';
6
- interface List {
7
- label: string;
8
- secondaryLabel?: string;
9
- value: string;
10
- }
11
- interface ChipDropdownInputProps extends ChipInputProps {
12
- list: List[] | string[];
13
- onInputChange?: (input: string) => void;
14
- disableSorting?: boolean;
15
- messageOnNoResults?: string;
16
- isButton?: boolean;
17
- autofilledMessage?: string;
18
- suggestion?: List;
19
- excludeIcon?: boolean;
20
- loading?: boolean;
21
- maxSelectedItems?: number;
22
- }
23
- declare const ChipDropdownInput: React.FunctionComponent<ChipDropdownInputProps>;
24
- export default ChipDropdownInput;