@civicactions/cmsds-open-data-components 2.1.0 → 3.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -1,14 +1,15 @@
1
1
  import "./main.css";
2
2
  import {jsxs as $hgUW1$jsxs, jsx as $hgUW1$jsx, Fragment as $hgUW1$Fragment} from "react/jsx-runtime";
3
3
  import $hgUW1$react, {useState as $hgUW1$useState, useRef as $hgUW1$useRef, useEffect as $hgUW1$useEffect} from "react";
4
- import {Button as $hgUW1$Button, TextField as $hgUW1$TextField, Spinner as $hgUW1$Spinner, Alert as $hgUW1$Alert, Pagination as $hgUW1$Pagination, Dropdown as $hgUW1$Dropdown, Badge as $hgUW1$Badge, Accordion as $hgUW1$Accordion, AccordionItem as $hgUW1$AccordionItem, Choice as $hgUW1$Choice, Tooltip as $hgUW1$Tooltip, Table as $hgUW1$Table, TableHead as $hgUW1$TableHead, TableRow as $hgUW1$TableRow, TableCell as $hgUW1$TableCell, TableBody as $hgUW1$TableBody, Dialog as $hgUW1$Dialog, HelpDrawer as $hgUW1$HelpDrawer} from "@cmsgov/design-system";
4
+ import {Button as $hgUW1$Button, TextField as $hgUW1$TextField, Spinner as $hgUW1$Spinner, Dropdown as $hgUW1$Dropdown, Alert as $hgUW1$Alert, Pagination as $hgUW1$Pagination, Badge as $hgUW1$Badge, Accordion as $hgUW1$Accordion, AccordionItem as $hgUW1$AccordionItem, Choice as $hgUW1$Choice, Tooltip as $hgUW1$Tooltip, Table as $hgUW1$Table, TableHead as $hgUW1$TableHead, TableRow as $hgUW1$TableRow, TableCell as $hgUW1$TableCell, TableBody as $hgUW1$TableBody, Dialog as $hgUW1$Dialog, HelpDrawer as $hgUW1$HelpDrawer} from "@cmsgov/design-system";
5
5
  import $hgUW1$proptypes from "prop-types";
6
6
  import {NavLink as $hgUW1$NavLink, useLocation as $hgUW1$useLocation, useSearchParams as $hgUW1$useSearchParams, Link as $hgUW1$Link, useNavigate as $hgUW1$useNavigate} from "react-router-dom";
7
+ import $hgUW1$qs from "qs";
7
8
  import $hgUW1$swaggeruireact from "swagger-ui-react";
8
9
  import "swagger-ui-react/swagger-ui.css";
9
- import $hgUW1$qs from "qs";
10
10
  import {useQuery as $hgUW1$useQuery, QueryClient as $hgUW1$QueryClient, QueryClientProvider as $hgUW1$QueryClientProvider} from "@tanstack/react-query";
11
11
  import $hgUW1$axios from "axios";
12
+ import $hgUW1$dompurify from "dompurify";
12
13
  import $hgUW1$reacttexttruncate from "react-text-truncate";
13
14
  import {createColumnHelper as $hgUW1$createColumnHelper, useReactTable as $hgUW1$useReactTable, getCoreRowModel as $hgUW1$getCoreRowModel, getSortedRowModel as $hgUW1$getSortedRowModel, flexRender as $hgUW1$flexRender} from "@tanstack/react-table";
14
15
  import {useMediaQuery as $hgUW1$useMediaQuery} from "react-responsive";
@@ -165,14 +166,25 @@ var $f57121650539d8c5$export$2e2bcd8739ae039 = $f57121650539d8c5$var$NavBar;
165
166
 
166
167
 
167
168
 
168
- const $c96c4b9ef7203c1f$var$APIPage = ({ hideAuth: hideAuth , additionalParams: additionalParams , rootUrl: rootUrl })=>/*#__PURE__*/ (0, $hgUW1$jsx)("section", {
169
+
170
+ const $c96c4b9ef7203c1f$var$APIPage = ({ hideAuth: hideAuth , additionalParams: additionalParams , rootUrl: rootUrl })=>{
171
+ const hasACA = additionalParams && additionalParams.ACA ? true : false;
172
+ let params = {
173
+ authentication: hideAuth ? false : undefined,
174
+ ACA: hasACA ? additionalParams.ACA : undefined,
175
+ redirect: hasACA ? false : undefined
176
+ };
177
+ return /*#__PURE__*/ (0, $hgUW1$jsx)("section", {
169
178
  className: "ds-l-container",
170
179
  children: /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$swaggeruireact), {
171
- url: `${rootUrl}?${hideAuth ? "authentication=false&" : ""}${additionalParams && additionalParams.ACA ? "ACA=" + additionalParams.ACA + "&redirect=false" : ""}`,
180
+ url: `${rootUrl}${(0, $hgUW1$qs).stringify(params, {
181
+ addQueryPrefix: true
182
+ })}`,
172
183
  docExpansion: "list",
173
184
  defaultModelsExpandDepth: -1
174
185
  })
175
186
  });
187
+ };
176
188
  $c96c4b9ef7203c1f$var$APIPage.defaultProps = {
177
189
  hideAuth: true
178
190
  };
@@ -257,6 +269,7 @@ var $61ff88fb3f6ee2c8$export$2e2bcd8739ae039 = $61ff88fb3f6ee2c8$var$withQueryPr
257
269
 
258
270
 
259
271
 
272
+
260
273
  const $bd76a91923d7e8a7$var$TransformedDate = ({ date: date , options: options })=>{
261
274
  const rawDate = new Date(date);
262
275
  let modifiedDate = "";
@@ -279,7 +292,7 @@ var $bd76a91923d7e8a7$export$2e2bcd8739ae039 = $bd76a91923d7e8a7$var$Transformed
279
292
 
280
293
  const $dc6d3aaf3e07417b$var$dangerousDescriptionElement = ({ children: children })=>/*#__PURE__*/ (0, $hgUW1$jsx)("span", {
281
294
  dangerouslySetInnerHTML: {
282
- __html: children
295
+ __html: (0, $hgUW1$dompurify).sanitize(children)
283
296
  }
284
297
  });
285
298
  const $dc6d3aaf3e07417b$var$DatasetSearchListItem = ({ item: item , updateFacets: updateFacets })=>{
@@ -300,7 +313,7 @@ const $dc6d3aaf3e07417b$var$DatasetSearchListItem = ({ item: item , updateFacets
300
313
  className: "ds-l-row ds-u-padding-top--5",
301
314
  children: [
302
315
  /*#__PURE__*/ (0, $hgUW1$jsx)("div", {
303
- className: "ds-l-col--7",
316
+ className: "ds-l-sm-col--7 ds-l-col--12",
304
317
  children: theme && /*#__PURE__*/ (0, $hgUW1$jsx)("ul", {
305
318
  className: "ds-u-padding--0 ds-u-display--flex ds-u-flex-direction--row ds-u-flex-wrap--wrap",
306
319
  children: theme.map((t)=>/*#__PURE__*/ (0, $hgUW1$jsx)("li", {
@@ -313,7 +326,7 @@ const $dc6d3aaf3e07417b$var$DatasetSearchListItem = ({ item: item , updateFacets
313
326
  })
314
327
  }),
315
328
  /*#__PURE__*/ (0, $hgUW1$jsxs)("span", {
316
- className: "ds-l-col--5 ds-u-color--gray ds-u-text-align--right",
329
+ className: "ds-l-sm-col--5 ds-l-col--12 ds-u-color--gray ds-u-sm-text-align--right",
317
330
  children: [
318
331
  "Updated ",
319
332
  /*#__PURE__*/ (0, $hgUW1$jsx)((0, $bd76a91923d7e8a7$export$2e2bcd8739ae039), {
@@ -518,7 +531,7 @@ function $116bd29db288848e$export$28fa7926a3fa4176(selectedFacets, fulltext, sor
518
531
 
519
532
 
520
533
 
521
- const $007dd6bfbe0f2956$var$DatasetSearch = ({ rootUrl: rootUrl , pageTitle: pageTitle , introText: introText , fulltextLabel: fulltextLabel , fulltextLabelClassName: fulltextLabelClassName , fulltextPlaceholder: fulltextPlaceholder , formClassName: formClassName , additionalParams: additionalParams , sortOptions: sortOptions , defaultSort: defaultSort , showSort: showSort })=>{
534
+ const $007dd6bfbe0f2956$var$DatasetSearch = ({ rootUrl: rootUrl , pageTitle: pageTitle , introText: introText , fulltextLabel: fulltextLabel , fulltextLabelClassName: fulltextLabelClassName , fulltextPlaceholder: fulltextPlaceholder , filterTitle: filterTitle , formClassName: formClassName , additionalParams: additionalParams , sortOptions: sortOptions , defaultSort: defaultSort , showSort: showSort })=>{
522
535
  const defaultSortBy = "";
523
536
  const defaultFulltext = "";
524
537
  const defaultSelectedFacets = {};
@@ -539,7 +552,31 @@ const $007dd6bfbe0f2956$var$DatasetSearch = ({ rootUrl: rootUrl , pageTitle: pag
539
552
  const [page, setPage] = (0, $hgUW1$useState)(transformedParams.page ? transformedParams.page : defaultPage);
540
553
  const [sort, setSort] = (0, $hgUW1$useState)(transformedParams.sort ? transformedParams.sort : defaultSort ? defaultSort.defaultSort : defaultSortBy);
541
554
  const [sortOrder, setSortOrder] = (0, $hgUW1$useState)(transformedParams.sortOrder ? transformedParams.sortOrder : defaultSort ? defaultSort.defaultOrder : defaultSortOrder);
555
+ const [sortDisplay, setSortDisplay] = (0, $hgUW1$useState)(()=>{
556
+ return sort === "modified" ? sortOrder === "desc" ? "newest" : "oldest" : sortOrder === "desc" ? "titleZA" : "titleAZ";
557
+ });
542
558
  const [selectedFacets, setSelectedFacets] = (0, $hgUW1$useState)(transformedParams.selectedFacets ? transformedParams.selectedFacets : defaultSelectedFacets);
559
+ const setSortOptions = (value)=>{
560
+ setSortDisplay(value);
561
+ switch(value){
562
+ case "newest":
563
+ setSort("modified");
564
+ setSortOrder("desc");
565
+ break;
566
+ case "oldest":
567
+ setSort("modified");
568
+ setSortOrder("asc");
569
+ break;
570
+ case "titleAZ":
571
+ setSort("title");
572
+ setSortOrder("asc");
573
+ break;
574
+ case "titleZA":
575
+ setSort("title");
576
+ setSortOrder("desc");
577
+ break;
578
+ }
579
+ };
543
580
  function updateSelectedFacets(currentFacet) {
544
581
  const facets = (0, $116bd29db288848e$export$9ef1e909a5e43470)(currentFacet, selectedFacets);
545
582
  setPage(1);
@@ -618,187 +655,159 @@ const $007dd6bfbe0f2956$var$DatasetSearch = ({ rootUrl: rootUrl , pageTitle: pag
618
655
  className: "dc-search-header ds-title ds-u-margin-y--3",
619
656
  children: pageTitle
620
657
  }),
621
- /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
658
+ /*#__PURE__*/ (0, $hgUW1$jsx)("div", {
622
659
  className: "ds-l-row",
623
- children: [
624
- /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
625
- className: "ds-l-md-col--8 ds-l-sm-col--12ds-u-margin-bottom--3",
626
- children: [
627
- introText ? introText : null,
628
- /*#__PURE__*/ (0, $hgUW1$jsxs)("form", {
629
- onSubmit: (e)=>{
630
- e.preventDefault();
631
- ()=>{
660
+ children: /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
661
+ className: "ds-l-col--12",
662
+ children: [
663
+ introText ? introText : null,
664
+ /*#__PURE__*/ (0, $hgUW1$jsxs)("form", {
665
+ onSubmit: (e)=>{
666
+ e.preventDefault();
667
+ ()=>{
668
+ setFullText(filterText);
669
+ setPage(defaultPage);
670
+ };
671
+ },
672
+ className: formClassName,
673
+ children: [
674
+ /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$TextField), {
675
+ fieldClassName: "ds-u-margin--0",
676
+ value: filterText,
677
+ className: "dc-fulltext--input-container ds-u-padding-right--2",
678
+ label: fulltextLabel,
679
+ labelClassName: fulltextLabelClassName,
680
+ placeholder: fulltextPlaceholder,
681
+ name: "dataset_fulltext_search",
682
+ onChange: (e)=>setFilterText(e.target.value)
683
+ }),
684
+ /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Button), {
685
+ type: "submit",
686
+ variation: "solid",
687
+ htmlFor: "dataset_fulltext_search",
688
+ onClick: ()=>{
632
689
  setFullText(filterText);
633
690
  setPage(defaultPage);
634
- };
635
- },
636
- className: formClassName,
637
- children: [
638
- /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$TextField), {
639
- fieldClassName: "ds-u-margin--0",
640
- value: filterText,
641
- className: "dc-fulltext--input-container ds-u-padding-right--2",
642
- label: fulltextLabel,
643
- labelClassName: fulltextLabelClassName,
644
- placeholder: fulltextPlaceholder,
645
- name: "dataset_fulltext_search",
646
- onChange: (e)=>setFilterText(e.target.value)
647
- }),
648
- /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Button), {
649
- type: "submit",
650
- variation: "solid",
651
- htmlFor: "dataset_fulltext_search",
652
- onClick: ()=>{
653
- setFullText(filterText);
654
- setPage(defaultPage);
655
- },
656
- children: "Search"
657
- })
658
- ]
659
- }),
660
- status === "loading" ? /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Spinner), {
661
- className: "ds-u-valign--middle",
662
- "aria-valuetext": "Dataset Search loading",
663
- role: "status"
664
- }) : /*#__PURE__*/ (0, $hgUW1$jsxs)((0, $hgUW1$Fragment), {
665
- children: [
666
- /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
667
- className: "ds-u-display--flex ds-u-justify-content--between ds-u-align-items--end",
668
- children: [
669
- /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
670
- children: [
671
- currentResultNumbers && /*#__PURE__*/ (0, $hgUW1$jsxs)("p", {
672
- className: "ds-u-margin-y--0",
673
- role: "region",
674
- "aria-live": "polite",
675
- "data-testid": "currentResults",
676
- children: [
677
- "Showing ",
678
- currentResultNumbers.startingNumber,
679
- " -",
680
- " ",
681
- currentResultNumbers.endingNumber,
682
- " of ",
683
- data.data.total,
684
- " datasets"
685
- ]
686
- }),
687
- /*#__PURE__*/ (0, $hgUW1$jsx)("p", {
688
- className: "ds-u-margin-y--0",
689
- children: (0, $116bd29db288848e$export$b638ec7c7eac7f18)(selectedFacets, {
690
- theme: "Categories",
691
- keyword: "Tags"
692
- })
693
- })
694
- ]
695
- }),
696
- /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Button), {
697
- className: "ds-u-padding--0 dc-c-clear-filters",
698
- variation: "ghost",
699
- onClick: ()=>resetFilters(),
700
- children: "Clear all filters"
701
- })
702
- ]
703
- }),
704
- /*#__PURE__*/ (0, $hgUW1$jsxs)("ol", {
705
- className: "dc-dataset-search-list ds-u-padding--0",
706
- children: [
707
- noResults && /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Alert), {
708
- variation: "error",
709
- heading: "No results found."
710
- }),
711
- Object.keys(data.data.results).map((key)=>{
712
- return data.data.results[key];
713
- }).map((item)=>/*#__PURE__*/ (0, $hgUW1$jsx)("li", {
714
- className: "ds-u-padding--0",
715
- children: /*#__PURE__*/ (0, $hgUW1$jsx)((0, $dc6d3aaf3e07417b$export$2e2bcd8739ae039), {
716
- item: item,
717
- updateFacets: updateSelectedFacets
718
- })
719
- }, item.identifier))
720
- ]
721
- }),
722
- data.data.total != 0 && /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Pagination), {
723
- id: "test-default",
724
- currentPage: Number(page),
725
- totalPages: Math.ceil(Number(data.data.total) / pageSize),
726
- onPageChange: (evt, page)=>{
727
- evt.preventDefault();
728
- window.scroll(0, 0);
729
- setPage(page);
730
- },
731
- renderHref: (page)=>{
732
- const searchParams = buildSearchParams(false);
733
- const includeAnd = searchParams ? "&" : "";
734
- return `/datasets?page=${page}${includeAnd}${searchParams}`;
735
- }
736
- })
737
- ]
738
- })
739
- ]
740
- }),
691
+ },
692
+ children: "Search"
693
+ })
694
+ ]
695
+ })
696
+ ]
697
+ })
698
+ }),
699
+ /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
700
+ className: "ds-l-row ds-u-padding-top--6",
701
+ children: [
741
702
  /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
742
- className: "ds-l-md-col--4 ds-l-sm-col--12",
703
+ className: "ds-l-col--12 ds-l-sm-col--4",
743
704
  children: [
744
- showSort && /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
745
- className: "ds-u-padding--2 ds-u-margin-bottom--4 ds-u-border--1",
746
- children: [
747
- /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Dropdown), {
748
- options: sortOptions,
749
- value: sort,
750
- label: "Sort by",
751
- labelClassName: "ds-u-margin-top--0",
752
- name: "dataset_search_sort",
753
- onChange: (e)=>setSort(e.target.value)
754
- }),
755
- /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Dropdown), {
756
- options: [
757
- {
758
- label: "Ascending",
759
- value: "asc"
760
- },
761
- {
762
- label: "Descending",
763
- value: "desc"
764
- }
765
- ],
766
- value: sortOrder,
767
- label: "Sort order",
768
- labelClassName: "ds-u-margin-top--0",
769
- name: "dataset_search_sort_order",
770
- onChange: (e)=>setSortOrder(e.target.value)
771
- })
772
- ]
705
+ /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Button), {
706
+ className: "dc-dataset-search--clear-all-filters ds-u-margin-bottom--2",
707
+ onClick: ()=>resetFilters(),
708
+ children: "Clear all filters"
773
709
  }),
774
- /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
775
- className: "ds-u-padding--2 ds-u-margin-bottom--4 ds-u-border--1",
776
- children: [
777
- theme ? /*#__PURE__*/ (0, $hgUW1$jsx)((0, $19c005961efdef1a$export$2e2bcd8739ae039), {
778
- title: "Categories",
779
- facets: theme,
780
- onclickFunction: updateSelectedFacets,
781
- selectedFacets: selectedFacets.theme,
782
- loading: status === "loading"
783
- }) : /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Spinner), {
784
- className: "ds-u-valign--middle",
785
- "aria-valuetext": "Categories loading",
786
- role: "status"
787
- }),
788
- keyword ? /*#__PURE__*/ (0, $hgUW1$jsx)((0, $19c005961efdef1a$export$2e2bcd8739ae039), {
789
- title: "Tags",
790
- facets: keyword,
791
- onclickFunction: updateSelectedFacets,
792
- selectedFacets: selectedFacets.keyword,
793
- loading: status === "loading"
794
- }) : /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Spinner), {
795
- className: "ds-u-valign--middle",
796
- "aria-valuetext": "Tags loading",
797
- role: "status"
798
- })
799
- ]
710
+ data && /*#__PURE__*/ (0, $hgUW1$jsx)((0, $19c005961efdef1a$export$2e2bcd8739ae039), {
711
+ facets: theme,
712
+ title: "Categories",
713
+ onClickFunction: updateSelectedFacets,
714
+ selectedFacets: selectedFacets.theme
715
+ }),
716
+ data && /*#__PURE__*/ (0, $hgUW1$jsx)((0, $19c005961efdef1a$export$2e2bcd8739ae039), {
717
+ facets: keyword,
718
+ title: filterTitle ? filterTitle : "Tags",
719
+ onClickFunction: updateSelectedFacets,
720
+ selectedFacets: selectedFacets.keyword
800
721
  })
801
722
  ]
723
+ }),
724
+ /*#__PURE__*/ (0, $hgUW1$jsx)("div", {
725
+ className: "ds-l-col--12 ds-l-sm-col--8",
726
+ children: status === "loading" ? /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Spinner), {
727
+ className: "ds-u-valign--middle",
728
+ "aria-valuetext": "Dataset Search loading",
729
+ role: "status"
730
+ }) : /*#__PURE__*/ (0, $hgUW1$jsxs)((0, $hgUW1$Fragment), {
731
+ children: [
732
+ /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
733
+ 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",
734
+ children: [
735
+ /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
736
+ className: "ds-l-col--12 ds-l-sm-col--6 ds-l-md-col--8",
737
+ children: [
738
+ currentResultNumbers && /*#__PURE__*/ (0, $hgUW1$jsxs)("p", {
739
+ className: "ds-u-margin-y--0",
740
+ role: "region",
741
+ "aria-live": "polite",
742
+ "data-testid": "currentResults",
743
+ children: [
744
+ "Showing ",
745
+ currentResultNumbers.startingNumber,
746
+ " -",
747
+ " ",
748
+ currentResultNumbers.endingNumber,
749
+ " of ",
750
+ data.data.total,
751
+ " datasets"
752
+ ]
753
+ }),
754
+ /*#__PURE__*/ (0, $hgUW1$jsx)("p", {
755
+ className: "ds-u-margin-y--0",
756
+ children: (0, $116bd29db288848e$export$b638ec7c7eac7f18)(selectedFacets, {
757
+ theme: "Categories",
758
+ keyword: "Tags"
759
+ })
760
+ })
761
+ ]
762
+ }),
763
+ showSort && /*#__PURE__*/ (0, $hgUW1$jsx)("div", {
764
+ className: "ds-l-col--12 ds-l-sm-col--6 ds-l-md-col--4 ds-u-sm-padding-right--0",
765
+ children: /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Dropdown), {
766
+ options: sortOptions,
767
+ value: sortDisplay,
768
+ label: "Sort",
769
+ labelClassName: "ds-u-margin-top--0",
770
+ name: "dataset_search_sort",
771
+ onChange: (e)=>setSortOptions(e.target.value)
772
+ })
773
+ })
774
+ ]
775
+ }),
776
+ /*#__PURE__*/ (0, $hgUW1$jsxs)("ol", {
777
+ className: "dc-dataset-search-list ds-u-padding--0",
778
+ children: [
779
+ noResults && /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Alert), {
780
+ variation: "error",
781
+ heading: "No results found."
782
+ }),
783
+ Object.keys(data.data.results).map((key)=>{
784
+ return data.data.results[key];
785
+ }).map((item)=>/*#__PURE__*/ (0, $hgUW1$jsx)("li", {
786
+ className: "ds-u-padding--0",
787
+ children: /*#__PURE__*/ (0, $hgUW1$jsx)((0, $dc6d3aaf3e07417b$export$2e2bcd8739ae039), {
788
+ item: item,
789
+ updateFacets: updateSelectedFacets
790
+ })
791
+ }, item.identifier))
792
+ ]
793
+ }),
794
+ data.data.total != 0 && /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$Pagination), {
795
+ id: "test-default",
796
+ currentPage: Number(page),
797
+ totalPages: Math.ceil(Number(data.data.total) / pageSize),
798
+ onPageChange: (evt, page)=>{
799
+ evt.preventDefault();
800
+ window.scroll(0, 0);
801
+ setPage(page);
802
+ },
803
+ renderHref: (page)=>{
804
+ const searchParams = buildSearchParams(false);
805
+ const includeAnd = searchParams ? "&" : "";
806
+ return `/datasets?page=${page}${includeAnd}${searchParams}`;
807
+ }
808
+ })
809
+ ]
810
+ })
802
811
  })
803
812
  ]
804
813
  })
@@ -815,12 +824,20 @@ $007dd6bfbe0f2956$var$DatasetSearch.defaultProps = {
815
824
  showSort: true,
816
825
  sortOptions: [
817
826
  {
818
- label: "Recently Updated",
819
- value: "modified"
827
+ label: "Newest",
828
+ value: "newest"
829
+ },
830
+ {
831
+ label: "Oldest",
832
+ value: "oldest"
820
833
  },
821
834
  {
822
- label: "Title",
823
- value: "title"
835
+ label: "Title A-Z",
836
+ value: "titleAZ"
837
+ },
838
+ {
839
+ label: "Title Z-A",
840
+ value: "titleZA"
824
841
  }
825
842
  ],
826
843
  defaultSort: {
@@ -874,6 +891,7 @@ var $68d79598b83f3382$export$2e2bcd8739ae039 = $68d79598b83f3382$var$useMetastor
874
891
 
875
892
 
876
893
 
894
+
877
895
  async function $0e7628cf73c71646$export$55f990b5477765d6(id, rootUrl, options, additionalParams) {
878
896
  const { keys: keys , limit: limit , offset: offset , conditions: conditions , sort: sort , groupings: groupings , prepareColumns: prepareColumns , properties: properties , setValues: setValues , setCount: setCount , setColumns: setColumns , setLoading: setLoading , setSchema: setSchema } = options;
879
897
  if (!id) // TODO: Throw error
@@ -1667,34 +1685,63 @@ var $17193a17e26a72da$export$2e2bcd8739ae039 = $17193a17e26a72da$var$DatasetTags
1667
1685
 
1668
1686
 
1669
1687
 
1670
- const $f341c2fd9bc53390$var$DatasetDownloads = ({ downloadURL: downloadURL , type: type })=>{
1688
+ const $f341c2fd9bc53390$var$DatasetDownloads = ({ dataDictionaryURL: dataDictionaryURL , dataDictionaryType: dataDictionaryType , distributions: distributions })=>{
1689
+ function trimDataDictionaryType() {
1690
+ let splitDataDictionaryType = dataDictionaryType.split("/");
1691
+ let type = splitDataDictionaryType.length > 1 ? splitDataDictionaryType[1] : splitDataDictionaryType[0];
1692
+ return type.toUpperCase();
1693
+ }
1694
+ function getFormatType(dist) {
1695
+ if (dist.data.format) return dist.data.format.toUpperCase();
1696
+ if (dist.data.mediaType) {
1697
+ const mediaType = dist.data.mediaType.split("/");
1698
+ if (mediaType.length && mediaType[1]) return mediaType[1].toUpperCase();
1699
+ }
1700
+ if (dist.data["%Ref:downloadURL"].length && dist.data["%Ref:downloadURL"][0].data) {
1701
+ if (dist.data["%Ref:downloadURL"][0].data.mimeType) {
1702
+ const mimeType = dist.data["%Ref:downloadURL"][0].data.mimeType.split("/");
1703
+ if (mimeType.length && mimeType[1]) return mimeType[1].toUpperCase();
1704
+ }
1705
+ }
1706
+ return "";
1707
+ }
1671
1708
  return /*#__PURE__*/ (0, $hgUW1$jsxs)("div", {
1672
- className: "ds-u-margin-bottom--3 ds-u-padding--2 ds-u-border ds-u-border--1",
1709
+ className: "ds-u-margin-bottom--3 ds-u-padding--2 ds-u-border ds-u-border--1 dc-c-dataset-downloads",
1673
1710
  children: [
1674
1711
  /*#__PURE__*/ (0, $hgUW1$jsx)("h2", {
1675
1712
  className: "ds-u-color--primary ds-u-font-size--h3 ds-u-margin-top--0 ds-u-margin-bottom--2 ds-u-padding-bottom--2 ds-u-border ds-u-border-bottom--1",
1676
1713
  children: "Downloads"
1677
1714
  }),
1678
- /*#__PURE__*/ (0, $hgUW1$jsx)("p", {
1679
- className: "ds-u-margin-bottom--1 ds-u-color--gray",
1680
- children: "Resource"
1681
- }),
1682
- /*#__PURE__*/ (0, $hgUW1$jsxs)("a", {
1683
- href: downloadURL,
1684
- className: "ds-u-word-break",
1715
+ (distributions.length || dataDictionaryURL && dataDictionaryType) && /*#__PURE__*/ (0, $hgUW1$jsxs)("ul", {
1716
+ className: "ds-c-list ds-c-list--bare",
1685
1717
  children: [
1686
- "Download this resource (",
1687
- type,
1688
- ")"
1718
+ distributions.map((dist)=>/*#__PURE__*/ (0, $hgUW1$jsx)("li", {
1719
+ className: "ds-u-padding-bottom--1",
1720
+ children: /*#__PURE__*/ (0, $hgUW1$jsxs)("a", {
1721
+ href: dist.data.downloadURL,
1722
+ className: "ds-u-word-break",
1723
+ children: [
1724
+ getFormatType(dist),
1725
+ " ",
1726
+ "Resource File"
1727
+ ]
1728
+ })
1729
+ }, dist.identifier)),
1730
+ dataDictionaryURL && dataDictionaryType && /*#__PURE__*/ (0, $hgUW1$jsx)("li", {
1731
+ children: /*#__PURE__*/ (0, $hgUW1$jsxs)("a", {
1732
+ href: dataDictionaryURL,
1733
+ children: [
1734
+ "Data Dictionary (",
1735
+ trimDataDictionaryType(),
1736
+ ")"
1737
+ ]
1738
+ })
1739
+ })
1689
1740
  ]
1690
1741
  })
1691
1742
  ]
1692
1743
  });
1693
1744
  };
1694
- $f341c2fd9bc53390$var$DatasetDownloads.propTypes = {
1695
- downloadURL: (0, $hgUW1$proptypes).string.isRequired,
1696
- type: (0, $hgUW1$proptypes).string.isRequired
1697
- };
1698
1745
  var $f341c2fd9bc53390$export$2e2bcd8739ae039 = $f341c2fd9bc53390$var$DatasetDownloads;
1699
1746
 
1700
1747
 
@@ -1741,6 +1788,7 @@ const $5644ebd2c3dbfd7b$var$DatasetAdditionalInformation = ({ datasetInfo: datas
1741
1788
  children: r.label
1742
1789
  }),
1743
1790
  /*#__PURE__*/ (0, $hgUW1$jsx)((0, $hgUW1$TableCell), {
1791
+ className: "ds-u-word-break-anywhere",
1744
1792
  children: r.value
1745
1793
  })
1746
1794
  ]
@@ -2027,7 +2075,7 @@ const $766b8e351dd607f5$var$DatasetBody = ({ rootUrl: rootUrl , id: id , dataset
2027
2075
  /*#__PURE__*/ (0, $hgUW1$jsx)("p", {
2028
2076
  className: "dc-c-metadata-description",
2029
2077
  dangerouslySetInnerHTML: {
2030
- __html: dataset.description
2078
+ __html: (0, $hgUW1$dompurify).sanitize(dataset.description)
2031
2079
  }
2032
2080
  }),
2033
2081
  resource.columns && Object.keys(resource.schema).length ? /*#__PURE__*/ (0, $hgUW1$jsxs)((0, $hgUW1$Fragment), {
@@ -2098,8 +2146,9 @@ const $766b8e351dd607f5$var$DatasetBody = ({ rootUrl: rootUrl , id: id , dataset
2098
2146
  className: "ds-l-md-col--3 ds-l-sm-col--12",
2099
2147
  children: [
2100
2148
  Object.keys(distribution).length ? /*#__PURE__*/ (0, $hgUW1$jsx)((0, $f341c2fd9bc53390$export$2e2bcd8739ae039), {
2101
- downloadURL: distribution.data.downloadURL,
2102
- type: fileFormat
2149
+ dataDictionaryURL: dataset.describedBy,
2150
+ dataDictionaryType: dataset.describedByType,
2151
+ distributions: dataset.distribution
2103
2152
  }) : "",
2104
2153
  dataset.keyword && /*#__PURE__*/ (0, $hgUW1$jsx)((0, $17193a17e26a72da$export$2e2bcd8739ae039), {
2105
2154
  keywords: dataset.keyword
@@ -4016,6 +4065,7 @@ var $ec3e23baa005dc03$export$2e2bcd8739ae039 = $ec3e23baa005dc03$var$Breadcrumb;
4016
4065
 
4017
4066
 
4018
4067
 
4068
+
4019
4069
 
4020
4070
 
4021
4071
  function $374c4669b044ddf8$var$getStartDate(condition, schema, id) {
@@ -4406,7 +4456,7 @@ const $dd6eb2b30d7ad75d$var$FilteredResourceBody = ({ id: id , dataset: dataset
4406
4456
  /*#__PURE__*/ (0, $hgUW1$jsx)("p", {
4407
4457
  className: "ds-u-margin-top--0 dc-c-metadata-description",
4408
4458
  dangerouslySetInnerHTML: {
4409
- __html: distribution.data.description
4459
+ __html: (0, $hgUW1$dompurify).sanitize(distribution.data.description)
4410
4460
  }
4411
4461
  }),
4412
4462
  resource.columns && Object.keys(resource.schema).length && /*#__PURE__*/ (0, $hgUW1$jsx)((0, $3b6ca952e79f0695$export$2e2bcd8739ae039), {