@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.
Files changed (233) hide show
  1. package/LICENSE.md +71 -0
  2. package/README.md +38 -0
  3. package/dist/cspacePublicBrowser.js +4680 -0
  4. package/dist/cspacePublicBrowser.min.js +2 -0
  5. package/dist/cspacePublicBrowser.min.js.LICENSE.txt +56 -0
  6. package/images/check.svg +3 -0
  7. package/images/close.svg +3 -0
  8. package/images/collapse.svg +3 -0
  9. package/images/collapseActive.svg +3 -0
  10. package/images/expand.svg +3 -0
  11. package/images/expandActive.svg +3 -0
  12. package/images/filter.svg +4 -0
  13. package/images/hideLeft.svg +4 -0
  14. package/images/linkBack.svg +4 -0
  15. package/images/linkDown.svg +4 -0
  16. package/images/linkNext.svg +4 -0
  17. package/images/linkPrev.svg +4 -0
  18. package/images/openNew.svg +4 -0
  19. package/images/search.svg +4 -0
  20. package/images/select.svg +4 -0
  21. package/images/top.svg +1 -0
  22. package/lib/actions/detailActions.js +177 -0
  23. package/lib/actions/filterActions.js +16 -0
  24. package/lib/actions/mediaActions.js +63 -0
  25. package/lib/actions/prefsActions.js +84 -0
  26. package/lib/actions/searchActions.js +140 -0
  27. package/lib/actions/searchEntryFormActions.js +19 -0
  28. package/lib/components/App.js +24 -0
  29. package/lib/components/detail/DetailNavBar.js +98 -0
  30. package/lib/components/detail/DetailPanel.js +171 -0
  31. package/lib/components/detail/DetailPanelContainer.js +22 -0
  32. package/lib/components/detail/ExhibitionSection.js +54 -0
  33. package/lib/components/detail/FieldList.js +95 -0
  34. package/lib/components/detail/FieldValueList.js +30 -0
  35. package/lib/components/detail/ImageGallery.js +137 -0
  36. package/lib/components/detail/ImageGalleryContainer.js +19 -0
  37. package/lib/components/detail/InstitutionHoldingList.js +155 -0
  38. package/lib/components/detail/InstitutionHoldingListContainer.js +22 -0
  39. package/lib/components/detail/InstitutionIndex.js +53 -0
  40. package/lib/components/detail/InstitutionIndexContainer.js +15 -0
  41. package/lib/components/detail/InstitutionSection.js +44 -0
  42. package/lib/components/detail/InstitutionSectionContainer.js +15 -0
  43. package/lib/components/layout/Fixed.js +26 -0
  44. package/lib/components/layout/IconButton.js +41 -0
  45. package/lib/components/layout/Panel.js +56 -0
  46. package/lib/components/layout/PanelContainer.js +19 -0
  47. package/lib/components/layout/PanelTitle.js +38 -0
  48. package/lib/components/layout/ScrollTopButton.js +70 -0
  49. package/lib/components/layout/ToggleFilterPanelButton.js +42 -0
  50. package/lib/components/pages/DetailPage.js +93 -0
  51. package/lib/components/pages/DetailPageContainer.js +20 -0
  52. package/lib/components/pages/RootPage.js +41 -0
  53. package/lib/components/pages/SearchPage.js +130 -0
  54. package/lib/components/pages/SearchPageContainer.js +23 -0
  55. package/lib/components/search/entry/SearchEntryForm.js +74 -0
  56. package/lib/components/search/entry/SearchEntryFormContainer.js +20 -0
  57. package/lib/components/search/entry/SearchEntryPanel.js +30 -0
  58. package/lib/components/search/entry/SearchQueryInput.js +89 -0
  59. package/lib/components/search/entry/SearchSubmitButton.js +22 -0
  60. package/lib/components/search/entry/SortSelect.js +89 -0
  61. package/lib/components/search/entry/SortSelectContainer.js +15 -0
  62. package/lib/components/search/result/ClearSearchParamsLink.js +42 -0
  63. package/lib/components/search/result/Filter.js +186 -0
  64. package/lib/components/search/result/FilterContainer.js +22 -0
  65. package/lib/components/search/result/FilterGroup.js +72 -0
  66. package/lib/components/search/result/FilterList.js +48 -0
  67. package/lib/components/search/result/FilterPanel.js +115 -0
  68. package/lib/components/search/result/FilterPanelContainer.js +16 -0
  69. package/lib/components/search/result/FilterSearchInput.js +63 -0
  70. package/lib/components/search/result/RemoveSearchParamLink.js +66 -0
  71. package/lib/components/search/result/SearchError.js +29 -0
  72. package/lib/components/search/result/SearchLoadMore.js +36 -0
  73. package/lib/components/search/result/SearchParamList.js +41 -0
  74. package/lib/components/search/result/SearchPending.js +21 -0
  75. package/lib/components/search/result/SearchResultImage.js +227 -0
  76. package/lib/components/search/result/SearchResultList.js +119 -0
  77. package/lib/components/search/result/SearchResultPanel.js +139 -0
  78. package/lib/components/search/result/SearchResultPanelContainer.js +23 -0
  79. package/lib/components/search/result/SearchResultStats.js +39 -0
  80. package/lib/components/search/result/SearchResultTile.js +61 -0
  81. package/lib/config/anthro.js +123 -0
  82. package/lib/config/bonsai.js +50 -0
  83. package/lib/config/botgarden.js +10 -0
  84. package/lib/config/default.js +530 -0
  85. package/lib/config/fcart.js +36 -0
  86. package/lib/config/herbarium.js +10 -0
  87. package/lib/config/index.js +53 -0
  88. package/lib/config/lhmc.js +10 -0
  89. package/lib/config/materials.js +982 -0
  90. package/lib/config/publicart.js +10 -0
  91. package/lib/constants/actionCodes.js +46 -0
  92. package/lib/constants/ids.js +12 -0
  93. package/lib/helpers/bodyClassName.js +11 -0
  94. package/lib/helpers/esQueryHelpers.js +206 -0
  95. package/lib/helpers/formatHelpers.js +293 -0
  96. package/lib/helpers/searchDimensions.js +28 -0
  97. package/lib/helpers/urlHelpers.js +43 -0
  98. package/lib/index.js +53 -0
  99. package/lib/intl/index.js +16 -0
  100. package/lib/reducers/detailReducer.js +145 -0
  101. package/lib/reducers/filterReducer.js +22 -0
  102. package/lib/reducers/index.js +66 -0
  103. package/lib/reducers/mediaReducer.js +43 -0
  104. package/lib/reducers/prefsReducer.js +27 -0
  105. package/lib/reducers/searchEntryFormReducer.js +24 -0
  106. package/lib/reducers/searchReducer.js +88 -0
  107. package/package.json +118 -0
  108. package/src/actions/detailActions.js +231 -0
  109. package/src/actions/filterActions.js +10 -0
  110. package/src/actions/mediaActions.js +65 -0
  111. package/src/actions/prefsActions.js +95 -0
  112. package/src/actions/searchActions.js +188 -0
  113. package/src/actions/searchEntryFormActions.js +15 -0
  114. package/src/components/App.jsx +18 -0
  115. package/src/components/detail/DetailNavBar.jsx +132 -0
  116. package/src/components/detail/DetailPanel.jsx +215 -0
  117. package/src/components/detail/DetailPanelContainer.js +29 -0
  118. package/src/components/detail/ExhibitionSection.jsx +71 -0
  119. package/src/components/detail/FieldList.jsx +122 -0
  120. package/src/components/detail/FieldValueList.jsx +31 -0
  121. package/src/components/detail/ImageGallery.jsx +153 -0
  122. package/src/components/detail/ImageGalleryContainer.js +17 -0
  123. package/src/components/detail/InstitutionHoldingList.jsx +188 -0
  124. package/src/components/detail/InstitutionHoldingListContainer.js +29 -0
  125. package/src/components/detail/InstitutionIndex.jsx +57 -0
  126. package/src/components/detail/InstitutionIndexContainer.js +11 -0
  127. package/src/components/detail/InstitutionSection.jsx +48 -0
  128. package/src/components/detail/InstitutionSectionContainer.js +11 -0
  129. package/src/components/layout/Fixed.jsx +29 -0
  130. package/src/components/layout/IconButton.jsx +41 -0
  131. package/src/components/layout/Panel.jsx +60 -0
  132. package/src/components/layout/PanelContainer.js +20 -0
  133. package/src/components/layout/PanelTitle.jsx +43 -0
  134. package/src/components/layout/ScrollTopButton.jsx +76 -0
  135. package/src/components/layout/ToggleFilterPanelButton.jsx +43 -0
  136. package/src/components/pages/DetailPage.jsx +101 -0
  137. package/src/components/pages/DetailPageContainer.js +18 -0
  138. package/src/components/pages/RootPage.jsx +37 -0
  139. package/src/components/pages/SearchPage.jsx +160 -0
  140. package/src/components/pages/SearchPageContainer.js +21 -0
  141. package/src/components/search/entry/SearchEntryForm.jsx +82 -0
  142. package/src/components/search/entry/SearchEntryFormContainer.js +22 -0
  143. package/src/components/search/entry/SearchEntryPanel.jsx +28 -0
  144. package/src/components/search/entry/SearchQueryInput.jsx +95 -0
  145. package/src/components/search/entry/SearchSubmitButton.jsx +22 -0
  146. package/src/components/search/entry/SortSelect.jsx +104 -0
  147. package/src/components/search/entry/SortSelectContainer.js +12 -0
  148. package/src/components/search/result/ClearSearchParamsLink.jsx +43 -0
  149. package/src/components/search/result/Filter.jsx +226 -0
  150. package/src/components/search/result/FilterContainer.js +20 -0
  151. package/src/components/search/result/FilterGroup.jsx +83 -0
  152. package/src/components/search/result/FilterList.jsx +51 -0
  153. package/src/components/search/result/FilterPanel.jsx +143 -0
  154. package/src/components/search/result/FilterPanelContainer.js +16 -0
  155. package/src/components/search/result/FilterSearchInput.jsx +68 -0
  156. package/src/components/search/result/RemoveSearchParamLink.jsx +79 -0
  157. package/src/components/search/result/SearchError.jsx +30 -0
  158. package/src/components/search/result/SearchLoadMore.jsx +37 -0
  159. package/src/components/search/result/SearchParamList.jsx +47 -0
  160. package/src/components/search/result/SearchPending.jsx +19 -0
  161. package/src/components/search/result/SearchResultImage.jsx +275 -0
  162. package/src/components/search/result/SearchResultList.jsx +144 -0
  163. package/src/components/search/result/SearchResultPanel.jsx +169 -0
  164. package/src/components/search/result/SearchResultPanelContainer.js +31 -0
  165. package/src/components/search/result/SearchResultStats.jsx +38 -0
  166. package/src/components/search/result/SearchResultTile.jsx +70 -0
  167. package/src/config/anthro.js +153 -0
  168. package/src/config/bonsai.js +50 -0
  169. package/src/config/botgarden.js +3 -0
  170. package/src/config/default.js +604 -0
  171. package/src/config/fcart.js +38 -0
  172. package/src/config/herbarium.js +3 -0
  173. package/src/config/index.js +51 -0
  174. package/src/config/lhmc.js +3 -0
  175. package/src/config/materials.js +1173 -0
  176. package/src/config/publicart.js +3 -0
  177. package/src/constants/actionCodes.js +26 -0
  178. package/src/constants/ids.js +3 -0
  179. package/src/helpers/bodyClassName.js +5 -0
  180. package/src/helpers/esQueryHelpers.js +224 -0
  181. package/src/helpers/formatHelpers.jsx +361 -0
  182. package/src/helpers/searchDimensions.js +21 -0
  183. package/src/helpers/urlHelpers.js +49 -0
  184. package/src/index.jsx +59 -0
  185. package/src/intl/index.js +16 -0
  186. package/src/reducers/detailReducer.js +201 -0
  187. package/src/reducers/filterReducer.js +16 -0
  188. package/src/reducers/index.js +56 -0
  189. package/src/reducers/mediaReducer.js +44 -0
  190. package/src/reducers/prefsReducer.js +24 -0
  191. package/src/reducers/searchEntryFormReducer.js +19 -0
  192. package/src/reducers/searchReducer.js +118 -0
  193. package/styles/colors.css +7 -0
  194. package/styles/cspace/DetailNavBar.css +17 -0
  195. package/styles/cspace/DetailPage.css +3 -0
  196. package/styles/cspace/DetailPanel.css +69 -0
  197. package/styles/cspace/ExhibitionSection.css +9 -0
  198. package/styles/cspace/FieldList.css +15 -0
  199. package/styles/cspace/FieldListField.css +7 -0
  200. package/styles/cspace/FieldListGroup.css +27 -0
  201. package/styles/cspace/FieldValueList.css +19 -0
  202. package/styles/cspace/Filter.css +64 -0
  203. package/styles/cspace/FilterGroup.css +21 -0
  204. package/styles/cspace/FilterPanel.css +45 -0
  205. package/styles/cspace/FilterSearchInput.css +13 -0
  206. package/styles/cspace/Fixed.css +8 -0
  207. package/styles/cspace/IconButton.css +11 -0
  208. package/styles/cspace/ImageGallery.css +43 -0
  209. package/styles/cspace/InstitutionHoldingList.css +109 -0
  210. package/styles/cspace/InstitutionIndex.css +13 -0
  211. package/styles/cspace/InstitutionSection.css +4 -0
  212. package/styles/cspace/Link.css +39 -0
  213. package/styles/cspace/Panel.css +53 -0
  214. package/styles/cspace/PanelTitle.css +48 -0
  215. package/styles/cspace/RemoveSearchParamLink.css +15 -0
  216. package/styles/cspace/RootPage.css +60 -0
  217. package/styles/cspace/ScrollTopButton.css +32 -0
  218. package/styles/cspace/SearchEntryForm.css +4 -0
  219. package/styles/cspace/SearchEntryPanel.css +11 -0
  220. package/styles/cspace/SearchPage.css +2 -0
  221. package/styles/cspace/SearchParamLink.css +21 -0
  222. package/styles/cspace/SearchParamList.css +6 -0
  223. package/styles/cspace/SearchQueryInput.css +30 -0
  224. package/styles/cspace/SearchResultImage.css +29 -0
  225. package/styles/cspace/SearchResultList.css +10 -0
  226. package/styles/cspace/SearchResultPanel.css +31 -0
  227. package/styles/cspace/SearchResultStats.css +4 -0
  228. package/styles/cspace/SearchResultTile.css +67 -0
  229. package/styles/cspace/SearchStatus.css +12 -0
  230. package/styles/cspace/SearchSubmitButton.css +3 -0
  231. package/styles/cspace/SortSelect.css +19 -0
  232. package/styles/cspace/ToggleFilterPanelButton.css +44 -0
  233. package/styles/dimensions.css +9 -0
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = SearchResultTile;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _reactRouterDom = require("react-router-dom");
10
+ var _immutable = _interopRequireDefault(require("immutable"));
11
+ var _SearchResultImage = _interopRequireDefault(require("./SearchResultImage"));
12
+ var _config = _interopRequireDefault(require("../../../config"));
13
+ var _SearchResultTile = _interopRequireDefault(require("../../../../styles/cspace/SearchResultTile.css"));
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ const propTypes = {
16
+ gatewayUrl: _propTypes.default.string.isRequired,
17
+ index: _propTypes.default.number.isRequired,
18
+ loadImageImmediately: _propTypes.default.bool.isRequired,
19
+ params: _propTypes.default.instanceOf(_immutable.default.Map).isRequired,
20
+ result: _propTypes.default.instanceOf(_immutable.default.Map).isRequired
21
+ };
22
+ function SearchResultTile(props) {
23
+ const {
24
+ gatewayUrl,
25
+ loadImageImmediately,
26
+ index,
27
+ params,
28
+ result
29
+ } = props;
30
+ const detailPath = _config.default.get('detailPath');
31
+ const referenceField = _config.default.get('referenceField');
32
+ const tileTitleField = _config.default.get(['tileTitle', 'field']);
33
+ const tileTitleFormat = _config.default.get(['tileTitle', 'formatValue']);
34
+ const doc = result.get('_source');
35
+ const csid = doc.get('ecm:name');
36
+ const url = csid && `/${detailPath}/${csid}`;
37
+ const holdingInstitutions = doc.get('collectionspace_denorm:holdingInstitutions');
38
+ const mediaCsid = doc.getIn(['collectionspace_denorm:mediaCsid', 0]);
39
+ const referenceValue = doc.get(referenceField);
40
+ let title = doc.get(tileTitleField);
41
+ if (tileTitleFormat) {
42
+ title = tileTitleFormat(title);
43
+ }
44
+ return /*#__PURE__*/_react.default.createElement(_reactRouterDom.Link, {
45
+ className: _SearchResultTile.default.common,
46
+ to: {
47
+ pathname: url,
48
+ state: {
49
+ index,
50
+ searchParams: params.toJS()
51
+ }
52
+ }
53
+ }, /*#__PURE__*/_react.default.createElement(_SearchResultImage.default, {
54
+ gatewayUrl: gatewayUrl,
55
+ holdingInstitutions: holdingInstitutions,
56
+ loadImageImmediately: loadImageImmediately,
57
+ mediaCsid: mediaCsid,
58
+ referenceValue: referenceValue
59
+ }), /*#__PURE__*/_react.default.createElement("article", null, /*#__PURE__*/_react.default.createElement("h2", null, title)));
60
+ }
61
+ SearchResultTile.propTypes = propTypes;
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactIntl = require("react-intl");
8
+ var _formatHelpers = require("../helpers/formatHelpers");
9
+ var _default = {
10
+ gatewayUrl: 'http://localhost:8180/gateway/anthro',
11
+ filters: {
12
+ fields: {
13
+ objectProductionPeople: {
14
+ field: 'collectionobjects_common:objectProductionPeopleGroupList.objectProductionPeople.displayName'
15
+ },
16
+ taxon: {
17
+ field: 'collectionobjects_naturalhistory_extension:taxonomicIdentGroupList.taxon.displayName',
18
+ messages: (0, _reactIntl.defineMessages)({
19
+ label: {
20
+ "id": "filter.taxon.label",
21
+ "defaultMessage": "Taxon name"
22
+ },
23
+ shortLabel: {
24
+ "id": "filter.taxon.shortLabel",
25
+ "defaultMessage": "Taxon"
26
+ }
27
+ })
28
+ },
29
+ collectionYears: {
30
+ field: 'collectionspace_denorm:collectionYears',
31
+ type: 'histogram',
32
+ interval: 10,
33
+ formatValue: _formatHelpers.decade,
34
+ messages: (0, _reactIntl.defineMessages)({
35
+ label: {
36
+ "id": "filter.collectionYears.label",
37
+ "defaultMessage": "Collection date"
38
+ },
39
+ shortLabel: {
40
+ "id": "filter.collectionYears.shortLabel",
41
+ "defaultMessage": "Coll. date"
42
+ }
43
+ })
44
+ }
45
+ },
46
+ groups: {
47
+ group_collection: {
48
+ messages: (0, _reactIntl.defineMessages)({
49
+ label: {
50
+ "id": "filterGroup.group_collection.label",
51
+ "defaultMessage": "Collection"
52
+ }
53
+ }),
54
+ fields: ['collectionYears']
55
+ },
56
+ group_description: {
57
+ fields: ['material', 'technique', 'contentConcept', 'color', 'taxon']
58
+ }
59
+ },
60
+ layout: {
61
+ filters1: ['group_id', 'group_media', 'group_collection', 'group_description', 'group_production']
62
+ }
63
+ },
64
+ detailFields: {
65
+ fields: {
66
+ taxon: {
67
+ messages: (0, _reactIntl.defineMessages)({
68
+ label: {
69
+ "id": "detailField.taxon.label",
70
+ "defaultMessage": "Taxon name"
71
+ }
72
+ }),
73
+ field: 'collectionobjects_naturalhistory_extension:taxonomicIdentGroupList',
74
+ format: (0, _formatHelpers.listOf)((0, _formatHelpers.valueAt)({
75
+ path: 'taxon',
76
+ format: (0, _formatHelpers.filterLink)({
77
+ filterValueFormat: _formatHelpers.displayName
78
+ })
79
+ }))
80
+ },
81
+ fieldCollectionDate: {
82
+ messages: (0, _reactIntl.defineMessages)({
83
+ label: {
84
+ "id": "detailField.fieldCollectionDate.label",
85
+ "defaultMessage": "Date"
86
+ }
87
+ }),
88
+ field: 'collectionobjects_common:fieldCollectionDateGroup',
89
+ format: (0, _formatHelpers.valueAt)({
90
+ path: 'dateDisplayDate'
91
+ })
92
+ },
93
+ fieldCollector: {
94
+ messages: (0, _reactIntl.defineMessages)({
95
+ label: {
96
+ "id": "detailField.fieldCollector.label",
97
+ "defaultMessage": "Collector"
98
+ }
99
+ }),
100
+ field: 'collectionobjects_common:fieldCollectors',
101
+ format: (0, _formatHelpers.listOf)(_formatHelpers.displayName)
102
+ }
103
+ },
104
+ groups: {
105
+ group_collection: {
106
+ messages: (0, _reactIntl.defineMessages)({
107
+ label: {
108
+ "id": "detailGroup.group_collection.label",
109
+ "defaultMessage": "Collection"
110
+ }
111
+ }),
112
+ fields: ['fieldCollectionDate', 'fieldCollector']
113
+ },
114
+ group_description: {
115
+ fields: ['material', 'technique', 'contentConcept', 'measuredPart', 'creditLine', 'taxon']
116
+ }
117
+ },
118
+ layout: {
119
+ fields1: ['group_id', 'group_collection', 'group_description', 'group_production']
120
+ }
121
+ }
122
+ };
123
+ exports.default = _default;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactIntl = require("react-intl");
8
+ var _formatHelpers = require("../helpers/formatHelpers");
9
+ var _default = {
10
+ gatewayUrl: 'http://localhost:8180/gateway/bonsai',
11
+ messages: {
12
+ 'filter.objectProductionPerson.label': 'Original artist',
13
+ 'filter.objectProductionPerson.shortLabel': 'Original artist',
14
+ 'detailField.objectProductionPerson.label': 'Original artist'
15
+ },
16
+ detailFields: {
17
+ fields: {
18
+ originDate: {
19
+ messages: (0, _reactIntl.defineMessages)({
20
+ label: {
21
+ "id": "detailField.originDate.label",
22
+ "defaultMessage": "Date of origin"
23
+ }
24
+ }),
25
+ field: 'collectionobjects_common:objectProductionDateGroupList',
26
+ format: (0, _formatHelpers.valueAt)({
27
+ path: [0, 'dateDisplayDate']
28
+ })
29
+ },
30
+ trainingDate: {
31
+ messages: (0, _reactIntl.defineMessages)({
32
+ label: {
33
+ "id": "detailField.trainingDate.label",
34
+ "defaultMessage": "In training since"
35
+ }
36
+ }),
37
+ field: 'collectionobjects_common:objectProductionDateGroupList',
38
+ format: (0, _formatHelpers.valueAt)({
39
+ path: [1, 'dateDisplayDate']
40
+ })
41
+ }
42
+ },
43
+ groups: {
44
+ group_production: {
45
+ fields: ['objectProductionPerson', 'objectProductionOrganization', 'objectProductionPeople', 'objectProductionPlace', 'originDate', 'trainingDate']
46
+ }
47
+ }
48
+ }
49
+ };
50
+ exports.default = _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {
8
+ gatewayUrl: 'http://localhost:8180/gateway/botgarden'
9
+ };
10
+ exports.default = _default;