@hitachivantara/uikit-react-core 3.53.1 → 3.54.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/CHANGELOG.md +18 -0
- package/dist/Snackbar/SnackbarProvider/SnackbarProvider.d.ts +30 -0
- package/dist/Snackbar/SnackbarProvider/SnackbarProvider.js +207 -0
- package/dist/Snackbar/SnackbarProvider/SnackbarProvider.js.map +1 -0
- package/dist/Snackbar/SnackbarProvider/index.d.ts +2 -0
- package/dist/Snackbar/SnackbarProvider/index.js +49 -0
- package/dist/Snackbar/SnackbarProvider/index.js.map +1 -0
- package/dist/Snackbar/stories/SnackbarProvider.stories.mdx +51 -0
- package/dist/TagsInput/TagsInput.d.ts +33 -4
- package/dist/TagsInput/TagsInput.js +124 -18
- package/dist/TagsInput/TagsInput.js.map +1 -1
- package/dist/TagsInput/styles.js +12 -8
- package/dist/TagsInput/styles.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/legacy/Snackbar/SnackbarProvider/SnackbarProvider.d.ts +30 -0
- package/dist/legacy/Snackbar/SnackbarProvider/SnackbarProvider.js +169 -0
- package/dist/legacy/Snackbar/SnackbarProvider/SnackbarProvider.js.map +1 -0
- package/dist/legacy/Snackbar/SnackbarProvider/index.d.ts +2 -0
- package/dist/legacy/Snackbar/SnackbarProvider/index.js +3 -0
- package/dist/legacy/Snackbar/SnackbarProvider/index.js.map +1 -0
- package/dist/legacy/Snackbar/stories/SnackbarProvider.stories.mdx +51 -0
- package/dist/legacy/TagsInput/TagsInput.d.ts +33 -4
- package/dist/legacy/TagsInput/TagsInput.js +128 -24
- package/dist/legacy/TagsInput/TagsInput.js.map +1 -1
- package/dist/legacy/TagsInput/styles.js +12 -8
- package/dist/legacy/TagsInput/styles.js.map +1 -1
- package/dist/legacy/index.d.ts +2 -0
- package/dist/legacy/index.js +1 -0
- package/dist/legacy/index.js.map +1 -1
- package/dist/modern/Snackbar/SnackbarProvider/SnackbarProvider.d.ts +30 -0
- package/dist/modern/Snackbar/SnackbarProvider/SnackbarProvider.js +155 -0
- package/dist/modern/Snackbar/SnackbarProvider/SnackbarProvider.js.map +1 -0
- package/dist/modern/Snackbar/SnackbarProvider/index.d.ts +2 -0
- package/dist/modern/Snackbar/SnackbarProvider/index.js +3 -0
- package/dist/modern/Snackbar/SnackbarProvider/index.js.map +1 -0
- package/dist/modern/Snackbar/stories/SnackbarProvider.stories.mdx +51 -0
- package/dist/modern/TagsInput/TagsInput.d.ts +33 -4
- package/dist/modern/TagsInput/TagsInput.js +107 -18
- package/dist/modern/TagsInput/TagsInput.js.map +1 -1
- package/dist/modern/TagsInput/styles.js +12 -8
- package/dist/modern/TagsInput/styles.js.map +1 -1
- package/dist/modern/index.d.ts +2 -0
- package/dist/modern/index.js +1 -0
- package/dist/modern/index.js.map +1 -1
- package/package.json +4 -3
package/dist/legacy/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.js"],"names":["default","HvAccordion","HvActionsGeneric","HvActionBar","HvAssetInventory","HvAvatar","HvBadge","HvBanner","HvBarchart","HvBaseDropdown","HvBreadcrumb","HvBulkActions","HvButton","HvCard","HvContainer","HvDatePicker","HvDonutchart","HvDropdown","HvDropDownMenu","HvEmptyState","HvFilterGroup","HvFileUploader","HvFooter","HvGrid","HvGlobalActions","HvHeader","HvBaseInput","HvInput","HvKpi","HvLinechart","HvLink","HvListContainer","HvList","HvSelectionList","HvLoading","HvLogin","HvDialog","HvMultiButton","HvPagination","HvBaseCheckBox","HvCheckBox","HvCheckBoxGroup","HvBaseRadio","HvRadio","HvRadioGroup","HvBaseSwitch","HvSwitch","HvSnackbar","HvSnackbarContent","HvTab","HvTag","HvTable","HvTabs","HvTextArea","HvTagsInput","HvToggleButton","HvTooltip","HvOverflowTooltip","HvTypography","HvUserPreferences","Actions","HvUserPreferencesActions","Action","HvUserPreferencesAction","Options","HvUserPreferencesOptions","Option","HvUserPreferencesOption","Group","HvUserPreferencesOptionsGroup","Label","HvUserPreferencesOptionsGroupLabel","HvScrollToHorizontal","HvScrollToVertical","useScrollTo","HvVerticalNavigation","Navigation","HvVerticalNavigationTree","TreeView","HvTreeView","TreeViewItem","HvTreeViewItem","HvVerticalNavigationActions","HvVerticalNavigationAction","HvPanel","withId","withTooltip","useUniqueId","hvTheme","themeBuilder","getTheme","HvProvider"],"mappings":"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","sourcesContent":["// components\nexport { default as HvAccordion } from \"./Accordion\";\nexport { default as HvActionsGeneric } from \"./ActionsGeneric\";\nexport { default as HvActionBar } from \"./ActionBar\";\nexport { default as HvAssetInventory } from \"./AssetInventory\";\nexport * from \"./AssetInventory\";\nexport { default as HvAvatar } from \"./Avatar\";\nexport { default as HvBadge } from \"./Badge\";\nexport { default as HvBanner } from \"./Banner\";\nexport * from \"./Banner\";\nexport { default as HvBarchart } from \"./Barchart\";\nexport { default as HvBaseDropdown } from \"./BaseDropdown\";\nexport { default as HvBreadcrumb } from \"./BreadCrumb\";\nexport { default as HvBulkActions } from \"./BulkActions\";\nexport { default as HvButton } from \"./Button\";\nexport { default as HvCard } from \"./Card\";\nexport * from \"./Card\";\nexport * from \"./Calendar\";\nexport { default as HvContainer } from \"./Container\";\nexport { default as HvDatePicker } from \"./DatePicker\";\nexport { default as HvDonutchart } from \"./Donutchart\";\nexport { default as HvDropdown } from \"./Dropdown\";\nexport { default as HvDropDownMenu } from \"./DropDownMenu\";\nexport { default as HvEmptyState } from \"./EmptyState\";\nexport { default as HvFilterGroup } from \"./FilterGroup\";\nexport { default as HvFileUploader } from \"./FileUploader\";\nexport * from \"./FileUploader\";\nexport { default as HvFooter } from \"./Footer\";\nexport * from \"./Forms\";\n\nexport { default as HvGrid } from \"./Grid\";\nexport { default as HvGlobalActions } from \"./GlobalActions\";\n\nexport { default as HvHeader } from \"./Header\";\nexport * from \"./Header\";\n\nexport { default as HvBaseInput } from \"./BaseInput\";\nexport { default as HvInput } from \"./Input\";\n\nexport { default as HvKpi } from \"./Kpi\";\n\nexport { default as HvLinechart } from \"./Linechart\";\nexport { default as HvLink } from \"./Link\";\nexport { default as HvListContainer } from \"./ListContainer\";\nexport * from \"./ListContainer\";\n\nexport { default as HvList } from \"./List\";\n\nexport { default as HvSelectionList } from \"./SelectionList\";\n\nexport { default as HvLoading } from \"./Loading\";\nexport { default as HvLogin } from \"./Login\";\nexport { default as HvDialog } from \"./Dialog\";\nexport * from \"./Dialog\";\nexport { default as HvMultiButton } from \"./MultiButton\";\nexport { default as HvPagination } from \"./Pagination\";\n\nexport { default as HvBaseCheckBox } from \"./BaseCheckBox\";\nexport { default as HvCheckBox } from \"./CheckBox\";\nexport { default as HvCheckBoxGroup } from \"./CheckBoxGroup\";\n\nexport { default as HvBaseRadio } from \"./BaseRadio\";\nexport { default as HvRadio } from \"./Radio\";\nexport { default as HvRadioGroup } from \"./RadioGroup\";\n\nexport { default as HvBaseSwitch } from \"./BaseSwitch\";\nexport { default as HvSwitch } from \"./Switch\";\n\nexport { default as HvSnackbar } from \"./Snackbar\";\nexport { default as HvSnackbarContent } from \"./Snackbar/SnackbarContentWrapper\";\n\nexport { default as HvTab } from \"./Tab\";\nexport { default as HvTag } from \"./Tag\";\nexport { default as HvTable } from \"./Table\";\nexport { default as HvTabs } from \"./Tabs\";\nexport { default as HvTextArea } from \"./TextArea\";\nexport { default as HvTagsInput } from \"./TagsInput\";\nexport { default as HvToggleButton } from \"./ToggleButton\";\nexport { default as HvTooltip } from \"./Tooltip\";\nexport { default as HvOverflowTooltip } from \"./OverflowTooltip\";\nexport { default as HvTypography } from \"./Typography\";\nexport { default as HvUserPreferences } from \"./UserPreferences\";\n// TODO refactor the HvUserPreferences subcomponents' names\nexport {\n Actions as HvUserPreferencesActions,\n Action as HvUserPreferencesAction,\n} from \"./UserPreferences\";\nexport {\n Options as HvUserPreferencesOptions,\n Option as HvUserPreferencesOption,\n Group as HvUserPreferencesOptionsGroup,\n Label as HvUserPreferencesOptionsGroupLabel,\n} from \"./UserPreferences\";\n\nexport { default as HvScrollToHorizontal } from \"./ScrollTo/Horizontal\";\nexport { default as HvScrollToVertical } from \"./ScrollTo/Vertical\";\nexport { default as useScrollTo } from \"./ScrollTo/useScrollTo\";\n\nexport { default as HvVerticalNavigation } from \"./VerticalNavigation\";\n// TODO refactor the HvVerticalNavigation subcomponents' names\nexport { Navigation as HvVerticalNavigationTree } from \"./VerticalNavigation\";\nexport { TreeView as HvTreeView, TreeViewItem as HvTreeViewItem } from \"./VerticalNavigation\";\nexport {\n Actions as HvVerticalNavigationActions,\n Action as HvVerticalNavigationAction,\n} from \"./VerticalNavigation\";\n\nexport { default as HvPanel } from \"./Panel\";\n\n// HOCs\nexport { default as withId } from \"./withId\";\nexport { default as withTooltip } from \"./withTooltip\";\n\n// Hooks\nexport { default as useUniqueId } from \"./useUniqueId\";\n\n// theme\nexport { default as hvTheme } from \"./theme\";\nexport { themeBuilder, getTheme } from \"./theme\";\n\n// provider\nexport { default as HvProvider } from \"./Provider\";\nexport * from \"./Provider\";\n\n// utils\nexport * from \"./utils\";\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/index.js"],"names":["default","HvAccordion","HvActionsGeneric","HvActionBar","HvAssetInventory","HvAvatar","HvBadge","HvBanner","HvBarchart","HvBaseDropdown","HvBreadcrumb","HvBulkActions","HvButton","HvCard","HvContainer","HvDatePicker","HvDonutchart","HvDropdown","HvDropDownMenu","HvEmptyState","HvFilterGroup","HvFileUploader","HvFooter","HvGrid","HvGlobalActions","HvHeader","HvBaseInput","HvInput","HvKpi","HvLinechart","HvLink","HvListContainer","HvList","HvSelectionList","HvLoading","HvLogin","HvDialog","HvMultiButton","HvPagination","HvBaseCheckBox","HvCheckBox","HvCheckBoxGroup","HvBaseRadio","HvRadio","HvRadioGroup","HvBaseSwitch","HvSwitch","HvSnackbar","HvSnackbarContent","HvSnackbarProvider","useHvSnackbar","HvTab","HvTag","HvTable","HvTabs","HvTextArea","HvTagsInput","HvToggleButton","HvTooltip","HvOverflowTooltip","HvTypography","HvUserPreferences","Actions","HvUserPreferencesActions","Action","HvUserPreferencesAction","Options","HvUserPreferencesOptions","Option","HvUserPreferencesOption","Group","HvUserPreferencesOptionsGroup","Label","HvUserPreferencesOptionsGroupLabel","HvScrollToHorizontal","HvScrollToVertical","useScrollTo","HvVerticalNavigation","Navigation","HvVerticalNavigationTree","TreeView","HvTreeView","TreeViewItem","HvTreeViewItem","HvVerticalNavigationActions","HvVerticalNavigationAction","HvPanel","withId","withTooltip","useUniqueId","hvTheme","themeBuilder","getTheme","HvProvider"],"mappings":"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","sourcesContent":["// components\nexport { default as HvAccordion } from \"./Accordion\";\nexport { default as HvActionsGeneric } from \"./ActionsGeneric\";\nexport { default as HvActionBar } from \"./ActionBar\";\nexport { default as HvAssetInventory } from \"./AssetInventory\";\nexport * from \"./AssetInventory\";\nexport { default as HvAvatar } from \"./Avatar\";\nexport { default as HvBadge } from \"./Badge\";\nexport { default as HvBanner } from \"./Banner\";\nexport * from \"./Banner\";\nexport { default as HvBarchart } from \"./Barchart\";\nexport { default as HvBaseDropdown } from \"./BaseDropdown\";\nexport { default as HvBreadcrumb } from \"./BreadCrumb\";\nexport { default as HvBulkActions } from \"./BulkActions\";\nexport { default as HvButton } from \"./Button\";\nexport { default as HvCard } from \"./Card\";\nexport * from \"./Card\";\nexport * from \"./Calendar\";\nexport { default as HvContainer } from \"./Container\";\nexport { default as HvDatePicker } from \"./DatePicker\";\nexport { default as HvDonutchart } from \"./Donutchart\";\nexport { default as HvDropdown } from \"./Dropdown\";\nexport { default as HvDropDownMenu } from \"./DropDownMenu\";\nexport { default as HvEmptyState } from \"./EmptyState\";\nexport { default as HvFilterGroup } from \"./FilterGroup\";\nexport { default as HvFileUploader } from \"./FileUploader\";\nexport * from \"./FileUploader\";\nexport { default as HvFooter } from \"./Footer\";\nexport * from \"./Forms\";\n\nexport { default as HvGrid } from \"./Grid\";\nexport { default as HvGlobalActions } from \"./GlobalActions\";\n\nexport { default as HvHeader } from \"./Header\";\nexport * from \"./Header\";\n\nexport { default as HvBaseInput } from \"./BaseInput\";\nexport { default as HvInput } from \"./Input\";\n\nexport { default as HvKpi } from \"./Kpi\";\n\nexport { default as HvLinechart } from \"./Linechart\";\nexport { default as HvLink } from \"./Link\";\nexport { default as HvListContainer } from \"./ListContainer\";\nexport * from \"./ListContainer\";\n\nexport { default as HvList } from \"./List\";\n\nexport { default as HvSelectionList } from \"./SelectionList\";\n\nexport { default as HvLoading } from \"./Loading\";\nexport { default as HvLogin } from \"./Login\";\nexport { default as HvDialog } from \"./Dialog\";\nexport * from \"./Dialog\";\nexport { default as HvMultiButton } from \"./MultiButton\";\nexport { default as HvPagination } from \"./Pagination\";\n\nexport { default as HvBaseCheckBox } from \"./BaseCheckBox\";\nexport { default as HvCheckBox } from \"./CheckBox\";\nexport { default as HvCheckBoxGroup } from \"./CheckBoxGroup\";\n\nexport { default as HvBaseRadio } from \"./BaseRadio\";\nexport { default as HvRadio } from \"./Radio\";\nexport { default as HvRadioGroup } from \"./RadioGroup\";\n\nexport { default as HvBaseSwitch } from \"./BaseSwitch\";\nexport { default as HvSwitch } from \"./Switch\";\n\nexport { default as HvSnackbar } from \"./Snackbar\";\nexport { default as HvSnackbarContent } from \"./Snackbar/SnackbarContentWrapper\";\nexport { default as HvSnackbarProvider, useHvSnackbar } from \"./Snackbar/SnackbarProvider\";\n\nexport { default as HvTab } from \"./Tab\";\nexport { default as HvTag } from \"./Tag\";\nexport { default as HvTable } from \"./Table\";\nexport { default as HvTabs } from \"./Tabs\";\nexport { default as HvTextArea } from \"./TextArea\";\nexport { default as HvTagsInput } from \"./TagsInput\";\nexport { default as HvToggleButton } from \"./ToggleButton\";\nexport { default as HvTooltip } from \"./Tooltip\";\nexport { default as HvOverflowTooltip } from \"./OverflowTooltip\";\nexport { default as HvTypography } from \"./Typography\";\nexport { default as HvUserPreferences } from \"./UserPreferences\";\n// TODO refactor the HvUserPreferences subcomponents' names\nexport {\n Actions as HvUserPreferencesActions,\n Action as HvUserPreferencesAction,\n} from \"./UserPreferences\";\nexport {\n Options as HvUserPreferencesOptions,\n Option as HvUserPreferencesOption,\n Group as HvUserPreferencesOptionsGroup,\n Label as HvUserPreferencesOptionsGroupLabel,\n} from \"./UserPreferences\";\n\nexport { default as HvScrollToHorizontal } from \"./ScrollTo/Horizontal\";\nexport { default as HvScrollToVertical } from \"./ScrollTo/Vertical\";\nexport { default as useScrollTo } from \"./ScrollTo/useScrollTo\";\n\nexport { default as HvVerticalNavigation } from \"./VerticalNavigation\";\n// TODO refactor the HvVerticalNavigation subcomponents' names\nexport { Navigation as HvVerticalNavigationTree } from \"./VerticalNavigation\";\nexport { TreeView as HvTreeView, TreeViewItem as HvTreeViewItem } from \"./VerticalNavigation\";\nexport {\n Actions as HvVerticalNavigationActions,\n Action as HvVerticalNavigationAction,\n} from \"./VerticalNavigation\";\n\nexport { default as HvPanel } from \"./Panel\";\n\n// HOCs\nexport { default as withId } from \"./withId\";\nexport { default as withTooltip } from \"./withTooltip\";\n\n// Hooks\nexport { default as useUniqueId } from \"./useUniqueId\";\n\n// theme\nexport { default as hvTheme } from \"./theme\";\nexport { themeBuilder, getTheme } from \"./theme\";\n\n// provider\nexport { default as HvProvider } from \"./Provider\";\nexport * from \"./Provider\";\n\n// utils\nexport * from \"./utils\";\n"],"file":"index.js"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
OptionsObject,
|
|
3
|
+
ProviderContext,
|
|
4
|
+
SnackbarKey,
|
|
5
|
+
SnackbarMessage,
|
|
6
|
+
SnackbarProvider,
|
|
7
|
+
} from "notistack";
|
|
8
|
+
import { SemanticVariantTypes } from "../../Banner";
|
|
9
|
+
import { HvSnackbarContentProps } from "../SnackbarContentWrapper";
|
|
10
|
+
|
|
11
|
+
export interface HvSnackbarProviderProps extends SnackbarProvider {
|
|
12
|
+
/**
|
|
13
|
+
* Class object used to override notistack classes.
|
|
14
|
+
*/
|
|
15
|
+
notistackClassesOverride: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
interface HvEnqueueOptions extends OptionsObject {
|
|
19
|
+
id?: string;
|
|
20
|
+
variant?: SemanticVariantTypes;
|
|
21
|
+
snackbarContentProps?: HvSnackbarContentProps;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
interface HvSnackbarProviderContext extends ProviderContext {
|
|
25
|
+
enqueueSnackbar: (message: SnackbarMessage, options?: HvEnqueueOptions) => SnackbarKey;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function useHvSnackbar(): HvSnackbarProviderContext;
|
|
29
|
+
|
|
30
|
+
export default function HvSnackbarProvider(props: HvSnackbarProviderProps): JSX.Element | null;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
const _excluded = ["id", "variant", "snackbarContentProps"],
|
|
5
|
+
_excluded2 = ["children", "notistackClassesOverride", "maxSnack", "autoHideDuration", "anchorOrigin"];
|
|
6
|
+
|
|
7
|
+
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; }
|
|
8
|
+
|
|
9
|
+
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) { _defineProperty(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; }
|
|
10
|
+
|
|
11
|
+
import React, { forwardRef, useCallback, useMemo } from "react";
|
|
12
|
+
import { makeStyles } from "@material-ui/core";
|
|
13
|
+
import PropTypes from "prop-types";
|
|
14
|
+
import { SnackbarProvider, SnackbarContent, useSnackbar } from "notistack";
|
|
15
|
+
import HvSnackbarContentWrapper from "../SnackbarContentWrapper";
|
|
16
|
+
const HvNotistackSnackMessage = /*#__PURE__*/forwardRef(({
|
|
17
|
+
id,
|
|
18
|
+
message,
|
|
19
|
+
variant = "success",
|
|
20
|
+
snackbarContentProps
|
|
21
|
+
}, ref) => {
|
|
22
|
+
return /*#__PURE__*/React.createElement(SnackbarContent, {
|
|
23
|
+
ref: ref
|
|
24
|
+
}, /*#__PURE__*/React.createElement(HvSnackbarContentWrapper, _extends({
|
|
25
|
+
id: id,
|
|
26
|
+
variant: variant,
|
|
27
|
+
showIcon: true,
|
|
28
|
+
label: message
|
|
29
|
+
}, snackbarContentProps)));
|
|
30
|
+
}); // We override notistack hook to be able to customize the snackbar that should be called.
|
|
31
|
+
|
|
32
|
+
const useHvSnackbar = () => {
|
|
33
|
+
const {
|
|
34
|
+
enqueueSnackbar: enqueueNotistackSnackbar,
|
|
35
|
+
closeSnackbar
|
|
36
|
+
} = useSnackbar();
|
|
37
|
+
const enqueueSnackbar = useCallback((message, options) => {
|
|
38
|
+
const {
|
|
39
|
+
id,
|
|
40
|
+
variant = "success",
|
|
41
|
+
snackbarContentProps
|
|
42
|
+
} = options,
|
|
43
|
+
otherOptions = _objectWithoutProperties(options, _excluded);
|
|
44
|
+
|
|
45
|
+
enqueueNotistackSnackbar( /*#__PURE__*/React.createElement(HvNotistackSnackMessage, {
|
|
46
|
+
id: id,
|
|
47
|
+
message: message,
|
|
48
|
+
variant: variant,
|
|
49
|
+
snackbarContentProps: snackbarContentProps
|
|
50
|
+
}), otherOptions);
|
|
51
|
+
}, [enqueueNotistackSnackbar]);
|
|
52
|
+
return useMemo(() => ({
|
|
53
|
+
enqueueSnackbar,
|
|
54
|
+
closeSnackbar
|
|
55
|
+
}), [enqueueSnackbar, closeSnackbar]);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const useStyles = notistackClassesOverride => makeStyles(() => _objectSpread({
|
|
59
|
+
containerRoot: {
|
|
60
|
+
"& > div > div": {
|
|
61
|
+
// Overrides notistack extra padding
|
|
62
|
+
padding: "0 !important",
|
|
63
|
+
transition: "all 0s ease 0s !important",
|
|
64
|
+
"& > div > div > div": {
|
|
65
|
+
color: "inherit",
|
|
66
|
+
padding: "0",
|
|
67
|
+
fontSize: "inherit",
|
|
68
|
+
boxShadow: "none",
|
|
69
|
+
alignItems: "center",
|
|
70
|
+
fontFamily: "inherit",
|
|
71
|
+
fontWeight: "inherit",
|
|
72
|
+
lineHeight: "inherit",
|
|
73
|
+
borderRadius: "0",
|
|
74
|
+
letterSpacing: "inherit",
|
|
75
|
+
backgroundColor: "inherit"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}, notistackClassesOverride))();
|
|
80
|
+
|
|
81
|
+
const HvSnackbarProvider = _ref => {
|
|
82
|
+
let {
|
|
83
|
+
children,
|
|
84
|
+
notistackClassesOverride = {},
|
|
85
|
+
maxSnack = 5,
|
|
86
|
+
autoHideDuration = 5000,
|
|
87
|
+
anchorOrigin = {
|
|
88
|
+
vertical: "top",
|
|
89
|
+
horizontal: "right"
|
|
90
|
+
}
|
|
91
|
+
} = _ref,
|
|
92
|
+
others = _objectWithoutProperties(_ref, _excluded2);
|
|
93
|
+
|
|
94
|
+
const classes = useStyles(notistackClassesOverride);
|
|
95
|
+
return /*#__PURE__*/React.createElement(SnackbarProvider, _extends({
|
|
96
|
+
classes: _objectSpread({}, classes),
|
|
97
|
+
maxSnack: maxSnack,
|
|
98
|
+
autoHideDuration: autoHideDuration,
|
|
99
|
+
anchorOrigin: anchorOrigin
|
|
100
|
+
}, others), children);
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
process.env.NODE_ENV !== "production" ? HvSnackbarProvider.propTypes = {
|
|
104
|
+
/**
|
|
105
|
+
* Your component tree.
|
|
106
|
+
*/
|
|
107
|
+
children: PropTypes.node.isRequired,
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Max visible snackbars.
|
|
111
|
+
*/
|
|
112
|
+
maxSnack: PropTypes.number,
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* How much time the snackbar remains visible in milliseconds.
|
|
116
|
+
*/
|
|
117
|
+
autoHideDuration: PropTypes.number,
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Where is the snackbar placed.
|
|
121
|
+
*/
|
|
122
|
+
anchorOrigin: PropTypes.shape({
|
|
123
|
+
vertical: PropTypes.oneOf(["top", "bottom"]),
|
|
124
|
+
horizontal: PropTypes.oneOf(["right", "left"])
|
|
125
|
+
}),
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Class object used to override notistack classes.
|
|
129
|
+
*/
|
|
130
|
+
notistackClassesOverride: PropTypes.instanceOf(Object)
|
|
131
|
+
} : void 0;
|
|
132
|
+
process.env.NODE_ENV !== "production" ? HvNotistackSnackMessage.propTypes = {
|
|
133
|
+
/**
|
|
134
|
+
* Id to be applied to the root node.
|
|
135
|
+
*/
|
|
136
|
+
id: PropTypes.string,
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Your component tree.
|
|
140
|
+
*/
|
|
141
|
+
message: PropTypes.string,
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Variant of the snackbar.
|
|
145
|
+
*/
|
|
146
|
+
variant: PropTypes.oneOf(["default", "success", "error"]),
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Extra values to pass to the snackbar.
|
|
150
|
+
*/
|
|
151
|
+
snackbarContentProps: PropTypes.instanceOf(Object)
|
|
152
|
+
} : void 0;
|
|
153
|
+
export default HvSnackbarProvider;
|
|
154
|
+
export { useHvSnackbar };
|
|
155
|
+
//# sourceMappingURL=SnackbarProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/Snackbar/SnackbarProvider/SnackbarProvider.js"],"names":["React","forwardRef","useCallback","useMemo","makeStyles","PropTypes","SnackbarProvider","SnackbarContent","useSnackbar","HvSnackbarContentWrapper","HvNotistackSnackMessage","id","message","variant","snackbarContentProps","ref","useHvSnackbar","enqueueSnackbar","enqueueNotistackSnackbar","closeSnackbar","options","otherOptions","useStyles","notistackClassesOverride","containerRoot","padding","transition","color","fontSize","boxShadow","alignItems","fontFamily","fontWeight","lineHeight","borderRadius","letterSpacing","backgroundColor","HvSnackbarProvider","children","maxSnack","autoHideDuration","anchorOrigin","vertical","horizontal","others","classes","propTypes","node","isRequired","number","shape","oneOf","instanceOf","Object","string"],"mappings":"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","sourcesContent":["import React, { forwardRef, useCallback, useMemo } from \"react\";\nimport { makeStyles } from \"@material-ui/core\";\nimport PropTypes from \"prop-types\";\nimport { SnackbarProvider, SnackbarContent, useSnackbar } from \"notistack\";\n\nimport HvSnackbarContentWrapper from \"../SnackbarContentWrapper\";\n\nconst HvNotistackSnackMessage = forwardRef(\n ({ id, message, variant = \"success\", snackbarContentProps }, ref) => {\n return (\n <SnackbarContent ref={ref}>\n <HvSnackbarContentWrapper\n id={id}\n variant={variant}\n showIcon\n label={message}\n {...snackbarContentProps}\n />\n </SnackbarContent>\n );\n }\n);\n\n// We override notistack hook to be able to customize the snackbar that should be called.\nconst useHvSnackbar = () => {\n const { enqueueSnackbar: enqueueNotistackSnackbar, closeSnackbar } = useSnackbar();\n const enqueueSnackbar = useCallback(\n (message, options) => {\n const { id, variant = \"success\", snackbarContentProps, ...otherOptions } = options;\n\n enqueueNotistackSnackbar(\n <HvNotistackSnackMessage\n id={id}\n message={message}\n variant={variant}\n snackbarContentProps={snackbarContentProps}\n />,\n otherOptions\n );\n },\n [enqueueNotistackSnackbar]\n );\n return useMemo(\n () => ({\n enqueueSnackbar,\n closeSnackbar,\n }),\n [enqueueSnackbar, closeSnackbar]\n );\n};\n\nconst useStyles = (notistackClassesOverride) =>\n makeStyles(() => ({\n containerRoot: {\n \"& > div > div\": {\n // Overrides notistack extra padding\n padding: \"0 !important\",\n transition: \"all 0s ease 0s !important\",\n \"& > div > div > div\": {\n color: \"inherit\",\n padding: \"0\",\n fontSize: \"inherit\",\n boxShadow: \"none\",\n alignItems: \"center\",\n fontFamily: \"inherit\",\n fontWeight: \"inherit\",\n lineHeight: \"inherit\",\n borderRadius: \"0\",\n letterSpacing: \"inherit\",\n backgroundColor: \"inherit\",\n },\n },\n },\n ...notistackClassesOverride,\n }))();\n\nconst HvSnackbarProvider = ({\n children,\n notistackClassesOverride = {},\n maxSnack = 5,\n autoHideDuration = 5000,\n anchorOrigin = {\n vertical: \"top\",\n horizontal: \"right\",\n },\n ...others\n}) => {\n const classes = useStyles(notistackClassesOverride);\n\n return (\n <SnackbarProvider\n classes={{\n ...classes,\n }}\n maxSnack={maxSnack}\n autoHideDuration={autoHideDuration}\n anchorOrigin={anchorOrigin}\n {...others}\n >\n {children}\n </SnackbarProvider>\n );\n};\n\nHvSnackbarProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node.isRequired,\n /**\n * Max visible snackbars.\n */\n maxSnack: PropTypes.number,\n /**\n * How much time the snackbar remains visible in milliseconds.\n */\n autoHideDuration: PropTypes.number,\n /**\n * Where is the snackbar placed.\n */\n anchorOrigin: PropTypes.shape({\n vertical: PropTypes.oneOf([\"top\", \"bottom\"]),\n horizontal: PropTypes.oneOf([\"right\", \"left\"]),\n }),\n /**\n * Class object used to override notistack classes.\n */\n notistackClassesOverride: PropTypes.instanceOf(Object),\n};\n\nHvNotistackSnackMessage.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * Your component tree.\n */\n message: PropTypes.string,\n /**\n * Variant of the snackbar.\n */\n variant: PropTypes.oneOf([\"default\", \"success\", \"error\"]),\n /**\n * Extra values to pass to the snackbar.\n */\n snackbarContentProps: PropTypes.instanceOf(Object),\n};\n\nexport default HvSnackbarProvider;\nexport { useHvSnackbar };\n"],"file":"SnackbarProvider.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/Snackbar/SnackbarProvider/index.js"],"names":["default"],"mappings":"AAAA,SAASA,OAAT,QAAwB,oBAAxB;AACA,cAAc,oBAAd","sourcesContent":["export { default } from \"./SnackbarProvider\";\nexport * from \"./SnackbarProvider\";\n"],"file":"index.js"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Meta, Story, Preview } from "@storybook/addon-docs";
|
|
2
|
+
|
|
3
|
+
import LinkTo from "@storybook/addon-links/react";
|
|
4
|
+
|
|
5
|
+
import { Usage } from "storybook-root/blocks/Usage";
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
SnackbarProvider,
|
|
9
|
+
} from "./SnackbarProvider.stories.js";
|
|
10
|
+
|
|
11
|
+
<Meta title="Components/Snackbar/Provider" />
|
|
12
|
+
|
|
13
|
+
# Snackbar Provider
|
|
14
|
+
|
|
15
|
+
The UI Kit library provides a snackbar provider
|
|
16
|
+
to control the stacking of multiple snackbars in the app.
|
|
17
|
+
|
|
18
|
+
The providers is not meant to be 100% feature complete, but instead,
|
|
19
|
+
ease the majority of use-cases we have been encountering.
|
|
20
|
+
If you need any customization or extension to the behavior,
|
|
21
|
+
please feel free to copy and customize it.
|
|
22
|
+
|
|
23
|
+
This feature needs both the *HvSnackbarProvider* provider and the hook *useHvSnackbar*.
|
|
24
|
+
The provider and the hook are wrappers of the [Notistack](https://github.com/iamhosseindhv/notistack) API.
|
|
25
|
+
|
|
26
|
+
Ideally the `HvSnackbarProvider` should be at the top of the component tree of your application.
|
|
27
|
+
This will allow the snackbar to be triggered in any page.
|
|
28
|
+
For more information of the provider API check the [notistack documentation](https://iamhosseindhv.com/notistack/api).
|
|
29
|
+
|
|
30
|
+
<Usage>{'import { HvSnackbarProvider } from "@hitachivantara/uikit-react-core";'}</Usage>
|
|
31
|
+
|
|
32
|
+
After adding the provider at the root of your app, you can call the ```useHvSnackbar``` at any
|
|
33
|
+
component inside your app. This hook will allow you to request the rendering of a snackbar through the use
|
|
34
|
+
of the ```enqueueSnackbar``` function which follows the API bellow:
|
|
35
|
+
|
|
36
|
+
parameters:
|
|
37
|
+
- `message: string | React.node`: The message to render inside the snackbar.
|
|
38
|
+
- `options: HvEnqueueOptions`: The options to configure the snackbar.
|
|
39
|
+
- `HvEnqueueOptions`:
|
|
40
|
+
- `id?: string`: The id to pass to the snackbar
|
|
41
|
+
- `variant: success | default | warning`: The color of the snackbar
|
|
42
|
+
- `snackbarContentProps?: HvSnackbarContentProps`: Extra properties to be passed onto the snackbar
|
|
43
|
+
|
|
44
|
+
output:
|
|
45
|
+
- `SnackbarKey: string | number`: How many snackbars to render.
|
|
46
|
+
|
|
47
|
+
<Usage>{'import { useHvSnackbar } from "@hitachivantara/uikit-react-core";'}</Usage>
|
|
48
|
+
|
|
49
|
+
<Preview withToolbar>
|
|
50
|
+
<Story inline story={SnackbarProvider} />
|
|
51
|
+
</Preview>
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { StandardProps } from "@material-ui/core";
|
|
2
2
|
import { HvTagProps } from "../Tag/Tag";
|
|
3
3
|
import { HvCharCounterProps } from "../Forms/CharCounter";
|
|
4
|
+
import { HvFormStatus } from "../Forms/FormElement";
|
|
4
5
|
|
|
5
|
-
import {
|
|
6
|
+
import { HvInputProps } from "..";
|
|
7
|
+
import { HvBaseInputValidationMessagesProps } from "../BaseInput";
|
|
6
8
|
|
|
7
9
|
export type HvTagsInputClassKey =
|
|
8
10
|
| "root"
|
|
@@ -12,10 +14,11 @@ export type HvTagsInputClassKey =
|
|
|
12
14
|
| "labelContainer"
|
|
13
15
|
| "label"
|
|
14
16
|
| "characterCounter"
|
|
15
|
-
| "description"
|
|
17
|
+
| "description"
|
|
18
|
+
| "error";
|
|
16
19
|
|
|
17
20
|
export interface HvTagsInputProps
|
|
18
|
-
extends StandardProps<
|
|
21
|
+
extends StandardProps<HvInputProps, HvTagsInputClassKey, "onChange" | "onBlur"> {
|
|
19
22
|
/**
|
|
20
23
|
* The label of the form element.
|
|
21
24
|
*
|
|
@@ -48,6 +51,10 @@ export interface HvTagsInputProps
|
|
|
48
51
|
* Indicates that the form element is not editable.
|
|
49
52
|
*/
|
|
50
53
|
readOnly?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Indicates that the form element is required.
|
|
56
|
+
*/
|
|
57
|
+
required?: boolean;
|
|
51
58
|
|
|
52
59
|
/**
|
|
53
60
|
* If `true` it should autofocus.
|
|
@@ -95,7 +102,29 @@ export interface HvTagsInputProps
|
|
|
95
102
|
/**
|
|
96
103
|
* Called back when the value is changed.
|
|
97
104
|
*/
|
|
98
|
-
onChange?: (
|
|
105
|
+
onChange?: (
|
|
106
|
+
event:
|
|
107
|
+
| React.ChangeEvent<HTMLInputElement>
|
|
108
|
+
| React.KeyboardEvent<HTMLInputElement>
|
|
109
|
+
| React.MouseEvent<HTMLButtonElement>
|
|
110
|
+
| React.MouseEvent<HTMLElement, MouseEvent>
|
|
111
|
+
| React.KeyboardEventHandler<HTMLElement>,
|
|
112
|
+
value: HvTagProps[]
|
|
113
|
+
) => void;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* The status of the form element.
|
|
117
|
+
*/
|
|
118
|
+
status?: HvFormStatus;
|
|
119
|
+
/**
|
|
120
|
+
* The error message to show when `status` is "invalid".
|
|
121
|
+
*/
|
|
122
|
+
statusMessage?: React.ReactNode;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* An Object containing the various texts associated with the input.
|
|
126
|
+
*/
|
|
127
|
+
validationMessages?: HvBaseInputValidationMessagesProps;
|
|
99
128
|
}
|
|
100
129
|
|
|
101
130
|
export default function HvTagsInput(props: HvTagsInputProps): JSX.Element | null;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
-
const _excluded = ["classes", "className", "id", "name", "value", "defaultValue", "readOnly", "disabled", "label", "aria-label", "aria-labelledby", "description", "aria-describedby", "onChange", "placeholder", "hideCounter", "middleCountLabel", "maxTagsQuantity", "autoFocus", "resizable", "inputProps", "countCharProps", "multiline"],
|
|
4
|
+
const _excluded = ["classes", "className", "id", "name", "value", "defaultValue", "readOnly", "disabled", "required", "label", "aria-label", "aria-labelledby", "description", "aria-describedby", "onChange", "placeholder", "hideCounter", "middleCountLabel", "maxTagsQuantity", "autoFocus", "resizable", "inputProps", "countCharProps", "multiline", "status", "statusMessage", "validationMessages"],
|
|
5
5
|
_excluded2 = ["label", "type"];
|
|
6
6
|
|
|
7
7
|
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; }
|
|
@@ -14,7 +14,9 @@ import PropTypes from "prop-types";
|
|
|
14
14
|
import clsx from "clsx";
|
|
15
15
|
import { withStyles } from "@material-ui/core";
|
|
16
16
|
import { setId, useControlled } from "../utils";
|
|
17
|
-
import { HvFormElement, HvListContainer, HvListItem, HvTag, HvInput, HvLabel, HvInfoMessage, HvCharCounter, useUniqueId } from "..";
|
|
17
|
+
import { HvFormElement, HvListContainer, HvListItem, HvTag, HvInput, HvLabel, HvInfoMessage, HvCharCounter, HvWarningText, useUniqueId } from "..";
|
|
18
|
+
import validationStates from "../Forms/FormElement/validationStates";
|
|
19
|
+
import { DEFAULT_ERROR_MESSAGES } from "../BaseInput/validations";
|
|
18
20
|
import styles from "./styles";
|
|
19
21
|
/**
|
|
20
22
|
* A text area is a multiline text input box, with an optional character counter when there is a length limit.
|
|
@@ -30,6 +32,7 @@ const HvTagsInput = props => {
|
|
|
30
32
|
defaultValue = [],
|
|
31
33
|
readOnly = false,
|
|
32
34
|
disabled = false,
|
|
35
|
+
required = false,
|
|
33
36
|
label: textAreaLabel,
|
|
34
37
|
"aria-label": ariaLabel,
|
|
35
38
|
"aria-labelledby": ariaLabelledBy,
|
|
@@ -44,7 +47,10 @@ const HvTagsInput = props => {
|
|
|
44
47
|
resizable = true,
|
|
45
48
|
inputProps = {},
|
|
46
49
|
countCharProps = {},
|
|
47
|
-
multiline = false
|
|
50
|
+
multiline = false,
|
|
51
|
+
status,
|
|
52
|
+
statusMessage,
|
|
53
|
+
validationMessages
|
|
48
54
|
} = props,
|
|
49
55
|
others = _objectWithoutProperties(props, _excluded);
|
|
50
56
|
|
|
@@ -54,6 +60,9 @@ const HvTagsInput = props => {
|
|
|
54
60
|
const [value, setValue] = useControlled(valueProp, defaultValue);
|
|
55
61
|
const [tagInput, setTagInput] = useState("");
|
|
56
62
|
const [tagCursorPos, setTagCursorPos] = useState(value.length);
|
|
63
|
+
const [validationState, setValidationState] = useControlled(status, validationStates.standBy);
|
|
64
|
+
const [validationMessage, setValidationMessage] = useControlled(statusMessage, "");
|
|
65
|
+
const [stateValid, setStateValid] = useState(true);
|
|
57
66
|
const isTagSelected = tagCursorPos >= 0 && tagCursorPos < value.length;
|
|
58
67
|
const hasCounter = maxTagsQuantity != null && !hideCounter;
|
|
59
68
|
const isStateInvalid = useMemo(() => {
|
|
@@ -61,6 +70,20 @@ const HvTagsInput = props => {
|
|
|
61
70
|
}, [hasCounter, maxTagsQuantity, value.length]);
|
|
62
71
|
const inputRef = useRef();
|
|
63
72
|
const containerRef = useRef();
|
|
73
|
+
const errorMessages = useMemo(() => _objectSpread(_objectSpread({}, DEFAULT_ERROR_MESSAGES), validationMessages), // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
74
|
+
[validationMessages === null || validationMessages === void 0 ? void 0 : validationMessages.error, validationMessages === null || validationMessages === void 0 ? void 0 : validationMessages.requiredError, validationMessages === null || validationMessages === void 0 ? void 0 : validationMessages.minCharError, validationMessages === null || validationMessages === void 0 ? void 0 : validationMessages.maxCharError]);
|
|
75
|
+
const performValidation = useCallback(currValue => {
|
|
76
|
+
if (maxTagsQuantity !== null && currValue.length > maxTagsQuantity) {
|
|
77
|
+
setValidationState(validationStates.invalid);
|
|
78
|
+
setValidationMessage(errorMessages.maxCharError);
|
|
79
|
+
setStateValid(false);
|
|
80
|
+
} else {
|
|
81
|
+
setValidationState(validationStates.valid);
|
|
82
|
+
setValidationMessage("");
|
|
83
|
+
setStateValid(true);
|
|
84
|
+
}
|
|
85
|
+
}, [errorMessages.maxCharError, maxTagsQuantity, setValidationMessage, setValidationState]);
|
|
86
|
+
const canShowError = status !== undefined && status === "invalid" && statusMessage !== undefined || !stateValid;
|
|
64
87
|
/**
|
|
65
88
|
* Handler for the `onChange` event on the tag input
|
|
66
89
|
*/
|
|
@@ -96,6 +119,8 @@ const HvTagsInput = props => {
|
|
|
96
119
|
*/
|
|
97
120
|
|
|
98
121
|
const onEnterHandler = useCallback((event, tag) => {
|
|
122
|
+
event.preventDefault();
|
|
123
|
+
|
|
99
124
|
if (tag !== "") {
|
|
100
125
|
const newTagsArr = [...value, {
|
|
101
126
|
label: tag,
|
|
@@ -104,9 +129,10 @@ const HvTagsInput = props => {
|
|
|
104
129
|
setValue(newTagsArr);
|
|
105
130
|
setTagInput("");
|
|
106
131
|
setTagCursorPos(newTagsArr.length);
|
|
107
|
-
|
|
132
|
+
performValidation(newTagsArr);
|
|
133
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(event, newTagsArr);
|
|
108
134
|
}
|
|
109
|
-
}, [onChange, setValue, value]);
|
|
135
|
+
}, [onChange, performValidation, setValue, value]);
|
|
110
136
|
/**
|
|
111
137
|
* Handler for the `onKeyDown` event on the list container.
|
|
112
138
|
*/
|
|
@@ -130,7 +156,8 @@ const HvTagsInput = props => {
|
|
|
130
156
|
setValue(newTagsArr);
|
|
131
157
|
setTagCursorPos(tagCursorPos > 0 ? tagCursorPos - 1 : 0);
|
|
132
158
|
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
|
|
133
|
-
|
|
159
|
+
performValidation(newTagsArr);
|
|
160
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(event, newTagsArr);
|
|
134
161
|
} else {
|
|
135
162
|
setTagCursorPos(value.length - 1);
|
|
136
163
|
}
|
|
@@ -145,7 +172,8 @@ const HvTagsInput = props => {
|
|
|
145
172
|
setValue(newTagsArr);
|
|
146
173
|
setTagCursorPos(tagCursorPos > 0 ? tagCursorPos - 1 : 0);
|
|
147
174
|
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();
|
|
148
|
-
|
|
175
|
+
performValidation(newTagsArr);
|
|
176
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(event, newTagsArr);
|
|
149
177
|
}
|
|
150
178
|
|
|
151
179
|
break;
|
|
@@ -154,20 +182,22 @@ const HvTagsInput = props => {
|
|
|
154
182
|
break;
|
|
155
183
|
}
|
|
156
184
|
}
|
|
157
|
-
}, [isTagSelected, onChange, setValue, tagCursorPos, tagInput, value]);
|
|
185
|
+
}, [isTagSelected, onChange, performValidation, setValue, tagCursorPos, tagInput, value]);
|
|
158
186
|
/**
|
|
159
187
|
* Handler for the `onDelete` event on the tag component
|
|
160
188
|
*/
|
|
161
189
|
|
|
162
|
-
const onDeleteTagHandler = useCallback(i => {
|
|
190
|
+
const onDeleteTagHandler = useCallback((event, i) => {
|
|
163
191
|
var _inputRef$current3;
|
|
164
192
|
|
|
165
193
|
const newTagsArr = [...value.slice(0, i), ...value.slice(i + 1)];
|
|
194
|
+
setValidationState(validationStates.standBy);
|
|
166
195
|
setValue(newTagsArr);
|
|
167
196
|
setTagCursorPos(newTagsArr.length);
|
|
168
197
|
(_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.focus();
|
|
169
|
-
|
|
170
|
-
|
|
198
|
+
performValidation(newTagsArr);
|
|
199
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(event, newTagsArr);
|
|
200
|
+
}, [value, setValidationState, setValue, performValidation, onChange]);
|
|
171
201
|
/**
|
|
172
202
|
* Handler for the `onClick` event on the list container
|
|
173
203
|
*/
|
|
@@ -183,6 +213,8 @@ const HvTagsInput = props => {
|
|
|
183
213
|
name: name,
|
|
184
214
|
disabled: disabled,
|
|
185
215
|
readOnly: readOnly,
|
|
216
|
+
status: validationState,
|
|
217
|
+
required: required,
|
|
186
218
|
className: clsx(classes.root, className, disabled && classes.disabled)
|
|
187
219
|
}, (hasLabel || hasDescription) && /*#__PURE__*/React.createElement("div", {
|
|
188
220
|
className: classes.labelContainer
|
|
@@ -201,7 +233,7 @@ const HvTagsInput = props => {
|
|
|
201
233
|
currentCharQuantity: value.length,
|
|
202
234
|
maxCharQuantity: maxTagsQuantity
|
|
203
235
|
}, countCharProps)), /*#__PURE__*/React.createElement(HvListContainer, {
|
|
204
|
-
className: clsx(classes.tagsList, multiline ? resizable && classes.resizable : classes.singleLine, isStateInvalid && classes.invalid),
|
|
236
|
+
className: clsx(classes.tagsList, multiline ? resizable && classes.resizable : classes.singleLine, canShowError && classes.error, isStateInvalid && classes.invalid),
|
|
205
237
|
onKeyDown: onKeyDownHandler,
|
|
206
238
|
onClick: onContainerClickHandler,
|
|
207
239
|
ref: containerRef
|
|
@@ -230,9 +262,12 @@ const HvTagsInput = props => {
|
|
|
230
262
|
}, /*#__PURE__*/React.createElement(HvTag, _extends({
|
|
231
263
|
label: label,
|
|
232
264
|
className: clsx(i === tagCursorPos && classes.tagSelected),
|
|
265
|
+
classes: {
|
|
266
|
+
chipRoot: classes.chipRoot
|
|
267
|
+
},
|
|
233
268
|
type: type
|
|
234
269
|
}, !(readOnly || disabled || type === "categorical") && {
|
|
235
|
-
onDelete:
|
|
270
|
+
onDelete: event => onDeleteTagHandler(event, i)
|
|
236
271
|
}, {
|
|
237
272
|
deleteButtonProps: {
|
|
238
273
|
tabIndex: -1
|
|
@@ -267,7 +302,11 @@ const HvTagsInput = props => {
|
|
|
267
302
|
"aria-describedby": ariaDescribedBy != null ? ariaDescribedBy : description && setId(elementId, "description")
|
|
268
303
|
}, inputProps),
|
|
269
304
|
inputRef: inputRef
|
|
270
|
-
}, others))))
|
|
305
|
+
}, others)))), canShowError && /*#__PURE__*/React.createElement(HvWarningText, {
|
|
306
|
+
id: setId(elementId, "error"),
|
|
307
|
+
disableBorder: true,
|
|
308
|
+
className: classes.error
|
|
309
|
+
}, validationMessage));
|
|
271
310
|
};
|
|
272
311
|
|
|
273
312
|
process.env.NODE_ENV !== "production" ? HvTagsInput.propTypes = {
|
|
@@ -300,6 +339,11 @@ process.env.NODE_ENV !== "production" ? HvTagsInput.propTypes = {
|
|
|
300
339
|
*/
|
|
301
340
|
root: PropTypes.string,
|
|
302
341
|
|
|
342
|
+
/**
|
|
343
|
+
*
|
|
344
|
+
*/
|
|
345
|
+
chipRoot: PropTypes.string,
|
|
346
|
+
|
|
303
347
|
/**
|
|
304
348
|
* Style applied to the root when resizable is `true`.
|
|
305
349
|
*/
|
|
@@ -366,9 +410,14 @@ process.env.NODE_ENV !== "production" ? HvTagsInput.propTypes = {
|
|
|
366
410
|
tagInputRootFocused: PropTypes.string,
|
|
367
411
|
|
|
368
412
|
/**
|
|
369
|
-
* Styles applied to the container when in single line mode
|
|
413
|
+
* Styles applied to the container when in single line mode.
|
|
370
414
|
*/
|
|
371
|
-
singleLine: PropTypes.string
|
|
415
|
+
singleLine: PropTypes.string,
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* Styles applied to the tags list when an error occurred.
|
|
419
|
+
*/
|
|
420
|
+
error: PropTypes.string
|
|
372
421
|
}).isRequired,
|
|
373
422
|
|
|
374
423
|
/**
|
|
@@ -429,6 +478,11 @@ process.env.NODE_ENV !== "production" ? HvTagsInput.propTypes = {
|
|
|
429
478
|
*/
|
|
430
479
|
readOnly: PropTypes.bool,
|
|
431
480
|
|
|
481
|
+
/**
|
|
482
|
+
* Indicates that the form element is required.
|
|
483
|
+
*/
|
|
484
|
+
required: PropTypes.bool,
|
|
485
|
+
|
|
432
486
|
/**
|
|
433
487
|
* The function that will be executed onChange.
|
|
434
488
|
*/
|
|
@@ -478,7 +532,42 @@ process.env.NODE_ENV !== "production" ? HvTagsInput.propTypes = {
|
|
|
478
532
|
/**
|
|
479
533
|
* If `true` the component is in multiline mode.
|
|
480
534
|
*/
|
|
481
|
-
multiline: PropTypes.bool
|
|
535
|
+
multiline: PropTypes.bool,
|
|
536
|
+
|
|
537
|
+
/**
|
|
538
|
+
* The status of the form element.
|
|
539
|
+
*/
|
|
540
|
+
status: PropTypes.string,
|
|
541
|
+
|
|
542
|
+
/**
|
|
543
|
+
* The error message to show when `status` is "invalid".
|
|
544
|
+
*/
|
|
545
|
+
statusMessage: PropTypes.string,
|
|
546
|
+
|
|
547
|
+
/**
|
|
548
|
+
* An Object containing the various texts associated with the input.
|
|
549
|
+
*/
|
|
550
|
+
validationMessages: PropTypes.shape({
|
|
551
|
+
/**
|
|
552
|
+
* The value when a validation fails.
|
|
553
|
+
*/
|
|
554
|
+
error: PropTypes.string,
|
|
555
|
+
|
|
556
|
+
/**
|
|
557
|
+
* The message that appears when there are too many characters.
|
|
558
|
+
*/
|
|
559
|
+
maxCharError: PropTypes.string,
|
|
560
|
+
|
|
561
|
+
/**
|
|
562
|
+
* The message that appears when there are too few characters.
|
|
563
|
+
*/
|
|
564
|
+
minCharError: PropTypes.string,
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* The message that appears when the input is empty and required.
|
|
568
|
+
*/
|
|
569
|
+
requiredError: PropTypes.string
|
|
570
|
+
})
|
|
482
571
|
} : void 0;
|
|
483
572
|
export default withStyles(styles, {
|
|
484
573
|
name: "HvTagsInput"
|