ish-ui 1.0.0-alpha.26 → 1.0.0-alpha.28
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/dist/model/Fields.d.ts +1 -0
- package/dist/tagsInput/AddTagMenu.d.ts +1 -0
- package/dist/tagsInput/AddTagMenu.js +2 -2
- package/dist/tagsInput/AddTagMenuItem.d.ts +2 -1
- package/dist/tagsInput/AddTagMenuItem.js +6 -3
- package/dist/tagsInput/TagInputList.d.ts +1 -1
- package/dist/tagsInput/TagInputList.js +2 -2
- package/package.json +1 -1
package/dist/model/Fields.d.ts
CHANGED
|
@@ -221,6 +221,7 @@ export interface TagsFieldProps<T, IP, MP> extends EditInPlaceFieldProps<IP, MP>
|
|
|
221
221
|
tags: T[];
|
|
222
222
|
showConfirm?: ShowConfirmCaller;
|
|
223
223
|
validateEntity?: string;
|
|
224
|
+
allowParentSelect?: boolean;
|
|
224
225
|
}
|
|
225
226
|
export interface FormFieldBaseProps {
|
|
226
227
|
required?: boolean;
|
|
@@ -22,7 +22,7 @@ const styles = theme => ({
|
|
|
22
22
|
borderRadius: '100%'
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
-
function AddTagMenu({ classes, tags, handleAdd, activeTag, setActiveTag }) {
|
|
25
|
+
function AddTagMenu({ classes, tags, handleAdd, activeTag, setActiveTag, allowParentSelect }) {
|
|
26
26
|
const handleBack = () => {
|
|
27
27
|
setActiveTag(prev => prev.parent);
|
|
28
28
|
};
|
|
@@ -31,6 +31,6 @@ function AddTagMenu({ classes, tags, handleAdd, activeTag, setActiveTag }) {
|
|
|
31
31
|
React.createElement("span", { className: clsx('d-flex textSecondaryColor', classes.backContainer) },
|
|
32
32
|
React.createElement(KeyboardArrowLeft, { color: "inherit" }),
|
|
33
33
|
"Back"))),
|
|
34
|
-
(activeTag ? activeTag.children : tags).map(t => (React.createElement(AddTagMenuItem, { key: t.tagBody.id, tag: t, classes: classes, setActiveTag: setActiveTag, handleAdd: handleAdd })))));
|
|
34
|
+
(activeTag ? activeTag.children : tags).map(t => (React.createElement(AddTagMenuItem, { key: t.tagBody.id, tag: t, classes: classes, setActiveTag: setActiveTag, handleAdd: handleAdd, allowParentSelect: allowParentSelect })))));
|
|
35
35
|
}
|
|
36
36
|
export default withStyles(styles)(AddTagMenu);
|
|
@@ -5,6 +5,7 @@ interface Props<T> {
|
|
|
5
5
|
setActiveTag: (tag: MenuTag<T>) => void;
|
|
6
6
|
handleAdd: (tag: MenuTag<T>) => void;
|
|
7
7
|
tag: MenuTag<T>;
|
|
8
|
+
allowParentSelect?: boolean;
|
|
8
9
|
}
|
|
9
|
-
declare function AddTagMenuItem<T extends TagLike>({ setActiveTag, tag, classes, handleAdd }: Props<T>): React.JSX.Element;
|
|
10
|
+
declare function AddTagMenuItem<T extends TagLike>({ setActiveTag, tag, classes, handleAdd, allowParentSelect }: Props<T>): React.JSX.Element;
|
|
10
11
|
export default AddTagMenuItem;
|
|
@@ -10,7 +10,8 @@ import clsx from 'clsx';
|
|
|
10
10
|
import KeyboardArrowRight from '@mui/icons-material/KeyboardArrowRight';
|
|
11
11
|
import Checkbox from '@mui/material/Checkbox';
|
|
12
12
|
import MenuItem from '@mui/material/MenuItem';
|
|
13
|
-
|
|
13
|
+
import { IconButton } from '@mui/material';
|
|
14
|
+
function AddTagMenuItem({ setActiveTag, tag, classes, handleAdd, allowParentSelect }) {
|
|
14
15
|
const openSubmenu = () => {
|
|
15
16
|
setActiveTag(tag);
|
|
16
17
|
};
|
|
@@ -18,9 +19,11 @@ function AddTagMenuItem({ setActiveTag, tag, classes, handleAdd }) {
|
|
|
18
19
|
handleAdd(tag);
|
|
19
20
|
};
|
|
20
21
|
const hasChildren = Boolean(tag.children.length);
|
|
21
|
-
return (React.createElement(MenuItem, { classes: { root: classes.listItem }, onClick: hasChildren ? openSubmenu : toggleChecked },
|
|
22
|
+
return (React.createElement(MenuItem, { classes: { root: classes.listItem }, onClick: allowParentSelect ? null : (hasChildren ? openSubmenu : toggleChecked) },
|
|
22
23
|
React.createElement("div", { className: clsx(classes.tagColorDotSmall, 'mr-1'), style: { background: '#' + tag.tagBody.color } }),
|
|
23
24
|
React.createElement("span", { className: "mr-2 flex-fill" }, tag.tagBody.name),
|
|
24
|
-
|
|
25
|
+
(allowParentSelect || hasChildren) && React.createElement(IconButton, { size: "small", onClick: openSubmenu },
|
|
26
|
+
React.createElement(KeyboardArrowRight, { className: clsx('d-flex textSecondaryColor', classes.proceedIcon) })),
|
|
27
|
+
(allowParentSelect || !hasChildren) && React.createElement(Checkbox, { onClick: toggleChecked, classes: { root: 'smallIconButton' }, checked: tag.active })));
|
|
25
28
|
}
|
|
26
29
|
export default AddTagMenuItem;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { FieldInputProps, FieldMetaProps, TagLike, TagsFieldProps } from '../model';
|
|
3
|
-
declare function TagInputList<T extends TagLike, IP extends FieldInputProps, MP extends FieldMetaProps>({ input, tags, placeholder, labelAdornment, meta, label, disabled, className, warning, fieldClasses }: TagsFieldProps<T, IP, MP>): React.JSX.Element;
|
|
3
|
+
declare function TagInputList<T extends TagLike, IP extends FieldInputProps, MP extends FieldMetaProps>({ input, tags, placeholder, labelAdornment, meta, label, disabled, className, warning, allowParentSelect, fieldClasses }: TagsFieldProps<T, IP, MP>): React.JSX.Element;
|
|
4
4
|
export default TagInputList;
|
|
@@ -84,7 +84,7 @@ const getInputString = (tagIds, allTags) => ((tagIds === null || tagIds === void
|
|
|
84
84
|
return (tag ? `${acc}#${tag.name} ` : acc);
|
|
85
85
|
}, '')
|
|
86
86
|
: '');
|
|
87
|
-
function TagInputList({ input, tags, placeholder, labelAdornment, meta, label = 'Tags', disabled, className, warning, fieldClasses = {} }) {
|
|
87
|
+
function TagInputList({ input, tags, placeholder, labelAdornment, meta, label = 'Tags', disabled, className, warning, allowParentSelect, fieldClasses = {} }) {
|
|
88
88
|
const [menuIsOpen, setMenuIsOpen] = useState(false);
|
|
89
89
|
const [activeTag, setActiveTag] = useState(null);
|
|
90
90
|
const [isEditing, setIsEditing] = useState(false);
|
|
@@ -243,7 +243,7 @@ function TagInputList({ input, tags, placeholder, labelAdornment, meta, label =
|
|
|
243
243
|
React.createElement(ClickAwayListener, { onClickAway: onTagListBlur }, params.children)));
|
|
244
244
|
}, [allMenuTags, inputValue, currentInputString, inputNode.current, tagMenuNode.current, input.value]);
|
|
245
245
|
const listboxAdapter = useCallback(params => (React.createElement("div", { className: params.className, ref: tagMenuNode },
|
|
246
|
-
React.createElement(AddTagMenu, { tags: menuTags, handleAdd: onTagAdd, activeTag: activeTag, setActiveTag: setActiveTag }))), [menuTags, activeTag, setActiveTag, onTagAdd]);
|
|
246
|
+
React.createElement(AddTagMenu, { tags: menuTags, handleAdd: onTagAdd, activeTag: activeTag, setActiveTag: setActiveTag, allowParentSelect: allowParentSelect }))), [menuTags, activeTag, setActiveTag, onTagAdd]);
|
|
247
247
|
return (React.createElement("div", { className: className, id: input.name },
|
|
248
248
|
React.createElement("div", { className: clsx('relative', {
|
|
249
249
|
'pointer-events-none': disabled
|