@bento-core/facet-filter 1.0.1-ccdihub.24 → 1.0.1-ccdihub.26

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 (44) hide show
  1. package/dist/FacetFilterController.js +9 -10
  2. package/dist/FacetFilterView.js +17 -8
  3. package/dist/components/facet/FacetModal.js +88 -0
  4. package/dist/components/facet/FacetStyle.js +31 -2
  5. package/dist/components/facet/ModalStyle.js +121 -0
  6. package/dist/components/facet/ReduxFacetModal.js +31 -0
  7. package/dist/components/facet/ReduxSearchFacetView.js +37 -0
  8. package/dist/components/facet/SearchFacetView.js +125 -0
  9. package/dist/components/facet/assets/Search_Icon.svg +3 -0
  10. package/dist/components/inputs/FilterItemStyle.js +42 -0
  11. package/dist/components/inputs/ModalFilterItems.js +153 -0
  12. package/dist/components/inputs/ModalFilterStyle.js +117 -0
  13. package/dist/components/inputs/SearchFilterItems.js +92 -0
  14. package/dist/components/inputs/checkbox/ModalCheckboxStyle.js +43 -0
  15. package/dist/components/inputs/checkbox/ModalCheckboxView.js +114 -0
  16. package/dist/components/inputs/checkbox/ReduxModalCheckbox.js +17 -0
  17. package/dist/components/inputs/checkbox/ReduxSearchCheckbox.js +17 -0
  18. package/dist/components/inputs/checkbox/SearchCheckboxView.js +120 -0
  19. package/dist/store/actions/ActionTypes.js +3 -1
  20. package/dist/store/actions/Actions.js +18 -2
  21. package/dist/store/reducers/SideBarReducer.js +37 -2
  22. package/package.json +1 -1
  23. package/src/FacetFilterController.js +9 -10
  24. package/src/FacetFilterView.js +21 -10
  25. package/src/components/facet/FacetModal.js +91 -0
  26. package/src/components/facet/FacetStyle.js +30 -1
  27. package/src/components/facet/ModalStyle.js +115 -0
  28. package/src/components/facet/ReduxFacetModal.js +28 -0
  29. package/src/components/facet/ReduxSearchFacetView.js +30 -0
  30. package/src/components/facet/SearchFacetView.js +170 -0
  31. package/src/components/facet/assets/Search_Icon.svg +3 -0
  32. package/src/components/inputs/FilterItemStyle.js +42 -0
  33. package/src/components/inputs/FilterItems.js +3 -2
  34. package/src/components/inputs/ModalFilterItems.js +147 -0
  35. package/src/components/inputs/ModalFilterStyle.js +110 -0
  36. package/src/components/inputs/SearchFilterItems.js +86 -0
  37. package/src/components/inputs/checkbox/ModalCheckboxStyle.js +36 -0
  38. package/src/components/inputs/checkbox/ModalCheckboxView.js +142 -0
  39. package/src/components/inputs/checkbox/ReduxModalCheckbox.js +12 -0
  40. package/src/components/inputs/checkbox/ReduxSearchCheckbox.js +12 -0
  41. package/src/components/inputs/checkbox/SearchCheckboxView.js +149 -0
  42. package/src/store/actions/ActionTypes.js +2 -0
  43. package/src/store/actions/Actions.js +16 -0
  44. package/src/store/reducers/SideBarReducer.js +36 -1
@@ -32,12 +32,10 @@ const FacetFilterController = props => {
32
32
  facetSectionConfig
33
33
  } = props;
34
34
  const filterState = {};
35
+ // console.log(activeFilters);
35
36
  for (const [key, value] of Object.entries(activeFilters)) {
36
37
  if (key !== 'participant_ids') {
37
- filterState[key] = {};
38
- value.forEach(item => {
39
- filterState[key][item] = true;
40
- });
38
+ filterState[key] = value;
41
39
  }
42
40
  }
43
41
  const updateFacetState = filterSections => {
@@ -47,7 +45,8 @@ const FacetFilterController = props => {
47
45
  updateSections.forEach(sideBar => {
48
46
  if (sideBar.type === _Types.InputTypes.CHECKBOX && sideBar.datafield === key) {
49
47
  sideBar.facetValues.forEach(item => {
50
- item.isChecked = value[item.name] ? value[item.name] : false;
48
+ // item.isChecked = value[item.name] ? value[item.name] : false;
49
+ item.isChecked = value.indexOf(item.name) > -1;
51
50
  });
52
51
  }
53
52
  if (sideBar.type === _Types.InputTypes.SLIDER && sideBar.datafield === key) {
@@ -134,15 +133,15 @@ const FacetFilterController = props => {
134
133
  if (filterState !== undefined) {
135
134
  const facetFilter = filterState[facet.datafield];
136
135
  if (facetFilter) {
137
- for (const [key, value] of Object.entries(facetFilter)) {
138
- if (validValues.indexOf(key) === -1) {
136
+ facetFilter.forEach(item => {
137
+ if (validValues.indexOf(item) === -1) {
139
138
  const tmp = {};
140
- tmp.group = key;
141
- tmp.name = key;
139
+ tmp.group = item;
140
+ tmp.name = item;
142
141
  tmp.subjects = 0;
143
142
  updateField.push(tmp);
144
143
  }
145
- }
144
+ });
146
145
  }
147
146
  }
148
147
  updateFacet.facetValues = updateField;
@@ -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,88 @@
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
+ sx: theme => ({
51
+ position: 'absolute',
52
+ right: 8,
53
+ top: 8,
54
+ color: theme.palette.grey[500]
55
+ })
56
+ }, /*#__PURE__*/_react.default.createElement(_Close.default, {
57
+ fontSize: "small"
58
+ }))), /*#__PURE__*/_react.default.createElement("div", {
59
+ className: classes.searchContainer
60
+ }, /*#__PURE__*/_react.default.createElement("div", {
61
+ className: classes.searchInputbox
62
+ }, "Search ".concat(facet.label)), /*#__PURE__*/_react.default.createElement("input", {
63
+ className: classes.searchBox,
64
+ value: searchText,
65
+ type: "text",
66
+ placeholder: "e.g. A1CF, CREB3L1, PIK3CA",
67
+ onChange: e => onSearchTextChange(facet.datafield, e.target.value)
68
+ }), /*#__PURE__*/_react.default.createElement(_core.Button, {
69
+ variant: "outlined",
70
+ onClick: () => onSearchTextChange(facet.datafield, ''),
71
+ className: classes.resetIcon
72
+ }, /*#__PURE__*/_react.default.createElement("img", {
73
+ src: resetIcon.src,
74
+ height: resetIcon.size,
75
+ width: resetIcon.size,
76
+ alt: resetIcon.alt
77
+ }))), /*#__PURE__*/_react.default.createElement("div", {
78
+ className: classes.itemContainer
79
+ }, /*#__PURE__*/_react.default.createElement(_ModalFilterItems.default, {
80
+ searchText: searchText,
81
+ facet: facet,
82
+ sortBy: sortBy,
83
+ onClearSection: onClearSection,
84
+ onSortChange: onSortChange
85
+ }))));
86
+ };
87
+ var _default = (0, _styles.withStyles)(_ModalStyle.default)(ModalView);
88
+ 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,9 +34,9 @@ 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: '-5px',
39
+ borderTop: 'none'
38
40
  },
39
41
  sortGroupIcon: {
40
42
  cursor: 'pointer',
@@ -77,6 +79,33 @@ var _default = () => ({
77
79
  cursor: 'pointer',
78
80
  fontSize: '10px',
79
81
  width: '100%'
82
+ },
83
+ searchContainer: {
84
+ display: 'flex',
85
+ justifyContent: 'center'
86
+ },
87
+ searchBox: {
88
+ fontSize: '11px',
89
+ fontFamily: 'Nunito',
90
+ width: '245px',
91
+ height: '24px',
92
+ marginTop: '12px',
93
+ marginBottom: '5px',
94
+ borderRadius: '8px',
95
+ background: "url(".concat(_Search_Icon.default, ") right 5px center no-repeat"),
96
+ marginLeft: '6px',
97
+ border: '1px solid',
98
+ padding: '5px'
99
+ },
100
+ expandedDisplayButton: {
101
+ background: '#4D889E',
102
+ color: 'white',
103
+ width: '222px',
104
+ height: '30px',
105
+ marginTop: '5px',
106
+ marginBottom: '5px',
107
+ borderRadius: '8px',
108
+ fontSize: '11px'
80
109
  }
81
110
  });
82
111
  exports.default = _default;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
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 }; }
9
+ var _default = () => ({
10
+ header: {
11
+ display: 'flex',
12
+ justifyContent: 'center',
13
+ alignItems: 'center',
14
+ height: '55px'
15
+ },
16
+ closeButton: {
17
+ marginLeft: '769px',
18
+ position: 'absolute'
19
+ },
20
+ resetIcon: {
21
+ marginLeft: '10px',
22
+ minWidth: '5px',
23
+ width: '5px',
24
+ borderRadius: '9px',
25
+ height: '30px'
26
+ },
27
+ modalTitle: {
28
+ fontFamily: 'Poppins',
29
+ fontSize: '19px',
30
+ fontWeight: '400',
31
+ lineHeight: '21px',
32
+ letterSpacing: '0.02em',
33
+ textAlign: 'center',
34
+ color: '#000000'
35
+ },
36
+ modalBody: {
37
+ position: 'absolute',
38
+ top: '5%',
39
+ left: '25%',
40
+ width: '836px',
41
+ height: '671px',
42
+ background: '#FFFFFF',
43
+ border: '1px solid #505050',
44
+ borderRadius: '40px',
45
+ overflow: 'hidden'
46
+ },
47
+ searchContainer: {
48
+ display: 'flex',
49
+ justifyContent: 'center',
50
+ alignItems: 'center',
51
+ borderTop: '3px solid #939393',
52
+ borderBottom: '3px solid #939393',
53
+ height: '51px'
54
+ },
55
+ searchInputbox: {
56
+ marginRight: '10px',
57
+ fontFamily: 'Poppins',
58
+ fontSize: '18px',
59
+ fontWeight: '600',
60
+ lineHeight: '27px',
61
+ letterSpacing: '-0.02em',
62
+ textAlign: 'left',
63
+ color: '#7A437A'
64
+ },
65
+ searchBox: {
66
+ fontSize: '12px',
67
+ fontWeight: '400',
68
+ fontFamily: 'Nunito',
69
+ width: '437px',
70
+ height: '28px',
71
+ marginTop: '5px',
72
+ marginBottom: '5px',
73
+ borderRadius: '8px',
74
+ background: "url(".concat(_Search_Icon.default, ") right 5px center no-repeat"),
75
+ border: '1.5px solid #646464'
76
+ },
77
+ highlight: {
78
+ color: '#b2c6d6'
79
+ },
80
+ sortGroup: {
81
+ paddingTop: '10px',
82
+ marginBottom: '5px',
83
+ borderTop: '1px solid #B1B1B1',
84
+ textAlign: 'left',
85
+ marginLeft: '-5px'
86
+ },
87
+ sortGroupIcon: {
88
+ cursor: 'pointer',
89
+ fontFamily: 'Nunito',
90
+ fontSize: '10px',
91
+ marginRight: '12px',
92
+ marginLeft: '24px'
93
+ },
94
+ sortGroupItem: {
95
+ cursor: 'pointer',
96
+ fontFamily: 'Nunito',
97
+ fontSize: '10px',
98
+ marginRight: '32px'
99
+ },
100
+ NonSortGroup: {
101
+ marginBottom: '5px',
102
+ borderTop: '1px solid #B1B1B1',
103
+ textAlign: 'left',
104
+ paddingLeft: '10px'
105
+ },
106
+ NonSortGroupItem: {
107
+ fontFamily: 'Nunito',
108
+ fontSize: '10px',
109
+ marginRight: '32px'
110
+ },
111
+ sortGroupItemCounts: {
112
+ cursor: 'pointer',
113
+ fontFamily: 'Nunito',
114
+ fontSize: '10px',
115
+ float: 'right',
116
+ marginRight: '10px',
117
+ marginTop: '5px'
118
+ },
119
+ itemContainer: {}
120
+ });
121
+ exports.default = _default;
@@ -0,0 +1,31 @@
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 _reactRedux = require("react-redux");
9
+ var _Actions = require("../../store/actions/Actions");
10
+ var _FacetModal = _interopRequireDefault(require("./FacetModal"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ // import FacetView from './FacetView';
13
+
14
+ const ReduxFacetModal = props => /*#__PURE__*/_react.default.createElement(_FacetModal.default, props);
15
+ const mapStateToProps = (state, ownProps) => ({
16
+ searchText: state.statusReducer.searchState[ownProps.facet.datafield] || '',
17
+ sortBy: state.statusReducer.sortState[ownProps.facet.datafield] || null
18
+ });
19
+ const mapDispatchToProps = dispatch => ({
20
+ onClearFacetSection: facet => {
21
+ dispatch((0, _Actions.clearFacetSection)(facet));
22
+ },
23
+ onSearchTextChange: (datafield, searchText) => {
24
+ dispatch((0, _Actions.searchTextChange)(datafield, searchText));
25
+ },
26
+ onSortChange: (datafield, sortBy) => {
27
+ dispatch((0, _Actions.sortChange)(datafield, sortBy));
28
+ }
29
+ });
30
+ var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ReduxFacetModal);
31
+ exports.default = _default;
@@ -0,0 +1,37 @@
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 _reactRedux = require("react-redux");
9
+ var _Actions = require("../../store/actions/Actions");
10
+ var _SearchFacetView = _interopRequireDefault(require("./SearchFacetView"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ // import FacetView from './FacetView';
13
+
14
+ const ReduxSearchFacetView = props => /*#__PURE__*/_react.default.createElement(_SearchFacetView.default, props);
15
+ const mapStateToProps = (state, ownProps) => {
16
+ var _state$statusReducer;
17
+ return {
18
+ searchText: ((_state$statusReducer = state.statusReducer) === null || _state$statusReducer === void 0 ? void 0 : _state$statusReducer.searchState[ownProps.facet.datafield]) || '',
19
+ sortBy: state.statusReducer.sortState[ownProps.facet.datafield] || null
20
+ };
21
+ };
22
+ const mapDispatchToProps = dispatch => ({
23
+ onClearFacetSection: facet => {
24
+ dispatch((0, _Actions.clearFacetSection)(facet));
25
+ },
26
+ onClearSliderSection: facet => {
27
+ dispatch((0, _Actions.clearSliderSection)(facet));
28
+ },
29
+ onSearchTextChange: (datafield, searchText) => {
30
+ dispatch((0, _Actions.searchTextChange)(datafield, searchText));
31
+ },
32
+ onSortChange: (datafield, sortBy) => {
33
+ dispatch((0, _Actions.sortChange)(datafield, sortBy));
34
+ }
35
+ });
36
+ var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ReduxSearchFacetView);
37
+ exports.default = _default;
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _core = require("@material-ui/core");
9
+ var _clsx = _interopRequireDefault(require("clsx"));
10
+ var _AccordionSummaryView = _interopRequireDefault(require("../summary/AccordionSummaryView"));
11
+ var _Types = require("../inputs/Types");
12
+ var _FacetStyle = _interopRequireDefault(require("./FacetStyle"));
13
+ var _FilterItems = _interopRequireDefault(require("../inputs/FilterItems"));
14
+ var _SearchFilterItems = _interopRequireDefault(require("../inputs/SearchFilterItems"));
15
+ var _Sort = require("../../utils/Sort");
16
+ var _clearIcon = _interopRequireDefault(require("./assets/clearIcon.svg"));
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ 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); }
19
+ 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; }
20
+ 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; }
21
+ 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; }
22
+ 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; }
23
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
24
+ 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); }
25
+ const SearchFacetView = _ref => {
26
+ let {
27
+ classes,
28
+ facet,
29
+ searchText,
30
+ sortBy,
31
+ onClearFacetSection,
32
+ onSearchTextChange,
33
+ onSortChange,
34
+ CustomView
35
+ } = _ref;
36
+ const [expand, setExpand] = (0, _react.useState)(false);
37
+ const onExpandFacet = () => setExpand(!expand);
38
+ const onClearSection = () => {
39
+ onSortChange(facet.datafield, null);
40
+ onClearFacetSection(facet);
41
+ };
42
+
43
+ /**
44
+ * display checked items on facet collapse
45
+ */
46
+ const {
47
+ type,
48
+ facetValues
49
+ } = facet;
50
+ const selectedItems = facetValues && facetValues.filter(item => item.isChecked);
51
+ const displayFacet = _objectSpread({}, facet);
52
+ displayFacet.facetValues = selectedItems;
53
+ const isActiveFacet = [...selectedItems].length > 0;
54
+ const limitCheckBoxCount = (facet === null || facet === void 0 ? void 0 : facet.showCheckboxCount) || 5;
55
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.Accordion, {
56
+ square: true,
57
+ expanded: expand,
58
+ onChange: onExpandFacet,
59
+ classes: {
60
+ root: classes.expansionPanelsideBarItem
61
+ },
62
+ id: facet.section
63
+ }, CustomView ? /*#__PURE__*/_react.default.createElement(CustomView, {
64
+ facet: facet,
65
+ facetClasses: isActiveFacet ? "activeFacet".concat(facet.section) : "inactiveFacet".concat(facet.section)
66
+ }) : /*#__PURE__*/_react.default.createElement(_AccordionSummaryView.default, null, /*#__PURE__*/_react.default.createElement("div", {
67
+ id: "filterGroup_ ".concat(facet.datafield, "\n ").concat(facet.label),
68
+ className: (0, _clsx.default)(classes.subSectionSummaryText, {
69
+ ["activeFacet".concat(facet.section)]: isActiveFacet
70
+ })
71
+ }, facet.label)), facetValues.length === 0 && /*#__PURE__*/_react.default.createElement("div", {
72
+ className: classes.NonSortGroup
73
+ }, /*#__PURE__*/_react.default.createElement("span", {
74
+ className: classes.NonSortGroupItem
75
+ }, "No data for this field")), /*#__PURE__*/_react.default.createElement("div", {
76
+ className: classes.searchContainer
77
+ }, /*#__PURE__*/_react.default.createElement("input", {
78
+ className: classes.searchBox,
79
+ value: searchText,
80
+ type: "text",
81
+ placeholder: "e.g. Sarcoma, Neoplasm",
82
+ onChange: e => onSearchTextChange(facet.datafield, e.target.value)
83
+ })), /*#__PURE__*/_react.default.createElement("div", {
84
+ className: classes.sortGroup
85
+ }, /*#__PURE__*/_react.default.createElement("span", {
86
+ className: classes.sortGroupIcon
87
+ }, /*#__PURE__*/_react.default.createElement(_core.Icon, {
88
+ style: {
89
+ fontSize: 10
90
+ },
91
+ onClick: onClearSection
92
+ }, /*#__PURE__*/_react.default.createElement("img", {
93
+ src: _clearIcon.default,
94
+ height: 12,
95
+ width: 12,
96
+ alt: "clear-icon"
97
+ }))), facet.type === _Types.InputTypes.CHECKBOX && facetValues.length > 0 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
98
+ className: (0, _clsx.default)(classes.sortGroupItem, {
99
+ [classes.highlight]: sortBy === _Sort.sortType.ALPHABET
100
+ }),
101
+ onClick: () => {
102
+ onSortChange(_Sort.sortType.ALPHABET);
103
+ }
104
+ }, "Sort alphabetically"), /*#__PURE__*/_react.default.createElement("span", {
105
+ className: (0, _clsx.default)(classes.sortGroupItemCounts, {
106
+ [classes.highlight]: sortBy === _Sort.sortType.NUMERIC
107
+ }),
108
+ onClick: () => {
109
+ onSortChange(_Sort.sortType.NUMERIC);
110
+ }
111
+ }, "Sort by count"))), /*#__PURE__*/_react.default.createElement(_SearchFilterItems.default, {
112
+ searchText: searchText,
113
+ facet: facet,
114
+ sortBy: sortBy
115
+ })), !expand && type === _Types.InputTypes.CHECKBOX && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.List, {
116
+ id: "filter_Items"
117
+ }, /*#__PURE__*/_react.default.createElement(_FilterItems.default, {
118
+ facet: displayFacet
119
+ }))), !expand && selectedItems.length > limitCheckBoxCount && /*#__PURE__*/_react.default.createElement("div", {
120
+ className: classes.showMore,
121
+ onClick: onExpandFacet
122
+ }, "...expand to see all selections"));
123
+ };
124
+ var _default = (0, _core.withStyles)(_FacetStyle.default)(SearchFacetView);
125
+ exports.default = _default;
@@ -0,0 +1,3 @@
1
+ <svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6.4134 1C3.43007 1 1 3.43007 1 6.4134C1 9.39672 3.43007 11.8268 6.4134 11.8268C7.71072 11.8268 8.90214 11.3661 9.83589 10.6014L13.0681 13.8336C13.118 13.8855 13.1777 13.927 13.2438 13.9556C13.3099 13.9841 13.3811 13.9992 13.4531 14C13.5251 14.0007 13.5966 13.9871 13.6632 13.9598C13.7299 13.9326 13.7905 13.8924 13.8414 13.8414C13.8924 13.7905 13.9326 13.7299 13.9598 13.6632C13.9871 13.5966 14.0007 13.5251 14 13.4531C13.9992 13.3811 13.9841 13.3099 13.9556 13.2438C13.927 13.1777 13.8855 13.118 13.8336 13.0681L10.6014 9.83589C11.3661 8.90214 11.8268 7.71072 11.8268 6.4134C11.8268 3.43007 9.39672 1 6.4134 1ZM6.4134 2.08268C8.8116 2.08268 10.7441 4.0152 10.7441 6.4134C10.7441 8.8116 8.8116 10.7441 6.4134 10.7441C4.0152 10.7441 2.08268 8.8116 2.08268 6.4134C2.08268 4.0152 4.0152 2.08268 6.4134 2.08268Z" fill="#4D889E" stroke="#4D889E"/>
3
+ </svg>
@@ -32,6 +32,48 @@ var _default = () => ({
32
32
  float: 'right',
33
33
  marginRight: '10px',
34
34
  marginTop: '5px'
35
+ },
36
+ itemsContainer: {
37
+ maxHeight: '400px',
38
+ overflowY: 'auto',
39
+ overflowX: 'hidden',
40
+ borderTop: '2px solid #AEAEAE',
41
+ borderBottom: '2px solid #AEAEAE',
42
+ marginRight: '-1px',
43
+ '&::-webkit-scrollbar': {
44
+ width: '12px',
45
+ backgroundColor: '#E9F0F4',
46
+ borderLeft: '0.5px solid #B1B1B1',
47
+ borderRight: '0.5px solid #B1B1B1'
48
+ },
49
+ '&::-webkit-scrollbar-track': {
50
+ backgroundColor: '#CECECE',
51
+ border: '3px solid transparent',
52
+ borderRadius: '20px',
53
+ backgroundClip: 'content-box'
54
+ },
55
+ '&::-webkit-scrollbar-thumb': {
56
+ backgroundColor: '#477C90',
57
+ border: '3px solid transparent',
58
+ borderRadius: '20px',
59
+ backgroundClip: 'content-box'
60
+ }
61
+ },
62
+ searchContainer: {
63
+ display: 'flex',
64
+ justifyContent: 'center',
65
+ height: '54px'
66
+ },
67
+ expandedDisplayButton: {
68
+ backgroundColor: '#4D889E !important',
69
+ color: 'white',
70
+ width: '222px',
71
+ height: '24px',
72
+ marginTop: '5px',
73
+ marginBottom: '5px',
74
+ borderRadius: '8px',
75
+ fontSize: '11px',
76
+ top: '10px'
35
77
  }
36
78
  });
37
79
  exports.default = _default;