@google-psat/report 0.14.0 → 1.0.0-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.
Files changed (23) hide show
  1. package/dist/dashboard/components/cookiesWithIssues/index.js +3 -4
  2. package/dist/dashboard/components/siteMapReport/cookies.js +2 -22
  3. package/dist/dashboard/components/siteMapReport/index.js +2 -2
  4. package/dist/dashboard/components/siteMapReport/layout.js +1 -4
  5. package/dist/dashboard/components/siteReport/index.js +2 -2
  6. package/dist/dashboard/components/siteReport/stateProviders/contentStore/index.js +1 -3
  7. package/dist/dashboard/components/siteReport/tabs/cookies/cookiesLandingContainer/cookieLanding/landing.js +2 -20
  8. package/dist/dashboard/components/siteReport/tabs/cookies/cookiesLandingContainer/index.js +4 -5
  9. package/dist/dashboard/components/siteReport/tabs/cookies/cookiesListing/index.js +3 -4
  10. package/dist/dashboard/components/siteReport/tabs/cookies/index.js +2 -3
  11. package/dist/dashboard/components/urlsWithIssues/index.js +4 -5
  12. package/dist/dashboard/components/utils/NamePrefixIconSelector.js +6 -6
  13. package/dist/dashboard/hooks/useCookieListing/index.js +0 -14
  14. package/dist-types/dashboard/components/siteMapReport/cookies.d.ts +2 -5
  15. package/dist-types/dashboard/components/siteMapReport/index.d.ts +2 -5
  16. package/dist-types/dashboard/components/siteMapReport/layout.d.ts +2 -5
  17. package/dist-types/dashboard/components/siteReport/index.d.ts +2 -3
  18. package/dist-types/dashboard/components/siteReport/stateProviders/contentStore/index.d.ts +3 -5
  19. package/dist-types/dashboard/components/siteReport/tabs/cookies/cookiesLandingContainer/cookieLanding/landing.d.ts +2 -3
  20. package/dist-types/dashboard/components/siteReport/tabs/cookies/cookiesLandingContainer/index.d.ts +2 -6
  21. package/package.json +5 -15
  22. package/tsconfig.json +0 -3
  23. package/babel.config.cjs +0 -36
@@ -18,9 +18,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
18
  * External dependencies.
19
19
  */
20
20
  import { useState } from 'react';
21
- import { Resizable } from 're-resizable';
22
21
  import {} from '@google-psat/common';
23
- import { CookieTable, CookieDetails } from '@google-psat/design-system';
22
+ import { CookieTable, CookieDetails, ResizableTray, } from '@google-psat/design-system';
24
23
  /**
25
24
  * Internal dependencies.
26
25
  */
@@ -30,10 +29,10 @@ const CookiesWithIssues = ({ cookies, selectedSite, hostName, }) => {
30
29
  const { tableColumns, filters, searchKeys, tablePersistentSettingsKey } = useCookieListing(cookies, 'frame', 'cookiesWithIssuesListing', selectedSite);
31
30
  //@ts-ignore -- PSAT_EXTENSTION is added only when the report is downloaded from the extension. Since optional chaining is done it will return false if it doesnt exist.
32
31
  const isCLI = globalThis?.PSAT_EXTENSION ? false : true;
33
- return (_jsxs("div", { className: "w-full h-full flex flex-col", children: [_jsx(Resizable, { defaultSize: {
32
+ return (_jsxs("div", { className: "w-full h-full flex flex-col", children: [_jsx(ResizableTray, { defaultSize: {
34
33
  width: '100%',
35
34
  height: '80%',
36
- }, minHeight: "6%", maxHeight: "95%", enable: {
35
+ }, minHeight: "6%", maxHeight: "95%", trayId: "cookies-with-issues-table", enable: {
37
36
  top: false,
38
37
  right: false,
39
38
  bottom: true,
@@ -26,29 +26,9 @@ import { useSidebar } from '@google-psat/design-system';
26
26
  import AssembledCookiesLanding from '../siteReport/tabs/cookies/cookiesLandingContainer';
27
27
  import SiteReport from '../siteReport';
28
28
  import { generateSiteMapReportandDownload } from '../utils/reportDownloader';
29
- const CookiesTab = ({ selectedSite, tabCookies, tabFrames, completeJson, path, libraryMatches, query = '', clearQuery = noop, }) => {
29
+ const CookiesTab = ({ selectedSite, tabCookies, tabFrames, completeJson, path, query = '', clearQuery = noop, }) => {
30
30
  const isKeySelected = useSidebar(({ actions }) => actions.isKeySelected);
31
31
  const [appliedFilters, setAppliedFilters] = useState({});
32
- const [siteMapLibraryMatches, libraryMatchesUrlCount] = useMemo(() => {
33
- const _libraryMatchesUrlCount = {};
34
- const _siteMapLibraryMatches = completeJson?.reduce((acc, data) => {
35
- const _libraryMatches = data.libraryMatches;
36
- Object.keys(_libraryMatches).forEach((key) => {
37
- acc[key] =
38
- // @ts-ignore
39
- acc[key]?.matches?.length || acc[key]?.domQuerymatches?.length
40
- ? acc[key]
41
- : _libraryMatches[key];
42
- if (Object.keys(_libraryMatches[key]?.matches ?? {}).length ||
43
- Object.keys(_libraryMatches[key]?.domQuerymatches ?? {}).length) {
44
- _libraryMatchesUrlCount[key] =
45
- (_libraryMatchesUrlCount[key] || 0) + 1;
46
- }
47
- });
48
- return acc;
49
- }, {}) || {};
50
- return [_siteMapLibraryMatches, _libraryMatchesUrlCount];
51
- }, [completeJson]);
52
32
  const downloadReport = useCallback(async () => {
53
33
  if (!Array.isArray(completeJson)) {
54
34
  return;
@@ -66,6 +46,6 @@ const CookiesTab = ({ selectedSite, tabCookies, tabFrames, completeJson, path, l
66
46
  const sitemapPath =
67
47
  // @ts-ignore - Global object
68
48
  globalThis?.PSAT_DATA?.siteMapUrl || globalThis?.PSAT_DATA?.selectedSite;
69
- return (_jsx(_Fragment, { children: !selectedSite ? (_jsx(AssembledCookiesLanding, { tabCookies: tabCookies, tabFrames: tabFrames, libraryMatches: siteMapLibraryMatches, libraryMatchesUrlCount: libraryMatchesUrlCount, downloadReport: downloadReport, menuBarScrollContainerId: "dashboard-sitemap-layout-container", setAppliedFilters: setAppliedFilters, query: query, clearQuery: clearQuery, url: sitemapPath })) : (_jsx(SiteReport, { cookies: siteFilteredCookies, completeJson: siteFilteredCompleteJson, selectedSite: selectedSite || '', path: path, libraryMatches: libraryMatches && selectedSite ? libraryMatches[selectedSite] : {}, query: query, clearQuery: clearQuery })) }));
49
+ return (_jsx(_Fragment, { children: !selectedSite ? (_jsx(AssembledCookiesLanding, { tabCookies: tabCookies, tabFrames: tabFrames, downloadReport: downloadReport, menuBarScrollContainerId: "dashboard-sitemap-layout-container", setAppliedFilters: setAppliedFilters, query: query, clearQuery: clearQuery, url: sitemapPath })) : (_jsx(SiteReport, { cookies: siteFilteredCookies, completeJson: siteFilteredCompleteJson, selectedSite: selectedSite || '', path: path, query: query, clearQuery: clearQuery })) }));
70
50
  };
71
51
  export default CookiesTab;
@@ -24,8 +24,8 @@ import { SidebarProvider } from '@google-psat/design-system';
24
24
  */
25
25
  import sidebarData from './sidebarData';
26
26
  import Layout from './layout';
27
- const SiteMapReport = ({ landingPageCookies, completeJson, path, libraryMatches, erroredOutUrls, }) => {
27
+ const SiteMapReport = ({ landingPageCookies, completeJson, path, erroredOutUrls, }) => {
28
28
  const [data, setData] = useState(sidebarData);
29
- return (_jsx(SidebarProvider, { data: data, children: _jsx(Layout, { erroredOutUrls: erroredOutUrls, landingPageCookies: landingPageCookies, completeJson: completeJson, sidebarData: data, setSidebarData: setData, path: path, libraryMatches: libraryMatches }) }));
29
+ return (_jsx(SidebarProvider, { data: data, children: _jsx(Layout, { erroredOutUrls: erroredOutUrls, landingPageCookies: landingPageCookies, completeJson: completeJson, sidebarData: data, setSidebarData: setData, path: path }) }));
30
30
  };
31
31
  export default SiteMapReport;
@@ -27,7 +27,7 @@ import { useSidebar, Sidebar, SIDEBAR_ITEMS_KEYS, File, FileWhite, } from '@goog
27
27
  import SiteMapCookiesWithIssues from './sitemapCookiesWithIssues';
28
28
  import CookiesTab from './cookies';
29
29
  import ErroredOutUrls from '../urlsWithIssues';
30
- const Layout = ({ landingPageCookies, completeJson, sidebarData, setSidebarData, path, erroredOutUrls, libraryMatches, }) => {
30
+ const Layout = ({ landingPageCookies, completeJson, sidebarData, setSidebarData, path, erroredOutUrls, }) => {
31
31
  const [sites, setSites] = useState([]);
32
32
  useEffect(() => {
33
33
  const _sites = new Set();
@@ -75,7 +75,6 @@ const Layout = ({ landingPageCookies, completeJson, sidebarData, setSidebarData,
75
75
  tabFrames,
76
76
  completeJson,
77
77
  path,
78
- libraryMatches,
79
78
  query,
80
79
  clearQuery,
81
80
  },
@@ -91,7 +90,6 @@ const Layout = ({ landingPageCookies, completeJson, sidebarData, setSidebarData,
91
90
  tabFrames,
92
91
  completeJson,
93
92
  path,
94
- libraryMatches,
95
93
  query,
96
94
  clearQuery,
97
95
  },
@@ -130,7 +128,6 @@ const Layout = ({ landingPageCookies, completeJson, sidebarData, setSidebarData,
130
128
  completeJson,
131
129
  cookiesWithIssues,
132
130
  doesSiteHaveCookies,
133
- libraryMatches,
134
131
  path,
135
132
  query,
136
133
  reshapedCookies,
@@ -26,8 +26,8 @@ import { SidebarProvider } from '@google-psat/design-system';
26
26
  import { Provider as ContentStoreProvider } from './stateProviders/contentStore';
27
27
  import Layout from './components/layout';
28
28
  import Tabs from './tabs';
29
- const SiteReport = ({ cookies, completeJson, selectedSite, path, libraryMatches, query = '', clearQuery = noop, }) => {
29
+ const SiteReport = ({ cookies, completeJson, selectedSite, path, query = '', clearQuery = noop, }) => {
30
30
  const [data, setData] = useState(Tabs);
31
- return (_jsx(ContentStoreProvider, { cookies: cookies, completeJson: completeJson, libraryMatches: libraryMatches, path: path, children: _jsx(SidebarProvider, { data: data, children: _jsx(Layout, { selectedSite: selectedSite, setSidebarData: setData, query: query, clearQuery: clearQuery }) }) }));
31
+ return (_jsx(ContentStoreProvider, { cookies: cookies, completeJson: completeJson, path: path, children: _jsx(SidebarProvider, { data: data, children: _jsx(Layout, { selectedSite: selectedSite, setSidebarData: setData, query: query, clearQuery: clearQuery }) }) }));
32
32
  };
33
33
  export default SiteReport;
@@ -24,18 +24,16 @@ const initialState = {
24
24
  tabCookies: {},
25
25
  completeJson: null,
26
26
  path: '',
27
- libraryMatches: null,
28
27
  },
29
28
  };
30
29
  export const Context = createContext(initialState);
31
- export const Provider = ({ cookies, completeJson, children, path, libraryMatches, }) => {
30
+ export const Provider = ({ cookies, completeJson, children, path, }) => {
32
31
  const tabCookies = useMemo(() => reshapeCookies(cookies), [cookies]);
33
32
  return (_jsx(Context.Provider, { value: {
34
33
  state: {
35
34
  tabCookies,
36
35
  completeJson,
37
36
  path,
38
- libraryMatches,
39
37
  },
40
38
  }, children: children }));
41
39
  };
@@ -25,10 +25,9 @@ import { MenuBar, } from '@google-psat/design-system';
25
25
  */
26
26
  import CookiesSection from './cookiesSection';
27
27
  import BlockedCookiesSection from './blockedCookiesSection';
28
- import KnownBreakages from './knownBreakages';
29
28
  import ExemptedCookiesSection from './exemptedCookiesSection';
30
29
  import FramesSection from './framesSection';
31
- const Landing = ({ tabFrames, tabCookies, cookiesWithIssues, downloadReport, libraryMatches, libraryMatchesUrlCount, menuBarScrollContainerId = 'dashboard-layout-container', }) => {
30
+ const Landing = ({ tabFrames, tabCookies, cookiesWithIssues, downloadReport, menuBarScrollContainerId = 'dashboard-layout-container', }) => {
32
31
  const sections = useMemo(() => {
33
32
  const baseSections = [
34
33
  {
@@ -54,17 +53,6 @@ const Landing = ({ tabFrames, tabCookies, cookiesWithIssues, downloadReport, lib
54
53
  },
55
54
  },
56
55
  },
57
- {
58
- name: I18n.getMessage('knownBreakages'),
59
- link: 'known-breakages',
60
- panel: {
61
- Element: KnownBreakages,
62
- props: {
63
- libraryMatches: libraryMatches ?? {},
64
- libraryMatchesUrlCount,
65
- },
66
- },
67
- },
68
56
  ];
69
57
  // @ts-ignore -- PSAT_USING_CDP is added only when the report is downloaded from the extension. Only false value to be considered.
70
58
  if (globalThis?.PSAT_USING_CDP !== false) {
@@ -95,13 +83,7 @@ const Landing = ({ tabFrames, tabCookies, cookiesWithIssues, downloadReport, lib
95
83
  });
96
84
  }
97
85
  return baseSections;
98
- }, [
99
- cookiesWithIssues,
100
- libraryMatches,
101
- libraryMatchesUrlCount,
102
- tabCookies,
103
- tabFrames,
104
- ]);
86
+ }, [cookiesWithIssues, tabCookies, tabFrames]);
105
87
  const menuData = useMemo(() => sections.map(({ name, link }) => ({ name, link })), [sections]);
106
88
  return (_jsxs(_Fragment, { children: [_jsx(MenuBar, { disableReportDownload: false, downloadReport:
107
89
  // @ts-ignore -- PSAT_DATA is not present in globalThis type.
@@ -20,14 +20,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
20
  import React, { memo, useEffect, useMemo, useState } from 'react';
21
21
  import { getCookieKey, noop, } from '@google-psat/common';
22
22
  import { I18n } from '@google-psat/i18n';
23
- import { Resizable } from 're-resizable';
24
- import { TableChipsBar, TableFiltersSidebar, useGlobalFiltering, FilterIcon, } from '@google-psat/design-system';
23
+ import { TableChipsBar, TableFiltersSidebar, useGlobalFiltering, FilterIcon, ResizableTray, } from '@google-psat/design-system';
25
24
  /**
26
25
  * Internal dependencies.
27
26
  */
28
27
  import Landing from './cookieLanding/landing';
29
28
  import Header from '../../../../header';
30
- const AssembledCookiesLanding = ({ tabCookies, tabFrames, setAppliedFilters, downloadReport, libraryMatches, libraryMatchesUrlCount, menuBarScrollContainerId = 'dashboard-layout-container', query = '', clearQuery = noop, url, }) => {
29
+ const AssembledCookiesLanding = ({ tabCookies, tabFrames, setAppliedFilters, downloadReport, menuBarScrollContainerId = 'dashboard-layout-container', query = '', clearQuery = noop, url, }) => {
31
30
  const cookies = useMemo(() => Object.values(tabCookies || {}), [tabCookies]);
32
31
  const filterOutput = useGlobalFiltering(cookies, query, clearQuery);
33
32
  // @ts-ignore Using global variable.
@@ -52,8 +51,8 @@ const AssembledCookiesLanding = ({ tabCookies, tabFrames, setAppliedFilters, dow
52
51
  ? 'text-royal-blue dark:text-medium-persian-blue'
53
52
  : 'text-mischka' }) }), _jsx(TableChipsBar, { selectedFilters: filterOutput.selectedFilters, resetFilters: filterOutput.resetFilters, toggleFilterSelection: filterOutput.toggleFilterSelection })] }), _jsxs("div", { className: "flex grow-0", style: {
54
53
  height: 'calc(100% - 82px)',
55
- }, children: [showFilterSidebar && (_jsx(Resizable, { minWidth: "100px", maxWidth: "50%", enable: {
54
+ }, children: [showFilterSidebar && (_jsx(ResizableTray, { minWidth: "100px", maxWidth: "50%", enable: {
56
55
  right: true,
57
- }, className: "border border-r border-gray-300 dark:border-quartz", children: _jsx(TableFiltersSidebar, { filters: filterOutput.filters, toggleFilterSelection: filterOutput.toggleFilterSelection, toggleSelectAllFilter: filterOutput.toggleSelectAllFilter, isSelectAllFilterSelected: filterOutput.isSelectAllFilterSelected }) })), _jsx("div", { className: "flex-1 overflow-auto h-full", id: menuBarScrollContainerId, children: _jsx(Landing, { tabCookies: cookiesByKey, tabFrames: tabFrames, cookiesWithIssues: cookiesWithIssues, downloadReport: downloadReport, libraryMatches: libraryMatches, libraryMatchesUrlCount: libraryMatchesUrlCount, menuBarScrollContainerId: menuBarScrollContainerId }) })] })] }));
56
+ }, className: "border border-r border-gray-300 dark:border-quartz", trayId: "cookies-landing-table-bottom-tray", children: _jsx(TableFiltersSidebar, { filters: filterOutput.filters, toggleFilterSelection: filterOutput.toggleFilterSelection, toggleSelectAllFilter: filterOutput.toggleSelectAllFilter, isSelectAllFilterSelected: filterOutput.isSelectAllFilterSelected }) })), _jsx("div", { className: "flex-1 overflow-auto h-full", id: menuBarScrollContainerId, children: _jsx(Landing, { tabCookies: cookiesByKey, tabFrames: tabFrames, cookiesWithIssues: cookiesWithIssues, downloadReport: downloadReport, menuBarScrollContainerId: menuBarScrollContainerId }) })] })] }));
58
57
  };
59
58
  export default memo(AssembledCookiesLanding);
@@ -18,9 +18,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
18
  * External dependencies
19
19
  */
20
20
  import { useMemo, useState } from 'react';
21
- import { Resizable } from 're-resizable';
22
21
  import {} from '@google-psat/common';
23
- import { CookieTable, CookieDetails } from '@google-psat/design-system';
22
+ import { CookieTable, CookieDetails, ResizableTray, } from '@google-psat/design-system';
24
23
  /**
25
24
  * Internal dependencies
26
25
  */
@@ -37,11 +36,11 @@ const CookiesListing = ({ selectedFrameUrl, selectedSite, }) => {
37
36
  const { tableColumns, filters, searchKeys, tablePersistentSettingsKey, isSidebarOpen, } = useCookieListing(memoTabCookies, selectedFrameUrl, 'cookiesListing', selectedSite);
38
37
  //@ts-ignore -- PSAT_EXTENSTION is added only when the report is downloaded from the extension. Since optional chaining is done it will return false if it doesnt exist.
39
38
  const isCLI = globalThis?.PSAT_EXTENSION ? false : true;
40
- return (_jsxs("div", { className: "w-full h-full flex flex-col", children: [_jsx(Resizable, { defaultSize: {
39
+ return (_jsxs("div", { className: "w-full h-full flex flex-col", children: [_jsx(ResizableTray, { defaultSize: {
41
40
  width: '100%',
42
41
  height: '80%',
43
42
  }, minHeight: "6%", maxHeight: "95%", enable: {
44
43
  bottom: true,
45
- }, className: "h-full flex", children: _jsx(CookieTable, { data: cookies, tableColumns: tableColumns, tableFilters: filters, tableSearchKeys: searchKeys, tablePersistentSettingsKey: tablePersistentSettingsKey, selectedFrame: selectedFrameUrl, selectedFrameCookie: selectedFrameCookie, setSelectedFrameCookie: setSelectedFrameCookie, isFiltersSidebarOpen: isSidebarOpen, isCLI: isCLI, hostname: path }) }), _jsx(CookieDetails, { isUsingCDP: true, selectedFrameCookie: selectedFrameCookie })] }));
44
+ }, className: "h-full flex", trayId: "report-cookiesListing", children: _jsx(CookieTable, { data: cookies, tableColumns: tableColumns, tableFilters: filters, tableSearchKeys: searchKeys, tablePersistentSettingsKey: tablePersistentSettingsKey, selectedFrame: selectedFrameUrl, selectedFrameCookie: selectedFrameCookie, setSelectedFrameCookie: setSelectedFrameCookie, isFiltersSidebarOpen: isSidebarOpen, isCLI: isCLI, hostname: path }) }), _jsx(CookieDetails, { isUsingCDP: true, selectedFrameCookie: selectedFrameCookie })] }));
46
45
  };
47
46
  export default CookiesListing;
@@ -25,10 +25,9 @@ import { useContentStore } from '../../stateProviders/contentStore';
25
25
  import { generateSiteReportandDownload } from '../../../utils/reportDownloader';
26
26
  import AssembledCookiesLanding from './cookiesLandingContainer';
27
27
  const CookiesTab = ({ selectedFrameUrl, selectedSite, query = '', clearQuery = noop, url = '', }) => {
28
- const { tabCookies, completeJson, libraryMatches } = useContentStore(({ state }) => ({
28
+ const { tabCookies, completeJson } = useContentStore(({ state }) => ({
29
29
  tabCookies: state.tabCookies,
30
30
  completeJson: state.completeJson,
31
- libraryMatches: state.libraryMatches,
32
31
  }));
33
32
  const [appliedFilters, setAppliedFilters] = useState({});
34
33
  const tabFrames = useMemo(() => {
@@ -51,6 +50,6 @@ const CookiesTab = ({ selectedFrameUrl, selectedSite, query = '', clearQuery = n
51
50
  await generateSiteReportandDownload(completeJson, appliedFilters);
52
51
  }
53
52
  }, [appliedFilters, completeJson, selectedSite]);
54
- return (_jsx("div", { className: "w-full h-full flex items-center justify-center", children: selectedFrameUrl ? (_jsx(CookiesListing, { selectedFrameUrl: selectedFrameUrl, selectedSite: selectedSite })) : (_jsx("div", { className: "flex flex-col h-full w-full", children: _jsx(AssembledCookiesLanding, { tabCookies: tabCookies, libraryMatches: libraryMatches, tabFrames: tabFrames, downloadReport: downloadReport, setAppliedFilters: setAppliedFilters, query: query, clearQuery: clearQuery, url: url }) })) }));
53
+ return (_jsx("div", { className: "w-full h-full flex items-center justify-center", children: selectedFrameUrl ? (_jsx(CookiesListing, { selectedFrameUrl: selectedFrameUrl, selectedSite: selectedSite })) : (_jsx("div", { className: "flex flex-col h-full w-full", children: _jsx(AssembledCookiesLanding, { tabCookies: tabCookies, tabFrames: tabFrames, downloadReport: downloadReport, setAppliedFilters: setAppliedFilters, query: query, clearQuery: clearQuery, url: url }) })) }));
55
54
  };
56
55
  export default CookiesTab;
@@ -18,10 +18,9 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
18
18
  * External dependencies
19
19
  */
20
20
  import { useMemo, useState } from 'react';
21
- import { Resizable } from 're-resizable';
22
21
  import { noop } from '@google-psat/common';
23
22
  import { I18n } from '@google-psat/i18n';
24
- import { Table, TableProvider, } from '@google-psat/design-system';
23
+ import { Table, TableProvider, ResizableTray, } from '@google-psat/design-system';
25
24
  const ErroredOutUrls = ({ erroredOutUrls }) => {
26
25
  const [selectedRow, setSelectedRow] = useState();
27
26
  const tableColumns = useMemo(() => [
@@ -43,7 +42,7 @@ const ErroredOutUrls = ({ erroredOutUrls }) => {
43
42
  },
44
43
  ], []);
45
44
  const filters = useMemo(() => ({}), []);
46
- return (_jsxs("div", { className: "w-full h-full text-outer-space-crayola border-x border-american-silver dark:border-quartz flex flex-col", children: [_jsx(Resizable, { defaultSize: {
45
+ return (_jsxs("div", { className: "w-full h-full text-outer-space-crayola border-x border-american-silver dark:border-quartz flex flex-col", children: [_jsx(ResizableTray, { defaultSize: {
47
46
  width: '100%',
48
47
  height: '80%',
49
48
  }, minHeight: "6%", maxHeight: "95%", enable: {
@@ -51,11 +50,11 @@ const ErroredOutUrls = ({ erroredOutUrls }) => {
51
50
  right: false,
52
51
  bottom: true,
53
52
  left: false,
54
- }, className: "h-full flex", children: _jsx(TableProvider, { data: erroredOutUrls, tableColumns: tableColumns, tableFilterData: filters, tableSearchKeys: ['url'], tablePersistentSettingsKey: "urlsWithIssues", onRowClick: (row) => {
53
+ }, className: "h-full flex", trayId: "urls-with-issues-table-bottom-tray", children: _jsx(TableProvider, { data: erroredOutUrls, tableColumns: tableColumns, tableFilterData: filters, tableSearchKeys: ['url'], tablePersistentSettingsKey: "urlsWithIssues", onRowClick: (row) => {
55
54
  setSelectedRow(row);
56
55
  }, onRowContextMenu: noop, getRowObjectKey: (row) => {
57
56
  return row.originalData.url;
58
- }, children: _jsx(Table, { hideFiltering: true, selectedKey: selectedRow?.url }) }) }), _jsx("div", { className: "flex-1 border border-gray-300 dark:border-quartz shadow h-full min-w-[10rem]", children: selectedRow ? (_jsxs("div", { className: "text-xs py-1 px-1.5", children: [selectedRow.url && (_jsxs(_Fragment, { children: [_jsx("p", { className: "font-bold text-granite-gray dark:text-manatee mb-1 text-semibold flex items-center", children: _jsx("span", { children: "Error Message" }) }), _jsx("p", { className: "mb-4 break-words text-outer-space-crayola dark:text-bright-gray", children: selectedRow.errorMessage })] })), _jsxs(_Fragment, { children: [_jsx("p", { className: "font-bold text-granite-gray dark:text-manatee mb-1", children: "Error code" }), _jsx("p", { className: "mb-4 text-outer-space-crayola dark:text-bright-gray", children: selectedRow?.errorCode || I18n.getMessage('noDescription') })] }), selectedRow?.stackTrace && (_jsxs(_Fragment, { children: [_jsx("p", { className: "font-bold text-granite-gray dark:text-manatee mb-1", children: "Stack trace" }), _jsx("p", { className: "text-outer-space-crayola dark:text-bright-gray", children: _jsx("pre", { children: _jsx("code", { dangerouslySetInnerHTML: {
57
+ }, children: _jsx(Table, { hideFiltering: true, selectedKey: selectedRow?.url }) }) }), _jsx("div", { className: "flex-1 border border-gray-300 dark:border-quartz shadow-sm h-full min-w-[10rem]", children: selectedRow ? (_jsxs("div", { className: "text-xs py-1 px-1.5", children: [selectedRow.url && (_jsxs(_Fragment, { children: [_jsx("p", { className: "font-bold text-granite-gray dark:text-manatee mb-1 text-semibold flex items-center", children: _jsx("span", { children: "Error Message" }) }), _jsx("p", { className: "mb-4 break-words text-outer-space-crayola dark:text-bright-gray", children: selectedRow.errorMessage })] })), _jsxs(_Fragment, { children: [_jsx("p", { className: "font-bold text-granite-gray dark:text-manatee mb-1", children: "Error code" }), _jsx("p", { className: "mb-4 text-outer-space-crayola dark:text-bright-gray", children: selectedRow?.errorCode || I18n.getMessage('noDescription') })] }), selectedRow?.stackTrace && (_jsxs(_Fragment, { children: [_jsx("p", { className: "font-bold text-granite-gray dark:text-manatee mb-1", children: "Stack trace" }), _jsx("p", { className: "text-outer-space-crayola dark:text-bright-gray", children: _jsx("pre", { children: _jsx("code", { dangerouslySetInnerHTML: {
59
58
  __html: selectedRow?.stackTrace ||
60
59
  I18n.getMessage('noDescription'),
61
60
  } }) }) })] }))] })) : (_jsx("div", { className: "h-full p-8 flex items-center", children: _jsx("p", { className: "text-lg w-full font-bold text-granite-gray dark:text-manatee text-center", children: I18n.getMessage('selectRowToPreview') }) })) })] }));
@@ -40,10 +40,10 @@ const NamePrefixIconSelector = ({ originalData }) => {
40
40
  }
41
41
  if (isInboundBlocked && isOutboundBlocked) {
42
42
  if (isInboundBlockedInAll && isOutboundBlockedInAll) {
43
- return _jsx(OutboundInboundIcon, { className: "stroke-[#D8302F] scale-150" });
43
+ return (_jsx(OutboundInboundIcon, { className: "[&_line]:stroke-[#D8302F] scale-150" }));
44
44
  }
45
45
  if (!isInboundBlockedInAll && !isOutboundBlockedInAll) {
46
- return _jsx(OutboundInboundIcon, { className: "stroke-[#FE8455] scale-150" });
46
+ return (_jsx(OutboundInboundIcon, { className: "[&_line]:stroke-[#FE8455] scale-150" }));
47
47
  }
48
48
  if (isInboundBlockedInAll) {
49
49
  return _jsx(OutboundInboundColoredIcon, { className: "rotate-180 scale-150" });
@@ -52,15 +52,15 @@ const NamePrefixIconSelector = ({ originalData }) => {
52
52
  }
53
53
  if (isInboundBlocked) {
54
54
  if (isInboundBlockedInAll) {
55
- return _jsx(InboundIcon, { className: "stroke-[#D8302F] scale-150" });
55
+ return _jsx(InboundIcon, { className: "[&_line]:stroke-[#D8302F] scale-150" });
56
56
  }
57
- return _jsx(InboundIcon, { className: "stroke-[#FE8455] scale-150" });
57
+ return _jsx(InboundIcon, { className: "[&_line]:stroke-[#FE8455] scale-150" });
58
58
  }
59
59
  if (isOutboundBlocked) {
60
60
  if (isOutboundBlockedInAll) {
61
- return _jsx(OutboundIcon, { className: "stroke-[#D8302F] scale-150" });
61
+ return _jsx(OutboundIcon, { className: "[&_line]:stroke-[#D8302F] scale-150" });
62
62
  }
63
- return _jsx(OutboundIcon, { className: "stroke-[#FE8455] scale-150" });
63
+ return _jsx(OutboundIcon, { className: "[&_line]:stroke-[#FE8455] scale-150" });
64
64
  }
65
65
  return _jsx(_Fragment, {});
66
66
  };
@@ -46,7 +46,6 @@ const useCookieListing = (tabCookies, selectedFrameUrl, persistenceKey = 'cookie
46
46
  accessorKey: 'parsedCookie.name',
47
47
  cell: (info) => info,
48
48
  enableHiding: false,
49
- widthWeightagePercentage: 13,
50
49
  enableBodyCellPrefixIcon: true,
51
50
  bodyCellPrefixIcon: {
52
51
  Element: NamePrefixIconSelector,
@@ -64,67 +63,56 @@ const useCookieListing = (tabCookies, selectedFrameUrl, persistenceKey = 'cookie
64
63
  header: I18n.getMessage('scope'),
65
64
  accessorKey: 'isFirstParty',
66
65
  cell: (info) => !info ? I18n.getMessage('thirdParty') : I18n.getMessage('firstParty'),
67
- widthWeightagePercentage: 8,
68
66
  },
69
67
  {
70
68
  header: I18n.getMessage('domain'),
71
69
  accessorKey: 'parsedCookie.domain',
72
70
  cell: (info) => info,
73
- widthWeightagePercentage: 9,
74
71
  },
75
72
  {
76
73
  header: I18n.getMessage('partitionKey'),
77
74
  accessorKey: 'parsedCookie.partitionKey',
78
75
  cell: (info) => info,
79
- widthWeightagePercentage: 9,
80
76
  },
81
77
  {
82
78
  header: I18n.getMessage('sameSite'),
83
79
  accessorKey: 'parsedCookie.samesite',
84
80
  cell: (info) => I18n.getMessage((info?.toString() || '').toLowerCase()),
85
- widthWeightagePercentage: 8,
86
81
  },
87
82
  {
88
83
  header: I18n.getMessage('category'),
89
84
  accessorKey: 'analytics.category',
90
85
  cell: (info) => I18n.getMessage(info.toLowerCase() || 'uncategorized'),
91
- widthWeightagePercentage: 10,
92
86
  },
93
87
  {
94
88
  header: I18n.getMessage('platform'),
95
89
  accessorKey: 'analytics.platform',
96
90
  cell: (info) => (info ? info : I18n.getMessage('unknown')),
97
- widthWeightagePercentage: 10,
98
91
  },
99
92
  {
100
93
  header: I18n.getMessage('httpOnly'),
101
94
  accessorKey: 'parsedCookie.httponly',
102
95
  cell: (info) => (_jsx("p", { className: "flex justify-center items-center", children: info ? _jsx("span", { className: "font-serif", children: "\u2713" }) : '' })),
103
- widthWeightagePercentage: 5,
104
96
  },
105
97
  {
106
98
  header: I18n.getMessage('secure'),
107
99
  accessorKey: 'parsedCookie.secure',
108
100
  cell: (info) => (_jsx("p", { className: "flex justify-center items-center", children: info ? _jsx("span", { className: "font-serif", children: "\u2713" }) : '' })),
109
- widthWeightagePercentage: 5,
110
101
  },
111
102
  {
112
103
  header: I18n.getMessage('value'),
113
104
  accessorKey: 'parsedCookie.value',
114
105
  cell: (info) => info,
115
- widthWeightagePercentage: 10,
116
106
  },
117
107
  {
118
108
  header: I18n.getMessage('path'),
119
109
  accessorKey: 'parsedCookie.path',
120
110
  cell: (info) => info,
121
- widthWeightagePercentage: 4,
122
111
  },
123
112
  {
124
113
  header: I18n.getMessage('expires'),
125
114
  accessorKey: 'parsedCookie.expires',
126
115
  cell: (info) => info === 'Session' || !info ? I18n.getMessage('session') : info,
127
- widthWeightagePercentage: 7,
128
116
  },
129
117
  ];
130
118
  if (isExtension) {
@@ -133,13 +121,11 @@ const useCookieListing = (tabCookies, selectedFrameUrl, persistenceKey = 'cookie
133
121
  accessorKey: 'parsedCookie.priority',
134
122
  isHiddenByDefault: true,
135
123
  cell: (info) => I18n.getMessage(info?.toLowerCase()),
136
- widthWeightagePercentage: 4,
137
124
  }, {
138
125
  header: I18n.getMessage('size'),
139
126
  accessorKey: 'parsedCookie.size',
140
127
  isHiddenByDefault: true,
141
128
  cell: (info) => info,
142
- widthWeightagePercentage: 3,
143
129
  });
144
130
  }
145
131
  return baseColumns;
@@ -1,15 +1,12 @@
1
- import { type CompleteJson, type LibraryData, type TabCookies, type TabFrames } from '@google-psat/common';
1
+ import { type CompleteJson, type TabCookies, type TabFrames } from '@google-psat/common';
2
2
  interface CookiesTabProps {
3
3
  selectedSite?: string;
4
4
  tabCookies: TabCookies;
5
5
  tabFrames: TabFrames;
6
6
  completeJson: CompleteJson[] | null;
7
7
  path: string;
8
- libraryMatches: {
9
- [url: string]: LibraryData;
10
- } | null;
11
8
  query?: string;
12
9
  clearQuery?: () => void;
13
10
  }
14
- declare const CookiesTab: ({ selectedSite, tabCookies, tabFrames, completeJson, path, libraryMatches, query, clearQuery, }: CookiesTabProps) => import("react/jsx-runtime").JSX.Element;
11
+ declare const CookiesTab: ({ selectedSite, tabCookies, tabFrames, completeJson, path, query, clearQuery, }: CookiesTabProps) => import("react/jsx-runtime").JSX.Element;
15
12
  export default CookiesTab;
@@ -1,12 +1,9 @@
1
- import type { CookieFrameStorageType, CompleteJson, LibraryData, ErroredOutUrlsData } from '@google-psat/common';
1
+ import type { CookieFrameStorageType, CompleteJson, ErroredOutUrlsData } from '@google-psat/common';
2
2
  interface SiteMapReportProps {
3
3
  landingPageCookies: CookieFrameStorageType;
4
4
  completeJson: CompleteJson[] | null;
5
5
  path: string;
6
- libraryMatches: {
7
- [url: string]: LibraryData;
8
- } | null;
9
6
  erroredOutUrls: ErroredOutUrlsData[];
10
7
  }
11
- declare const SiteMapReport: ({ landingPageCookies, completeJson, path, libraryMatches, erroredOutUrls, }: SiteMapReportProps) => import("react/jsx-runtime").JSX.Element;
8
+ declare const SiteMapReport: ({ landingPageCookies, completeJson, path, erroredOutUrls, }: SiteMapReportProps) => import("react/jsx-runtime").JSX.Element;
12
9
  export default SiteMapReport;
@@ -2,7 +2,7 @@
2
2
  * External dependencies.
3
3
  */
4
4
  import React from 'react';
5
- import { type CookieFrameStorageType, type CompleteJson, type LibraryData, type ErroredOutUrlsData } from '@google-psat/common';
5
+ import { type CookieFrameStorageType, type CompleteJson, type ErroredOutUrlsData } from '@google-psat/common';
6
6
  import { type SidebarItems } from '@google-psat/design-system';
7
7
  interface LayoutProps {
8
8
  landingPageCookies: CookieFrameStorageType;
@@ -10,10 +10,7 @@ interface LayoutProps {
10
10
  sidebarData: SidebarItems;
11
11
  setSidebarData: React.Dispatch<React.SetStateAction<SidebarItems>>;
12
12
  path: string;
13
- libraryMatches: {
14
- [url: string]: LibraryData;
15
- } | null;
16
13
  erroredOutUrls: ErroredOutUrlsData[];
17
14
  }
18
- declare const Layout: ({ landingPageCookies, completeJson, sidebarData, setSidebarData, path, erroredOutUrls, libraryMatches, }: LayoutProps) => import("react/jsx-runtime").JSX.Element;
15
+ declare const Layout: ({ landingPageCookies, completeJson, sidebarData, setSidebarData, path, erroredOutUrls, }: LayoutProps) => import("react/jsx-runtime").JSX.Element;
19
16
  export default Layout;
@@ -1,4 +1,4 @@
1
- import { type CompleteJson, type CookieJsonDataType, type LibraryData } from '@google-psat/common';
1
+ import { type CompleteJson, type CookieJsonDataType } from '@google-psat/common';
2
2
  interface SiteReportProps {
3
3
  cookies: {
4
4
  [frame: string]: {
@@ -8,9 +8,8 @@ interface SiteReportProps {
8
8
  completeJson: CompleteJson[] | null;
9
9
  selectedSite: string | null;
10
10
  path: string;
11
- libraryMatches: LibraryData | null;
12
11
  query?: string;
13
12
  clearQuery?: () => void;
14
13
  }
15
- declare const SiteReport: ({ cookies, completeJson, selectedSite, path, libraryMatches, query, clearQuery, }: SiteReportProps) => import("react/jsx-runtime").JSX.Element;
14
+ declare const SiteReport: ({ cookies, completeJson, selectedSite, path, query, clearQuery, }: SiteReportProps) => import("react/jsx-runtime").JSX.Element;
16
15
  export default SiteReport;
@@ -2,7 +2,7 @@
2
2
  * External dependencies.
3
3
  */
4
4
  import { type PropsWithChildren } from 'react';
5
- import { type CompleteJson, type CookieJsonDataType, type CookieTableData, type LibraryData } from '@google-psat/common';
5
+ import { type CompleteJson, type CookieJsonDataType, type CookieTableData } from '@google-psat/common';
6
6
  export interface ContentStore {
7
7
  state: {
8
8
  tabCookies: {
@@ -10,10 +10,9 @@ export interface ContentStore {
10
10
  };
11
11
  completeJson: CompleteJson[] | null;
12
12
  path: string;
13
- libraryMatches: LibraryData | null;
14
13
  };
15
14
  }
16
- export declare const Context: import("use-context-selector").Context<ContentStore>;
15
+ export declare const Context: import("@google-psat/common").Context<ContentStore>;
17
16
  interface ContentStoreProviderProps {
18
17
  cookies: {
19
18
  [frame: string]: {
@@ -22,9 +21,8 @@ interface ContentStoreProviderProps {
22
21
  };
23
22
  completeJson: CompleteJson[] | null;
24
23
  path: string;
25
- libraryMatches: LibraryData | null;
26
24
  }
27
- export declare const Provider: ({ cookies, completeJson, children, path, libraryMatches, }: PropsWithChildren<ContentStoreProviderProps>) => import("react/jsx-runtime").JSX.Element;
25
+ export declare const Provider: ({ cookies, completeJson, children, path, }: PropsWithChildren<ContentStoreProviderProps>) => import("react/jsx-runtime").JSX.Element;
28
26
  export declare function useContentStore(): ContentStore;
29
27
  export declare function useContentStore<T>(selector: (state: ContentStore) => T): T;
30
28
  export {};
@@ -1,15 +1,14 @@
1
- import type { LibraryData, TabCookies, TabFrames } from '@google-psat/common';
1
+ import type { TabCookies, TabFrames } from '@google-psat/common';
2
2
  interface LandingProps {
3
3
  tabFrames: TabFrames;
4
4
  tabCookies: TabCookies;
5
5
  cookiesWithIssues: TabCookies;
6
6
  downloadReport?: () => Promise<void>;
7
- libraryMatches: LibraryData | null;
8
7
  isSiteMapLandingContainer?: boolean;
9
8
  menuBarScrollContainerId?: string;
10
9
  libraryMatchesUrlCount?: {
11
10
  [url: string]: number;
12
11
  };
13
12
  }
14
- declare const Landing: ({ tabFrames, tabCookies, cookiesWithIssues, downloadReport, libraryMatches, libraryMatchesUrlCount, menuBarScrollContainerId, }: LandingProps) => import("react/jsx-runtime").JSX.Element;
13
+ declare const Landing: ({ tabFrames, tabCookies, cookiesWithIssues, downloadReport, menuBarScrollContainerId, }: LandingProps) => import("react/jsx-runtime").JSX.Element;
15
14
  export default Landing;
@@ -2,22 +2,18 @@
2
2
  * External dependencies.
3
3
  */
4
4
  import React from 'react';
5
- import { type LibraryData, type TabCookies, type TabFrames } from '@google-psat/common';
5
+ import { type TabCookies, type TabFrames } from '@google-psat/common';
6
6
  import { type TableFilter } from '@google-psat/design-system';
7
7
  interface AssembledCookiesLandingProps {
8
8
  tabCookies: TabCookies;
9
9
  tabFrames: TabFrames;
10
10
  setAppliedFilters: React.Dispatch<React.SetStateAction<TableFilter>>;
11
11
  downloadReport?: () => Promise<void>;
12
- libraryMatches: LibraryData | null;
13
- libraryMatchesUrlCount?: {
14
- [url: string]: number;
15
- };
16
12
  isSiteMapLandingContainer?: boolean;
17
13
  menuBarScrollContainerId?: string;
18
14
  query?: string;
19
15
  clearQuery?: () => void;
20
16
  url: string | undefined | null;
21
17
  }
22
- declare const _default: React.MemoExoticComponent<({ tabCookies, tabFrames, setAppliedFilters, downloadReport, libraryMatches, libraryMatchesUrlCount, menuBarScrollContainerId, query, clearQuery, url, }: AssembledCookiesLandingProps) => import("react/jsx-runtime").JSX.Element>;
18
+ declare const _default: React.MemoExoticComponent<({ tabCookies, tabFrames, setAppliedFilters, downloadReport, menuBarScrollContainerId, query, clearQuery, url, }: AssembledCookiesLandingProps) => import("react/jsx-runtime").JSX.Element>;
23
19
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@google-psat/report",
3
- "version": "0.14.0",
3
+ "version": "1.0.0-1",
4
4
  "description": "Static HTML analysis report",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist-types/index.d.ts",
@@ -33,21 +33,11 @@
33
33
  "@google-psat/common": "*",
34
34
  "@google-psat/design-system": "*",
35
35
  "@google-psat/i18n": "*",
36
- "@google-psat/library-detection": "*",
37
- "react": "^18.2.0",
38
- "react-dom": "^18.2.0"
36
+ "react": "^19.1.0",
37
+ "react-dom": "^19.1.0",
38
+ "re-resizable": "^6.11.2"
39
39
  },
40
40
  "devDependencies": {
41
- "@babel/plugin-transform-react-jsx": "^7.22.15",
42
- "@babel/preset-env": "^7.22.15",
43
- "@babel/preset-react": "^7.22.15",
44
- "@babel/preset-typescript": "^7.22.15",
45
- "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15",
46
- "@types/file-saver": "^2.0.5",
47
- "babel-loader": "^9.1.3",
48
- "webpack": "^5.94.0",
49
- "webpack-cli": "^5.1.4",
50
- "webpack-dev-server": "^4.15.1",
51
- "webpackbar": "^5.0.2"
41
+ "@types/file-saver": "^2.0.5"
52
42
  }
53
43
  }
package/tsconfig.json CHANGED
@@ -21,9 +21,6 @@
21
21
  },
22
22
  {
23
23
  "path": "../i18n"
24
- },
25
- {
26
- "path": "../library-detection"
27
24
  }
28
25
  ]
29
26
  }
package/babel.config.cjs DELETED
@@ -1,36 +0,0 @@
1
- /*
2
- * Copyright 2023 Google LLC
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- module.exports = function (api) {
17
- const isProduction = api.env('production');
18
-
19
- return {
20
- presets: [
21
- ['@babel/preset-env'],
22
- [
23
- '@babel/preset-react',
24
- {
25
- development: !isProduction,
26
- },
27
- ],
28
- '@babel/preset-typescript',
29
- ],
30
- plugins: [
31
- ['@babel/plugin-transform-react-jsx'],
32
- ['babel-plugin-styled-components'],
33
- ],
34
- sourceMaps: true,
35
- };
36
- };