@bento-core/facet-filter 1.0.1-c3dc.0 → 1.0.1-c3dc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/FacetFilterController.js +9 -3
- package/dist/FacetFilterStyle.js +1 -1
- package/dist/FacetFilterView.js +17 -8
- package/dist/NewFacetFilterController.js +212 -0
- package/dist/NewFacetFilterView.js +49 -0
- package/dist/components/facet/FacetModal.js +82 -0
- package/dist/components/facet/FacetStyle.js +78 -14
- package/dist/components/facet/FacetView.js +9 -9
- package/dist/components/facet/ModalStyle.js +127 -0
- package/dist/components/facet/NewFacetStyle.js +231 -0
- package/dist/components/facet/NewFacetView.js +188 -0
- package/dist/components/facet/NewSearchFacetView.js +212 -0
- package/dist/components/facet/ReduxFacetModal.js +34 -0
- package/dist/components/facet/ReduxNewFacetView.js +35 -0
- package/dist/components/facet/ReduxNewSearchFacetView.js +42 -0
- package/dist/components/facet/ReduxSearchFacetView.js +37 -0
- package/dist/components/facet/SearchFacetView.js +183 -0
- package/dist/components/facet/assets/Search_Icon.svg +3 -0
- package/dist/components/inputs/FilterItemStyle.js +46 -8
- package/dist/components/inputs/FilterItems.js +112 -12
- package/dist/components/inputs/ModalFilterItems.js +167 -0
- package/dist/components/inputs/ModalFilterStyle.js +120 -0
- package/dist/components/inputs/SearchFilterItems.js +97 -0
- package/dist/components/inputs/checkbox/ModalCheckboxStyle.js +43 -0
- package/dist/components/inputs/checkbox/ModalCheckboxView.js +115 -0
- package/dist/components/inputs/checkbox/ReduxModalCheckbox.js +17 -0
- package/dist/components/inputs/checkbox/ReduxSearchCheckbox.js +17 -0
- package/dist/components/inputs/checkbox/SearchCheckboxView.js +121 -0
- package/dist/components/inputs/slider/InputMinMaxView.js +4 -1
- package/dist/components/inputs/slider/ReduxSlider.js +9 -4
- package/dist/components/inputs/slider/SliderStyle.js +2 -2
- package/dist/components/inputs/slider/SliderView.js +277 -32
- package/dist/components/section/FacetSectionView.js +2 -1
- package/dist/index.js +25 -0
- package/dist/store/actions/ActionTypes.js +6 -1
- package/dist/store/actions/Actions.js +39 -2
- package/dist/store/reducers/SideBarReducer.js +98 -11
- package/dist/utils/filter.js +21 -7
- package/package.json +4 -2
- package/src/FacetFilterController.js +11 -4
- package/src/FacetFilterStyle.js +1 -1
- package/src/FacetFilterView.js +21 -10
- package/src/NewFacetFilterController.js +209 -0
- package/src/NewFacetFilterView.js +56 -0
- package/src/components/facet/FacetModal.js +85 -0
- package/src/components/facet/FacetStyle.js +75 -13
- package/src/components/facet/FacetView.js +18 -15
- package/src/components/facet/ModalStyle.js +120 -0
- package/src/components/facet/NewFacetStyle.js +229 -0
- package/src/components/facet/NewFacetView.js +260 -0
- package/src/components/facet/NewSearchFacetView.js +293 -0
- package/src/components/facet/ReduxFacetModal.js +28 -0
- package/src/components/facet/ReduxNewFacetView.js +27 -0
- package/src/components/facet/ReduxNewSearchFacetView.js +36 -0
- package/src/components/facet/ReduxSearchFacetView.js +30 -0
- package/src/components/facet/SearchFacetView.js +256 -0
- package/src/components/facet/assets/Search_Icon.svg +3 -0
- package/src/components/inputs/FilterItemStyle.js +44 -8
- package/src/components/inputs/FilterItems.js +96 -7
- package/src/components/inputs/ModalFilterItems.js +159 -0
- package/src/components/inputs/ModalFilterStyle.js +113 -0
- package/src/components/inputs/SearchFilterItems.js +87 -0
- package/src/components/inputs/checkbox/ModalCheckboxStyle.js +36 -0
- package/src/components/inputs/checkbox/ModalCheckboxView.js +143 -0
- package/src/components/inputs/checkbox/ReduxModalCheckbox.js +12 -0
- package/src/components/inputs/checkbox/ReduxSearchCheckbox.js +12 -0
- package/src/components/inputs/checkbox/SearchCheckboxView.js +150 -0
- package/src/components/inputs/slider/InputMinMaxView.js +3 -0
- package/src/components/inputs/slider/ReduxSlider.js +5 -1
- package/src/components/inputs/slider/SliderStyle.js +2 -2
- package/src/components/inputs/slider/SliderView.js +314 -36
- package/src/components/section/FacetSectionView.js +1 -1
- package/src/index.js +4 -1
- package/src/store/actions/ActionTypes.js +5 -0
- package/src/store/actions/Actions.js +37 -0
- package/src/store/reducers/SideBarReducer.js +94 -6
- package/src/utils/filter.js +18 -0
|
@@ -61,7 +61,11 @@ const FacetFilterController = props => {
|
|
|
61
61
|
minLowerBound,
|
|
62
62
|
maxUpperBound
|
|
63
63
|
} = sideBar;
|
|
64
|
-
|
|
64
|
+
if (minLowerBound === 0 && maxUpperBound === 0) {
|
|
65
|
+
sideBar.facetValues = [0, 0];
|
|
66
|
+
} else {
|
|
67
|
+
sideBar.facetValues = [minLowerBound, maxUpperBound];
|
|
68
|
+
}
|
|
65
69
|
}
|
|
66
70
|
});
|
|
67
71
|
}
|
|
@@ -126,13 +130,15 @@ const FacetFilterController = props => {
|
|
|
126
130
|
const lowerBound = data[apiForFiltering][ApiLowerBoundName];
|
|
127
131
|
const upperBound = data[apiForFiltering][ApiUpperBoundName];
|
|
128
132
|
if (lowerBound === 0 && upperBound === 0) {
|
|
129
|
-
updateFacet.
|
|
133
|
+
updateFacet.minLowerBound = 0;
|
|
134
|
+
updateFacet.maxUpperBound = 0;
|
|
135
|
+
updateFacet.facetValues = [];
|
|
130
136
|
} else {
|
|
131
137
|
updateFacet.minLowerBound = lowerBound;
|
|
132
138
|
updateFacet.maxUpperBound = upperBound;
|
|
133
139
|
updateFacet.facetValues = [lowerBound, upperBound];
|
|
134
|
-
updateFacet.style = facet.style;
|
|
135
140
|
}
|
|
141
|
+
updateFacet.style = facet.style;
|
|
136
142
|
}
|
|
137
143
|
}
|
|
138
144
|
if (!updateFacet.filterOut) {
|
package/dist/FacetFilterStyle.js
CHANGED
package/dist/FacetFilterView.js
CHANGED
|
@@ -10,6 +10,7 @@ var _FacetFilterStyle = _interopRequireDefault(require("./FacetFilterStyle"));
|
|
|
10
10
|
var _FacetSectionView = _interopRequireDefault(require("./components/section/FacetSectionView"));
|
|
11
11
|
var _ReduxFacetView = _interopRequireDefault(require("./components/facet/ReduxFacetView"));
|
|
12
12
|
var _FilterItems = _interopRequireDefault(require("./components/inputs/FilterItems"));
|
|
13
|
+
var _ReduxSearchFacetView = _interopRequireDefault(require("./components/facet/ReduxSearchFacetView"));
|
|
13
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
15
|
/* eslint-disable arrow-body-style */
|
|
15
16
|
/* eslint-disable padded-blocks */
|
|
@@ -26,14 +27,22 @@ const BentoFacetFilter = _ref => {
|
|
|
26
27
|
}), /*#__PURE__*/_react.default.createElement(_FacetSectionView.default, {
|
|
27
28
|
section: section,
|
|
28
29
|
CustomSection: CustomFacetSection
|
|
29
|
-
}, section.items.map(facet =>
|
|
30
|
-
facet
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
}, section.items.map(facet => {
|
|
31
|
+
if (facet.search) {
|
|
32
|
+
return /*#__PURE__*/_react.default.createElement(_ReduxSearchFacetView.default, {
|
|
33
|
+
facet: facet,
|
|
34
|
+
CustomView: CustomFacetView
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return /*#__PURE__*/_react.default.createElement(_ReduxFacetView.default, {
|
|
38
|
+
facet: facet,
|
|
39
|
+
CustomView: CustomFacetView
|
|
40
|
+
}, /*#__PURE__*/_react.default.createElement(_core.List, {
|
|
41
|
+
className: "List_".concat(facet.label)
|
|
42
|
+
}, /*#__PURE__*/_react.default.createElement(_FilterItems.default, {
|
|
43
|
+
facet: facet
|
|
44
|
+
})));
|
|
45
|
+
})))));
|
|
37
46
|
};
|
|
38
47
|
var _default = (0, _core.withStyles)(_FacetFilterStyle.default)(BentoFacetFilter);
|
|
39
48
|
exports.default = _default;
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactRedux = require("react-redux");
|
|
10
|
+
var _Types = require("./components/inputs/Types");
|
|
11
|
+
var _NewFacetFilterView = _interopRequireDefault(require("./NewFacetFilterView"));
|
|
12
|
+
const _excluded = ["section"];
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
15
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
16
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
17
|
+
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; }
|
|
18
|
+
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) { _defineProperty(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; }
|
|
19
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
20
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
21
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
22
|
+
const NewFacetFilterController = props => {
|
|
23
|
+
/**
|
|
24
|
+
* update checkbox state
|
|
25
|
+
* 1. checkbox state
|
|
26
|
+
* 2. subject state
|
|
27
|
+
*/
|
|
28
|
+
const {
|
|
29
|
+
activeFilters,
|
|
30
|
+
data,
|
|
31
|
+
facetsConfig,
|
|
32
|
+
facetSectionConfig,
|
|
33
|
+
selectedSection,
|
|
34
|
+
unknownAgesState,
|
|
35
|
+
searchFacetClasses
|
|
36
|
+
} = props;
|
|
37
|
+
|
|
38
|
+
// console.log(activeFilters);
|
|
39
|
+
const filterState = Object.entries(activeFilters).reduce((acc, _ref) => {
|
|
40
|
+
let [key, value] = _ref;
|
|
41
|
+
if (key !== 'participant_ids') {
|
|
42
|
+
return _objectSpread(_objectSpread({}, acc), {}, {
|
|
43
|
+
[key]: value
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return acc;
|
|
47
|
+
}, {});
|
|
48
|
+
const updateFacetState = filterSections => {
|
|
49
|
+
if (!_lodash.default.isEmpty(filterState)) {
|
|
50
|
+
return filterSections.map(sideBar => {
|
|
51
|
+
const filterValue = filterState[sideBar.datafield];
|
|
52
|
+
if (!filterValue) {
|
|
53
|
+
return sideBar;
|
|
54
|
+
}
|
|
55
|
+
if (sideBar.type === _Types.InputTypes.CHECKBOX) {
|
|
56
|
+
return _objectSpread(_objectSpread({}, sideBar), {}, {
|
|
57
|
+
facetValues: sideBar.facetValues.map(item => _objectSpread(_objectSpread({}, item), {}, {
|
|
58
|
+
isChecked: filterValue.indexOf(item.name) > -1
|
|
59
|
+
}))
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
if (sideBar.type === _Types.InputTypes.SLIDER) {
|
|
63
|
+
return _objectSpread(_objectSpread({}, sideBar), {}, {
|
|
64
|
+
facetValues: filterValue
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
return sideBar;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return filterSections.map(sideBar => {
|
|
71
|
+
if (sideBar.type === _Types.InputTypes.CHECKBOX) {
|
|
72
|
+
return _objectSpread(_objectSpread({}, sideBar), {}, {
|
|
73
|
+
facetValues: sideBar.facetValues.map(item => _objectSpread(_objectSpread({}, item), {}, {
|
|
74
|
+
isChecked: false
|
|
75
|
+
}))
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* set default value for slider - on clear all filter
|
|
80
|
+
*/
|
|
81
|
+
if (sideBar.type === _Types.InputTypes.SLIDER) {
|
|
82
|
+
const {
|
|
83
|
+
minLowerBound,
|
|
84
|
+
maxUpperBound
|
|
85
|
+
} = sideBar;
|
|
86
|
+
return _objectSpread(_objectSpread({}, sideBar), {}, {
|
|
87
|
+
facetValues: [minLowerBound, maxUpperBound]
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return sideBar;
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
const arrangeBySections = arr => {
|
|
94
|
+
const sideBar = {};
|
|
95
|
+
arr.forEach(_ref2 => {
|
|
96
|
+
let {
|
|
97
|
+
section
|
|
98
|
+
} = _ref2,
|
|
99
|
+
item = _objectWithoutProperties(_ref2, _excluded);
|
|
100
|
+
const {
|
|
101
|
+
isExpanded
|
|
102
|
+
} = facetSectionConfig[section];
|
|
103
|
+
if (!sideBar[section]) {
|
|
104
|
+
sideBar[section] = {
|
|
105
|
+
name: section,
|
|
106
|
+
sectionName: section,
|
|
107
|
+
expandSection: isExpanded !== undefined && typeof isExpanded === 'boolean' ? isExpanded : true,
|
|
108
|
+
items: []
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
sideBar[section] = _objectSpread(_objectSpread({}, sideBar[section]), {}, {
|
|
112
|
+
items: [...sideBar[section].items, _objectSpread({
|
|
113
|
+
section
|
|
114
|
+
}, item)]
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
return Object.values(sideBar);
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Construct filter object
|
|
122
|
+
* 1. add facet values to facets
|
|
123
|
+
* 2. add 'name' key to each facet value
|
|
124
|
+
*/
|
|
125
|
+
const addFacetValues = facets => {
|
|
126
|
+
if (!facets) {
|
|
127
|
+
return [];
|
|
128
|
+
}
|
|
129
|
+
return facets.map(facet => {
|
|
130
|
+
const updateFacet = _objectSpread(_objectSpread({}, facet), {}, {
|
|
131
|
+
facetValues: []
|
|
132
|
+
});
|
|
133
|
+
const {
|
|
134
|
+
field,
|
|
135
|
+
ApiLowerBoundName,
|
|
136
|
+
ApiUpperBoundName,
|
|
137
|
+
apiForFiltering
|
|
138
|
+
} = updateFacet;
|
|
139
|
+
if (!data[apiForFiltering]) {
|
|
140
|
+
return updateFacet;
|
|
141
|
+
}
|
|
142
|
+
if (Array.isArray(data[apiForFiltering])) {
|
|
143
|
+
const validValues = [];
|
|
144
|
+
const updateField = data[apiForFiltering].map(item => {
|
|
145
|
+
const addField = _objectSpread(_objectSpread({}, item), {}, {
|
|
146
|
+
name: item[field]
|
|
147
|
+
});
|
|
148
|
+
validValues.push(addField.name);
|
|
149
|
+
return addField;
|
|
150
|
+
});
|
|
151
|
+
/**
|
|
152
|
+
* Check if there are orphan filter values and add them to the facet values
|
|
153
|
+
*/
|
|
154
|
+
let finalUpdateField = updateField;
|
|
155
|
+
if (filterState !== undefined) {
|
|
156
|
+
const facetFilter = filterState[facet.datafield];
|
|
157
|
+
if (facetFilter) {
|
|
158
|
+
const orphanValues = facetFilter.filter(item => validValues.indexOf(item) === -1).map(item => ({
|
|
159
|
+
group: item,
|
|
160
|
+
name: item,
|
|
161
|
+
subjects: 0
|
|
162
|
+
}));
|
|
163
|
+
finalUpdateField = [...updateField, ...orphanValues];
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return _objectSpread(_objectSpread({}, updateFacet), {}, {
|
|
167
|
+
facetValues: finalUpdateField
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* add object to facet values
|
|
173
|
+
*/
|
|
174
|
+
if (facet.type === _Types.InputTypes.SLIDER) {
|
|
175
|
+
const lowerBound = data[apiForFiltering][ApiLowerBoundName];
|
|
176
|
+
const upperBound = data[apiForFiltering][ApiUpperBoundName];
|
|
177
|
+
const unknownAges = (unknownAgesState === null || unknownAgesState === void 0 ? void 0 : unknownAgesState[facet.datafield]) || 'include';
|
|
178
|
+
return _objectSpread(_objectSpread({}, updateFacet), {}, {
|
|
179
|
+
minLowerBound: lowerBound,
|
|
180
|
+
maxUpperBound: upperBound,
|
|
181
|
+
unknownAges,
|
|
182
|
+
facetValues: [lowerBound, upperBound],
|
|
183
|
+
style: facet.style
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
return updateFacet;
|
|
187
|
+
});
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Generate facet sections state
|
|
192
|
+
*
|
|
193
|
+
*/
|
|
194
|
+
// const displayFacets = facetsConfig.filter((facet) => facet.show).slice(0, 16);
|
|
195
|
+
const displayFacets = facetsConfig.filter(facet => facet.show);
|
|
196
|
+
const facetStates = addFacetValues(displayFacets);
|
|
197
|
+
const updateState = updateFacetState(facetStates);
|
|
198
|
+
const facetSections = arrangeBySections(updateState);
|
|
199
|
+
const facetSection = facetSections[selectedSection];
|
|
200
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_NewFacetFilterView.default, _extends({}, props, {
|
|
201
|
+
facetSection: facetSection,
|
|
202
|
+
searchFacetClasses: searchFacetClasses
|
|
203
|
+
})));
|
|
204
|
+
};
|
|
205
|
+
const mapStateToProps = state => {
|
|
206
|
+
var _state$statusReducer;
|
|
207
|
+
return {
|
|
208
|
+
unknownAgesState: (state === null || state === void 0 ? void 0 : (_state$statusReducer = state.statusReducer) === null || _state$statusReducer === void 0 ? void 0 : _state$statusReducer.unknownAgesState) || {}
|
|
209
|
+
};
|
|
210
|
+
};
|
|
211
|
+
var _default = (0, _reactRedux.connect)(mapStateToProps, null)(NewFacetFilterController);
|
|
212
|
+
exports.default = _default;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _core = require("@material-ui/core");
|
|
9
|
+
var _FacetFilterStyle = _interopRequireDefault(require("./FacetFilterStyle"));
|
|
10
|
+
var _ReduxNewFacetView = _interopRequireDefault(require("./components/facet/ReduxNewFacetView"));
|
|
11
|
+
var _FilterItems = _interopRequireDefault(require("./components/inputs/FilterItems"));
|
|
12
|
+
var _ReduxNewSearchFacetView = _interopRequireDefault(require("./components/facet/ReduxNewSearchFacetView"));
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
/* eslint-disable arrow-body-style */
|
|
15
|
+
/* eslint-disable padded-blocks */
|
|
16
|
+
|
|
17
|
+
const BentoFacetFilter = _ref => {
|
|
18
|
+
let {
|
|
19
|
+
facetSection,
|
|
20
|
+
CustomFacetSection,
|
|
21
|
+
CustomFacetView,
|
|
22
|
+
queryParams,
|
|
23
|
+
searchFacetClasses
|
|
24
|
+
} = _ref;
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, CustomFacetSection && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(CustomFacetSection, {
|
|
26
|
+
section: facetSection,
|
|
27
|
+
expanded: true
|
|
28
|
+
})), facetSection.items.map(facet => {
|
|
29
|
+
if (facet.search) {
|
|
30
|
+
return /*#__PURE__*/_react.default.createElement(_ReduxNewSearchFacetView.default, {
|
|
31
|
+
facet: facet,
|
|
32
|
+
queryParams: queryParams,
|
|
33
|
+
CustomView: CustomFacetView,
|
|
34
|
+
classes: searchFacetClasses
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return /*#__PURE__*/_react.default.createElement(_ReduxNewFacetView.default, {
|
|
38
|
+
facet: facet,
|
|
39
|
+
queryParams: queryParams,
|
|
40
|
+
CustomView: CustomFacetView
|
|
41
|
+
}, /*#__PURE__*/_react.default.createElement(_core.List, {
|
|
42
|
+
className: "List_".concat(facet.label)
|
|
43
|
+
}, /*#__PURE__*/_react.default.createElement(_FilterItems.default, {
|
|
44
|
+
facet: facet
|
|
45
|
+
})));
|
|
46
|
+
}));
|
|
47
|
+
};
|
|
48
|
+
var _default = (0, _core.withStyles)(_FacetFilterStyle.default)(BentoFacetFilter);
|
|
49
|
+
exports.default = _default;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _core = require("@material-ui/core");
|
|
9
|
+
var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
|
|
10
|
+
var _styles = require("@material-ui/core/styles");
|
|
11
|
+
var _ModalStyle = _interopRequireDefault(require("./ModalStyle"));
|
|
12
|
+
var _ModalFilterItems = _interopRequireDefault(require("../inputs/ModalFilterItems"));
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
const resetIcon = {
|
|
15
|
+
src: 'https://raw.githubusercontent.com/CBIIT/datacommons-assets/main/bento/images/icons/svgs/Clear-icon.svg',
|
|
16
|
+
alt: 'Reset icon',
|
|
17
|
+
size: '12 px'
|
|
18
|
+
};
|
|
19
|
+
const ModalView = _ref => {
|
|
20
|
+
let {
|
|
21
|
+
classes,
|
|
22
|
+
facet,
|
|
23
|
+
sortBy,
|
|
24
|
+
searchText,
|
|
25
|
+
open,
|
|
26
|
+
onClose,
|
|
27
|
+
onClearFacetSection,
|
|
28
|
+
onSearchTextChange,
|
|
29
|
+
onSortChange
|
|
30
|
+
} = _ref;
|
|
31
|
+
const onClearSection = () => {
|
|
32
|
+
onSortChange(null);
|
|
33
|
+
onClearFacetSection(facet);
|
|
34
|
+
};
|
|
35
|
+
return /*#__PURE__*/_react.default.createElement(_core.Modal, {
|
|
36
|
+
open: open,
|
|
37
|
+
onClose: onClose,
|
|
38
|
+
"aria-labelledby": "".concat(facet.datafield, "-search-modal")
|
|
39
|
+
}, /*#__PURE__*/_react.default.createElement(_core.Box, {
|
|
40
|
+
className: classes.modalBody
|
|
41
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
42
|
+
className: classes.header
|
|
43
|
+
}, /*#__PURE__*/_react.default.createElement(_core.Typography, {
|
|
44
|
+
id: "modal-modal-title",
|
|
45
|
+
className: classes.modalTitle
|
|
46
|
+
}, "".concat(facet.label, " Facet Search")), /*#__PURE__*/_react.default.createElement(_core.IconButton, {
|
|
47
|
+
"aria-label": "close",
|
|
48
|
+
onClick: onClose,
|
|
49
|
+
className: classes.closeButton
|
|
50
|
+
}, /*#__PURE__*/_react.default.createElement(_Close.default, {
|
|
51
|
+
fontSize: "small"
|
|
52
|
+
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
53
|
+
className: classes.searchContainer
|
|
54
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
55
|
+
className: classes.searchInputbox
|
|
56
|
+
}, "Search ".concat(facet.label)), /*#__PURE__*/_react.default.createElement("input", {
|
|
57
|
+
className: classes.searchBox,
|
|
58
|
+
value: searchText,
|
|
59
|
+
type: "text",
|
|
60
|
+
placeholder: facet.searchPlaceholder ? facet.searchPlaceholder : 'e.g. Sarcoma, Neoplasm',
|
|
61
|
+
onChange: e => onSearchTextChange(facet.datafield, e.target.value)
|
|
62
|
+
}), /*#__PURE__*/_react.default.createElement(_core.Button, {
|
|
63
|
+
variant: "outlined",
|
|
64
|
+
onClick: () => onSearchTextChange(facet.datafield, ''),
|
|
65
|
+
className: classes.resetIcon
|
|
66
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
67
|
+
src: resetIcon.src,
|
|
68
|
+
height: resetIcon.size,
|
|
69
|
+
width: resetIcon.size,
|
|
70
|
+
alt: resetIcon.alt
|
|
71
|
+
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
72
|
+
className: classes.itemContainer
|
|
73
|
+
}, /*#__PURE__*/_react.default.createElement(_ModalFilterItems.default, {
|
|
74
|
+
searchText: searchText,
|
|
75
|
+
facet: facet,
|
|
76
|
+
sortBy: sortBy,
|
|
77
|
+
onClearSection: onClearSection,
|
|
78
|
+
onSortChange: onSortChange
|
|
79
|
+
}))));
|
|
80
|
+
};
|
|
81
|
+
var _default = (0, _styles.withStyles)(_ModalStyle.default)(ModalView);
|
|
82
|
+
exports.default = _default;
|
|
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
var _Search_Icon = _interopRequireDefault(require("./assets/Search_Icon.svg"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
7
9
|
var _default = () => ({
|
|
8
10
|
expansionPanelDetailsRoot: {
|
|
9
11
|
display: 'block'
|
|
@@ -32,42 +34,57 @@ var _default = () => ({
|
|
|
32
34
|
sortGroup: {
|
|
33
35
|
paddingTop: '10px',
|
|
34
36
|
marginBottom: '5px',
|
|
35
|
-
borderTop: '1px solid #B1B1B1',
|
|
36
37
|
textAlign: 'left',
|
|
37
|
-
marginLeft: '-
|
|
38
|
+
marginLeft: '-4px',
|
|
39
|
+
display: 'flex',
|
|
40
|
+
alignItems: 'stretch',
|
|
41
|
+
justifyContent: 'flex-start',
|
|
42
|
+
gap: '8px'
|
|
43
|
+
},
|
|
44
|
+
sortGroupSlider: {
|
|
45
|
+
marginBottom: '5px',
|
|
46
|
+
textAlign: 'left',
|
|
47
|
+
marginLeft: '-4px',
|
|
48
|
+
display: 'flex',
|
|
49
|
+
alignItems: 'stretch',
|
|
50
|
+
justifyContent: 'flex-start',
|
|
51
|
+
gap: '8px'
|
|
38
52
|
},
|
|
39
53
|
sortGroupIcon: {
|
|
40
54
|
cursor: 'pointer',
|
|
41
55
|
fontFamily: 'Nunito',
|
|
42
|
-
fontSize: '
|
|
56
|
+
fontSize: '11px',
|
|
43
57
|
marginRight: '12px',
|
|
44
|
-
marginLeft: '24px'
|
|
58
|
+
marginLeft: '24px',
|
|
59
|
+
display: 'flex',
|
|
60
|
+
alignItems: 'center'
|
|
45
61
|
},
|
|
46
62
|
sortGroupItem: {
|
|
47
63
|
cursor: 'pointer',
|
|
48
64
|
fontFamily: 'Nunito',
|
|
49
|
-
fontSize: '
|
|
50
|
-
marginRight: '32px'
|
|
65
|
+
fontSize: '11px'
|
|
66
|
+
// marginRight: '32px',
|
|
51
67
|
},
|
|
68
|
+
|
|
52
69
|
NonSortGroup: {
|
|
53
|
-
marginBottom: '5px',
|
|
54
|
-
borderTop: '1px solid #B1B1B1',
|
|
55
70
|
textAlign: 'left',
|
|
56
71
|
paddingLeft: '10px'
|
|
57
72
|
},
|
|
58
73
|
NonSortGroupItem: {
|
|
59
74
|
fontFamily: 'Nunito',
|
|
60
|
-
fontSize: '
|
|
75
|
+
fontSize: '11px',
|
|
61
76
|
marginRight: '32px'
|
|
62
77
|
},
|
|
63
78
|
sortGroupItemCounts: {
|
|
64
79
|
cursor: 'pointer',
|
|
65
80
|
fontFamily: 'Nunito',
|
|
66
|
-
fontSize: '
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
marginTop: '5px'
|
|
81
|
+
fontSize: '11px',
|
|
82
|
+
marginRight: '19px',
|
|
83
|
+
marginLeft: 'auto'
|
|
84
|
+
// marginTop: '5px',
|
|
85
|
+
// float: 'right',
|
|
70
86
|
},
|
|
87
|
+
|
|
71
88
|
highlight: {
|
|
72
89
|
color: '#b2c6d6'
|
|
73
90
|
},
|
|
@@ -75,8 +92,55 @@ var _default = () => ({
|
|
|
75
92
|
textAlign: 'right',
|
|
76
93
|
paddingRight: '5px',
|
|
77
94
|
cursor: 'pointer',
|
|
78
|
-
fontSize: '
|
|
95
|
+
fontSize: '11px',
|
|
79
96
|
width: '100%'
|
|
97
|
+
},
|
|
98
|
+
searchContainer: {
|
|
99
|
+
display: 'flex',
|
|
100
|
+
justifyContent: 'center',
|
|
101
|
+
position: 'relative'
|
|
102
|
+
},
|
|
103
|
+
searchBox: {
|
|
104
|
+
fontSize: '11px',
|
|
105
|
+
fontFamily: 'Nunito',
|
|
106
|
+
width: 'calc(100% - 26px)',
|
|
107
|
+
height: '30px',
|
|
108
|
+
marginTop: '12px',
|
|
109
|
+
borderRadius: '5px',
|
|
110
|
+
background: "url(".concat(_Search_Icon.default, ") right 5px center no-repeat"),
|
|
111
|
+
marginLeft: '6px',
|
|
112
|
+
border: '1px solid',
|
|
113
|
+
padding: '5px'
|
|
114
|
+
},
|
|
115
|
+
searchBoxWithText: {
|
|
116
|
+
fontSize: '11px',
|
|
117
|
+
fontFamily: 'Nunito',
|
|
118
|
+
width: 'calc(100% - 26px)',
|
|
119
|
+
height: '30px',
|
|
120
|
+
marginTop: '12px',
|
|
121
|
+
borderRadius: '5px',
|
|
122
|
+
marginLeft: '6px',
|
|
123
|
+
border: '1px solid',
|
|
124
|
+
padding: '5px'
|
|
125
|
+
},
|
|
126
|
+
expandedDisplayButton: {
|
|
127
|
+
backgroundColor: '#4D889E !important',
|
|
128
|
+
color: 'white',
|
|
129
|
+
width: 'calc(100% - 26px)',
|
|
130
|
+
height: '30px',
|
|
131
|
+
marginBottom: '5px',
|
|
132
|
+
marginLeft: '6px',
|
|
133
|
+
borderRadius: '5px',
|
|
134
|
+
fontSize: '12px',
|
|
135
|
+
fontWeight: '600',
|
|
136
|
+
top: '8px'
|
|
137
|
+
},
|
|
138
|
+
clearTextButton: {
|
|
139
|
+
padding: '0px',
|
|
140
|
+
height: '20px',
|
|
141
|
+
position: 'absolute',
|
|
142
|
+
right: '14px',
|
|
143
|
+
top: '14px'
|
|
80
144
|
}
|
|
81
145
|
});
|
|
82
146
|
exports.default = _default;
|
|
@@ -29,7 +29,7 @@ const FacetView = _ref => {
|
|
|
29
29
|
onClearSliderSection,
|
|
30
30
|
CustomView
|
|
31
31
|
} = _ref;
|
|
32
|
-
const [expand, setExpand] = (0, _react.useState)(false);
|
|
32
|
+
const [expand, setExpand] = (0, _react.useState)(facet.expanded !== undefined && typeof facet.expanded === 'boolean' ? facet.expanded : false);
|
|
33
33
|
const onExpandFacet = () => setExpand(!expand);
|
|
34
34
|
|
|
35
35
|
/**
|
|
@@ -82,17 +82,13 @@ const FacetView = _ref => {
|
|
|
82
82
|
className: (0, _clsx.default)(classes.subSectionSummaryText, {
|
|
83
83
|
["activeFacet".concat(facet.section)]: isActiveFacet
|
|
84
84
|
})
|
|
85
|
-
}, facet.label)), facetValues.length
|
|
86
|
-
className: classes.
|
|
87
|
-
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
88
|
-
className: classes.NonSortGroupItem
|
|
89
|
-
}, "No data for this field")), (facet.type === _Types.InputTypes.SLIDER || facetValues.length > 0) && /*#__PURE__*/_react.default.createElement("div", {
|
|
90
|
-
className: classes.sortGroup
|
|
85
|
+
}, facet.label)), (facet.type === _Types.InputTypes.SLIDER || facetValues.length > 0) && /*#__PURE__*/_react.default.createElement("div", {
|
|
86
|
+
className: facet.type === _Types.InputTypes.SLIDER ? classes.sortGroupSlider : classes.sortGroup
|
|
91
87
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
92
88
|
className: classes.sortGroupIcon
|
|
93
89
|
}, /*#__PURE__*/_react.default.createElement(_core.Icon, {
|
|
94
90
|
style: {
|
|
95
|
-
fontSize:
|
|
91
|
+
fontSize: 14
|
|
96
92
|
},
|
|
97
93
|
onClick: onClearSection
|
|
98
94
|
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
@@ -100,7 +96,11 @@ const FacetView = _ref => {
|
|
|
100
96
|
height: 12,
|
|
101
97
|
width: 12,
|
|
102
98
|
alt: "clear-icon"
|
|
103
|
-
}))
|
|
99
|
+
})), facetValues.length === 0 && /*#__PURE__*/_react.default.createElement("div", {
|
|
100
|
+
className: classes.NonSortGroup
|
|
101
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
102
|
+
className: classes.NonSortGroupItem
|
|
103
|
+
}, "No data for this field"))), facet.type === _Types.InputTypes.CHECKBOX && facetValues.length > 0 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
104
104
|
className: (0, _clsx.default)(classes.sortGroupItem, {
|
|
105
105
|
[classes.highlight]: sortBy === _Sort.sortType.ALPHABET
|
|
106
106
|
}),
|