@collectionspace/cspace-public-browser 1.5.1
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/LICENSE.md +71 -0
- package/README.md +38 -0
- package/dist/cspacePublicBrowser.js +4680 -0
- package/dist/cspacePublicBrowser.min.js +2 -0
- package/dist/cspacePublicBrowser.min.js.LICENSE.txt +56 -0
- package/images/check.svg +3 -0
- package/images/close.svg +3 -0
- package/images/collapse.svg +3 -0
- package/images/collapseActive.svg +3 -0
- package/images/expand.svg +3 -0
- package/images/expandActive.svg +3 -0
- package/images/filter.svg +4 -0
- package/images/hideLeft.svg +4 -0
- package/images/linkBack.svg +4 -0
- package/images/linkDown.svg +4 -0
- package/images/linkNext.svg +4 -0
- package/images/linkPrev.svg +4 -0
- package/images/openNew.svg +4 -0
- package/images/search.svg +4 -0
- package/images/select.svg +4 -0
- package/images/top.svg +1 -0
- package/lib/actions/detailActions.js +177 -0
- package/lib/actions/filterActions.js +16 -0
- package/lib/actions/mediaActions.js +63 -0
- package/lib/actions/prefsActions.js +84 -0
- package/lib/actions/searchActions.js +140 -0
- package/lib/actions/searchEntryFormActions.js +19 -0
- package/lib/components/App.js +24 -0
- package/lib/components/detail/DetailNavBar.js +98 -0
- package/lib/components/detail/DetailPanel.js +171 -0
- package/lib/components/detail/DetailPanelContainer.js +22 -0
- package/lib/components/detail/ExhibitionSection.js +54 -0
- package/lib/components/detail/FieldList.js +95 -0
- package/lib/components/detail/FieldValueList.js +30 -0
- package/lib/components/detail/ImageGallery.js +137 -0
- package/lib/components/detail/ImageGalleryContainer.js +19 -0
- package/lib/components/detail/InstitutionHoldingList.js +155 -0
- package/lib/components/detail/InstitutionHoldingListContainer.js +22 -0
- package/lib/components/detail/InstitutionIndex.js +53 -0
- package/lib/components/detail/InstitutionIndexContainer.js +15 -0
- package/lib/components/detail/InstitutionSection.js +44 -0
- package/lib/components/detail/InstitutionSectionContainer.js +15 -0
- package/lib/components/layout/Fixed.js +26 -0
- package/lib/components/layout/IconButton.js +41 -0
- package/lib/components/layout/Panel.js +56 -0
- package/lib/components/layout/PanelContainer.js +19 -0
- package/lib/components/layout/PanelTitle.js +38 -0
- package/lib/components/layout/ScrollTopButton.js +70 -0
- package/lib/components/layout/ToggleFilterPanelButton.js +42 -0
- package/lib/components/pages/DetailPage.js +93 -0
- package/lib/components/pages/DetailPageContainer.js +20 -0
- package/lib/components/pages/RootPage.js +41 -0
- package/lib/components/pages/SearchPage.js +130 -0
- package/lib/components/pages/SearchPageContainer.js +23 -0
- package/lib/components/search/entry/SearchEntryForm.js +74 -0
- package/lib/components/search/entry/SearchEntryFormContainer.js +20 -0
- package/lib/components/search/entry/SearchEntryPanel.js +30 -0
- package/lib/components/search/entry/SearchQueryInput.js +89 -0
- package/lib/components/search/entry/SearchSubmitButton.js +22 -0
- package/lib/components/search/entry/SortSelect.js +89 -0
- package/lib/components/search/entry/SortSelectContainer.js +15 -0
- package/lib/components/search/result/ClearSearchParamsLink.js +42 -0
- package/lib/components/search/result/Filter.js +186 -0
- package/lib/components/search/result/FilterContainer.js +22 -0
- package/lib/components/search/result/FilterGroup.js +72 -0
- package/lib/components/search/result/FilterList.js +48 -0
- package/lib/components/search/result/FilterPanel.js +115 -0
- package/lib/components/search/result/FilterPanelContainer.js +16 -0
- package/lib/components/search/result/FilterSearchInput.js +63 -0
- package/lib/components/search/result/RemoveSearchParamLink.js +66 -0
- package/lib/components/search/result/SearchError.js +29 -0
- package/lib/components/search/result/SearchLoadMore.js +36 -0
- package/lib/components/search/result/SearchParamList.js +41 -0
- package/lib/components/search/result/SearchPending.js +21 -0
- package/lib/components/search/result/SearchResultImage.js +227 -0
- package/lib/components/search/result/SearchResultList.js +119 -0
- package/lib/components/search/result/SearchResultPanel.js +139 -0
- package/lib/components/search/result/SearchResultPanelContainer.js +23 -0
- package/lib/components/search/result/SearchResultStats.js +39 -0
- package/lib/components/search/result/SearchResultTile.js +61 -0
- package/lib/config/anthro.js +123 -0
- package/lib/config/bonsai.js +50 -0
- package/lib/config/botgarden.js +10 -0
- package/lib/config/default.js +530 -0
- package/lib/config/fcart.js +36 -0
- package/lib/config/herbarium.js +10 -0
- package/lib/config/index.js +53 -0
- package/lib/config/lhmc.js +10 -0
- package/lib/config/materials.js +982 -0
- package/lib/config/publicart.js +10 -0
- package/lib/constants/actionCodes.js +46 -0
- package/lib/constants/ids.js +12 -0
- package/lib/helpers/bodyClassName.js +11 -0
- package/lib/helpers/esQueryHelpers.js +206 -0
- package/lib/helpers/formatHelpers.js +293 -0
- package/lib/helpers/searchDimensions.js +28 -0
- package/lib/helpers/urlHelpers.js +43 -0
- package/lib/index.js +53 -0
- package/lib/intl/index.js +16 -0
- package/lib/reducers/detailReducer.js +145 -0
- package/lib/reducers/filterReducer.js +22 -0
- package/lib/reducers/index.js +66 -0
- package/lib/reducers/mediaReducer.js +43 -0
- package/lib/reducers/prefsReducer.js +27 -0
- package/lib/reducers/searchEntryFormReducer.js +24 -0
- package/lib/reducers/searchReducer.js +88 -0
- package/package.json +118 -0
- package/src/actions/detailActions.js +231 -0
- package/src/actions/filterActions.js +10 -0
- package/src/actions/mediaActions.js +65 -0
- package/src/actions/prefsActions.js +95 -0
- package/src/actions/searchActions.js +188 -0
- package/src/actions/searchEntryFormActions.js +15 -0
- package/src/components/App.jsx +18 -0
- package/src/components/detail/DetailNavBar.jsx +132 -0
- package/src/components/detail/DetailPanel.jsx +215 -0
- package/src/components/detail/DetailPanelContainer.js +29 -0
- package/src/components/detail/ExhibitionSection.jsx +71 -0
- package/src/components/detail/FieldList.jsx +122 -0
- package/src/components/detail/FieldValueList.jsx +31 -0
- package/src/components/detail/ImageGallery.jsx +153 -0
- package/src/components/detail/ImageGalleryContainer.js +17 -0
- package/src/components/detail/InstitutionHoldingList.jsx +188 -0
- package/src/components/detail/InstitutionHoldingListContainer.js +29 -0
- package/src/components/detail/InstitutionIndex.jsx +57 -0
- package/src/components/detail/InstitutionIndexContainer.js +11 -0
- package/src/components/detail/InstitutionSection.jsx +48 -0
- package/src/components/detail/InstitutionSectionContainer.js +11 -0
- package/src/components/layout/Fixed.jsx +29 -0
- package/src/components/layout/IconButton.jsx +41 -0
- package/src/components/layout/Panel.jsx +60 -0
- package/src/components/layout/PanelContainer.js +20 -0
- package/src/components/layout/PanelTitle.jsx +43 -0
- package/src/components/layout/ScrollTopButton.jsx +76 -0
- package/src/components/layout/ToggleFilterPanelButton.jsx +43 -0
- package/src/components/pages/DetailPage.jsx +101 -0
- package/src/components/pages/DetailPageContainer.js +18 -0
- package/src/components/pages/RootPage.jsx +37 -0
- package/src/components/pages/SearchPage.jsx +160 -0
- package/src/components/pages/SearchPageContainer.js +21 -0
- package/src/components/search/entry/SearchEntryForm.jsx +82 -0
- package/src/components/search/entry/SearchEntryFormContainer.js +22 -0
- package/src/components/search/entry/SearchEntryPanel.jsx +28 -0
- package/src/components/search/entry/SearchQueryInput.jsx +95 -0
- package/src/components/search/entry/SearchSubmitButton.jsx +22 -0
- package/src/components/search/entry/SortSelect.jsx +104 -0
- package/src/components/search/entry/SortSelectContainer.js +12 -0
- package/src/components/search/result/ClearSearchParamsLink.jsx +43 -0
- package/src/components/search/result/Filter.jsx +226 -0
- package/src/components/search/result/FilterContainer.js +20 -0
- package/src/components/search/result/FilterGroup.jsx +83 -0
- package/src/components/search/result/FilterList.jsx +51 -0
- package/src/components/search/result/FilterPanel.jsx +143 -0
- package/src/components/search/result/FilterPanelContainer.js +16 -0
- package/src/components/search/result/FilterSearchInput.jsx +68 -0
- package/src/components/search/result/RemoveSearchParamLink.jsx +79 -0
- package/src/components/search/result/SearchError.jsx +30 -0
- package/src/components/search/result/SearchLoadMore.jsx +37 -0
- package/src/components/search/result/SearchParamList.jsx +47 -0
- package/src/components/search/result/SearchPending.jsx +19 -0
- package/src/components/search/result/SearchResultImage.jsx +275 -0
- package/src/components/search/result/SearchResultList.jsx +144 -0
- package/src/components/search/result/SearchResultPanel.jsx +169 -0
- package/src/components/search/result/SearchResultPanelContainer.js +31 -0
- package/src/components/search/result/SearchResultStats.jsx +38 -0
- package/src/components/search/result/SearchResultTile.jsx +70 -0
- package/src/config/anthro.js +153 -0
- package/src/config/bonsai.js +50 -0
- package/src/config/botgarden.js +3 -0
- package/src/config/default.js +604 -0
- package/src/config/fcart.js +38 -0
- package/src/config/herbarium.js +3 -0
- package/src/config/index.js +51 -0
- package/src/config/lhmc.js +3 -0
- package/src/config/materials.js +1173 -0
- package/src/config/publicart.js +3 -0
- package/src/constants/actionCodes.js +26 -0
- package/src/constants/ids.js +3 -0
- package/src/helpers/bodyClassName.js +5 -0
- package/src/helpers/esQueryHelpers.js +224 -0
- package/src/helpers/formatHelpers.jsx +361 -0
- package/src/helpers/searchDimensions.js +21 -0
- package/src/helpers/urlHelpers.js +49 -0
- package/src/index.jsx +59 -0
- package/src/intl/index.js +16 -0
- package/src/reducers/detailReducer.js +201 -0
- package/src/reducers/filterReducer.js +16 -0
- package/src/reducers/index.js +56 -0
- package/src/reducers/mediaReducer.js +44 -0
- package/src/reducers/prefsReducer.js +24 -0
- package/src/reducers/searchEntryFormReducer.js +19 -0
- package/src/reducers/searchReducer.js +118 -0
- package/styles/colors.css +7 -0
- package/styles/cspace/DetailNavBar.css +17 -0
- package/styles/cspace/DetailPage.css +3 -0
- package/styles/cspace/DetailPanel.css +69 -0
- package/styles/cspace/ExhibitionSection.css +9 -0
- package/styles/cspace/FieldList.css +15 -0
- package/styles/cspace/FieldListField.css +7 -0
- package/styles/cspace/FieldListGroup.css +27 -0
- package/styles/cspace/FieldValueList.css +19 -0
- package/styles/cspace/Filter.css +64 -0
- package/styles/cspace/FilterGroup.css +21 -0
- package/styles/cspace/FilterPanel.css +45 -0
- package/styles/cspace/FilterSearchInput.css +13 -0
- package/styles/cspace/Fixed.css +8 -0
- package/styles/cspace/IconButton.css +11 -0
- package/styles/cspace/ImageGallery.css +43 -0
- package/styles/cspace/InstitutionHoldingList.css +109 -0
- package/styles/cspace/InstitutionIndex.css +13 -0
- package/styles/cspace/InstitutionSection.css +4 -0
- package/styles/cspace/Link.css +39 -0
- package/styles/cspace/Panel.css +53 -0
- package/styles/cspace/PanelTitle.css +48 -0
- package/styles/cspace/RemoveSearchParamLink.css +15 -0
- package/styles/cspace/RootPage.css +60 -0
- package/styles/cspace/ScrollTopButton.css +32 -0
- package/styles/cspace/SearchEntryForm.css +4 -0
- package/styles/cspace/SearchEntryPanel.css +11 -0
- package/styles/cspace/SearchPage.css +2 -0
- package/styles/cspace/SearchParamLink.css +21 -0
- package/styles/cspace/SearchParamList.css +6 -0
- package/styles/cspace/SearchQueryInput.css +30 -0
- package/styles/cspace/SearchResultImage.css +29 -0
- package/styles/cspace/SearchResultList.css +10 -0
- package/styles/cspace/SearchResultPanel.css +31 -0
- package/styles/cspace/SearchResultStats.css +4 -0
- package/styles/cspace/SearchResultTile.css +67 -0
- package/styles/cspace/SearchStatus.css +12 -0
- package/styles/cspace/SearchSubmitButton.css +3 -0
- package/styles/cspace/SortSelect.css +19 -0
- package/styles/cspace/ToggleFilterPanelButton.css +44 -0
- package/styles/dimensions.css +9 -0
|
@@ -0,0 +1,93 @@
|
|
|
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 _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _immutable = _interopRequireDefault(require("immutable"));
|
|
10
|
+
var _bodyClassName = _interopRequireDefault(require("../../helpers/bodyClassName"));
|
|
11
|
+
var _ScrollTopButton = _interopRequireDefault(require("../layout/ScrollTopButton"));
|
|
12
|
+
var _DetailPanelContainer = _interopRequireDefault(require("../detail/DetailPanelContainer"));
|
|
13
|
+
var _DetailPage = _interopRequireDefault(require("../../../styles/cspace/DetailPage.css"));
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
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; }
|
|
17
|
+
/* global window */
|
|
18
|
+
|
|
19
|
+
const propTypes = {
|
|
20
|
+
location: _propTypes.default.shape({
|
|
21
|
+
search: _propTypes.default.string.isRequired,
|
|
22
|
+
state: _propTypes.default.shape({
|
|
23
|
+
index: _propTypes.default.number
|
|
24
|
+
})
|
|
25
|
+
}).isRequired,
|
|
26
|
+
match: _propTypes.default.shape({
|
|
27
|
+
params: _propTypes.default.shape({
|
|
28
|
+
csid: _propTypes.default.string
|
|
29
|
+
})
|
|
30
|
+
}).isRequired,
|
|
31
|
+
params: _propTypes.default.instanceOf(_immutable.default.Map),
|
|
32
|
+
onLeave: _propTypes.default.func,
|
|
33
|
+
onLocationChange: _propTypes.default.func
|
|
34
|
+
};
|
|
35
|
+
const defaultProps = {
|
|
36
|
+
onLeave: () => undefined,
|
|
37
|
+
onLocationChange: () => undefined,
|
|
38
|
+
params: undefined
|
|
39
|
+
};
|
|
40
|
+
class DetailPage extends _react.Component {
|
|
41
|
+
componentDidMount() {
|
|
42
|
+
window.document.body.classList.add((0, _bodyClassName.default)(_DetailPage.default.common));
|
|
43
|
+
if (window.scrollTo) {
|
|
44
|
+
window.scrollTo({
|
|
45
|
+
left: 0,
|
|
46
|
+
top: 0
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
this.handleLocationChange();
|
|
50
|
+
}
|
|
51
|
+
componentDidUpdate(prevProps) {
|
|
52
|
+
const {
|
|
53
|
+
location
|
|
54
|
+
} = this.props;
|
|
55
|
+
const {
|
|
56
|
+
location: prevLocation
|
|
57
|
+
} = prevProps;
|
|
58
|
+
if (location !== prevLocation) {
|
|
59
|
+
this.handleLocationChange();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
componentWillUnmount() {
|
|
63
|
+
const {
|
|
64
|
+
onLeave
|
|
65
|
+
} = this.props;
|
|
66
|
+
window.document.body.classList.remove((0, _bodyClassName.default)(_DetailPage.default.common));
|
|
67
|
+
onLeave();
|
|
68
|
+
}
|
|
69
|
+
handleLocationChange() {
|
|
70
|
+
const {
|
|
71
|
+
location,
|
|
72
|
+
match,
|
|
73
|
+
onLocationChange
|
|
74
|
+
} = this.props;
|
|
75
|
+
onLocationChange(location, match);
|
|
76
|
+
}
|
|
77
|
+
render() {
|
|
78
|
+
const {
|
|
79
|
+
params
|
|
80
|
+
} = this.props;
|
|
81
|
+
if (!params) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
85
|
+
className: _DetailPage.default.common
|
|
86
|
+
}, /*#__PURE__*/_react.default.createElement(_DetailPanelContainer.default, {
|
|
87
|
+
params: params
|
|
88
|
+
}), /*#__PURE__*/_react.default.createElement(_ScrollTopButton.default, null));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.default = DetailPage;
|
|
92
|
+
DetailPage.propTypes = propTypes;
|
|
93
|
+
DetailPage.defaultProps = defaultProps;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _reactRedux = require("react-redux");
|
|
8
|
+
var _DetailPage = _interopRequireDefault(require("./DetailPage"));
|
|
9
|
+
var _detailActions = require("../../actions/detailActions");
|
|
10
|
+
var _reducers = require("../../reducers");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
const mapStateToProps = state => ({
|
|
13
|
+
params: (0, _reducers.getDetailParams)(state)
|
|
14
|
+
});
|
|
15
|
+
const mapDispatchToProps = {
|
|
16
|
+
onLeave: _detailActions.clearDetail,
|
|
17
|
+
onLocationChange: _detailActions.setDetailParams
|
|
18
|
+
};
|
|
19
|
+
var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_DetailPage.default);
|
|
20
|
+
exports.default = _default;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = RootPage;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactIntl = require("react-intl");
|
|
9
|
+
var _reactRouter = require("react-router");
|
|
10
|
+
var _reactHelmet = _interopRequireDefault(require("react-helmet"));
|
|
11
|
+
var _DetailPageContainer = _interopRequireDefault(require("./DetailPageContainer"));
|
|
12
|
+
var _SearchPageContainer = _interopRequireDefault(require("./SearchPageContainer"));
|
|
13
|
+
var _config = _interopRequireDefault(require("../../config"));
|
|
14
|
+
var _RootPage = _interopRequireDefault(require("../../../styles/cspace/RootPage.css"));
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
const messages = (0, _reactIntl.defineMessages)({
|
|
17
|
+
title: {
|
|
18
|
+
"id": "RootPage.title",
|
|
19
|
+
"defaultMessage": "Collection Browser"
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
function RootPage() {
|
|
23
|
+
const intl = (0, _reactIntl.useIntl)();
|
|
24
|
+
const title = intl.formatMessage(messages.title);
|
|
25
|
+
const detailPath = _config.default.get('detailPath');
|
|
26
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
27
|
+
className: _RootPage.default.common
|
|
28
|
+
}, /*#__PURE__*/_react.default.createElement(_reactHelmet.default, {
|
|
29
|
+
defaultTitle: title,
|
|
30
|
+
titleTemplate: `%s | ${title}`
|
|
31
|
+
}, /*#__PURE__*/_react.default.createElement("meta", {
|
|
32
|
+
name: "viewport",
|
|
33
|
+
content: "width=device-width"
|
|
34
|
+
})), /*#__PURE__*/_react.default.createElement(_reactRouter.Switch, null, /*#__PURE__*/_react.default.createElement(_reactRouter.Route, {
|
|
35
|
+
path: "/search",
|
|
36
|
+
component: _SearchPageContainer.default
|
|
37
|
+
}), /*#__PURE__*/_react.default.createElement(_reactRouter.Route, {
|
|
38
|
+
path: `/${detailPath}/:csid`,
|
|
39
|
+
component: _DetailPageContainer.default
|
|
40
|
+
})));
|
|
41
|
+
}
|
|
@@ -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 _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _reactHelmet = _interopRequireDefault(require("react-helmet"));
|
|
10
|
+
var _reactIntl = require("react-intl");
|
|
11
|
+
var _reactRouter = require("react-router");
|
|
12
|
+
var _immutable = _interopRequireDefault(require("immutable"));
|
|
13
|
+
var _bodyClassName = _interopRequireDefault(require("../../helpers/bodyClassName"));
|
|
14
|
+
var _Fixed = _interopRequireDefault(require("../layout/Fixed"));
|
|
15
|
+
var _FilterPanelContainer = _interopRequireDefault(require("../search/result/FilterPanelContainer"));
|
|
16
|
+
var _SearchEntryPanel = _interopRequireDefault(require("../search/entry/SearchEntryPanel"));
|
|
17
|
+
var _SearchResultPanelContainer = _interopRequireDefault(require("../search/result/SearchResultPanelContainer"));
|
|
18
|
+
var _ScrollTopButton = _interopRequireDefault(require("../layout/ScrollTopButton"));
|
|
19
|
+
var _ToggleFilterPanelButton = _interopRequireDefault(require("../layout/ToggleFilterPanelButton"));
|
|
20
|
+
var _ids = require("../../constants/ids");
|
|
21
|
+
var _SearchPage = _interopRequireDefault(require("../../../styles/cspace/SearchPage.css"));
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
24
|
+
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; }
|
|
25
|
+
/* global window */
|
|
26
|
+
|
|
27
|
+
const propTypes = {
|
|
28
|
+
intl: _propTypes.default.shape({
|
|
29
|
+
formatMessage: _propTypes.default.func.isRequired
|
|
30
|
+
}).isRequired,
|
|
31
|
+
location: _propTypes.default.shape({
|
|
32
|
+
search: _propTypes.default.string
|
|
33
|
+
}).isRequired,
|
|
34
|
+
isFilterPanelExpanded: _propTypes.default.bool,
|
|
35
|
+
onLocationChange: _propTypes.default.func,
|
|
36
|
+
onTogglePanelButtonClick: _propTypes.default.func,
|
|
37
|
+
params: _propTypes.default.instanceOf(_immutable.default.Map)
|
|
38
|
+
};
|
|
39
|
+
const defaultProps = {
|
|
40
|
+
isFilterPanelExpanded: false,
|
|
41
|
+
onLocationChange: () => undefined,
|
|
42
|
+
onTogglePanelButtonClick: () => undefined,
|
|
43
|
+
params: undefined
|
|
44
|
+
};
|
|
45
|
+
const messages = (0, _reactIntl.defineMessages)({
|
|
46
|
+
title: {
|
|
47
|
+
"id": "SearchPage.title",
|
|
48
|
+
"defaultMessage": "Search"
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
class SearchPage extends _react.Component {
|
|
52
|
+
constructor() {
|
|
53
|
+
super();
|
|
54
|
+
this.handleFilterPanelApi = this.handleFilterPanelApi.bind(this);
|
|
55
|
+
this.handleSearchResultListHitsUpdated = this.handleSearchResultListHitsUpdated.bind(this);
|
|
56
|
+
this.handleToggleFilterPanelButtonClick = this.handleToggleFilterPanelButtonClick.bind(this);
|
|
57
|
+
}
|
|
58
|
+
componentDidMount() {
|
|
59
|
+
window.document.body.classList.add((0, _bodyClassName.default)(_SearchPage.default.common));
|
|
60
|
+
if (window.scrollTo) {
|
|
61
|
+
window.scrollTo({
|
|
62
|
+
left: 0,
|
|
63
|
+
top: 0
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
this.handleLocationChange();
|
|
67
|
+
}
|
|
68
|
+
componentDidUpdate(prevProps) {
|
|
69
|
+
const {
|
|
70
|
+
location
|
|
71
|
+
} = this.props;
|
|
72
|
+
const {
|
|
73
|
+
location: prevLocation
|
|
74
|
+
} = prevProps;
|
|
75
|
+
if (location !== prevLocation) {
|
|
76
|
+
this.handleLocationChange();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
componentWillUnmount() {
|
|
80
|
+
window.document.body.classList.remove((0, _bodyClassName.default)(_SearchPage.default.common));
|
|
81
|
+
}
|
|
82
|
+
handleFilterPanelApi(api) {
|
|
83
|
+
this.filterPanelApi = api;
|
|
84
|
+
}
|
|
85
|
+
handleLocationChange() {
|
|
86
|
+
const {
|
|
87
|
+
location,
|
|
88
|
+
onLocationChange
|
|
89
|
+
} = this.props;
|
|
90
|
+
onLocationChange(location);
|
|
91
|
+
}
|
|
92
|
+
handleSearchResultListHitsUpdated() {
|
|
93
|
+
if (this.filterPanelApi) {
|
|
94
|
+
this.filterPanelApi.setHeight();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
handleToggleFilterPanelButtonClick() {
|
|
98
|
+
const {
|
|
99
|
+
onTogglePanelButtonClick
|
|
100
|
+
} = this.props;
|
|
101
|
+
onTogglePanelButtonClick(_ids.FILTER_PANEL_ID);
|
|
102
|
+
}
|
|
103
|
+
render() {
|
|
104
|
+
const {
|
|
105
|
+
intl,
|
|
106
|
+
isFilterPanelExpanded,
|
|
107
|
+
params
|
|
108
|
+
} = this.props;
|
|
109
|
+
if (!params) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
const title = intl.formatMessage(messages.title);
|
|
113
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
114
|
+
className: _SearchPage.default.common
|
|
115
|
+
}, /*#__PURE__*/_react.default.createElement(_reactHelmet.default, null, /*#__PURE__*/_react.default.createElement("title", null, title)), /*#__PURE__*/_react.default.createElement(_Fixed.default, null, /*#__PURE__*/_react.default.createElement(_SearchEntryPanel.default, null), /*#__PURE__*/_react.default.createElement(_ToggleFilterPanelButton.default, {
|
|
116
|
+
isFilterPanelExpanded: isFilterPanelExpanded,
|
|
117
|
+
onClick: this.handleToggleFilterPanelButtonClick
|
|
118
|
+
}), /*#__PURE__*/_react.default.createElement(_FilterPanelContainer.default, {
|
|
119
|
+
api: this.handleFilterPanelApi,
|
|
120
|
+
isExpanded: isFilterPanelExpanded
|
|
121
|
+
})), /*#__PURE__*/_react.default.createElement(_SearchResultPanelContainer.default, {
|
|
122
|
+
params: params,
|
|
123
|
+
onHitsUpdated: this.handleSearchResultListHitsUpdated
|
|
124
|
+
}), /*#__PURE__*/_react.default.createElement(_ScrollTopButton.default, null));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
SearchPage.propTypes = propTypes;
|
|
128
|
+
SearchPage.defaultProps = defaultProps;
|
|
129
|
+
var _default = (0, _reactIntl.injectIntl)((0, _reactRouter.withRouter)(SearchPage));
|
|
130
|
+
exports.default = _default;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _reactRedux = require("react-redux");
|
|
8
|
+
var _SearchPage = _interopRequireDefault(require("./SearchPage"));
|
|
9
|
+
var _prefsActions = require("../../actions/prefsActions");
|
|
10
|
+
var _searchActions = require("../../actions/searchActions");
|
|
11
|
+
var _ids = require("../../constants/ids");
|
|
12
|
+
var _reducers = require("../../reducers");
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
const mapStateToProps = state => ({
|
|
15
|
+
isFilterPanelExpanded: (0, _reducers.isPanelExpanded)(state, _ids.FILTER_PANEL_ID),
|
|
16
|
+
params: (0, _reducers.getSearchParams)(state)
|
|
17
|
+
});
|
|
18
|
+
const mapDispatchToProps = {
|
|
19
|
+
onLocationChange: _searchActions.setSearchParams,
|
|
20
|
+
onTogglePanelButtonClick: _prefsActions.togglePanel
|
|
21
|
+
};
|
|
22
|
+
var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_SearchPage.default);
|
|
23
|
+
exports.default = _default;
|
|
@@ -0,0 +1,74 @@
|
|
|
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 _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _reactRouter = require("react-router");
|
|
10
|
+
var _immutable = _interopRequireDefault(require("immutable"));
|
|
11
|
+
var _SearchQueryInput = _interopRequireDefault(require("./SearchQueryInput"));
|
|
12
|
+
var _ids = require("../../../constants/ids");
|
|
13
|
+
var _SearchEntryForm = _interopRequireDefault(require("../../../../styles/cspace/SearchEntryForm.css"));
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
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; }
|
|
17
|
+
const propTypes = {
|
|
18
|
+
history: _propTypes.default.shape({
|
|
19
|
+
push: _propTypes.default.func
|
|
20
|
+
}).isRequired,
|
|
21
|
+
onCommit: _propTypes.default.func,
|
|
22
|
+
onSubmit: _propTypes.default.func,
|
|
23
|
+
params: _propTypes.default.instanceOf(_immutable.default.Map)
|
|
24
|
+
};
|
|
25
|
+
const defaultProps = {
|
|
26
|
+
onCommit: () => undefined,
|
|
27
|
+
onSubmit: () => undefined,
|
|
28
|
+
params: _immutable.default.Map()
|
|
29
|
+
};
|
|
30
|
+
class SearchEntryForm extends _react.Component {
|
|
31
|
+
constructor() {
|
|
32
|
+
super();
|
|
33
|
+
this.handleInputCommit = this.handleInputCommit.bind(this);
|
|
34
|
+
this.handleRef = this.handleRef.bind(this);
|
|
35
|
+
this.handleSubmit = this.handleSubmit.bind(this);
|
|
36
|
+
}
|
|
37
|
+
handleInputCommit(id, value) {
|
|
38
|
+
const {
|
|
39
|
+
onCommit
|
|
40
|
+
} = this.props;
|
|
41
|
+
onCommit(id, value);
|
|
42
|
+
}
|
|
43
|
+
handleRef(ref) {
|
|
44
|
+
this.domNode = ref;
|
|
45
|
+
}
|
|
46
|
+
handleSubmit(event) {
|
|
47
|
+
const {
|
|
48
|
+
history,
|
|
49
|
+
onSubmit
|
|
50
|
+
} = this.props;
|
|
51
|
+
event.preventDefault();
|
|
52
|
+
onSubmit(history);
|
|
53
|
+
}
|
|
54
|
+
render() {
|
|
55
|
+
const {
|
|
56
|
+
params
|
|
57
|
+
} = this.props;
|
|
58
|
+
return /*#__PURE__*/_react.default.createElement("form", {
|
|
59
|
+
className: _SearchEntryForm.default.common,
|
|
60
|
+
ref: this.handleRef,
|
|
61
|
+
role: "search",
|
|
62
|
+
onSubmit: this.handleSubmit
|
|
63
|
+
}, /*#__PURE__*/_react.default.createElement(_SearchQueryInput.default, {
|
|
64
|
+
id: _ids.SEARCH_QUERY_ID,
|
|
65
|
+
showSubmitButton: true,
|
|
66
|
+
value: params.get(_ids.SEARCH_QUERY_ID),
|
|
67
|
+
onCommit: this.handleInputCommit
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
SearchEntryForm.propTypes = propTypes;
|
|
72
|
+
SearchEntryForm.defaultProps = defaultProps;
|
|
73
|
+
var _default = (0, _reactRouter.withRouter)(SearchEntryForm);
|
|
74
|
+
exports.default = _default;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _reactRedux = require("react-redux");
|
|
8
|
+
var _SearchEntryForm = _interopRequireDefault(require("./SearchEntryForm"));
|
|
9
|
+
var _reducers = require("../../../reducers");
|
|
10
|
+
var _searchEntryFormActions = require("../../../actions/searchEntryFormActions");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
const mapStateToProps = state => ({
|
|
13
|
+
params: (0, _reducers.getSearchEntryFormParams)(state)
|
|
14
|
+
});
|
|
15
|
+
const mapDispatchToProps = {
|
|
16
|
+
onCommit: _searchEntryFormActions.setSearchEntryFormParam,
|
|
17
|
+
onSubmit: _searchEntryFormActions.applySearchEntryForm
|
|
18
|
+
};
|
|
19
|
+
var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_SearchEntryForm.default);
|
|
20
|
+
exports.default = _default;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = SearchEntryPanel;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _immutable = _interopRequireDefault(require("immutable"));
|
|
10
|
+
var _SearchEntryFormContainer = _interopRequireDefault(require("./SearchEntryFormContainer"));
|
|
11
|
+
var _SearchEntryPanel = _interopRequireDefault(require("../../../../styles/cspace/SearchEntryPanel.css"));
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
const propTypes = {
|
|
14
|
+
params: _propTypes.default.instanceOf(_immutable.default.Map)
|
|
15
|
+
};
|
|
16
|
+
const defaultProps = {
|
|
17
|
+
params: undefined
|
|
18
|
+
};
|
|
19
|
+
function SearchEntryPanel(props) {
|
|
20
|
+
const {
|
|
21
|
+
params
|
|
22
|
+
} = props;
|
|
23
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
24
|
+
className: _SearchEntryPanel.default.common
|
|
25
|
+
}, /*#__PURE__*/_react.default.createElement(_SearchEntryFormContainer.default, {
|
|
26
|
+
params: params
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
SearchEntryPanel.propTypes = propTypes;
|
|
30
|
+
SearchEntryPanel.defaultProps = defaultProps;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.messages = exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _reactIntl = require("react-intl");
|
|
10
|
+
var _SearchSubmitButton = _interopRequireDefault(require("./SearchSubmitButton"));
|
|
11
|
+
var _SearchQueryInput = _interopRequireDefault(require("../../../../styles/cspace/SearchQueryInput.css"));
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
+
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; }
|
|
15
|
+
const propTypes = {
|
|
16
|
+
id: _propTypes.default.string.isRequired,
|
|
17
|
+
intl: _propTypes.default.shape({
|
|
18
|
+
formatMessage: _propTypes.default.func.isRequired
|
|
19
|
+
}).isRequired,
|
|
20
|
+
onCommit: _propTypes.default.func,
|
|
21
|
+
showSubmitButton: _propTypes.default.bool,
|
|
22
|
+
value: _propTypes.default.string
|
|
23
|
+
};
|
|
24
|
+
const defaultProps = {
|
|
25
|
+
onCommit: () => undefined,
|
|
26
|
+
showSubmitButton: false,
|
|
27
|
+
value: ''
|
|
28
|
+
};
|
|
29
|
+
const messages = (0, _reactIntl.defineMessages)({
|
|
30
|
+
label: {
|
|
31
|
+
"id": "searchQueryInput.label",
|
|
32
|
+
"defaultMessage": "Search collection"
|
|
33
|
+
},
|
|
34
|
+
placeholder: {
|
|
35
|
+
"id": "searchQueryInput.placeholder",
|
|
36
|
+
"defaultMessage": "Search collection"
|
|
37
|
+
},
|
|
38
|
+
shortLabel: {
|
|
39
|
+
"id": "searchQueryInput.shortLabel",
|
|
40
|
+
"defaultMessage": "Search"
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
exports.messages = messages;
|
|
44
|
+
class SearchQueryInput extends _react.Component {
|
|
45
|
+
constructor() {
|
|
46
|
+
super();
|
|
47
|
+
this.handleChange = this.handleChange.bind(this);
|
|
48
|
+
}
|
|
49
|
+
handleChange(event) {
|
|
50
|
+
const {
|
|
51
|
+
id,
|
|
52
|
+
onCommit
|
|
53
|
+
} = this.props;
|
|
54
|
+
onCommit(id, event.target.value);
|
|
55
|
+
}
|
|
56
|
+
commit() {
|
|
57
|
+
const {
|
|
58
|
+
id,
|
|
59
|
+
onCommit
|
|
60
|
+
} = this.props;
|
|
61
|
+
if (this.inputDomNode) {
|
|
62
|
+
onCommit(id, this.inputDomNode.value);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
render() {
|
|
66
|
+
const {
|
|
67
|
+
id,
|
|
68
|
+
intl,
|
|
69
|
+
showSubmitButton,
|
|
70
|
+
value
|
|
71
|
+
} = this.props;
|
|
72
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
73
|
+
className: _SearchQueryInput.default.common
|
|
74
|
+
}, /*#__PURE__*/_react.default.createElement("input", {
|
|
75
|
+
"aria-label": intl.formatMessage(messages.label),
|
|
76
|
+
autoComplete: "off",
|
|
77
|
+
autoCorrect: "off",
|
|
78
|
+
name: id,
|
|
79
|
+
placeholder: intl.formatMessage(messages.placeholder),
|
|
80
|
+
type: "search",
|
|
81
|
+
value: value,
|
|
82
|
+
onChange: this.handleChange
|
|
83
|
+
}), showSubmitButton && /*#__PURE__*/_react.default.createElement(_SearchSubmitButton.default, null));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
SearchQueryInput.propTypes = propTypes;
|
|
87
|
+
SearchQueryInput.defaultProps = defaultProps;
|
|
88
|
+
var _default = (0, _reactIntl.injectIntl)(SearchQueryInput);
|
|
89
|
+
exports.default = _default;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = SearchSubmitButton;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactIntl = require("react-intl");
|
|
9
|
+
var _SearchSubmitButton = _interopRequireDefault(require("../../../../styles/cspace/SearchSubmitButton.css"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
const messages = (0, _reactIntl.defineMessages)({
|
|
12
|
+
submit: {
|
|
13
|
+
"id": "searchEntryForm.submit",
|
|
14
|
+
"defaultMessage": "Search"
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
function SearchSubmitButton() {
|
|
18
|
+
return /*#__PURE__*/_react.default.createElement("button", {
|
|
19
|
+
className: _SearchSubmitButton.default.common,
|
|
20
|
+
type: "submit"
|
|
21
|
+
}, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, messages.submit));
|
|
22
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
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 _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _reactRouter = require("react-router");
|
|
10
|
+
var _reactIntl = require("react-intl");
|
|
11
|
+
var _config = _interopRequireDefault(require("../../../config"));
|
|
12
|
+
var _SortSelect = _interopRequireDefault(require("../../../../styles/cspace/SortSelect.css"));
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
+
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; }
|
|
16
|
+
const propTypes = {
|
|
17
|
+
history: _propTypes.default.shape({
|
|
18
|
+
push: _propTypes.default.func
|
|
19
|
+
}).isRequired,
|
|
20
|
+
intl: _propTypes.default.shape({
|
|
21
|
+
formatMessage: _propTypes.default.func.isRequired
|
|
22
|
+
}).isRequired,
|
|
23
|
+
onCommit: _propTypes.default.func,
|
|
24
|
+
value: _propTypes.default.string
|
|
25
|
+
};
|
|
26
|
+
const defaultProps = {
|
|
27
|
+
onCommit: () => undefined,
|
|
28
|
+
value: _config.default.get('defaultSortOrder')
|
|
29
|
+
};
|
|
30
|
+
const messages = (0, _reactIntl.defineMessages)({
|
|
31
|
+
label: {
|
|
32
|
+
"id": "sortSelect.label",
|
|
33
|
+
"defaultMessage": "Sort results by"
|
|
34
|
+
},
|
|
35
|
+
bestmatch: {
|
|
36
|
+
"id": "sortSelect.bestmatch",
|
|
37
|
+
"defaultMessage": "Best match"
|
|
38
|
+
},
|
|
39
|
+
atoz: {
|
|
40
|
+
"id": "sortSelect.atoz",
|
|
41
|
+
"defaultMessage": "A to Z"
|
|
42
|
+
},
|
|
43
|
+
ztoa: {
|
|
44
|
+
"id": "sortSelect.ztoa",
|
|
45
|
+
"defaultMessage": "Z to A"
|
|
46
|
+
},
|
|
47
|
+
newest: {
|
|
48
|
+
"id": "sortSelect.newest",
|
|
49
|
+
"defaultMessage": "Newest"
|
|
50
|
+
},
|
|
51
|
+
oldest: {
|
|
52
|
+
"id": "sortSelect.oldest",
|
|
53
|
+
"defaultMessage": "Oldest"
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
class SortSelect extends _react.Component {
|
|
57
|
+
constructor() {
|
|
58
|
+
super();
|
|
59
|
+
this.handleChange = this.handleChange.bind(this);
|
|
60
|
+
}
|
|
61
|
+
handleChange(event) {
|
|
62
|
+
const {
|
|
63
|
+
history,
|
|
64
|
+
onCommit
|
|
65
|
+
} = this.props;
|
|
66
|
+
onCommit(history, event.target.value);
|
|
67
|
+
}
|
|
68
|
+
render() {
|
|
69
|
+
const {
|
|
70
|
+
intl,
|
|
71
|
+
value
|
|
72
|
+
} = this.props;
|
|
73
|
+
return /*#__PURE__*/_react.default.createElement("label", {
|
|
74
|
+
htmlFor: "sort-select"
|
|
75
|
+
}, "Sort by", ' ', /*#__PURE__*/_react.default.createElement("select", {
|
|
76
|
+
className: _SortSelect.default.common,
|
|
77
|
+
id: "sort-select",
|
|
78
|
+
value: value,
|
|
79
|
+
onChange: this.handleChange
|
|
80
|
+
}, ['bestmatch', 'atoz', 'ztoa', 'newest', 'oldest'].map(sortOrder => /*#__PURE__*/_react.default.createElement("option", {
|
|
81
|
+
key: sortOrder,
|
|
82
|
+
value: sortOrder
|
|
83
|
+
}, intl.formatMessage(messages[sortOrder])))));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
SortSelect.propTypes = propTypes;
|
|
87
|
+
SortSelect.defaultProps = defaultProps;
|
|
88
|
+
var _default = (0, _reactRouter.withRouter)((0, _reactIntl.injectIntl)(SortSelect));
|
|
89
|
+
exports.default = _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _reactRedux = require("react-redux");
|
|
8
|
+
var _SortSelect = _interopRequireDefault(require("./SortSelect"));
|
|
9
|
+
var _searchActions = require("../../../actions/searchActions");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
const mapDispatchToProps = {
|
|
12
|
+
onCommit: _searchActions.applySortOrder
|
|
13
|
+
};
|
|
14
|
+
var _default = (0, _reactRedux.connect)(undefined, mapDispatchToProps)(_SortSelect.default);
|
|
15
|
+
exports.default = _default;
|