diff --git a/common/__generated__/graphql.ts b/common/__generated__/graphql.ts
index 4dab38e6..a2b81a71 100644
--- a/common/__generated__/graphql.ts
+++ b/common/__generated__/graphql.ts
@@ -8660,7 +8660,7 @@ type StreamFieldFragment_IndicatorShowcaseBlock_Fragment = (
type StreamFieldFragment_LargeImageBlock_Fragment = (
{ width?: string | null, id?: string | null, blockType: string, field: string, image?: (
- { title: string, altText: string, width: number, height: number, renditionUncropped?: (
+ { title: string, altText: string, width: number, height: number, imageCredit: string, renditionUncropped?: (
{ src: string }
& { __typename?: 'ImageRendition' }
) | null }
@@ -14557,7 +14557,7 @@ export type GetContentPageQuery = (
& { __typename?: 'IndicatorShowcaseBlock' }
) | (
{ width?: string | null, id?: string | null, blockType: string, field: string, image?: (
- { title: string, altText: string, width: number, height: number, renditionUncropped?: (
+ { title: string, altText: string, width: number, height: number, imageCredit: string, renditionUncropped?: (
{ src: string }
& { __typename?: 'ImageRendition' }
) | null }
@@ -15883,7 +15883,7 @@ export type GetContentPageQuery = (
& { __typename?: 'IndicatorShowcaseBlock' }
) | (
{ width?: string | null, id?: string | null, blockType: string, field: string, image?: (
- { title: string, altText: string, width: number, height: number, renditionUncropped?: (
+ { title: string, altText: string, width: number, height: number, imageCredit: string, renditionUncropped?: (
{ src: string }
& { __typename?: 'ImageRendition' }
) | null }
@@ -16729,7 +16729,7 @@ export type GetContentPageQuery = (
& { __typename?: 'IndicatorShowcaseBlock' }
) | (
{ width?: string | null, id?: string | null, blockType: string, field: string, image?: (
- { title: string, altText: string, width: number, height: number, renditionUncropped?: (
+ { title: string, altText: string, width: number, height: number, imageCredit: string, renditionUncropped?: (
{ src: string }
& { __typename?: 'ImageRendition' }
) | null }
@@ -17584,7 +17584,7 @@ export type GetHomePageQuery = (
& { __typename?: 'IndicatorShowcaseBlock' }
) | (
{ id?: string | null, width?: string | null, blockType: string, field: string, image?: (
- { title: string, altText: string, width: number, height: number, renditionUncropped?: (
+ { title: string, altText: string, width: number, height: number, imageCredit: string, renditionUncropped?: (
{ src: string }
& { __typename?: 'ImageRendition' }
) | null }
diff --git a/components/common/GlobalNav.tsx b/components/common/GlobalNav.tsx
index d1399594..47e50590 100644
--- a/components/common/GlobalNav.tsx
+++ b/components/common/GlobalNav.tsx
@@ -32,7 +32,9 @@ import NavbarSearch from './NavbarSearch';
const getRootLink = (plan, locale, primaryLanguage) => {
if (plan.parent && plan.parent.viewUrl) {
- const shouldAppendLocale = locale !== primaryLanguage;
+ const shouldAppendLocale =
+ locale !== primaryLanguage &&
+ !plan.parent.viewUrl.includes(`/${locale}/`);
if (shouldAppendLocale) {
return `${plan.parent.viewUrl}/${locale}/`;
}
diff --git a/components/common/StreamField.tsx b/components/common/StreamField.tsx
index f1a8fb5e..5d139137 100644
--- a/components/common/StreamField.tsx
+++ b/components/common/StreamField.tsx
@@ -22,6 +22,8 @@ import IndicatorShowcaseBlock from 'components/contentblocks/IndicatorShowcaseBl
import QuestionAnswerBlock from 'components/contentblocks/QuestionAnswerBlock';
import RelatedIndicatorsBlock from 'components/contentblocks/RelatedIndicatorsBlock';
import RelatedPlanListBlock from 'components/contentblocks/RelatedPlanListBlock';
+import { ImageCredit } from 'components/contentblocks/ContentPageHeaderBlock';
+import { useTranslations } from 'next-intl';
import { usePlan } from 'context/plan';
import { Col, ColProps, Container, Row } from 'reactstrap';
import { ColumnProps } from 'reactstrap/types/lib/Col';
@@ -124,6 +126,7 @@ function StreamFieldBlock(props: StreamFieldBlockProps) {
const { __typename } = block;
const plan = usePlan();
const theme = useTheme();
+ const t = useTranslations();
switch (__typename) {
case 'RichTextBlock': {
@@ -255,6 +258,7 @@ function StreamFieldBlock(props: StreamFieldBlockProps) {
* fit_to_column: image is limited to text block width
* Image keeps it original ratio and doesn't crop
*/
+
const getColSize = (breakpoint) => {
if (block.width === 'maximum') return {};
switch (breakpoint) {
@@ -275,16 +279,31 @@ function StreamFieldBlock(props: StreamFieldBlockProps) {
xl={getColSize('xl')}
lg={getColSize('lg')}
md={getColSize('md')}
+ style={{
+ position: 'relative',
+ }}
>
-
+ >
+
+ {block.image?.imageCredit && (
+
+ {`${t('image-credit')}: ${block.image.imageCredit}`}
+
+ )}
+
diff --git a/components/contentblocks/ContentPageHeaderBlock.js b/components/contentblocks/ContentPageHeaderBlock.js
index 2cf3894f..af7168a2 100644
--- a/components/contentblocks/ContentPageHeaderBlock.js
+++ b/components/contentblocks/ContentPageHeaderBlock.js
@@ -47,7 +47,7 @@ const ContentHeader = styled.header`
}
`;
-const ImageCredit = styled.span`
+export const ImageCredit = styled.span`
position: absolute;
top: 0;
right: 0;
diff --git a/components/dashboard/ActionStatusExport.js b/components/dashboard/ActionStatusExport.js
index f9a816a3..159ac086 100644
--- a/components/dashboard/ActionStatusExport.js
+++ b/components/dashboard/ActionStatusExport.js
@@ -1,5 +1,3 @@
-import { getActionTaskTermContext, getActionTermContext } from 'common/i18n';
-import { cleanActionStatus } from 'common/preprocess';
import { usePlan } from 'context/plan';
import { useTranslations } from 'next-intl';
import {
@@ -9,193 +7,18 @@ import {
DropdownItem,
} from 'reactstrap';
-async function exportActions(
- t,
- actions,
- actionStatuses,
- plan,
- fileFormat = 'excel'
-) {
- const Excel = (await import('exceljs')).default;
- const fileSaver = (await import('file-saver')).default;
- const workbook = new Excel.Workbook();
- const worksheet = workbook.addWorksheet(
- t('actions', getActionTermContext(plan))
- );
- const planIds = new Set(actions.map((action) => action.plan.id));
- const multiplePlans = planIds.size > 1;
- const columns = [
- { header: t('action-identifier'), key: 'id', width: 10 },
- {
- header: t('action-name-title', getActionTermContext(plan)),
- key: 'name',
- width: 50,
- },
- { header: t('status'), key: 'status', width: 20 },
- {
- header: t('action-implementation-phase'),
- key: 'implementationPhase',
- width: 20,
- },
- { header: t('action-last-updated'), key: 'lastUpdated', width: 15 },
- {
- header: t('tasks-on-time', getActionTaskTermContext(plan)),
- key: 'ontimeTasks',
- width: 10,
- },
- {
- header: t('tasks-late', getActionTaskTermContext(plan)),
- key: 'lateTasks',
- width: 10,
- },
- {
- header: t('tasks-completed', getActionTaskTermContext(plan)),
- key: 'completedTasks',
- width: 10,
- },
- {
- header: t('action-tasks', getActionTaskTermContext(plan)),
- key: 'tasks',
- width: 10,
- },
- {
- header: t('responsible-organizations-primary'),
- key: 'primaryResponsibleOrgs',
- width: 20,
- },
- {
- header: t('responsible-organizations-collaborator'),
- key: 'collaboratorResponsibleOrgs',
- width: 20,
- },
- {
- header: t('responsible-organizations-other'),
- key: 'otherResponsibleOrgs',
- width: 20,
- },
- ];
- if (multiplePlans) {
- columns.unshift({
- header: t('plan'),
- key: 'plan',
- width: 20,
- });
- }
- // When assigning to worksheet.columns, some magic happens and manipulating worksheet.columns afterwards does not
- // yield the desired results. So we prepare the columns array separately before assigning it to worksheet.columns.
- worksheet.columns = columns;
- actions.forEach((act) => {
- const status = cleanActionStatus(act, actionStatuses);
- // Remove any soft hyphens in action name (due to `hyphenated: true` when querying the name) as Excel renders
- // visible hyphens instead.
- const actionName = act.name?.replaceAll('', '');
- let activePhaseName = act.implementationPhase?.name;
- if (status != null) {
- // FIXME: Duplicated logic from ActionPhase.js
- const inactive = [
- 'cancelled',
- 'merged',
- 'postponed',
- 'completed',
- ].includes(status.identifier);
- if (inactive) activePhaseName = status.name;
- }
-
- const tasks = act.tasks;
- let tasksCount = tasks.length;
- // FIXME: Duplicated logic from ActionStatusTable.js
- let ontimeTasks = 0;
- let lateTasks = 0;
- let completedTasks = 0;
- const nowDate = new Date();
-
- tasks.forEach((task) => {
- const taskDue = new Date(task.dueAt);
- switch (task.state) {
- case 'NOT_STARTED':
- case 'IN_PROGRESS':
- if (taskDue < nowDate) lateTasks += 1;
- else ontimeTasks += 1;
- break;
- case 'COMPLETED':
- completedTasks += 1;
- break;
- default:
- tasksCount -= 1;
- }
- });
-
- const getOrgName = ({ organization }) => organization.name;
-
- const parties = act.responsibleParties;
- const primaryResponsibleOrgs = parties
- .filter((p) => p.role === 'PRIMARY')
- .map(getOrgName);
- const collaboratorResponsibleOrgs = parties
- .filter((p) => p.role === 'COLLABORATOR')
- .map(getOrgName);
- const otherResponsibleOrgs = parties
- .filter((p) => p.role === null)
- .map(getOrgName);
-
- const row = [
- act.identifier,
- actionName,
- status?.name,
- activePhaseName,
- new Date(act.updatedAt),
- ontimeTasks,
- lateTasks,
- completedTasks,
- tasksCount,
- primaryResponsibleOrgs.join(';'),
- collaboratorResponsibleOrgs.join(';'),
- otherResponsibleOrgs.join(';'),
- ];
- if (multiplePlans) {
- row.unshift(act.plan.name);
- }
- worksheet.addRow(row);
- });
-
- const today = new Date().toISOString().split('T')[0];
- switch (fileFormat) {
- case 'excel':
- const xls64 = await workbook.xlsx.writeBuffer({ base64: true });
- fileSaver.saveAs(
- new Blob([xls64], {
- type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
- }),
- `${t('actions', getActionTermContext(plan))}-${today}.xlsx`
- );
- break;
-
- case 'csv':
- const csv64 = await workbook.csv.writeBuffer({ base64: true });
- fileSaver.saveAs(
- new Blob([csv64], { type: 'text/csv' }),
- `${t('actions', getActionTermContext(plan))}-${today}.csv`
- );
- break;
-
- default:
- throw new Error('Unknown file format');
- }
-}
-
export default function ActionStatusExport({ actions }) {
const t = useTranslations();
const plan = usePlan();
- const { actionStatuses } = plan;
- const handleExport = async (format) => {
- await exportActions(t, actions, actionStatuses, plan, format);
- };
+ const url = plan.actionReportExportViewUrl;
+ const csvExportUrl = `${url}?format=csv`;
+ const excelExportUrl = `${url}?format=xlsx`;
return (
{t('export')}
- handleExport('excel')}>Excel
- handleExport('csv')}>CSV
+ Excel
+ CSV
);
diff --git a/components/dashboard/dashboard.constants.tsx b/components/dashboard/dashboard.constants.tsx
index 72a1aee5..2e83c27e 100644
--- a/components/dashboard/dashboard.constants.tsx
+++ b/components/dashboard/dashboard.constants.tsx
@@ -71,12 +71,6 @@ export const COLUMN_CONFIG: { [key in ColumnBlock]: Column } = {
renderCell: (action) => action.identifier,
},
- // TODO: Remove from the backend
- ImpactColumnBlock: {
- renderHeader: () => '',
- renderCell: () => '',
- },
-
NameColumnBlock: {
sortable: true,
headerKey: 'name',
diff --git a/fragments/action-list.fragment.ts b/fragments/action-list.fragment.ts
index 5f4941c7..ad9fca66 100644
--- a/fragments/action-list.fragment.ts
+++ b/fragments/action-list.fragment.ts
@@ -106,9 +106,6 @@ export const ACTION_TABLE_COLUMN_FRAGMENT = gql`
... on OrganizationColumnBlock {
columnLabel
}
- ... on ImpactColumnBlock {
- columnLabel
- }
... on FieldColumnBlock {
columnLabel
field
diff --git a/fragments/stream-field.fragment.ts b/fragments/stream-field.fragment.ts
index bfd1f58c..b0fdc429 100644
--- a/fragments/stream-field.fragment.ts
+++ b/fragments/stream-field.fragment.ts
@@ -172,6 +172,7 @@ export const STREAM_FIELD_FRAGMENT = gql`
renditionUncropped: rendition(size: "1320x1320", crop: false) {
src
}
+ imageCredit
}
width
}
diff --git a/package.json b/package.json
index 3fb0baa7..e1c23d49 100644
--- a/package.json
+++ b/package.json
@@ -27,9 +27,7 @@
"dotenv": "^16.0.0",
"echarts": "^5.5.1",
"escape-string-regexp": "^5.0.0",
- "exceljs": "^4.3.0",
"express-robots-txt": "^1.0.0",
- "file-saver": "^2.0.5",
"fontfaceobserver": "^2.1.0",
"framer-motion": "^11.0.24",
"html-react-parser": "^1.4.12",
diff --git a/queries/get-plan.ts b/queries/get-plan.ts
index 60a44e66..5f074d1d 100644
--- a/queries/get-plan.ts
+++ b/queries/get-plan.ts
@@ -28,6 +28,7 @@ const GET_PLAN_CONTEXT = gql`
publishedAt
kausalPathsInstanceUuid
viewUrl(clientUrl: $clientUrl)
+ actionReportExportViewUrl
primaryActionClassification {
id
identifier
diff --git a/yarn.lock b/yarn.lock
index 09da3984..861781be 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2347,35 +2347,6 @@ __metadata:
languageName: node
linkType: hard
-"@fast-csv/format@npm:4.3.5":
- version: 4.3.5
- resolution: "@fast-csv/format@npm:4.3.5"
- dependencies:
- "@types/node": ^14.0.1
- lodash.escaperegexp: ^4.1.2
- lodash.isboolean: ^3.0.3
- lodash.isequal: ^4.5.0
- lodash.isfunction: ^3.0.9
- lodash.isnil: ^4.0.0
- checksum: 36d5fb76c26179bd1718dffd49fc88f4ab62675464d7ec44c5f1de55b8c454ecdf3faf84fe291df934832233f531d24c810a71cc0c390c7c4df09685d614c65b
- languageName: node
- linkType: hard
-
-"@fast-csv/parse@npm:4.3.6":
- version: 4.3.6
- resolution: "@fast-csv/parse@npm:4.3.6"
- dependencies:
- "@types/node": ^14.0.1
- lodash.escaperegexp: ^4.1.2
- lodash.groupby: ^4.6.0
- lodash.isfunction: ^3.0.9
- lodash.isnil: ^4.0.0
- lodash.isundefined: ^3.0.1
- lodash.uniq: ^4.5.0
- checksum: 15434d2bc7a71af63a4cc45352a58f6edd69d464233fd6f9a808a8efb9ae326832b4f78d1ddcf9fc3bbf166e9c1dce19671c4de40371a926d60cb7c5a8bad08a
- languageName: node
- linkType: hard
-
"@floating-ui/core@npm:^1.0.0":
version: 1.6.0
resolution: "@floating-ui/core@npm:1.6.0"
@@ -8708,13 +8679,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/node@npm:^14.0.1":
- version: 14.18.63
- resolution: "@types/node@npm:14.18.63"
- checksum: be909061a54931778c71c49dc562586c32f909c4b6197e3d71e6dac726d8bd9fccb9f599c0df99f52742b68153712b5097c0f00cac4e279fa894b0ea6719a8fd
- languageName: node
- linkType: hard
-
"@types/node@npm:^17.0.31":
version: 17.0.45
resolution: "@types/node@npm:17.0.45"
@@ -10117,57 +10081,6 @@ __metadata:
languageName: node
linkType: hard
-"archiver-utils@npm:^2.1.0":
- version: 2.1.0
- resolution: "archiver-utils@npm:2.1.0"
- dependencies:
- glob: ^7.1.4
- graceful-fs: ^4.2.0
- lazystream: ^1.0.0
- lodash.defaults: ^4.2.0
- lodash.difference: ^4.5.0
- lodash.flatten: ^4.4.0
- lodash.isplainobject: ^4.0.6
- lodash.union: ^4.6.0
- normalize-path: ^3.0.0
- readable-stream: ^2.0.0
- checksum: 5665f40bde87ee82cb638177bdccca8cc6e55edea1b94338f7e6b56a1d9367b0d9a39e42b47866eaf84b8c67669a7d250900a226207ecc30fa163b52aae859a5
- languageName: node
- linkType: hard
-
-"archiver-utils@npm:^3.0.4":
- version: 3.0.4
- resolution: "archiver-utils@npm:3.0.4"
- dependencies:
- glob: ^7.2.3
- graceful-fs: ^4.2.0
- lazystream: ^1.0.0
- lodash.defaults: ^4.2.0
- lodash.difference: ^4.5.0
- lodash.flatten: ^4.4.0
- lodash.isplainobject: ^4.0.6
- lodash.union: ^4.6.0
- normalize-path: ^3.0.0
- readable-stream: ^3.6.0
- checksum: 5c6568f1185fb6c4b85282ad3281a5a024761bf27e525de1ec54255d15ca98e19532e7b5403930273911a5c8c961aa0c1e9148d6c2810784fa6bd8a97c0021a7
- languageName: node
- linkType: hard
-
-"archiver@npm:^5.0.0":
- version: 5.3.2
- resolution: "archiver@npm:5.3.2"
- dependencies:
- archiver-utils: ^2.1.0
- async: ^3.2.4
- buffer-crc32: ^0.2.1
- readable-stream: ^3.6.0
- readdir-glob: ^1.1.2
- tar-stream: ^2.2.0
- zip-stream: ^4.1.0
- checksum: 7d3b9b9b51cf54d88c89fbca9b0847c120bfcf9776c7025c52dd0b62f6603dc63dc0f3f1a09582f936f67e3906b46d58954cc762a255be45e8d3e14e3cb0b0b1
- languageName: node
- linkType: hard
-
"arg@npm:^4.1.0":
version: 4.1.3
resolution: "arg@npm:4.1.3"
@@ -10482,7 +10395,7 @@ __metadata:
languageName: node
linkType: hard
-"async@npm:^3.2.3, async@npm:^3.2.4":
+"async@npm:^3.2.3":
version: 3.2.5
resolution: "async@npm:3.2.5"
checksum: 5ec77f1312301dee02d62140a6b1f7ee0edd2a0f983b6fd2b0849b969f245225b990b47b8243e7b9ad16451a53e7f68e753700385b706198ced888beedba3af4
@@ -10902,7 +10815,7 @@ __metadata:
languageName: node
linkType: hard
-"big-integer@npm:^1.6.17, big-integer@npm:^1.6.44":
+"big-integer@npm:^1.6.44":
version: 1.6.52
resolution: "big-integer@npm:1.6.52"
checksum: 6e86885787a20fed96521958ae9086960e4e4b5e74d04f3ef7513d4d0ad631a9f3bde2730fc8aaa4b00419fc865f6ec573e5320234531ef37505da7da192c40b
@@ -10930,16 +10843,6 @@ __metadata:
languageName: node
linkType: hard
-"binary@npm:~0.3.0":
- version: 0.3.0
- resolution: "binary@npm:0.3.0"
- dependencies:
- buffers: ~0.1.1
- chainsaw: ~0.1.0
- checksum: b4699fda9e2c2981e74a46b0115cf0d472eda9b68c0e9d229ef494e92f29ce81acf0a834415094cffcc340dfee7c4ef8ce5d048c65c18067a7ed850323f777af
- languageName: node
- linkType: hard
-
"bit-twiddle@npm:^1.0.0, bit-twiddle@npm:^1.0.2":
version: 1.0.2
resolution: "bit-twiddle@npm:1.0.2"
@@ -10975,13 +10878,6 @@ __metadata:
languageName: node
linkType: hard
-"bluebird@npm:~3.4.1":
- version: 3.4.7
- resolution: "bluebird@npm:3.4.7"
- checksum: bffa9dee7d3a41ab15c4f3f24687b49959b4e64e55c058a062176feb8ccefc2163414fb4e1a0f3053bf187600936509660c3ebd168fd9f0e48c7eba23b019466
- languageName: node
- linkType: hard
-
"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9":
version: 4.12.0
resolution: "bn.js@npm:4.12.0"
@@ -11216,7 +11112,7 @@ __metadata:
languageName: node
linkType: hard
-"buffer-crc32@npm:^0.2.1, buffer-crc32@npm:^0.2.13, buffer-crc32@npm:~0.2.3":
+"buffer-crc32@npm:~0.2.3":
version: 0.2.13
resolution: "buffer-crc32@npm:0.2.13"
checksum: 06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c
@@ -11230,13 +11126,6 @@ __metadata:
languageName: node
linkType: hard
-"buffer-indexof-polyfill@npm:~1.0.0":
- version: 1.0.2
- resolution: "buffer-indexof-polyfill@npm:1.0.2"
- checksum: fbfb2d69c6bb2df235683126f9dc140150c08ac3630da149913a9971947b667df816a913b6993bc48f4d611999cb99a1589914d34c02dccd2234afda5cb75bbc
- languageName: node
- linkType: hard
-
"buffer-xor@npm:^1.0.3":
version: 1.0.3
resolution: "buffer-xor@npm:1.0.3"
@@ -11264,13 +11153,6 @@ __metadata:
languageName: node
linkType: hard
-"buffers@npm:~0.1.1":
- version: 0.1.1
- resolution: "buffers@npm:0.1.1"
- checksum: ad6f8e483efab39cefd92bdc04edbff6805e4211b002f4d1cfb70c6c472a61cc89fb18c37bcdfdd4ee416ca096e9ff606286698a7d41a18b539bac12fd76d4d5
- languageName: node
- linkType: hard
-
"builtin-status-codes@npm:^3.0.0":
version: 3.0.0
resolution: "builtin-status-codes@npm:3.0.0"
@@ -11471,15 +11353,6 @@ __metadata:
languageName: node
linkType: hard
-"chainsaw@npm:~0.1.0":
- version: 0.1.0
- resolution: "chainsaw@npm:0.1.0"
- dependencies:
- traverse: ">=0.3.0 <0.4"
- checksum: 22a96b9fb0cd9fb20813607c0869e61817d1acc81b5d455cc6456b5e460ea1dd52630e0f76b291cf8294bfb6c1fc42e299afb52104af9096242699d6d3aa6d3e
- languageName: node
- linkType: hard
-
"chalk@npm:3.0.0, chalk@npm:^3.0.0":
version: 3.0.0
resolution: "chalk@npm:3.0.0"
@@ -12196,18 +12069,6 @@ __metadata:
languageName: node
linkType: hard
-"compress-commons@npm:^4.1.2":
- version: 4.1.2
- resolution: "compress-commons@npm:4.1.2"
- dependencies:
- buffer-crc32: ^0.2.13
- crc32-stream: ^4.0.2
- normalize-path: ^3.0.0
- readable-stream: ^3.6.0
- checksum: b50c4b5d6b8917ea164eef81d414b1824f27e02427f9266926c80aad55f9e15f81f74c274770773c2b732c22d1081b81dedce4f133271a466151f7f36b8e9dc9
- languageName: node
- linkType: hard
-
"compressible@npm:~2.0.16":
version: 2.0.18
resolution: "compressible@npm:2.0.18"
@@ -12461,25 +12322,6 @@ __metadata:
languageName: node
linkType: hard
-"crc-32@npm:^1.2.0":
- version: 1.2.2
- resolution: "crc-32@npm:1.2.2"
- bin:
- crc32: bin/crc32.njs
- checksum: ad2d0ad0cbd465b75dcaeeff0600f8195b686816ab5f3ba4c6e052a07f728c3e70df2e3ca9fd3d4484dc4ba70586e161ca5a2334ec8bf5a41bf022a6103ff243
- languageName: node
- linkType: hard
-
-"crc32-stream@npm:^4.0.2":
- version: 4.0.3
- resolution: "crc32-stream@npm:4.0.3"
- dependencies:
- crc-32: ^1.2.0
- readable-stream: ^3.4.0
- checksum: d44d0ec6f04d8a1bed899ac3e4fbb82111ed567ea6d506be39147362af45c747887fce1032f4beca1646b4824e5a9614cd3332bfa94bbc5577ca5445e7f75ddd
- languageName: node
- linkType: hard
-
"create-ecdh@npm:^4.0.0":
version: 4.0.4
resolution: "create-ecdh@npm:4.0.4"
@@ -12989,7 +12831,7 @@ __metadata:
languageName: node
linkType: hard
-"dayjs@npm:^1.11.1, dayjs@npm:^1.8.34":
+"dayjs@npm:^1.11.1":
version: 1.11.10
resolution: "dayjs@npm:1.11.10"
checksum: a6b5a3813b8884f5cd557e2e6b7fa569f4c5d0c97aca9558e38534af4f2d60daafd3ff8c2000fed3435cfcec9e805bcebd99f90130c6d1c5ef524084ced588c4
@@ -13558,15 +13400,6 @@ __metadata:
languageName: node
linkType: hard
-"duplexer2@npm:~0.1.4":
- version: 0.1.4
- resolution: "duplexer2@npm:0.1.4"
- dependencies:
- readable-stream: ^2.0.2
- checksum: 744961f03c7f54313f90555ac20284a3fb7bf22fdff6538f041a86c22499560eb6eac9d30ab5768054137cb40e6b18b40f621094e0261d7d8c35a37b7a5ad241
- languageName: node
- linkType: hard
-
"duplexer@npm:^0.1.2":
version: 0.1.2
resolution: "duplexer@npm:0.1.2"
@@ -14513,23 +14346,6 @@ __metadata:
languageName: node
linkType: hard
-"exceljs@npm:^4.3.0":
- version: 4.4.0
- resolution: "exceljs@npm:4.4.0"
- dependencies:
- archiver: ^5.0.0
- dayjs: ^1.8.34
- fast-csv: ^4.3.1
- jszip: ^3.10.1
- readable-stream: ^3.6.0
- saxes: ^5.0.1
- tmp: ^0.2.0
- unzipper: ^0.10.11
- uuid: ^8.3.0
- checksum: e2ab1b4667988c213edf47ab67fc83be64dc4de5b1de64b41c9d564ae00eb7ee774fd00a907520a93757dd90fd6b601583f18ded28dd7d833001e0ed188792b7
- languageName: node
- linkType: hard
-
"execa@npm:7.2.0":
version: 7.2.0
resolution: "execa@npm:7.2.0"
@@ -14767,16 +14583,6 @@ __metadata:
languageName: node
linkType: hard
-"fast-csv@npm:^4.3.1":
- version: 4.3.6
- resolution: "fast-csv@npm:4.3.6"
- dependencies:
- "@fast-csv/format": 4.3.5
- "@fast-csv/parse": 4.3.6
- checksum: 77ae68c08b368a19f2b6e933160d0c5d4934513ef903577c44c84ea08befe1a6638a9480238dfcd55f14c7ddcafdb772c9408dd9d145eca62a147c503ff493a9
- languageName: node
- linkType: hard
-
"fast-decode-uri-component@npm:^1.0.1":
version: 1.0.1
resolution: "fast-decode-uri-component@npm:1.0.1"
@@ -14980,13 +14786,6 @@ __metadata:
languageName: node
linkType: hard
-"file-saver@npm:^2.0.5":
- version: 2.0.5
- resolution: "file-saver@npm:2.0.5"
- checksum: c62d96e5cebc58b4bdf3ae8a60d5cf9607ad82f75f798c33a4ee63435ac2203002584d5256a2a780eda7feb5e19dc3b6351c2212e58b3f529e63d265a7cc79f7
- languageName: node
- linkType: hard
-
"file-system-cache@npm:2.3.0":
version: 2.3.0
resolution: "file-system-cache@npm:2.3.0"
@@ -15418,18 +15217,6 @@ __metadata:
languageName: node
linkType: hard
-"fstream@npm:^1.0.12":
- version: 1.0.12
- resolution: "fstream@npm:1.0.12"
- dependencies:
- graceful-fs: ^4.1.2
- inherits: ~2.0.0
- mkdirp: ">=0.5 0"
- rimraf: 2
- checksum: e6998651aeb85fd0f0a8a68cec4d05a3ada685ecc4e3f56e0d063d0564a4fc39ad11a856f9020f926daf869fc67f7a90e891def5d48e4cadab875dc313094536
- languageName: node
- linkType: hard
-
"function-bind@npm:^1.1.1, function-bind@npm:^1.1.2":
version: 1.1.2
resolution: "function-bind@npm:1.1.2"
@@ -15774,7 +15561,7 @@ __metadata:
languageName: node
linkType: hard
-"glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.3":
+"glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4":
version: 7.2.3
resolution: "glob@npm:7.2.3"
dependencies:
@@ -16040,7 +15827,7 @@ __metadata:
languageName: node
linkType: hard
-"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
+"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
version: 4.2.11
resolution: "graceful-fs@npm:4.2.11"
checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7
@@ -16805,7 +16592,7 @@ __metadata:
languageName: node
linkType: hard
-"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.0, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4":
+"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4":
version: 2.0.4
resolution: "inherits@npm:2.0.4"
checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1
@@ -18549,18 +18336,6 @@ __metadata:
languageName: node
linkType: hard
-"jszip@npm:^3.10.1":
- version: 3.10.1
- resolution: "jszip@npm:3.10.1"
- dependencies:
- lie: ~3.3.0
- pako: ~1.0.2
- readable-stream: ~2.3.6
- setimmediate: ^1.0.5
- checksum: abc77bfbe33e691d4d1ac9c74c8851b5761fba6a6986630864f98d876f3fcc2d36817dfc183779f32c00157b5d53a016796677298272a714ae096dfe6b1c8b60
- languageName: node
- linkType: hard
-
"kausal-watch-ui@workspace:.":
version: 0.0.0-use.local
resolution: "kausal-watch-ui@workspace:."
@@ -18625,9 +18400,7 @@ __metadata:
eslint: 8.56.0
eslint-config-next: 14.0.4
eslint-plugin-storybook: ^0.8.0
- exceljs: ^4.3.0
express-robots-txt: ^1.0.0
- file-saver: ^2.0.5
fontfaceobserver: ^2.1.0
framer-motion: ^11.0.24
html-react-parser: ^1.4.12
@@ -18757,15 +18530,6 @@ __metadata:
languageName: node
linkType: hard
-"lazystream@npm:^1.0.0":
- version: 1.0.1
- resolution: "lazystream@npm:1.0.1"
- dependencies:
- readable-stream: ^2.0.5
- checksum: 822c54c6b87701a6491c70d4fabc4cafcf0f87d6b656af168ee7bb3c45de9128a801cb612e6eeeefc64d298a7524a698dd49b13b0121ae50c2ae305f0dcc5310
- languageName: node
- linkType: hard
-
"leven@npm:^3.1.0":
version: 3.1.0
resolution: "leven@npm:3.1.0"
@@ -18792,15 +18556,6 @@ __metadata:
languageName: node
linkType: hard
-"lie@npm:~3.3.0":
- version: 3.3.0
- resolution: "lie@npm:3.3.0"
- dependencies:
- immediate: ~3.0.5
- checksum: 33102302cf19766f97919a6a98d481e01393288b17a6aa1f030a3542031df42736edde8dab29ffdbf90bebeffc48c761eb1d064dc77592ca3ba3556f9fe6d2a8
- languageName: node
- linkType: hard
-
"lilconfig@npm:2.1.0":
version: 2.1.0
resolution: "lilconfig@npm:2.1.0"
@@ -18835,13 +18590,6 @@ __metadata:
languageName: node
linkType: hard
-"listenercount@npm:~1.0.1":
- version: 1.0.1
- resolution: "listenercount@npm:1.0.1"
- checksum: 0f1c9077cdaf2ebc16473c7d72eb7de6d983898ca42500f03da63c3914b6b312dd5f7a90d2657691ea25adf3fe0ac5a43226e8b2c673fd73415ed038041f4757
- languageName: node
- linkType: hard
-
"listr-silent-renderer@npm:^1.1.1":
version: 1.1.1
resolution: "listr-silent-renderer@npm:1.1.1"
@@ -19034,34 +18782,6 @@ __metadata:
languageName: node
linkType: hard
-"lodash.defaults@npm:^4.2.0":
- version: 4.2.0
- resolution: "lodash.defaults@npm:4.2.0"
- checksum: 84923258235592c8886e29de5491946ff8c2ae5c82a7ac5cddd2e3cb697e6fbdfbbb6efcca015795c86eec2bb953a5a2ee4016e3735a3f02720428a40efbb8f1
- languageName: node
- linkType: hard
-
-"lodash.difference@npm:^4.5.0":
- version: 4.5.0
- resolution: "lodash.difference@npm:4.5.0"
- checksum: ecee276aa578f300e79350805a14a51be8d1f12b3c1389a19996d8ab516f814211a5f65c68331571ecdad96522b863ccc484b55504ce8c9947212a29f8857d5a
- languageName: node
- linkType: hard
-
-"lodash.escaperegexp@npm:^4.1.2":
- version: 4.1.2
- resolution: "lodash.escaperegexp@npm:4.1.2"
- checksum: 6d99452b1cfd6073175a9b741a9b09ece159eac463f86f02ea3bee2e2092923fce812c8d2bf446309cc52d1d61bf9af51c8118b0d7421388e6cead7bd3798f0f
- languageName: node
- linkType: hard
-
-"lodash.flatten@npm:^4.4.0":
- version: 4.4.0
- resolution: "lodash.flatten@npm:4.4.0"
- checksum: 0ac34a393d4b795d4b7421153d27c13ae67e08786c9cbb60ff5b732210d46f833598eee3fb3844bb10070e8488efe390ea53bb567377e0cb47e9e630bf0811cb
- languageName: node
- linkType: hard
-
"lodash.get@npm:^4":
version: 4.4.2
resolution: "lodash.get@npm:4.4.2"
@@ -19069,13 +18789,6 @@ __metadata:
languageName: node
linkType: hard
-"lodash.groupby@npm:^4.6.0":
- version: 4.6.0
- resolution: "lodash.groupby@npm:4.6.0"
- checksum: e2d4d13d12790a1cacab3f5f120b7c072a792224e83b2f403218866d18efde76024b2579996dfebb230a61ce06469332e16639103669a35a605287e19ced6b9b
- languageName: node
- linkType: hard
-
"lodash.identity@npm:3.0.0":
version: 3.0.0
resolution: "lodash.identity@npm:3.0.0"
@@ -19083,34 +18796,6 @@ __metadata:
languageName: node
linkType: hard
-"lodash.isboolean@npm:^3.0.3":
- version: 3.0.3
- resolution: "lodash.isboolean@npm:3.0.3"
- checksum: b70068b4a8b8837912b54052557b21fc4774174e3512ed3c5b94621e5aff5eb6c68089d0a386b7e801d679cd105d2e35417978a5e99071750aa2ed90bffd0250
- languageName: node
- linkType: hard
-
-"lodash.isequal@npm:^4.5.0":
- version: 4.5.0
- resolution: "lodash.isequal@npm:4.5.0"
- checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644
- languageName: node
- linkType: hard
-
-"lodash.isfunction@npm:^3.0.9":
- version: 3.0.9
- resolution: "lodash.isfunction@npm:3.0.9"
- checksum: 99e54c34b1e8a9ba75c034deb39cedbd2aca7af685815e67a2a8ec4f73ec9748cda6ebee5a07d7de4b938e90d421fd280e9c385cc190f903ac217ac8aff30314
- languageName: node
- linkType: hard
-
-"lodash.isnil@npm:^4.0.0":
- version: 4.0.0
- resolution: "lodash.isnil@npm:4.0.0"
- checksum: ebf8df69879badd6ad99c4f64c54c470248df5cf92b208ca730861b1d8ac058da7b632ac811d18b0929d93cbac8d8fc866e781ee816b0142c56952e85edc682f
- languageName: node
- linkType: hard
-
"lodash.isplainobject@npm:^4.0.6":
version: 4.0.6
resolution: "lodash.isplainobject@npm:4.0.6"
@@ -19118,13 +18803,6 @@ __metadata:
languageName: node
linkType: hard
-"lodash.isundefined@npm:^3.0.1":
- version: 3.0.1
- resolution: "lodash.isundefined@npm:3.0.1"
- checksum: 52b4d99a47bd41daa4e2860200258f56b1f2c99263c11a5f607fbbd91d6447fe674bdafc172735d099908a09136d4a0f98cf79715e38ca4b490fdda7162be289
- languageName: node
- linkType: hard
-
"lodash.merge@npm:^4.6.1, lodash.merge@npm:^4.6.2":
version: 4.6.2
resolution: "lodash.merge@npm:4.6.2"
@@ -19153,20 +18831,6 @@ __metadata:
languageName: node
linkType: hard
-"lodash.union@npm:^4.6.0":
- version: 4.6.0
- resolution: "lodash.union@npm:4.6.0"
- checksum: 1514dc6508b2614ec071a6470f36eb7a70f69bf1abb6d55bdfdc21069635a4517783654b28504c0f025059a7598d37529766888e6d5902b8ab28b712228f7b2a
- languageName: node
- linkType: hard
-
-"lodash.uniq@npm:^4.5.0":
- version: 4.5.0
- resolution: "lodash.uniq@npm:4.5.0"
- checksum: a4779b57a8d0f3c441af13d9afe7ecff22dd1b8ce1129849f71d9bbc8e8ee4e46dfb4b7c28f7ad3d67481edd6e51126e4e2a6ee276e25906d10f7140187c392d
- languageName: node
- linkType: hard
-
"lodash.xorby@npm:^4.7.0":
version: 4.7.0
resolution: "lodash.xorby@npm:4.7.0"
@@ -19733,7 +19397,7 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:^5.0.0, minimatch@npm:^5.0.1, minimatch@npm:^5.1.0":
+"minimatch@npm:^5.0.0, minimatch@npm:^5.0.1":
version: 5.1.6
resolution: "minimatch@npm:5.1.6"
dependencies:
@@ -19858,7 +19522,7 @@ __metadata:
languageName: node
linkType: hard
-"mkdirp@npm:>=0.5 0, mkdirp@npm:^0.5.4":
+"mkdirp@npm:^0.5.4":
version: 0.5.6
resolution: "mkdirp@npm:0.5.6"
dependencies:
@@ -20806,7 +20470,7 @@ __metadata:
languageName: node
linkType: hard
-"pako@npm:~1.0.2, pako@npm:~1.0.5":
+"pako@npm:~1.0.5":
version: 1.0.11
resolution: "pako@npm:1.0.11"
checksum: 1be2bfa1f807608c7538afa15d6f25baa523c30ec870a3228a89579e474a4d992f4293859524e46d5d87fd30fa17c5edf34dbef0671251d9749820b488660b16
@@ -22547,7 +22211,7 @@ __metadata:
languageName: node
linkType: hard
-"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.5, readable-stream@npm:~2.3.6":
+"readable-stream@npm:^2.0.0, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.5, readable-stream@npm:~2.3.6":
version: 2.3.8
resolution: "readable-stream@npm:2.3.8"
dependencies:
@@ -22586,15 +22250,6 @@ __metadata:
languageName: node
linkType: hard
-"readdir-glob@npm:^1.1.2":
- version: 1.1.3
- resolution: "readdir-glob@npm:1.1.3"
- dependencies:
- minimatch: ^5.1.0
- checksum: 1dc0f7440ff5d9378b593abe9d42f34ebaf387516615e98ab410cf3a68f840abbf9ff1032d15e0a0dbffa78f9e2c46d4fafdbaac1ca435af2efe3264e3f21874
- languageName: node
- linkType: hard
-
"readdirp@npm:~3.6.0":
version: 3.6.0
resolution: "readdirp@npm:3.6.0"
@@ -23170,7 +22825,7 @@ __metadata:
languageName: node
linkType: hard
-"rimraf@npm:2, rimraf@npm:^2.6.1":
+"rimraf@npm:^2.6.1":
version: 2.7.1
resolution: "rimraf@npm:2.7.1"
dependencies:
@@ -23587,7 +23242,7 @@ __metadata:
languageName: node
linkType: hard
-"setimmediate@npm:^1.0.4, setimmediate@npm:^1.0.5, setimmediate@npm:~1.0.4":
+"setimmediate@npm:^1.0.4, setimmediate@npm:^1.0.5":
version: 1.0.5
resolution: "setimmediate@npm:1.0.5"
checksum: c9a6f2c5b51a2dabdc0247db9c46460152ffc62ee139f3157440bd48e7c59425093f42719ac1d7931f054f153e2d26cf37dfeb8da17a794a58198a2705e527fd
@@ -24734,7 +24389,7 @@ __metadata:
languageName: node
linkType: hard
-"tar-stream@npm:^2.1.4, tar-stream@npm:^2.2.0":
+"tar-stream@npm:^2.1.4":
version: 2.2.0
resolution: "tar-stream@npm:2.2.0"
dependencies:
@@ -24970,15 +24625,6 @@ __metadata:
languageName: node
linkType: hard
-"tmp@npm:^0.2.0":
- version: 0.2.1
- resolution: "tmp@npm:0.2.1"
- dependencies:
- rimraf: ^3.0.0
- checksum: 8b1214654182575124498c87ca986ac53dc76ff36e8f0e0b67139a8d221eaecfdec108c0e6ec54d76f49f1f72ab9325500b246f562b926f85bcdfca8bf35df9e
- languageName: node
- linkType: hard
-
"tmpl@npm:1.0.5":
version: 1.0.5
resolution: "tmpl@npm:1.0.5"
@@ -25096,13 +24742,6 @@ __metadata:
languageName: node
linkType: hard
-"traverse@npm:>=0.3.0 <0.4":
- version: 0.3.9
- resolution: "traverse@npm:0.3.9"
- checksum: 982982e4e249e9bbf063732a41fe5595939892758524bbef5d547c67cdf371b13af72b5434c6a61d88d4bb4351d6dabc6e22d832e0d16bc1bc684ef97a1cc59e
- languageName: node
- linkType: hard
-
"ts-api-utils@npm:^1.0.1":
version: 1.0.3
resolution: "ts-api-utils@npm:1.0.3"
@@ -25726,24 +25365,6 @@ __metadata:
languageName: node
linkType: hard
-"unzipper@npm:^0.10.11":
- version: 0.10.14
- resolution: "unzipper@npm:0.10.14"
- dependencies:
- big-integer: ^1.6.17
- binary: ~0.3.0
- bluebird: ~3.4.1
- buffer-indexof-polyfill: ~1.0.0
- duplexer2: ~0.1.4
- fstream: ^1.0.12
- graceful-fs: ^4.2.2
- listenercount: ~1.0.1
- readable-stream: ~2.3.6
- setimmediate: ~1.0.4
- checksum: b46ae9a72e4b4c224be6a8f46447dd7cb3761a59450827e869747c4564a8f555f877fc19c7e3b5d146127a7dd3e2ffea186116682f6646e64479f99dd23565bc
- languageName: node
- linkType: hard
-
"update-browserslist-db@npm:^1.0.13":
version: 1.0.13
resolution: "update-browserslist-db@npm:1.0.13"
@@ -25959,15 +25580,6 @@ __metadata:
languageName: node
linkType: hard
-"uuid@npm:^8.3.0":
- version: 8.3.2
- resolution: "uuid@npm:8.3.2"
- bin:
- uuid: dist/bin/uuid
- checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df
- languageName: node
- linkType: hard
-
"uuid@npm:^9.0.0":
version: 9.0.1
resolution: "uuid@npm:9.0.1"
@@ -26796,23 +26408,3 @@ __metadata:
checksum: b7289084bc1fc74a559b7259faa23d3214b14b538a8843d2b001a35e27147833f4107590b1b44bf5bc7f6dfe6f488660d3a3725f268e09b3925b3476153b7821
languageName: node
linkType: hard
-
-"zip-stream@npm:^4.1.0":
- version: 4.1.1
- resolution: "zip-stream@npm:4.1.1"
- dependencies:
- archiver-utils: ^3.0.4
- compress-commons: ^4.1.2
- readable-stream: ^3.6.0
- checksum: 33bd5ee7017656c2ad728b5d4ba510e15bd65ce1ec180c5bbdc7a5f063256353ec482e6a2bc74de7515219d8494147924b9aae16e63fdaaf37cdf7d1ee8df125
- languageName: node
- linkType: hard
-
-"zrender@npm:5.6.0":
- version: 5.6.0
- resolution: "zrender@npm:5.6.0"
- dependencies:
- tslib: 2.3.0
- checksum: 58875a8ed8b813c739f6b6e727eb5eead39b66278143ff231cdd270349a5743af034f7f20567c7895eecb1cadbdae499e17708d96f1faae958ad3acdb3d46687
- languageName: node
- linkType: hard