@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.
- package/dist/FacetFilterController.js +9 -10
- package/dist/FacetFilterView.js +17 -8
- package/dist/components/facet/FacetModal.js +88 -0
- package/dist/components/facet/FacetStyle.js +31 -2
- package/dist/components/facet/ModalStyle.js +121 -0
- package/dist/components/facet/ReduxFacetModal.js +31 -0
- package/dist/components/facet/ReduxSearchFacetView.js +37 -0
- package/dist/components/facet/SearchFacetView.js +125 -0
- package/dist/components/facet/assets/Search_Icon.svg +3 -0
- package/dist/components/inputs/FilterItemStyle.js +42 -0
- package/dist/components/inputs/ModalFilterItems.js +153 -0
- package/dist/components/inputs/ModalFilterStyle.js +117 -0
- package/dist/components/inputs/SearchFilterItems.js +92 -0
- package/dist/components/inputs/checkbox/ModalCheckboxStyle.js +43 -0
- package/dist/components/inputs/checkbox/ModalCheckboxView.js +114 -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 +120 -0
- package/dist/store/actions/ActionTypes.js +3 -1
- package/dist/store/actions/Actions.js +18 -2
- package/dist/store/reducers/SideBarReducer.js +37 -2
- package/package.json +1 -1
- package/src/FacetFilterController.js +9 -10
- package/src/FacetFilterView.js +21 -10
- package/src/components/facet/FacetModal.js +91 -0
- package/src/components/facet/FacetStyle.js +30 -1
- package/src/components/facet/ModalStyle.js +115 -0
- package/src/components/facet/ReduxFacetModal.js +28 -0
- package/src/components/facet/ReduxSearchFacetView.js +30 -0
- package/src/components/facet/SearchFacetView.js +170 -0
- package/src/components/facet/assets/Search_Icon.svg +3 -0
- package/src/components/inputs/FilterItemStyle.js +42 -0
- package/src/components/inputs/FilterItems.js +3 -2
- package/src/components/inputs/ModalFilterItems.js +147 -0
- package/src/components/inputs/ModalFilterStyle.js +110 -0
- package/src/components/inputs/SearchFilterItems.js +86 -0
- package/src/components/inputs/checkbox/ModalCheckboxStyle.js +36 -0
- package/src/components/inputs/checkbox/ModalCheckboxView.js +142 -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 +149 -0
- package/src/store/actions/ActionTypes.js +2 -0
- package/src/store/actions/Actions.js +16 -0
- 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
|
-
|
|
138
|
-
if (validValues.indexOf(
|
|
136
|
+
facetFilter.forEach(item => {
|
|
137
|
+
if (validValues.indexOf(item) === -1) {
|
|
139
138
|
const tmp = {};
|
|
140
|
-
tmp.group =
|
|
141
|
-
tmp.name =
|
|
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;
|
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,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;
|