@civicactions/cmsds-open-data-components 4.0.12-alpha.0 → 4.0.12-alpha.2

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/main.js CHANGED
@@ -4544,6 +4544,42 @@ const $e873081a6e8f024e$var$DatasetSearch = (props)=>{
4544
4544
  window.history.pushState({}, "", `${url.origin}${url.pathname}${urlString}`);
4545
4545
  }
4546
4546
  const pageSize = defaultPageSize;
4547
+ (0, $hgUW1$useEffect)(()=>{
4548
+ const baseNumber = Number(totalItems) > 0 ? 1 : 0;
4549
+ const startingNumber = baseNumber + (Number(pageSize) * Number(page) - Number(pageSize));
4550
+ const endingNumber = Number(pageSize) * Number(page);
4551
+ setCurrentResultNumbers({
4552
+ total: Number(totalItems),
4553
+ startingNumber: Number(totalItems) >= startingNumber ? startingNumber : 0,
4554
+ endingNumber: Number(totalItems) < endingNumber ? Number(totalItems) : endingNumber
4555
+ });
4556
+ setTimeout(()=>{
4557
+ setAnnouncementText(`Showing ${startingNumber} to ${endingNumber} of ${totalItems} datasets`);
4558
+ }, 100);
4559
+ if (totalItems <= 0 && currentResultNumbers !== null) setNoResults(true);
4560
+ else setNoResults(false);
4561
+ }, [
4562
+ totalItems,
4563
+ pageSize,
4564
+ page
4565
+ ]);
4566
+ (0, $hgUW1$useEffect)(()=>{
4567
+ if (page !== 1 && (transformedParams.fulltext !== fulltext || transformedParams.selectedFacets !== selectedFacets)) setPage(1);
4568
+ }, [
4569
+ fulltext,
4570
+ selectedFacets
4571
+ ]);
4572
+ (0, $hgUW1$useEffect)(()=>{
4573
+ if (totalItems !== null && totalItems !== undefined && totalItems > 0) {
4574
+ var params = buildSearchParams(true);
4575
+ if (params !== location.search) setSearchParams(params);
4576
+ }
4577
+ }, [
4578
+ page,
4579
+ sort,
4580
+ sortOrder,
4581
+ totalItems
4582
+ ]);
4547
4583
  function resetFilters() {
4548
4584
  setFullText(defaultFulltext);
4549
4585
  setFilterText(defaultFulltext);
@@ -4591,50 +4627,6 @@ const $e873081a6e8f024e$var$DatasetSearch = (props)=>{
4591
4627
  theme: null,
4592
4628
  keyword: null
4593
4629
  };
4594
- (0, $hgUW1$useEffect)(()=>{
4595
- const baseNumber = Number(totalItems) > 0 ? 1 : 0;
4596
- const startingNumber = baseNumber + (Number(pageSize) * Number(page) - Number(pageSize));
4597
- const endingNumber = Number(pageSize) * Number(page);
4598
- setCurrentResultNumbers({
4599
- total: Number(totalItems),
4600
- startingNumber: Number(totalItems) >= startingNumber ? startingNumber : 0,
4601
- endingNumber: Number(totalItems) < endingNumber ? Number(totalItems) : endingNumber
4602
- });
4603
- if (totalItems <= 0 && currentResultNumbers !== null) setNoResults(true);
4604
- else setNoResults(false);
4605
- }, [
4606
- totalItems,
4607
- pageSize,
4608
- page
4609
- ]);
4610
- (0, $hgUW1$useEffect)(()=>{
4611
- if (page !== 1 && (transformedParams.fulltext !== fulltext || transformedParams.selectedFacets !== selectedFacets)) setPage(1);
4612
- }, [
4613
- fulltext,
4614
- selectedFacets
4615
- ]);
4616
- (0, $hgUW1$useEffect)(()=>{
4617
- if (totalItems !== null && totalItems !== undefined && totalItems > 0) {
4618
- var params = buildSearchParams(true);
4619
- if (params !== location.search) setSearchParams(params);
4620
- }
4621
- }, [
4622
- page,
4623
- sort,
4624
- sortOrder,
4625
- totalItems
4626
- ]);
4627
- (0, $hgUW1$useEffect)(()=>{
4628
- // No results found
4629
- if (noResults) setAnnouncementText("No results found.");
4630
- else if (!isPending && (!data || !data.data.results)) setAnnouncementText("Could not connect to the API.");
4631
- else setAnnouncementText(`Showing ${currentResultNumbers.startingNumber} to ${currentResultNumbers.endingNumber} of ${currentResultNumbers.total} datasets`);
4632
- }, [
4633
- data,
4634
- isPending,
4635
- noResults,
4636
- currentResultNumbers
4637
- ]);
4638
4630
  return /*#__PURE__*/ (0, $hgUW1$jsxs)((0, $hgUW1$Fragment), {
4639
4631
  children: [
4640
4632
  /*#__PURE__*/ (0, $hgUW1$jsx)((0, $5723016a5461c1ca$export$2e2bcd8739ae039), {
@@ -4643,15 +4635,6 @@ const $e873081a6e8f024e$var$DatasetSearch = (props)=>{
4643
4635
  /*#__PURE__*/ (0, $hgUW1$jsxs)("section", {
4644
4636
  className: "ds-l-container",
4645
4637
  children: [
4646
- /*#__PURE__*/ (0, $hgUW1$jsx)("div", {
4647
- children: /*#__PURE__*/ (0, $hgUW1$jsx)("p", {
4648
- className: "ds-u-visibility--screen-reader",
4649
- "aria-live": "assertive",
4650
- "aria-atomic": "true",
4651
- "data-testid": "currentResults",
4652
- children: announcementText
4653
- })
4654
- }),
4655
4638
  /*#__PURE__*/ (0, $hgUW1$jsx)("div", {
4656
4639
  className: "ds-l-row",
4657
4640
  children: /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
@@ -4736,23 +4719,34 @@ const $e873081a6e8f024e$var$DatasetSearch = (props)=>{
4736
4719
  /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
4737
4720
  className: "ds-u-display--flex ds-u-justify-content--between ds-u-align-items--end ds-u-flex-wrap--reverse ds-u-sm-flex-wrap--wrap",
4738
4721
  children: [
4739
- enablePagination && /*#__PURE__*/ (0, $hgUW1$jsx)("div", {
4722
+ enablePagination && /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
4740
4723
  className: "ds-l-col--12 ds-l-sm-col--6 ds-l-md-col--8 ds-u-sm-padding-left--0",
4741
- children: /*#__PURE__*/ (0, $hgUW1$jsx)("p", {
4742
- className: "ds-u-margin-y--0",
4743
- children: currentResultNumbers && data && /*#__PURE__*/ (0, $hgUW1$jsxs)((0, $hgUW1$Fragment), {
4744
- children: [
4745
- "Showing ",
4746
- currentResultNumbers.startingNumber,
4747
- " -",
4748
- " ",
4749
- currentResultNumbers.endingNumber,
4750
- " of ",
4751
- data.data.total,
4752
- " datasets"
4753
- ]
4724
+ children: [
4725
+ /*#__PURE__*/ (0, $hgUW1$jsx)("p", {
4726
+ className: "ds-u-margin-y--0",
4727
+ "aria-hidden": "true",
4728
+ children: currentResultNumbers && data && /*#__PURE__*/ (0, $hgUW1$jsxs)((0, $hgUW1$Fragment), {
4729
+ children: [
4730
+ "Showing ",
4731
+ currentResultNumbers.startingNumber,
4732
+ " -",
4733
+ " ",
4734
+ currentResultNumbers.endingNumber,
4735
+ " of ",
4736
+ data.data.total,
4737
+ " datasets"
4738
+ ]
4739
+ })
4740
+ }),
4741
+ /*#__PURE__*/ (0, $hgUW1$jsx)("p", {
4742
+ className: "ds-u-visibility--screen-reader",
4743
+ role: "status",
4744
+ "aria-live": "assertive",
4745
+ "aria-atomic": "true",
4746
+ "data-testid": "currentResults",
4747
+ children: announcementText
4754
4748
  })
4755
- })
4749
+ ]
4756
4750
  }),
4757
4751
  enableSort && /*#__PURE__*/ (0, $hgUW1$jsx)("div", {
4758
4752
  className: "ds-l-col--12 ds-l-sm-col--6 ds-l-md-col--4 ds-u-sm-padding-right--0",
@@ -4773,7 +4767,6 @@ const $e873081a6e8f024e$var$DatasetSearch = (props)=>{
4773
4767
  children: [
4774
4768
  noResults && /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Alert), {
4775
4769
  variation: "error",
4776
- role: "region",
4777
4770
  heading: "No results found."
4778
4771
  }),
4779
4772
  data && data.data.results ? Object.keys(data.data.results).map((key)=>{
@@ -4801,7 +4794,6 @@ const $e873081a6e8f024e$var$DatasetSearch = (props)=>{
4801
4794
  }, item.identifier);
4802
4795
  }) : /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Alert), {
4803
4796
  variation: "error",
4804
- role: "region",
4805
4797
  heading: "Could not connect to the API."
4806
4798
  })
4807
4799
  ]
@@ -4914,6 +4906,37 @@ const $550bcc185f420ff5$var$DatasetList = ({ rootUrl: rootUrl, enableSort: enabl
4914
4906
  }
4915
4907
  };
4916
4908
  const pageSize = defaultPageSize;
4909
+ (0, $hgUW1$useEffect)(()=>{
4910
+ // Update browser URL with current search params
4911
+ const params = buildSearchParams(true);
4912
+ const url = new URL(window.location.href);
4913
+ window.history.pushState({}, "", `${url.origin}${url.pathname}${params}`);
4914
+ const baseNumber = Number(totalItems) > 0 ? 1 : 0;
4915
+ const startingNumber = baseNumber + (Number(pageSize) * Number(page) - Number(pageSize));
4916
+ const endingNumber = Number(pageSize) * Number(page);
4917
+ setCurrentResultNumbers({
4918
+ total: Number(totalItems),
4919
+ startingNumber: Number(totalItems) >= startingNumber ? startingNumber : 0,
4920
+ endingNumber: Number(totalItems) < endingNumber ? Number(totalItems) : endingNumber
4921
+ });
4922
+ setTimeout(()=>{
4923
+ setAnnouncementText(`Showing ${startingNumber} to ${endingNumber} of ${totalItems} datasets`);
4924
+ }, 100);
4925
+ if (totalItems <= 0 && currentResultNumbers !== null) setNoResults(true);
4926
+ else setNoResults(false);
4927
+ }, [
4928
+ totalItems,
4929
+ pageSize,
4930
+ page
4931
+ ]);
4932
+ (0, $hgUW1$useEffect)(()=>{
4933
+ var params = buildSearchParams(true);
4934
+ if (params !== location.search) setSearchParams(params);
4935
+ }, [
4936
+ page,
4937
+ sort,
4938
+ sortOrder
4939
+ ]);
4917
4940
  function buildSearchParams(includePage) {
4918
4941
  let newParams = {};
4919
4942
  if (Number(page) !== 1 && includePage) newParams.page = page;
@@ -4943,45 +4966,6 @@ const $550bcc185f420ff5$var$DatasetList = ({ rootUrl: rootUrl, enableSort: enabl
4943
4966
  }
4944
4967
  });
4945
4968
  if (data && data.data.total && totalItems != data.data.total) setTotalItems(data.data.total);
4946
- (0, $hgUW1$useEffect)(()=>{
4947
- // Update browser URL with current search params
4948
- const params = buildSearchParams(true);
4949
- const url = new URL(window.location.href);
4950
- window.history.pushState({}, "", `${url.origin}${url.pathname}${params}`);
4951
- const baseNumber = Number(totalItems) > 0 ? 1 : 0;
4952
- const startingNumber = baseNumber + (Number(pageSize) * Number(page) - Number(pageSize));
4953
- const endingNumber = Number(pageSize) * Number(page);
4954
- setCurrentResultNumbers({
4955
- total: Number(totalItems),
4956
- startingNumber: Number(totalItems) >= startingNumber ? startingNumber : 0,
4957
- endingNumber: Number(totalItems) < endingNumber ? Number(totalItems) : endingNumber
4958
- });
4959
- if (totalItems <= 0 && currentResultNumbers !== null) setNoResults(true);
4960
- else setNoResults(false);
4961
- }, [
4962
- totalItems,
4963
- pageSize,
4964
- page
4965
- ]);
4966
- (0, $hgUW1$useEffect)(()=>{
4967
- var params = buildSearchParams(true);
4968
- if (params !== location.search) setSearchParams(params);
4969
- }, [
4970
- page,
4971
- sort,
4972
- sortOrder
4973
- ]);
4974
- (0, $hgUW1$useEffect)(()=>{
4975
- // No results found
4976
- if (noResults) setAnnouncementText("No results found.");
4977
- else if (!isPending && (!data || !data.data.results)) setAnnouncementText("Could not connect to the API.");
4978
- else setAnnouncementText(`Showing ${currentResultNumbers.startingNumber} to ${currentResultNumbers.endingNumber} of ${currentResultNumbers.total} datasets`);
4979
- }, [
4980
- data,
4981
- isPending,
4982
- noResults,
4983
- currentResultNumbers
4984
- ]);
4985
4969
  return /*#__PURE__*/ (0, $hgUW1$jsxs)((0, $hgUW1$Fragment), {
4986
4970
  children: [
4987
4971
  /*#__PURE__*/ (0, $hgUW1$jsx)((0, $5723016a5461c1ca$export$2e2bcd8739ae039), {
@@ -4990,15 +4974,6 @@ const $550bcc185f420ff5$var$DatasetList = ({ rootUrl: rootUrl, enableSort: enabl
4990
4974
  /*#__PURE__*/ (0, $hgUW1$jsxs)("section", {
4991
4975
  className: "ds-l-container",
4992
4976
  children: [
4993
- /*#__PURE__*/ (0, $hgUW1$jsx)("div", {
4994
- children: /*#__PURE__*/ (0, $hgUW1$jsx)("p", {
4995
- className: "ds-u-visibility--screen-reader",
4996
- "aria-live": "assertive",
4997
- "aria-atomic": "true",
4998
- "data-testid": "currentResults",
4999
- children: announcementText
5000
- })
5001
- }),
5002
4977
  /*#__PURE__*/ (0, $hgUW1$jsx)("div", {
5003
4978
  className: "ds-l-row",
5004
4979
  children: /*#__PURE__*/ (0, $hgUW1$jsx)("div", {
@@ -5039,22 +5014,33 @@ const $550bcc185f420ff5$var$DatasetList = ({ rootUrl: rootUrl, enableSort: enabl
5039
5014
  className: "ds-u-margin-bottom--3",
5040
5015
  children: introText ? introText : null
5041
5016
  }),
5042
- enablePagination && /*#__PURE__*/ (0, $hgUW1$jsx)("div", {
5043
- children: /*#__PURE__*/ (0, $hgUW1$jsx)("p", {
5044
- className: "ds-u-margin-y--0",
5045
- children: currentResultNumbers && data && /*#__PURE__*/ (0, $hgUW1$jsxs)((0, $hgUW1$Fragment), {
5046
- children: [
5047
- "Showing ",
5048
- currentResultNumbers.startingNumber,
5049
- " -",
5050
- " ",
5051
- currentResultNumbers.endingNumber,
5052
- " of ",
5053
- data.data.total,
5054
- " datasets"
5055
- ]
5017
+ enablePagination && /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
5018
+ children: [
5019
+ /*#__PURE__*/ (0, $hgUW1$jsx)("p", {
5020
+ className: "ds-u-margin-y--0",
5021
+ "aria-hidden": "true",
5022
+ children: currentResultNumbers && data && /*#__PURE__*/ (0, $hgUW1$jsxs)((0, $hgUW1$Fragment), {
5023
+ children: [
5024
+ "Showing ",
5025
+ currentResultNumbers.startingNumber,
5026
+ " -",
5027
+ " ",
5028
+ currentResultNumbers.endingNumber,
5029
+ " of ",
5030
+ data.data.total,
5031
+ " datasets"
5032
+ ]
5033
+ })
5034
+ }),
5035
+ /*#__PURE__*/ (0, $hgUW1$jsx)("p", {
5036
+ className: "ds-u-visibility--screen-reader",
5037
+ role: "status",
5038
+ "aria-live": "assertive",
5039
+ "aria-atomic": "true",
5040
+ "data-testid": "currentResults",
5041
+ children: announcementText
5056
5042
  })
5057
- })
5043
+ ]
5058
5044
  })
5059
5045
  ]
5060
5046
  }),
@@ -5077,7 +5063,6 @@ const $550bcc185f420ff5$var$DatasetList = ({ rootUrl: rootUrl, enableSort: enabl
5077
5063
  children: [
5078
5064
  noResults && /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Alert), {
5079
5065
  variation: "error",
5080
- role: "region",
5081
5066
  heading: "No results found."
5082
5067
  }),
5083
5068
  data && data.data.results ? Object.keys(data.data.results).map((key)=>{
@@ -5092,7 +5077,6 @@ const $550bcc185f420ff5$var$DatasetList = ({ rootUrl: rootUrl, enableSort: enabl
5092
5077
  }, item.identifier);
5093
5078
  }) : /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Alert), {
5094
5079
  variation: "error",
5095
- role: "region",
5096
5080
  heading: "Could not connect to the API."
5097
5081
  })
5098
5082
  ]
@@ -5209,6 +5193,11 @@ const $1d3d480a9cfaabe0$var$useDatastore = (resourceId, rootAPIUrl, options, add
5209
5193
  const [schema, setSchema] = (0, $hgUW1$useState)({});
5210
5194
  // const [joins, setJoins] = useState()
5211
5195
  const [properties, setProperties] = (0, $hgUW1$useState)(options.properties ? options.properties : undefined);
5196
+ // Check drupalSettings for datastore_query_api
5197
+ const useDatasetAPI = typeof window !== "undefined" && window.drupalSettings?.datastore_query_api === true;
5198
+ const datasetID = additionalParams.datasetID;
5199
+ // Remove datasetID from params to avoid sending it to the API
5200
+ const { datasetID: _, ...restAdditionalParams } = additionalParams;
5212
5201
  let params = {
5213
5202
  keys: keys,
5214
5203
  limit: limit,
@@ -5217,7 +5206,7 @@ const $1d3d480a9cfaabe0$var$useDatastore = (resourceId, rootAPIUrl, options, add
5217
5206
  sorts: sort,
5218
5207
  properties: properties,
5219
5208
  groupings: groupings,
5220
- ...additionalParams
5209
+ ...restAdditionalParams
5221
5210
  };
5222
5211
  params = (0, $6d5c0212e738499b$export$34e95918366a058e)(params, ACA);
5223
5212
  const paramsString = Object.keys(params).length ? `${(0, $hgUW1$qs).stringify(params)}` : "";
@@ -5226,13 +5215,15 @@ const $1d3d480a9cfaabe0$var$useDatastore = (resourceId, rootAPIUrl, options, add
5226
5215
  if (!requireConditions) enabled = true;
5227
5216
  if (conditions && conditions.length) enabled = true;
5228
5217
  }
5218
+ // Change whether distribution API or dataset API is used based on option
5219
+ const queryID = useDatasetAPI && datasetID ? `${datasetID}/0` : id;
5229
5220
  const { data: data, isPending: isPending, error: error } = (0, $hgUW1$useQuery)({
5230
5221
  queryKey: [
5231
5222
  "datastore" + id + paramsString
5232
5223
  ],
5233
5224
  queryFn: ()=>{
5234
5225
  setCount(null);
5235
- return fetch(`${rootUrl}/datastore/query/${id}?${paramsString}`).then((res)=>res.json());
5226
+ return fetch(`${rootUrl}/datastore/query/${queryID}?${paramsString}`).then((res)=>res.json());
5236
5227
  },
5237
5228
  enabled: enabled
5238
5229
  });
@@ -5246,7 +5237,7 @@ const $1d3d480a9cfaabe0$var$useDatastore = (resourceId, rootAPIUrl, options, add
5246
5237
  count: true,
5247
5238
  schema: true
5248
5239
  };
5249
- return fetch(`${rootUrl}/datastore/query/${id}?${(0, $hgUW1$qs).stringify((0, $6d5c0212e738499b$export$34e95918366a058e)(unfilteredParams, ACA))}`).then((res)=>res.json());
5240
+ return fetch(`${rootUrl}/datastore/query/${queryID}?${(0, $hgUW1$qs).stringify((0, $6d5c0212e738499b$export$34e95918366a058e)(unfilteredParams, ACA))}`).then((res)=>res.json());
5250
5241
  }
5251
5242
  });
5252
5243
  (0, $hgUW1$useEffect)(()=>{
@@ -6379,6 +6370,8 @@ const $a0f13962e513caa1$var$Dataset = ({ id: id, rootUrl: rootUrl, customColumns
6379
6370
  const resource = (0, $1d3d480a9cfaabe0$export$2e2bcd8739ae039)("", rootUrl, {
6380
6371
  ...options,
6381
6372
  limit: defaultPageSize
6373
+ }, {
6374
+ datasetID: id // pass datasetID into additional params to enable dataset API option in useDatastore
6382
6375
  });
6383
6376
  const siteWideDataDictionary = dataDictionaryUrl ? $a0f13962e513caa1$var$getDataDictionary(rootUrl + dataDictionaryUrl).dataDictionary : null;
6384
6377
  // compare schema fields with siteWideDataDictionary to display commonalities for now
@@ -6444,7 +6437,6 @@ const $a0f13962e513caa1$var$Dataset = ({ id: id, rootUrl: rootUrl, customColumns
6444
6437
  window.location.hash
6445
6438
  ]);
6446
6439
  const displayDataDictionaryTab = distribution.data && distribution.data.describedBy && distribution.data.describedByType === "application/vnd.tableschema+json" || datasetSitewideDictionary && datasetSitewideDictionary.length > 0;
6447
- const formatType = (0, $f764661366bd9e1b$export$ee48b7e0e4eb536e)(distribution);
6448
6440
  return /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Fragment), {
6449
6441
  children: dataset.error ? /*#__PURE__*/ (0, $hgUW1$jsx)((0, $026cb986f9fea2b1$export$2e2bcd8739ae039), {
6450
6442
  content: notFoundContent,