@carbon/ibm-products 1.11.2 → 1.14.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/README.md +0 -3
- package/css/components/Datagrid/styles/addons/CustomizeColumnsModal.css +47 -0
- package/css/components/Datagrid/styles/addons/CustomizeColumnsModal.css.map +1 -0
- package/css/components/Datagrid/styles/addons/RowSizeDropdown.css +20 -0
- package/css/components/Datagrid/styles/addons/RowSizeDropdown.css.map +1 -0
- package/css/components/Datagrid/styles/datagrid.css +264 -0
- package/css/components/Datagrid/styles/datagrid.css.map +1 -0
- package/css/components/Datagrid/styles/index.css +509 -0
- package/css/components/Datagrid/styles/index.css.map +1 -0
- package/css/components/Datagrid/styles/useActionsColumn.css +23 -0
- package/css/components/Datagrid/styles/useActionsColumn.css.map +1 -0
- package/css/components/Datagrid/styles/useColumnRightAlign.css +28 -0
- package/css/components/Datagrid/styles/useColumnRightAlign.css.map +1 -0
- package/css/components/Datagrid/styles/useNestedRows.css +15 -0
- package/css/components/Datagrid/styles/useNestedRows.css.map +1 -0
- package/css/components/Datagrid/styles/useNestedTable.css +25 -0
- package/css/components/Datagrid/styles/useNestedTable.css.map +1 -0
- package/css/components/Datagrid/styles/useSelectAllToggle.css +28 -0
- package/css/components/Datagrid/styles/useSelectAllToggle.css.map +1 -0
- package/css/components/Datagrid/styles/useSortableColumns.css +50 -0
- package/css/components/Datagrid/styles/useSortableColumns.css.map +1 -0
- package/css/components/Datagrid/styles/useStickyColumn.css +35 -0
- package/css/components/Datagrid/styles/useStickyColumn.css.map +1 -0
- package/css/index-full-carbon.css +2019 -376
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +6 -6
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +18 -6
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +2 -2
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +679 -19
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +5 -5
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +679 -19
- package/css/index.css.map +1 -1
- package/css/index.min.css +6 -6
- package/css/index.min.css.map +1 -1
- package/es/components/ActionBar/ActionBar.js +3 -1
- package/es/components/ActionBar/ActionBarOverflowItems.js +5 -3
- package/es/components/AddSelect/AddSelect.js +133 -30
- package/es/components/AddSelect/AddSelectColumn.js +0 -1
- package/es/components/AddSelect/AddSelectFilter.js +129 -0
- package/es/components/AddSelect/AddSelectList.js +59 -13
- package/es/components/AddSelect/AddSelectSidebar.js +15 -5
- package/es/components/AddSelect/add-select-utils.js +30 -0
- package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -0
- package/es/components/DataSpreadsheet/DataSpreadsheet.js +262 -164
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +191 -51
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +65 -13
- package/es/components/DataSpreadsheet/hooks/index.js +10 -0
- package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +111 -0
- package/es/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +2 -4
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +6 -6
- package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +3 -1
- package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +80 -6
- package/es/components/Datagrid/Datagrid/Datagrid.js +70 -0
- package/es/components/Datagrid/Datagrid/DatagridBody.js +36 -0
- package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +19 -0
- package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +26 -0
- package/es/components/Datagrid/Datagrid/DatagridHead.js +31 -0
- package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +57 -0
- package/es/components/Datagrid/Datagrid/DatagridRefBody.js +37 -0
- package/es/components/Datagrid/Datagrid/DatagridRow.js +50 -0
- package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +50 -0
- package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +122 -0
- package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +36 -0
- package/es/components/Datagrid/Datagrid/DatagridToolbar.js +22 -0
- package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +87 -0
- package/es/components/Datagrid/Datagrid/DraggableElement.js +188 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +78 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +51 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +140 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +157 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +62 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/common.js +13 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +9 -0
- package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +62 -0
- package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +139 -0
- package/es/components/Datagrid/Datagrid/addons/RowSize/index.js +8 -0
- package/es/components/Datagrid/Datagrid/index.js +8 -0
- package/es/components/Datagrid/Datagrid.stories/CustomizeColumnStory.js +6 -0
- package/es/components/Datagrid/Datagrid.stories/LeftPanelStory.js +6 -0
- package/es/components/Datagrid/Datagrid.stories/RowSizeDropdownStory.js +6 -0
- package/es/components/Datagrid/Datagrid.stories/SelectAllWithToggleStory.js +6 -0
- package/es/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +92 -0
- package/es/components/Datagrid/Datagrid.stories/common.js +199 -0
- package/es/components/Datagrid/Datagrid.stories/index.js +5 -0
- package/es/components/Datagrid/common-column-ids.js +8 -0
- package/es/components/Datagrid/index.js +22 -0
- package/es/components/Datagrid/useActionsColumn.js +86 -0
- package/es/components/Datagrid/useColumnRightAlign.js +52 -0
- package/es/components/Datagrid/useCustomizeColumns.js +45 -0
- package/es/components/Datagrid/useDatagrid.js +44 -0
- package/es/components/Datagrid/useDefaultStringRenderer.js +48 -0
- package/es/components/Datagrid/useDisableSelectRows.js +84 -0
- package/es/components/Datagrid/useExpandedRow.js +52 -0
- package/es/components/Datagrid/useFlexResize.js +51 -0
- package/es/components/Datagrid/useFloatingScroll.js +88 -0
- package/es/components/Datagrid/useInfiniteScroll.js +54 -0
- package/es/components/Datagrid/useNestedRows.js +53 -0
- package/es/components/Datagrid/useOnRowClick.js +37 -0
- package/es/components/Datagrid/useParentDimensions.js +65 -0
- package/es/components/Datagrid/useResizeTable.js +40 -0
- package/es/components/Datagrid/useRowExpander.js +34 -0
- package/es/components/Datagrid/useRowIsMouseOver.js +61 -0
- package/es/components/Datagrid/useRowRenderer.js +30 -0
- package/es/components/Datagrid/useRowSize.js +56 -0
- package/es/components/Datagrid/useSelectAllToggle.js +74 -0
- package/es/components/Datagrid/useSelectRows.js +107 -0
- package/es/components/Datagrid/useSkeletonRows.js +32 -0
- package/es/components/Datagrid/useSortableColumns.js +110 -0
- package/es/components/Datagrid/useStickyColumn.js +183 -0
- package/es/components/HTTPErrors/assets/HTTPErrorSvg403.js +2 -3
- package/es/components/HTTPErrors/assets/HTTPErrorSvg404.js +2 -3
- package/es/components/HTTPErrors/assets/HTTPErrorSvgOther.js +2 -3
- package/es/components/ImportModal/ImportModal.js +2 -2
- package/es/components/TagSet/TagSet.js +12 -3
- package/es/components/UserProfileImage/UserProfileImage.js +38 -10
- package/es/components/index.js +2 -1
- package/es/global/js/package-settings.js +2 -1
- package/lib/components/ActionBar/ActionBar.js +3 -1
- package/lib/components/ActionBar/ActionBarOverflowItems.js +5 -3
- package/lib/components/AddSelect/AddSelect.js +132 -28
- package/lib/components/AddSelect/AddSelectColumn.js +0 -1
- package/lib/components/AddSelect/AddSelectFilter.js +147 -0
- package/lib/components/AddSelect/AddSelectList.js +61 -12
- package/lib/components/AddSelect/AddSelectSidebar.js +15 -11
- package/lib/components/AddSelect/add-select-utils.js +35 -2
- package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -0
- package/lib/components/DataSpreadsheet/DataSpreadsheet.js +267 -168
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +191 -57
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +67 -18
- package/lib/components/DataSpreadsheet/hooks/index.js +37 -0
- package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +123 -0
- package/lib/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +2 -4
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +6 -5
- package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +3 -1
- package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +83 -7
- package/lib/components/Datagrid/Datagrid/Datagrid.js +86 -0
- package/lib/components/Datagrid/Datagrid/DatagridBody.js +50 -0
- package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +31 -0
- package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +38 -0
- package/lib/components/Datagrid/Datagrid/DatagridHead.js +43 -0
- package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +73 -0
- package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +44 -0
- package/lib/components/Datagrid/Datagrid/DatagridRow.js +56 -0
- package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +55 -0
- package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +139 -0
- package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +44 -0
- package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +35 -0
- package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +101 -0
- package/lib/components/Datagrid/Datagrid/DraggableElement.js +210 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +92 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +65 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +166 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +173 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +73 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/common.js +25 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +23 -0
- package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +80 -0
- package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +160 -0
- package/lib/components/Datagrid/Datagrid/addons/RowSize/index.js +15 -0
- package/lib/components/Datagrid/Datagrid/index.js +15 -0
- package/lib/components/Datagrid/Datagrid.stories/CustomizeColumnStory.js +13 -0
- package/lib/components/Datagrid/Datagrid.stories/LeftPanelStory.js +13 -0
- package/lib/components/Datagrid/Datagrid.stories/RowSizeDropdownStory.js +13 -0
- package/lib/components/Datagrid/Datagrid.stories/SelectAllWithToggleStory.js +13 -0
- package/lib/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +112 -0
- package/lib/components/Datagrid/Datagrid.stories/common.js +215 -0
- package/lib/components/Datagrid/Datagrid.stories/index.js +47 -0
- package/lib/components/Datagrid/common-column-ids.js +16 -0
- package/lib/components/Datagrid/index.js +127 -0
- package/lib/components/Datagrid/useActionsColumn.js +94 -0
- package/lib/components/Datagrid/useColumnRightAlign.js +59 -0
- package/lib/components/Datagrid/useCustomizeColumns.js +55 -0
- package/lib/components/Datagrid/useDatagrid.js +58 -0
- package/lib/components/Datagrid/useDefaultStringRenderer.js +54 -0
- package/lib/components/Datagrid/useDisableSelectRows.js +92 -0
- package/lib/components/Datagrid/useExpandedRow.js +58 -0
- package/lib/components/Datagrid/useFlexResize.js +61 -0
- package/lib/components/Datagrid/useFloatingScroll.js +101 -0
- package/lib/components/Datagrid/useInfiniteScroll.js +67 -0
- package/lib/components/Datagrid/useNestedRows.js +65 -0
- package/lib/components/Datagrid/useOnRowClick.js +45 -0
- package/lib/components/Datagrid/useParentDimensions.js +75 -0
- package/lib/components/Datagrid/useResizeTable.js +48 -0
- package/lib/components/Datagrid/useRowExpander.js +45 -0
- package/lib/components/Datagrid/useRowIsMouseOver.js +66 -0
- package/lib/components/Datagrid/useRowRenderer.js +40 -0
- package/lib/components/Datagrid/useRowSize.js +67 -0
- package/lib/components/Datagrid/useSelectAllToggle.js +88 -0
- package/lib/components/Datagrid/useSelectRows.js +119 -0
- package/lib/components/Datagrid/useSkeletonRows.js +42 -0
- package/lib/components/Datagrid/useSortableColumns.js +117 -0
- package/lib/components/Datagrid/useStickyColumn.js +190 -0
- package/lib/components/HTTPErrors/assets/HTTPErrorSvg403.js +2 -3
- package/lib/components/HTTPErrors/assets/HTTPErrorSvg404.js +2 -3
- package/lib/components/HTTPErrors/assets/HTTPErrorSvgOther.js +2 -3
- package/lib/components/ImportModal/ImportModal.js +1 -1
- package/lib/components/TagSet/TagSet.js +12 -3
- package/lib/components/UserProfileImage/UserProfileImage.js +38 -10
- package/lib/components/index.js +9 -1
- package/lib/global/js/package-settings.js +2 -1
- package/package.json +19 -15
- package/scss/components/AboutModal/_about-modal.scss +2 -2
- package/scss/components/ActionSet/_action-set.scss +3 -1
- package/scss/components/AddSelect/_add-select.scss +87 -3
- package/scss/components/CreateModal/_create-modal.scss +7 -5
- package/scss/components/CreateModal/_storybook-styles.scss +8 -7
- package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +70 -10
- package/scss/components/Datagrid/_datagrid.scss +66 -0
- package/scss/components/Datagrid/_index.scss +8 -0
- package/scss/components/Datagrid/_storybook-styles.scss +26 -0
- package/scss/components/Datagrid/styles/_variables.scss +9 -0
- package/scss/components/Datagrid/styles/addons/CustomizeColumnsModal.scss +48 -0
- package/scss/components/Datagrid/styles/addons/RowSizeDropdown.scss +23 -0
- package/scss/components/Datagrid/styles/datagrid.scss +318 -0
- package/scss/components/Datagrid/styles/index.scss +17 -0
- package/scss/components/Datagrid/styles/useActionsColumn.scss +24 -0
- package/scss/components/Datagrid/styles/useColumnRightAlign.scss +29 -0
- package/scss/components/Datagrid/styles/useNestedRows.scss +17 -0
- package/scss/components/Datagrid/styles/useNestedTable.scss +28 -0
- package/scss/components/Datagrid/styles/useSelectAllToggle.scss +28 -0
- package/scss/components/Datagrid/styles/useSortableColumns.scss +55 -0
- package/scss/components/Datagrid/styles/useStickyColumn.scss +38 -0
- package/scss/components/ExportModal/_export-modal.scss +3 -3
- package/scss/components/HTTPErrors/_http-errors.scss +16 -16
- package/scss/components/InlineEdit/_inline-edit.scss +0 -1
- package/scss/components/ModifiedTabs/_modified-tabs.scss +0 -10
- package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -3
- package/scss/components/OptionsTile/_options-tile.scss +0 -1
- package/scss/components/PageHeader/_page-header.scss +4 -0
- package/scss/components/RemoveModal/_remove-modal.scss +3 -3
- package/scss/components/TagSet/_tag-set.scss +2 -1
- package/scss/components/Tearsheet/_tearsheet.scss +5 -2
- package/scss/components/_index.scss +1 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["backgroundColor", "className", "kind", "initials", "image", "imageDescription", "size", "theme", "tooltipText"];
|
|
3
|
+
var _excluded = ["backgroundColor", "className", "kind", "icon", "initials", "image", "imageDescription", "size", "theme", "tooltipText"];
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Copyright IBM Corp. 2021, 2021
|
|
@@ -31,6 +31,7 @@ export var UserProfileImage = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
|
31
31
|
var backgroundColor = _ref.backgroundColor,
|
|
32
32
|
className = _ref.className,
|
|
33
33
|
kind = _ref.kind,
|
|
34
|
+
icon = _ref.icon,
|
|
34
35
|
initials = _ref.initials,
|
|
35
36
|
image = _ref.image,
|
|
36
37
|
imageDescription = _ref.imageDescription,
|
|
@@ -62,18 +63,40 @@ export var UserProfileImage = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
|
62
63
|
return initials.match(/(^\S\S?|\b\S)?/g).join('').match(/(^\S|\S$)?/g).join('').toUpperCase();
|
|
63
64
|
};
|
|
64
65
|
|
|
65
|
-
var
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
var getFillItem = function getFillItem() {
|
|
67
|
+
if (image) {
|
|
68
|
+
return function () {
|
|
69
|
+
return /*#__PURE__*/React.createElement("img", {
|
|
70
|
+
alt: imageDescription,
|
|
71
|
+
src: image,
|
|
72
|
+
className: "".concat(blockClass, "__photo ").concat(blockClass, "__photo--").concat(size)
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (initials) {
|
|
78
|
+
return formatInitials;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (kind && size) {
|
|
82
|
+
return icons[kind][size];
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return icon;
|
|
86
|
+
}; // if user doesn't provide a color just generate a random one
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
var getRandomColor = function getRandomColor() {
|
|
90
|
+
var colors = ['light-cyan', 'dark-cyan', 'light-gray', 'dark-gray', 'light-green', 'dark-green', 'light-magenta', 'dark-magenta', 'light-purple', 'dark-purple', 'light-teal', 'dark-teal'];
|
|
91
|
+
return colors[Math.floor(Math.random() * colors.length)];
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
var FillItem = getFillItem();
|
|
72
95
|
|
|
73
96
|
var renderUserProfileImage = function renderUserProfileImage() {
|
|
74
97
|
return /*#__PURE__*/React.createElement("div", _extends({}, rest, {
|
|
75
98
|
ref: ref,
|
|
76
|
-
className: cx([blockClass, className, "".concat(blockClass, "--").concat(size), "".concat(blockClass, "--").concat(theme), "".concat(blockClass, "--").concat(backgroundColor)])
|
|
99
|
+
className: cx([blockClass, className, "".concat(blockClass, "--").concat(size), "".concat(blockClass, "--").concat(theme), "".concat(blockClass, "--").concat(backgroundColor || getRandomColor())])
|
|
77
100
|
}, getDevtoolsProps(componentName)), /*#__PURE__*/React.createElement(FillItem, null));
|
|
78
101
|
};
|
|
79
102
|
|
|
@@ -97,6 +120,11 @@ UserProfileImage.propTypes = {
|
|
|
97
120
|
*/
|
|
98
121
|
className: PropTypes.string,
|
|
99
122
|
|
|
123
|
+
/**
|
|
124
|
+
* Provide a custom icon to use if you need to use an icon other than the included ones
|
|
125
|
+
*/
|
|
126
|
+
icon: PropTypes.object,
|
|
127
|
+
|
|
100
128
|
/**
|
|
101
129
|
* When passing the image prop, supply a full path to the image to be displayed.
|
|
102
130
|
*/
|
|
@@ -107,7 +135,7 @@ UserProfileImage.propTypes = {
|
|
|
107
135
|
*/
|
|
108
136
|
imageDescription: PropTypes.string.isRequired.if(function (_ref2) {
|
|
109
137
|
var image = _ref2.image;
|
|
110
|
-
return image;
|
|
138
|
+
return !!image;
|
|
111
139
|
}),
|
|
112
140
|
|
|
113
141
|
/**
|
package/es/components/index.js
CHANGED
|
@@ -36,4 +36,5 @@ export { WebTerminal } from './WebTerminal';
|
|
|
36
36
|
export { EditSidePanel } from './EditSidePanel';
|
|
37
37
|
export { OptionsTile } from './OptionsTile';
|
|
38
38
|
export { InlineEdit } from './InlineEdit';
|
|
39
|
-
export { DataSpreadsheet } from './DataSpreadsheet';
|
|
39
|
+
export { DataSpreadsheet } from './DataSpreadsheet';
|
|
40
|
+
export { Datagrid } from './Datagrid';
|
|
@@ -93,6 +93,8 @@ var ActionBar = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
|
93
93
|
className: "".concat(blockClass, "__hidden-sizing-items"),
|
|
94
94
|
"aria-hidden": true,
|
|
95
95
|
ref: sizingRef
|
|
96
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
97
|
+
"aria-hidden": false
|
|
96
98
|
}, /*#__PURE__*/_react.default.createElement(_ActionBarOverflowItems.ActionBarOverflowItems, {
|
|
97
99
|
className: "".concat(blockClass, "__hidden-sizing-item"),
|
|
98
100
|
overflowAriaLabel: "hidden sizing overflow items",
|
|
@@ -108,7 +110,7 @@ var ActionBar = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
|
108
110
|
key: "hidden-item-".concat(key),
|
|
109
111
|
className: "".concat(blockClass, "__hidden-sizing-item")
|
|
110
112
|
}));
|
|
111
|
-
})));
|
|
113
|
+
}))));
|
|
112
114
|
}, [actions]); // creates displayed items based on actions, displayCount and alignment
|
|
113
115
|
|
|
114
116
|
(0, _react.useEffect)(function () {
|
|
@@ -49,8 +49,10 @@ var ActionBarOverflowItems = function ActionBarOverflowItems(_ref) {
|
|
|
49
49
|
className: (0, _classnames.default)(blockClass, className),
|
|
50
50
|
direction: "bottom",
|
|
51
51
|
flipped: true,
|
|
52
|
+
iconDescription: overflowAriaLabel // also needs setting to avoid a11y "Accessible name does not match or contain the visible label text"
|
|
53
|
+
,
|
|
52
54
|
menuOptionsClass: (0, _classnames.default)("".concat(blockClass, "__options"), menuOptionsClass)
|
|
53
|
-
}, _react.default.Children.map(overflowItems, function (item) {
|
|
55
|
+
}, _react.default.Children.map(overflowItems, function (item, index) {
|
|
54
56
|
// This uses a copy of a menu item option
|
|
55
57
|
// NOTE: Cannot use a real Tooltip icon below as it uses a <button /> the
|
|
56
58
|
// div equivalent below is based on Carbon 10.25.0
|
|
@@ -58,10 +60,10 @@ var ActionBarOverflowItems = function ActionBarOverflowItems(_ref) {
|
|
|
58
60
|
className: "".concat(blockClass, "__item"),
|
|
59
61
|
itemText: /*#__PURE__*/_react.default.createElement("div", {
|
|
60
62
|
className: "".concat(blockClass, "__item-content"),
|
|
61
|
-
"aria-describedby": "".concat(internalId, "--item-label")
|
|
63
|
+
"aria-describedby": "".concat(internalId.current, "-").concat(index, "--item-label")
|
|
62
64
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
63
65
|
className: "".concat(blockClass, "__item-label"),
|
|
64
|
-
id: "".concat(internalId, "--item-label")
|
|
66
|
+
id: "".concat(internalId.current, "-").concat(index, "--item-label")
|
|
65
67
|
}, item.props.iconDescription), /*#__PURE__*/_react.default.createElement(item.props.renderIcon, null))
|
|
66
68
|
});
|
|
67
69
|
}));
|
|
@@ -41,7 +41,9 @@ var _AddSelectColumn = require("./AddSelectColumn");
|
|
|
41
41
|
|
|
42
42
|
var _addSelectUtils = require("./add-select-utils");
|
|
43
43
|
|
|
44
|
-
var
|
|
44
|
+
var _AddSelectFilter = require("./AddSelectFilter");
|
|
45
|
+
|
|
46
|
+
var _excluded = ["className", "columnInputPlaceholder", "description", "globalFilters", "globalFiltersIconDescription", "globalFiltersPlaceholderText", "globalFiltersPrimaryButtonText", "globalFiltersSecondaryButtonText", "influencerTitle", "inputPlaceholder", "items", "itemsLabel", "multi", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "onClose", "onCloseButtonText", "onSearchFilter", "onSubmit", "onSubmitButtonText", "open", "removeIconDescription", "searchResultsLabel", "textInputLabel", "title"];
|
|
45
47
|
|
|
46
48
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
47
49
|
|
|
@@ -54,6 +56,11 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
54
56
|
var className = _ref.className,
|
|
55
57
|
columnInputPlaceholder = _ref.columnInputPlaceholder,
|
|
56
58
|
description = _ref.description,
|
|
59
|
+
globalFilters = _ref.globalFilters,
|
|
60
|
+
globalFiltersIconDescription = _ref.globalFiltersIconDescription,
|
|
61
|
+
globalFiltersPlaceholderText = _ref.globalFiltersPlaceholderText,
|
|
62
|
+
globalFiltersPrimaryButtonText = _ref.globalFiltersPrimaryButtonText,
|
|
63
|
+
globalFiltersSecondaryButtonText = _ref.globalFiltersSecondaryButtonText,
|
|
57
64
|
influencerTitle = _ref.influencerTitle,
|
|
58
65
|
inputPlaceholder = _ref.inputPlaceholder,
|
|
59
66
|
items = _ref.items,
|
|
@@ -70,6 +77,7 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
70
77
|
onSubmitButtonText = _ref.onSubmitButtonText,
|
|
71
78
|
open = _ref.open,
|
|
72
79
|
removeIconDescription = _ref.removeIconDescription,
|
|
80
|
+
searchResultsLabel = _ref.searchResultsLabel,
|
|
73
81
|
textInputLabel = _ref.textInputLabel,
|
|
74
82
|
title = _ref.title,
|
|
75
83
|
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
@@ -107,21 +115,42 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
107
115
|
|
|
108
116
|
var _useState13 = (0, _react.useState)([]),
|
|
109
117
|
_useState14 = (0, _slicedToArray2.default)(_useState13, 2),
|
|
110
|
-
|
|
111
|
-
|
|
118
|
+
flatItems = _useState14[0],
|
|
119
|
+
setFlatItems = _useState14[1];
|
|
120
|
+
|
|
121
|
+
var _useState15 = (0, _react.useState)([]),
|
|
122
|
+
_useState16 = (0, _slicedToArray2.default)(_useState15, 2),
|
|
123
|
+
globalFilterOpts = _useState16[0],
|
|
124
|
+
setGlobalFilterOpts = _useState16[1];
|
|
125
|
+
|
|
126
|
+
var _useState17 = (0, _react.useState)({}),
|
|
127
|
+
_useState18 = (0, _slicedToArray2.default)(_useState17, 2),
|
|
128
|
+
appliedGlobalFilters = _useState18[0],
|
|
129
|
+
setAppliedGlobalFilters = _useState18[1];
|
|
112
130
|
|
|
113
131
|
(0, _react.useEffect)(function () {
|
|
114
|
-
var entries = items.entries;
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
132
|
+
var entries = items.entries; // flatItems is just a single array of all entries including children
|
|
133
|
+
|
|
134
|
+
var flattenedItems = (0, _addSelectUtils.flatten)(entries);
|
|
135
|
+
|
|
136
|
+
if (multi) {
|
|
137
|
+
if (globalFilters !== null && globalFilters !== void 0 && globalFilters.length) {
|
|
138
|
+
var globalFilterValues = (0, _addSelectUtils.getGlobalFilterValues)(globalFilters, flattenedItems);
|
|
139
|
+
setGlobalFilterOpts(globalFilterValues);
|
|
140
|
+
} // multi select with nested data needs to be normalized
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
if (entries.find(function (entry) {
|
|
144
|
+
return entry.children;
|
|
145
|
+
})) {
|
|
146
|
+
var newItems = (0, _addSelectUtils.normalize)(items);
|
|
147
|
+
setNormalizedItems(newItems);
|
|
148
|
+
setUsedNormalizedItems(true);
|
|
149
|
+
}
|
|
123
150
|
}
|
|
124
|
-
|
|
151
|
+
|
|
152
|
+
setFlatItems(flattenedItems);
|
|
153
|
+
}, [items, multi, globalFilters]); // used to generate columns of results for multi select with hierarchy
|
|
125
154
|
|
|
126
155
|
var getPages = function getPages() {
|
|
127
156
|
var pages = [];
|
|
@@ -191,10 +220,32 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
191
220
|
return item.title.toLowerCase().includes(searchTerm);
|
|
192
221
|
});
|
|
193
222
|
return results;
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
var getDisplayItems = function getDisplayItems() {
|
|
226
|
+
if (useNormalizedItems) {
|
|
227
|
+
// when global search or filter is in use the results are not in column format
|
|
228
|
+
var filters = Object.keys(appliedGlobalFilters);
|
|
229
|
+
|
|
230
|
+
if (searchTerm || filters.length) {
|
|
231
|
+
var results = flatItems.filter(function (item) {
|
|
232
|
+
return item.title.toLowerCase().includes(searchTerm);
|
|
233
|
+
}).filter(function (item) {
|
|
234
|
+
return filters.every(function (filter) {
|
|
235
|
+
return item[filter] === appliedGlobalFilters[filter];
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
return results;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
return getPages();
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
return getFilteredItems();
|
|
194
245
|
}; // only multi select with hierarchy requires the the normalized items
|
|
195
246
|
|
|
196
247
|
|
|
197
|
-
var itemsToDisplay =
|
|
248
|
+
var itemsToDisplay = getDisplayItems();
|
|
198
249
|
var commonListProps = {
|
|
199
250
|
multi: multi,
|
|
200
251
|
multiSelection: multiSelection,
|
|
@@ -205,8 +256,12 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
205
256
|
singleSelection: singleSelection
|
|
206
257
|
}; // handlers
|
|
207
258
|
|
|
208
|
-
var handleSearch = function handleSearch(
|
|
209
|
-
setSearchTerm(
|
|
259
|
+
var handleSearch = function handleSearch(term) {
|
|
260
|
+
setSearchTerm(term);
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
var handleFilter = function handleFilter(filters) {
|
|
264
|
+
setAppliedGlobalFilters(filters);
|
|
210
265
|
};
|
|
211
266
|
|
|
212
267
|
var submitHandler = function submitHandler() {
|
|
@@ -231,35 +286,69 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
231
286
|
};
|
|
232
287
|
var sidebarProps = {
|
|
233
288
|
influencerTitle: influencerTitle,
|
|
234
|
-
items:
|
|
289
|
+
items: flatItems,
|
|
235
290
|
multiSelection: multiSelection,
|
|
236
291
|
noSelectionDescription: noSelectionDescription,
|
|
237
292
|
noSelectionTitle: noSelectionTitle,
|
|
238
293
|
removeIconDescription: removeIconDescription,
|
|
239
294
|
setMultiSelection: setMultiSelection
|
|
240
295
|
};
|
|
241
|
-
var classNames = (0, _classnames.default)(className, blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__single"), !multi), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__multi"), multi), _cx));
|
|
296
|
+
var classNames = (0, _classnames.default)(className, blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__single"), !multi), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__multi"), multi), _cx));
|
|
297
|
+
|
|
298
|
+
var setShowBreadsCrumbs = function setShowBreadsCrumbs() {
|
|
299
|
+
if (searchTerm) {
|
|
300
|
+
return false;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
if (path.length) {
|
|
304
|
+
return true;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
return false;
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
var setShowTags = function setShowTags() {
|
|
311
|
+
if (searchTerm) {
|
|
312
|
+
return true;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
if (useNormalizedItems) {
|
|
316
|
+
return false;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
return true;
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
var showBreadsCrumbs = setShowBreadsCrumbs();
|
|
323
|
+
var showTags = setShowTags();
|
|
324
|
+
var globalFiltersApplied = Object.keys(appliedGlobalFilters).length > 0; // main content
|
|
242
325
|
|
|
243
326
|
var body = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
244
327
|
className: "".concat(blockClass, "__header")
|
|
245
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
328
|
+
}, /*#__PURE__*/_react.default.createElement(_AddSelectFilter.AddSelectFilter, {
|
|
329
|
+
textInputLabel: textInputLabel,
|
|
330
|
+
inputPlaceholder: inputPlaceholder,
|
|
331
|
+
searchTerm: searchTerm,
|
|
332
|
+
handleSearch: handleSearch,
|
|
333
|
+
multi: multi,
|
|
334
|
+
filterOpts: globalFilterOpts,
|
|
335
|
+
handleFilter: handleFilter,
|
|
336
|
+
primaryButtonText: globalFiltersPrimaryButtonText,
|
|
337
|
+
secondaryButtonText: globalFiltersSecondaryButtonText,
|
|
338
|
+
placeholder: globalFiltersPlaceholderText,
|
|
339
|
+
iconDescription: globalFiltersIconDescription
|
|
251
340
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
252
341
|
className: "".concat(blockClass, "__tag-container")
|
|
253
|
-
},
|
|
342
|
+
}, showBreadsCrumbs ? /*#__PURE__*/_react.default.createElement(_AddSelectBreadcrumbs.AddSelectBreadcrumbs, {
|
|
254
343
|
itemsLabel: itemsLabel,
|
|
255
344
|
path: path,
|
|
256
345
|
setPath: setPath
|
|
257
346
|
}) : /*#__PURE__*/_react.default.createElement("p", {
|
|
258
347
|
className: "".concat(blockClass, "__tag-container-label")
|
|
259
|
-
}, itemsLabel),
|
|
348
|
+
}, searchTerm ? searchResultsLabel : itemsLabel), showTags && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Tag, {
|
|
260
349
|
type: "gray",
|
|
261
350
|
size: "sm"
|
|
262
|
-
}, itemsToDisplay.length))), useNormalizedItems ? /*#__PURE__*/_react.default.createElement("div", {
|
|
351
|
+
}, itemsToDisplay.length))), useNormalizedItems && !searchTerm && !globalFiltersApplied ? /*#__PURE__*/_react.default.createElement("div", {
|
|
263
352
|
className: "".concat(blockClass, "__columns")
|
|
264
353
|
}, itemsToDisplay.map(function (page, idx) {
|
|
265
354
|
var _path;
|
|
@@ -271,7 +360,8 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
271
360
|
columnInputPlaceholder: columnInputPlaceholder
|
|
272
361
|
}));
|
|
273
362
|
})) : /*#__PURE__*/_react.default.createElement("div", null, itemsToDisplay.length > 0 ? /*#__PURE__*/_react.default.createElement(_AddSelectList.AddSelectList, (0, _extends2.default)({}, commonListProps, {
|
|
274
|
-
filteredItems: itemsToDisplay
|
|
363
|
+
filteredItems: itemsToDisplay,
|
|
364
|
+
modifiers: items === null || items === void 0 ? void 0 : items.modifiers
|
|
275
365
|
})) : /*#__PURE__*/_react.default.createElement("div", {
|
|
276
366
|
className: "".concat(blockClass, "__body")
|
|
277
367
|
}, /*#__PURE__*/_react.default.createElement(_NoDataEmptyState.NoDataEmptyState, {
|
|
@@ -292,9 +382,22 @@ AddSelect.propTypes = {
|
|
|
292
382
|
className: _propTypes.default.string,
|
|
293
383
|
columnInputPlaceholder: _propTypes.default.string,
|
|
294
384
|
description: _propTypes.default.string,
|
|
385
|
+
globalFilters: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
386
|
+
id: _propTypes.default.string,
|
|
387
|
+
label: _propTypes.default.string
|
|
388
|
+
})),
|
|
389
|
+
globalFiltersIconDescription: _propTypes.default.string,
|
|
390
|
+
globalFiltersPlaceholderText: _propTypes.default.string,
|
|
391
|
+
globalFiltersPrimaryButtonText: _propTypes.default.string,
|
|
392
|
+
globalFiltersSecondaryButtonText: _propTypes.default.string,
|
|
295
393
|
influencerTitle: _propTypes.default.string,
|
|
296
394
|
inputPlaceholder: _propTypes.default.string,
|
|
297
395
|
items: _propTypes.default.shape({
|
|
396
|
+
modifiers: _propTypes.default.shape({
|
|
397
|
+
label: _propTypes.default.string,
|
|
398
|
+
options: _propTypes.default.array,
|
|
399
|
+
property: _propTypes.default.string
|
|
400
|
+
}),
|
|
298
401
|
sortBy: _propTypes.default.array,
|
|
299
402
|
filterBy: _propTypes.default.array,
|
|
300
403
|
entries: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
@@ -317,6 +420,7 @@ AddSelect.propTypes = {
|
|
|
317
420
|
onSubmitButtonText: _propTypes.default.string,
|
|
318
421
|
open: _propTypes.default.bool,
|
|
319
422
|
removeIconDescription: _propTypes.default.string,
|
|
423
|
+
searchResultsLabel: _propTypes.default.string,
|
|
320
424
|
textInputLabel: _propTypes.default.string,
|
|
321
425
|
title: _propTypes.default.string
|
|
322
426
|
};
|
|
@@ -238,7 +238,6 @@ var AddSelectColumn = function AddSelectColumn(_ref) {
|
|
|
238
238
|
size: "sm"
|
|
239
239
|
}, colItems.length))
|
|
240
240
|
})), /*#__PURE__*/_react.default.createElement(_AddSelectList.AddSelectList, (0, _extends2.default)({}, props, {
|
|
241
|
-
inColumn: true,
|
|
242
241
|
filteredItems: colItems,
|
|
243
242
|
setMultiSelection: setMultiSelection,
|
|
244
243
|
multiSelection: multiSelection
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.AddSelectFilter = void 0;
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _carbonComponentsReact = require("carbon-components-react");
|
|
19
|
+
|
|
20
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
21
|
+
|
|
22
|
+
var _iconsReact = require("@carbon/icons-react");
|
|
23
|
+
|
|
24
|
+
var _settings = require("../../settings");
|
|
25
|
+
|
|
26
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
|
+
|
|
28
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
|
+
|
|
30
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
31
|
+
|
|
32
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
33
|
+
|
|
34
|
+
var componentName = 'AddSelectFilter';
|
|
35
|
+
|
|
36
|
+
var AddSelectFilter = function AddSelectFilter(_ref) {
|
|
37
|
+
var filterOpts = _ref.filterOpts,
|
|
38
|
+
handleFilter = _ref.handleFilter,
|
|
39
|
+
handleSearch = _ref.handleSearch,
|
|
40
|
+
iconDescription = _ref.iconDescription,
|
|
41
|
+
inputPlaceholder = _ref.inputPlaceholder,
|
|
42
|
+
multi = _ref.multi,
|
|
43
|
+
placeholder = _ref.placeholder,
|
|
44
|
+
primaryButtonText = _ref.primaryButtonText,
|
|
45
|
+
searchTerm = _ref.searchTerm,
|
|
46
|
+
secondaryButtonText = _ref.secondaryButtonText,
|
|
47
|
+
textInputLabel = _ref.textInputLabel;
|
|
48
|
+
|
|
49
|
+
var _useState = (0, _react.useState)({}),
|
|
50
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
51
|
+
filters = _useState2[0],
|
|
52
|
+
setFilters = _useState2[1];
|
|
53
|
+
|
|
54
|
+
var _useState3 = (0, _react.useState)(false),
|
|
55
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
56
|
+
open = _useState4[0],
|
|
57
|
+
setOpen = _useState4[1];
|
|
58
|
+
|
|
59
|
+
var blockClass = "".concat(_settings.pkg.prefix, "--add-select__global-filter");
|
|
60
|
+
|
|
61
|
+
var searchHandler = function searchHandler(e) {
|
|
62
|
+
handleSearch(e.target.value);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
var onchangeHandler = function onchangeHandler(_ref2, id) {
|
|
66
|
+
var selectedItem = _ref2.selectedItem;
|
|
67
|
+
setFilters(_objectSpread(_objectSpread({}, filters), {}, (0, _defineProperty2.default)({}, id, selectedItem)));
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
var applyFilters = function applyFilters() {
|
|
71
|
+
handleFilter(filters);
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
var resetFilters = function resetFilters() {
|
|
75
|
+
setFilters({});
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
var getSelectedItem = function getSelectedItem(id) {
|
|
79
|
+
return filters[id] || '';
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
var showFilter = multi && (filterOpts === null || filterOpts === void 0 ? void 0 : filterOpts.length) > 0;
|
|
83
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
84
|
+
className: "".concat(blockClass, "-search")
|
|
85
|
+
}, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TextInput, {
|
|
86
|
+
id: "temp-id",
|
|
87
|
+
labelText: textInputLabel,
|
|
88
|
+
placeholder: inputPlaceholder,
|
|
89
|
+
value: searchTerm,
|
|
90
|
+
onChange: searchHandler
|
|
91
|
+
}), showFilter && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
|
92
|
+
renderIcon: _iconsReact.Filter16,
|
|
93
|
+
hasIconOnly: true,
|
|
94
|
+
kind: "ghost",
|
|
95
|
+
onClick: function onClick() {
|
|
96
|
+
return setOpen(!open);
|
|
97
|
+
},
|
|
98
|
+
iconDescription: iconDescription,
|
|
99
|
+
className: "".concat(blockClass, "-toggle"),
|
|
100
|
+
size: "md"
|
|
101
|
+
}), open && /*#__PURE__*/_react.default.createElement("div", {
|
|
102
|
+
className: "".concat(blockClass)
|
|
103
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
104
|
+
className: "".concat(blockClass, "-content")
|
|
105
|
+
}, /*#__PURE__*/_react.default.createElement("p", null, "Filters"), /*#__PURE__*/_react.default.createElement("div", {
|
|
106
|
+
className: "".concat(blockClass, "-opts")
|
|
107
|
+
}, filterOpts.map(function (filterOpts) {
|
|
108
|
+
return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Dropdown, {
|
|
109
|
+
id: filterOpts.id,
|
|
110
|
+
key: filterOpts.id,
|
|
111
|
+
titleText: filterOpts.label,
|
|
112
|
+
items: filterOpts.opts,
|
|
113
|
+
light: true,
|
|
114
|
+
onChange: function onChange(value) {
|
|
115
|
+
return onchangeHandler(value, filterOpts.id);
|
|
116
|
+
},
|
|
117
|
+
selectedItem: getSelectedItem(filterOpts.id),
|
|
118
|
+
label: placeholder
|
|
119
|
+
});
|
|
120
|
+
}))), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.ButtonSet, {
|
|
121
|
+
className: "".concat(blockClass, "-button-set")
|
|
122
|
+
}, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
|
123
|
+
kind: "secondary",
|
|
124
|
+
onClick: resetFilters,
|
|
125
|
+
className: "".concat(blockClass, "-button")
|
|
126
|
+
}, secondaryButtonText), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
|
127
|
+
kind: "primary",
|
|
128
|
+
onClick: applyFilters,
|
|
129
|
+
className: "".concat(blockClass, "-button")
|
|
130
|
+
}, primaryButtonText))));
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
exports.AddSelectFilter = AddSelectFilter;
|
|
134
|
+
AddSelectFilter.propTypes = {
|
|
135
|
+
filterOpts: _propTypes.default.array,
|
|
136
|
+
handleFilter: _propTypes.default.func,
|
|
137
|
+
handleSearch: _propTypes.default.func,
|
|
138
|
+
iconDescription: _propTypes.default.string,
|
|
139
|
+
inputPlaceholder: _propTypes.default.string,
|
|
140
|
+
multi: _propTypes.default.bool,
|
|
141
|
+
placeholder: _propTypes.default.string,
|
|
142
|
+
primaryButtonText: _propTypes.default.string,
|
|
143
|
+
searchTerm: _propTypes.default.string,
|
|
144
|
+
secondaryButtonText: _propTypes.default.string,
|
|
145
|
+
textInputLabel: _propTypes.default.string
|
|
146
|
+
};
|
|
147
|
+
AddSelectFilter.displayName = componentName;
|