@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,1173 @@
1
+ import { defineMessages } from 'react-intl';
2
+ import { getItemShortID } from 'cspace-refname';
3
+
4
+ import {
5
+ displayName,
6
+ filterLink,
7
+ linkText,
8
+ inlineList,
9
+ listOf,
10
+ inlineListOf,
11
+ nameRole,
12
+ numericRange,
13
+ objectTypeValue,
14
+ paragraphs,
15
+ pickAllFromList,
16
+ pickFromList,
17
+ renderFilterLink,
18
+ renderJoined,
19
+ valueAt,
20
+ valueWithNote,
21
+ } from '../helpers/formatHelpers';
22
+
23
+ const composition = (data) => {
24
+ const parts = [
25
+ 'materialCompositionFamilyName',
26
+ 'materialCompositionClassName',
27
+ 'materialCompositionGenericName',
28
+ ].map((fieldName) => renderFilterLink(fieldName, displayName(data[fieldName])));
29
+
30
+ return renderJoined(parts, ' - ');
31
+ };
32
+
33
+ export default {
34
+ messages: {
35
+ 'rootPage.title': 'Material Order',
36
+ 'searchQueryInput.label': 'Search materials',
37
+ 'searchQueryInput.placeholder': 'Search materials',
38
+ 'searchResultStats.count': '{count, plural, one {# material} other {# materials}} found',
39
+ 'institutionIndex.label': 'Samples at {title}',
40
+ },
41
+
42
+ gatewayUrl: 'http://localhost:8180/gateway/materials',
43
+ detailPath: 'material',
44
+ imageLoadDelay: 4000,
45
+ pageLoadDelay: 1500,
46
+ pageAutoLoadLimit: 40,
47
+
48
+ defaultQuery: {
49
+ term: {
50
+ 'ecm:primaryType': 'Materialitem',
51
+ },
52
+ },
53
+
54
+ includeFields: [
55
+ 'ecm:name',
56
+ 'ecm:primaryType',
57
+ 'collectionspace_denorm:holdingInstitutions',
58
+ 'collectionspace_denorm:mediaCsid',
59
+ 'collectionspace_denorm:title',
60
+ 'materials_common:shortIdentifier',
61
+ ],
62
+
63
+ referenceField: 'materials_common:shortIdentifier',
64
+
65
+ storageKey: 'mo',
66
+
67
+ searchResultImageDerivative: 'OriginalJpeg',
68
+ detailImageDerivative: 'OriginalJpeg',
69
+
70
+ detailTitle: (data) => {
71
+ const {
72
+ 'materials_common:materialTermGroupList': materialTermGroups,
73
+ } = data;
74
+
75
+ if (materialTermGroups && materialTermGroups.length > 0) {
76
+ const {
77
+ termDisplayName,
78
+ historicalStatus,
79
+ } = materialTermGroups[0];
80
+
81
+ const title = (
82
+ termDisplayName + (historicalStatus === 'historical' ? ' (formerly known as)' : '')
83
+ );
84
+
85
+ return title;
86
+ }
87
+
88
+ return undefined;
89
+ },
90
+
91
+ detailSubtitle: (data) => {
92
+ const {
93
+ 'materials_common:materialTermGroupList': materialTermGroups,
94
+ } = data;
95
+
96
+ if (materialTermGroups && materialTermGroups.length > 1) {
97
+ const displayNames = materialTermGroups
98
+ .slice(1)
99
+ .map((termGroup) => {
100
+ const {
101
+ termDisplayName,
102
+ historicalStatus,
103
+ } = termGroup;
104
+
105
+ return (
106
+ termDisplayName + (historicalStatus === 'historical' ? ' (formerly known as)' : '')
107
+ );
108
+ });
109
+
110
+ return renderJoined(displayNames, '\n');
111
+ }
112
+
113
+ return undefined;
114
+ },
115
+
116
+ detailDescription: (data) => {
117
+ const {
118
+ 'materials_common:description': description,
119
+ } = data;
120
+
121
+ return description;
122
+ },
123
+
124
+ filters: {
125
+ fields: {
126
+ materialTermAttributionContributingOrganization: {
127
+ field: 'collectionspace_denorm:holdingInstitutions.displayName',
128
+ messages: defineMessages({
129
+ label: {
130
+ id: 'filter.materialTermAttributionContributingOrganization.label',
131
+ defaultMessage: 'Institution',
132
+ },
133
+ }),
134
+ },
135
+ materialCompositionFamilyName: {
136
+ field: 'materials_common:materialCompositionGroupList.materialCompositionFamilyName.displayName',
137
+ messages: defineMessages({
138
+ label: {
139
+ id: 'filter.materialCompositionFamilyName.label',
140
+ defaultMessage: 'Family name',
141
+ },
142
+ shortLabel: {
143
+ id: 'filter.materialCompositionFamilyName.shortLabel',
144
+ defaultMessage: 'Family',
145
+ },
146
+ }),
147
+ },
148
+ materialCompositionClassName: {
149
+ field: 'materials_common:materialCompositionGroupList.materialCompositionClassName.displayName',
150
+ messages: defineMessages({
151
+ label: {
152
+ id: 'filter.materialCompositionClassName.label',
153
+ defaultMessage: 'Class name',
154
+ },
155
+ shortLabel: {
156
+ id: 'filter.materialCompositionClassName.shortLabel',
157
+ defaultMessage: 'Class',
158
+ },
159
+ }),
160
+ },
161
+ materialCompositionGenericName: {
162
+ field: 'materials_common:materialCompositionGroupList.materialCompositionGenericName.displayName',
163
+ messages: defineMessages({
164
+ label: {
165
+ id: 'filter.materialCompositionGenericName.label',
166
+ defaultMessage: 'Generic name',
167
+ },
168
+ shortLabel: {
169
+ id: 'filter.materialCompositionGenericName.shortLabel',
170
+ defaultMessage: 'Generic',
171
+ },
172
+ }),
173
+ },
174
+ typicalUses: {
175
+ field: 'materials_common:typicalUses.displayName',
176
+ messages: defineMessages({
177
+ label: {
178
+ id: 'filter.typicalUses.label',
179
+ defaultMessage: 'Typical use',
180
+ },
181
+ }),
182
+ },
183
+ commonForm: {
184
+ field: 'materials_common:commonForm.displayName',
185
+ messages: defineMessages({
186
+ label: {
187
+ id: 'filter.commonForm.label',
188
+ defaultMessage: 'Common form',
189
+ },
190
+ }),
191
+ },
192
+ formType: {
193
+ field: 'materials_common:formTypeGroupList.formType.displayName',
194
+ messages: defineMessages({
195
+ label: {
196
+ id: 'filter.formType.label',
197
+ defaultMessage: 'Form type',
198
+ },
199
+ }),
200
+ },
201
+ acousticalPropertyType: {
202
+ field: 'materials_common:acousticalPropertyGroupList.acousticalPropertyType.displayName',
203
+ messages: defineMessages({
204
+ label: {
205
+ id: 'filter.acousticalPropertyType.label',
206
+ defaultMessage: 'Acoustical property',
207
+ },
208
+ shortLabel: {
209
+ id: 'filter.acousticalPropertyType.shortLabel',
210
+ defaultMessage: 'Acoustical',
211
+ },
212
+ }),
213
+ },
214
+ durabilityPropertyType: {
215
+ field: 'materials_common:durabilityPropertyGroupList.durabilityPropertyType.displayName',
216
+ messages: defineMessages({
217
+ label: {
218
+ id: 'filter.durabilityPropertyType.label',
219
+ defaultMessage: 'Durability property',
220
+ },
221
+ shortLabel: {
222
+ id: 'filter.durabilityPropertyType.shortLabel',
223
+ defaultMessage: 'Durability',
224
+ },
225
+ }),
226
+ },
227
+ electricalPropertyType: {
228
+ field: 'materials_common:electricalPropertyGroupList.electricalPropertyType.displayName',
229
+ messages: defineMessages({
230
+ label: {
231
+ id: 'filter.electricalPropertyType.label',
232
+ defaultMessage: 'Electrical property',
233
+ },
234
+ shortLabel: {
235
+ id: 'filter.electricalPropertyType.shortLabel',
236
+ defaultMessage: 'Electrical',
237
+ },
238
+ }),
239
+ },
240
+ hygrothermalPropertyType: {
241
+ field: 'materials_common:hygrothermalPropertyGroupList.hygrothermalPropertyType.displayName',
242
+ messages: defineMessages({
243
+ label: {
244
+ id: 'filter.hygrothermalPropertyType.label',
245
+ defaultMessage: 'Hygrothermal property',
246
+ },
247
+ shortLabel: {
248
+ id: 'filter.hygrothermalPropertyType.shortLabel',
249
+ defaultMessage: 'Hygrothermal',
250
+ },
251
+ }),
252
+ },
253
+ mechanicalPropertyType: {
254
+ field: 'materials_common:mechanicalPropertyGroupList.mechanicalPropertyType.displayName',
255
+ messages: defineMessages({
256
+ label: {
257
+ id: 'filter.mechanicalPropertyType.label',
258
+ defaultMessage: 'Mechanical property',
259
+ },
260
+ shortLabel: {
261
+ id: 'filter.mechanicalPropertyType.shortLabel',
262
+ defaultMessage: 'Mechanical',
263
+ },
264
+ }),
265
+ },
266
+ opticalPropertyType: {
267
+ field: 'materials_common:opticalPropertyGroupList.opticalPropertyType.displayName',
268
+ messages: defineMessages({
269
+ label: {
270
+ id: 'filter.opticalPropertyType.label',
271
+ defaultMessage: 'Optical property',
272
+ },
273
+ shortLabel: {
274
+ id: 'filter.opticalPropertyType.shortLabel',
275
+ defaultMessage: 'Optical',
276
+ },
277
+ }),
278
+ },
279
+ sensorialPropertyType: {
280
+ field: 'materials_common:sensorialPropertyGroupList.sensorialPropertyType.displayName',
281
+ messages: defineMessages({
282
+ label: {
283
+ id: 'filter.sensorialPropertyType.label',
284
+ defaultMessage: 'Sensorial property',
285
+ },
286
+ shortLabel: {
287
+ id: 'filter.sensorialPropertyType.shortLabel',
288
+ defaultMessage: 'Sensorial',
289
+ },
290
+ }),
291
+ },
292
+ smartMaterialPropertyType: {
293
+ field: 'materials_common:smartMaterialPropertyGroupList.smartMaterialPropertyType.displayName',
294
+ messages: defineMessages({
295
+ label: {
296
+ id: 'filter.smartMaterialPropertyType.label',
297
+ defaultMessage: 'Smart material property',
298
+ },
299
+ shortLabel: {
300
+ id: 'filter.smartMaterialPropertyType.shortLabel',
301
+ defaultMessage: 'Smart material',
302
+ },
303
+ }),
304
+ },
305
+ additionalPropertyType: {
306
+ field: 'materials_common:additionalPropertyGroupList.additionalPropertyType.displayName',
307
+ messages: defineMessages({
308
+ label: {
309
+ id: 'filter.additionalPropertyType.label',
310
+ defaultMessage: 'Additional property',
311
+ },
312
+ }),
313
+ },
314
+ recycledContentQualifier: {
315
+ field: 'materials_common:recycledContentGroupList.recycledContentQualifier.displayName',
316
+ messages: defineMessages({
317
+ label: {
318
+ id: 'filter.recycledContentQualifier.label',
319
+ defaultMessage: 'Recycled content',
320
+ },
321
+ shortLabel: {
322
+ id: 'filter.recycledContentQualifier.shortLabel',
323
+ defaultMessage: 'Recycled',
324
+ },
325
+ }),
326
+ },
327
+ lifecycleComponent: {
328
+ field: 'materials_common:lifecycleComponentGroupList.lifecycleComponent.displayName',
329
+ messages: defineMessages({
330
+ label: {
331
+ id: 'filter.lifecycleComponent.label',
332
+ defaultMessage: 'Lifecycle component',
333
+ },
334
+ shortLabel: {
335
+ id: 'filter.lifecycleComponent.shortLabel',
336
+ defaultMessage: 'Lifecycle',
337
+ },
338
+ }),
339
+ },
340
+ certificationProgram: {
341
+ field: 'materials_common:certificationCreditGroupList.certificationProgram.displayName',
342
+ messages: defineMessages({
343
+ label: {
344
+ id: 'filter.certificationProgram.label',
345
+ defaultMessage: 'Certification program',
346
+ },
347
+ shortLabel: {
348
+ id: 'filter.certificationProgram.shortLabel',
349
+ defaultMessage: 'Certification',
350
+ },
351
+ }),
352
+ },
353
+ castingProcesses: {
354
+ field: 'materials_common:castingProcesses.displayName',
355
+ messages: defineMessages({
356
+ label: {
357
+ id: 'filter.castingProcesses.label',
358
+ defaultMessage: 'Casting process',
359
+ },
360
+ shortLabel: {
361
+ id: 'filter.castingProcesses.shortLabel',
362
+ defaultMessage: 'Casting',
363
+ },
364
+ }),
365
+ },
366
+ deformingProcesses: {
367
+ field: 'materials_common:deformingProcesses.displayName',
368
+ messages: defineMessages({
369
+ label: {
370
+ id: 'filter.deformingProcesses.label',
371
+ defaultMessage: 'Deforming process',
372
+ },
373
+ shortLabel: {
374
+ id: 'filter.deformingProcesses.shortLabel',
375
+ defaultMessage: 'Deforming',
376
+ },
377
+ }),
378
+ },
379
+ joiningProcesses: {
380
+ field: 'materials_common:joiningProcesses.displayName',
381
+ messages: defineMessages({
382
+ label: {
383
+ id: 'filter.joiningProcesses.label',
384
+ defaultMessage: 'Joining process',
385
+ },
386
+ shortLabel: {
387
+ id: 'filter.joiningProcesses.shortLabel',
388
+ defaultMessage: 'Joining',
389
+ },
390
+ }),
391
+ },
392
+ machiningProcesses: {
393
+ field: 'materials_common:machiningProcesses.displayName',
394
+ messages: defineMessages({
395
+ label: {
396
+ id: 'filter.machiningProcesses.label',
397
+ defaultMessage: 'Machining process',
398
+ },
399
+ shortLabel: {
400
+ id: 'filter.machiningProcesses.shortLabel',
401
+ defaultMessage: 'Machining',
402
+ },
403
+ }),
404
+ },
405
+ moldingProcesses: {
406
+ field: 'materials_common:moldingProcesses.displayName',
407
+ messages: defineMessages({
408
+ label: {
409
+ id: 'filter.moldingProcesses.label',
410
+ defaultMessage: 'Molding process',
411
+ },
412
+ shortLabel: {
413
+ id: 'filter.moldingProcesses.shortLabel',
414
+ defaultMessage: 'Molding',
415
+ },
416
+ }),
417
+ },
418
+ rapidPrototypingProcesses: {
419
+ field: 'materials_common:rapidPrototypingProcesses.displayName',
420
+ messages: defineMessages({
421
+ label: {
422
+ id: 'filter.rapidPrototypingProcesses.label',
423
+ defaultMessage: 'Rapid prototyping process',
424
+ },
425
+ shortLabel: {
426
+ id: 'filter.rapidPrototypingProcesses.shortLabel',
427
+ defaultMessage: 'Rapid prototyping',
428
+ },
429
+ }),
430
+ },
431
+ surfacingProcesses: {
432
+ field: 'materials_common:surfacingProcesses.displayName',
433
+ messages: defineMessages({
434
+ label: {
435
+ id: 'filter.surfacingProcesses.label',
436
+ defaultMessage: 'Surfacing process',
437
+ },
438
+ shortLabel: {
439
+ id: 'filter.surfacingProcesses.shortLabel',
440
+ defaultMessage: 'Surfacing',
441
+ },
442
+ }),
443
+ },
444
+ additionalProcess: {
445
+ field: 'materials_common:additionalProcessGroupList.additionalProcess.displayName',
446
+ messages: defineMessages({
447
+ label: {
448
+ id: 'filter.additionalProcess.label',
449
+ defaultMessage: 'Additional process',
450
+ },
451
+ }),
452
+ },
453
+ },
454
+ groups: {
455
+ group_institution: {
456
+ messages: defineMessages({
457
+ label: {
458
+ id: 'filterGroup.group_institution.label',
459
+ defaultMessage: 'Holding Institution',
460
+ },
461
+ }),
462
+ fields: [
463
+ 'materialTermAttributionContributingOrganization',
464
+ ],
465
+ },
466
+ group_composition: {
467
+ messages: defineMessages({
468
+ label: {
469
+ id: 'filterGroup.group_composition.label',
470
+ defaultMessage: 'Composition',
471
+ },
472
+ }),
473
+ fields: [
474
+ 'materialCompositionFamilyName',
475
+ 'materialCompositionClassName',
476
+ 'materialCompositionGenericName',
477
+ ],
478
+ },
479
+ group_use: {
480
+ messages: defineMessages({
481
+ label: {
482
+ id: 'filterGroup.group_use.label',
483
+ defaultMessage: 'Use',
484
+ },
485
+ }),
486
+ fields: [
487
+ 'typicalUses',
488
+ ],
489
+ },
490
+ group_form: {
491
+ messages: defineMessages({
492
+ label: {
493
+ id: 'filterGroup.group_form.label',
494
+ defaultMessage: 'Form',
495
+ },
496
+ }),
497
+ fields: [
498
+ 'commonForm',
499
+ 'formType',
500
+ ],
501
+ },
502
+ group_properties: {
503
+ messages: defineMessages({
504
+ label: {
505
+ id: 'filterGroup.group_properties.label',
506
+ defaultMessage: 'Properties',
507
+ },
508
+ }),
509
+ fields: [
510
+ 'acousticalPropertyType',
511
+ 'durabilityPropertyType',
512
+ 'electricalPropertyType',
513
+ 'hygrothermalPropertyType',
514
+ 'mechanicalPropertyType',
515
+ 'opticalPropertyType',
516
+ 'sensorialPropertyType',
517
+ 'smartMaterialPropertyType',
518
+ 'additionalPropertyType',
519
+ ],
520
+ },
521
+ group_ecology: {
522
+ messages: defineMessages({
523
+ label: {
524
+ id: 'filterGroup.group_ecology.label',
525
+ defaultMessage: 'Material Ecology',
526
+ },
527
+ }),
528
+ fields: [
529
+ 'recycledContentQualifier',
530
+ 'lifecycleComponent',
531
+ 'certificationProgram',
532
+ ],
533
+ },
534
+ group_processing: {
535
+ messages: defineMessages({
536
+ label: {
537
+ id: 'filterGroup.group_processing.label',
538
+ defaultMessage: 'Processing',
539
+ },
540
+ }),
541
+ fields: [
542
+ 'castingProcesses',
543
+ 'deformingProcesses',
544
+ 'joiningProcesses',
545
+ 'machiningProcesses',
546
+ 'moldingProcesses',
547
+ 'rapidPrototypingProcesses',
548
+ 'surfacingProcesses',
549
+ 'additionalProcess',
550
+ ],
551
+ },
552
+ },
553
+ layout: {
554
+ filters1: [
555
+ 'group_institution',
556
+ 'group_composition',
557
+ 'group_use',
558
+ 'group_form',
559
+ 'group_properties',
560
+ 'group_ecology',
561
+ 'group_processing',
562
+ ],
563
+ },
564
+ },
565
+
566
+ detailFields: {
567
+ fields: {
568
+ featuredCollectionGroupList: {
569
+ field: 'materials_common:featuredCollectionGroupList',
570
+ format: listOf((valueAt({
571
+ path: 'featuredCollection',
572
+ format: displayName,
573
+ }))),
574
+ },
575
+ materialCompositionGroupList: {
576
+ field: 'materials_common:materialCompositionGroupList',
577
+ format: listOf(composition),
578
+ },
579
+ typicalUses: {
580
+ field: 'materials_common:typicalUses',
581
+ format: inlineListOf(filterLink({
582
+ filterValueFormat: displayName,
583
+ })),
584
+ },
585
+ featuredApplicationGroupList: {
586
+ field: 'materials_common:featuredApplicationGroupList',
587
+ format: listOf(valueWithNote({
588
+ valueFieldName: 'featuredApplication',
589
+ noteFieldName: 'featuredApplicationNote',
590
+ })),
591
+ },
592
+ materialProductionOrganizationGroupList: {
593
+ label: 'Company',
594
+ field: 'materials_common:materialProductionOrganizationGroupList',
595
+ format: listOf(nameRole({
596
+ nameFieldName: 'materialProductionOrganization',
597
+ roleFieldName: 'materialProductionOrganizationRole',
598
+ linkName: false,
599
+ })),
600
+ },
601
+ materialProductionPersonGroupList: {
602
+ label: 'Person',
603
+ field: 'materials_common:materialProductionPersonGroupList',
604
+ format: listOf(nameRole({
605
+ nameFieldName: 'materialProductionPerson',
606
+ roleFieldName: 'materialProductionPersonRole',
607
+ linkName: false,
608
+ })),
609
+ },
610
+ materialProductionPlaceGroupList: {
611
+ label: 'Place',
612
+ field: 'materials_common:materialProductionPlaceGroupList',
613
+ format: listOf(nameRole({
614
+ nameFieldName: 'materialProductionPlace',
615
+ roleFieldName: 'materialProductionPlaceRole',
616
+ linkName: false,
617
+ })),
618
+ },
619
+ productionDate: {
620
+ label: 'Date',
621
+ field: 'materials_common:productionDate',
622
+ format: valueAt({ path: 'dateDisplayDate' }),
623
+ },
624
+ discontinued: {
625
+ label: 'Discontinued',
626
+ field: 'materials_common:discontinued',
627
+ },
628
+ productionNote: {
629
+ label: 'Production Note',
630
+ field: 'materials_common:productionNote',
631
+ },
632
+ externalUrlGroupList: {
633
+ field: 'materials_common:externalUrlGroupList',
634
+ format: listOf(linkText({
635
+ urlFieldName: 'externalUrl',
636
+ textFieldName: 'externalUrlNote',
637
+ type: 'external',
638
+ })),
639
+ },
640
+ additionalResourceGroupList: {
641
+ field: 'materials_common:additionalResourceGroupList',
642
+ format: listOf(valueWithNote({
643
+ valueFieldName: 'additionalResource',
644
+ noteFieldName: 'additionalResourceNote',
645
+ })),
646
+ },
647
+ commonForm: {
648
+ label: 'Common form',
649
+ field: 'materials_common:commonForm',
650
+ format: filterLink({
651
+ filterValueFormat: displayName,
652
+ }),
653
+ },
654
+ formTypeGroupList: {
655
+ label: 'Form type',
656
+ field: 'materials_common:formTypeGroupList',
657
+ format: inlineListOf(valueAt({
658
+ path: 'formType',
659
+ format: filterLink({
660
+ filterValueFormat: displayName,
661
+ }),
662
+ })),
663
+ },
664
+ acousticalPropertyGroupList: {
665
+ label: 'Acoustical',
666
+ field: 'materials_common:acousticalPropertyGroupList',
667
+ format: listOf(valueWithNote({
668
+ valueFieldName: 'acousticalPropertyType',
669
+ noteFieldName: 'acousticalPropertyNote',
670
+ })),
671
+ },
672
+ durabilityPropertyGroupList: {
673
+ label: 'Durability',
674
+ field: 'materials_common:durabilityPropertyGroupList',
675
+ format: listOf(valueWithNote({
676
+ valueFieldName: 'durabilityPropertyType',
677
+ noteFieldName: 'durabilityPropertyNote',
678
+ })),
679
+ },
680
+ electricalPropertyGroupList: {
681
+ label: 'Electrical',
682
+ field: 'materials_common:electricalPropertyGroupList',
683
+ format: listOf(valueWithNote({
684
+ valueFieldName: 'electricalPropertyType',
685
+ noteFieldName: 'electricalPropertyNote',
686
+ })),
687
+ },
688
+ hygrothermalPropertyGroupList: {
689
+ label: 'Hygro-thermal',
690
+ field: 'materials_common:hygrothermalPropertyGroupList',
691
+ format: listOf(valueWithNote({
692
+ valueFieldName: 'hygrothermalPropertyType',
693
+ noteFieldName: 'hygrothermalPropertyNote',
694
+ })),
695
+ },
696
+ mechanicalPropertyGroupList: {
697
+ label: 'Mechanical',
698
+ field: 'materials_common:mechanicalPropertyGroupList',
699
+ format: listOf(valueWithNote({
700
+ valueFieldName: 'mechanicalPropertyType',
701
+ noteFieldName: 'mechanicalPropertyNote',
702
+ })),
703
+ },
704
+ opticalPropertyGroupList: {
705
+ label: 'Optical',
706
+ field: 'materials_common:opticalPropertyGroupList',
707
+ format: listOf(valueWithNote({
708
+ valueFieldName: 'opticalPropertyType',
709
+ noteFieldName: 'opticalPropertyNote',
710
+ })),
711
+ },
712
+ sensorialPropertyGroupList: {
713
+ label: 'Sensorial',
714
+ field: 'materials_common:sensorialPropertyGroupList',
715
+ format: listOf(valueWithNote({
716
+ valueFieldName: 'sensorialPropertyType',
717
+ noteFieldName: 'sensorialPropertyNote',
718
+ })),
719
+ },
720
+ smartMaterialPropertyGroupList: {
721
+ label: 'Smart material',
722
+ field: 'materials_common:smartMaterialPropertyGroupList',
723
+ format: listOf(valueWithNote({
724
+ valueFieldName: 'smartMaterialPropertyType',
725
+ noteFieldName: 'smartMaterialPropertyNote',
726
+ })),
727
+ },
728
+ additionalPropertyGroupList: {
729
+ label: 'Additional',
730
+ field: 'materials_common:additionalPropertyGroupList',
731
+ format: listOf(valueWithNote({
732
+ valueFieldName: 'additionalPropertyType',
733
+ noteFieldName: 'additionalPropertyNote',
734
+ })),
735
+ },
736
+ propertyNote: {
737
+ label: 'Property note',
738
+ field: 'materials_common:propertyNote',
739
+ },
740
+ recycledContentGroupList: {
741
+ label: 'Recycled content',
742
+ field: 'materials_common:recycledContentGroupList',
743
+ format: listOf(numericRange({
744
+ lowFieldName: 'recycledContent',
745
+ highFieldName: 'recycledContentHigh',
746
+ unit: '%',
747
+ qualifierFieldName: 'recycledContentQualifier',
748
+ linkQualifier: true,
749
+ })),
750
+ },
751
+ lifecycleComponentGroupList: {
752
+ label: 'Lifecycle component',
753
+ field: 'materials_common:lifecycleComponentGroupList',
754
+ format: listOf(valueWithNote({
755
+ valueFieldName: 'lifecycleComponent',
756
+ noteFieldName: 'lifecycleComponentNote',
757
+ noteLabel: '',
758
+ separator: ' - ',
759
+ })),
760
+ },
761
+ embodiedEnergyGroupList: {
762
+ label: 'Embodied energy',
763
+ field: 'materials_common:embodiedEnergyGroupList',
764
+ format: listOf(numericRange({
765
+ lowFieldName: 'embodiedEnergyValue',
766
+ highFieldName: 'embodiedEnergyValueHigh',
767
+ unitFieldName: 'embodiedEnergyUnit',
768
+ qualifierFieldName: 'embodiedEnergyNote',
769
+ qualifierSeparator: ' - ',
770
+ })),
771
+ },
772
+ certificationCreditGroupList: {
773
+ label: 'Certification credit',
774
+ field: 'materials_common:certificationCreditGroupList',
775
+ format: listOf(valueWithNote({
776
+ valueFieldName: 'certificationProgram',
777
+ noteFieldName: 'certificationCreditNote',
778
+ noteLabel: '',
779
+ separator: ' - ',
780
+ })),
781
+ },
782
+ ecologyNote: {
783
+ label: 'Material ecology note',
784
+ field: 'materials_common:ecologyNote',
785
+ },
786
+ castingProcesses: {
787
+ label: 'Casting',
788
+ field: 'materials_common:castingProcesses',
789
+ format: listOf(filterLink({
790
+ filterValueFormat: displayName,
791
+ })),
792
+ },
793
+ joiningProcesses: {
794
+ label: 'Joining',
795
+ field: 'materials_common:joiningProcesses',
796
+ format: listOf(filterLink({
797
+ filterValueFormat: displayName,
798
+ })),
799
+ },
800
+ moldingProcesses: {
801
+ label: 'Molding',
802
+ field: 'materials_common:moldingProcesses',
803
+ format: listOf(filterLink({
804
+ filterValueFormat: displayName,
805
+ })),
806
+ },
807
+ surfacingProcesses: {
808
+ label: 'Surfacing',
809
+ field: 'materials_common:surfacingProcesses',
810
+ format: listOf(filterLink({
811
+ filterValueFormat: displayName,
812
+ })),
813
+ },
814
+ deformingProcesses: {
815
+ label: 'Deforming',
816
+ field: 'materials_common:deformingProcesses',
817
+ format: listOf(filterLink({
818
+ filterValueFormat: displayName,
819
+ })),
820
+ },
821
+ machiningProcesses: {
822
+ label: 'Machining',
823
+ field: 'materials_common:machiningProcesses',
824
+ format: listOf(filterLink({
825
+ filterValueFormat: displayName,
826
+ })),
827
+ },
828
+ rapidPrototypingProcesses: {
829
+ label: 'Rapid prototyping',
830
+ field: 'materials_common:rapidPrototypingProcesses',
831
+ format: listOf(filterLink({
832
+ filterValueFormat: displayName,
833
+ })),
834
+ },
835
+ additionalProcessGroupList: {
836
+ label: 'Additional process',
837
+ field: 'materials_common:additionalProcessGroupList',
838
+ format: listOf(valueWithNote({
839
+ valueFieldName: 'additionalProcess',
840
+ noteFieldName: 'additionalProcessNote',
841
+ })),
842
+ },
843
+ processNote: {
844
+ label: 'Process note',
845
+ field: 'materials_common:processNote',
846
+ },
847
+ },
848
+ groups: {
849
+ group_featured_collection: {
850
+ label: 'Featured collection',
851
+ fields: [
852
+ 'featuredCollectionGroupList',
853
+ ],
854
+ },
855
+ group_composition: {
856
+ label: 'Composition',
857
+ fields: [
858
+ 'materialCompositionGroupList',
859
+ ],
860
+ },
861
+ group_use: {
862
+ label: 'Typical use',
863
+ fields: [
864
+ 'typicalUses',
865
+ ],
866
+ },
867
+ group_application: {
868
+ label: 'Featured application',
869
+ fields: [
870
+ 'featuredApplicationGroupList',
871
+ ],
872
+ },
873
+ group_production: {
874
+ label: 'Production',
875
+ fields: [
876
+ 'materialProductionOrganizationGroupList',
877
+ 'materialProductionPersonGroupList',
878
+ 'materialProductionPlaceGroupList',
879
+ 'productionDate',
880
+ 'discontinued',
881
+ 'productionNote',
882
+ ],
883
+ },
884
+ group_link: {
885
+ label: 'External links',
886
+ fields: [
887
+ 'externalUrlGroupList',
888
+ ],
889
+ },
890
+ group_standard: {
891
+ label: 'External standard',
892
+ fields: [
893
+ 'additionalResourceGroupList',
894
+ ],
895
+ },
896
+ group_form: {
897
+ label: 'Form',
898
+ fields: [
899
+ 'commonForm',
900
+ 'formTypeGroupList',
901
+ ],
902
+ },
903
+ group_property: {
904
+ label: 'Properties',
905
+ fields: [
906
+ 'acousticalPropertyGroupList',
907
+ 'durabilityPropertyGroupList',
908
+ 'electricalPropertyGroupList',
909
+ 'hygrothermalPropertyGroupList',
910
+ 'mechanicalPropertyGroupList',
911
+ 'opticalPropertyGroupList',
912
+ 'sensorialPropertyGroupList',
913
+ 'smartMaterialPropertyGroupList',
914
+ 'additionalPropertyGroupList',
915
+ 'propertyNote',
916
+ ],
917
+ },
918
+ group_ecology: {
919
+ label: 'Material ecology',
920
+ fields: [
921
+ 'recycledContentGroupList',
922
+ 'lifecycleComponentGroupList',
923
+ 'embodiedEnergyGroupList',
924
+ 'certificationCreditGroupList',
925
+ 'ecologyNote',
926
+ ],
927
+ },
928
+ group_process: {
929
+ label: 'Processes',
930
+ fields: [
931
+ 'castingProcesses',
932
+ 'joiningProcesses',
933
+ 'moldingProcesses',
934
+ 'surfacingProcesses',
935
+ 'deformingProcesses',
936
+ 'machiningProcesses',
937
+ 'rapidPrototypingProcesses',
938
+ 'additionalProcessGroupList',
939
+ 'processNote',
940
+ ],
941
+ },
942
+ },
943
+ layout: {
944
+ fields1: [
945
+ 'group_featured_collection',
946
+ 'group_composition',
947
+ 'group_use',
948
+ 'group_application',
949
+ 'group_production',
950
+ 'group_link',
951
+ 'group_standard',
952
+ 'group_form',
953
+ 'group_property',
954
+ ],
955
+ fields2: [
956
+ 'group_ecology',
957
+ 'group_process',
958
+ ],
959
+ },
960
+ },
961
+
962
+ institutionHoldings: {
963
+ query: (data) => {
964
+ const {
965
+ 'collectionspace_core:refName': refName,
966
+ } = data;
967
+
968
+ const shortId = getItemShortID(refName);
969
+
970
+ return {
971
+ term: {
972
+ 'collectionobjects_common:materialGroupList.material.shortid': shortId,
973
+ },
974
+ };
975
+ },
976
+ sortField: 'collectionobjects_common:objectNumber',
977
+ title: {
978
+ name: 'collectionobjects_common:otherNumberList',
979
+ format: pickFromList({
980
+ condition: {
981
+ path: 'numberType',
982
+ value: 'callnumber',
983
+ },
984
+ format: valueAt({ path: 'numberValue' }),
985
+ }),
986
+ },
987
+ detailFields: {
988
+ fields: {
989
+ otherNumberList: {
990
+ label: 'Call number',
991
+ field: 'collectionobjects_common:otherNumberList',
992
+ format: pickAllFromList({
993
+ condition: {
994
+ path: 'numberType',
995
+ value: 'callnumber',
996
+ },
997
+ format: valueAt({ path: 'numberValue' }),
998
+ }),
999
+ className: 'title',
1000
+ },
1001
+ collection: {
1002
+ label: 'Collection',
1003
+ field: 'collectionobjects_common:collection',
1004
+ format: displayName,
1005
+ },
1006
+ namedCollection: {
1007
+ label: 'Named collection',
1008
+ field: 'collectionobjects_common:namedCollections',
1009
+ format: listOf(displayName),
1010
+ },
1011
+ computedCurrentLocation: {
1012
+ label: 'Current location',
1013
+ field: 'collectionobjects_common:computedCurrentLocation',
1014
+ format: displayName,
1015
+ },
1016
+ materialPhysicalDescriptions: {
1017
+ label: 'Physical description',
1018
+ field: 'collectionobjects_materials:materialPhysicalDescriptions',
1019
+ format: paragraphs,
1020
+ },
1021
+ materialContainerGroupList: {
1022
+ label: 'Container',
1023
+ field: 'collectionobjects_materials:materialContainerGroupList',
1024
+ format: listOf(valueWithNote({
1025
+ valueFieldName: 'container',
1026
+ noteFieldName: 'containerNote',
1027
+ linkValue: false,
1028
+ })),
1029
+ },
1030
+ materialConditionGroupList: {
1031
+ label: 'Condition',
1032
+ field: 'collectionobjects_materials:materialConditionGroupList',
1033
+ format: listOf(valueWithNote({
1034
+ valueFieldName: 'condition',
1035
+ noteFieldName: 'conditionNote',
1036
+ linkValue: false,
1037
+ })),
1038
+ },
1039
+ materialHandlingGroupList: {
1040
+ label: 'Handling',
1041
+ field: 'collectionobjects_materials:materialHandlingGroupList',
1042
+ format: listOf(valueWithNote({
1043
+ valueFieldName: 'handling',
1044
+ noteFieldName: 'handlingNote',
1045
+ linkValue: false,
1046
+ })),
1047
+ },
1048
+ colors: {
1049
+ label: 'Color',
1050
+ field: 'collectionobjects_common:colors',
1051
+ format: inlineList,
1052
+ },
1053
+ materialGenericColors: {
1054
+ label: 'Generic color',
1055
+ field: 'collectionobjects_materials:materialGenericColors',
1056
+ format: inlineListOf(displayName),
1057
+ },
1058
+ materialFinishGroupList: {
1059
+ label: 'Finish',
1060
+ field: 'collectionobjects_materials:materialFinishGroupList',
1061
+ format: listOf(valueWithNote({
1062
+ valueFieldName: 'finish',
1063
+ noteFieldName: 'finishNote',
1064
+ linkValue: false,
1065
+ })),
1066
+ },
1067
+ numberOfObjects: {
1068
+ label: 'Holdings',
1069
+ field: 'collectionobjects_common:numberOfObjects',
1070
+ },
1071
+ objectStatusList: {
1072
+ label: 'Type',
1073
+ field: 'collectionobjects_common:objectStatusList',
1074
+ format: inlineListOf(objectTypeValue),
1075
+ },
1076
+ briefDescriptions: {
1077
+ label: 'Production description',
1078
+ field: 'collectionobjects_common:briefDescriptions',
1079
+ format: paragraphs,
1080
+ },
1081
+ measuredPartGroupList: {
1082
+ label: 'Size',
1083
+ field: 'collectionobjects_common:measuredPartGroupList',
1084
+ format: listOf(
1085
+ valueAt({ path: 'dimensionSummary' }),
1086
+ ),
1087
+ },
1088
+ objectNumber: {
1089
+ label: 'System number',
1090
+ field: 'collectionobjects_common:objectNumber',
1091
+ },
1092
+ },
1093
+ groups: {
1094
+ group_sample_otherNumberList: {
1095
+ fields: [
1096
+ 'otherNumberList',
1097
+ ],
1098
+ },
1099
+ group_sample_collection: {
1100
+ fields: [
1101
+ 'collection',
1102
+ ],
1103
+ },
1104
+ group_sample_namedCollection: {
1105
+ fields: [
1106
+ 'namedCollection',
1107
+ ],
1108
+ },
1109
+ group_sample_computedCurrentLocation: {
1110
+ fields: [
1111
+ 'computedCurrentLocation',
1112
+ ],
1113
+ },
1114
+ group_sample_materialPhysicalDescriptions: {
1115
+ fields: [
1116
+ 'materialPhysicalDescriptions',
1117
+ ],
1118
+ },
1119
+ group_sample_condition: {
1120
+ fields: [
1121
+ 'materialContainerGroupList',
1122
+ 'materialConditionGroupList',
1123
+ 'materialHandlingGroupList',
1124
+ ],
1125
+ },
1126
+ group_sample_description: {
1127
+ fields: [
1128
+ 'colors',
1129
+ 'materialGenericColors',
1130
+ 'materialFinishGroupList',
1131
+ ],
1132
+ },
1133
+ group_sample_holdings: {
1134
+ fields: [
1135
+ 'numberOfObjects',
1136
+ 'objectStatusList',
1137
+ ],
1138
+ className: 'inline',
1139
+ },
1140
+ group_sample_briefDescriptions: {
1141
+ fields: [
1142
+ 'briefDescriptions',
1143
+ ],
1144
+ },
1145
+ group_sample_measuredPartGroupList: {
1146
+ fields: [
1147
+ 'measuredPartGroupList',
1148
+ ],
1149
+ },
1150
+ group_sample_system: {
1151
+ fields: [
1152
+ 'objectNumber',
1153
+ ],
1154
+ },
1155
+ },
1156
+ layout: {
1157
+ fields1: [
1158
+ 'group_sample_otherNumberList',
1159
+ 'group_sample_collection',
1160
+ 'group_sample_namedCollection',
1161
+ 'group_sample_computedCurrentLocation',
1162
+ 'group_sample_materialPhysicalDescriptions',
1163
+ 'group_sample_condition',
1164
+ 'group_sample_description',
1165
+ 'group_sample_holdings',
1166
+ 'group_sample_briefDescriptions',
1167
+ 'group_sample_measuredPartGroupList',
1168
+ 'group_sample_system',
1169
+ ],
1170
+ },
1171
+ },
1172
+ },
1173
+ };