@civicactions/cmsds-open-data-components 2.0.5 → 2.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/main.js +3 -7
  2. package/dist/main.js.map +1 -1
  3. package/dist/types.d.ts.map +1 -1
  4. package/lib/assets/icons/close.js +4 -0
  5. package/lib/assets/icons/copy.js +4 -0
  6. package/lib/assets/icons/download.js +4 -0
  7. package/lib/assets/icons/settings.js +5 -2
  8. package/lib/assets/metadataMapping.js +9 -0
  9. package/lib/commands/index.js +2 -0
  10. package/lib/commands/templates/footer.js +2 -0
  11. package/lib/components/ApiDocumentation/index.js +6 -0
  12. package/lib/components/Breadcrumb/index.js +8 -2
  13. package/lib/components/DataTableDensity/datatabledensity.test.js +5 -0
  14. package/lib/components/DataTableDensity/index.js +7 -1
  15. package/lib/components/DataTableRowChanger/datatablerowchanger.test.js +5 -0
  16. package/lib/components/DataTableRowChanger/index.js +8 -2
  17. package/lib/components/DatasetAdditionalInformation/index.js +17 -4
  18. package/lib/components/DatasetDownloads/datasetdownloads.test.js +5 -0
  19. package/lib/components/DatasetDownloads/index.js +6 -1
  20. package/lib/components/DatasetSearchFacets/dataset_search_facets.test.js +14 -0
  21. package/lib/components/DatasetSearchFacets/index.js +26 -10
  22. package/lib/components/DatasetSearchListItem/datasetsearchlistitem.test.js +9 -1
  23. package/lib/components/DatasetSearchListItem/index.js +17 -6
  24. package/lib/components/DatasetTags/datasettags.test.js +5 -0
  25. package/lib/components/DatasetTags/index.js +6 -0
  26. package/lib/components/Hero/index.js +18 -8
  27. package/lib/components/ManageColumns/index.js +13 -3
  28. package/lib/components/NavBar/index.js +55 -0
  29. package/lib/components/NavLink/index.js +11 -2
  30. package/lib/components/NavLink/navlink.test.js +6 -0
  31. package/lib/components/Pagination/index.js +46 -4
  32. package/lib/components/Pagination/pagination.test.js +478 -367
  33. package/lib/components/ResourceConditionField/ResourceConditionalField.test.js +5 -1
  34. package/lib/components/ResourceConditionField/index.js +62 -30
  35. package/lib/components/ResourceFilter/index.js +39 -10
  36. package/lib/components/ResourceFilter/resourcefilter.test.js +297 -234
  37. package/lib/components/ResourceFooter/index.js +11 -4
  38. package/lib/components/ResourceHeader/index.js +54 -30
  39. package/lib/components/ResourceInformation/index.js +6 -1
  40. package/lib/components/ResourcePreview/index.js +30 -13
  41. package/lib/components/SearchModal/index.js +28 -11
  42. package/lib/components/SubMenu/index.js +20 -5
  43. package/lib/components/TransformedDate/index.js +7 -1
  44. package/lib/components/useAddLoginLink/index.js +13 -3
  45. package/lib/components/useScrollToTop/index.js +6 -1
  46. package/lib/index.js +247 -0
  47. package/lib/templates/APIPage/index.js +6 -1
  48. package/lib/templates/Dataset/DatasetBody.js +42 -12
  49. package/lib/templates/Dataset/index.js +26 -7
  50. package/lib/templates/DatasetSearch/datasetsearch.test.js +70 -50
  51. package/lib/templates/DatasetSearch/index.js +83 -43
  52. package/lib/templates/DrupalPage/index.js +13 -6
  53. package/lib/templates/FilteredResource/FilteredResourceBody.js +43 -15
  54. package/lib/templates/FilteredResource/QueryBuilder.js +59 -17
  55. package/lib/templates/FilteredResource/QueryRow.js +43 -20
  56. package/lib/templates/FilteredResource/QueryTitle.js +18 -2
  57. package/lib/templates/FilteredResource/functions.js +17 -5
  58. package/lib/templates/FilteredResource/index.js +36 -16
  59. package/lib/templates/Footer/footer.test.js +7 -2
  60. package/lib/templates/Footer/index.js +23 -11
  61. package/lib/templates/PageNotFound/index.js +5 -1
  62. package/lib/templates/header/index.js +26 -17
  63. package/lib/templates/mobile_header/index.js +42 -22
  64. package/package.json +1 -1
@@ -1,26 +1,42 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports["default"] = void 0;
9
11
  exports.selectedFacetsMessage = selectedFacetsMessage;
10
12
  exports.transformUrlParamsToSearchObject = transformUrlParamsToSearchObject;
13
+
11
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
12
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
13
18
  var _react = _interopRequireWildcard(require("react"));
19
+
14
20
  var _reactRouterDom = require("react-router-dom");
21
+
15
22
  var _qs = _interopRequireDefault(require("qs"));
23
+
16
24
  var _dataCatalogServices = require("@civicactions/data-catalog-services");
25
+
17
26
  var _designSystem = require("@cmsgov/design-system");
27
+
18
28
  var _DatasetSearchListItem = _interopRequireDefault(require("../../components/DatasetSearchListItem"));
29
+
19
30
  var _DatasetSearchFacets = _interopRequireDefault(require("../../components/DatasetSearchFacets"));
31
+
20
32
  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); }
33
+
21
34
  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; }
35
+
22
36
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
+
23
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
+
24
40
  function selectedFacetsMessage(facets, alternateTitles) {
25
41
  var message = [];
26
42
  var keys = Object.keys(facets);
@@ -31,10 +47,12 @@ function selectedFacetsMessage(facets, alternateTitles) {
31
47
  });
32
48
  return message.join(' & ');
33
49
  }
50
+
34
51
  function transformUrlParamsToSearchObject(searchParams, facetList, defaultSortOptions) {
35
52
  var params = _qs["default"].parse(searchParams, {
36
53
  ignoreQueryPrefix: true
37
54
  });
55
+
38
56
  var selectedFacets = {};
39
57
  facetList.forEach(function (facet) {
40
58
  selectedFacets[facet] = params[facet] ? params[facet] : [];
@@ -47,84 +65,101 @@ function transformUrlParamsToSearchObject(searchParams, facetList, defaultSortOp
47
65
  selectedFacets: selectedFacets
48
66
  };
49
67
  }
68
+
50
69
  var DatasetSearch = function DatasetSearch(_ref) {
51
70
  var rootUrl = _ref.rootUrl,
52
- pageTitle = _ref.pageTitle,
53
- introText = _ref.introText,
54
- fulltextLabel = _ref.fulltextLabel,
55
- fulltextLabelClassName = _ref.fulltextLabelClassName,
56
- fulltextPlaceholder = _ref.fulltextPlaceholder,
57
- formClassName = _ref.formClassName,
58
- additionalParams = _ref.additionalParams,
59
- sortOptions = _ref.sortOptions,
60
- defaultSort = _ref.defaultSort,
61
- showSort = _ref.showSort;
71
+ pageTitle = _ref.pageTitle,
72
+ introText = _ref.introText,
73
+ fulltextLabel = _ref.fulltextLabel,
74
+ fulltextLabelClassName = _ref.fulltextLabelClassName,
75
+ fulltextPlaceholder = _ref.fulltextPlaceholder,
76
+ formClassName = _ref.formClassName,
77
+ additionalParams = _ref.additionalParams,
78
+ sortOptions = _ref.sortOptions,
79
+ defaultSort = _ref.defaultSort,
80
+ showSort = _ref.showSort;
81
+
62
82
  var _useState = (0, _react.useState)(null),
63
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
64
- currentResultNumbers = _useState2[0],
65
- setCurrentResultNumbers = _useState2[1];
83
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
84
+ currentResultNumbers = _useState2[0],
85
+ setCurrentResultNumbers = _useState2[1];
86
+
66
87
  var _useState3 = (0, _react.useState)(false),
67
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
68
- noResults = _useState4[0],
69
- setNoResults = _useState4[1];
88
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
89
+ noResults = _useState4[0],
90
+ setNoResults = _useState4[1];
91
+
70
92
  var _useState5 = (0, _react.useState)(true),
71
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
72
- loadingData = _useState6[0],
73
- setLoadingData = _useState6[1];
93
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
94
+ loadingData = _useState6[0],
95
+ setLoadingData = _useState6[1];
96
+
74
97
  var loadingRef = (0, _react.useRef)();
75
98
  var location = (0, _reactRouterDom.useLocation)();
99
+
76
100
  var _useSearchParams = (0, _reactRouterDom.useSearchParams)(),
77
- _useSearchParams2 = (0, _slicedToArray2["default"])(_useSearchParams, 2),
78
- searchParams = _useSearchParams2[0],
79
- setSearchParams = _useSearchParams2[1];
101
+ _useSearchParams2 = (0, _slicedToArray2["default"])(_useSearchParams, 2),
102
+ searchParams = _useSearchParams2[0],
103
+ setSearchParams = _useSearchParams2[1];
104
+
80
105
  var _useState7 = (0, _react.useState)(''),
81
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
82
- filterText = _useState8[0],
83
- setFilterText = _useState8[1];
106
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
107
+ filterText = _useState8[0],
108
+ setFilterText = _useState8[1];
109
+
84
110
  var _useSearchAPI = (0, _dataCatalogServices.useSearchAPI)(rootUrl, _objectSpread({}, transformUrlParamsToSearchObject(location.search, ['theme', 'keyword'], defaultSort)), additionalParams),
85
- fulltext = _useSearchAPI.fulltext,
86
- selectedFacets = _useSearchAPI.selectedFacets,
87
- loading = _useSearchAPI.loading,
88
- items = _useSearchAPI.items,
89
- sort = _useSearchAPI.sort,
90
- totalItems = _useSearchAPI.totalItems,
91
- facets = _useSearchAPI.facets,
92
- updateSelectedFacets = _useSearchAPI.updateSelectedFacets,
93
- setFulltext = _useSearchAPI.setFulltext,
94
- setSort = _useSearchAPI.setSort,
95
- sortOrder = _useSearchAPI.sortOrder,
96
- setSortOrder = _useSearchAPI.setSortOrder,
97
- setPage = _useSearchAPI.setPage,
98
- pageSize = _useSearchAPI.pageSize,
99
- page = _useSearchAPI.page,
100
- resetFilters = _useSearchAPI.resetFilters;
111
+ fulltext = _useSearchAPI.fulltext,
112
+ selectedFacets = _useSearchAPI.selectedFacets,
113
+ loading = _useSearchAPI.loading,
114
+ items = _useSearchAPI.items,
115
+ sort = _useSearchAPI.sort,
116
+ totalItems = _useSearchAPI.totalItems,
117
+ facets = _useSearchAPI.facets,
118
+ updateSelectedFacets = _useSearchAPI.updateSelectedFacets,
119
+ setFulltext = _useSearchAPI.setFulltext,
120
+ setSort = _useSearchAPI.setSort,
121
+ sortOrder = _useSearchAPI.sortOrder,
122
+ setSortOrder = _useSearchAPI.setSortOrder,
123
+ setPage = _useSearchAPI.setPage,
124
+ pageSize = _useSearchAPI.pageSize,
125
+ page = _useSearchAPI.page,
126
+ resetFilters = _useSearchAPI.resetFilters;
127
+
101
128
  var _separateFacets = (0, _dataCatalogServices.separateFacets)(facets),
102
- theme = _separateFacets.theme,
103
- keyword = _separateFacets.keyword;
129
+ theme = _separateFacets.theme,
130
+ keyword = _separateFacets.keyword;
131
+
104
132
  function buildSearchParams(includePage) {
105
133
  var newParams = {};
134
+
106
135
  if (Number(page) !== 1 && includePage) {
107
136
  newParams.page = page;
108
137
  }
138
+
109
139
  if (sort !== defaultSort.defaultSort) {
110
140
  newParams.sort = sort;
111
141
  }
142
+
112
143
  if (sortOrder !== defaultSort.defaultOrder) {
113
144
  newParams.sortOrder = sortOrder;
114
145
  }
146
+
115
147
  if (fulltext !== '') {
116
148
  newParams.fulltext = fulltext;
117
149
  }
150
+
118
151
  if (Object.keys(selectedFacets).length) {
119
152
  Object.keys(selectedFacets).forEach(function (key) {
120
153
  newParams[key] = selectedFacets[key];
121
154
  });
122
155
  }
156
+
123
157
  return _qs["default"].stringify(newParams, {
124
158
  addQueryPrefix: includePage,
125
159
  encode: true
126
160
  });
127
161
  }
162
+
128
163
  (0, _react.useEffect)(function () {
129
164
  if (fulltext !== filterText) {
130
165
  setFilterText(fulltext);
@@ -132,6 +167,7 @@ var DatasetSearch = function DatasetSearch(_ref) {
132
167
  }, [fulltext]);
133
168
  (0, _react.useEffect)(function () {
134
169
  var params = buildSearchParams(true);
170
+
135
171
  if (params !== location.search) {
136
172
  setSearchParams(params);
137
173
  }
@@ -141,6 +177,7 @@ var DatasetSearch = function DatasetSearch(_ref) {
141
177
  if (!loading && loadingRef.current === true) {
142
178
  setLoadingData(false);
143
179
  }
180
+
144
181
  loadingRef.current = loading;
145
182
  }, [loading]);
146
183
  (0, _react.useEffect)(function () {
@@ -152,6 +189,7 @@ var DatasetSearch = function DatasetSearch(_ref) {
152
189
  startingNumber: Number(totalItems) >= startingNumber ? startingNumber : 0,
153
190
  endingNumber: Number(totalItems) < endingNumber ? Number(totalItems) : endingNumber
154
191
  });
192
+
155
193
  if (totalItems <= 0 && currentResultNumbers !== null) {
156
194
  setNoResults(true);
157
195
  } else {
@@ -169,6 +207,7 @@ var DatasetSearch = function DatasetSearch(_ref) {
169
207
  }, introText ? introText : null, /*#__PURE__*/_react["default"].createElement("form", {
170
208
  onSubmit: function onSubmit(e) {
171
209
  e.preventDefault();
210
+
172
211
  (function () {
173
212
  if (filterText !== fulltext) setLoadingData(true);
174
213
  setFulltext(filterText);
@@ -292,6 +331,7 @@ var DatasetSearch = function DatasetSearch(_ref) {
292
331
  role: "status"
293
332
  })))));
294
333
  };
334
+
295
335
  DatasetSearch.defaultProps = {
296
336
  pageTitle: 'Datasets',
297
337
  introText: '',
@@ -1,21 +1,27 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = void 0;
9
+
8
10
  var _react = _interopRequireDefault(require("react"));
11
+
9
12
  var _dataCatalogServices = require("@civicactions/data-catalog-services");
13
+
10
14
  var DrupalPage = function DrupalPage(_ref) {
11
15
  var path = _ref.path,
12
- rootURL = _ref.rootURL,
13
- uuid = _ref.uuid,
14
- entityType = _ref.entityType,
15
- bundle = _ref.bundle,
16
- options = _ref.options;
16
+ rootURL = _ref.rootURL,
17
+ uuid = _ref.uuid,
18
+ entityType = _ref.entityType,
19
+ bundle = _ref.bundle,
20
+ options = _ref.options;
21
+
17
22
  var _useDrupalEntity = (0, _dataCatalogServices.useDrupalEntity)(rootURL, uuid, entityType, bundle, options),
18
- entity = _useDrupalEntity.entity;
23
+ entity = _useDrupalEntity.entity;
24
+
19
25
  var bodyContent = Object.keys(entity).length ? /*#__PURE__*/_react["default"].createElement("div", {
20
26
  className: "dc-page ds-l-container"
21
27
  }, /*#__PURE__*/_react["default"].createElement("h1", null, entity.attributes.title), /*#__PURE__*/_react["default"].createElement("div", {
@@ -26,5 +32,6 @@ var DrupalPage = function DrupalPage(_ref) {
26
32
  })) : '';
27
33
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, bodyContent);
28
34
  };
35
+
29
36
  var _default = DrupalPage;
30
37
  exports["default"] = _default;
@@ -1,57 +1,84 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports["default"] = void 0;
11
+
9
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
10
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
11
16
  var _react = _interopRequireWildcard(require("react"));
17
+
12
18
  var _qs = _interopRequireDefault(require("qs"));
19
+
13
20
  var _reactRouterDom = require("react-router-dom");
21
+
14
22
  var _swaggerUiReact = _interopRequireDefault(require("swagger-ui-react"));
23
+
15
24
  var _dataCatalogServices = require("@civicactions/data-catalog-services");
25
+
16
26
  var _designSystem = require("@cmsgov/design-system");
27
+
17
28
  var _ResourceFilter = _interopRequireDefault(require("../../components/ResourceFilter"));
29
+
18
30
  var _ResourceHeader = _interopRequireDefault(require("../../components/ResourceHeader"));
31
+
19
32
  var _ResourcePreview = _interopRequireDefault(require("../../components/ResourcePreview"));
33
+
20
34
  var _ResourceFooter = _interopRequireDefault(require("../../components/ResourceFooter"));
35
+
21
36
  var _functions = require("./functions");
37
+
22
38
  var _QueryBuilder = _interopRequireDefault(require("./QueryBuilder"));
39
+
23
40
  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
+
24
42
  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; }
43
+
25
44
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
45
+
26
46
  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; }
47
+
27
48
  var FilteredResourceBody = function FilteredResourceBody(_ref) {
28
49
  var id = _ref.id,
29
- dataset = _ref.dataset,
30
- distIndex = _ref.distIndex,
31
- location = _ref.location,
32
- apiDocPage = _ref.apiDocPage,
33
- additionalParams = _ref.additionalParams,
34
- customColumns = _ref.customColumns,
35
- columnSettings = _ref.columnSettings,
36
- columnWidths = _ref.columnWidths,
37
- customTitle = _ref.customTitle;
50
+ dataset = _ref.dataset,
51
+ distIndex = _ref.distIndex,
52
+ location = _ref.location,
53
+ apiDocPage = _ref.apiDocPage,
54
+ additionalParams = _ref.additionalParams,
55
+ customColumns = _ref.customColumns,
56
+ columnSettings = _ref.columnSettings,
57
+ columnWidths = _ref.columnWidths,
58
+ customTitle = _ref.customTitle;
38
59
  var navigate = (0, _reactRouterDom.useNavigate)();
60
+
39
61
  var _React$useState = _react["default"].useState('ds-u-padding-y--1'),
40
- _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
41
- tablePadding = _React$useState2[0],
42
- setTablePadding = _React$useState2[1];
62
+ _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
63
+ tablePadding = _React$useState2[0],
64
+ setTablePadding = _React$useState2[1];
65
+
43
66
  var apiDocs = (0, _react.useRef)();
67
+
44
68
  var _React$useState3 = _react["default"].useState(false),
45
- _React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
46
- filtersOpen = _React$useState4[0],
47
- setFiltersOpen = _React$useState4[1];
69
+ _React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
70
+ filtersOpen = _React$useState4[0],
71
+ setFiltersOpen = _React$useState4[1];
72
+
48
73
  var distribution = {};
49
74
  var distribution_array = dataset.distribution ? dataset.distribution : [];
75
+
50
76
  if (distribution_array.length) {
51
77
  distribution = distribution_array.find(function (dist) {
52
78
  return dist.identifier === distribution_array[distIndex].identifier;
53
79
  });
54
80
  }
81
+
55
82
  var buttonRef = null;
56
83
  var options = location.search ? _objectSpread({}, _qs["default"].parse(location.search, {
57
84
  ignoreQueryPrefix: true
@@ -125,6 +152,7 @@ var FilteredResourceBody = function FilteredResourceBody(_ref) {
125
152
  defaultModelsExpandDepth: -1
126
153
  }))));
127
154
  };
155
+
128
156
  FilteredResourceBody.defaultProps = {
129
157
  apiDocPage: '/api'
130
158
  };
@@ -1,78 +1,108 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports["default"] = void 0;
11
+
9
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
10
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
11
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
12
18
  var _react = _interopRequireWildcard(require("react"));
19
+
13
20
  var _qs = _interopRequireDefault(require("qs"));
21
+
14
22
  var _designSystem = require("@cmsgov/design-system");
23
+
15
24
  var _QueryRow = _interopRequireDefault(require("./QueryRow"));
25
+
16
26
  var _QueryTitle = _interopRequireDefault(require("./QueryTitle"));
27
+
17
28
  var _functions = require("./functions");
29
+
18
30
  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); }
31
+
19
32
  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; }
33
+
20
34
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
35
+
21
36
  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; }
37
+
22
38
  function updateQueryForDatastore(condition) {
23
39
  var cond = condition;
24
40
  delete cond.key;
41
+
25
42
  if (cond.operator === '=' || cond.operator === '<>') {
26
43
  if (Array.isArray(cond.value)) {
27
44
  cond.value = cond.value.join();
28
45
  }
46
+
29
47
  cond.value = cond.value.replace(/(^\%+|\%+$)/gm, '');
30
48
  }
49
+
31
50
  if (cond.operator.toLowerCase() === 'like') {
32
51
  if (Array.isArray(cond.value)) {
33
52
  cond.value = cond.value.join();
34
53
  }
54
+
35
55
  var cleanedValue = cond.value.replace(/(^\%+|\%+$)/gm, '');
36
56
  cond.value = "%".concat(cleanedValue, "%");
37
57
  }
58
+
38
59
  if (cond.operator.toLowerCase() === 'in') {
39
60
  if (!Array.isArray(cond.value)) {
40
61
  cond.value = cond.value.split(',');
41
62
  }
42
63
  }
64
+
43
65
  if (Array.isArray(cond.value)) {
44
66
  cond.value = cond.value.map(function (v) {
45
67
  return v.trim().replace(/(^\%+|\%+$)/gm, '');
46
68
  });
47
69
  }
70
+
48
71
  return cond;
49
72
  }
73
+
50
74
  var QueryBuilder = function QueryBuilder(_ref) {
51
75
  var resource = _ref.resource,
52
- id = _ref.id,
53
- includeSearchParams = _ref.includeSearchParams,
54
- customColumns = _ref.customColumns;
76
+ id = _ref.id,
77
+ includeSearchParams = _ref.includeSearchParams,
78
+ customColumns = _ref.customColumns;
55
79
  var conditions = resource.conditions,
56
- schema = resource.schema,
57
- setConditions = resource.setConditions;
80
+ schema = resource.schema,
81
+ setConditions = resource.setConditions;
58
82
  var fields = Object.keys(schema[id].fields);
59
83
  var hasConditions = conditions.length > 0;
84
+
60
85
  var _useState = (0, _react.useState)(0),
61
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
62
- queryCount = _useState2[0],
63
- setQueryCount = _useState2[1];
86
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
87
+ queryCount = _useState2[0],
88
+ setQueryCount = _useState2[1];
89
+
64
90
  var _useState3 = (0, _react.useState)([]),
65
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
66
- queryConditions = _useState4[0],
67
- setQueryConditions = _useState4[1];
91
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
92
+ queryConditions = _useState4[0],
93
+ setQueryConditions = _useState4[1];
94
+
68
95
  var _useState5 = (0, _react.useState)([]),
69
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
70
- titleConditions = _useState6[0],
71
- setTitleConditions = _useState6[1]; // Add use effect to load conditions on first load if needed
96
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
97
+ titleConditions = _useState6[0],
98
+ setTitleConditions = _useState6[1]; // Add use effect to load conditions on first load if needed
99
+
100
+
72
101
  var _useState7 = (0, _react.useState)(false),
73
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
74
- conditionsChanged = _useState8[0],
75
- setConditionsChanged = _useState8[1];
102
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
103
+ conditionsChanged = _useState8[0],
104
+ setConditionsChanged = _useState8[1];
105
+
76
106
  var addCondition = function addCondition(condition) {
77
107
  if (Array.isArray(condition)) {
78
108
  var keyedConditions = condition.map(function (oc) {
@@ -90,10 +120,12 @@ var QueryBuilder = function QueryBuilder(_ref) {
90
120
  }]));
91
121
  }
92
122
  };
123
+
93
124
  _react["default"].useEffect(function () {
94
125
  addCondition(conditions);
95
126
  setTitleConditions(conditions);
96
127
  }, []);
128
+
97
129
  var propertyOptions = fields.map(function (f) {
98
130
  if (schema[id].fields[f].description) {
99
131
  return {
@@ -101,17 +133,20 @@ var QueryBuilder = function QueryBuilder(_ref) {
101
133
  value: f
102
134
  };
103
135
  }
136
+
104
137
  return {
105
138
  label: f,
106
139
  value: f
107
140
  };
108
141
  });
142
+
109
143
  var submitConditions = function submitConditions(e) {
110
144
  e.preventDefault();
111
145
  var submitConditions = queryConditions.filter(function (oc) {
112
146
  if (oc.property) {
113
147
  return oc;
114
148
  }
149
+
115
150
  return false;
116
151
  }).map(function (oc) {
117
152
  var cond = Object.assign({}, oc);
@@ -122,23 +157,28 @@ var QueryBuilder = function QueryBuilder(_ref) {
122
157
  return Object.assign({}, oc);
123
158
  }));
124
159
  setConditionsChanged(false);
160
+
125
161
  if (includeSearchParams) {
126
162
  var url = new URL(window.location);
163
+
127
164
  var urlString = _qs["default"].stringify({
128
165
  conditions: submitConditions
129
166
  }, {
130
167
  encodeValuesOnly: true,
131
168
  addQueryPrefix: true
132
169
  });
170
+
133
171
  window.history.pushState({}, '', "".concat(url.origin).concat(url.pathname).concat(urlString));
134
172
  }
135
173
  };
174
+
136
175
  var updateCondition = function updateCondition(index, key, value) {
137
176
  var newConditions = (0, _toConsumableArray2["default"])(queryConditions);
138
177
  newConditions[index][key] = value;
139
178
  setQueryConditions(newConditions);
140
179
  setConditionsChanged(true);
141
180
  };
181
+
142
182
  var removeCondition = function removeCondition(index) {
143
183
  var newConditions = queryConditions.map(function (oc) {
144
184
  return Object.assign({}, oc);
@@ -147,6 +187,7 @@ var QueryBuilder = function QueryBuilder(_ref) {
147
187
  setQueryConditions(newConditions);
148
188
  setConditionsChanged(true);
149
189
  };
190
+
150
191
  return /*#__PURE__*/_react["default"].createElement("div", {
151
192
  className: "dc-query-builder ds-u-margin-bottom--3"
152
193
  }, /*#__PURE__*/_react["default"].createElement(_designSystem.Accordion, {
@@ -186,6 +227,7 @@ var QueryBuilder = function QueryBuilder(_ref) {
186
227
  type: "submit"
187
228
  }, "Apply filters"))))));
188
229
  };
230
+
189
231
  QueryBuilder.defaultProps = {
190
232
  includeSearchParams: true
191
233
  };