@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.
Files changed (77) hide show
  1. package/dist/FacetFilterController.js +9 -3
  2. package/dist/FacetFilterStyle.js +1 -1
  3. package/dist/FacetFilterView.js +17 -8
  4. package/dist/NewFacetFilterController.js +212 -0
  5. package/dist/NewFacetFilterView.js +49 -0
  6. package/dist/components/facet/FacetModal.js +82 -0
  7. package/dist/components/facet/FacetStyle.js +78 -14
  8. package/dist/components/facet/FacetView.js +9 -9
  9. package/dist/components/facet/ModalStyle.js +127 -0
  10. package/dist/components/facet/NewFacetStyle.js +231 -0
  11. package/dist/components/facet/NewFacetView.js +188 -0
  12. package/dist/components/facet/NewSearchFacetView.js +212 -0
  13. package/dist/components/facet/ReduxFacetModal.js +34 -0
  14. package/dist/components/facet/ReduxNewFacetView.js +35 -0
  15. package/dist/components/facet/ReduxNewSearchFacetView.js +42 -0
  16. package/dist/components/facet/ReduxSearchFacetView.js +37 -0
  17. package/dist/components/facet/SearchFacetView.js +183 -0
  18. package/dist/components/facet/assets/Search_Icon.svg +3 -0
  19. package/dist/components/inputs/FilterItemStyle.js +46 -8
  20. package/dist/components/inputs/FilterItems.js +112 -12
  21. package/dist/components/inputs/ModalFilterItems.js +167 -0
  22. package/dist/components/inputs/ModalFilterStyle.js +120 -0
  23. package/dist/components/inputs/SearchFilterItems.js +97 -0
  24. package/dist/components/inputs/checkbox/ModalCheckboxStyle.js +43 -0
  25. package/dist/components/inputs/checkbox/ModalCheckboxView.js +115 -0
  26. package/dist/components/inputs/checkbox/ReduxModalCheckbox.js +17 -0
  27. package/dist/components/inputs/checkbox/ReduxSearchCheckbox.js +17 -0
  28. package/dist/components/inputs/checkbox/SearchCheckboxView.js +121 -0
  29. package/dist/components/inputs/slider/InputMinMaxView.js +4 -1
  30. package/dist/components/inputs/slider/ReduxSlider.js +9 -4
  31. package/dist/components/inputs/slider/SliderStyle.js +2 -2
  32. package/dist/components/inputs/slider/SliderView.js +277 -32
  33. package/dist/components/section/FacetSectionView.js +2 -1
  34. package/dist/index.js +25 -0
  35. package/dist/store/actions/ActionTypes.js +6 -1
  36. package/dist/store/actions/Actions.js +39 -2
  37. package/dist/store/reducers/SideBarReducer.js +98 -11
  38. package/dist/utils/filter.js +21 -7
  39. package/package.json +4 -2
  40. package/src/FacetFilterController.js +11 -4
  41. package/src/FacetFilterStyle.js +1 -1
  42. package/src/FacetFilterView.js +21 -10
  43. package/src/NewFacetFilterController.js +209 -0
  44. package/src/NewFacetFilterView.js +56 -0
  45. package/src/components/facet/FacetModal.js +85 -0
  46. package/src/components/facet/FacetStyle.js +75 -13
  47. package/src/components/facet/FacetView.js +18 -15
  48. package/src/components/facet/ModalStyle.js +120 -0
  49. package/src/components/facet/NewFacetStyle.js +229 -0
  50. package/src/components/facet/NewFacetView.js +260 -0
  51. package/src/components/facet/NewSearchFacetView.js +293 -0
  52. package/src/components/facet/ReduxFacetModal.js +28 -0
  53. package/src/components/facet/ReduxNewFacetView.js +27 -0
  54. package/src/components/facet/ReduxNewSearchFacetView.js +36 -0
  55. package/src/components/facet/ReduxSearchFacetView.js +30 -0
  56. package/src/components/facet/SearchFacetView.js +256 -0
  57. package/src/components/facet/assets/Search_Icon.svg +3 -0
  58. package/src/components/inputs/FilterItemStyle.js +44 -8
  59. package/src/components/inputs/FilterItems.js +96 -7
  60. package/src/components/inputs/ModalFilterItems.js +159 -0
  61. package/src/components/inputs/ModalFilterStyle.js +113 -0
  62. package/src/components/inputs/SearchFilterItems.js +87 -0
  63. package/src/components/inputs/checkbox/ModalCheckboxStyle.js +36 -0
  64. package/src/components/inputs/checkbox/ModalCheckboxView.js +143 -0
  65. package/src/components/inputs/checkbox/ReduxModalCheckbox.js +12 -0
  66. package/src/components/inputs/checkbox/ReduxSearchCheckbox.js +12 -0
  67. package/src/components/inputs/checkbox/SearchCheckboxView.js +150 -0
  68. package/src/components/inputs/slider/InputMinMaxView.js +3 -0
  69. package/src/components/inputs/slider/ReduxSlider.js +5 -1
  70. package/src/components/inputs/slider/SliderStyle.js +2 -2
  71. package/src/components/inputs/slider/SliderView.js +314 -36
  72. package/src/components/section/FacetSectionView.js +1 -1
  73. package/src/index.js +4 -1
  74. package/src/store/actions/ActionTypes.js +5 -0
  75. package/src/store/actions/Actions.js +37 -0
  76. package/src/store/reducers/SideBarReducer.js +94 -6
  77. package/src/utils/filter.js +18 -0
@@ -61,7 +61,11 @@ const FacetFilterController = props => {
61
61
  minLowerBound,
62
62
  maxUpperBound
63
63
  } = sideBar;
64
- sideBar.facetValues = [minLowerBound, maxUpperBound];
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.filterOut = true;
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) {
@@ -25,7 +25,7 @@ var _default = () => ({
25
25
  sortGroupItem: {
26
26
  cursor: 'pointer',
27
27
  fontFamily: 'Nunito',
28
- fontSize: '10px',
28
+ fontSize: '11px',
29
29
  marginRight: '32px'
30
30
  }
31
31
  });
@@ -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 => /*#__PURE__*/_react.default.createElement(_ReduxFacetView.default, {
30
- facet: facet,
31
- CustomView: CustomFacetView
32
- }, /*#__PURE__*/_react.default.createElement(_core.List, {
33
- className: "List_".concat(facet.label)
34
- }, /*#__PURE__*/_react.default.createElement(_FilterItems.default, {
35
- facet: facet
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: '-5px'
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: '10px',
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: '10px',
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: '10px',
75
+ fontSize: '11px',
61
76
  marginRight: '32px'
62
77
  },
63
78
  sortGroupItemCounts: {
64
79
  cursor: 'pointer',
65
80
  fontFamily: 'Nunito',
66
- fontSize: '10px',
67
- float: 'right',
68
- marginRight: '10px',
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: '10px',
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 === 0 && /*#__PURE__*/_react.default.createElement("div", {
86
- className: classes.NonSortGroup
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: 10
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
- }))), facet.type === _Types.InputTypes.CHECKBOX && facetValues.length > 0 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
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
  }),