@carbon/ibm-products 1.13.0 → 1.16.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/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 +268 -0
- package/css/components/Datagrid/styles/datagrid.css.map +1 -0
- package/css/components/Datagrid/styles/index.css +513 -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 +611 -10
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +3 -3
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +7 -4
- 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 +611 -10
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +3 -3
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +611 -10
- package/css/index.css.map +1 -1
- package/css/index.min.css +3 -3
- package/css/index.min.css.map +1 -1
- package/es/components/AddSelect/AddSelect.js +106 -43
- package/es/components/AddSelect/AddSelectFilter.js +172 -0
- package/es/components/AddSelect/add-select-utils.js +30 -0
- package/es/components/DataSpreadsheet/DataSpreadsheet.js +255 -175
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +78 -17
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +65 -20
- package/es/components/DataSpreadsheet/hooks/index.js +11 -0
- package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +139 -0
- package/es/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +2 -4
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetEdit.js +68 -0
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +1 -3
- package/es/components/DataSpreadsheet/utils/createCellSelectionArea.js +20 -8
- package/es/components/DataSpreadsheet/utils/generateData.js +17 -9
- package/es/components/DataSpreadsheet/utils/getSelectionAreaPoints.js +18 -0
- package/es/components/DataSpreadsheet/utils/getSpreadsheetWidth.js +30 -0
- package/es/components/DataSpreadsheet/utils/handleActiveCellInSelectionEnter.js +121 -0
- package/es/components/DataSpreadsheet/utils/handleActiveCellInSelectionTab.js +108 -0
- package/es/components/DataSpreadsheet/utils/handleEditSubmit.js +87 -0
- package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +42 -8
- package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +225 -13
- package/es/components/DataSpreadsheet/utils/selectAllCells.js +53 -0
- 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 +60 -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/MultiAddSelect/MultiAddSelect.js +150 -3
- package/es/components/PageHeader/PageHeader.js +3 -1
- package/es/components/SingleAddSelect/SingleAddSelect.js +90 -4
- package/es/components/TagSet/TagSet.js +13 -6
- package/es/components/Tearsheet/TearsheetShell.js +34 -10
- package/es/components/index.js +2 -1
- package/es/global/js/package-settings.js +4 -2
- package/lib/components/AddSelect/AddSelect.js +105 -41
- package/lib/components/AddSelect/AddSelectFilter.js +190 -0
- package/lib/components/AddSelect/add-select-utils.js +35 -2
- package/lib/components/DataSpreadsheet/DataSpreadsheet.js +261 -177
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +79 -23
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +67 -21
- package/lib/components/DataSpreadsheet/hooks/index.js +45 -0
- package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +151 -0
- package/lib/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +2 -4
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetEdit.js +79 -0
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +1 -3
- package/lib/components/DataSpreadsheet/utils/createCellSelectionArea.js +21 -8
- package/lib/components/DataSpreadsheet/utils/generateData.js +17 -9
- package/lib/components/DataSpreadsheet/utils/getSelectionAreaPoints.js +27 -0
- package/lib/components/DataSpreadsheet/utils/getSpreadsheetWidth.js +40 -0
- package/lib/components/DataSpreadsheet/utils/handleActiveCellInSelectionEnter.js +127 -0
- package/lib/components/DataSpreadsheet/utils/handleActiveCellInSelectionTab.js +118 -0
- package/lib/components/DataSpreadsheet/utils/handleEditSubmit.js +94 -0
- package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +44 -8
- package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +235 -20
- package/lib/components/DataSpreadsheet/utils/selectAllCells.js +60 -0
- 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 +68 -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/MultiAddSelect/MultiAddSelect.js +150 -2
- package/lib/components/PageHeader/PageHeader.js +3 -1
- package/lib/components/SingleAddSelect/SingleAddSelect.js +91 -3
- package/lib/components/TagSet/TagSet.js +13 -6
- package/lib/components/Tearsheet/TearsheetShell.js +36 -10
- package/lib/components/index.js +9 -1
- package/lib/global/js/package-settings.js +4 -2
- package/package.json +16 -12
- package/scss/components/AboutModal/_about-modal.scss +4 -0
- package/scss/components/AddSelect/_add-select.scss +46 -2
- package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +41 -4
- 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 +326 -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 +0 -4
- package/scss/components/Tearsheet/_tearsheet.scss +4 -0
- package/scss/components/_index.scss +1 -0
|
@@ -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", "clearFiltersText", "columnInputPlaceholder", "description", "globalFilters", "globalFiltersIconDescription", "globalFiltersPlaceholderText", "globalFiltersPrimaryButtonText", "globalFiltersSecondaryButtonText", "globalSearchLabel", "globalSearchPlaceholder", "influencerTitle", "items", "itemsLabel", "multi", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "onClose", "onCloseButtonText", "onSubmit", "onSubmitButtonText", "open", "portalTarget", "removeIconDescription", "searchResultsLabel", "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
|
|
|
@@ -52,10 +54,17 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
52
54
|
var _cx;
|
|
53
55
|
|
|
54
56
|
var className = _ref.className,
|
|
57
|
+
clearFiltersText = _ref.clearFiltersText,
|
|
55
58
|
columnInputPlaceholder = _ref.columnInputPlaceholder,
|
|
56
59
|
description = _ref.description,
|
|
60
|
+
globalFilters = _ref.globalFilters,
|
|
61
|
+
globalFiltersIconDescription = _ref.globalFiltersIconDescription,
|
|
62
|
+
globalFiltersPlaceholderText = _ref.globalFiltersPlaceholderText,
|
|
63
|
+
globalFiltersPrimaryButtonText = _ref.globalFiltersPrimaryButtonText,
|
|
64
|
+
globalFiltersSecondaryButtonText = _ref.globalFiltersSecondaryButtonText,
|
|
65
|
+
globalSearchLabel = _ref.globalSearchLabel,
|
|
66
|
+
globalSearchPlaceholder = _ref.globalSearchPlaceholder,
|
|
57
67
|
influencerTitle = _ref.influencerTitle,
|
|
58
|
-
inputPlaceholder = _ref.inputPlaceholder,
|
|
59
68
|
items = _ref.items,
|
|
60
69
|
itemsLabel = _ref.itemsLabel,
|
|
61
70
|
multi = _ref.multi,
|
|
@@ -65,13 +74,12 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
65
74
|
noSelectionTitle = _ref.noSelectionTitle,
|
|
66
75
|
onClose = _ref.onClose,
|
|
67
76
|
onCloseButtonText = _ref.onCloseButtonText,
|
|
68
|
-
onSearchFilter = _ref.onSearchFilter,
|
|
69
77
|
onSubmit = _ref.onSubmit,
|
|
70
78
|
onSubmitButtonText = _ref.onSubmitButtonText,
|
|
71
79
|
open = _ref.open,
|
|
80
|
+
portalTarget = _ref.portalTarget,
|
|
72
81
|
removeIconDescription = _ref.removeIconDescription,
|
|
73
82
|
searchResultsLabel = _ref.searchResultsLabel,
|
|
74
|
-
textInputLabel = _ref.textInputLabel,
|
|
75
83
|
title = _ref.title,
|
|
76
84
|
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
77
85
|
var blockClass = "".concat(_settings.pkg.prefix, "--add-select"); // hooks
|
|
@@ -111,19 +119,39 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
111
119
|
flatItems = _useState14[0],
|
|
112
120
|
setFlatItems = _useState14[1];
|
|
113
121
|
|
|
122
|
+
var _useState15 = (0, _react.useState)([]),
|
|
123
|
+
_useState16 = (0, _slicedToArray2.default)(_useState15, 2),
|
|
124
|
+
globalFilterOpts = _useState16[0],
|
|
125
|
+
setGlobalFilterOpts = _useState16[1];
|
|
126
|
+
|
|
127
|
+
var _useState17 = (0, _react.useState)({}),
|
|
128
|
+
_useState18 = (0, _slicedToArray2.default)(_useState17, 2),
|
|
129
|
+
appliedGlobalFilters = _useState18[0],
|
|
130
|
+
setAppliedGlobalFilters = _useState18[1];
|
|
131
|
+
|
|
114
132
|
(0, _react.useEffect)(function () {
|
|
115
133
|
var entries = items.entries; // flatItems is just a single array of all entries including children
|
|
116
134
|
|
|
117
|
-
|
|
135
|
+
var flattenedItems = (0, _addSelectUtils.flatten)(entries);
|
|
136
|
+
|
|
137
|
+
if (multi) {
|
|
138
|
+
if (globalFilters !== null && globalFilters !== void 0 && globalFilters.length) {
|
|
139
|
+
var globalFilterValues = (0, _addSelectUtils.getGlobalFilterValues)(globalFilters, flattenedItems);
|
|
140
|
+
setGlobalFilterOpts(globalFilterValues);
|
|
141
|
+
} // multi select with nested data needs to be normalized
|
|
118
142
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
143
|
+
|
|
144
|
+
if (entries.find(function (entry) {
|
|
145
|
+
return entry.children;
|
|
146
|
+
})) {
|
|
147
|
+
var newItems = (0, _addSelectUtils.normalize)(items);
|
|
148
|
+
setNormalizedItems(newItems);
|
|
149
|
+
setUsedNormalizedItems(true);
|
|
150
|
+
}
|
|
125
151
|
}
|
|
126
|
-
|
|
152
|
+
|
|
153
|
+
setFlatItems(flattenedItems);
|
|
154
|
+
}, [items, multi, globalFilters]); // used to generate columns of results for multi select with hierarchy
|
|
127
155
|
|
|
128
156
|
var getPages = function getPages() {
|
|
129
157
|
var pages = [];
|
|
@@ -182,11 +210,6 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
182
210
|
var results = itemsToFilter.filter(function (item) {
|
|
183
211
|
if (!searchTerm) {
|
|
184
212
|
return item;
|
|
185
|
-
} // if user provides their own filter function use that
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
if (onSearchFilter) {
|
|
189
|
-
return onSearchFilter(item, searchTerm);
|
|
190
213
|
} // otherwise use the default label filter
|
|
191
214
|
|
|
192
215
|
|
|
@@ -197,11 +220,18 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
197
220
|
|
|
198
221
|
var getDisplayItems = function getDisplayItems() {
|
|
199
222
|
if (useNormalizedItems) {
|
|
200
|
-
// when global search is in use the results are not in column format
|
|
201
|
-
|
|
202
|
-
|
|
223
|
+
// when global search or filter is in use the results are not in column format
|
|
224
|
+
var filters = Object.keys(appliedGlobalFilters);
|
|
225
|
+
|
|
226
|
+
if (searchTerm || filters.length) {
|
|
227
|
+
var results = flatItems.filter(function (item) {
|
|
203
228
|
return item.title.toLowerCase().includes(searchTerm);
|
|
229
|
+
}).filter(function (item) {
|
|
230
|
+
return filters.every(function (filter) {
|
|
231
|
+
return item[filter] === appliedGlobalFilters[filter];
|
|
232
|
+
});
|
|
204
233
|
});
|
|
234
|
+
return results;
|
|
205
235
|
}
|
|
206
236
|
|
|
207
237
|
return getPages();
|
|
@@ -222,15 +252,21 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
222
252
|
singleSelection: singleSelection
|
|
223
253
|
}; // handlers
|
|
224
254
|
|
|
225
|
-
var handleSearch = function handleSearch(
|
|
226
|
-
setSearchTerm(
|
|
255
|
+
var handleSearch = function handleSearch(term) {
|
|
256
|
+
setSearchTerm(term);
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
var handleFilter = function handleFilter(filters) {
|
|
260
|
+
setAppliedGlobalFilters(filters);
|
|
227
261
|
};
|
|
228
262
|
|
|
229
263
|
var submitHandler = function submitHandler() {
|
|
230
264
|
onSubmit(multi ? multiSelection : singleSelection);
|
|
231
265
|
};
|
|
232
266
|
|
|
267
|
+
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));
|
|
233
268
|
var commonTearsheetProps = {
|
|
269
|
+
className: classNames,
|
|
234
270
|
open: open,
|
|
235
271
|
title: title,
|
|
236
272
|
description: description,
|
|
@@ -244,7 +280,8 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
244
280
|
kind: 'primary',
|
|
245
281
|
onClick: submitHandler,
|
|
246
282
|
disabled: multi ? multiSelection.length === 0 : !singleSelection
|
|
247
|
-
}]
|
|
283
|
+
}],
|
|
284
|
+
portalTarget: portalTarget
|
|
248
285
|
};
|
|
249
286
|
var sidebarProps = {
|
|
250
287
|
influencerTitle: influencerTitle,
|
|
@@ -255,7 +292,6 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
255
292
|
removeIconDescription: removeIconDescription,
|
|
256
293
|
setMultiSelection: setMultiSelection
|
|
257
294
|
};
|
|
258
|
-
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));
|
|
259
295
|
|
|
260
296
|
var setShowBreadsCrumbs = function setShowBreadsCrumbs() {
|
|
261
297
|
if (searchTerm) {
|
|
@@ -282,16 +318,26 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
282
318
|
};
|
|
283
319
|
|
|
284
320
|
var showBreadsCrumbs = setShowBreadsCrumbs();
|
|
285
|
-
var showTags = setShowTags();
|
|
321
|
+
var showTags = setShowTags();
|
|
322
|
+
var globalFiltersApplied = Object.keys(appliedGlobalFilters).length > 0; // main content
|
|
286
323
|
|
|
287
324
|
var body = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
288
325
|
className: "".concat(blockClass, "__header")
|
|
289
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
326
|
+
}, /*#__PURE__*/_react.default.createElement(_AddSelectFilter.AddSelectFilter, {
|
|
327
|
+
inputLabel: globalSearchLabel,
|
|
328
|
+
inputPlaceholder: globalSearchPlaceholder,
|
|
329
|
+
searchTerm: searchTerm,
|
|
330
|
+
handleSearch: handleSearch,
|
|
331
|
+
multi: multi,
|
|
332
|
+
filterOpts: globalFilterOpts,
|
|
333
|
+
handleFilter: handleFilter,
|
|
334
|
+
primaryButtonText: globalFiltersPrimaryButtonText,
|
|
335
|
+
secondaryButtonText: globalFiltersSecondaryButtonText,
|
|
336
|
+
placeholder: globalFiltersPlaceholderText,
|
|
337
|
+
iconDescription: globalFiltersIconDescription,
|
|
338
|
+
appliedFilters: appliedGlobalFilters,
|
|
339
|
+
hasFiltersApplied: globalFiltersApplied,
|
|
340
|
+
clearFiltersText: clearFiltersText
|
|
295
341
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
296
342
|
className: "".concat(blockClass, "__tag-container")
|
|
297
343
|
}, showBreadsCrumbs ? /*#__PURE__*/_react.default.createElement(_AddSelectBreadcrumbs.AddSelectBreadcrumbs, {
|
|
@@ -303,7 +349,7 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
303
349
|
}, searchTerm ? searchResultsLabel : itemsLabel), showTags && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Tag, {
|
|
304
350
|
type: "gray",
|
|
305
351
|
size: "sm"
|
|
306
|
-
}, itemsToDisplay.length))), useNormalizedItems && !searchTerm ? /*#__PURE__*/_react.default.createElement("div", {
|
|
352
|
+
}, itemsToDisplay.length))), useNormalizedItems && !searchTerm && !globalFiltersApplied ? /*#__PURE__*/_react.default.createElement("div", {
|
|
307
353
|
className: "".concat(blockClass, "__columns")
|
|
308
354
|
}, itemsToDisplay.map(function (page, idx) {
|
|
309
355
|
var _path;
|
|
@@ -325,8 +371,7 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
325
371
|
}))));
|
|
326
372
|
|
|
327
373
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
328
|
-
ref: ref
|
|
329
|
-
className: classNames
|
|
374
|
+
ref: ref
|
|
330
375
|
}, rest), multi ? /*#__PURE__*/_react.default.createElement(_Tearsheet.Tearsheet, (0, _extends2.default)({}, commonTearsheetProps, {
|
|
331
376
|
influencer: multi && /*#__PURE__*/_react.default.createElement(_AddSelectSidebar.AddSelectSidebar, sidebarProps),
|
|
332
377
|
influencerPosition: "right"
|
|
@@ -335,23 +380,39 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
335
380
|
exports.AddSelect = AddSelect;
|
|
336
381
|
AddSelect.propTypes = {
|
|
337
382
|
className: _propTypes.default.string,
|
|
383
|
+
clearFiltersText: _propTypes.default.string,
|
|
338
384
|
columnInputPlaceholder: _propTypes.default.string,
|
|
339
385
|
description: _propTypes.default.string,
|
|
386
|
+
globalFilters: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
387
|
+
id: _propTypes.default.string,
|
|
388
|
+
label: _propTypes.default.string
|
|
389
|
+
})),
|
|
390
|
+
globalFiltersIconDescription: _propTypes.default.string,
|
|
391
|
+
globalFiltersPlaceholderText: _propTypes.default.string,
|
|
392
|
+
globalFiltersPrimaryButtonText: _propTypes.default.string,
|
|
393
|
+
globalFiltersSecondaryButtonText: _propTypes.default.string,
|
|
394
|
+
globalSearchLabel: _propTypes.default.string,
|
|
395
|
+
globalSearchPlaceholder: _propTypes.default.string,
|
|
340
396
|
influencerTitle: _propTypes.default.string,
|
|
341
|
-
inputPlaceholder: _propTypes.default.string,
|
|
342
397
|
items: _propTypes.default.shape({
|
|
343
398
|
modifiers: _propTypes.default.shape({
|
|
344
399
|
label: _propTypes.default.string,
|
|
345
|
-
options: _propTypes.default.array
|
|
346
|
-
property: _propTypes.default.string
|
|
400
|
+
options: _propTypes.default.array
|
|
347
401
|
}),
|
|
348
402
|
sortBy: _propTypes.default.array,
|
|
349
403
|
filterBy: _propTypes.default.array,
|
|
350
404
|
entries: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
405
|
+
avatar: _propTypes.default.shape({
|
|
406
|
+
alt: _propTypes.default.string,
|
|
407
|
+
icon: _propTypes.default.object,
|
|
408
|
+
src: _propTypes.default.string
|
|
409
|
+
}),
|
|
410
|
+
children: _propTypes.default.object,
|
|
411
|
+
icon: _propTypes.default.object,
|
|
351
412
|
id: _propTypes.default.string.isRequired,
|
|
413
|
+
subtitle: _propTypes.default.string,
|
|
352
414
|
title: _propTypes.default.string.isRequired,
|
|
353
|
-
value: _propTypes.default.string.isRequired
|
|
354
|
-
children: _propTypes.default.object
|
|
415
|
+
value: _propTypes.default.string.isRequired
|
|
355
416
|
}))
|
|
356
417
|
}),
|
|
357
418
|
itemsLabel: _propTypes.default.string,
|
|
@@ -362,13 +423,16 @@ AddSelect.propTypes = {
|
|
|
362
423
|
noSelectionTitle: _propTypes.default.string,
|
|
363
424
|
onClose: _propTypes.default.func,
|
|
364
425
|
onCloseButtonText: _propTypes.default.string,
|
|
365
|
-
onSearchFilter: _propTypes.default.func,
|
|
366
426
|
onSubmit: _propTypes.default.func,
|
|
367
427
|
onSubmitButtonText: _propTypes.default.string,
|
|
368
428
|
open: _propTypes.default.bool,
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* portal target for the all tags modal
|
|
432
|
+
*/
|
|
433
|
+
portalTarget: _propTypes.default.node,
|
|
369
434
|
removeIconDescription: _propTypes.default.string,
|
|
370
435
|
searchResultsLabel: _propTypes.default.string,
|
|
371
|
-
textInputLabel: _propTypes.default.string,
|
|
372
436
|
title: _propTypes.default.string
|
|
373
437
|
};
|
|
374
438
|
AddSelect.defaultProps = {
|
|
@@ -0,0 +1,190 @@
|
|
|
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 appliedFilters = _ref.appliedFilters,
|
|
38
|
+
clearFiltersText = _ref.clearFiltersText,
|
|
39
|
+
filterOpts = _ref.filterOpts,
|
|
40
|
+
handleFilter = _ref.handleFilter,
|
|
41
|
+
handleSearch = _ref.handleSearch,
|
|
42
|
+
hasFiltersApplied = _ref.hasFiltersApplied,
|
|
43
|
+
iconDescription = _ref.iconDescription,
|
|
44
|
+
inputLabel = _ref.inputLabel,
|
|
45
|
+
inputPlaceholder = _ref.inputPlaceholder,
|
|
46
|
+
multi = _ref.multi,
|
|
47
|
+
placeholder = _ref.placeholder,
|
|
48
|
+
primaryButtonText = _ref.primaryButtonText,
|
|
49
|
+
searchTerm = _ref.searchTerm,
|
|
50
|
+
secondaryButtonText = _ref.secondaryButtonText;
|
|
51
|
+
|
|
52
|
+
var _useState = (0, _react.useState)({}),
|
|
53
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
54
|
+
filters = _useState2[0],
|
|
55
|
+
setFilters = _useState2[1];
|
|
56
|
+
|
|
57
|
+
var _useState3 = (0, _react.useState)(false),
|
|
58
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
59
|
+
open = _useState4[0],
|
|
60
|
+
setOpen = _useState4[1];
|
|
61
|
+
|
|
62
|
+
var blockClass = "".concat(_settings.pkg.prefix, "--add-select__global-filter");
|
|
63
|
+
|
|
64
|
+
var searchHandler = function searchHandler(e) {
|
|
65
|
+
handleSearch(e.target.value);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
var onchangeHandler = function onchangeHandler(_ref2, id) {
|
|
69
|
+
var selectedItem = _ref2.selectedItem;
|
|
70
|
+
setFilters(_objectSpread(_objectSpread({}, filters), {}, (0, _defineProperty2.default)({}, id, selectedItem)));
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* this component needs to manage it's own internal state of filters before they're applied
|
|
74
|
+
* setFilters manages the local filter state
|
|
75
|
+
* applyFilters adds the filter state to the parent
|
|
76
|
+
* resetFilters resets the local state
|
|
77
|
+
* clearFilters resets both
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
var applyFilters = function applyFilters() {
|
|
82
|
+
handleFilter(filters);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
var resetFilters = function resetFilters() {
|
|
86
|
+
setFilters({});
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
var clearFilters = function clearFilters() {
|
|
90
|
+
resetFilters();
|
|
91
|
+
handleFilter({});
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
var removeTag = function removeTag(key) {
|
|
95
|
+
var newFilters = _objectSpread({}, filters);
|
|
96
|
+
|
|
97
|
+
delete newFilters[key];
|
|
98
|
+
setFilters(newFilters);
|
|
99
|
+
handleFilter(newFilters);
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
var getSelectedItem = function getSelectedItem(id) {
|
|
103
|
+
return filters[id] || '';
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
var showFilter = multi && (filterOpts === null || filterOpts === void 0 ? void 0 : filterOpts.length) > 0;
|
|
107
|
+
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
108
|
+
className: "".concat(blockClass, "-search")
|
|
109
|
+
}, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TextInput, {
|
|
110
|
+
id: "temp-id",
|
|
111
|
+
labelText: inputLabel,
|
|
112
|
+
placeholder: inputPlaceholder,
|
|
113
|
+
value: searchTerm,
|
|
114
|
+
onChange: searchHandler
|
|
115
|
+
}), showFilter && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
|
116
|
+
renderIcon: _iconsReact.Filter16,
|
|
117
|
+
hasIconOnly: true,
|
|
118
|
+
kind: "ghost",
|
|
119
|
+
onClick: function onClick() {
|
|
120
|
+
return setOpen(!open);
|
|
121
|
+
},
|
|
122
|
+
iconDescription: iconDescription,
|
|
123
|
+
className: "".concat(blockClass, "-toggle"),
|
|
124
|
+
size: "md"
|
|
125
|
+
}), open && /*#__PURE__*/_react.default.createElement("div", {
|
|
126
|
+
className: "".concat(blockClass)
|
|
127
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
128
|
+
className: "".concat(blockClass, "-content")
|
|
129
|
+
}, /*#__PURE__*/_react.default.createElement("p", null, "Filters"), /*#__PURE__*/_react.default.createElement("div", {
|
|
130
|
+
className: "".concat(blockClass, "-opts")
|
|
131
|
+
}, filterOpts.map(function (filterOpts) {
|
|
132
|
+
return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Dropdown, {
|
|
133
|
+
id: filterOpts.id,
|
|
134
|
+
key: filterOpts.id,
|
|
135
|
+
titleText: filterOpts.label,
|
|
136
|
+
items: filterOpts.opts,
|
|
137
|
+
light: true,
|
|
138
|
+
onChange: function onChange(value) {
|
|
139
|
+
return onchangeHandler(value, filterOpts.id);
|
|
140
|
+
},
|
|
141
|
+
selectedItem: getSelectedItem(filterOpts.id),
|
|
142
|
+
label: placeholder
|
|
143
|
+
});
|
|
144
|
+
}))), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.ButtonSet, {
|
|
145
|
+
className: "".concat(blockClass, "-button-set")
|
|
146
|
+
}, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
|
147
|
+
kind: "secondary",
|
|
148
|
+
onClick: resetFilters,
|
|
149
|
+
className: "".concat(blockClass, "-button")
|
|
150
|
+
}, secondaryButtonText), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
|
151
|
+
kind: "primary",
|
|
152
|
+
onClick: applyFilters,
|
|
153
|
+
className: "".concat(blockClass, "-button")
|
|
154
|
+
}, primaryButtonText)))), hasFiltersApplied && /*#__PURE__*/_react.default.createElement("div", {
|
|
155
|
+
className: "".concat(blockClass, "-applied")
|
|
156
|
+
}, Object.keys(appliedFilters).map(function (filterType) {
|
|
157
|
+
return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Tag, {
|
|
158
|
+
key: filterType,
|
|
159
|
+
type: "gray",
|
|
160
|
+
size: "sm",
|
|
161
|
+
onClose: function onClose() {
|
|
162
|
+
return removeTag(filterType);
|
|
163
|
+
},
|
|
164
|
+
filter: true
|
|
165
|
+
}, "".concat(filterType, ": ").concat(appliedFilters[filterType]));
|
|
166
|
+
}), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
|
167
|
+
kind: "ghost",
|
|
168
|
+
size: "sm",
|
|
169
|
+
onClick: clearFilters
|
|
170
|
+
}, clearFiltersText)));
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
exports.AddSelectFilter = AddSelectFilter;
|
|
174
|
+
AddSelectFilter.propTypes = {
|
|
175
|
+
appliedFilters: _propTypes.default.object,
|
|
176
|
+
clearFiltersText: _propTypes.default.string,
|
|
177
|
+
filterOpts: _propTypes.default.array,
|
|
178
|
+
handleFilter: _propTypes.default.func,
|
|
179
|
+
handleSearch: _propTypes.default.func,
|
|
180
|
+
hasFiltersApplied: _propTypes.default.bool,
|
|
181
|
+
iconDescription: _propTypes.default.string,
|
|
182
|
+
inputLabel: _propTypes.default.string,
|
|
183
|
+
inputPlaceholder: _propTypes.default.string,
|
|
184
|
+
multi: _propTypes.default.bool,
|
|
185
|
+
placeholder: _propTypes.default.string,
|
|
186
|
+
primaryButtonText: _propTypes.default.string,
|
|
187
|
+
searchTerm: _propTypes.default.string,
|
|
188
|
+
secondaryButtonText: _propTypes.default.string
|
|
189
|
+
};
|
|
190
|
+
AddSelectFilter.displayName = componentName;
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.normalize = exports.flatten = void 0;
|
|
8
|
+
exports.normalize = exports.getGlobalFilterValues = exports.flatten = void 0;
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
@@ -74,5 +74,38 @@ var flatten = function flatten(entries) {
|
|
|
74
74
|
return prev.concat(item).concat(children ? flatten(children.entries) : []);
|
|
75
75
|
}, []);
|
|
76
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* takes in a global filters array and a flat list of items
|
|
79
|
+
* it then searches through the items and finds any with the matching filter properties
|
|
80
|
+
* and adds those values to the array
|
|
81
|
+
* globalFilters looks like [{ id: someProperty }]
|
|
82
|
+
* the returned array would look like [{ id: someProperty, opts: [value, value]}]
|
|
83
|
+
* @param {Array} globalFilters - list of filter properties
|
|
84
|
+
* @param {Array} items - items to search through
|
|
85
|
+
* @returns an array of filter values
|
|
86
|
+
*/
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
exports.flatten = flatten;
|
|
90
|
+
|
|
91
|
+
var getGlobalFilterValues = function getGlobalFilterValues(globalFilters, items) {
|
|
92
|
+
var filterOpts = globalFilters.reduce(function (prevFilter, curFilter) {
|
|
93
|
+
var filterId = curFilter.id;
|
|
94
|
+
var opts = items.reduce(function (prevItem, curItem) {
|
|
95
|
+
var value = curItem[filterId];
|
|
96
|
+
|
|
97
|
+
if (value && !prevItem.includes(value)) {
|
|
98
|
+
prevItem.push(value);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return prevItem;
|
|
102
|
+
}, []);
|
|
103
|
+
prevFilter.push(_objectSpread({
|
|
104
|
+
opts: opts
|
|
105
|
+
}, curFilter));
|
|
106
|
+
return prevFilter;
|
|
107
|
+
}, []);
|
|
108
|
+
return filterOpts;
|
|
109
|
+
};
|
|
77
110
|
|
|
78
|
-
exports.
|
|
111
|
+
exports.getGlobalFilterValues = getGlobalFilterValues;
|