@coreui/react 5.9.2 → 5.11.0
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.
- package/LICENSE +1 -1
- package/README.md +2 -2
- package/dist/cjs/components/chip/CChip.d.ts +76 -0
- package/dist/cjs/components/chip/CChip.js +178 -0
- package/dist/cjs/components/chip/CChip.js.map +1 -0
- package/dist/cjs/components/chip/index.d.ts +2 -0
- package/dist/cjs/components/dropdown/CDropdown.js +1 -1
- package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
- package/dist/cjs/components/form/CChipInput.d.ts +92 -0
- package/dist/cjs/components/form/CChipInput.js +253 -0
- package/dist/cjs/components/form/CChipInput.js.map +1 -0
- package/dist/cjs/components/form/index.d.ts +2 -1
- package/dist/cjs/components/index.d.ts +2 -0
- package/dist/cjs/components/nav/CNavGroup.d.ts +3 -1
- package/dist/cjs/components/nav/CNavGroup.js +9 -5
- package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
- package/dist/cjs/components/popover/CPopover.js +14 -17
- package/dist/cjs/components/popover/CPopover.js.map +1 -1
- package/dist/cjs/components/search-button/CSearchButton.d.ts +32 -0
- package/dist/cjs/components/search-button/CSearchButton.js +77 -0
- package/dist/cjs/components/search-button/CSearchButton.js.map +1 -0
- package/dist/cjs/components/search-button/index.d.ts +2 -0
- package/dist/cjs/components/search-button/types.d.ts +10 -0
- package/dist/cjs/components/search-button/utils.d.ts +11 -0
- package/dist/cjs/components/search-button/utils.js +115 -0
- package/dist/cjs/components/search-button/utils.js.map +1 -0
- package/dist/cjs/components/sidebar/CSidebarNav.d.ts +12 -0
- package/dist/cjs/components/sidebar/CSidebarNav.js +7 -2
- package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/cjs/components/tooltip/CTooltip.js +14 -17
- package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/components/chip/CChip.d.ts +76 -0
- package/dist/esm/components/chip/CChip.js +176 -0
- package/dist/esm/components/chip/CChip.js.map +1 -0
- package/dist/esm/components/chip/index.d.ts +2 -0
- package/dist/esm/components/dropdown/CDropdown.js +1 -1
- package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
- package/dist/esm/components/form/CChipInput.d.ts +92 -0
- package/dist/esm/components/form/CChipInput.js +251 -0
- package/dist/esm/components/form/CChipInput.js.map +1 -0
- package/dist/esm/components/form/index.d.ts +2 -1
- package/dist/esm/components/index.d.ts +2 -0
- package/dist/esm/components/nav/CNavGroup.d.ts +3 -1
- package/dist/esm/components/nav/CNavGroup.js +9 -5
- package/dist/esm/components/nav/CNavGroup.js.map +1 -1
- package/dist/esm/components/popover/CPopover.js +14 -17
- package/dist/esm/components/popover/CPopover.js.map +1 -1
- package/dist/esm/components/search-button/CSearchButton.d.ts +32 -0
- package/dist/esm/components/search-button/CSearchButton.js +75 -0
- package/dist/esm/components/search-button/CSearchButton.js.map +1 -0
- package/dist/esm/components/search-button/index.d.ts +2 -0
- package/dist/esm/components/search-button/types.d.ts +10 -0
- package/dist/esm/components/search-button/utils.d.ts +11 -0
- package/dist/esm/components/search-button/utils.js +104 -0
- package/dist/esm/components/search-button/utils.js.map +1 -0
- package/dist/esm/components/sidebar/CSidebarNav.d.ts +12 -0
- package/dist/esm/components/sidebar/CSidebarNav.js +7 -2
- package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/esm/components/tooltip/CTooltip.js +14 -17
- package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +7 -7
- package/src/components/chip/CChip.tsx +372 -0
- package/src/components/chip/__tests__/CChip.spec.tsx +113 -0
- package/src/components/chip/__tests__/__snapshots__/CChip.spec.tsx.snap +65 -0
- package/src/components/chip/index.ts +3 -0
- package/src/components/dropdown/CDropdown.tsx +1 -1
- package/src/components/dropdown/__tests__/CDropdown.spec.tsx +1 -1
- package/src/components/dropdown/__tests__/__snapshots__/CDropdown.spec.tsx.snap +2 -2
- package/src/components/dropdown/__tests__/__snapshots__/CDropdownMenu.spec.tsx.snap +1 -1
- package/src/components/form/CChipInput.tsx +477 -0
- package/src/components/form/__tests__/CChipInput.spec.tsx +62 -0
- package/src/components/form/__tests__/__snapshots__/CChipInput.spec.tsx.snap +91 -0
- package/src/components/form/index.ts +2 -0
- package/src/components/index.ts +2 -0
- package/src/components/nav/CNavGroup.tsx +11 -6
- package/src/components/nav/__tests__/CNavGroup.spec.tsx +29 -1
- package/src/components/nav/__tests__/__snapshots__/CNavGroup.spec.tsx.snap +1 -1
- package/src/components/popover/CPopover.tsx +15 -20
- package/src/components/popover/__tests__/CPopover.spec.tsx +10 -4
- package/src/components/search-button/CSearchButton.tsx +195 -0
- package/src/components/search-button/__tests__/CSearchButton.spec.tsx +95 -0
- package/src/components/search-button/__tests__/__snapshots__/CSearchButton.spec.tsx.snap +87 -0
- package/src/components/search-button/index.ts +3 -0
- package/src/components/search-button/types.ts +10 -0
- package/src/components/search-button/utils.ts +140 -0
- package/src/components/sidebar/CSidebarNav.tsx +27 -2
- package/src/components/tooltip/CTooltip.tsx +15 -20
- package/src/components/tooltip/__tests__/CTooltip.spec.tsx +6 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import React, { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
type ChipClassName = string | ((value: string) => string);
|
|
3
|
+
export interface CChipInputProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'onSelect'> {
|
|
4
|
+
/**
|
|
5
|
+
* Adds custom classes to the React Chip Input component root element.
|
|
6
|
+
*/
|
|
7
|
+
className?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Adds custom classes to chips rendered by the React Chip Input component. Accepts a static className or a resolver function based on chip value.
|
|
10
|
+
*/
|
|
11
|
+
chipClassName?: ChipClassName;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new chip when the React Chip Input component loses focus with a pending value.
|
|
14
|
+
*/
|
|
15
|
+
createOnBlur?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Sets the initial uncontrolled values rendered by the React Chip Input component.
|
|
18
|
+
*/
|
|
19
|
+
defaultValue?: string[];
|
|
20
|
+
/**
|
|
21
|
+
* Disables the React Chip Input component and prevents adding, removing, or selecting chips.
|
|
22
|
+
*/
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Sets the `id` of the internal text input rendered by the React Chip Input component.
|
|
26
|
+
*/
|
|
27
|
+
id?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Renders an inline label inside the React Chip Input component container.
|
|
30
|
+
*/
|
|
31
|
+
label?: ReactNode;
|
|
32
|
+
/**
|
|
33
|
+
* Sets the maximum number of chips that can be created in the React Chip Input component.
|
|
34
|
+
*/
|
|
35
|
+
maxChips?: number | null;
|
|
36
|
+
/**
|
|
37
|
+
* Sets the name of the hidden input used by the React Chip Input component for form submission.
|
|
38
|
+
*/
|
|
39
|
+
name?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Callback fired when the React Chip Input component adds a new chip.
|
|
42
|
+
*/
|
|
43
|
+
onAdd?: (value: string) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Callback fired when the value list of the React Chip Input component changes.
|
|
46
|
+
*/
|
|
47
|
+
onChange?: (values: string[]) => void;
|
|
48
|
+
/**
|
|
49
|
+
* Callback fired when the internal text input value changes in the React Chip Input component.
|
|
50
|
+
*/
|
|
51
|
+
onInput?: (value: string) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Callback fired when the React Chip Input component removes a chip.
|
|
54
|
+
*/
|
|
55
|
+
onRemove?: (value: string) => void;
|
|
56
|
+
/**
|
|
57
|
+
* Callback fired when the selected chip values change in the React Chip Input component.
|
|
58
|
+
*/
|
|
59
|
+
onSelect?: (selected: string[]) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Sets placeholder text for the internal input of the React Chip Input component.
|
|
62
|
+
*/
|
|
63
|
+
placeholder?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Makes the React Chip Input component readonly while keeping values visible.
|
|
66
|
+
*/
|
|
67
|
+
readOnly?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Displays remove buttons on chips managed by the React Chip Input component.
|
|
70
|
+
*/
|
|
71
|
+
removable?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Enables chip selection behavior in the React Chip Input component.
|
|
74
|
+
*/
|
|
75
|
+
selectable?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Sets the separator character used to create chips while typing or pasting in the React Chip Input component.
|
|
78
|
+
*/
|
|
79
|
+
separator?: string | null;
|
|
80
|
+
/**
|
|
81
|
+
* Sets the size of the React Chip Input component to small or large.
|
|
82
|
+
*/
|
|
83
|
+
size?: 'sm' | 'lg';
|
|
84
|
+
/**
|
|
85
|
+
* Controls the values rendered by the React Chip Input component.
|
|
86
|
+
*
|
|
87
|
+
* @controllable onChange
|
|
88
|
+
*/
|
|
89
|
+
value?: string[];
|
|
90
|
+
}
|
|
91
|
+
export declare const CChipInput: React.ForwardRefExoticComponent<CChipInputProps & React.RefAttributes<HTMLDivElement>>;
|
|
92
|
+
export {};
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { __rest } from '../../node_modules/tslib/tslib.es6.js';
|
|
2
|
+
import React, { forwardRef, useState, useRef, useMemo, useEffect } from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import classNames from '../../_virtual/index.js';
|
|
5
|
+
import { CChip } from '../chip/CChip.js';
|
|
6
|
+
import { useForkedRef } from '../../hooks/useForkedRef.js';
|
|
7
|
+
import '@popperjs/core';
|
|
8
|
+
|
|
9
|
+
const resolveChipClassName = (chipClassName, value) => {
|
|
10
|
+
if (!chipClassName) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
if (typeof chipClassName === 'function') {
|
|
14
|
+
const resolvedClassName = chipClassName(value);
|
|
15
|
+
return typeof resolvedClassName === 'string' ? resolvedClassName : undefined;
|
|
16
|
+
}
|
|
17
|
+
return chipClassName;
|
|
18
|
+
};
|
|
19
|
+
const uniqueValues = (values) => [
|
|
20
|
+
...new Set(values.map((value) => value.trim()).filter(Boolean)),
|
|
21
|
+
];
|
|
22
|
+
const CChipInput = forwardRef((_a, ref) => {
|
|
23
|
+
var { className, chipClassName, createOnBlur = true, defaultValue = [], disabled, id, label, maxChips = null, name, onAdd, onChange, onInput, onRemove, onSelect, placeholder = '', readOnly, removable = true, selectable, separator = ',', size, value } = _a, rest = __rest(_a, ["className", "chipClassName", "createOnBlur", "defaultValue", "disabled", "id", "label", "maxChips", "name", "onAdd", "onChange", "onInput", "onRemove", "onSelect", "placeholder", "readOnly", "removable", "selectable", "separator", "size", "value"]);
|
|
24
|
+
const isControlled = value !== undefined;
|
|
25
|
+
const [_values, setValues] = useState(() => uniqueValues(defaultValue));
|
|
26
|
+
const [inputValue, setInputValue] = useState('');
|
|
27
|
+
const [selectedValues, setSelectedValues] = useState([]);
|
|
28
|
+
const rootRef = useRef(null);
|
|
29
|
+
const inputRef = useRef(null);
|
|
30
|
+
const forkedRef = useForkedRef(ref, rootRef);
|
|
31
|
+
const values = useMemo(() => uniqueValues(isControlled ? value : _values), [isControlled, value, _values]);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
setSelectedValues((prev) => prev.filter((item) => values.includes(item)));
|
|
34
|
+
}, [values]);
|
|
35
|
+
const emitValuesChange = (nextValues) => {
|
|
36
|
+
if (!isControlled) {
|
|
37
|
+
setValues(nextValues);
|
|
38
|
+
}
|
|
39
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(nextValues);
|
|
40
|
+
};
|
|
41
|
+
const canAddMore = maxChips === null || values.length < maxChips;
|
|
42
|
+
const add = (rawValue) => {
|
|
43
|
+
if (disabled || readOnly) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
const normalizedValue = String(rawValue).trim();
|
|
47
|
+
if (!normalizedValue || values.includes(normalizedValue) || !canAddMore) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
const nextValues = [...values, normalizedValue];
|
|
51
|
+
emitValuesChange(nextValues);
|
|
52
|
+
onAdd === null || onAdd === void 0 ? void 0 : onAdd(normalizedValue);
|
|
53
|
+
return true;
|
|
54
|
+
};
|
|
55
|
+
const remove = (valueToRemove) => {
|
|
56
|
+
if (disabled || readOnly) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
if (!values.includes(valueToRemove)) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
const nextValues = values.filter((item) => item !== valueToRemove);
|
|
63
|
+
emitValuesChange(nextValues);
|
|
64
|
+
setSelectedValues((prev) => {
|
|
65
|
+
const nextSelected = prev.filter((item) => item !== valueToRemove);
|
|
66
|
+
if (nextSelected.length !== prev.length) {
|
|
67
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextSelected);
|
|
68
|
+
}
|
|
69
|
+
return nextSelected;
|
|
70
|
+
});
|
|
71
|
+
onRemove === null || onRemove === void 0 ? void 0 : onRemove(valueToRemove);
|
|
72
|
+
return true;
|
|
73
|
+
};
|
|
74
|
+
const createFromInput = () => {
|
|
75
|
+
if (add(inputValue)) {
|
|
76
|
+
setInputValue('');
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
const focusLastChip = () => {
|
|
80
|
+
if (!rootRef.current) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const focusableChips = [
|
|
84
|
+
...rootRef.current.querySelectorAll('[data-coreui-chip-focusable="true"]:not(.disabled)'),
|
|
85
|
+
];
|
|
86
|
+
if (focusableChips.length === 0) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
focusableChips[focusableChips.length - 1].focus();
|
|
90
|
+
};
|
|
91
|
+
const handleInputKeyDown = (event) => {
|
|
92
|
+
switch (event.key) {
|
|
93
|
+
case 'Enter': {
|
|
94
|
+
event.preventDefault();
|
|
95
|
+
createFromInput();
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
case 'Backspace':
|
|
99
|
+
case 'Delete': {
|
|
100
|
+
if (inputValue === '') {
|
|
101
|
+
event.preventDefault();
|
|
102
|
+
focusLastChip();
|
|
103
|
+
}
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
case 'ArrowLeft': {
|
|
107
|
+
if (event.currentTarget.selectionStart === 0 && event.currentTarget.selectionEnd === 0) {
|
|
108
|
+
event.preventDefault();
|
|
109
|
+
focusLastChip();
|
|
110
|
+
}
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
case 'Escape': {
|
|
114
|
+
setInputValue('');
|
|
115
|
+
event.currentTarget.blur();
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
// No default
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
const handleInputChange = (value) => {
|
|
122
|
+
if (disabled || readOnly) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (separator && value.includes(separator)) {
|
|
126
|
+
const parts = value.split(separator);
|
|
127
|
+
const chipsToAdd = uniqueValues(parts.slice(0, -1));
|
|
128
|
+
const nextValues = [...values];
|
|
129
|
+
for (const chipValue of chipsToAdd) {
|
|
130
|
+
if (maxChips !== null && nextValues.length >= maxChips) {
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
if (!nextValues.includes(chipValue)) {
|
|
134
|
+
nextValues.push(chipValue);
|
|
135
|
+
onAdd === null || onAdd === void 0 ? void 0 : onAdd(chipValue);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (nextValues.length !== values.length) {
|
|
139
|
+
emitValuesChange(nextValues);
|
|
140
|
+
}
|
|
141
|
+
const tail = parts[parts.length - 1] || '';
|
|
142
|
+
setInputValue(tail);
|
|
143
|
+
onInput === null || onInput === void 0 ? void 0 : onInput(tail);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
setInputValue(value);
|
|
147
|
+
onInput === null || onInput === void 0 ? void 0 : onInput(value);
|
|
148
|
+
};
|
|
149
|
+
const handlePaste = (event) => {
|
|
150
|
+
if (disabled || readOnly || !separator) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
const pastedData = event.clipboardData.getData('text');
|
|
154
|
+
if (!pastedData.includes(separator)) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
event.preventDefault();
|
|
158
|
+
const chipsToAdd = uniqueValues(pastedData.split(separator));
|
|
159
|
+
const nextValues = [...values];
|
|
160
|
+
for (const chipValue of chipsToAdd) {
|
|
161
|
+
if (maxChips !== null && nextValues.length >= maxChips) {
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
if (!nextValues.includes(chipValue)) {
|
|
165
|
+
nextValues.push(chipValue);
|
|
166
|
+
onAdd === null || onAdd === void 0 ? void 0 : onAdd(chipValue);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
if (nextValues.length !== values.length) {
|
|
170
|
+
emitValuesChange(nextValues);
|
|
171
|
+
}
|
|
172
|
+
setInputValue('');
|
|
173
|
+
onInput === null || onInput === void 0 ? void 0 : onInput('');
|
|
174
|
+
};
|
|
175
|
+
const handleInputBlur = (event) => {
|
|
176
|
+
var _a;
|
|
177
|
+
if (!createOnBlur) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
if ((_a = event.relatedTarget) === null || _a === void 0 ? void 0 : _a.closest('.chip')) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
createFromInput();
|
|
184
|
+
};
|
|
185
|
+
const handleContainerKeyDown = (event) => {
|
|
186
|
+
var _a;
|
|
187
|
+
if (event.target === inputRef.current) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
if (event.key.length === 1) {
|
|
191
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
const handleContainerClick = (event) => {
|
|
195
|
+
var _a;
|
|
196
|
+
if (event.target === rootRef.current) {
|
|
197
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
const handleSelectedChange = (chipValue, selected) => {
|
|
201
|
+
setSelectedValues((prev) => {
|
|
202
|
+
const nextSelected = selected
|
|
203
|
+
? uniqueValues([...prev, chipValue])
|
|
204
|
+
: prev.filter((value) => value !== chipValue);
|
|
205
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextSelected);
|
|
206
|
+
return nextSelected;
|
|
207
|
+
});
|
|
208
|
+
};
|
|
209
|
+
const inputSize = Math.max(placeholder.length, inputValue.length, 1);
|
|
210
|
+
return (React.createElement("div", Object.assign({ className: classNames('chip-input', {
|
|
211
|
+
'chip-input-sm': size === 'sm',
|
|
212
|
+
'chip-input-lg': size === 'lg',
|
|
213
|
+
disabled,
|
|
214
|
+
}, className), "aria-disabled": disabled ? true : undefined, "aria-readonly": readOnly ? true : undefined, onClick: handleContainerClick, onKeyDown: handleContainerKeyDown }, rest, { ref: forkedRef }),
|
|
215
|
+
label && (React.createElement("label", { className: "chip-input-label", htmlFor: id }, label)),
|
|
216
|
+
values.map((chipValue) => (React.createElement(CChip, { key: chipValue, className: resolveChipClassName(chipClassName, chipValue), removable: Boolean(removable && !disabled && !readOnly), ariaRemoveLabel: `Remove ${chipValue}`, disabled: disabled, onRemove: () => remove(chipValue), selectable: selectable, selected: selectedValues.includes(chipValue), onSelectedChange: (selected) => handleSelectedChange(chipValue, selected) }, chipValue))),
|
|
217
|
+
React.createElement("input", { type: "text", id: id, className: "chip-input-field", disabled: disabled, readOnly: Boolean(!disabled && readOnly), placeholder: placeholder, size: inputSize, value: inputValue, onBlur: handleInputBlur, onChange: (event) => handleInputChange(event.target.value), onKeyDown: handleInputKeyDown, onPaste: handlePaste, onFocus: () => {
|
|
218
|
+
if (selectedValues.length > 0) {
|
|
219
|
+
setSelectedValues([]);
|
|
220
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect([]);
|
|
221
|
+
}
|
|
222
|
+
}, ref: inputRef }),
|
|
223
|
+
name && React.createElement("input", { type: "hidden", name: name, value: values.join(',') })));
|
|
224
|
+
});
|
|
225
|
+
CChipInput.propTypes = {
|
|
226
|
+
chipClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),
|
|
227
|
+
className: PropTypes.string,
|
|
228
|
+
createOnBlur: PropTypes.bool,
|
|
229
|
+
defaultValue: PropTypes.array,
|
|
230
|
+
disabled: PropTypes.bool,
|
|
231
|
+
id: PropTypes.string,
|
|
232
|
+
label: PropTypes.node,
|
|
233
|
+
maxChips: PropTypes.number,
|
|
234
|
+
name: PropTypes.string,
|
|
235
|
+
onAdd: PropTypes.func,
|
|
236
|
+
onChange: PropTypes.func,
|
|
237
|
+
onInput: PropTypes.func,
|
|
238
|
+
onRemove: PropTypes.func,
|
|
239
|
+
onSelect: PropTypes.func,
|
|
240
|
+
placeholder: PropTypes.string,
|
|
241
|
+
readOnly: PropTypes.bool,
|
|
242
|
+
removable: PropTypes.bool,
|
|
243
|
+
selectable: PropTypes.bool,
|
|
244
|
+
separator: PropTypes.string,
|
|
245
|
+
size: PropTypes.oneOf(['sm', 'lg']),
|
|
246
|
+
value: PropTypes.array,
|
|
247
|
+
};
|
|
248
|
+
CChipInput.displayName = 'CChipInput';
|
|
249
|
+
|
|
250
|
+
export { CChipInput };
|
|
251
|
+
//# sourceMappingURL=CChipInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CChipInput.js","sources":["../../../../src/components/form/CChipInput.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CForm } from './CForm';
|
|
2
2
|
import { CFormCheck } from './CFormCheck';
|
|
3
|
+
import { CChipInput } from './CChipInput';
|
|
3
4
|
import { CFormControlValidation } from './CFormControlValidation';
|
|
4
5
|
import { CFormControlWrapper } from './CFormControlWrapper';
|
|
5
6
|
import { CFormFeedback } from './CFormFeedback';
|
|
@@ -13,4 +14,4 @@ import { CFormText } from './CFormText';
|
|
|
13
14
|
import { CFormTextarea } from './CFormTextarea';
|
|
14
15
|
import { CInputGroup } from './CInputGroup';
|
|
15
16
|
import { CInputGroupText } from './CInputGroupText';
|
|
16
|
-
export { CForm, CFormCheck, CFormControlValidation, CFormControlWrapper, CFormFeedback, CFormFloating, CFormInput, CFormLabel, CFormRange, CFormSelect, CFormSwitch, CFormText, CFormTextarea, CInputGroup, CInputGroupText, };
|
|
17
|
+
export { CForm, CFormCheck, CChipInput, CFormControlValidation, CFormControlWrapper, CFormFeedback, CFormFloating, CFormInput, CFormLabel, CFormRange, CFormSelect, CFormSwitch, CFormText, CFormTextarea, CInputGroup, CInputGroupText, };
|
|
@@ -9,6 +9,7 @@ export * from './button-group';
|
|
|
9
9
|
export * from './callout';
|
|
10
10
|
export * from './card';
|
|
11
11
|
export * from './carousel';
|
|
12
|
+
export * from './chip';
|
|
12
13
|
export * from './close-button';
|
|
13
14
|
export * from './collapse';
|
|
14
15
|
export * from './conditional-portal';
|
|
@@ -29,6 +30,7 @@ export * from './pagination';
|
|
|
29
30
|
export * from './placeholder';
|
|
30
31
|
export * from './progress';
|
|
31
32
|
export * from './popover';
|
|
33
|
+
export * from './search-button';
|
|
32
34
|
export * from './sidebar';
|
|
33
35
|
export * from './spinner';
|
|
34
36
|
export * from './table';
|
|
@@ -18,7 +18,9 @@ export interface CNavGroupProps extends HTMLAttributes<HTMLDivElement | HTMLLIEl
|
|
|
18
18
|
/**
|
|
19
19
|
* Set group toggler label.
|
|
20
20
|
*/
|
|
21
|
-
toggler?: string | ReactNode
|
|
21
|
+
toggler?: string | ReactNode | (({ visible }: {
|
|
22
|
+
visible: boolean;
|
|
23
|
+
}) => ReactNode);
|
|
22
24
|
/**
|
|
23
25
|
* Show nav group items.
|
|
24
26
|
*/
|
|
@@ -18,8 +18,11 @@ const CNavGroup = forwardRef((_a, ref) => {
|
|
|
18
18
|
const { visibleGroup, setVisibleGroup } = useContext(CSidebarNavContext);
|
|
19
19
|
const [_visible, setVisible] = useState(Boolean(visible || (idx && visibleGroup && isInVisibleGroup(visibleGroup, idx))));
|
|
20
20
|
useEffect(() => {
|
|
21
|
-
|
|
22
|
-
}, [
|
|
21
|
+
visible !== undefined && setVisible(visible);
|
|
22
|
+
}, [visible]);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
visibleGroup && setVisible(Boolean(idx && visibleGroup && isInVisibleGroup(visibleGroup, idx)));
|
|
25
|
+
}, [idx, visibleGroup]);
|
|
23
26
|
const handleTogglerOnCLick = (event) => {
|
|
24
27
|
event.preventDefault();
|
|
25
28
|
setVisibleGroup(_visible ? ((idx === null || idx === void 0 ? void 0 : idx.toString().includes('.')) ? idx.slice(0, idx.lastIndexOf('.')) : '') : idx);
|
|
@@ -55,9 +58,10 @@ const CNavGroup = forwardRef((_a, ref) => {
|
|
|
55
58
|
unmounted: {},
|
|
56
59
|
};
|
|
57
60
|
const NavGroupItemsComponent = Component === 'li' ? 'ul' : 'div';
|
|
61
|
+
const togglerContent = typeof toggler === 'function' ? toggler({ visible: _visible }) : toggler;
|
|
58
62
|
return (React.createElement(Component, Object.assign({ className: classNames('nav-group', { show: _visible }, className) }, rest, { ref: ref }),
|
|
59
|
-
toggler && (React.createElement("a", { className: "nav-link nav-group-toggle", href: "#", onClick: (event) => handleTogglerOnCLick(event) },
|
|
60
|
-
React.createElement(Transition, { in: _visible, nodeRef: navItemsRef, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited, timeout: 300 }, (state) => (React.createElement(NavGroupItemsComponent, { className: classNames('nav-group-items', {
|
|
63
|
+
toggler && (React.createElement("a", { className: "nav-link nav-group-toggle", href: "#", onClick: (event) => handleTogglerOnCLick(event) }, togglerContent)),
|
|
64
|
+
React.createElement(Transition, { appear: true, in: _visible, nodeRef: navItemsRef, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited, timeout: 300 }, (state) => (React.createElement(NavGroupItemsComponent, { className: classNames('nav-group-items', {
|
|
61
65
|
compact: compact,
|
|
62
66
|
}), style: Object.assign(Object.assign({}, style), transitionStyles[state]), ref: navItemsRef }, children)))));
|
|
63
67
|
});
|
|
@@ -67,7 +71,7 @@ CNavGroup.propTypes = {
|
|
|
67
71
|
className: PropTypes.string,
|
|
68
72
|
compact: PropTypes.bool,
|
|
69
73
|
idx: PropTypes.string,
|
|
70
|
-
toggler: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
|
|
74
|
+
toggler: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.func]),
|
|
71
75
|
visible: PropTypes.bool,
|
|
72
76
|
};
|
|
73
77
|
CNavGroup.displayName = 'CNavGroup';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CNavGroup.js","sources":["../../../../src/components/nav/CNavGroup.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"CNavGroup.js","sources":["../../../../src/components/nav/CNavGroup.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -28,12 +28,23 @@ const CPopover = forwardRef((_a, ref) => {
|
|
|
28
28
|
placement: getRTLPlacement(placement, togglerRef.current),
|
|
29
29
|
};
|
|
30
30
|
const computedPopperConfig = Object.assign(Object.assign({}, defaultPopperConfig), (typeof popperConfig === 'function' ? popperConfig(defaultPopperConfig) : popperConfig));
|
|
31
|
+
const handleShow = () => {
|
|
32
|
+
setMounted(true);
|
|
33
|
+
onShow === null || onShow === void 0 ? void 0 : onShow();
|
|
34
|
+
};
|
|
35
|
+
const handleHide = () => {
|
|
36
|
+
setTimeout(() => {
|
|
37
|
+
setVisible(false);
|
|
38
|
+
onHide === null || onHide === void 0 ? void 0 : onHide();
|
|
39
|
+
}, _delay.hide);
|
|
40
|
+
};
|
|
31
41
|
useEffect(() => {
|
|
32
|
-
if (visible) {
|
|
42
|
+
if (visible === true) {
|
|
33
43
|
handleShow();
|
|
34
|
-
return;
|
|
35
44
|
}
|
|
36
|
-
|
|
45
|
+
else if (visible === false) {
|
|
46
|
+
handleHide();
|
|
47
|
+
}
|
|
37
48
|
}, [visible]);
|
|
38
49
|
useEffect(() => {
|
|
39
50
|
if (mounted && togglerRef.current && popoverRef.current) {
|
|
@@ -54,20 +65,6 @@ const CPopover = forwardRef((_a, ref) => {
|
|
|
54
65
|
}, popoverRef.current);
|
|
55
66
|
}
|
|
56
67
|
}, [_visible]);
|
|
57
|
-
const handleShow = () => {
|
|
58
|
-
setMounted(true);
|
|
59
|
-
if (onShow) {
|
|
60
|
-
onShow();
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
const handleHide = () => {
|
|
64
|
-
setTimeout(() => {
|
|
65
|
-
setVisible(false);
|
|
66
|
-
if (onHide) {
|
|
67
|
-
onHide();
|
|
68
|
-
}
|
|
69
|
-
}, _delay.hide);
|
|
70
|
-
};
|
|
71
68
|
return (React.createElement(React.Fragment, null,
|
|
72
69
|
React.cloneElement(children, Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (_visible && {
|
|
73
70
|
'aria-describedby': id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CPopover.js","sources":["../../../../src/components/popover/CPopover.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;AAuJO,MAAM,QAAQ,GAAG,UAAU,CAChC,CACE,EAiBC,EACD,GAAG,KACD;QAnBF,EACE,QAAQ,EACR,SAAS,GAAG,IAAI,EAChB,SAAS,EACT,SAAS,EACT,OAAO,EACP,KAAK,GAAG,CAAC,EACT,kBAAkB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EACvD,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACf,MAAM,EACN,MAAM,EACN,SAAS,GAAG,KAAK,EACjB,YAAY,EACZ,KAAK,EACL,OAAO,GAAG,OAAO,EACjB,OAAO,EAAA,GAAA,EAER,EADI,IAAI,GAAA,MAAA,CAAA,EAAA,EAhBT,CAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,CAiBC,CADQ;AAIT,IAAA,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC;AAC/C,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAC/B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC;AAE/C,IAAA,MAAM,EAAE,GAAG,CAAA,OAAA,EAAU,KAAK,EAAE,EAAE;IAC9B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7C,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;IAEhD,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE;IAEjD,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK;AAE/E,IAAA,MAAM,mBAAmB,GAAqB;AAC5C,QAAA,SAAS,EAAE;YACT,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE;YACzD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE;YACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE;AACxC,SAAA;QACD,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC;KAC1D;IAED,MAAM,oBAAoB,mCACrB,mBAAmB,CAAA,GAClB,OAAO,YAAY,KAAK,UAAU,GAAG,YAAY,CAAC,mBAAmB,CAAC,GAAG,YAAY,EAC1F;IAED,SAAS,CAAC,MAAK;
|
|
1
|
+
{"version":3,"file":"CPopover.js","sources":["../../../../src/components/popover/CPopover.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React, { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface CSearchButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
/**
|
|
4
|
+
* Content to customize the full button body.
|
|
5
|
+
*/
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
/**
|
|
8
|
+
* A string of all className you want applied to the base component.
|
|
9
|
+
*/
|
|
10
|
+
className?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Custom icon displayed before the placeholder text.
|
|
13
|
+
*/
|
|
14
|
+
icon?: ReactNode;
|
|
15
|
+
/**
|
|
16
|
+
* Placeholder content rendered inside `.search-button-placeholder`.
|
|
17
|
+
*/
|
|
18
|
+
placeholder?: ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* Callback fired when the component is activated by click or keyboard shortcut.
|
|
21
|
+
*/
|
|
22
|
+
onTrigger?: () => void;
|
|
23
|
+
/**
|
|
24
|
+
* Prevent the browser's default behavior when the configured shortcut matches.
|
|
25
|
+
*/
|
|
26
|
+
preventDefault?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Comma-separated shortcut list. The component matches all configured shortcuts and renders the platform-preferred one.
|
|
29
|
+
*/
|
|
30
|
+
shortcut?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare const CSearchButton: React.ForwardRefExoticComponent<CSearchButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { __rest } from '../../node_modules/tslib/tslib.es6.js';
|
|
2
|
+
import React, { forwardRef, useRef, useState, useMemo, useCallback, useEffect } from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import classNames from '../../_virtual/index.js';
|
|
5
|
+
import { useForkedRef } from '../../hooks/useForkedRef.js';
|
|
6
|
+
import '@popperjs/core';
|
|
7
|
+
import { parseShortcut, getPreferredShortcut, formatShortcutTokens, shouldIgnoreShortcut, matchesShortcut, getPressedKeys } from './utils.js';
|
|
8
|
+
|
|
9
|
+
const CSearchButton = forwardRef((_a, ref) => {
|
|
10
|
+
var { children, className, disabled, icon, onClick, onTrigger, placeholder = 'Search', preventDefault = true, shortcut = 'meta+/,ctrl+/', type = 'button' } = _a, rest = __rest(_a, ["children", "className", "disabled", "icon", "onClick", "onTrigger", "placeholder", "preventDefault", "shortcut", "type"]);
|
|
11
|
+
const buttonRef = useRef(null);
|
|
12
|
+
const forkedRef = useForkedRef(ref, buttonRef);
|
|
13
|
+
const [activeKeys, setActiveKeys] = useState([]);
|
|
14
|
+
const shortcuts = useMemo(() => parseShortcut(shortcut), [shortcut]);
|
|
15
|
+
const preferredShortcut = useMemo(() => getPreferredShortcut(shortcuts), [shortcuts]);
|
|
16
|
+
const shortcutTokens = useMemo(() => formatShortcutTokens((preferredShortcut === null || preferredShortcut === void 0 ? void 0 : preferredShortcut.shortcut) || ''), [preferredShortcut]);
|
|
17
|
+
const handleShortcut = useCallback((event) => {
|
|
18
|
+
if (disabled || event.defaultPrevented || event.repeat || shouldIgnoreShortcut(event)) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const matchedShortcut = shortcuts.find((shortcut) => matchesShortcut(shortcut, event));
|
|
22
|
+
if (!matchedShortcut) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (preventDefault) {
|
|
26
|
+
event.preventDefault();
|
|
27
|
+
}
|
|
28
|
+
onTrigger === null || onTrigger === void 0 ? void 0 : onTrigger();
|
|
29
|
+
}, [disabled, onTrigger, preventDefault, shortcuts]);
|
|
30
|
+
const handleDocumentKeydown = useCallback((event) => {
|
|
31
|
+
setActiveKeys(Array.from(getPressedKeys(event)));
|
|
32
|
+
handleShortcut(event);
|
|
33
|
+
}, [handleShortcut]);
|
|
34
|
+
const handleDocumentKeyup = useCallback((event) => {
|
|
35
|
+
setActiveKeys(Array.from(getPressedKeys(event)));
|
|
36
|
+
}, []);
|
|
37
|
+
const handleWindowBlur = useCallback(() => {
|
|
38
|
+
setActiveKeys([]);
|
|
39
|
+
}, []);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (typeof document === 'undefined' || typeof window === 'undefined') {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
document.addEventListener('keydown', handleDocumentKeydown);
|
|
45
|
+
document.addEventListener('keyup', handleDocumentKeyup);
|
|
46
|
+
window.addEventListener('blur', handleWindowBlur);
|
|
47
|
+
return () => {
|
|
48
|
+
document.removeEventListener('keydown', handleDocumentKeydown);
|
|
49
|
+
document.removeEventListener('keyup', handleDocumentKeyup);
|
|
50
|
+
window.removeEventListener('blur', handleWindowBlur);
|
|
51
|
+
};
|
|
52
|
+
}, [handleDocumentKeydown, handleDocumentKeyup, handleWindowBlur]);
|
|
53
|
+
const handleClick = (event) => {
|
|
54
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
55
|
+
onTrigger === null || onTrigger === void 0 ? void 0 : onTrigger();
|
|
56
|
+
};
|
|
57
|
+
return (React.createElement("button", Object.assign({ type: type, className: classNames('search-button', className), disabled: disabled, onClick: handleClick }, rest, { ref: forkedRef }), children !== null && children !== void 0 ? children : (React.createElement(React.Fragment, null, icon !== null && icon !== void 0 ? icon : (React.createElement("svg", { className: "search-button-icon", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", "aria-hidden": "true" },
|
|
58
|
+
React.createElement("path", { fill: "currentColor", d: "m479.6 399.716-81.084-81.084-62.368-25.767A175 175 0 0 0 368 192c0-97.047-78.953-176-176-176S16 94.953 16 192s78.953 176 176 176a175.03 175.03 0 0 0 101.619-32.377l25.7 62.2 81.081 81.088a56 56 0 1 0 79.2-79.195M48 192c0-79.4 64.6-144 144-144s144 64.6 144 144-64.6 144-144 144S48 271.4 48 192m408.971 264.284a24.03 24.03 0 0 1-33.942 0l-76.572-76.572-23.894-57.835 57.837 23.894 76.573 76.572a24.03 24.03 0 0 1-.002 33.941" }))),
|
|
59
|
+
React.createElement("span", { className: "search-button-placeholder" }, placeholder))),
|
|
60
|
+
React.createElement("span", { className: "search-button-keys", "aria-hidden": "true" }, shortcutTokens.map((key) => (React.createElement("span", { className: classNames('search-button-key', { active: activeKeys.includes(key) }), "data-coreui-search-button-key": key, key: key }, key))))));
|
|
61
|
+
});
|
|
62
|
+
CSearchButton.propTypes = {
|
|
63
|
+
children: PropTypes.node,
|
|
64
|
+
className: PropTypes.string,
|
|
65
|
+
disabled: PropTypes.bool,
|
|
66
|
+
icon: PropTypes.node,
|
|
67
|
+
onTrigger: PropTypes.func,
|
|
68
|
+
placeholder: PropTypes.node,
|
|
69
|
+
preventDefault: PropTypes.bool,
|
|
70
|
+
shortcut: PropTypes.string,
|
|
71
|
+
};
|
|
72
|
+
CSearchButton.displayName = 'CSearchButton';
|
|
73
|
+
|
|
74
|
+
export { CSearchButton };
|
|
75
|
+
//# sourceMappingURL=CSearchButton.js.map
|