@civicactions/cmsds-open-data-components 0.20.0-alpha.2 → 1.1.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/lib/components/DatasetSearchFacets/index.js +1 -1
- package/lib/components/ResourceConditionField/ResourceConditionalField.test.js +20 -0
- package/lib/components/ResourceConditionField/index.js +146 -30
- package/lib/components/ResourceFilter/index.js +26 -10
- package/lib/components/ResourceFilter/resourcefilter.test.js +440 -0
- package/lib/components/ResourcePreview/index.js +1 -1
- package/lib/index.js +52 -52
- package/lib/templates/APIPage/index.js +3 -2
- package/lib/templates/Dataset/DatasetBody.js +8 -3
- package/lib/templates/Dataset/index.js +4 -2
- package/lib/templates/DatasetSearch/index.js +1 -1
- package/lib/templates/FilteredResource/FilteredResourceBody.js +9 -4
- package/lib/templates/FilteredResource/functions.js +23 -0
- package/lib/templates/FilteredResource/index.js +4 -2
- package/package.json +3 -2
|
@@ -7,8 +7,8 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.isSelected = isSelected;
|
|
11
10
|
exports["default"] = void 0;
|
|
11
|
+
exports.isSelected = isSelected;
|
|
12
12
|
|
|
13
13
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
14
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
require("@testing-library/jest-dom/extend-expect");
|
|
10
|
+
|
|
11
|
+
var _index = _interopRequireDefault(require("./index"));
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @jest-environment jsdom
|
|
15
|
+
*/
|
|
16
|
+
describe('<ResourceConditionalField />', function () {
|
|
17
|
+
test('Placeholder', function () {
|
|
18
|
+
expect(true).toBeTruthy();
|
|
19
|
+
});
|
|
20
|
+
});
|
|
@@ -9,15 +9,33 @@ exports["default"] = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
11
|
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
12
14
|
var _react = _interopRequireDefault(require("react"));
|
|
13
15
|
|
|
14
16
|
var _designSystem = require("@cmsgov/design-system");
|
|
15
17
|
|
|
18
|
+
var _reactDatepicker = _interopRequireDefault(require("react-datepicker"));
|
|
19
|
+
|
|
16
20
|
var _close = _interopRequireDefault(require("../../assets/icons/close"));
|
|
17
21
|
|
|
22
|
+
require("react-datepicker/dist/react-datepicker.css");
|
|
23
|
+
|
|
24
|
+
function convertUTCToLocalDate(date) {
|
|
25
|
+
if (!date) {
|
|
26
|
+
return date;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
date = new Date(date);
|
|
30
|
+
date = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());
|
|
31
|
+
return date;
|
|
32
|
+
}
|
|
33
|
+
|
|
18
34
|
function buildOperatorOptions(type) {
|
|
19
35
|
switch (type) {
|
|
20
|
-
case 'text':
|
|
36
|
+
case 'text': // Will change from text to string in future update
|
|
37
|
+
|
|
38
|
+
case 'string':
|
|
21
39
|
return [{
|
|
22
40
|
label: "Is",
|
|
23
41
|
value: "="
|
|
@@ -32,8 +50,30 @@ function buildOperatorOptions(type) {
|
|
|
32
50
|
value: "in"
|
|
33
51
|
}];
|
|
34
52
|
|
|
53
|
+
case 'date':
|
|
54
|
+
return [{
|
|
55
|
+
label: "Is",
|
|
56
|
+
value: "="
|
|
57
|
+
}, {
|
|
58
|
+
label: "Is Not",
|
|
59
|
+
value: "<>"
|
|
60
|
+
}, {
|
|
61
|
+
label: "Greater Than",
|
|
62
|
+
value: ">"
|
|
63
|
+
}, {
|
|
64
|
+
label: "Less Than",
|
|
65
|
+
value: "<"
|
|
66
|
+
}];
|
|
67
|
+
|
|
35
68
|
default:
|
|
36
|
-
|
|
69
|
+
// These 2 should be safe for all data types
|
|
70
|
+
return [{
|
|
71
|
+
label: "Is",
|
|
72
|
+
value: "="
|
|
73
|
+
}, {
|
|
74
|
+
label: "Is Not",
|
|
75
|
+
value: "<>"
|
|
76
|
+
}];
|
|
37
77
|
}
|
|
38
78
|
}
|
|
39
79
|
|
|
@@ -54,22 +94,87 @@ var ResourceConditionField = function ResourceConditionField(_ref) {
|
|
|
54
94
|
schema = _ref.schema,
|
|
55
95
|
update = _ref.update;
|
|
56
96
|
var fields = schema.fields;
|
|
57
|
-
|
|
58
|
-
var
|
|
97
|
+
|
|
98
|
+
var _React$useState = _react["default"].useState(data.value ? new Date(data.value) : new Date(Date.now())),
|
|
99
|
+
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
100
|
+
startDate = _React$useState2[0],
|
|
101
|
+
setStartDate = _React$useState2[1];
|
|
102
|
+
|
|
103
|
+
var _React$useState3 = _react["default"].useState(Object.keys(fields).map(function (key) {
|
|
59
104
|
return {
|
|
60
105
|
label: fields[key].description ? fields[key].description : key,
|
|
61
106
|
value: key
|
|
62
107
|
};
|
|
63
|
-
})
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
108
|
+
})),
|
|
109
|
+
_React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
|
|
110
|
+
propertyOptions = _React$useState4[0],
|
|
111
|
+
setPropertyOptions = _React$useState4[1];
|
|
112
|
+
|
|
113
|
+
var _React$useState5 = _react["default"].useState(data.property),
|
|
114
|
+
_React$useState6 = (0, _slicedToArray2["default"])(_React$useState5, 2),
|
|
115
|
+
property = _React$useState6[0],
|
|
116
|
+
setProperty = _React$useState6[1];
|
|
117
|
+
|
|
118
|
+
var _React$useState7 = _react["default"].useState(data.operator),
|
|
119
|
+
_React$useState8 = (0, _slicedToArray2["default"])(_React$useState7, 2),
|
|
120
|
+
operator = _React$useState8[0],
|
|
121
|
+
setOperator = _React$useState8[1];
|
|
122
|
+
|
|
123
|
+
var _React$useState9 = _react["default"].useState([{
|
|
124
|
+
label: '--',
|
|
125
|
+
value: ''
|
|
126
|
+
}]),
|
|
127
|
+
_React$useState10 = (0, _slicedToArray2["default"])(_React$useState9, 2),
|
|
128
|
+
operatorOptions = _React$useState10[0],
|
|
129
|
+
setOperatorOptions = _React$useState10[1];
|
|
130
|
+
|
|
131
|
+
var _React$useState11 = _react["default"].useState(data.value),
|
|
132
|
+
_React$useState12 = (0, _slicedToArray2["default"])(_React$useState11, 2),
|
|
133
|
+
value = _React$useState12[0],
|
|
134
|
+
setValue = _React$useState12[1];
|
|
135
|
+
|
|
136
|
+
_react["default"].useEffect(function () {
|
|
137
|
+
if (property) {
|
|
138
|
+
var opOptions = buildOperatorOptions(fields[property].mysql_type ? fields[property].mysql_type : fields[property].type).map(function (opt) {
|
|
139
|
+
return {
|
|
140
|
+
label: opt.label,
|
|
141
|
+
value: opt.value
|
|
142
|
+
};
|
|
143
|
+
});
|
|
144
|
+
update(index, 'property', property);
|
|
145
|
+
|
|
146
|
+
if (!operator) {
|
|
147
|
+
setOperator(opOptions[0].value);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
setOperatorOptions(opOptions);
|
|
151
|
+
} else {
|
|
152
|
+
update(index, 'property', property);
|
|
153
|
+
setOperator('');
|
|
154
|
+
setValue('');
|
|
155
|
+
setOperatorOptions([{
|
|
156
|
+
label: '--',
|
|
157
|
+
value: ''
|
|
158
|
+
}]);
|
|
159
|
+
}
|
|
160
|
+
}, [property, operator]);
|
|
161
|
+
|
|
162
|
+
_react["default"].useEffect(function () {
|
|
163
|
+
if (operator) {
|
|
164
|
+
update(index, 'operator', operator);
|
|
165
|
+
} else {
|
|
166
|
+
update(index, 'operator', '');
|
|
167
|
+
}
|
|
168
|
+
}, [operator]);
|
|
169
|
+
|
|
170
|
+
_react["default"].useEffect(function () {
|
|
171
|
+
if (value) {
|
|
172
|
+
console.log(value);
|
|
173
|
+
update(index, 'value', value);
|
|
174
|
+
} else {
|
|
175
|
+
update(index, 'value', '');
|
|
176
|
+
}
|
|
177
|
+
}, [value]);
|
|
73
178
|
|
|
74
179
|
return /*#__PURE__*/_react["default"].createElement("fieldset", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
75
180
|
className: "ds-l-form-row"
|
|
@@ -77,38 +182,48 @@ var ResourceConditionField = function ResourceConditionField(_ref) {
|
|
|
77
182
|
options: [{
|
|
78
183
|
label: 'Select column',
|
|
79
184
|
value: ''
|
|
80
|
-
}].concat((0, _toConsumableArray2["default"])(
|
|
81
|
-
value:
|
|
185
|
+
}].concat((0, _toConsumableArray2["default"])(propertyOptions)),
|
|
186
|
+
value: property,
|
|
82
187
|
onChange: function onChange(e) {
|
|
83
|
-
return
|
|
188
|
+
return setProperty(e.target.value);
|
|
84
189
|
},
|
|
85
190
|
label: "Filter column",
|
|
86
191
|
labelClassName: "ds-u-margin-top--0 ds-u-visibility--screen-reader",
|
|
87
192
|
name: "column_name_".concat(index),
|
|
88
193
|
className: "ds-l-col--6"
|
|
89
194
|
}), /*#__PURE__*/_react["default"].createElement(_designSystem.Dropdown, {
|
|
90
|
-
options: [
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}].concat((0, _toConsumableArray2["default"])(operatorOptions)),
|
|
94
|
-
value: data.operator,
|
|
95
|
-
disabled: !data.property ? true : false,
|
|
195
|
+
options: (0, _toConsumableArray2["default"])(operatorOptions),
|
|
196
|
+
value: operator,
|
|
197
|
+
disabled: !property ? true : false,
|
|
96
198
|
onChange: function onChange(e) {
|
|
97
|
-
return
|
|
199
|
+
return setOperator(e.target.value);
|
|
98
200
|
},
|
|
99
201
|
labelClassName: "ds-u-margin-top--0 ds-u-visibility--screen-reader",
|
|
100
202
|
size: "small",
|
|
101
|
-
label: "Filter
|
|
203
|
+
label: "Filter operator",
|
|
102
204
|
name: "filter_operator_".concat(index),
|
|
103
205
|
className: "ds-l-col--3"
|
|
104
206
|
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
105
207
|
className: "ds-l-form-row"
|
|
106
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
208
|
+
}, property && (fields[property].mysql_type === 'date' || fields[property].type === 'date') ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
209
|
+
className: "ds-u-clearfix ds-l-col--11"
|
|
210
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactDatepicker["default"], {
|
|
211
|
+
selected: convertUTCToLocalDate(startDate),
|
|
212
|
+
onChange: function onChange(date) {
|
|
213
|
+
console.log(date);
|
|
214
|
+
setStartDate(date);
|
|
215
|
+
setValue(date.toJSON().slice(0, 10));
|
|
216
|
+
},
|
|
217
|
+
showMonthDropdown: true,
|
|
218
|
+
showYearDropdown: true,
|
|
219
|
+
dropdownMode: "select",
|
|
220
|
+
className: "ds-c-field"
|
|
221
|
+
})) : /*#__PURE__*/_react["default"].createElement(_designSystem.TextField, {
|
|
222
|
+
hint: operator.toLowerCase() === 'in' ? "Separate values with a comma." : '',
|
|
223
|
+
value: cleanText(value, operator),
|
|
224
|
+
disabled: !property ? true : false,
|
|
110
225
|
onChange: function onChange(e) {
|
|
111
|
-
return
|
|
226
|
+
return setValue(e.target.value);
|
|
112
227
|
},
|
|
113
228
|
label: "Filter value",
|
|
114
229
|
labelClassName: "ds-u-margin-top--0",
|
|
@@ -117,6 +232,7 @@ var ResourceConditionField = function ResourceConditionField(_ref) {
|
|
|
117
232
|
}), /*#__PURE__*/_react["default"].createElement(_designSystem.Button, {
|
|
118
233
|
className: "ds-l-col--1",
|
|
119
234
|
variation: "transparent",
|
|
235
|
+
"aria-label": "Remove filter",
|
|
120
236
|
onClick: function onClick(e) {
|
|
121
237
|
e.preventDefault();
|
|
122
238
|
remove(index);
|
|
@@ -63,23 +63,41 @@ var ResourceFilter = function ResourceFilter(_ref) {
|
|
|
63
63
|
setConditions(newConditions);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
function removeAll() {
|
|
67
|
-
setFormConditions([_objectSpread({}, defaultCondition)]);
|
|
68
|
-
setConditions([]);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
66
|
function updateByIndex(index, key, value) {
|
|
72
67
|
var newConditions = (0, _toConsumableArray2["default"])(formConditions);
|
|
73
68
|
newConditions[index][key] = value;
|
|
74
69
|
setFormConditions(newConditions);
|
|
75
70
|
}
|
|
76
71
|
|
|
72
|
+
function removeAll() {
|
|
73
|
+
setFormConditions([]);
|
|
74
|
+
setConditions([]);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
77
|
function submitFilters(e) {
|
|
78
78
|
e.preventDefault();
|
|
79
79
|
|
|
80
80
|
if (formConditions.length) {
|
|
81
|
-
var updatedConditions = formConditions.
|
|
81
|
+
var updatedConditions = formConditions.filter(function (cond) {
|
|
82
|
+
if (cond.property) {
|
|
83
|
+
return cond;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return false;
|
|
87
|
+
}).map(function (cond) {
|
|
88
|
+
if (cond.operator === '=' || cond.operator === '<>') {
|
|
89
|
+
if (Array.isArray(cond.value)) {
|
|
90
|
+
cond.value = cond.value.join();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
cond.value = cond.value.replace(/(^\%+|\%+$)/mg, '');
|
|
94
|
+
}
|
|
95
|
+
|
|
82
96
|
if (cond.operator.toLowerCase() === 'like') {
|
|
97
|
+
if (Array.isArray(cond.value)) {
|
|
98
|
+
cond.value = cond.value.join();
|
|
99
|
+
}
|
|
100
|
+
|
|
83
101
|
var cleanedValue = cond.value.replace(/(^\%+|\%+$)/mg, '');
|
|
84
102
|
cond.value = "%".concat(cleanedValue, "%");
|
|
85
103
|
}
|
|
@@ -92,10 +110,8 @@ var ResourceFilter = function ResourceFilter(_ref) {
|
|
|
92
110
|
|
|
93
111
|
if (Array.isArray(cond.value)) {
|
|
94
112
|
cond.value = cond.value.map(function (v) {
|
|
95
|
-
return v.trim();
|
|
113
|
+
return v.trim().replace(/(^\%+|\%+$)/mg, '');
|
|
96
114
|
});
|
|
97
|
-
} else {
|
|
98
|
-
cond.value = cond.value.trim();
|
|
99
115
|
}
|
|
100
116
|
|
|
101
117
|
return cond;
|
|
@@ -105,7 +121,7 @@ var ResourceFilter = function ResourceFilter(_ref) {
|
|
|
105
121
|
}
|
|
106
122
|
|
|
107
123
|
return /*#__PURE__*/_react["default"].createElement(_designSystem.HelpDrawer, {
|
|
108
|
-
footerTitle: "Update
|
|
124
|
+
footerTitle: "Update actions",
|
|
109
125
|
footerBody: /*#__PURE__*/_react["default"].createElement(_designSystem.Button, {
|
|
110
126
|
className: "ds-u-margin-right--1",
|
|
111
127
|
onClick: function onClick(e) {
|
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
+
|
|
7
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
+
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
|
|
13
|
+
var _reactHooks = require("@testing-library/react-hooks");
|
|
14
|
+
|
|
15
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
16
|
+
|
|
17
|
+
var _react2 = require("@testing-library/react");
|
|
18
|
+
|
|
19
|
+
require("@testing-library/jest-dom/extend-expect");
|
|
20
|
+
|
|
21
|
+
var _index = _interopRequireDefault(require("./index"));
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @jest-environment jsdom
|
|
25
|
+
*/
|
|
26
|
+
// import { act } from 'react-dom/test-utils';
|
|
27
|
+
var columns = ["column_1", "column_2", "column_3"];
|
|
28
|
+
var sampleDefaultCondition = {
|
|
29
|
+
operator: '',
|
|
30
|
+
property: '',
|
|
31
|
+
value: ''
|
|
32
|
+
};
|
|
33
|
+
var sampleSchema = {
|
|
34
|
+
"1234-abcd": {
|
|
35
|
+
fields: {
|
|
36
|
+
column_1: {
|
|
37
|
+
description: "",
|
|
38
|
+
type: "text"
|
|
39
|
+
},
|
|
40
|
+
column_2: {
|
|
41
|
+
description: "",
|
|
42
|
+
type: "text"
|
|
43
|
+
},
|
|
44
|
+
column_3: {
|
|
45
|
+
description: "",
|
|
46
|
+
type: "text"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
var sampleResource = {
|
|
52
|
+
columns: columns,
|
|
53
|
+
conditions: [],
|
|
54
|
+
properties: undefined,
|
|
55
|
+
schema: sampleSchema,
|
|
56
|
+
setConditions: function setConditions() {
|
|
57
|
+
return {};
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
var sampleResource2 = {
|
|
61
|
+
columns: columns,
|
|
62
|
+
conditions: [{
|
|
63
|
+
operator: 'like',
|
|
64
|
+
property: 'column_2',
|
|
65
|
+
value: 'dkan'
|
|
66
|
+
}],
|
|
67
|
+
properties: undefined,
|
|
68
|
+
schema: sampleSchema,
|
|
69
|
+
setConditions: function setConditions() {
|
|
70
|
+
return {};
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
var BasicFilter = /*#__PURE__*/_react["default"].createElement(_index["default"], {
|
|
75
|
+
id: "1234-abcd",
|
|
76
|
+
filterOpen: true,
|
|
77
|
+
setFilterOpen: function setFilterOpen() {
|
|
78
|
+
return !filterOpen;
|
|
79
|
+
},
|
|
80
|
+
defaultCondition: sampleDefaultCondition,
|
|
81
|
+
resource: sampleResource,
|
|
82
|
+
includeSearchParams: true
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
var PreFilledFilter = /*#__PURE__*/_react["default"].createElement(_index["default"], {
|
|
86
|
+
id: "1234-abcd",
|
|
87
|
+
filterOpen: true,
|
|
88
|
+
setFilterOpen: function setFilterOpen() {
|
|
89
|
+
return !filterOpen;
|
|
90
|
+
},
|
|
91
|
+
defaultCondition: sampleDefaultCondition,
|
|
92
|
+
resource: sampleResource2,
|
|
93
|
+
includeSearchParams: true
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
var WrapperComponent = function WrapperComponent() {
|
|
97
|
+
var _React$useState = _react["default"].useState([]),
|
|
98
|
+
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
99
|
+
conditions = _React$useState2[0],
|
|
100
|
+
setConditions = _React$useState2[1];
|
|
101
|
+
|
|
102
|
+
return /*#__PURE__*/_react["default"].createElement(_index["default"], {
|
|
103
|
+
id: "1234-abcd",
|
|
104
|
+
filterOpen: true,
|
|
105
|
+
setFilterOpen: function setFilterOpen() {
|
|
106
|
+
return !filterOpen;
|
|
107
|
+
},
|
|
108
|
+
defaultCondition: sampleDefaultCondition,
|
|
109
|
+
resource: {
|
|
110
|
+
columns: columns,
|
|
111
|
+
conditions: conditions,
|
|
112
|
+
properties: undefined,
|
|
113
|
+
schema: sampleSchema,
|
|
114
|
+
setConditions: setConditions
|
|
115
|
+
},
|
|
116
|
+
includeSearchParams: true
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
describe('Resource Filter Functions', function () {
|
|
121
|
+
test('renders with header and close button', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
122
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
123
|
+
while (1) {
|
|
124
|
+
switch (_context.prev = _context.next) {
|
|
125
|
+
case 0:
|
|
126
|
+
(0, _react2.render)(BasicFilter);
|
|
127
|
+
expect(_react2.screen.getByRole('heading', {
|
|
128
|
+
level: 3,
|
|
129
|
+
name: "Add filters"
|
|
130
|
+
})).toBeInTheDocument();
|
|
131
|
+
expect(_react2.screen.getByRole('button', {
|
|
132
|
+
name: "Close help drawer"
|
|
133
|
+
})).toBeInTheDocument();
|
|
134
|
+
|
|
135
|
+
case 3:
|
|
136
|
+
case "end":
|
|
137
|
+
return _context.stop();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}, _callee);
|
|
141
|
+
})));
|
|
142
|
+
test('renders with footer', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
143
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
144
|
+
while (1) {
|
|
145
|
+
switch (_context2.prev = _context2.next) {
|
|
146
|
+
case 0:
|
|
147
|
+
(0, _react2.render)(BasicFilter);
|
|
148
|
+
expect(_react2.screen.getByRole('heading', {
|
|
149
|
+
level: 4,
|
|
150
|
+
name: "Update actions"
|
|
151
|
+
})).toBeInTheDocument();
|
|
152
|
+
expect(_react2.screen.getByRole('button', {
|
|
153
|
+
name: "Update table"
|
|
154
|
+
})).toBeInTheDocument();
|
|
155
|
+
|
|
156
|
+
case 3:
|
|
157
|
+
case "end":
|
|
158
|
+
return _context2.stop();
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}, _callee2);
|
|
162
|
+
})));
|
|
163
|
+
test('does not render Remove all filters button with less than 2 filters', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
164
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
165
|
+
while (1) {
|
|
166
|
+
switch (_context3.prev = _context3.next) {
|
|
167
|
+
case 0:
|
|
168
|
+
(0, _react2.render)(BasicFilter);
|
|
169
|
+
expect(_react2.screen.queryByRole('button', {
|
|
170
|
+
name: "Remove all filters"
|
|
171
|
+
})).not.toBeInTheDocument();
|
|
172
|
+
|
|
173
|
+
case 2:
|
|
174
|
+
case "end":
|
|
175
|
+
return _context3.stop();
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}, _callee3);
|
|
179
|
+
})));
|
|
180
|
+
test('renders an empty field on clean start', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
181
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
182
|
+
while (1) {
|
|
183
|
+
switch (_context4.prev = _context4.next) {
|
|
184
|
+
case 0:
|
|
185
|
+
(0, _react2.render)(BasicFilter);
|
|
186
|
+
expect(_react2.screen.getByLabelText('Filter column')).toBeInTheDocument();
|
|
187
|
+
expect(_react2.screen.getByLabelText('Filter operator')).toBeInTheDocument();
|
|
188
|
+
expect(_react2.screen.getByLabelText('Filter value')).toBeInTheDocument();
|
|
189
|
+
expect(_react2.screen.getByDisplayValue('Select column')).toBeInTheDocument();
|
|
190
|
+
expect(_react2.screen.getByDisplayValue('--')).toBeInTheDocument();
|
|
191
|
+
expect(_react2.screen.getByRole('button', {
|
|
192
|
+
name: "Remove filter"
|
|
193
|
+
})).toBeInTheDocument();
|
|
194
|
+
expect(_react2.screen.getByRole('button', {
|
|
195
|
+
name: "+ Add another filter"
|
|
196
|
+
})).toBeInTheDocument();
|
|
197
|
+
|
|
198
|
+
case 8:
|
|
199
|
+
case "end":
|
|
200
|
+
return _context4.stop();
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}, _callee4);
|
|
204
|
+
})));
|
|
205
|
+
test('test basic filter', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
206
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
207
|
+
while (1) {
|
|
208
|
+
switch (_context7.prev = _context7.next) {
|
|
209
|
+
case 0:
|
|
210
|
+
(0, _react2.render)(BasicFilter);
|
|
211
|
+
expect(_react2.screen.getByDisplayValue('Select column')).toBeInTheDocument();
|
|
212
|
+
expect(_react2.screen.getByRole('option', {
|
|
213
|
+
name: 'Select column'
|
|
214
|
+
}).selected).toBe(true);
|
|
215
|
+
expect(_react2.screen.getByRole('option', {
|
|
216
|
+
name: 'column_1'
|
|
217
|
+
}).selected).toBe(false);
|
|
218
|
+
expect(_react2.screen.getByRole('option', {
|
|
219
|
+
name: '--'
|
|
220
|
+
}).selected).toBe(true);
|
|
221
|
+
expect(_react2.screen.getByLabelText('Filter value')).toBeDisabled();
|
|
222
|
+
_context7.next = 8;
|
|
223
|
+
return (0, _reactHooks.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
|
|
224
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
225
|
+
while (1) {
|
|
226
|
+
switch (_context5.prev = _context5.next) {
|
|
227
|
+
case 0:
|
|
228
|
+
_userEvent["default"].selectOptions(_react2.screen.getByRole('combobox', {
|
|
229
|
+
name: 'Filter column'
|
|
230
|
+
}), ['column_1']);
|
|
231
|
+
|
|
232
|
+
case 1:
|
|
233
|
+
case "end":
|
|
234
|
+
return _context5.stop();
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}, _callee5);
|
|
238
|
+
})));
|
|
239
|
+
|
|
240
|
+
case 8:
|
|
241
|
+
expect(_react2.screen.getByRole('option', {
|
|
242
|
+
name: 'Select column'
|
|
243
|
+
}).selected).toBe(false);
|
|
244
|
+
expect(_react2.screen.getByRole('option', {
|
|
245
|
+
name: 'column_1'
|
|
246
|
+
}).selected).toBe(true);
|
|
247
|
+
expect(_react2.screen.getByRole('option', {
|
|
248
|
+
name: 'Is'
|
|
249
|
+
}).selected).toBe(true);
|
|
250
|
+
expect(_react2.screen.getByLabelText('Filter value')).not.toBeDisabled();
|
|
251
|
+
_context7.next = 14;
|
|
252
|
+
return (0, _reactHooks.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
|
|
253
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
254
|
+
while (1) {
|
|
255
|
+
switch (_context6.prev = _context6.next) {
|
|
256
|
+
case 0:
|
|
257
|
+
_userEvent["default"].selectOptions(_react2.screen.getByRole('combobox', {
|
|
258
|
+
name: 'Filter column'
|
|
259
|
+
}), ['Select column']);
|
|
260
|
+
|
|
261
|
+
case 1:
|
|
262
|
+
case "end":
|
|
263
|
+
return _context6.stop();
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}, _callee6);
|
|
267
|
+
})));
|
|
268
|
+
|
|
269
|
+
case 14:
|
|
270
|
+
expect(_react2.screen.getByRole('option', {
|
|
271
|
+
name: 'Select column'
|
|
272
|
+
}).selected).toBe(true);
|
|
273
|
+
expect(_react2.screen.getByRole('option', {
|
|
274
|
+
name: 'column_1'
|
|
275
|
+
}).selected).toBe(false);
|
|
276
|
+
expect(_react2.screen.getByRole('option', {
|
|
277
|
+
name: '--'
|
|
278
|
+
}).selected).toBe(true);
|
|
279
|
+
expect(_react2.screen.getByLabelText('Filter value')).toBeDisabled();
|
|
280
|
+
|
|
281
|
+
case 18:
|
|
282
|
+
case "end":
|
|
283
|
+
return _context7.stop();
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}, _callee7);
|
|
287
|
+
})));
|
|
288
|
+
test('opens pre-filled', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
|
|
289
|
+
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
290
|
+
while (1) {
|
|
291
|
+
switch (_context8.prev = _context8.next) {
|
|
292
|
+
case 0:
|
|
293
|
+
(0, _react2.render)(PreFilledFilter);
|
|
294
|
+
expect(_react2.screen.getByDisplayValue('column_2')).toBeInTheDocument();
|
|
295
|
+
expect(_react2.screen.getByRole('option', {
|
|
296
|
+
name: 'column_2'
|
|
297
|
+
}).selected).toBe(true);
|
|
298
|
+
expect(_react2.screen.getByRole('option', {
|
|
299
|
+
name: 'Contains'
|
|
300
|
+
}).selected).toBe(true);
|
|
301
|
+
expect(_react2.screen.getByLabelText('Filter value')).not.toBeDisabled();
|
|
302
|
+
expect(_react2.screen.getByDisplayValue('dkan')).toBeInTheDocument();
|
|
303
|
+
|
|
304
|
+
case 6:
|
|
305
|
+
case "end":
|
|
306
|
+
return _context8.stop();
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}, _callee8);
|
|
310
|
+
})));
|
|
311
|
+
test('remove all works', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11() {
|
|
312
|
+
return _regenerator["default"].wrap(function _callee11$(_context11) {
|
|
313
|
+
while (1) {
|
|
314
|
+
switch (_context11.prev = _context11.next) {
|
|
315
|
+
case 0:
|
|
316
|
+
(0, _react2.render)(PreFilledFilter);
|
|
317
|
+
expect(_react2.screen.getByRole('option', {
|
|
318
|
+
name: 'column_2'
|
|
319
|
+
}).selected).toBe(true);
|
|
320
|
+
expect(_react2.screen.getByRole('option', {
|
|
321
|
+
name: 'Contains'
|
|
322
|
+
}).selected).toBe(true);
|
|
323
|
+
expect(_react2.screen.getByDisplayValue('dkan')).toBeInTheDocument();
|
|
324
|
+
expect(_react2.screen.queryAllByLabelText('Filter value').length).toBe(1);
|
|
325
|
+
expect(_react2.screen.getByRole('button', {
|
|
326
|
+
name: '+ Add another filter'
|
|
327
|
+
})).toBeInTheDocument();
|
|
328
|
+
expect(_react2.screen.queryByRole('button', {
|
|
329
|
+
name: 'Remove all filters'
|
|
330
|
+
})).not.toBeInTheDocument();
|
|
331
|
+
_context11.next = 9;
|
|
332
|
+
return (0, _reactHooks.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
|
|
333
|
+
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
|
334
|
+
while (1) {
|
|
335
|
+
switch (_context9.prev = _context9.next) {
|
|
336
|
+
case 0:
|
|
337
|
+
_userEvent["default"].click(_react2.screen.getByRole('button', {
|
|
338
|
+
name: '+ Add another filter'
|
|
339
|
+
}));
|
|
340
|
+
|
|
341
|
+
case 1:
|
|
342
|
+
case "end":
|
|
343
|
+
return _context9.stop();
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}, _callee9);
|
|
347
|
+
})));
|
|
348
|
+
|
|
349
|
+
case 9:
|
|
350
|
+
expect(_react2.screen.queryAllByLabelText('Filter value').length).toBe(2);
|
|
351
|
+
expect(_react2.screen.getByRole('button', {
|
|
352
|
+
name: 'Remove all filters'
|
|
353
|
+
})).toBeInTheDocument();
|
|
354
|
+
_context11.next = 13;
|
|
355
|
+
return (0, _reactHooks.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
|
|
356
|
+
return _regenerator["default"].wrap(function _callee10$(_context10) {
|
|
357
|
+
while (1) {
|
|
358
|
+
switch (_context10.prev = _context10.next) {
|
|
359
|
+
case 0:
|
|
360
|
+
_userEvent["default"].click(_react2.screen.getByRole('button', {
|
|
361
|
+
name: 'Remove all filters'
|
|
362
|
+
}));
|
|
363
|
+
|
|
364
|
+
case 1:
|
|
365
|
+
case "end":
|
|
366
|
+
return _context10.stop();
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}, _callee10);
|
|
370
|
+
})));
|
|
371
|
+
|
|
372
|
+
case 13:
|
|
373
|
+
expect(_react2.screen.queryAllByLabelText('Filter value').length).toBe(0);
|
|
374
|
+
|
|
375
|
+
case 14:
|
|
376
|
+
case "end":
|
|
377
|
+
return _context11.stop();
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}, _callee11);
|
|
381
|
+
})));
|
|
382
|
+
test('url updates correctly', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee14() {
|
|
383
|
+
return _regenerator["default"].wrap(function _callee14$(_context14) {
|
|
384
|
+
while (1) {
|
|
385
|
+
switch (_context14.prev = _context14.next) {
|
|
386
|
+
case 0:
|
|
387
|
+
(0, _react2.render)( /*#__PURE__*/_react["default"].createElement(WrapperComponent, null));
|
|
388
|
+
|
|
389
|
+
_userEvent["default"].selectOptions(_react2.screen.getByRole('combobox', {
|
|
390
|
+
name: 'Filter column'
|
|
391
|
+
}), ['column_1']);
|
|
392
|
+
|
|
393
|
+
_context14.next = 4;
|
|
394
|
+
return _userEvent["default"].type(_react2.screen.getByLabelText('Filter value'), 'dkan', {
|
|
395
|
+
delay: 1
|
|
396
|
+
});
|
|
397
|
+
|
|
398
|
+
case 4:
|
|
399
|
+
_context14.next = 6;
|
|
400
|
+
return (0, _reactHooks.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
|
|
401
|
+
return _regenerator["default"].wrap(function _callee12$(_context12) {
|
|
402
|
+
while (1) {
|
|
403
|
+
switch (_context12.prev = _context12.next) {
|
|
404
|
+
case 0:
|
|
405
|
+
case "end":
|
|
406
|
+
return _context12.stop();
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}, _callee12);
|
|
410
|
+
})));
|
|
411
|
+
|
|
412
|
+
case 6:
|
|
413
|
+
_userEvent["default"].click(_react2.screen.getByRole('button', {
|
|
414
|
+
name: 'Update table'
|
|
415
|
+
}, {}));
|
|
416
|
+
|
|
417
|
+
_context14.next = 9;
|
|
418
|
+
return (0, _reactHooks.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13() {
|
|
419
|
+
return _regenerator["default"].wrap(function _callee13$(_context13) {
|
|
420
|
+
while (1) {
|
|
421
|
+
switch (_context13.prev = _context13.next) {
|
|
422
|
+
case 0:
|
|
423
|
+
case "end":
|
|
424
|
+
return _context13.stop();
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
}, _callee13);
|
|
428
|
+
})));
|
|
429
|
+
|
|
430
|
+
case 9:
|
|
431
|
+
expect(window.location.search).toBe('?conditions[0][operator]=%3D&conditions[0][property]=column_1&conditions[0][value]=dkan');
|
|
432
|
+
|
|
433
|
+
case 10:
|
|
434
|
+
case "end":
|
|
435
|
+
return _context14.stop();
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}, _callee14);
|
|
439
|
+
})));
|
|
440
|
+
});
|
|
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.prepareColumns = prepareColumns;
|
|
9
8
|
exports["default"] = void 0;
|
|
9
|
+
exports.prepareColumns = prepareColumns;
|
|
10
10
|
|
|
11
11
|
var _react = _interopRequireDefault(require("react"));
|
|
12
12
|
|
package/lib/index.js
CHANGED
|
@@ -5,46 +5,40 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
Object.defineProperty(exports, "
|
|
9
|
-
enumerable: true,
|
|
10
|
-
get: function get() {
|
|
11
|
-
return _NavLink["default"];
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
Object.defineProperty(exports, "DatasetTags", {
|
|
8
|
+
Object.defineProperty(exports, "APIPage", {
|
|
15
9
|
enumerable: true,
|
|
16
10
|
get: function get() {
|
|
17
|
-
return
|
|
11
|
+
return _APIPage["default"];
|
|
18
12
|
}
|
|
19
13
|
});
|
|
20
|
-
Object.defineProperty(exports, "
|
|
14
|
+
Object.defineProperty(exports, "ApiDocumentation", {
|
|
21
15
|
enumerable: true,
|
|
22
16
|
get: function get() {
|
|
23
|
-
return
|
|
17
|
+
return _ApiDocumentation["default"];
|
|
24
18
|
}
|
|
25
19
|
});
|
|
26
|
-
Object.defineProperty(exports, "
|
|
20
|
+
Object.defineProperty(exports, "Breadcrumb", {
|
|
27
21
|
enumerable: true,
|
|
28
22
|
get: function get() {
|
|
29
|
-
return
|
|
23
|
+
return _Breadcrumb["default"];
|
|
30
24
|
}
|
|
31
25
|
});
|
|
32
|
-
Object.defineProperty(exports, "
|
|
26
|
+
Object.defineProperty(exports, "Dataset", {
|
|
33
27
|
enumerable: true,
|
|
34
28
|
get: function get() {
|
|
35
|
-
return
|
|
29
|
+
return _Dataset["default"];
|
|
36
30
|
}
|
|
37
31
|
});
|
|
38
|
-
Object.defineProperty(exports, "
|
|
32
|
+
Object.defineProperty(exports, "DatasetDownloads", {
|
|
39
33
|
enumerable: true,
|
|
40
34
|
get: function get() {
|
|
41
|
-
return
|
|
35
|
+
return _DatasetDownloads["default"];
|
|
42
36
|
}
|
|
43
37
|
});
|
|
44
|
-
Object.defineProperty(exports, "
|
|
38
|
+
Object.defineProperty(exports, "DatasetSearch", {
|
|
45
39
|
enumerable: true,
|
|
46
40
|
get: function get() {
|
|
47
|
-
return
|
|
41
|
+
return _DatasetSearch["default"];
|
|
48
42
|
}
|
|
49
43
|
});
|
|
50
44
|
Object.defineProperty(exports, "DatasetSearchListItem", {
|
|
@@ -53,58 +47,58 @@ Object.defineProperty(exports, "DatasetSearchListItem", {
|
|
|
53
47
|
return _DatasetSearchListItem["default"];
|
|
54
48
|
}
|
|
55
49
|
});
|
|
56
|
-
Object.defineProperty(exports, "
|
|
50
|
+
Object.defineProperty(exports, "DatasetTags", {
|
|
57
51
|
enumerable: true,
|
|
58
52
|
get: function get() {
|
|
59
|
-
return
|
|
53
|
+
return _DatasetTags["default"];
|
|
60
54
|
}
|
|
61
55
|
});
|
|
62
|
-
Object.defineProperty(exports, "
|
|
56
|
+
Object.defineProperty(exports, "DrupalPage", {
|
|
63
57
|
enumerable: true,
|
|
64
58
|
get: function get() {
|
|
65
|
-
return
|
|
59
|
+
return _DrupalPage["default"];
|
|
66
60
|
}
|
|
67
61
|
});
|
|
68
|
-
Object.defineProperty(exports, "
|
|
62
|
+
Object.defineProperty(exports, "FilteredResource", {
|
|
69
63
|
enumerable: true,
|
|
70
64
|
get: function get() {
|
|
71
|
-
return
|
|
65
|
+
return _FilteredResource["default"];
|
|
72
66
|
}
|
|
73
67
|
});
|
|
74
|
-
Object.defineProperty(exports, "
|
|
68
|
+
Object.defineProperty(exports, "Footer", {
|
|
75
69
|
enumerable: true,
|
|
76
70
|
get: function get() {
|
|
77
|
-
return
|
|
71
|
+
return _Footer["default"];
|
|
78
72
|
}
|
|
79
73
|
});
|
|
80
|
-
Object.defineProperty(exports, "
|
|
74
|
+
Object.defineProperty(exports, "Header", {
|
|
81
75
|
enumerable: true,
|
|
82
76
|
get: function get() {
|
|
83
|
-
return
|
|
77
|
+
return _header["default"];
|
|
84
78
|
}
|
|
85
79
|
});
|
|
86
|
-
Object.defineProperty(exports, "
|
|
80
|
+
Object.defineProperty(exports, "Hero", {
|
|
87
81
|
enumerable: true,
|
|
88
82
|
get: function get() {
|
|
89
|
-
return
|
|
83
|
+
return _Hero["default"];
|
|
90
84
|
}
|
|
91
85
|
});
|
|
92
|
-
Object.defineProperty(exports, "
|
|
86
|
+
Object.defineProperty(exports, "MobileHeader", {
|
|
93
87
|
enumerable: true,
|
|
94
88
|
get: function get() {
|
|
95
|
-
return
|
|
89
|
+
return _mobile_header["default"];
|
|
96
90
|
}
|
|
97
91
|
});
|
|
98
|
-
Object.defineProperty(exports, "
|
|
92
|
+
Object.defineProperty(exports, "NavBar", {
|
|
99
93
|
enumerable: true,
|
|
100
94
|
get: function get() {
|
|
101
|
-
return
|
|
95
|
+
return _NavBar["default"];
|
|
102
96
|
}
|
|
103
97
|
});
|
|
104
|
-
Object.defineProperty(exports, "
|
|
98
|
+
Object.defineProperty(exports, "NavLink", {
|
|
105
99
|
enumerable: true,
|
|
106
100
|
get: function get() {
|
|
107
|
-
return
|
|
101
|
+
return _NavLink["default"];
|
|
108
102
|
}
|
|
109
103
|
});
|
|
110
104
|
Object.defineProperty(exports, "PageNotFound", {
|
|
@@ -113,52 +107,58 @@ Object.defineProperty(exports, "PageNotFound", {
|
|
|
113
107
|
return _PageNotFound["default"];
|
|
114
108
|
}
|
|
115
109
|
});
|
|
116
|
-
Object.defineProperty(exports, "
|
|
110
|
+
Object.defineProperty(exports, "Pagination", {
|
|
117
111
|
enumerable: true,
|
|
118
112
|
get: function get() {
|
|
119
|
-
return
|
|
113
|
+
return _Pagination["default"];
|
|
120
114
|
}
|
|
121
115
|
});
|
|
122
|
-
Object.defineProperty(exports, "
|
|
116
|
+
Object.defineProperty(exports, "ResourceConditionField", {
|
|
123
117
|
enumerable: true,
|
|
124
118
|
get: function get() {
|
|
125
|
-
return
|
|
119
|
+
return _ResourceConditionField["default"];
|
|
126
120
|
}
|
|
127
121
|
});
|
|
128
|
-
Object.defineProperty(exports, "
|
|
122
|
+
Object.defineProperty(exports, "ResourceFilter", {
|
|
129
123
|
enumerable: true,
|
|
130
124
|
get: function get() {
|
|
131
|
-
return
|
|
125
|
+
return _ResourceFilter["default"];
|
|
132
126
|
}
|
|
133
127
|
});
|
|
134
|
-
Object.defineProperty(exports, "
|
|
128
|
+
Object.defineProperty(exports, "ResourceFooter", {
|
|
135
129
|
enumerable: true,
|
|
136
130
|
get: function get() {
|
|
137
|
-
return
|
|
131
|
+
return _ResourceFooter["default"];
|
|
138
132
|
}
|
|
139
133
|
});
|
|
140
|
-
Object.defineProperty(exports, "
|
|
134
|
+
Object.defineProperty(exports, "ResourceHeader", {
|
|
141
135
|
enumerable: true,
|
|
142
136
|
get: function get() {
|
|
143
|
-
return
|
|
137
|
+
return _ResourceHeader["default"];
|
|
144
138
|
}
|
|
145
139
|
});
|
|
146
|
-
Object.defineProperty(exports, "
|
|
140
|
+
Object.defineProperty(exports, "ResourcePreview", {
|
|
147
141
|
enumerable: true,
|
|
148
142
|
get: function get() {
|
|
149
|
-
return
|
|
143
|
+
return _ResourcePreview["default"];
|
|
150
144
|
}
|
|
151
145
|
});
|
|
152
|
-
Object.defineProperty(exports, "
|
|
146
|
+
Object.defineProperty(exports, "SearchModal", {
|
|
153
147
|
enumerable: true,
|
|
154
148
|
get: function get() {
|
|
155
|
-
return
|
|
149
|
+
return _SearchModal["default"];
|
|
156
150
|
}
|
|
157
151
|
});
|
|
158
|
-
Object.defineProperty(exports, "
|
|
152
|
+
Object.defineProperty(exports, "SubMenu", {
|
|
159
153
|
enumerable: true,
|
|
160
154
|
get: function get() {
|
|
161
|
-
return
|
|
155
|
+
return _SubMenu["default"];
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
Object.defineProperty(exports, "TransformedDate", {
|
|
159
|
+
enumerable: true,
|
|
160
|
+
get: function get() {
|
|
161
|
+
return _TransformedDate["default"];
|
|
162
162
|
}
|
|
163
163
|
});
|
|
164
164
|
Object.defineProperty(exports, "useAddLoginLink", {
|
|
@@ -18,12 +18,13 @@ var APIPage = function APIPage(_ref) {
|
|
|
18
18
|
className: "ds-l-container"
|
|
19
19
|
}, /*#__PURE__*/_react["default"].createElement(_swaggerUiReact["default"], {
|
|
20
20
|
url: "".concat(process.env.REACT_APP_ROOT_URL, "?").concat(hideAuth ? 'authentication=false&' : '').concat(additionalParams && additionalParams.ACA ? 'ACA=' + additionalParams.ACA + '&redirect=false' : ''),
|
|
21
|
-
docExpansion: 'list'
|
|
21
|
+
docExpansion: 'list',
|
|
22
|
+
defaultModelsExpandDepth: -1
|
|
22
23
|
}));
|
|
23
24
|
};
|
|
24
25
|
|
|
25
26
|
APIPage.defaultProps = {
|
|
26
|
-
hideAuth:
|
|
27
|
+
hideAuth: true
|
|
27
28
|
};
|
|
28
29
|
var _default = APIPage;
|
|
29
30
|
exports["default"] = _default;
|
|
@@ -37,6 +37,8 @@ var _ResourceFooter = _interopRequireDefault(require("../../components/ResourceF
|
|
|
37
37
|
|
|
38
38
|
var _ResourceInformation = _interopRequireDefault(require("../../components/ResourceInformation"));
|
|
39
39
|
|
|
40
|
+
var _functions = require("../FilteredResource/functions");
|
|
41
|
+
|
|
40
42
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
41
43
|
|
|
42
44
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -44,7 +46,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
44
46
|
var DatasetBody = function DatasetBody(_ref) {
|
|
45
47
|
var id = _ref.id,
|
|
46
48
|
dataset = _ref.dataset,
|
|
47
|
-
additionalParams = _ref.additionalParams
|
|
49
|
+
additionalParams = _ref.additionalParams,
|
|
50
|
+
customColumns = _ref.customColumns;
|
|
48
51
|
var apiDocs = (0, _react.useRef)();
|
|
49
52
|
|
|
50
53
|
var _useState = (0, _react.useState)('ds-u-padding-y--1'),
|
|
@@ -125,7 +128,8 @@ var DatasetBody = function DatasetBody(_ref) {
|
|
|
125
128
|
}), /*#__PURE__*/_react["default"].createElement(_ResourcePreview["default"], {
|
|
126
129
|
id: distribution.identifier,
|
|
127
130
|
tablePadding: tablePadding,
|
|
128
|
-
resource: resource
|
|
131
|
+
resource: resource,
|
|
132
|
+
customColumns: (0, _functions.buildCustomColHeaders)(customColumns, resource.columns, resource.schema[distribution_array[0].identifier])
|
|
129
133
|
}), /*#__PURE__*/_react["default"].createElement(_ResourceFooter["default"], {
|
|
130
134
|
resource: resource
|
|
131
135
|
}), /*#__PURE__*/_react["default"].createElement(_ResourceInformation["default"], {
|
|
@@ -136,7 +140,8 @@ var DatasetBody = function DatasetBody(_ref) {
|
|
|
136
140
|
ref: apiDocs
|
|
137
141
|
}, /*#__PURE__*/_react["default"].createElement("h2", null, "Try the API"), /*#__PURE__*/_react["default"].createElement(_swaggerUiReact["default"], {
|
|
138
142
|
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' : ''),
|
|
139
|
-
docExpansion: 'list'
|
|
143
|
+
docExpansion: 'list',
|
|
144
|
+
defaultModelsExpandDepth: -1
|
|
140
145
|
})) : ''), /*#__PURE__*/_react["default"].createElement("div", {
|
|
141
146
|
className: "ds-l-md-col--3 ds-l-sm-col--12"
|
|
142
147
|
}, Object.keys(distribution).length ? /*#__PURE__*/_react["default"].createElement(_DatasetDownloads["default"], {
|
|
@@ -20,7 +20,8 @@ var _PageNotFound = _interopRequireDefault(require("../PageNotFound"));
|
|
|
20
20
|
var Dataset = function Dataset(_ref) {
|
|
21
21
|
var id = _ref.id,
|
|
22
22
|
rootUrl = _ref.rootUrl,
|
|
23
|
-
additionalParams = _ref.additionalParams
|
|
23
|
+
additionalParams = _ref.additionalParams,
|
|
24
|
+
customColumns = _ref.customColumns;
|
|
24
25
|
var metastore = (0, _dataCatalogServices.useMetastoreDataset)(id, rootUrl, additionalParams);
|
|
25
26
|
var dataset = metastore.dataset;
|
|
26
27
|
|
|
@@ -33,7 +34,8 @@ var Dataset = function Dataset(_ref) {
|
|
|
33
34
|
}) : /*#__PURE__*/_react["default"].createElement(_DatasetBody["default"], {
|
|
34
35
|
id: id,
|
|
35
36
|
dataset: dataset,
|
|
36
|
-
additionalParams: additionalParams
|
|
37
|
+
additionalParams: additionalParams,
|
|
38
|
+
customColumns: customColumns ? customColumns : []
|
|
37
39
|
}));
|
|
38
40
|
};
|
|
39
41
|
|
|
@@ -7,9 +7,9 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
+
exports["default"] = void 0;
|
|
10
11
|
exports.selectedFacetsMessage = selectedFacetsMessage;
|
|
11
12
|
exports.transformUrlParamsToSearchObject = transformUrlParamsToSearchObject;
|
|
12
|
-
exports["default"] = void 0;
|
|
13
13
|
|
|
14
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
15
|
|
|
@@ -33,6 +33,8 @@ var _ResourcePreview = _interopRequireDefault(require("../../components/Resource
|
|
|
33
33
|
|
|
34
34
|
var _ResourceFooter = _interopRequireDefault(require("../../components/ResourceFooter"));
|
|
35
35
|
|
|
36
|
+
var _functions = require("./functions");
|
|
37
|
+
|
|
36
38
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
37
39
|
|
|
38
40
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -47,7 +49,8 @@ var FilteredResourceBody = function FilteredResourceBody(_ref) {
|
|
|
47
49
|
distIndex = _ref.distIndex,
|
|
48
50
|
location = _ref.location,
|
|
49
51
|
apiDocPage = _ref.apiDocPage,
|
|
50
|
-
additionalParams = _ref.additionalParams
|
|
52
|
+
additionalParams = _ref.additionalParams,
|
|
53
|
+
customColumns = _ref.customColumns;
|
|
51
54
|
|
|
52
55
|
var _React$useState = _react["default"].useState('ds-u-padding-y--1'),
|
|
53
56
|
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
@@ -158,7 +161,7 @@ var FilteredResourceBody = function FilteredResourceBody(_ref) {
|
|
|
158
161
|
onClick: function onClick() {
|
|
159
162
|
return (0, _router.navigate)(apiDocPage);
|
|
160
163
|
}
|
|
161
|
-
}, "View API documentation")))), resource.columns ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_ResourceHeader["default"], {
|
|
164
|
+
}, "View API documentation")))), resource.columns && Object.keys(resource.schema).length ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_ResourceHeader["default"], {
|
|
162
165
|
includeDensity: true,
|
|
163
166
|
setTablePadding: setTablePadding,
|
|
164
167
|
distribution: distribution,
|
|
@@ -167,7 +170,8 @@ var FilteredResourceBody = function FilteredResourceBody(_ref) {
|
|
|
167
170
|
}), /*#__PURE__*/_react["default"].createElement(_ResourcePreview["default"], {
|
|
168
171
|
id: distribution.identifier,
|
|
169
172
|
tablePadding: tablePadding,
|
|
170
|
-
resource: resource
|
|
173
|
+
resource: resource,
|
|
174
|
+
customColumns: (0, _functions.buildCustomColHeaders)(customColumns, resource.columns, resource.schema[distribution_array[distIndex].identifier])
|
|
171
175
|
}), /*#__PURE__*/_react["default"].createElement(_ResourceFooter["default"], {
|
|
172
176
|
resource: resource
|
|
173
177
|
}), filtersOpen && /*#__PURE__*/_react["default"].createElement(_ResourceFilter["default"], {
|
|
@@ -180,7 +184,8 @@ var FilteredResourceBody = function FilteredResourceBody(_ref) {
|
|
|
180
184
|
ref: apiDocs
|
|
181
185
|
}, /*#__PURE__*/_react["default"].createElement("h2", null, "Try the API"), /*#__PURE__*/_react["default"].createElement(_swaggerUiReact["default"], {
|
|
182
186
|
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' : ''),
|
|
183
|
-
docExpansion: 'list'
|
|
187
|
+
docExpansion: 'list',
|
|
188
|
+
defaultModelsExpandDepth: -1
|
|
184
189
|
}))));
|
|
185
190
|
};
|
|
186
191
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.buildCustomColHeaders = buildCustomColHeaders;
|
|
7
|
+
|
|
8
|
+
function buildCustomColHeaders(customHeaders, columns, schema) {
|
|
9
|
+
return columns.map(function (column) {
|
|
10
|
+
var customHeaderIndex = customHeaders.findIndex(function (header) {
|
|
11
|
+
return header.id === column;
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
if (customHeaderIndex > -1) {
|
|
15
|
+
return customHeaders[customHeaderIndex];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return {
|
|
19
|
+
Header: schema && schema.fields[column].description ? schema.fields[column].description : column,
|
|
20
|
+
accessor: column
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
}
|
|
@@ -28,7 +28,8 @@ var FilteredResource = function FilteredResource(_ref) {
|
|
|
28
28
|
dist_id = _ref.dist_id,
|
|
29
29
|
location = _ref.location,
|
|
30
30
|
apiDocPage = _ref.apiDocPage,
|
|
31
|
-
additionalParams = _ref.additionalParams
|
|
31
|
+
additionalParams = _ref.additionalParams,
|
|
32
|
+
customColumns = _ref.customColumns;
|
|
32
33
|
|
|
33
34
|
var _useState = (0, _react.useState)(false),
|
|
34
35
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
@@ -70,7 +71,8 @@ var FilteredResource = function FilteredResource(_ref) {
|
|
|
70
71
|
distIndex: distIndex,
|
|
71
72
|
location: location,
|
|
72
73
|
apiDocPage: apiDocPage,
|
|
73
|
-
additionalParams: additionalParams
|
|
74
|
+
additionalParams: additionalParams,
|
|
75
|
+
customColumns: customColumns ? customColumns : []
|
|
74
76
|
})));
|
|
75
77
|
};
|
|
76
78
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@civicactions/cmsds-open-data-components",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0-alpha.1",
|
|
4
4
|
"description": "Components for the open data catalog frontend using CMS Design System",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -20,13 +20,14 @@
|
|
|
20
20
|
"license": "GPL-3.0",
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@civicactions/data-catalog-components": "^2.0.0-alpha.10",
|
|
23
|
-
"@civicactions/data-catalog-services": "^1.0.0
|
|
23
|
+
"@civicactions/data-catalog-services": "^1.0.0",
|
|
24
24
|
"@cmsgov/design-system": "^2.7.0",
|
|
25
25
|
"@reach/router": "^1.3.3",
|
|
26
26
|
"enzyme": "^3.10.0",
|
|
27
27
|
"enzyme-adapter-react-16": "^1.14.0",
|
|
28
28
|
"prop-types": "^15.7.2",
|
|
29
29
|
"qs": "^6.10.1",
|
|
30
|
+
"react-datepicker": "^4.2.1",
|
|
30
31
|
"react-table": "^7.6.2",
|
|
31
32
|
"react-text-truncate": "^0.16.0",
|
|
32
33
|
"react-truncate": "^2.4.0",
|