@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,155 @@
|
|
|
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 _reactIntl = require("react-intl");
|
|
10
|
+
var _FieldList = _interopRequireDefault(require("./FieldList"));
|
|
11
|
+
var _ImageGalleryContainer = _interopRequireDefault(require("./ImageGalleryContainer"));
|
|
12
|
+
var _PanelTitle = _interopRequireDefault(require("../layout/PanelTitle"));
|
|
13
|
+
var _config = _interopRequireDefault(require("../../config"));
|
|
14
|
+
var _InstitutionHoldingList = _interopRequireDefault(require("../../../styles/cspace/InstitutionHoldingList.css"));
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
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); }
|
|
17
|
+
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; }
|
|
18
|
+
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); } /* global window */
|
|
19
|
+
const messages = (0, _reactIntl.defineMessages)({
|
|
20
|
+
title: {
|
|
21
|
+
"id": "institutionHoldingList.title",
|
|
22
|
+
"defaultMessage": "Samples at {title}"
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const propTypes = {
|
|
26
|
+
hits: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
27
|
+
_source: _propTypes.default.shape({
|
|
28
|
+
'collectionspace_core:uri': _propTypes.default.string
|
|
29
|
+
})
|
|
30
|
+
})),
|
|
31
|
+
institutionConfig: _propTypes.default.shape({
|
|
32
|
+
title: _propTypes.default.string
|
|
33
|
+
}).isRequired,
|
|
34
|
+
institutionId: _propTypes.default.string.isRequired,
|
|
35
|
+
isExpanded: _propTypes.default.bool,
|
|
36
|
+
isSelected: _propTypes.default.bool,
|
|
37
|
+
expandPanel: _propTypes.default.func,
|
|
38
|
+
referenceValue: _propTypes.default.string.isRequired,
|
|
39
|
+
togglePanel: _propTypes.default.func
|
|
40
|
+
};
|
|
41
|
+
const defaultProps = {
|
|
42
|
+
hits: [],
|
|
43
|
+
isExpanded: false,
|
|
44
|
+
isSelected: false,
|
|
45
|
+
expandPanel: () => undefined,
|
|
46
|
+
togglePanel: () => undefined
|
|
47
|
+
};
|
|
48
|
+
const renderResult = data => {
|
|
49
|
+
const {
|
|
50
|
+
'collectionspace_core:uri': uri
|
|
51
|
+
} = data;
|
|
52
|
+
return /*#__PURE__*/_react.default.createElement("li", {
|
|
53
|
+
key: uri
|
|
54
|
+
}, /*#__PURE__*/_react.default.createElement(_FieldList.default, {
|
|
55
|
+
config: _config.default.get('institutionHoldings').detailFields,
|
|
56
|
+
data: data
|
|
57
|
+
}));
|
|
58
|
+
};
|
|
59
|
+
class InstitutionHoldingList extends _react.Component {
|
|
60
|
+
constructor() {
|
|
61
|
+
super();
|
|
62
|
+
this.ref = /*#__PURE__*/_react.default.createRef();
|
|
63
|
+
}
|
|
64
|
+
componentDidMount() {
|
|
65
|
+
const {
|
|
66
|
+
isSelected
|
|
67
|
+
} = this.props;
|
|
68
|
+
if (isSelected) {
|
|
69
|
+
this.focus();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
componentDidUpdate(prevProps) {
|
|
73
|
+
const {
|
|
74
|
+
isSelected: prevIsSelected
|
|
75
|
+
} = prevProps;
|
|
76
|
+
const {
|
|
77
|
+
isSelected
|
|
78
|
+
} = this.props;
|
|
79
|
+
if (isSelected && !prevIsSelected) {
|
|
80
|
+
this.focus();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
focus() {
|
|
84
|
+
const {
|
|
85
|
+
expandPanel
|
|
86
|
+
} = this.props;
|
|
87
|
+
const domNode = this.ref.current;
|
|
88
|
+
if (domNode) {
|
|
89
|
+
window.setTimeout(() => {
|
|
90
|
+
expandPanel();
|
|
91
|
+
domNode.scrollIntoView();
|
|
92
|
+
}, 0);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
renderContent() {
|
|
96
|
+
const {
|
|
97
|
+
hits,
|
|
98
|
+
institutionId,
|
|
99
|
+
isExpanded,
|
|
100
|
+
referenceValue
|
|
101
|
+
} = this.props;
|
|
102
|
+
if (isExpanded) {
|
|
103
|
+
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_ImageGalleryContainer.default, {
|
|
104
|
+
institutionId: institutionId,
|
|
105
|
+
referenceValue: referenceValue
|
|
106
|
+
}), /*#__PURE__*/_react.default.createElement("ul", null, hits.map(hit => renderResult(hit._source))));
|
|
107
|
+
}
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
renderTitle() {
|
|
111
|
+
const {
|
|
112
|
+
hits,
|
|
113
|
+
institutionConfig,
|
|
114
|
+
isExpanded,
|
|
115
|
+
togglePanel
|
|
116
|
+
} = this.props;
|
|
117
|
+
const {
|
|
118
|
+
title
|
|
119
|
+
} = institutionConfig;
|
|
120
|
+
const formattedTitle = /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage
|
|
121
|
+
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
122
|
+
, _extends({}, messages.title, {
|
|
123
|
+
tagName: "h2",
|
|
124
|
+
values: {
|
|
125
|
+
title,
|
|
126
|
+
count: hits.length
|
|
127
|
+
}
|
|
128
|
+
}));
|
|
129
|
+
return /*#__PURE__*/_react.default.createElement(_PanelTitle.default, {
|
|
130
|
+
isExpanded: isExpanded,
|
|
131
|
+
title: formattedTitle,
|
|
132
|
+
onClick: togglePanel
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
render() {
|
|
136
|
+
const {
|
|
137
|
+
hits
|
|
138
|
+
} = this.props;
|
|
139
|
+
if (hits.length === 0) {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
const {
|
|
143
|
+
institutionId,
|
|
144
|
+
isExpanded
|
|
145
|
+
} = this.props;
|
|
146
|
+
return /*#__PURE__*/_react.default.createElement("section", {
|
|
147
|
+
className: isExpanded ? _InstitutionHoldingList.default.expanded : _InstitutionHoldingList.default.collapsed,
|
|
148
|
+
id: institutionId,
|
|
149
|
+
ref: this.ref
|
|
150
|
+
}, this.renderTitle(), this.renderContent());
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.default = InstitutionHoldingList;
|
|
154
|
+
InstitutionHoldingList.propTypes = propTypes;
|
|
155
|
+
InstitutionHoldingList.defaultProps = defaultProps;
|
|
@@ -0,0 +1,22 @@
|
|
|
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 _InstitutionHoldingList = _interopRequireDefault(require("./InstitutionHoldingList"));
|
|
9
|
+
var _prefsActions = require("../../actions/prefsActions");
|
|
10
|
+
var _reducers = require("../../reducers");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
const panelId = institutionId => `SampleList-${institutionId}`;
|
|
13
|
+
const mapStateToProps = (state, ownProps) => ({
|
|
14
|
+
hits: (0, _reducers.getDetailInstitutionHits)(state, ownProps.institutionId),
|
|
15
|
+
isExpanded: (0, _reducers.isPanelExpanded)(state, panelId(ownProps.institutionId))
|
|
16
|
+
});
|
|
17
|
+
const mapDispatchToProps = (dispatch, ownProps) => ({
|
|
18
|
+
expandPanel: () => dispatch((0, _prefsActions.expandPanel)(panelId(ownProps.institutionId))),
|
|
19
|
+
togglePanel: () => dispatch((0, _prefsActions.togglePanel)(panelId(ownProps.institutionId)))
|
|
20
|
+
});
|
|
21
|
+
var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_InstitutionHoldingList.default);
|
|
22
|
+
exports.default = _default;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = InstitutionIndex;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _immutable = _interopRequireDefault(require("immutable"));
|
|
10
|
+
var _get = _interopRequireDefault(require("lodash/get"));
|
|
11
|
+
var _reactIntl = require("react-intl");
|
|
12
|
+
var _config = _interopRequireDefault(require("../../config"));
|
|
13
|
+
var _Link = _interopRequireDefault(require("../../../styles/cspace/Link.css"));
|
|
14
|
+
var _InstitutionIndex = _interopRequireDefault(require("../../../styles/cspace/InstitutionIndex.css"));
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
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); }
|
|
17
|
+
const messages = (0, _reactIntl.defineMessages)({
|
|
18
|
+
label: {
|
|
19
|
+
"id": "institutionIndex.label",
|
|
20
|
+
"defaultMessage": "Holdings at {title}"
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const propTypes = {
|
|
24
|
+
holdingInstitutions: _propTypes.default.instanceOf(_immutable.default.Set).isRequired
|
|
25
|
+
};
|
|
26
|
+
function InstitutionIndex(props) {
|
|
27
|
+
const {
|
|
28
|
+
holdingInstitutions
|
|
29
|
+
} = props;
|
|
30
|
+
const institutions = _config.default.get('institutions');
|
|
31
|
+
const links = holdingInstitutions.map(institutionId => {
|
|
32
|
+
const title = (0, _get.default)(institutions, [institutionId, 'title']);
|
|
33
|
+
return /*#__PURE__*/_react.default.createElement("li", {
|
|
34
|
+
key: institutionId
|
|
35
|
+
}, /*#__PURE__*/_react.default.createElement("a", {
|
|
36
|
+
className: _Link.default.hash,
|
|
37
|
+
href: `#${institutionId}`
|
|
38
|
+
}, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage
|
|
39
|
+
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
40
|
+
, _extends({}, messages.label, {
|
|
41
|
+
values: {
|
|
42
|
+
title
|
|
43
|
+
}
|
|
44
|
+
}))));
|
|
45
|
+
});
|
|
46
|
+
if (links.size === 0) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
return /*#__PURE__*/_react.default.createElement("nav", {
|
|
50
|
+
className: _InstitutionIndex.default.common
|
|
51
|
+
}, /*#__PURE__*/_react.default.createElement("ul", null, links));
|
|
52
|
+
}
|
|
53
|
+
InstitutionIndex.propTypes = propTypes;
|
|
@@ -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 _InstitutionIndex = _interopRequireDefault(require("./InstitutionIndex"));
|
|
9
|
+
var _reducers = require("../../reducers");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
const mapStateToProps = state => ({
|
|
12
|
+
holdingInstitutions: (0, _reducers.getDetailHoldingInstitutions)(state)
|
|
13
|
+
});
|
|
14
|
+
var _default = (0, _reactRedux.connect)(mapStateToProps)(_InstitutionIndex.default);
|
|
15
|
+
exports.default = _default;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = InstitutionSection;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _immutable = _interopRequireDefault(require("immutable"));
|
|
10
|
+
var _InstitutionHoldingListContainer = _interopRequireDefault(require("./InstitutionHoldingListContainer"));
|
|
11
|
+
var _InstitutionSection = _interopRequireDefault(require("../../../styles/cspace/InstitutionSection.css"));
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
const propTypes = {
|
|
14
|
+
config: _propTypes.default.objectOf(_propTypes.default.object).isRequired,
|
|
15
|
+
holdingInstitutions: _propTypes.default.instanceOf(_immutable.default.Set).isRequired,
|
|
16
|
+
referenceValue: _propTypes.default.string.isRequired,
|
|
17
|
+
selectedInstitutionId: _propTypes.default.string
|
|
18
|
+
};
|
|
19
|
+
const defaultProps = {
|
|
20
|
+
selectedInstitutionId: undefined
|
|
21
|
+
};
|
|
22
|
+
function InstitutionSection(props) {
|
|
23
|
+
const {
|
|
24
|
+
config,
|
|
25
|
+
holdingInstitutions,
|
|
26
|
+
referenceValue,
|
|
27
|
+
selectedInstitutionId
|
|
28
|
+
} = props;
|
|
29
|
+
if (!holdingInstitutions || holdingInstitutions.size === 0) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const institutions = holdingInstitutions.map(institutionId => /*#__PURE__*/_react.default.createElement(_InstitutionHoldingListContainer.default, {
|
|
33
|
+
institutionConfig: config[institutionId],
|
|
34
|
+
institutionId: institutionId,
|
|
35
|
+
isSelected: institutionId === selectedInstitutionId,
|
|
36
|
+
key: institutionId,
|
|
37
|
+
referenceValue: referenceValue
|
|
38
|
+
}));
|
|
39
|
+
return /*#__PURE__*/_react.default.createElement("section", {
|
|
40
|
+
className: _InstitutionSection.default.common
|
|
41
|
+
}, institutions);
|
|
42
|
+
}
|
|
43
|
+
InstitutionSection.propTypes = propTypes;
|
|
44
|
+
InstitutionSection.defaultProps = defaultProps;
|
|
@@ -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 _InstitutionSection = _interopRequireDefault(require("./InstitutionSection"));
|
|
9
|
+
var _reducers = require("../../reducers");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
const mapStateToProps = state => ({
|
|
12
|
+
holdingInstitutions: (0, _reducers.getDetailHoldingInstitutions)(state)
|
|
13
|
+
});
|
|
14
|
+
var _default = (0, _reactRedux.connect)(mapStateToProps)(_InstitutionSection.default);
|
|
15
|
+
exports.default = _default;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = Fixed;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _Fixed = _interopRequireDefault(require("../../../styles/cspace/Fixed.css"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
const propTypes = {
|
|
12
|
+
children: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.arrayOf(_propTypes.default.element)])
|
|
13
|
+
};
|
|
14
|
+
const defaultProps = {
|
|
15
|
+
children: undefined
|
|
16
|
+
};
|
|
17
|
+
function Fixed(props) {
|
|
18
|
+
const {
|
|
19
|
+
children
|
|
20
|
+
} = props;
|
|
21
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
22
|
+
className: _Fixed.default.common
|
|
23
|
+
}, children);
|
|
24
|
+
}
|
|
25
|
+
Fixed.propTypes = propTypes;
|
|
26
|
+
Fixed.defaultProps = defaultProps;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = IconButton;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
var _reactIntl = require("react-intl");
|
|
11
|
+
var _IconButton = _interopRequireDefault(require("../../../styles/cspace/IconButton.css"));
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
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); }
|
|
14
|
+
const propTypes = {
|
|
15
|
+
className: _propTypes.default.string,
|
|
16
|
+
labelMessage: _propTypes.default.shape({
|
|
17
|
+
id: _propTypes.default.string.isRequired,
|
|
18
|
+
defaultMessage: _propTypes.default.string.isRequired
|
|
19
|
+
}).isRequired,
|
|
20
|
+
onClick: _propTypes.default.func
|
|
21
|
+
};
|
|
22
|
+
const defaultProps = {
|
|
23
|
+
className: undefined,
|
|
24
|
+
onClick: undefined
|
|
25
|
+
};
|
|
26
|
+
function IconButton(props) {
|
|
27
|
+
const {
|
|
28
|
+
className,
|
|
29
|
+
labelMessage,
|
|
30
|
+
onClick
|
|
31
|
+
} = props;
|
|
32
|
+
return /*#__PURE__*/_react.default.createElement("button", {
|
|
33
|
+
className: (0, _classnames.default)(className, _IconButton.default.common),
|
|
34
|
+
type: "button",
|
|
35
|
+
onClick: onClick
|
|
36
|
+
}, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, _extends({}, labelMessage, {
|
|
37
|
+
tagName: "span"
|
|
38
|
+
})));
|
|
39
|
+
}
|
|
40
|
+
IconButton.propTypes = propTypes;
|
|
41
|
+
IconButton.defaultProps = defaultProps;
|
|
@@ -0,0 +1,56 @@
|
|
|
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 _Panel = _interopRequireDefault(require("../../../styles/cspace/Panel.css"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
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); }
|
|
12
|
+
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; }
|
|
13
|
+
const propTypes = {
|
|
14
|
+
id: _propTypes.default.string.isRequired,
|
|
15
|
+
children: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.arrayOf(_propTypes.default.element)]),
|
|
16
|
+
title: _propTypes.default.element,
|
|
17
|
+
isExpanded: _propTypes.default.bool,
|
|
18
|
+
onHeaderClick: _propTypes.default.func
|
|
19
|
+
};
|
|
20
|
+
const defaultProps = {
|
|
21
|
+
children: undefined,
|
|
22
|
+
isExpanded: false,
|
|
23
|
+
onHeaderClick: () => undefined,
|
|
24
|
+
title: undefined
|
|
25
|
+
};
|
|
26
|
+
class Panel extends _react.Component {
|
|
27
|
+
constructor() {
|
|
28
|
+
super();
|
|
29
|
+
this.handleHeaderButtonClick = this.handleHeaderButtonClick.bind(this);
|
|
30
|
+
}
|
|
31
|
+
handleHeaderButtonClick() {
|
|
32
|
+
const {
|
|
33
|
+
id,
|
|
34
|
+
onHeaderClick
|
|
35
|
+
} = this.props;
|
|
36
|
+
onHeaderClick(id);
|
|
37
|
+
}
|
|
38
|
+
render() {
|
|
39
|
+
const {
|
|
40
|
+
children,
|
|
41
|
+
isExpanded,
|
|
42
|
+
title
|
|
43
|
+
} = this.props;
|
|
44
|
+
const className = isExpanded ? _Panel.default.expanded : _Panel.default.collapsed;
|
|
45
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
46
|
+
className: className
|
|
47
|
+
}, /*#__PURE__*/_react.default.createElement("header", null, /*#__PURE__*/_react.default.createElement("button", {
|
|
48
|
+
onClick: this.handleHeaderButtonClick,
|
|
49
|
+
"aria-expanded": isExpanded,
|
|
50
|
+
type: "button"
|
|
51
|
+
}, title)), isExpanded ? children : undefined);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.default = Panel;
|
|
55
|
+
Panel.propTypes = propTypes;
|
|
56
|
+
Panel.defaultProps = defaultProps;
|
|
@@ -0,0 +1,19 @@
|
|
|
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 _Panel = _interopRequireDefault(require("./Panel"));
|
|
9
|
+
var _reducers = require("../../reducers");
|
|
10
|
+
var _prefsActions = require("../../actions/prefsActions");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
const mapStateToProps = (state, ownProps) => ({
|
|
13
|
+
isExpanded: (0, _reducers.isPanelExpanded)(state, ownProps.id)
|
|
14
|
+
});
|
|
15
|
+
const mapDispatchToProps = {
|
|
16
|
+
onHeaderClick: _prefsActions.togglePanel
|
|
17
|
+
};
|
|
18
|
+
var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_Panel.default);
|
|
19
|
+
exports.default = _default;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = PanelTitle;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _PanelTitle = _interopRequireDefault(require("../../../styles/cspace/PanelTitle.css"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
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); }
|
|
12
|
+
const propTypes = {
|
|
13
|
+
isExpanded: _propTypes.default.bool,
|
|
14
|
+
styles: _propTypes.default.shape({
|
|
15
|
+
expanded: _propTypes.default.string,
|
|
16
|
+
collapsed: _propTypes.default.string
|
|
17
|
+
}),
|
|
18
|
+
title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.element]).isRequired
|
|
19
|
+
};
|
|
20
|
+
const defaultProps = {
|
|
21
|
+
styles: _PanelTitle.default,
|
|
22
|
+
isExpanded: false
|
|
23
|
+
};
|
|
24
|
+
function PanelTitle(props) {
|
|
25
|
+
const {
|
|
26
|
+
isExpanded,
|
|
27
|
+
styles,
|
|
28
|
+
title,
|
|
29
|
+
...remainingProps
|
|
30
|
+
} = props;
|
|
31
|
+
return /*#__PURE__*/_react.default.createElement("button", _extends({
|
|
32
|
+
className: isExpanded ? styles.expanded : styles.collapsed,
|
|
33
|
+
type: "button"
|
|
34
|
+
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
35
|
+
}, remainingProps), /*#__PURE__*/_react.default.createElement("div", null, title));
|
|
36
|
+
}
|
|
37
|
+
PanelTitle.propTypes = propTypes;
|
|
38
|
+
PanelTitle.defaultProps = defaultProps;
|
|
@@ -0,0 +1,70 @@
|
|
|
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 _reactIntl = require("react-intl");
|
|
9
|
+
var _IconButton = _interopRequireDefault(require("./IconButton"));
|
|
10
|
+
var _ScrollTopButton = _interopRequireDefault(require("../../../styles/cspace/ScrollTopButton.css"));
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
14
|
+
/* global window */
|
|
15
|
+
|
|
16
|
+
const messages = (0, _reactIntl.defineMessages)({
|
|
17
|
+
label: {
|
|
18
|
+
"id": "scrollTopButton.label",
|
|
19
|
+
"defaultMessage": "Back to top"
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const scrollTop = () => {
|
|
23
|
+
if (window.scrollTo) {
|
|
24
|
+
window.scrollTo({
|
|
25
|
+
left: 0,
|
|
26
|
+
top: 0
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
class ScrollTopButton extends _react.Component {
|
|
31
|
+
constructor() {
|
|
32
|
+
super();
|
|
33
|
+
this.handleScroll = this.handleScroll.bind(this);
|
|
34
|
+
this.state = {
|
|
35
|
+
visible: false
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
componentDidMount() {
|
|
39
|
+
window.addEventListener('scroll', this.handleScroll);
|
|
40
|
+
this.setVisibility();
|
|
41
|
+
}
|
|
42
|
+
componentWillUnmount() {
|
|
43
|
+
window.removeEventListener('scroll', this.handleScroll);
|
|
44
|
+
}
|
|
45
|
+
handleScroll() {
|
|
46
|
+
this.setVisibility();
|
|
47
|
+
}
|
|
48
|
+
setVisibility() {
|
|
49
|
+
const {
|
|
50
|
+
visible
|
|
51
|
+
} = this.state;
|
|
52
|
+
const nextVisible = window.document.scrollingElement.scrollTop > 0;
|
|
53
|
+
if (visible !== nextVisible) {
|
|
54
|
+
this.setState({
|
|
55
|
+
visible: nextVisible
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
render() {
|
|
60
|
+
const {
|
|
61
|
+
visible
|
|
62
|
+
} = this.state;
|
|
63
|
+
return /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
64
|
+
className: visible ? _ScrollTopButton.default.common : _ScrollTopButton.default.hidden,
|
|
65
|
+
labelMessage: messages.label,
|
|
66
|
+
onClick: scrollTop
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.default = ScrollTopButton;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = ToggleFilterPanelButton;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _reactIntl = require("react-intl");
|
|
10
|
+
var _IconButton = _interopRequireDefault(require("./IconButton"));
|
|
11
|
+
var _ToggleFilterPanelButton = _interopRequireDefault(require("../../../styles/cspace/ToggleFilterPanelButton.css"));
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
const propTypes = {
|
|
14
|
+
isFilterPanelExpanded: _propTypes.default.bool,
|
|
15
|
+
onClick: _propTypes.default.func.isRequired
|
|
16
|
+
};
|
|
17
|
+
const defaultProps = {
|
|
18
|
+
isFilterPanelExpanded: false
|
|
19
|
+
};
|
|
20
|
+
const messages = (0, _reactIntl.defineMessages)({
|
|
21
|
+
hideLabel: {
|
|
22
|
+
"id": "toggleFilterPanelButton.hide.label",
|
|
23
|
+
"defaultMessage": "Hide filters"
|
|
24
|
+
},
|
|
25
|
+
showLabel: {
|
|
26
|
+
"id": "toggleFilterPanelButton.show.label",
|
|
27
|
+
"defaultMessage": "Show filters"
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
function ToggleFilterPanelButton(props) {
|
|
31
|
+
const {
|
|
32
|
+
isFilterPanelExpanded,
|
|
33
|
+
onClick
|
|
34
|
+
} = props;
|
|
35
|
+
return /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
36
|
+
className: isFilterPanelExpanded ? _ToggleFilterPanelButton.default.expanded : _ToggleFilterPanelButton.default.collapsed,
|
|
37
|
+
labelMessage: isFilterPanelExpanded ? messages.hideLabel : messages.showLabel,
|
|
38
|
+
onClick: onClick
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
ToggleFilterPanelButton.propTypes = propTypes;
|
|
42
|
+
ToggleFilterPanelButton.defaultProps = defaultProps;
|