@bento-core/facet-filter 1.0.1-ccdihub.0 → 1.0.1-ccdihub.2
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 +157 -0
- package/dist/FacetFilterStyle.js +32 -0
- package/dist/FacetFilterView.js +39 -0
- package/dist/components/facet/FacetStyle.js +82 -0
- package/dist/components/facet/FacetView.js +130 -0
- package/dist/components/facet/ReduxFacetView.js +30 -0
- package/dist/components/facet/assets/clearIcon.svg +14 -0
- package/dist/components/inputs/FilterItemStyle.js +37 -0
- package/dist/components/inputs/FilterItems.js +53 -0
- package/dist/components/inputs/Types.js +17 -0
- package/dist/components/inputs/checkbox/CheckboxStyle.js +39 -0
- package/dist/components/inputs/checkbox/CheckboxView.js +111 -0
- package/dist/components/inputs/checkbox/ReduxCheckbox.js +20 -0
- package/dist/components/inputs/slider/InputMinMaxStyle.js +10 -0
- package/dist/components/inputs/slider/InputMinMaxView.js +47 -0
- package/dist/components/inputs/slider/ReduxSlider.js +20 -0
- package/dist/components/inputs/slider/SliderStyle.js +124 -0
- package/dist/components/inputs/slider/SliderView.js +117 -0
- package/dist/components/reset/ReduxClearAllBtn.js +47 -0
- package/dist/components/section/FacetSectionStyle.js +42 -0
- package/dist/components/section/FacetSectionView.js +46 -0
- package/dist/components/summary/AccordionSummaryStyle.js +18 -0
- package/dist/components/summary/AccordionSummaryView.js +50 -0
- package/dist/generator/component.js +24 -0
- package/dist/index.js +134 -0
- package/dist/store/actions/ActionTypes.js +17 -0
- package/dist/store/actions/Actions.js +40 -0
- package/dist/store/reducers/SideBarReducer.js +121 -0
- package/dist/utils/Sort.js +78 -0
- package/dist/utils/filter.js +30 -0
- package/package.json +1 -1
- package/src/FacetFilterController.js +2 -1
- package/src/components/facet/FacetView.js +1 -1
- package/src/components/inputs/slider/SliderView.js +35 -16
|
@@ -0,0 +1,157 @@
|
|
|
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 _FacetFilterView = _interopRequireDefault(require("./FacetFilterView"));
|
|
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 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; }
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
18
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
19
|
+
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); }
|
|
20
|
+
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; }
|
|
21
|
+
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; }
|
|
22
|
+
const FacetFilterController = props => {
|
|
23
|
+
/**
|
|
24
|
+
* update checkbox state
|
|
25
|
+
* 1. checkbox state
|
|
26
|
+
* 2. subject state
|
|
27
|
+
*/
|
|
28
|
+
const {
|
|
29
|
+
filterState,
|
|
30
|
+
data,
|
|
31
|
+
facetsConfig,
|
|
32
|
+
facetSectionConfig
|
|
33
|
+
} = props;
|
|
34
|
+
const updateFacetState = filterSections => {
|
|
35
|
+
const updateSections = [...filterSections];
|
|
36
|
+
if (!_lodash.default.isEmpty(filterState)) {
|
|
37
|
+
for (const [key, value] of Object.entries(filterState)) {
|
|
38
|
+
updateSections.forEach(sideBar => {
|
|
39
|
+
if (sideBar.type === _Types.InputTypes.CHECKBOX && sideBar.datafield === key) {
|
|
40
|
+
sideBar.facetValues.forEach(item => {
|
|
41
|
+
item.isChecked = value[item.name] ? value[item.name] : false;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (sideBar.type === _Types.InputTypes.SLIDER && sideBar.datafield === key) {
|
|
45
|
+
sideBar.facetValues = value;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
} else {
|
|
50
|
+
updateSections.forEach(sideBar => {
|
|
51
|
+
if (sideBar.type === _Types.InputTypes.CHECKBOX) {
|
|
52
|
+
sideBar.facetValues.forEach(item => {
|
|
53
|
+
item.isChecked = false;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* set default value for slider - on clear all filter
|
|
58
|
+
*/
|
|
59
|
+
if (sideBar.type === _Types.InputTypes.SLIDER) {
|
|
60
|
+
const {
|
|
61
|
+
minLowerBound,
|
|
62
|
+
maxUpperBound
|
|
63
|
+
} = sideBar;
|
|
64
|
+
sideBar.facetValues = [minLowerBound, maxUpperBound];
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return updateSections;
|
|
69
|
+
};
|
|
70
|
+
const arrangeBySections = arr => {
|
|
71
|
+
const sideBar = {};
|
|
72
|
+
arr.forEach(_ref => {
|
|
73
|
+
let {
|
|
74
|
+
section
|
|
75
|
+
} = _ref,
|
|
76
|
+
item = _objectWithoutProperties(_ref, _excluded);
|
|
77
|
+
const {
|
|
78
|
+
isExpanded
|
|
79
|
+
} = facetSectionConfig[section];
|
|
80
|
+
if (!sideBar[section]) {
|
|
81
|
+
sideBar[section] = {
|
|
82
|
+
name: section,
|
|
83
|
+
sectionName: section,
|
|
84
|
+
expandSection: isExpanded !== undefined && typeof isExpanded === 'boolean' ? isExpanded : true,
|
|
85
|
+
items: []
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
sideBar[section].items.push(_objectSpread({
|
|
89
|
+
section
|
|
90
|
+
}, item));
|
|
91
|
+
});
|
|
92
|
+
return Object.values(sideBar);
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Construct filter object
|
|
97
|
+
* 1. add facet values to facets
|
|
98
|
+
* 2. add 'name' key to each facet value
|
|
99
|
+
*/
|
|
100
|
+
const addFacetValues = facets => {
|
|
101
|
+
const updateFacets = [];
|
|
102
|
+
if (facets) {
|
|
103
|
+
facets.forEach(facet => {
|
|
104
|
+
const updateFacet = _objectSpread(_objectSpread({}, facet), {}, {
|
|
105
|
+
facetValues: []
|
|
106
|
+
});
|
|
107
|
+
const {
|
|
108
|
+
field,
|
|
109
|
+
ApiLowerBoundName,
|
|
110
|
+
ApiUpperBoundName,
|
|
111
|
+
apiForFiltering
|
|
112
|
+
} = updateFacet;
|
|
113
|
+
if (data[apiForFiltering]) {
|
|
114
|
+
if (Array.isArray(data[apiForFiltering])) {
|
|
115
|
+
const updateField = data[apiForFiltering].map(item => {
|
|
116
|
+
const addField = _objectSpread({}, item);
|
|
117
|
+
addField.name = item[field];
|
|
118
|
+
return addField;
|
|
119
|
+
});
|
|
120
|
+
updateFacet.facetValues = updateField;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* add object to facet values
|
|
124
|
+
*/
|
|
125
|
+
if (facet.type === _Types.InputTypes.SLIDER) {
|
|
126
|
+
const lowerBound = data[apiForFiltering][ApiLowerBoundName];
|
|
127
|
+
const upperBound = data[apiForFiltering][ApiUpperBoundName];
|
|
128
|
+
updateFacet.minLowerBound = lowerBound;
|
|
129
|
+
updateFacet.maxUpperBound = upperBound;
|
|
130
|
+
updateFacet.facetValues = [lowerBound, upperBound];
|
|
131
|
+
updateFacet.style = facet.style;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
updateFacets.push(updateFacet);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return updateFacets;
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Generate facet sections state
|
|
142
|
+
*
|
|
143
|
+
*/
|
|
144
|
+
// const displayFacets = facetsConfig.filter((facet) => facet.show).slice(0, 16);
|
|
145
|
+
const displayFacets = facetsConfig.filter(facet => facet.show);
|
|
146
|
+
const facetStates = addFacetValues(displayFacets);
|
|
147
|
+
const updateState = updateFacetState(facetStates);
|
|
148
|
+
const facetSections = arrangeBySections(updateState);
|
|
149
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_FacetFilterView.default, _extends({}, props, {
|
|
150
|
+
sideBarSections: facetSections
|
|
151
|
+
})));
|
|
152
|
+
};
|
|
153
|
+
const mapStateToProps = state => ({
|
|
154
|
+
filterState: state.statusReducer.filterState
|
|
155
|
+
});
|
|
156
|
+
var _default = (0, _reactRedux.connect)(mapStateToProps, null)(FacetFilterController);
|
|
157
|
+
exports.default = _default;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _default = () => ({
|
|
8
|
+
sectionSummaryText: {
|
|
9
|
+
color: '#323232',
|
|
10
|
+
fontFamily: 'Raleway',
|
|
11
|
+
fontSize: '15px',
|
|
12
|
+
fontWeight: 'bold',
|
|
13
|
+
letterSpacing: '0.25px',
|
|
14
|
+
marginLeft: '15px',
|
|
15
|
+
lineHeight: '26px'
|
|
16
|
+
},
|
|
17
|
+
sortGroup: {
|
|
18
|
+
paddingTop: '10px',
|
|
19
|
+
paddingBottom: '5px',
|
|
20
|
+
borderTop: '1px solid #B1B1B1',
|
|
21
|
+
textAlign: 'left',
|
|
22
|
+
marginLeft: '-5px',
|
|
23
|
+
boxShadow: 'inset -10px 2px 10px -7px rgb(50 50 50 / 25%)'
|
|
24
|
+
},
|
|
25
|
+
sortGroupItem: {
|
|
26
|
+
cursor: 'pointer',
|
|
27
|
+
fontFamily: 'Nunito',
|
|
28
|
+
fontSize: '10px',
|
|
29
|
+
marginRight: '32px'
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
exports.default = _default;
|
|
@@ -0,0 +1,39 @@
|
|
|
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 _FacetSectionView = _interopRequireDefault(require("./components/section/FacetSectionView"));
|
|
11
|
+
var _ReduxFacetView = _interopRequireDefault(require("./components/facet/ReduxFacetView"));
|
|
12
|
+
var _FilterItems = _interopRequireDefault(require("./components/inputs/FilterItems"));
|
|
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
|
+
sideBarSections,
|
|
20
|
+
CustomFacetSection,
|
|
21
|
+
CustomFacetView
|
|
22
|
+
} = _ref;
|
|
23
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, sideBarSections.map((section, index) => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.Divider, {
|
|
24
|
+
variant: "middle",
|
|
25
|
+
className: "divider".concat(index)
|
|
26
|
+
}), /*#__PURE__*/_react.default.createElement(_FacetSectionView.default, {
|
|
27
|
+
section: section,
|
|
28
|
+
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
|
+
}))))))));
|
|
37
|
+
};
|
|
38
|
+
var _default = (0, _core.withStyles)(_FacetFilterStyle.default)(BentoFacetFilter);
|
|
39
|
+
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 _default = () => ({
|
|
8
|
+
expansionPanelDetailsRoot: {
|
|
9
|
+
display: 'block'
|
|
10
|
+
},
|
|
11
|
+
expansionPanelsideBarItem: {
|
|
12
|
+
boxShadow: 'none',
|
|
13
|
+
borderTop: '1px solid #D2D2D2',
|
|
14
|
+
'&:last-child': {
|
|
15
|
+
borderBottom: '1px solid #D2D2D2'
|
|
16
|
+
},
|
|
17
|
+
margin: 'auto',
|
|
18
|
+
position: 'initial',
|
|
19
|
+
'&:before': {
|
|
20
|
+
position: 'initial'
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
subSectionSummaryText: {
|
|
24
|
+
marginLeft: '10px',
|
|
25
|
+
lineHeight: 0,
|
|
26
|
+
color: '#323232',
|
|
27
|
+
fontFamily: 'Raleway',
|
|
28
|
+
fontSize: '13px',
|
|
29
|
+
fontWeight: 'bold',
|
|
30
|
+
letterSpacing: '0.25px'
|
|
31
|
+
},
|
|
32
|
+
sortGroup: {
|
|
33
|
+
paddingTop: '10px',
|
|
34
|
+
marginBottom: '5px',
|
|
35
|
+
borderTop: '1px solid #B1B1B1',
|
|
36
|
+
textAlign: 'left',
|
|
37
|
+
marginLeft: '-5px'
|
|
38
|
+
},
|
|
39
|
+
sortGroupIcon: {
|
|
40
|
+
cursor: 'pointer',
|
|
41
|
+
fontFamily: 'Nunito',
|
|
42
|
+
fontSize: '10px',
|
|
43
|
+
marginRight: '12px',
|
|
44
|
+
marginLeft: '16px'
|
|
45
|
+
},
|
|
46
|
+
sortGroupItem: {
|
|
47
|
+
cursor: 'pointer',
|
|
48
|
+
fontFamily: 'Nunito',
|
|
49
|
+
fontSize: '10px',
|
|
50
|
+
marginRight: '32px'
|
|
51
|
+
},
|
|
52
|
+
NonSortGroup: {
|
|
53
|
+
marginBottom: '5px',
|
|
54
|
+
borderTop: '1px solid #B1B1B1',
|
|
55
|
+
textAlign: 'left',
|
|
56
|
+
paddingLeft: '10px'
|
|
57
|
+
},
|
|
58
|
+
NonSortGroupItem: {
|
|
59
|
+
fontFamily: 'Nunito',
|
|
60
|
+
fontSize: '10px',
|
|
61
|
+
marginRight: '32px'
|
|
62
|
+
},
|
|
63
|
+
sortGroupItemCounts: {
|
|
64
|
+
cursor: 'pointer',
|
|
65
|
+
fontFamily: 'Nunito',
|
|
66
|
+
fontSize: '10px',
|
|
67
|
+
float: 'right',
|
|
68
|
+
marginRight: '10px',
|
|
69
|
+
marginTop: '5px'
|
|
70
|
+
},
|
|
71
|
+
highlight: {
|
|
72
|
+
color: '#b2c6d6'
|
|
73
|
+
},
|
|
74
|
+
showMore: {
|
|
75
|
+
textAlign: 'right',
|
|
76
|
+
paddingRight: '5px',
|
|
77
|
+
cursor: 'pointer',
|
|
78
|
+
fontSize: '10px',
|
|
79
|
+
width: '100%'
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
exports.default = _default;
|
|
@@ -0,0 +1,130 @@
|
|
|
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 _Sort = require("../../utils/Sort");
|
|
15
|
+
var _clearIcon = _interopRequireDefault(require("./assets/clearIcon.svg"));
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
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); }
|
|
18
|
+
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; }
|
|
19
|
+
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; }
|
|
20
|
+
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; }
|
|
21
|
+
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; }
|
|
22
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
23
|
+
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); }
|
|
24
|
+
const FacetView = _ref => {
|
|
25
|
+
let {
|
|
26
|
+
classes,
|
|
27
|
+
facet,
|
|
28
|
+
onClearFacetSection,
|
|
29
|
+
onClearSliderSection,
|
|
30
|
+
CustomView,
|
|
31
|
+
autoComplete,
|
|
32
|
+
upload
|
|
33
|
+
} = _ref;
|
|
34
|
+
const [expand, setExpand] = (0, _react.useState)(false);
|
|
35
|
+
const onExpandFacet = () => setExpand(!expand);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* expand section incase of active local search
|
|
39
|
+
*/
|
|
40
|
+
(0, _react.useEffect)(() => {
|
|
41
|
+
if (autoComplete && autoComplete.length > 0 || upload && upload.length > 0) {
|
|
42
|
+
setExpand(true);
|
|
43
|
+
}
|
|
44
|
+
}, [autoComplete, upload]);
|
|
45
|
+
const [sortBy, setSortBy] = (0, _react.useState)(null);
|
|
46
|
+
const onSortFacet = type => {
|
|
47
|
+
setSortBy(type);
|
|
48
|
+
};
|
|
49
|
+
const onClearSection = () => {
|
|
50
|
+
setSortBy(null);
|
|
51
|
+
if (facet.type === _Types.InputTypes.SLIDER) {
|
|
52
|
+
onClearSliderSection(facet);
|
|
53
|
+
} else {
|
|
54
|
+
onClearFacetSection(facet);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* display checked items on facet collapse
|
|
59
|
+
*/
|
|
60
|
+
const {
|
|
61
|
+
type,
|
|
62
|
+
facetValues
|
|
63
|
+
} = facet;
|
|
64
|
+
const selectedItems = facetValues && facetValues.filter(item => item.isChecked);
|
|
65
|
+
const displayFacet = _objectSpread({}, facet);
|
|
66
|
+
displayFacet.facetValues = selectedItems;
|
|
67
|
+
const isActiveFacet = [...selectedItems].length > 0;
|
|
68
|
+
const limitCheckBoxCount = (facet === null || facet === void 0 ? void 0 : facet.showCheckboxCount) || 5;
|
|
69
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.Accordion, {
|
|
70
|
+
square: true,
|
|
71
|
+
expanded: expand,
|
|
72
|
+
onChange: onExpandFacet,
|
|
73
|
+
classes: {
|
|
74
|
+
root: classes.expansionPanelsideBarItem
|
|
75
|
+
},
|
|
76
|
+
id: facet.section
|
|
77
|
+
}, CustomView ? /*#__PURE__*/_react.default.createElement(CustomView, {
|
|
78
|
+
facet: facet,
|
|
79
|
+
facetClasses: isActiveFacet ? "activeFacet".concat(facet.section) : "inactiveFacet".concat(facet.section)
|
|
80
|
+
}) : /*#__PURE__*/_react.default.createElement(_AccordionSummaryView.default, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
81
|
+
id: "filterGroup_ ".concat(facet.datafield, "\n ").concat(facet.label),
|
|
82
|
+
className: (0, _clsx.default)(classes.subSectionSummaryText, {
|
|
83
|
+
["activeFacet".concat(facet.section)]: isActiveFacet
|
|
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
|
|
91
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
92
|
+
className: classes.sortGroupIcon
|
|
93
|
+
}, /*#__PURE__*/_react.default.createElement(_core.Icon, {
|
|
94
|
+
style: {
|
|
95
|
+
fontSize: 10
|
|
96
|
+
},
|
|
97
|
+
onClick: onClearSection
|
|
98
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
99
|
+
src: _clearIcon.default,
|
|
100
|
+
height: 12,
|
|
101
|
+
width: 12,
|
|
102
|
+
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", {
|
|
104
|
+
className: (0, _clsx.default)(classes.sortGroupItem, {
|
|
105
|
+
[classes.highlight]: sortBy === _Sort.sortType.ALPHABET
|
|
106
|
+
}),
|
|
107
|
+
onClick: () => {
|
|
108
|
+
onSortFacet(_Sort.sortType.ALPHABET);
|
|
109
|
+
}
|
|
110
|
+
}, "Sort alphabetically"), /*#__PURE__*/_react.default.createElement("span", {
|
|
111
|
+
className: (0, _clsx.default)(classes.sortGroupItemCounts, {
|
|
112
|
+
[classes.highlight]: sortBy === _Sort.sortType.NUMERIC
|
|
113
|
+
}),
|
|
114
|
+
onClick: () => {
|
|
115
|
+
onSortFacet(_Sort.sortType.NUMERIC);
|
|
116
|
+
}
|
|
117
|
+
}, "Sort by count"))), /*#__PURE__*/_react.default.createElement(_FilterItems.default, {
|
|
118
|
+
facet: facet,
|
|
119
|
+
sortBy: sortBy
|
|
120
|
+
})), !expand && type === _Types.InputTypes.CHECKBOX && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.List, {
|
|
121
|
+
id: "filter_Items"
|
|
122
|
+
}, /*#__PURE__*/_react.default.createElement(_FilterItems.default, {
|
|
123
|
+
facet: displayFacet
|
|
124
|
+
}))), !expand && selectedItems.length > limitCheckBoxCount && /*#__PURE__*/_react.default.createElement("div", {
|
|
125
|
+
className: classes.showMore,
|
|
126
|
+
onClick: onExpandFacet
|
|
127
|
+
}, "...expand to see all selections"));
|
|
128
|
+
};
|
|
129
|
+
var _default = (0, _core.withStyles)(_FacetStyle.default)(FacetView);
|
|
130
|
+
exports.default = _default;
|
|
@@ -0,0 +1,30 @@
|
|
|
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 _FacetView = _interopRequireDefault(require("./FacetView"));
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
const ReduxFacetView = props => /*#__PURE__*/_react.default.createElement(_FacetView.default, props);
|
|
13
|
+
const mapStateToProps = state => {
|
|
14
|
+
var _state$localFind, _state$localFind2;
|
|
15
|
+
return {
|
|
16
|
+
filterState: state.statusReducer.filterState,
|
|
17
|
+
autoComplete: (state === null || state === void 0 ? void 0 : (_state$localFind = state.localFind) === null || _state$localFind === void 0 ? void 0 : _state$localFind.autocomplete) || [],
|
|
18
|
+
upload: (state === null || state === void 0 ? void 0 : (_state$localFind2 = state.localFind) === null || _state$localFind2 === void 0 ? void 0 : _state$localFind2.upload) || []
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
const mapDispatchToProps = dispatch => ({
|
|
22
|
+
onClearFacetSection: facet => {
|
|
23
|
+
dispatch((0, _Actions.clearFacetSection)(facet));
|
|
24
|
+
},
|
|
25
|
+
onClearSliderSection: facet => {
|
|
26
|
+
dispatch((0, _Actions.clearSliderSection)(facet));
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ReduxFacetView);
|
|
30
|
+
exports.default = _default;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 25.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
+
viewBox="0 0 12 12" style="enable-background:new 0 0 12 12;" xml:space="preserve">
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#638FB5;}
|
|
7
|
+
</style>
|
|
8
|
+
<g>
|
|
9
|
+
<path class="st0" d="M11.74,5.98c0-3.17-2.56-5.73-5.73-5.74c-1.6,0-3.13,0.67-4.21,1.84V1.01c0-0.42-0.34-0.77-0.77-0.77
|
|
10
|
+
S0.26,0.59,0.26,1.01v3.06c0,0.42,0.34,0.77,0.77,0.77h3.06c0.42,0,0.77-0.34,0.77-0.77S4.52,3.3,4.09,3.3H2.76
|
|
11
|
+
c1.48-1.79,4.13-2.04,5.92-0.56s2.04,4.13,0.56,5.92C8.45,9.63,7.26,10.19,6,10.19l0,0c-0.42,0-0.77,0.34-0.77,0.77
|
|
12
|
+
c0,0.42,0.34,0.77,0.77,0.77h0.02C9.18,11.72,11.74,9.15,11.74,5.98z"/>
|
|
13
|
+
</g>
|
|
14
|
+
</svg>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _default = () => ({
|
|
8
|
+
sortGroup: {
|
|
9
|
+
paddingTop: '10px',
|
|
10
|
+
marginBottom: '5px',
|
|
11
|
+
borderTop: '1px solid #B1B1B1',
|
|
12
|
+
textAlign: 'left',
|
|
13
|
+
marginLeft: '-5px'
|
|
14
|
+
},
|
|
15
|
+
sortGroupIcon: {
|
|
16
|
+
cursor: 'pointer',
|
|
17
|
+
fontFamily: 'Nunito',
|
|
18
|
+
fontSize: '10px',
|
|
19
|
+
marginRight: '12px',
|
|
20
|
+
marginLeft: '16px'
|
|
21
|
+
},
|
|
22
|
+
sortGroupItem: {
|
|
23
|
+
cursor: 'pointer',
|
|
24
|
+
fontFamily: 'Nunito',
|
|
25
|
+
fontSize: '10px',
|
|
26
|
+
marginRight: '32px'
|
|
27
|
+
},
|
|
28
|
+
sortGroupItemCounts: {
|
|
29
|
+
cursor: 'pointer',
|
|
30
|
+
fontFamily: 'Nunito',
|
|
31
|
+
fontSize: '10px',
|
|
32
|
+
float: 'right',
|
|
33
|
+
marginRight: '10px',
|
|
34
|
+
marginTop: '5px'
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
exports.default = _default;
|
|
@@ -0,0 +1,53 @@
|
|
|
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 _ReduxCheckbox = _interopRequireDefault(require("./checkbox/ReduxCheckbox"));
|
|
9
|
+
var _ReduxSlider = _interopRequireDefault(require("./slider/ReduxSlider"));
|
|
10
|
+
var _Types = require("./Types");
|
|
11
|
+
var _Sort = require("../../utils/Sort");
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
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; }
|
|
14
|
+
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; }
|
|
15
|
+
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; }
|
|
16
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
17
|
+
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); }
|
|
18
|
+
const FilterItems = _ref => {
|
|
19
|
+
let {
|
|
20
|
+
facet,
|
|
21
|
+
sortBy
|
|
22
|
+
} = _ref;
|
|
23
|
+
const {
|
|
24
|
+
type,
|
|
25
|
+
datafield,
|
|
26
|
+
section
|
|
27
|
+
} = facet;
|
|
28
|
+
const sortFilters = (0, _Sort.sortBySection)(_objectSpread(_objectSpread({}, facet), {}, {
|
|
29
|
+
sortBy
|
|
30
|
+
}));
|
|
31
|
+
const filterItems = () => {
|
|
32
|
+
switch (type) {
|
|
33
|
+
case _Types.InputTypes.CHECKBOX:
|
|
34
|
+
return sortFilters.map((item, index) => /*#__PURE__*/_react.default.createElement(_ReduxCheckbox.default, {
|
|
35
|
+
checkboxItem: _objectSpread(_objectSpread({}, item), {}, {
|
|
36
|
+
index,
|
|
37
|
+
section
|
|
38
|
+
}),
|
|
39
|
+
datafield: datafield,
|
|
40
|
+
facet: facet
|
|
41
|
+
}));
|
|
42
|
+
case _Types.InputTypes.SLIDER:
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement(_ReduxSlider.default, {
|
|
44
|
+
facet: facet
|
|
45
|
+
});
|
|
46
|
+
default:
|
|
47
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, filterItems());
|
|
51
|
+
};
|
|
52
|
+
var _default = FilterItems;
|
|
53
|
+
exports.default = _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.silderTypes = exports.InputTypes = void 0;
|
|
7
|
+
const InputTypes = {
|
|
8
|
+
CHECKBOX: 'checkbox',
|
|
9
|
+
SLIDER: 'slider',
|
|
10
|
+
LOCAL_SEARCH: 'local_search'
|
|
11
|
+
};
|
|
12
|
+
exports.InputTypes = InputTypes;
|
|
13
|
+
const silderTypes = {
|
|
14
|
+
INPUT_MIN: 'INPUT_MIN',
|
|
15
|
+
INPUT_MAX: 'INPUT_MAX'
|
|
16
|
+
};
|
|
17
|
+
exports.silderTypes = silderTypes;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _default = () => ({
|
|
8
|
+
listItemGutters: {
|
|
9
|
+
padding: '10px 20px 10px 0px'
|
|
10
|
+
},
|
|
11
|
+
checkboxRoot: {
|
|
12
|
+
marginLeft: '5px',
|
|
13
|
+
height: 12
|
|
14
|
+
},
|
|
15
|
+
panelDetailText: {
|
|
16
|
+
color: '#323232',
|
|
17
|
+
fontFamily: 'Nunito',
|
|
18
|
+
fontSize: '14px',
|
|
19
|
+
fontWeight: '200'
|
|
20
|
+
},
|
|
21
|
+
panelSubjectText: {
|
|
22
|
+
color: '#323232',
|
|
23
|
+
fontFamily: 'Nunito',
|
|
24
|
+
fontSize: '14px',
|
|
25
|
+
marginRight: '0px'
|
|
26
|
+
},
|
|
27
|
+
checkboxLabel: {
|
|
28
|
+
margin: '0'
|
|
29
|
+
},
|
|
30
|
+
checkboxName: {
|
|
31
|
+
margin: '0',
|
|
32
|
+
color: '#000000',
|
|
33
|
+
fontSize: '14px',
|
|
34
|
+
marginTop: '1.5px',
|
|
35
|
+
fontFamily: 'Nunito',
|
|
36
|
+
lineHeight: '120%'
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
exports.default = _default;
|