@civicactions/cmsds-open-data-components 1.9.0-alpha.3 → 1.9.0-alpha.7

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.
@@ -1,3 +1,10 @@
1
+ .dc-dataset-search--facets-container .ds-c-accordion__content {
2
+ max-height: 32rem;
3
+ }
4
+
1
5
  .dc-dataset-search--facets {
6
+ display: block;
2
7
  list-style: none;
8
+ position: relative;
9
+ max-height: 32rem;
3
10
  }
@@ -1,2 +1,6 @@
1
1
  @import './components';
2
2
  @import './templates';
3
+
4
+ .dc-c-word-break--all {
5
+ word-break: break-all;
6
+ }
@@ -32,6 +32,12 @@ var defaultMetadataMapping = {
32
32
  })
33
33
  }];
34
34
  },
35
+ accrualPeriodicity: function accrualPeriodicity(data) {
36
+ return [{
37
+ label: 'Frequency',
38
+ value: _frequencyMap.frequencyMap[data].name
39
+ }];
40
+ },
35
41
  publisher: function publisher(data) {
36
42
  if (data.data && data.data.name) {
37
43
  return [{
@@ -87,8 +93,9 @@ var defaultMetadataMapping = {
87
93
  return [{
88
94
  label: 'Category',
89
95
  value: data.map(function (theme) {
90
- return /*#__PURE__*/_react["default"].createElement("span", {
91
- key: theme.data
96
+ return /*#__PURE__*/_react["default"].createElement(_router.Link, {
97
+ key: theme.data,
98
+ to: "/datasets?theme[]=".concat(theme.data)
92
99
  }, theme.data);
93
100
  }).reduce(function (prev, curr) {
94
101
  return [prev, ', ', curr];
@@ -111,7 +118,9 @@ var defaultMetadataMapping = {
111
118
  license: function license(data) {
112
119
  return [{
113
120
  label: 'License',
114
- value: data
121
+ value: /*#__PURE__*/_react["default"].createElement("a", {
122
+ href: data
123
+ }, data)
115
124
  }];
116
125
  },
117
126
  accessLevel: function accessLevel(data) {
@@ -120,24 +129,12 @@ var defaultMetadataMapping = {
120
129
  value: data
121
130
  }];
122
131
  },
123
- references: function references(data) {
124
- return [{
125
- label: 'Related Documents',
126
- value: /*#__PURE__*/_react["default"].createElement("ul", {
127
- className: "ds-u-margin--0 ds-u-padding-y--0 ds-u-padding-left--2 ds-u-padding-right--0"
128
- }, data.map(function (item) {
129
- return /*#__PURE__*/_react["default"].createElement("li", {
130
- key: item
131
- }, /*#__PURE__*/_react["default"].createElement("a", {
132
- href: item
133
- }, item));
134
- }))
135
- }];
136
- },
137
132
  temporal: function temporal(data) {
138
133
  return [{
139
134
  label: 'Temporal Coverage',
140
- value: data
135
+ value: /*#__PURE__*/_react["default"].createElement("span", {
136
+ className: "dc-c-word-break--all"
137
+ }, data)
141
138
  }];
142
139
  },
143
140
  spatial: function spatial(data) {
@@ -146,10 +143,18 @@ var defaultMetadataMapping = {
146
143
  value: data
147
144
  }];
148
145
  },
149
- accrualPeriodicity: function accrualPeriodicity(data) {
146
+ references: function references(data) {
150
147
  return [{
151
- label: 'Frequency',
152
- value: _frequencyMap.frequencyMap[data].name
148
+ label: 'Related Documents',
149
+ value: /*#__PURE__*/_react["default"].createElement("ul", {
150
+ className: "ds-u-margin--0 ds-u-padding-y--0 ds-u-padding-left--2 ds-u-padding-right--0"
151
+ }, data.map(function (item) {
152
+ return /*#__PURE__*/_react["default"].createElement("li", {
153
+ key: item
154
+ }, /*#__PURE__*/_react["default"].createElement("a", {
155
+ href: item
156
+ }, item));
157
+ }))
153
158
  }];
154
159
  }
155
160
  };
@@ -10,6 +10,14 @@ export const defaultMetadataMapping = {
10
10
  issued: (data) => {
11
11
  return [{ label: 'Issued', value: <TransformedDate date={data} /> }];
12
12
  },
13
+ accrualPeriodicity: (data) => {
14
+ return [
15
+ {
16
+ label: 'Frequency',
17
+ value: frequencyMap[data].name,
18
+ },
19
+ ];
20
+ },
13
21
  publisher: (data) => {
14
22
  if (data.data && data.data.name) {
15
23
  return [{ label: 'Publisher', value: data.data.name }];
@@ -45,7 +53,11 @@ export const defaultMetadataMapping = {
45
53
  {
46
54
  label: 'Category',
47
55
  value: data
48
- .map((theme) => <span key={theme.data}>{theme.data}</span>)
56
+ .map((theme) => (
57
+ <Link key={theme.data} to={`/datasets?theme[]=${theme.data}`}>
58
+ {theme.data}
59
+ </Link>
60
+ ))
49
61
  .reduce((prev, curr) => [prev, ', ', curr]),
50
62
  },
51
63
  ];
@@ -65,11 +77,20 @@ export const defaultMetadataMapping = {
65
77
  ];
66
78
  },
67
79
  license: (data) => {
68
- return [{ label: 'License', value: data }];
80
+ return [{ label: 'License', value: <a href={data}>{data}</a> }];
69
81
  },
70
82
  accessLevel: (data) => {
71
83
  return [{ label: 'Public Access Level', value: data }];
72
84
  },
85
+
86
+ temporal: (data) => {
87
+ return [
88
+ { label: 'Temporal Coverage', value: <span className="dc-c-word-break--all">{data}</span> },
89
+ ];
90
+ },
91
+ spatial: (data) => {
92
+ return [{ label: 'Spacial/Geographical Coverage', value: data }];
93
+ },
73
94
  references: (data) => {
74
95
  return [
75
96
  {
@@ -86,18 +107,4 @@ export const defaultMetadataMapping = {
86
107
  },
87
108
  ];
88
109
  },
89
- temporal: (data) => {
90
- return [{ label: 'Temporal Coverage', value: data }];
91
- },
92
- spatial: (data) => {
93
- return [{ label: 'Spacial/Geographical Coverage', value: data }];
94
- },
95
- accrualPeriodicity: (data) => {
96
- return [
97
- {
98
- label: 'Frequency',
99
- value: frequencyMap[data].name,
100
- },
101
- ];
102
- },
103
110
  };
@@ -38,7 +38,8 @@ var DatasetSearchFacets = function DatasetSearchFacets(_ref) {
38
38
  var title = _ref.title,
39
39
  facets = _ref.facets,
40
40
  onclickFunction = _ref.onclickFunction,
41
- selectedFacets = _ref.selectedFacets;
41
+ selectedFacets = _ref.selectedFacets,
42
+ loading = _ref.loading;
42
43
  var showLimit = 25;
43
44
 
44
45
  var _useState = (0, _react.useState)(true),
@@ -52,29 +53,20 @@ var DatasetSearchFacets = function DatasetSearchFacets(_ref) {
52
53
  setShowMore = _useState4[1];
53
54
 
54
55
  var filteredFacets = facets.filter(function (f) {
55
- return f.total > 0;
56
+ var selectedIndex = selectedFacets.findIndex(function (item) {
57
+ return item === f.name;
58
+ });
59
+ return f.total > 0 || selectedIndex !== -1;
56
60
  });
57
61
  return /*#__PURE__*/_react["default"].createElement("div", {
58
- className: "ds-u-margin-bottom--4"
59
- }, /*#__PURE__*/_react["default"].createElement(_designSystem.Button, {
60
- variation: "transparent",
61
- className: "dc-facet-block--toggle ds-h4 ds-u-margin-top--0 ds-u-padding-left--0 ".concat(isOpen ? 'open' : 'closed'),
62
- onClick: function onClick() {
63
- return setIsOpen(!isOpen);
64
- }
65
- }, title), isOpen && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("ul", {
62
+ className: "ds-u-margin-bottom--4 dc-dataset-search--facets-container"
63
+ }, /*#__PURE__*/_react["default"].createElement(_designSystem.Accordion, null, /*#__PURE__*/_react["default"].createElement(_designSystem.AccordionItem, {
64
+ contentClassName: "ds-u-padding-left--1 ds-u-padding-right--0",
65
+ heading: "".concat(title, " (").concat(filteredFacets.length, ")"),
66
+ defaultOpen: true
67
+ }, /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, filteredFacets.length ? /*#__PURE__*/_react["default"].createElement("ul", {
66
68
  className: "dc-dataset-search--facets ds-u-padding--0 ds-u-margin--0"
67
- }, filteredFacets.filter(function (facet, index) {
68
- if (!showMore) {
69
- if (index <= showLimit) {
70
- return facet;
71
- } else {
72
- return false;
73
- }
74
- }
75
-
76
- return facet;
77
- }).map(function (f) {
69
+ }, filteredFacets.map(function (f) {
78
70
  return /*#__PURE__*/_react["default"].createElement("li", {
79
71
  key: f.name
80
72
  }, /*#__PURE__*/_react["default"].createElement(_designSystem.Choice, {
@@ -90,19 +82,14 @@ var DatasetSearchFacets = function DatasetSearchFacets(_ref) {
90
82
  });
91
83
  }
92
84
  }));
93
- })), !showMore && filteredFacets.length > showLimit && /*#__PURE__*/_react["default"].createElement(_designSystem.Button, {
94
- variation: "transparent",
95
- onClick: function onClick() {
96
- return setShowMore(true);
97
- }
98
- }, "Show more"), showMore && filteredFacets.length > showLimit && /*#__PURE__*/_react["default"].createElement(_designSystem.Button, {
99
- variation: "transparent",
100
- onClick: function onClick() {
101
- return setShowMore(false);
102
- }
103
- }, "Show less")));
85
+ })) : /*#__PURE__*/_react["default"].createElement("p", {
86
+ className: "ds-h5"
87
+ }, "No matching facets found.")))));
104
88
  };
105
89
 
90
+ DatasetSearchFacets.defaultProps = {
91
+ selectedFacets: []
92
+ };
106
93
  DatasetSearchFacets.propTypes = {
107
94
  title: _propTypes["default"].string.isRequired,
108
95
  facets: _propTypes["default"].arrayOf(_propTypes["default"].shape({
@@ -101,6 +101,11 @@ var DatasetSearch = function DatasetSearch(_ref) {
101
101
  currentResultNumbers = _useState2[0],
102
102
  setCurrentResultNumbers = _useState2[1];
103
103
 
104
+ var _useState3 = (0, _react.useState)(false),
105
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
106
+ noResults = _useState4[0],
107
+ setNoResults = _useState4[1];
108
+
104
109
  var _useSearchAPI = (0, _dataCatalogServices.useSearchAPI)(rootUrl, _objectSpread({}, transformUrlParamsToSearchObject(location.search, ['theme', 'keyword'], defaultSort)), additionalParams),
105
110
  fulltext = _useSearchAPI.fulltext,
106
111
  selectedFacets = _useSearchAPI.selectedFacets,
@@ -123,10 +128,10 @@ var DatasetSearch = function DatasetSearch(_ref) {
123
128
  theme = _separateFacets.theme,
124
129
  keyword = _separateFacets.keyword;
125
130
 
126
- var _useState3 = (0, _react.useState)(''),
127
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
128
- filterText = _useState4[0],
129
- setFilterText = _useState4[1];
131
+ var _useState5 = (0, _react.useState)(''),
132
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
133
+ filterText = _useState6[0],
134
+ setFilterText = _useState6[1];
130
135
 
131
136
  _react["default"].useEffect(function () {
132
137
  if (fulltext !== filterText) {
@@ -149,6 +154,12 @@ var DatasetSearch = function DatasetSearch(_ref) {
149
154
  startingNumber: startingNumber,
150
155
  endingNumber: Number(totalItems) < endingNumber ? Number(totalItems) : endingNumber
151
156
  });
157
+
158
+ if (totalItems <= 0 && currentResultNumbers !== null) {
159
+ setNoResults(true);
160
+ } else {
161
+ setNoResults(false);
162
+ }
152
163
  }, [totalItems, pageSize, page]);
153
164
 
154
165
  function changePage(page) {
@@ -208,7 +219,10 @@ var DatasetSearch = function DatasetSearch(_ref) {
208
219
  }
209
220
  }, "Clear all filters")), /*#__PURE__*/_react["default"].createElement("ol", {
210
221
  className: "dc-dataset-search-list ds-u-padding--0"
211
- }, items.map(function (item) {
222
+ }, noResults && /*#__PURE__*/_react["default"].createElement(_designSystem.Alert, {
223
+ variation: "error",
224
+ heading: "No results found."
225
+ }), items.map(function (item) {
212
226
  return /*#__PURE__*/_react["default"].createElement("li", {
213
227
  className: "ds-u-padding--0"
214
228
  }, /*#__PURE__*/_react["default"].createElement(_DatasetSearchListItem["default"], {
@@ -253,7 +267,8 @@ var DatasetSearch = function DatasetSearch(_ref) {
253
267
  title: "Categories",
254
268
  facets: theme,
255
269
  onclickFunction: updateSelectedFacets,
256
- selectedFacets: selectedFacets.theme
270
+ selectedFacets: selectedFacets.theme,
271
+ loading: loading
257
272
  }) : /*#__PURE__*/_react["default"].createElement(_designSystem.Spinner, {
258
273
  className: "ds-u-valign--middle",
259
274
  "aria-valuetext": "Categories loading",
@@ -262,7 +277,8 @@ var DatasetSearch = function DatasetSearch(_ref) {
262
277
  title: "Tags",
263
278
  facets: keyword,
264
279
  onclickFunction: updateSelectedFacets,
265
- selectedFacets: selectedFacets.keyword
280
+ selectedFacets: selectedFacets.keyword,
281
+ loading: loading
266
282
  }) : /*#__PURE__*/_react["default"].createElement(_designSystem.Spinner, {
267
283
  className: "ds-u-valign--middle",
268
284
  "aria-valuetext": "Tags loading",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@civicactions/cmsds-open-data-components",
3
- "version": "1.9.0-alpha.3",
3
+ "version": "1.9.0-alpha.7",
4
4
  "description": "Components for the open data catalog frontend using CMS Design System",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {