@civicactions/cmsds-open-data-components 1.5.0 → 1.6.0-alpha.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/dist/scss/templates/dataset.scss +22 -1
- package/dist/scss/templates/header.scss +47 -33
- package/lib/components/ResourcePreview/index.js +33 -21
- package/lib/templates/Dataset/DatasetBody.js +22 -14
- package/lib/templates/Dataset/index.js +4 -2
- package/lib/templates/DatasetSearch/index.js +26 -22
- package/lib/templates/FilteredResource/FilteredResourceBody.js +16 -8
- package/lib/templates/FilteredResource/index.js +4 -2
- package/lib/templates/mobile_header/index.js +8 -9
- package/package.json +1 -1
|
@@ -14,4 +14,25 @@
|
|
|
14
14
|
overflow: hidden;
|
|
15
15
|
text-overflow: ellipsis;
|
|
16
16
|
white-space: nowrap;
|
|
17
|
-
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.dc-c-resize-handle {
|
|
20
|
+
height: 57px;
|
|
21
|
+
background-color: $color-primary-darkest;
|
|
22
|
+
width: 10px;
|
|
23
|
+
min-width: 10px;
|
|
24
|
+
display: block;
|
|
25
|
+
margin-left: -10px;
|
|
26
|
+
// position: absolute;
|
|
27
|
+
// right: 0;
|
|
28
|
+
// top: 0;
|
|
29
|
+
// padding: 10px;
|
|
30
|
+
z-index: 1000;
|
|
31
|
+
border-top: 2px solid rgb(50, 58, 69);
|
|
32
|
+
border-bottom: 2px solid rgb(50, 58, 69);
|
|
33
|
+
// border-right: 1px solid rgb(50, 58, 69) !important;
|
|
34
|
+
&.isResizing,
|
|
35
|
+
&:hover {
|
|
36
|
+
background-color: $color-primary-darker;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
color: $color-white;
|
|
5
5
|
text-decoration: none;
|
|
6
6
|
&::before {
|
|
7
|
-
font-family:
|
|
8
|
-
content:
|
|
7
|
+
font-family: "Font Awesome 5 Pro";
|
|
8
|
+
content: "\f0c9";
|
|
9
9
|
color: $color-white;
|
|
10
10
|
font-size: 18px;
|
|
11
11
|
padding-right: 10px;
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
padding-left: 0;
|
|
27
27
|
padding-bottom: 16px;
|
|
28
28
|
&::before {
|
|
29
|
-
font-family:
|
|
30
|
-
content:
|
|
29
|
+
font-family: "Font Awesome 5 Pro";
|
|
30
|
+
content: "\f00d";
|
|
31
31
|
color: $color-white;
|
|
32
32
|
font-size: 18px;
|
|
33
33
|
padding-right: 10px;
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
z-index: 500;
|
|
51
51
|
height: 100%;
|
|
52
52
|
width: 100%;
|
|
53
|
-
transition: left .7s;
|
|
53
|
+
transition: left 0.7s;
|
|
54
54
|
padding: 50px 0;
|
|
55
55
|
}
|
|
56
56
|
|
|
@@ -78,21 +78,30 @@
|
|
|
78
78
|
width: 48px;
|
|
79
79
|
height: 2px;
|
|
80
80
|
background: $color-primary-alt-light;
|
|
81
|
-
content:
|
|
81
|
+
content: "";
|
|
82
82
|
}
|
|
83
83
|
ul {
|
|
84
84
|
list-style: none;
|
|
85
85
|
margin: 0;
|
|
86
86
|
padding: 0;
|
|
87
87
|
}
|
|
88
|
-
a
|
|
89
|
-
|
|
88
|
+
a,
|
|
89
|
+
a:hover,
|
|
90
|
+
a:focus,
|
|
91
|
+
a:visited {
|
|
92
|
+
display: inline-block;
|
|
90
93
|
color: $color-white;
|
|
94
|
+
text-decoration: none;
|
|
95
|
+
border-bottom: 2px solid transparent;
|
|
96
|
+
}
|
|
97
|
+
a:hover,
|
|
98
|
+
a:active {
|
|
99
|
+
border-bottom: 2px solid $color-primary-alt-light;
|
|
91
100
|
}
|
|
92
101
|
}
|
|
93
102
|
.has-submenu > button::after {
|
|
94
|
-
font-family:
|
|
95
|
-
content:
|
|
103
|
+
font-family: "Font Awesome 5 Pro";
|
|
104
|
+
content: "\f105";
|
|
96
105
|
color: $color-white;
|
|
97
106
|
font-size: 18px;
|
|
98
107
|
padding-right: 10px;
|
|
@@ -106,7 +115,7 @@
|
|
|
106
115
|
font-weight: lighter;
|
|
107
116
|
}
|
|
108
117
|
.has-submenu.open > button::after {
|
|
109
|
-
content:
|
|
118
|
+
content: "\f107";
|
|
110
119
|
}
|
|
111
120
|
.dc-c-header--mobile-links {
|
|
112
121
|
button {
|
|
@@ -123,15 +132,19 @@
|
|
|
123
132
|
z-index: 501;
|
|
124
133
|
background-color: transparent;
|
|
125
134
|
}
|
|
126
|
-
.dc-c-cmsheader-menu a,
|
|
127
|
-
|
|
135
|
+
.dc-c-cmsheader-menu a,
|
|
136
|
+
button {
|
|
137
|
+
color: $color-white;
|
|
138
|
+
}
|
|
139
|
+
.cms-link-container a::before {
|
|
140
|
+
color: $color-white;
|
|
141
|
+
}
|
|
128
142
|
.dc-c-mobile-header--menu {
|
|
129
143
|
left: 0;
|
|
130
144
|
}
|
|
131
145
|
}
|
|
132
146
|
|
|
133
147
|
.cms-link-container {
|
|
134
|
-
|
|
135
148
|
display: block;
|
|
136
149
|
margin-right: 20px;
|
|
137
150
|
// margin-top: -5px;
|
|
@@ -139,14 +152,14 @@
|
|
|
139
152
|
a {
|
|
140
153
|
text-decoration: none;
|
|
141
154
|
border-bottom: none;
|
|
142
|
-
|
|
155
|
+
|
|
143
156
|
margin-right: 20px;
|
|
144
157
|
display: inline-block;
|
|
145
158
|
}
|
|
146
159
|
a::before {
|
|
147
|
-
font-family:
|
|
148
|
-
content:
|
|
149
|
-
color: #
|
|
160
|
+
font-family: "Font Awesome 5 Pro";
|
|
161
|
+
content: "\f33e";
|
|
162
|
+
color: #323a45;
|
|
150
163
|
font-size: 18px;
|
|
151
164
|
padding-right: 10px;
|
|
152
165
|
display: inline-block;
|
|
@@ -166,12 +179,10 @@
|
|
|
166
179
|
}
|
|
167
180
|
}
|
|
168
181
|
|
|
169
|
-
|
|
170
|
-
|
|
171
182
|
.cms-text-container {
|
|
172
183
|
display: block;
|
|
173
184
|
padding-top: 28px;
|
|
174
|
-
color: #
|
|
185
|
+
color: #6f757c;
|
|
175
186
|
}
|
|
176
187
|
|
|
177
188
|
.dc-c-cmsheader-menu {
|
|
@@ -183,15 +194,15 @@
|
|
|
183
194
|
a {
|
|
184
195
|
margin: 3px 7px;
|
|
185
196
|
padding: 0;
|
|
186
|
-
color: #
|
|
197
|
+
color: #323a45;
|
|
187
198
|
text-decoration: none;
|
|
188
199
|
border-bottom: 1px solid;
|
|
189
200
|
border-bottom-color: #eee;
|
|
190
|
-
border-bottom-color: rgba(255,255,255,0.2);
|
|
201
|
+
border-bottom-color: rgba(255, 255, 255, 0.2);
|
|
191
202
|
}
|
|
192
203
|
a:hover,
|
|
193
204
|
a:active {
|
|
194
|
-
border-bottom: 2px solid #
|
|
205
|
+
border-bottom: 2px solid #323a45;
|
|
195
206
|
}
|
|
196
207
|
}
|
|
197
208
|
|
|
@@ -207,7 +218,7 @@
|
|
|
207
218
|
height: 85px;
|
|
208
219
|
width: 240px;
|
|
209
220
|
float: left;
|
|
210
|
-
border-right: 1px solid #
|
|
221
|
+
border-right: 1px solid #d6d7d9;
|
|
211
222
|
a {
|
|
212
223
|
margin-top: 28px;
|
|
213
224
|
margin-bottom: 20px;
|
|
@@ -270,9 +281,13 @@ nav.dc-c-site-menu {
|
|
|
270
281
|
}
|
|
271
282
|
}
|
|
272
283
|
|
|
273
|
-
nav > ul li
|
|
284
|
+
nav > ul li ul {
|
|
285
|
+
display: none;
|
|
286
|
+
}
|
|
274
287
|
|
|
275
|
-
nav > ul li.open ul {
|
|
288
|
+
nav > ul li.open ul {
|
|
289
|
+
display: block;
|
|
290
|
+
}
|
|
276
291
|
li.has-submenu {
|
|
277
292
|
position: relative;
|
|
278
293
|
}
|
|
@@ -304,7 +319,7 @@ li.has-submenu {
|
|
|
304
319
|
}
|
|
305
320
|
|
|
306
321
|
div.ds-c-dialog-wrap {
|
|
307
|
-
background-color: rgba(0,113,188,0.9);
|
|
322
|
+
background-color: rgba(0, 113, 188, 0.9);
|
|
308
323
|
}
|
|
309
324
|
|
|
310
325
|
div.ds-c-dialog {
|
|
@@ -325,8 +340,8 @@ div.ds-c-dialog button {
|
|
|
325
340
|
top: 24px;
|
|
326
341
|
right: 24px;
|
|
327
342
|
&::after {
|
|
328
|
-
font-family:
|
|
329
|
-
content:
|
|
343
|
+
font-family: "Font Awesome 5 Pro";
|
|
344
|
+
content: "\f00d";
|
|
330
345
|
height: 22px;
|
|
331
346
|
font-size: 20px;
|
|
332
347
|
line-height: 20px;
|
|
@@ -342,8 +357,8 @@ div.ds-c-dialog button {
|
|
|
342
357
|
|
|
343
358
|
.dc-c-search-modal--button {
|
|
344
359
|
&::before {
|
|
345
|
-
font-family:
|
|
346
|
-
content:
|
|
360
|
+
font-family: "Font Awesome 5 Pro";
|
|
361
|
+
content: "\f002";
|
|
347
362
|
color: $color-white;
|
|
348
363
|
font-size: 18px;
|
|
349
364
|
padding-right: 10px;
|
|
@@ -357,4 +372,3 @@ div.ds-c-dialog button {
|
|
|
357
372
|
font-weight: lighter;
|
|
358
373
|
}
|
|
359
374
|
}
|
|
360
|
-
|
|
@@ -16,6 +16,10 @@ var _dataCatalogServices = require("@civicactions/data-catalog-services");
|
|
|
16
16
|
|
|
17
17
|
var _designSystem = require("@cmsgov/design-system");
|
|
18
18
|
|
|
19
|
+
function calculateMaxWidth(previewSize) {
|
|
20
|
+
return Math.floor(previewSize * 0.84);
|
|
21
|
+
}
|
|
22
|
+
|
|
19
23
|
function prepareColumns(columns, schema) {
|
|
20
24
|
return columns.map(function (column) {
|
|
21
25
|
return {
|
|
@@ -38,7 +42,7 @@ function DefaultColumnFilter(_ref) {
|
|
|
38
42
|
},
|
|
39
43
|
labelClassName: "ds-u-visibility--screen-reader",
|
|
40
44
|
name: accessor,
|
|
41
|
-
value: filterValue ||
|
|
45
|
+
value: filterValue || ""
|
|
42
46
|
});
|
|
43
47
|
}
|
|
44
48
|
|
|
@@ -48,26 +52,38 @@ var ResourcePreview = function ResourcePreview(_ref2) {
|
|
|
48
52
|
options = _ref2.options,
|
|
49
53
|
resource = _ref2.resource,
|
|
50
54
|
customColumns = _ref2.customColumns,
|
|
51
|
-
truncateCellHeader = _ref2.truncateCellHeader
|
|
55
|
+
truncateCellHeader = _ref2.truncateCellHeader,
|
|
56
|
+
columnSettings = _ref2.columnSettings;
|
|
57
|
+
|
|
58
|
+
var previewContainer = _react["default"].useRef(null);
|
|
59
|
+
|
|
60
|
+
var columnDefaults = {
|
|
61
|
+
width: 200,
|
|
62
|
+
maxWidth: previewContainer.current ? calculateMaxWidth(previewContainer.current.offsetWidth) : 300,
|
|
63
|
+
minWidth: 50
|
|
64
|
+
};
|
|
65
|
+
console.log(previewContainer.current ? previewContainer.current.offsetWidth : "loading", columnDefaults);
|
|
52
66
|
var tableClasses = {
|
|
53
|
-
tableContainerClassName:
|
|
54
|
-
headerCellClassName:
|
|
55
|
-
headerGroupClassName:
|
|
67
|
+
tableContainerClassName: "dc-c-table-container",
|
|
68
|
+
headerCellClassName: "ds-u-border--dark ds-u-padding--2 ds-u-border-y--2 ds-u-font-weight--bold dc-c-table-header-cell",
|
|
69
|
+
headerGroupClassName: "dc-c-table-header-group",
|
|
56
70
|
headerCellTextClassName: "".concat(truncateCellHeader ? "dc-truncate" : "", " ds-u-display--inline-block"),
|
|
57
|
-
cellEvenRowClassName:
|
|
71
|
+
cellEvenRowClassName: "ds-u-fill--gray-lightest",
|
|
58
72
|
cellClassName: "".concat(tablePadding, " dc-truncate ds-u-padding-x--1"),
|
|
59
|
-
filterTitleClassName:
|
|
60
|
-
headerFilterClassName:
|
|
61
|
-
headerFilterCellClassName:
|
|
62
|
-
columnIsSortedClassName:
|
|
63
|
-
columnIsSortedAscClassName:
|
|
64
|
-
columnIsSortedDecClassName:
|
|
65
|
-
tableColumnResizer:
|
|
66
|
-
tableColumnIsResizing:
|
|
73
|
+
filterTitleClassName: "ds-u-font-weight--bold ds-u-padding-left--2 ds-u-fill--gray-lightest ds-u-display--block",
|
|
74
|
+
headerFilterClassName: "ds-u-padding-top--1 ds-u-fill--gray-lightest",
|
|
75
|
+
headerFilterCellClassName: "ds-u-padding-x--1 ds-u-padding-bottom--0 ds-u-border-bottom--0 ds-u-fill--gray-lightest",
|
|
76
|
+
columnIsSortedClassName: "dc-c-sort dc-c-sort--default",
|
|
77
|
+
columnIsSortedAscClassName: "dc-c-sort dc-c-sort--asc",
|
|
78
|
+
columnIsSortedDecClassName: "dc-c-sort dc-c-sort--desc",
|
|
79
|
+
tableColumnResizer: "dc-c-resize-handle",
|
|
80
|
+
tableColumnIsResizing: "isResizing"
|
|
67
81
|
};
|
|
68
82
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
83
|
+
ref: previewContainer,
|
|
84
|
+
id: "resource-preview",
|
|
69
85
|
className: "ds-u-overflow--auto ds-u-border-x--1 ds-u-border-bottom--1"
|
|
70
|
-
}, /*#__PURE__*/_react["default"].createElement(_dataCatalogComponents.DataTable, {
|
|
86
|
+
}, previewContainer.current && /*#__PURE__*/_react["default"].createElement(_dataCatalogComponents.DataTable, {
|
|
71
87
|
filterTitle: "Filter columns",
|
|
72
88
|
data: resource.values,
|
|
73
89
|
columns: customColumns ? customColumns : prepareColumns(resource.columns, resource.schema[id]),
|
|
@@ -82,11 +98,7 @@ var ResourcePreview = function ResourcePreview(_ref2) {
|
|
|
82
98
|
sortTransform: _dataCatalogServices.transformTableSortToQuerySort,
|
|
83
99
|
tableClasses: tableClasses,
|
|
84
100
|
className: "dc-c-datatable",
|
|
85
|
-
columnDefaults:
|
|
86
|
-
width: 200,
|
|
87
|
-
maxWidth: 300,
|
|
88
|
-
minWidth: 50
|
|
89
|
-
},
|
|
101
|
+
columnDefaults: columnDefaults,
|
|
90
102
|
customColumnFilter: DefaultColumnFilter,
|
|
91
103
|
options: options,
|
|
92
104
|
CustomLoadingComponent: /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -102,7 +114,7 @@ var ResourcePreview = function ResourcePreview(_ref2) {
|
|
|
102
114
|
|
|
103
115
|
ResourcePreview.defaultProps = {
|
|
104
116
|
options: {
|
|
105
|
-
layout:
|
|
117
|
+
layout: "flex",
|
|
106
118
|
columnFilter: false,
|
|
107
119
|
columnSort: true,
|
|
108
120
|
columnResize: true
|
|
@@ -47,15 +47,16 @@ var DatasetBody = function DatasetBody(_ref) {
|
|
|
47
47
|
var id = _ref.id,
|
|
48
48
|
dataset = _ref.dataset,
|
|
49
49
|
additionalParams = _ref.additionalParams,
|
|
50
|
-
customColumns = _ref.customColumns
|
|
50
|
+
customColumns = _ref.customColumns,
|
|
51
|
+
columnSettings = _ref.columnSettings;
|
|
51
52
|
var apiDocs = (0, _react.useRef)();
|
|
52
53
|
|
|
53
|
-
var _useState = (0, _react.useState)(
|
|
54
|
+
var _useState = (0, _react.useState)("ds-u-padding-y--1"),
|
|
54
55
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
55
56
|
tablePadding = _useState2[0],
|
|
56
57
|
setTablePadding = _useState2[1];
|
|
57
58
|
|
|
58
|
-
var _useState3 = (0, _react.useState)(
|
|
59
|
+
var _useState3 = (0, _react.useState)(""),
|
|
59
60
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
60
61
|
fileFormat = _useState4[0],
|
|
61
62
|
setFileFormat = _useState4[1];
|
|
@@ -67,18 +68,18 @@ var DatasetBody = function DatasetBody(_ref) {
|
|
|
67
68
|
distribution = distribution_array[0];
|
|
68
69
|
}
|
|
69
70
|
|
|
70
|
-
var resource = (0, _dataCatalogServices.useDatastore)(
|
|
71
|
+
var resource = (0, _dataCatalogServices.useDatastore)("", process.env.REACT_APP_ROOT_URL, {
|
|
71
72
|
limit: 10,
|
|
72
73
|
manual: true
|
|
73
74
|
}, additionalParams);
|
|
74
75
|
(0, _react.useEffect)(function () {
|
|
75
76
|
if (distribution.identifier) {
|
|
76
|
-
var localFileFormat =
|
|
77
|
+
var localFileFormat = "";
|
|
77
78
|
|
|
78
79
|
if (distribution.data.format) {
|
|
79
80
|
localFileFormat = distribution.data.format.toUpperCase();
|
|
80
81
|
} else if (distribution.data.mediaType) {
|
|
81
|
-
var mediaType = distribution.data.mediaType.split(
|
|
82
|
+
var mediaType = distribution.data.mediaType.split("/");
|
|
82
83
|
|
|
83
84
|
if (mediaType.length && mediaType[1]) {
|
|
84
85
|
localFileFormat = mediaType[1].toUpperCase();
|
|
@@ -129,25 +130,32 @@ var DatasetBody = function DatasetBody(_ref) {
|
|
|
129
130
|
id: distribution.identifier,
|
|
130
131
|
tablePadding: tablePadding,
|
|
131
132
|
resource: resource,
|
|
132
|
-
customColumns: (0, _functions.buildCustomColHeaders)(customColumns, resource.columns, resource.schema[distribution_array[0].identifier])
|
|
133
|
+
customColumns: (0, _functions.buildCustomColHeaders)(customColumns, resource.columns, resource.schema[distribution_array[0].identifier]),
|
|
134
|
+
columnSettings: columnSettings,
|
|
135
|
+
options: {
|
|
136
|
+
layout: "flex",
|
|
137
|
+
columnFilter: false,
|
|
138
|
+
columnSort: true,
|
|
139
|
+
columnResize: true
|
|
140
|
+
}
|
|
133
141
|
}), /*#__PURE__*/_react["default"].createElement(_ResourceFooter["default"], {
|
|
134
142
|
resource: resource
|
|
135
143
|
}), /*#__PURE__*/_react["default"].createElement(_ResourceInformation["default"], {
|
|
136
144
|
resource: resource
|
|
137
|
-
})) : /*#__PURE__*/_react["default"].createElement(Spinner, null)) :
|
|
145
|
+
})) : /*#__PURE__*/_react["default"].createElement(Spinner, null)) : "", dataset.identifier && /*#__PURE__*/_react["default"].createElement(_DatasetAdditionalInformation["default"], {
|
|
138
146
|
datasetInfo: dataset
|
|
139
147
|
}), Object.keys(distribution).length && fileFormat === "CSV" && dataset.identifier ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
140
148
|
ref: apiDocs
|
|
141
149
|
}, /*#__PURE__*/_react["default"].createElement("h2", null, "Try the API"), /*#__PURE__*/_react["default"].createElement(_swaggerUiReact["default"], {
|
|
142
|
-
url: "".concat(process.env.REACT_APP_ROOT_URL, "/metastore/schemas/dataset/items/").concat(dataset.identifier, "/docs").concat(additionalParams && additionalParams.ACA ?
|
|
143
|
-
docExpansion:
|
|
150
|
+
url: "".concat(process.env.REACT_APP_ROOT_URL, "/metastore/schemas/dataset/items/").concat(dataset.identifier, "/docs").concat(additionalParams && additionalParams.ACA ? "?ACA=" + additionalParams.ACA + "&redirect=false" : ""),
|
|
151
|
+
docExpansion: "list",
|
|
144
152
|
defaultModelsExpandDepth: -1
|
|
145
|
-
})) :
|
|
153
|
+
})) : ""), /*#__PURE__*/_react["default"].createElement("div", {
|
|
146
154
|
className: "ds-l-md-col--3 ds-l-sm-col--12"
|
|
147
155
|
}, Object.keys(distribution).length ? /*#__PURE__*/_react["default"].createElement(_DatasetDownloads["default"], {
|
|
148
156
|
downloadURL: distribution.data.downloadURL,
|
|
149
157
|
type: fileFormat
|
|
150
|
-
}) :
|
|
158
|
+
}) : "", /*#__PURE__*/_react["default"].createElement(_DatasetTags["default"], {
|
|
151
159
|
keywords: dataset.keyword
|
|
152
160
|
}), Object.keys(distribution).length && fileFormat === "CSV" ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
153
161
|
className: "dc-c-dataset-tags ds-u-margin-bottom--3 ds-u-padding--2 ds-u-border ds-u-border--1"
|
|
@@ -157,11 +165,11 @@ var DatasetBody = function DatasetBody(_ref) {
|
|
|
157
165
|
variation: "transparent",
|
|
158
166
|
onClick: function onClick() {
|
|
159
167
|
return window.scrollTo({
|
|
160
|
-
behavior:
|
|
168
|
+
behavior: "smooth",
|
|
161
169
|
top: apiDocs.current.offsetTop
|
|
162
170
|
});
|
|
163
171
|
}
|
|
164
|
-
}, "Scroll to dataset API")) :
|
|
172
|
+
}, "Scroll to dataset API")) : "")));
|
|
165
173
|
};
|
|
166
174
|
|
|
167
175
|
DatasetBody.propTypes = {
|
|
@@ -28,7 +28,8 @@ var Dataset = function Dataset(_ref) {
|
|
|
28
28
|
rootUrl = _ref.rootUrl,
|
|
29
29
|
additionalParams = _ref.additionalParams,
|
|
30
30
|
customColumns = _ref.customColumns,
|
|
31
|
-
setDatasetTitle = _ref.setDatasetTitle
|
|
31
|
+
setDatasetTitle = _ref.setDatasetTitle,
|
|
32
|
+
columnSettings = _ref.columnSettings;
|
|
32
33
|
var metastore = (0, _dataCatalogServices.useMetastoreDataset)(id, rootUrl, additionalParams);
|
|
33
34
|
var dataset = metastore.dataset;
|
|
34
35
|
var title = dataset.title ? dataset.title : "";
|
|
@@ -54,7 +55,8 @@ var Dataset = function Dataset(_ref) {
|
|
|
54
55
|
id: id,
|
|
55
56
|
dataset: dataset,
|
|
56
57
|
additionalParams: additionalParams,
|
|
57
|
-
customColumns: customColumns ? customColumns : []
|
|
58
|
+
customColumns: customColumns ? customColumns : [],
|
|
59
|
+
columnSettings: columnSettings
|
|
58
60
|
}));
|
|
59
61
|
};
|
|
60
62
|
|
|
@@ -37,6 +37,12 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
37
37
|
|
|
38
38
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
39
39
|
|
|
40
|
+
var defaultSort = {
|
|
41
|
+
modified: "desc",
|
|
42
|
+
title: "asc",
|
|
43
|
+
"default": "modified"
|
|
44
|
+
};
|
|
45
|
+
|
|
40
46
|
function updateUrl(selectedFacets, fulltext, sort) {
|
|
41
47
|
var newParams = _objectSpread({}, selectedFacets);
|
|
42
48
|
|
|
@@ -59,13 +65,13 @@ function selectedFacetsMessage(facets, alternateTitles) {
|
|
|
59
65
|
var keys = Object.keys(facets);
|
|
60
66
|
keys.forEach(function (k) {
|
|
61
67
|
if (facets[k].length) {
|
|
62
|
-
message.push("".concat(alternateTitles[k], ": ").concat(facets[k].join(
|
|
68
|
+
message.push("".concat(alternateTitles[k], ": ").concat(facets[k].join(", ")));
|
|
63
69
|
}
|
|
64
70
|
});
|
|
65
|
-
return message.join(
|
|
71
|
+
return message.join(" & ");
|
|
66
72
|
}
|
|
67
73
|
|
|
68
|
-
function transformUrlParamsToSearchObject(searchParams, facetList) {
|
|
74
|
+
function transformUrlParamsToSearchObject(searchParams, facetList, sortOptions) {
|
|
69
75
|
var params = _qs["default"].parse(searchParams, {
|
|
70
76
|
ignoreQueryPrefix: true
|
|
71
77
|
});
|
|
@@ -77,8 +83,8 @@ function transformUrlParamsToSearchObject(searchParams, facetList) {
|
|
|
77
83
|
return {
|
|
78
84
|
selectedFacets: selectedFacets,
|
|
79
85
|
fulltext: params.fulltext,
|
|
80
|
-
sort: !params.sort ? "
|
|
81
|
-
sortOrder: !params.sort
|
|
86
|
+
sort: !params.sort ? sortOptions["default"] : params.sort,
|
|
87
|
+
sortOrder: !params.sort ? sortOptions[sortOptions["default"]] : sortOptions[params.sort]
|
|
82
88
|
};
|
|
83
89
|
}
|
|
84
90
|
|
|
@@ -91,14 +97,17 @@ var DatasetSearch = function DatasetSearch(_ref) {
|
|
|
91
97
|
fulltextLabelClassName = _ref.fulltextLabelClassName,
|
|
92
98
|
fulltextPlaceholder = _ref.fulltextPlaceholder,
|
|
93
99
|
formClassName = _ref.formClassName,
|
|
94
|
-
additionalParams = _ref.additionalParams
|
|
100
|
+
additionalParams = _ref.additionalParams,
|
|
101
|
+
sortOptions = _ref.sortOptions;
|
|
102
|
+
|
|
103
|
+
var sortOpt = _objectSpread(_objectSpread({}, defaultSort), sortOptions);
|
|
95
104
|
|
|
96
105
|
var _useState = (0, _react.useState)(null),
|
|
97
106
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
98
107
|
currentResultNumbers = _useState2[0],
|
|
99
108
|
setCurrentResultNumbers = _useState2[1];
|
|
100
109
|
|
|
101
|
-
var _useSearchAPI = (0, _dataCatalogServices.useSearchAPI)(rootUrl, _objectSpread({}, transformUrlParamsToSearchObject(location.search, [
|
|
110
|
+
var _useSearchAPI = (0, _dataCatalogServices.useSearchAPI)(rootUrl, _objectSpread({}, transformUrlParamsToSearchObject(location.search, ["theme", "keyword"], sortOpt)), additionalParams),
|
|
102
111
|
fulltext = _useSearchAPI.fulltext,
|
|
103
112
|
selectedFacets = _useSearchAPI.selectedFacets,
|
|
104
113
|
loading = _useSearchAPI.loading,
|
|
@@ -119,7 +128,7 @@ var DatasetSearch = function DatasetSearch(_ref) {
|
|
|
119
128
|
theme = _separateFacets.theme,
|
|
120
129
|
keyword = _separateFacets.keyword;
|
|
121
130
|
|
|
122
|
-
var _useState3 = (0, _react.useState)(
|
|
131
|
+
var _useState3 = (0, _react.useState)(""),
|
|
123
132
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
124
133
|
filterText = _useState4[0],
|
|
125
134
|
setFilterText = _useState4[1];
|
|
@@ -133,7 +142,7 @@ var DatasetSearch = function DatasetSearch(_ref) {
|
|
|
133
142
|
_react["default"].useEffect(function () {
|
|
134
143
|
var url = new URL(window.location);
|
|
135
144
|
var searchParams = updateUrl(selectedFacets, fulltext, sort);
|
|
136
|
-
window.history.pushState({},
|
|
145
|
+
window.history.pushState({}, "", "".concat(url.origin).concat(url.pathname).concat(searchParams));
|
|
137
146
|
}, [fulltext, selectedFacets, sort]);
|
|
138
147
|
|
|
139
148
|
(0, _react.useEffect)(function () {
|
|
@@ -153,12 +162,7 @@ var DatasetSearch = function DatasetSearch(_ref) {
|
|
|
153
162
|
}
|
|
154
163
|
|
|
155
164
|
function updateSort(value) {
|
|
156
|
-
|
|
157
|
-
setSortOrder('desc');
|
|
158
|
-
} else if (value === 'title') {
|
|
159
|
-
setSortOrder('asc');
|
|
160
|
-
}
|
|
161
|
-
|
|
165
|
+
setSortOrder(sortOpt[value]);
|
|
162
166
|
setSort(value);
|
|
163
167
|
}
|
|
164
168
|
|
|
@@ -201,11 +205,11 @@ var DatasetSearch = function DatasetSearch(_ref) {
|
|
|
201
205
|
className: "ds-u-display--flex ds-u-justify-content--between ds-u-align-items--end"
|
|
202
206
|
}, /*#__PURE__*/_react["default"].createElement("div", null, currentResultNumbers && /*#__PURE__*/_react["default"].createElement("p", {
|
|
203
207
|
className: "ds-u-margin-y--0"
|
|
204
|
-
}, "Showing ", currentResultNumbers.startingNumber, " - ", currentResultNumbers.endingNumber, " of ", currentResultNumbers.total, " datasets"), /*#__PURE__*/_react["default"].createElement("p", {
|
|
208
|
+
}, "Showing ", currentResultNumbers.startingNumber, " -", " ", currentResultNumbers.endingNumber, " of", " ", currentResultNumbers.total, " datasets"), /*#__PURE__*/_react["default"].createElement("p", {
|
|
205
209
|
className: "ds-u-margin-y--0"
|
|
206
210
|
}, selectedFacetsMessage(selectedFacets, {
|
|
207
|
-
theme:
|
|
208
|
-
keyword:
|
|
211
|
+
theme: "Categories",
|
|
212
|
+
keyword: "Tags"
|
|
209
213
|
}))), /*#__PURE__*/_react["default"].createElement(_designSystem.Button, {
|
|
210
214
|
className: "ds-u-padding--0 dc-c-clear-filters",
|
|
211
215
|
variation: "transparent",
|
|
@@ -231,11 +235,11 @@ var DatasetSearch = function DatasetSearch(_ref) {
|
|
|
231
235
|
className: "ds-u-padding--2 ds-u-margin-bottom--4 ds-u-border--1"
|
|
232
236
|
}, /*#__PURE__*/_react["default"].createElement(_designSystem.Dropdown, {
|
|
233
237
|
options: [{
|
|
234
|
-
label:
|
|
235
|
-
value:
|
|
238
|
+
label: "Recently Updated",
|
|
239
|
+
value: "modified"
|
|
236
240
|
}, {
|
|
237
|
-
label:
|
|
238
|
-
value:
|
|
241
|
+
label: "Alphabetical",
|
|
242
|
+
value: "title"
|
|
239
243
|
}],
|
|
240
244
|
value: sort,
|
|
241
245
|
label: "Sort by",
|
|
@@ -50,9 +50,10 @@ var FilteredResourceBody = function FilteredResourceBody(_ref) {
|
|
|
50
50
|
location = _ref.location,
|
|
51
51
|
apiDocPage = _ref.apiDocPage,
|
|
52
52
|
additionalParams = _ref.additionalParams,
|
|
53
|
-
customColumns = _ref.customColumns
|
|
53
|
+
customColumns = _ref.customColumns,
|
|
54
|
+
columnSettings = _ref.columnSettings;
|
|
54
55
|
|
|
55
|
-
var _React$useState = _react["default"].useState(
|
|
56
|
+
var _React$useState = _react["default"].useState("ds-u-padding-y--1"),
|
|
56
57
|
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
57
58
|
tablePadding = _React$useState2[0],
|
|
58
59
|
setTablePadding = _React$useState2[1];
|
|
@@ -79,7 +80,7 @@ var FilteredResourceBody = function FilteredResourceBody(_ref) {
|
|
|
79
80
|
})) : {
|
|
80
81
|
conditions: []
|
|
81
82
|
};
|
|
82
|
-
var resource = (0, _dataCatalogServices.useDatastore)(
|
|
83
|
+
var resource = (0, _dataCatalogServices.useDatastore)("", process.env.REACT_APP_ROOT_URL, _objectSpread(_objectSpread({}, options), {}, {
|
|
83
84
|
limit: 25,
|
|
84
85
|
manual: true
|
|
85
86
|
}), additionalParams);
|
|
@@ -151,7 +152,7 @@ var FilteredResourceBody = function FilteredResourceBody(_ref) {
|
|
|
151
152
|
className: "ds-u-text-align--left ds-u-font-weight--normal",
|
|
152
153
|
onClick: function onClick() {
|
|
153
154
|
return window.scrollTo({
|
|
154
|
-
behavior:
|
|
155
|
+
behavior: "smooth",
|
|
155
156
|
top: apiDocs.current.offsetTop
|
|
156
157
|
});
|
|
157
158
|
}
|
|
@@ -171,7 +172,14 @@ var FilteredResourceBody = function FilteredResourceBody(_ref) {
|
|
|
171
172
|
id: distribution.identifier,
|
|
172
173
|
tablePadding: tablePadding,
|
|
173
174
|
resource: resource,
|
|
174
|
-
customColumns: (0, _functions.buildCustomColHeaders)(customColumns, resource.columns, resource.schema[distribution_array[distIndex].identifier])
|
|
175
|
+
customColumns: (0, _functions.buildCustomColHeaders)(customColumns, resource.columns, resource.schema[distribution_array[distIndex].identifier]),
|
|
176
|
+
columnSettings: columnSettings,
|
|
177
|
+
options: {
|
|
178
|
+
layout: "flex",
|
|
179
|
+
columnFilter: false,
|
|
180
|
+
columnSort: true,
|
|
181
|
+
columnResize: true
|
|
182
|
+
}
|
|
175
183
|
}), /*#__PURE__*/_react["default"].createElement(_ResourceFooter["default"], {
|
|
176
184
|
resource: resource
|
|
177
185
|
}), filtersOpen && /*#__PURE__*/_react["default"].createElement(_ResourceFilter["default"], {
|
|
@@ -183,14 +191,14 @@ var FilteredResourceBody = function FilteredResourceBody(_ref) {
|
|
|
183
191
|
})) : /*#__PURE__*/_react["default"].createElement(_designSystem.Spinner, null), dataset.identifier && /*#__PURE__*/_react["default"].createElement("div", {
|
|
184
192
|
ref: apiDocs
|
|
185
193
|
}, /*#__PURE__*/_react["default"].createElement("h2", null, "Try the API"), /*#__PURE__*/_react["default"].createElement(_swaggerUiReact["default"], {
|
|
186
|
-
url: "".concat(process.env.REACT_APP_ROOT_URL, "/metastore/schemas/dataset/items/").concat(dataset.identifier, "/docs").concat(additionalParams && additionalParams.ACA ?
|
|
187
|
-
docExpansion:
|
|
194
|
+
url: "".concat(process.env.REACT_APP_ROOT_URL, "/metastore/schemas/dataset/items/").concat(dataset.identifier, "/docs").concat(additionalParams && additionalParams.ACA ? "?ACA=" + additionalParams.ACA + "&redirect=false" : ""),
|
|
195
|
+
docExpansion: "list",
|
|
188
196
|
defaultModelsExpandDepth: -1
|
|
189
197
|
}))));
|
|
190
198
|
};
|
|
191
199
|
|
|
192
200
|
FilteredResourceBody.defaultProps = {
|
|
193
|
-
apiDocPage:
|
|
201
|
+
apiDocPage: "/api"
|
|
194
202
|
};
|
|
195
203
|
var _default = FilteredResourceBody;
|
|
196
204
|
exports["default"] = _default;
|
|
@@ -30,7 +30,8 @@ var FilteredResource = function FilteredResource(_ref) {
|
|
|
30
30
|
apiDocPage = _ref.apiDocPage,
|
|
31
31
|
additionalParams = _ref.additionalParams,
|
|
32
32
|
customColumns = _ref.customColumns,
|
|
33
|
-
setDatasetTitle = _ref.setDatasetTitle
|
|
33
|
+
setDatasetTitle = _ref.setDatasetTitle,
|
|
34
|
+
columnSettings = _ref.columnSettings;
|
|
34
35
|
|
|
35
36
|
var _useState = (0, _react.useState)(false),
|
|
36
37
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
@@ -81,7 +82,8 @@ var FilteredResource = function FilteredResource(_ref) {
|
|
|
81
82
|
location: location,
|
|
82
83
|
apiDocPage: apiDocPage,
|
|
83
84
|
additionalParams: additionalParams,
|
|
84
|
-
customColumns: customColumns ? customColumns : []
|
|
85
|
+
customColumns: customColumns ? customColumns : [],
|
|
86
|
+
columnSettings: columnSettings
|
|
85
87
|
})));
|
|
86
88
|
};
|
|
87
89
|
|
|
@@ -70,7 +70,7 @@ var MobileHeader = function MobileHeader(_ref) {
|
|
|
70
70
|
|
|
71
71
|
function handleClick(event) {
|
|
72
72
|
// Links are wrapped in spans, this checks if the parent is an A, also check if in the search modal.
|
|
73
|
-
if (event.target.parentElement.nodeName ===
|
|
73
|
+
if (event.target.parentElement.nodeName === "A" || event.target.closest(".dc-c-search-dialog")) {
|
|
74
74
|
setMenuOpen(false);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
@@ -95,10 +95,10 @@ var MobileHeader = function MobileHeader(_ref) {
|
|
|
95
95
|
};
|
|
96
96
|
}, [menu.current, menuOpen]);
|
|
97
97
|
return /*#__PURE__*/_react["default"].createElement("header", {
|
|
98
|
-
className: "dc-c-header dc-c-mobile-header ".concat(menuOpen ?
|
|
98
|
+
className: "dc-c-header dc-c-mobile-header ".concat(menuOpen ? "menu-open" : ""),
|
|
99
99
|
"aria-label": "Site header"
|
|
100
100
|
}, includeTopNav && /*#__PURE__*/_react["default"].createElement("div", {
|
|
101
|
-
className: "dc-c-cmsheader ds-u-display--flex ds-u-padding-x--1 ds-u-align-items--center ".concat(mobile ?
|
|
101
|
+
className: "dc-c-cmsheader ds-u-display--flex ds-u-padding-x--1 ds-u-align-items--center ".concat(mobile ? "ds-u-justify-content--center" : "ds-u-justify-content--between")
|
|
102
102
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
103
103
|
className: "cms-link-container"
|
|
104
104
|
}, /*#__PURE__*/_react["default"].createElement("a", {
|
|
@@ -161,7 +161,6 @@ var MobileHeader = function MobileHeader(_ref) {
|
|
|
161
161
|
}, customSearch ? customSearch : /*#__PURE__*/_react["default"].createElement(_SearchModal["default"], {
|
|
162
162
|
searchFunc: function searchFunc(e) {
|
|
163
163
|
e.preventDefault();
|
|
164
|
-
console.log(e.target.value);
|
|
165
164
|
},
|
|
166
165
|
searchModalText: searchModalText,
|
|
167
166
|
buttonSize: "small"
|
|
@@ -178,18 +177,18 @@ var MobileHeader = function MobileHeader(_ref) {
|
|
|
178
177
|
links: links.topnav,
|
|
179
178
|
menuName: "CMS Main Header",
|
|
180
179
|
menuId: "cms-mobile-header",
|
|
181
|
-
linkClasses: "ds-u-margin-left--1 ds-u-
|
|
180
|
+
linkClasses: "ds-u-margin-left--1 ds-u-margin-bottom--2",
|
|
182
181
|
menuClasses: "dc-c-header--links ds-u-font-size--small"
|
|
183
182
|
}))));
|
|
184
183
|
};
|
|
185
184
|
|
|
186
185
|
MobileHeader.defaultProps = {
|
|
187
186
|
org: {
|
|
188
|
-
tagline:
|
|
189
|
-
url:
|
|
190
|
-
urlTitle:
|
|
187
|
+
tagline: "The Centers for Medicare and Medicaid Services",
|
|
188
|
+
url: "https://cms.gov",
|
|
189
|
+
urlTitle: "CMS.gov Centers for Medicare & Medicaid Services",
|
|
191
190
|
logo: _CMSGovLogoO["default"],
|
|
192
|
-
logoAltText:
|
|
191
|
+
logoAltText: "CMS.gov Centers for Medicare & Medicaid Services",
|
|
193
192
|
inverseLogo: _CMSgov2xWhiteO["default"]
|
|
194
193
|
},
|
|
195
194
|
includeTopNav: true
|