From 9220a0ce6159571c9739ddd72d372b1560f9a44a Mon Sep 17 00:00:00 2001 From: will0684 Date: Tue, 29 Aug 2023 18:16:20 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20fe8e3?= =?UTF-8?q?5eb995921e8a15214422c6c21f16c46899a=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- refs/pull/858/merge/coverage/clover.xml | 1031 ++++++ .../858/merge/coverage/coverage-final.json | 90 + .../858/merge/coverage/lcov-report/base.css | 224 ++ .../coverage/lcov-report/block-navigation.js | 87 + .../components/atoms/ActionButton.js.html | 781 +++++ .../atoms/ActionButton.stories.js.html | 229 ++ .../components/atoms/Alert.js.html | 235 ++ .../components/atoms/Alert.stories.js.html | 130 + .../components/atoms/Banner.js.html | 205 ++ .../components/atoms/Banner.stories.js.html | 133 + .../components/atoms/Breadcrumb.js.html | 265 ++ .../atoms/Breadcrumb.stories.js.html | 142 + .../components/atoms/CheckBox.js.html | 472 +++ .../components/atoms/CheckBox.stories.js.html | 256 ++ .../components/atoms/DateModified.js.html | 190 + .../atoms/DateModified.stories.js.html | 127 + .../components/atoms/ErrorLabel.js.html | 154 + .../atoms/ErrorLabel.stories.js.html | 127 + .../components/atoms/HTMList.js.html | 163 + .../components/atoms/MultiTextField.js.html | 523 +++ .../atoms/MultiTextField.stories.js.html | 232 ++ .../components/atoms/ProjectInfo.js.html | 241 ++ .../atoms/ProjectInfo.stories.js.html | 136 + .../components/atoms/RadioButton.js.html | 430 +++ .../atoms/RadioButton.stories.js.html | 259 ++ .../components/atoms/RadioField.js.html | 427 +++ .../atoms/RadioField.stories.js.html | 226 ++ .../components/atoms/SearchBar.js.html | 244 ++ .../atoms/SearchBar.stories.js.html | 127 + .../components/atoms/SelectField.js.html | 583 ++++ .../atoms/SelectField.stories.js.html | 232 ++ .../components/atoms/TableOfContents.js.html | 187 + .../atoms/TableOfContents.stories.js.html | 130 + .../components/atoms/TextField.js.html | 613 ++++ .../atoms/TextField.stories.js.html | 229 ++ .../lcov-report/components/atoms/index.html | 566 +++ .../lcov-report/components/index.html | 116 + .../lcov-report/components/index.js.html | 88 + .../components/molecules/CallToAction.js.html | 445 +++ .../molecules/CallToAction.stories.js.html | 160 + .../components/molecules/Card.js.html | 559 +++ .../components/molecules/Card.stories.js.html | 262 ++ .../molecules/CopyToClipboard.js.html | 493 +++ .../molecules/CopyToClipboard.stories.js.html | 151 + .../components/molecules/Details.js.html | 217 ++ .../molecules/Details.stories.js.html | 136 + .../components/molecules/ErrorBox.js.html | 292 ++ .../molecules/ErrorBox.stories.js.html | 208 ++ .../molecules/FeedbackWidget.js.html | 1006 ++++++ .../molecules/FeedbackWidget.stories.js.html | 130 + .../components/molecules/Filter.js.html | 298 ++ .../molecules/Filter.stories.js.html | 181 + .../components/molecules/List.js.html | 208 ++ .../components/molecules/List.stories.js.html | 130 + .../components/molecules/Menu.js.html | 448 +++ .../components/molecules/Menu.stories.js.html | 175 + .../molecules/OptionalListField.js.html | 541 +++ .../OptionalListField.stories.js.html | 562 +++ .../molecules/OptionalTextField.js.html | 877 +++++ .../OptionalTextField.stories.js.html | 340 ++ .../components/molecules/Quote.js.html | 193 ++ .../molecules/Quote.stories.js.html | 133 + .../molecules/TextButtonField.js.html | 379 ++ .../molecules/TextButtonField.stories.js.html | 220 ++ .../components/molecules/index.html | 491 +++ .../components/organisms/Footer.js.html | 439 +++ .../organisms/Footer.stories.js.html | 349 ++ .../components/organisms/Layout.js.html | 760 ++++ .../organisms/Layout.stories.js.html | 199 ++ .../components/organisms/PhaseBanner.js.html | 490 +++ .../organisms/PhaseBanner.stories.js.html | 154 + .../organisms/ReportAProblem.js.html | 1219 +++++++ .../organisms/ReportAProblem.stories.js.html | 118 + .../components/organisms/index.html | 221 ++ .../merge/coverage/lcov-report/favicon.png | Bin 0 -> 445 bytes .../858/merge/coverage/lcov-report/index.html | 296 ++ .../lcov-report/lib/mongodb/connect.js.html | 295 ++ .../lcov-report/lib/mongodb/index.html | 116 + .../lcov-report/lib/notify/index.html | 116 + .../lib/notify/submitEmail.js.html | 280 ++ .../lib/utils/createBreadcrumbs.js.html | 121 + .../lib/utils/getAllUpdateIds.js.html | 133 + .../coverage/lcov-report/lib/utils/index.html | 161 + .../lcov-report/lib/utils/maskEmail.js.html | 142 + .../lib/utils/stripFeedback.js.html | 178 + .../lcov-report/middlewares/index.html | 131 + .../middlewares/initMiddleware.js.html | 124 + .../lcov-report/middlewares/joi.js.html | 160 + .../coverage/lcov-report/pages/404.js.html | 847 +++++ .../coverage/lcov-report/pages/500.js.html | 946 +++++ .../coverage/lcov-report/pages/_app.js.html | 178 + .../lcov-report/pages/api/healthcheck.js.html | 97 + .../coverage/lcov-report/pages/api/index.html | 146 + .../pages/api/report-a-problem.js.html | 274 ++ .../lcov-report/pages/api/robots.js.html | 139 + .../coverage/lcov-report/pages/error.js.html | 1486 ++++++++ .../coverage/lcov-report/pages/home.js.html | 1297 +++++++ .../coverage/lcov-report/pages/index.html | 206 ++ .../coverage/lcov-report/pages/index.js.html | 694 ++++ .../lcov-report/pages/notsupported.js.html | 1552 +++++++++ .../projects/benefits-navigator/[id].js.html | 1471 ++++++++ .../projects/benefits-navigator/index.html | 131 + .../projects/benefits-navigator/index.js.html | 2491 +++++++++++++ .../pages/projects/dashboard/index.html | 116 + .../pages/projects/dashboard/index.js.html | 1402 ++++++++ .../oas-benefits-estimator/[id].js.html | 1564 +++++++++ .../oas-benefits-estimator/index.html | 131 + .../oas-benefits-estimator/index.js.html | 1501 ++++++++ .../merge/coverage/lcov-report/prettify.css | 1 + .../merge/coverage/lcov-report/prettify.js | 2 + .../lcov-report/sort-arrow-sprite.png | Bin 0 -> 138 bytes .../858/merge/coverage/lcov-report/sorter.js | 196 ++ refs/pull/858/merge/coverage/lcov.info | 3071 +++++++++++++++++ 113 files changed, 46006 insertions(+) create mode 100644 refs/pull/858/merge/coverage/clover.xml create mode 100644 refs/pull/858/merge/coverage/coverage-final.json create mode 100644 refs/pull/858/merge/coverage/lcov-report/base.css create mode 100644 refs/pull/858/merge/coverage/lcov-report/block-navigation.js create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/ActionButton.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/ActionButton.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/Alert.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/Alert.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/Banner.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/Banner.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/Breadcrumb.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/Breadcrumb.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/CheckBox.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/CheckBox.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/DateModified.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/DateModified.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/ErrorLabel.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/ErrorLabel.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/HTMList.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/MultiTextField.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/MultiTextField.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/ProjectInfo.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/ProjectInfo.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioButton.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioButton.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioField.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioField.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/SearchBar.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/SearchBar.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/SelectField.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/SelectField.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/TableOfContents.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/TableOfContents.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/TextField.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/TextField.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/atoms/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/index.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/CallToAction.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/CallToAction.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/Card.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/Card.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/CopyToClipboard.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/CopyToClipboard.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/Details.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/Details.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/ErrorBox.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/ErrorBox.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/FeedbackWidget.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/FeedbackWidget.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/Filter.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/Filter.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/List.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/List.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/Menu.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/Menu.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalListField.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalListField.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalTextField.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalTextField.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/Quote.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/Quote.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/TextButtonField.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/TextButtonField.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/molecules/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/organisms/Footer.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/organisms/Footer.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/organisms/Layout.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/organisms/Layout.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/organisms/PhaseBanner.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/organisms/PhaseBanner.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/organisms/ReportAProblem.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/organisms/ReportAProblem.stories.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/components/organisms/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/favicon.png create mode 100644 refs/pull/858/merge/coverage/lcov-report/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/lib/mongodb/connect.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/lib/mongodb/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/lib/notify/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/lib/notify/submitEmail.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/lib/utils/createBreadcrumbs.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/lib/utils/getAllUpdateIds.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/lib/utils/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/lib/utils/maskEmail.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/lib/utils/stripFeedback.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/middlewares/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/middlewares/initMiddleware.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/middlewares/joi.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/404.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/500.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/_app.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/api/healthcheck.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/api/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/api/report-a-problem.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/api/robots.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/error.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/home.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/index.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/notsupported.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/projects/benefits-navigator/[id].js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/projects/dashboard/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/projects/dashboard/index.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/[id].js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.js.html create mode 100644 refs/pull/858/merge/coverage/lcov-report/prettify.css create mode 100644 refs/pull/858/merge/coverage/lcov-report/prettify.js create mode 100644 refs/pull/858/merge/coverage/lcov-report/sort-arrow-sprite.png create mode 100644 refs/pull/858/merge/coverage/lcov-report/sorter.js create mode 100644 refs/pull/858/merge/coverage/lcov.info diff --git a/refs/pull/858/merge/coverage/clover.xml b/refs/pull/858/merge/coverage/clover.xml new file mode 100644 index 0000000000..289ff14215 --- /dev/null +++ b/refs/pull/858/merge/coverage/clover.xml @@ -0,0 +1,1031 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/refs/pull/858/merge/coverage/coverage-final.json b/refs/pull/858/merge/coverage/coverage-final.json new file mode 100644 index 0000000000..29a97943d2 --- /dev/null +++ b/refs/pull/858/merge/coverage/coverage-final.json @@ -0,0 +1,90 @@ +{"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/index.js","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ActionButton.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ActionButton.js","statementMap":{"0":{"start":{"line":11,"column":4},"end":{"line":11,"column":108}},"1":{"start":{"line":13,"column":4},"end":{"line":13,"column":118}},"2":{"start":{"line":15,"column":4},"end":{"line":15,"column":121}},"3":{"start":{"line":17,"column":4},"end":{"line":17,"column":109}},"4":{"start":{"line":19,"column":4},"end":{"line":19,"column":89}},"5":{"start":{"line":22,"column":4},"end":{"line":32,"column":10}},"6":{"start":{"line":35,"column":2},"end":{"line":45,"column":5}},"7":{"start":{"line":36,"column":15},"end":{"line":36,"column":48}},"8":{"start":{"line":37,"column":4},"end":{"line":44,"column":5}},"9":{"start":{"line":38,"column":6},"end":{"line":43,"column":9}},"10":{"start":{"line":39,"column":8},"end":{"line":42,"column":9}},"11":{"start":{"line":40,"column":10},"end":{"line":40,"column":33}},"12":{"start":{"line":41,"column":10},"end":{"line":41,"column":23}},"13":{"start":{"line":47,"column":2},"end":{"line":105,"column":4}},"14":{"start":{"line":108,"column":0},"end":{"line":232,"column":2}}},"fnMap":{"0":{"name":"ActionButton","decl":{"start":{"line":8,"column":16},"end":{"line":8,"column":28}},"loc":{"start":{"line":8,"column":36},"end":{"line":106,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":35,"column":12},"end":{"line":35,"column":13}},"loc":{"start":{"line":35,"column":18},"end":{"line":45,"column":3}},"line":35},"2":{"name":"(anonymous_2)","decl":{"start":{"line":38,"column":39},"end":{"line":38,"column":40}},"loc":{"start":{"line":38,"column":50},"end":{"line":43,"column":7}},"line":38}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":4},"end":{"line":32,"column":10}},"type":"cond-expr","locations":[{"start":{"line":23,"column":8},"end":{"line":23,"column":15}},{"start":{"line":24,"column":8},"end":{"line":32,"column":10}}],"line":22},"1":{"loc":{"start":{"line":24,"column":8},"end":{"line":32,"column":10}},"type":"cond-expr","locations":[{"start":{"line":25,"column":8},"end":{"line":25,"column":17}},{"start":{"line":26,"column":8},"end":{"line":32,"column":10}}],"line":24},"2":{"loc":{"start":{"line":26,"column":8},"end":{"line":32,"column":10}},"type":"cond-expr","locations":[{"start":{"line":27,"column":8},"end":{"line":27,"column":17}},{"start":{"line":28,"column":8},"end":{"line":32,"column":10}}],"line":26},"3":{"loc":{"start":{"line":28,"column":8},"end":{"line":32,"column":10}},"type":"cond-expr","locations":[{"start":{"line":29,"column":8},"end":{"line":29,"column":14}},{"start":{"line":30,"column":8},"end":{"line":32,"column":10}}],"line":28},"4":{"loc":{"start":{"line":30,"column":8},"end":{"line":32,"column":10}},"type":"cond-expr","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":12}},{"start":{"line":32,"column":8},"end":{"line":32,"column":10}}],"line":30},"5":{"loc":{"start":{"line":37,"column":4},"end":{"line":44,"column":5}},"type":"if","locations":[{"start":{"line":37,"column":4},"end":{"line":44,"column":5}},{"start":{},"end":{}}],"line":37},"6":{"loc":{"start":{"line":39,"column":8},"end":{"line":42,"column":9}},"type":"if","locations":[{"start":{"line":39,"column":8},"end":{"line":42,"column":9}},{"start":{},"end":{}}],"line":39},"7":{"loc":{"start":{"line":39,"column":12},"end":{"line":39,"column":57}},"type":"binary-expr","locations":[{"start":{"line":39,"column":12},"end":{"line":39,"column":36}},{"start":{"line":39,"column":40},"end":{"line":39,"column":57}}],"line":39},"8":{"loc":{"start":{"line":47,"column":9},"end":{"line":105,"column":3}},"type":"cond-expr","locations":[{"start":{"line":48,"column":4},"end":{"line":70,"column":11}},{"start":{"line":72,"column":4},"end":{"line":104,"column":13}}],"line":47},"9":{"loc":{"start":{"line":50,"column":21},"end":{"line":50,"column":66}},"type":"cond-expr","locations":[{"start":{"line":50,"column":39},"end":{"line":50,"column":54}},{"start":{"line":50,"column":57},"end":{"line":50,"column":66}}],"line":50},"10":{"loc":{"start":{"line":55,"column":15},"end":{"line":55,"column":39}},"type":"binary-expr","locations":[{"start":{"line":55,"column":15},"end":{"line":55,"column":27}},{"start":{"line":55,"column":31},"end":{"line":55,"column":39}}],"line":55},"11":{"loc":{"start":{"line":62,"column":7},"end":{"line":64,"column":19}},"type":"cond-expr","locations":[{"start":{"line":63,"column":8},"end":{"line":63,"column":70}},{"start":{"line":64,"column":10},"end":{"line":64,"column":19}}],"line":62},"12":{"loc":{"start":{"line":62,"column":7},"end":{"line":62,"column":35}},"type":"binary-expr","locations":[{"start":{"line":62,"column":7},"end":{"line":62,"column":17}},{"start":{"line":62,"column":21},"end":{"line":62,"column":35}}],"line":62},"13":{"loc":{"start":{"line":67,"column":7},"end":{"line":69,"column":19}},"type":"cond-expr","locations":[{"start":{"line":68,"column":8},"end":{"line":68,"column":70}},{"start":{"line":69,"column":10},"end":{"line":69,"column":19}}],"line":67},"14":{"loc":{"start":{"line":67,"column":7},"end":{"line":67,"column":34}},"type":"binary-expr","locations":[{"start":{"line":67,"column":7},"end":{"line":67,"column":17}},{"start":{"line":67,"column":21},"end":{"line":67,"column":34}}],"line":67},"15":{"loc":{"start":{"line":73,"column":24},"end":{"line":73,"column":75}},"type":"cond-expr","locations":[{"start":{"line":73,"column":45},"end":{"line":73,"column":63}},{"start":{"line":73,"column":66},"end":{"line":73,"column":75}}],"line":73},"16":{"loc":{"start":{"line":74,"column":21},"end":{"line":74,"column":66}},"type":"cond-expr","locations":[{"start":{"line":74,"column":39},"end":{"line":74,"column":54}},{"start":{"line":74,"column":57},"end":{"line":74,"column":66}}],"line":74},"17":{"loc":{"start":{"line":80,"column":15},"end":{"line":80,"column":39}},"type":"binary-expr","locations":[{"start":{"line":80,"column":15},"end":{"line":80,"column":27}},{"start":{"line":80,"column":31},"end":{"line":80,"column":39}}],"line":80},"18":{"loc":{"start":{"line":83,"column":32},"end":{"line":83,"column":78}},"type":"cond-expr","locations":[{"start":{"line":83,"column":58},"end":{"line":83,"column":66}},{"start":{"line":83,"column":69},"end":{"line":83,"column":78}}],"line":83},"19":{"loc":{"start":{"line":85,"column":7},"end":{"line":87,"column":19}},"type":"cond-expr","locations":[{"start":{"line":86,"column":8},"end":{"line":86,"column":70}},{"start":{"line":87,"column":10},"end":{"line":87,"column":19}}],"line":85},"20":{"loc":{"start":{"line":85,"column":7},"end":{"line":85,"column":35}},"type":"binary-expr","locations":[{"start":{"line":85,"column":7},"end":{"line":85,"column":17}},{"start":{"line":85,"column":21},"end":{"line":85,"column":35}}],"line":85},"21":{"loc":{"start":{"line":88,"column":7},"end":{"line":95,"column":19}},"type":"cond-expr","locations":[{"start":{"line":89,"column":8},"end":{"line":94,"column":11}},{"start":{"line":95,"column":10},"end":{"line":95,"column":19}}],"line":88},"22":{"loc":{"start":{"line":88,"column":7},"end":{"line":88,"column":42}},"type":"binary-expr","locations":[{"start":{"line":88,"column":7},"end":{"line":88,"column":24}},{"start":{"line":88,"column":28},"end":{"line":88,"column":42}}],"line":88},"23":{"loc":{"start":{"line":101,"column":7},"end":{"line":103,"column":19}},"type":"cond-expr","locations":[{"start":{"line":102,"column":8},"end":{"line":102,"column":70}},{"start":{"line":103,"column":10},"end":{"line":103,"column":19}}],"line":101},"24":{"loc":{"start":{"line":101,"column":7},"end":{"line":101,"column":34}},"type":"binary-expr","locations":[{"start":{"line":101,"column":7},"end":{"line":101,"column":17}},{"start":{"line":101,"column":21},"end":{"line":101,"column":34}}],"line":101}},"s":{"0":75,"1":75,"2":75,"3":75,"4":75,"5":75,"6":75,"7":75,"8":75,"9":67,"10":1,"11":1,"12":1,"13":75,"14":17},"f":{"0":75,"1":75,"2":1},"b":{"0":[5,70],"1":[2,68],"2":[1,67],"3":[1,66],"4":[2,64],"5":[67,8],"6":[1,0],"7":[1,0],"8":[19,56],"9":[6,13],"10":[19,11],"11":[0,19],"12":[19,4],"13":[4,15],"14":[19,4],"15":[0,56],"16":[12,44],"17":[56,17],"18":[24,32],"19":[0,56],"20":[56,0],"21":[6,50],"22":[56,6],"23":[0,56],"24":[56,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"857e59e63979d7363a4a0ecee2ad91304079e4aa"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ActionButton.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ActionButton.stories.js","statementMap":{"0":{"start":{"line":8,"column":17},"end":{"line":8,"column":53}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":53}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":11,"column":25},"end":{"line":11,"column":42}},"4":{"start":{"line":12,"column":25},"end":{"line":12,"column":42}},"5":{"start":{"line":13,"column":22},"end":{"line":13,"column":39}},"6":{"start":{"line":14,"column":20},"end":{"line":14,"column":37}},"7":{"start":{"line":16,"column":0},"end":{"line":20,"column":2}},"8":{"start":{"line":22,"column":0},"end":{"line":27,"column":2}},"9":{"start":{"line":29,"column":0},"end":{"line":34,"column":2}},"10":{"start":{"line":36,"column":0},"end":{"line":41,"column":2}},"11":{"start":{"line":43,"column":0},"end":{"line":48,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":53}},"line":8}},"branchMap":{},"s":{"0":1,"1":7,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1},"f":{"0":7},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"15410beefc2a3767daf1bc32866e0bdbe619631d"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Alert.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Alert.js","statementMap":{"0":{"start":{"line":12,"column":2},"end":{"line":38,"column":4}},"1":{"start":{"line":41,"column":0},"end":{"line":50,"column":2}}},"fnMap":{"0":{"name":"Alert","decl":{"start":{"line":11,"column":16},"end":{"line":11,"column":21}},"loc":{"start":{"line":11,"column":29},"end":{"line":39,"column":1}},"line":11}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":10},"end":{"line":16,"column":66}},"type":"cond-expr","locations":[{"start":{"line":16,"column":27},"end":{"line":16,"column":45}},{"start":{"line":16,"column":48},"end":{"line":16,"column":66}}],"line":16},"1":{"loc":{"start":{"line":20,"column":11},"end":{"line":28,"column":11}},"type":"cond-expr","locations":[{"start":{"line":21,"column":12},"end":{"line":25,"column":14}},{"start":{"line":27,"column":12},"end":{"line":27,"column":79}}],"line":20}},"s":{"0":2,"1":1},"f":{"0":2},"b":{"0":[0,2],"1":[0,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7bd61701a7b80a1a915241faa1e6ff92412d63eb"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Alert.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Alert.stories.js","statementMap":{"0":{"start":{"line":8,"column":17},"end":{"line":8,"column":46}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":46}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":15,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":46}},"line":8}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f28f2e4857c791b2b1e5eb333dbe17b97d54877d"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Banner.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Banner.js","statementMap":{"0":{"start":{"line":8,"column":22},"end":{"line":26,"column":1}},"1":{"start":{"line":9,"column":2},"end":{"line":25,"column":4}},"2":{"start":{"line":28,"column":0},"end":{"line":38,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":22},"end":{"line":8,"column":23}},"loc":{"start":{"line":8,"column":51},"end":{"line":26,"column":1}},"line":8}},"branchMap":{},"s":{"0":4,"1":4,"2":4},"f":{"0":4},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b0bd9d01708f094cf2dd1bc4d7ccbc8467b0f5f8"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Banner.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Banner.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":47}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":47}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":16,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":47}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e5d2172c491ed23a79bcec2411ec811097a3fab7"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Breadcrumb.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Breadcrumb.js","statementMap":{"0":{"start":{"line":8,"column":2},"end":{"line":40,"column":4}},"1":{"start":{"line":22,"column":14},"end":{"line":35,"column":16}},"2":{"start":{"line":43,"column":0},"end":{"line":60,"column":2}}},"fnMap":{"0":{"name":"Breadcrumb","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":26}},"loc":{"start":{"line":7,"column":34},"end":{"line":41,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":28},"end":{"line":21,"column":29}},"loc":{"start":{"line":21,"column":43},"end":{"line":36,"column":13}},"line":21}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":9},"end":{"line":37,"column":16}},"type":"cond-expr","locations":[{"start":{"line":21,"column":12},"end":{"line":36,"column":14}},{"start":{"line":37,"column":12},"end":{"line":37,"column":16}}],"line":20}},"s":{"0":11,"1":4,"2":4},"f":{"0":11,"1":4},"b":{"0":[2,8]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"17233b992839fd24cc88b2db5643c16b19910365"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Breadcrumb.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Breadcrumb.stories.js","statementMap":{"0":{"start":{"line":8,"column":17},"end":{"line":8,"column":51}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":51}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":11,"column":25},"end":{"line":11,"column":42}},"4":{"start":{"line":13,"column":0},"end":{"line":19,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":51}},"line":8}},"branchMap":{},"s":{"0":1,"1":3,"2":1,"3":1,"4":1},"f":{"0":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ba06e78454c0637cf7f825a0cc5c42688a4b6850"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/CheckBox.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/CheckBox.js","statementMap":{"0":{"start":{"line":7,"column":28},"end":{"line":11,"column":8}},"1":{"start":{"line":12,"column":2},"end":{"line":51,"column":4}},"2":{"start":{"line":25,"column":10},"end":{"line":29,"column":11}},"3":{"start":{"line":54,"column":0},"end":{"line":58,"column":2}},"4":{"start":{"line":60,"column":0},"end":{"line":129,"column":2}}},"fnMap":{"0":{"name":"CheckBox","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":24}},"loc":{"start":{"line":6,"column":32},"end":{"line":52,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":24,"column":18},"end":{"line":24,"column":19}},"loc":{"start":{"line":25,"column":10},"end":{"line":29,"column":11}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":28},"end":{"line":11,"column":8}},"type":"cond-expr","locations":[{"start":{"line":8,"column":6},"end":{"line":10,"column":7}},{"start":{"line":11,"column":6},"end":{"line":11,"column":8}}],"line":7},"1":{"loc":{"start":{"line":15,"column":8},"end":{"line":15,"column":57}},"type":"cond-expr","locations":[{"start":{"line":15,"column":26},"end":{"line":15,"column":47}},{"start":{"line":15,"column":50},"end":{"line":15,"column":57}}],"line":15},"2":{"loc":{"start":{"line":26,"column":12},"end":{"line":26,"column":73}},"type":"cond-expr","locations":[{"start":{"line":26,"column":33},"end":{"line":26,"column":57}},{"start":{"line":26,"column":60},"end":{"line":26,"column":73}}],"line":26},"3":{"loc":{"start":{"line":32,"column":22},"end":{"line":32,"column":54}},"type":"cond-expr","locations":[{"start":{"line":32,"column":36},"end":{"line":32,"column":42}},{"start":{"line":32,"column":45},"end":{"line":32,"column":54}}],"line":32},"4":{"loc":{"start":{"line":39,"column":10},"end":{"line":39,"column":56}},"type":"cond-expr","locations":[{"start":{"line":39,"column":25},"end":{"line":39,"column":40}},{"start":{"line":39,"column":43},"end":{"line":39,"column":56}}],"line":39},"5":{"loc":{"start":{"line":40,"column":21},"end":{"line":40,"column":71}},"type":"cond-expr","locations":[{"start":{"line":40,"column":35},"end":{"line":40,"column":59}},{"start":{"line":40,"column":62},"end":{"line":40,"column":71}}],"line":40},"6":{"loc":{"start":{"line":43,"column":9},"end":{"line":47,"column":21}},"type":"cond-expr","locations":[{"start":{"line":44,"column":10},"end":{"line":46,"column":14}},{"start":{"line":47,"column":12},"end":{"line":47,"column":21}}],"line":43}},"s":{"0":145,"1":145,"2":6,"3":9,"4":9},"f":{"0":145,"1":6},"b":{"0":[12,133],"1":[127,18],"2":[4,2],"3":[0,145],"4":[0,145],"5":[0,145],"6":[0,145]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2361dbe58b2cd89fa17306405dbe671c148d3068"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/CheckBox.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/CheckBox.stories.js","statementMap":{"0":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"1":{"start":{"line":18,"column":17},"end":{"line":18,"column":49}},"2":{"start":{"line":18,"column":27},"end":{"line":18,"column":49}},"3":{"start":{"line":20,"column":25},"end":{"line":20,"column":42}},"4":{"start":{"line":21,"column":0},"end":{"line":27,"column":2}},"5":{"start":{"line":29,"column":23},"end":{"line":29,"column":40}},"6":{"start":{"line":30,"column":0},"end":{"line":37,"column":2}},"7":{"start":{"line":39,"column":28},"end":{"line":39,"column":45}},"8":{"start":{"line":40,"column":0},"end":{"line":47,"column":2}},"9":{"start":{"line":49,"column":24},"end":{"line":49,"column":41}},"10":{"start":{"line":50,"column":0},"end":{"line":57,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":17},"end":{"line":18,"column":18}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":49}},"line":18}},"branchMap":{},"s":{"0":0,"1":1,"2":4,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1},"f":{"0":0,"1":4},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1f10911fb44eb38d7804db00dc612e847bfe0862"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/DateModified.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/DateModified.js","statementMap":{"0":{"start":{"line":5,"column":16},"end":{"line":5,"column":40}},"1":{"start":{"line":7,"column":22},"end":{"line":7,"column":26}},"2":{"start":{"line":8,"column":2},"end":{"line":12,"column":3}},"3":{"start":{"line":9,"column":4},"end":{"line":11,"column":38}},"4":{"start":{"line":10,"column":6},"end":{"line":10,"column":70}},"5":{"start":{"line":11,"column":11},"end":{"line":11,"column":38}},"6":{"start":{"line":14,"column":2},"end":{"line":25,"column":4}},"7":{"start":{"line":28,"column":0},"end":{"line":30,"column":2}},"8":{"start":{"line":32,"column":0},"end":{"line":35,"column":2}}},"fnMap":{"0":{"name":"DateModified","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":28}},"loc":{"start":{"line":4,"column":36},"end":{"line":26,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":2},"end":{"line":12,"column":3}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":12,"column":3}},{"start":{},"end":{}}],"line":8},"1":{"loc":{"start":{"line":9,"column":4},"end":{"line":11,"column":38}},"type":"if","locations":[{"start":{"line":9,"column":4},"end":{"line":11,"column":38}},{"start":{"line":11,"column":11},"end":{"line":11,"column":38}}],"line":9},"2":{"loc":{"start":{"line":18,"column":9},"end":{"line":22,"column":9}},"type":"cond-expr","locations":[{"start":{"line":19,"column":10},"end":{"line":19,"column":44}},{"start":{"line":21,"column":10},"end":{"line":21,"column":69}}],"line":18}},"s":{"0":10,"1":10,"2":10,"3":4,"4":2,"5":2,"6":10,"7":4,"8":4},"f":{"0":10},"b":{"0":[4,6],"1":[2,2],"2":[6,4]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b47e8b8e6632c84d136bd818a53e2d91830efeaa"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/DateModified.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/DateModified.stories.js","statementMap":{"0":{"start":{"line":8,"column":17},"end":{"line":8,"column":53}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":53}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":14,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":53}},"line":8}},"branchMap":{},"s":{"0":1,"1":3,"2":1,"3":1},"f":{"0":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c7686e4fa030e25863fce92ad7dbc9e5feadfa51"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ErrorLabel.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ErrorLabel.js","statementMap":{"0":{"start":{"line":7,"column":2},"end":{"line":13,"column":4}},"1":{"start":{"line":16,"column":0},"end":{"line":23,"column":2}}},"fnMap":{"0":{"name":"ErrorLabel","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":26}},"loc":{"start":{"line":6,"column":34},"end":{"line":14,"column":1}},"line":6}},"branchMap":{},"s":{"0":5,"1":13},"f":{"0":5},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f9976b7520de2dd3c5c185fcdf700f31d3987048"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ErrorLabel.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ErrorLabel.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":51}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":51}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":14,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":51}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c5ee6f0f12533617e78fd48b2b41a161cea2aac7"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/HTMList.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/HTMList.js","statementMap":{"0":{"start":{"line":4,"column":20},"end":{"line":12,"column":8}},"1":{"start":{"line":5,"column":4},"end":{"line":12,"column":8}},"2":{"start":{"line":7,"column":24},"end":{"line":7,"column":28}},"3":{"start":{"line":9,"column":8},"end":{"line":11,"column":13}},"4":{"start":{"line":14,"column":2},"end":{"line":18,"column":4}},"5":{"start":{"line":21,"column":0},"end":{"line":26,"column":2}}},"fnMap":{"0":{"name":"HTMList","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":23}},"loc":{"start":{"line":3,"column":77},"end":{"line":19,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":20},"end":{"line":4,"column":21}},"loc":{"start":{"line":5,"column":4},"end":{"line":12,"column":8}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":14},"end":{"line":7,"column":15}},"loc":{"start":{"line":7,"column":24},"end":{"line":7,"column":28}},"line":7},"3":{"name":"(anonymous_3)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":9,"column":8},"end":{"line":11,"column":13}},"line":9}},"branchMap":{"0":{"loc":{"start":{"line":3,"column":26},"end":{"line":3,"column":36}},"type":"default-arg","locations":[{"start":{"line":3,"column":32},"end":{"line":3,"column":36}}],"line":3},"1":{"loc":{"start":{"line":14,"column":9},"end":{"line":18,"column":3}},"type":"cond-expr","locations":[{"start":{"line":15,"column":4},"end":{"line":15,"column":59}},{"start":{"line":17,"column":4},"end":{"line":17,"column":59}}],"line":14}},"s":{"0":7,"1":7,"2":18,"3":13,"4":7,"5":1},"f":{"0":7,"1":7,"2":18,"3":13},"b":{"0":[5],"1":[6,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d498c2a8969f2a4dc6c4848d2e6043776020fa92"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/MultiTextField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/MultiTextField.js","statementMap":{"0":{"start":{"line":9,"column":16},"end":{"line":9,"column":40}},"1":{"start":{"line":11,"column":2},"end":{"line":54,"column":4}},"2":{"start":{"line":41,"column":25},"end":{"line":41,"column":62}},"3":{"start":{"line":57,"column":0},"end":{"line":60,"column":2}},"4":{"start":{"line":62,"column":0},"end":{"line":146,"column":2}}},"fnMap":{"0":{"name":"MultiTextField","decl":{"start":{"line":8,"column":16},"end":{"line":8,"column":30}},"loc":{"start":{"line":8,"column":38},"end":{"line":55,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":41,"column":18},"end":{"line":41,"column":19}},"loc":{"start":{"line":41,"column":25},"end":{"line":41,"column":62}},"line":41}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":8},"end":{"line":14,"column":58}},"type":"cond-expr","locations":[{"start":{"line":14,"column":26},"end":{"line":14,"column":47}},{"start":{"line":14,"column":50},"end":{"line":14,"column":58}}],"line":14},"1":{"loc":{"start":{"line":19,"column":10},"end":{"line":19,"column":44}},"type":"cond-expr","locations":[{"start":{"line":19,"column":28},"end":{"line":19,"column":39}},{"start":{"line":19,"column":42},"end":{"line":19,"column":44}}],"line":19},"2":{"loc":{"start":{"line":23,"column":9},"end":{"line":27,"column":21}},"type":"cond-expr","locations":[{"start":{"line":24,"column":10},"end":{"line":26,"column":14}},{"start":{"line":27,"column":12},"end":{"line":27,"column":21}}],"line":23},"3":{"loc":{"start":{"line":33,"column":7},"end":{"line":33,"column":69}},"type":"cond-expr","locations":[{"start":{"line":33,"column":21},"end":{"line":33,"column":57}},{"start":{"line":33,"column":60},"end":{"line":33,"column":69}}],"line":33},"4":{"loc":{"start":{"line":36,"column":10},"end":{"line":36,"column":66}},"type":"cond-expr","locations":[{"start":{"line":36,"column":24},"end":{"line":36,"column":49}},{"start":{"line":36,"column":52},"end":{"line":36,"column":66}}],"line":36}},"s":{"0":4,"1":4,"2":1,"3":8,"4":8},"f":{"0":4,"1":1},"b":{"0":[0,4],"1":[1,3],"2":[0,4],"3":[0,4],"4":[0,4]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0284fece7a312230cc9e53f0a5a9156ce1330f72"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/MultiTextField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/MultiTextField.stories.js","statementMap":{"0":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"1":{"start":{"line":18,"column":17},"end":{"line":18,"column":57}},"2":{"start":{"line":18,"column":27},"end":{"line":18,"column":57}},"3":{"start":{"line":20,"column":23},"end":{"line":20,"column":40}},"4":{"start":{"line":21,"column":0},"end":{"line":27,"column":2}},"5":{"start":{"line":29,"column":25},"end":{"line":29,"column":42}},"6":{"start":{"line":30,"column":0},"end":{"line":37,"column":2}},"7":{"start":{"line":39,"column":24},"end":{"line":39,"column":41}},"8":{"start":{"line":40,"column":0},"end":{"line":49,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":17},"end":{"line":18,"column":18}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":57}},"line":18}},"branchMap":{},"s":{"0":0,"1":1,"2":2,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1},"f":{"0":0,"1":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e95af57a53f1f61570fadb1270af4036342f4321"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ProjectInfo.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ProjectInfo.js","statementMap":{"0":{"start":{"line":7,"column":16},"end":{"line":7,"column":40}},"1":{"start":{"line":8,"column":34},"end":{"line":8,"column":49}},"2":{"start":{"line":10,"column":2},"end":{"line":42,"column":4}},"3":{"start":{"line":45,"column":0},"end":{"line":52,"column":2}}},"fnMap":{"0":{"name":"ProjectInfo","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":27}},"loc":{"start":{"line":6,"column":35},"end":{"line":43,"column":1}},"line":6}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":11},"end":{"line":15,"column":78}},"type":"cond-expr","locations":[{"start":{"line":15,"column":32},"end":{"line":15,"column":41}},{"start":{"line":15,"column":44},"end":{"line":15,"column":78}}],"line":15},"1":{"loc":{"start":{"line":19,"column":11},"end":{"line":19,"column":74}},"type":"cond-expr","locations":[{"start":{"line":19,"column":30},"end":{"line":19,"column":39}},{"start":{"line":19,"column":42},"end":{"line":19,"column":74}}],"line":19}},"s":{"0":3,"1":3,"2":3,"3":2},"f":{"0":3},"b":{"0":[0,3],"1":[1,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"25449d2c0846d59f452f46cceab566cdb8f3f252"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ProjectInfo.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ProjectInfo.stories.js","statementMap":{"0":{"start":{"line":8,"column":17},"end":{"line":8,"column":52}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":52}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":17,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":52}},"line":8}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"74c812eb1223bc6186d9f3f5c9b2a6ed97663cce"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioButton.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioButton.js","statementMap":{"0":{"start":{"line":7,"column":28},"end":{"line":13,"column":7}},"1":{"start":{"line":14,"column":2},"end":{"line":48,"column":4}},"2":{"start":{"line":23,"column":10},"end":{"line":23,"column":41}},"3":{"start":{"line":26,"column":10},"end":{"line":32,"column":11}},"4":{"start":{"line":27,"column":12},"end":{"line":27,"column":31}},"5":{"start":{"line":28,"column":12},"end":{"line":30,"column":13}},"6":{"start":{"line":29,"column":14},"end":{"line":29,"column":45}},"7":{"start":{"line":31,"column":12},"end":{"line":31,"column":43}},"8":{"start":{"line":51,"column":0},"end":{"line":53,"column":2}},"9":{"start":{"line":55,"column":0},"end":{"line":115,"column":2}}},"fnMap":{"0":{"name":"RadioButton","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":27}},"loc":{"start":{"line":6,"column":35},"end":{"line":49,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":22,"column":18},"end":{"line":22,"column":19}},"loc":{"start":{"line":22,"column":25},"end":{"line":24,"column":9}},"line":22},"2":{"name":"(anonymous_2)","decl":{"start":{"line":25,"column":17},"end":{"line":25,"column":18}},"loc":{"start":{"line":25,"column":24},"end":{"line":33,"column":9}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":28},"end":{"line":13,"column":7}},"type":"cond-expr","locations":[{"start":{"line":8,"column":6},"end":{"line":10,"column":7}},{"start":{"line":11,"column":6},"end":{"line":13,"column":7}}],"line":7},"1":{"loc":{"start":{"line":12,"column":24},"end":{"line":12,"column":46}},"type":"binary-expr","locations":[{"start":{"line":12,"column":24},"end":{"line":12,"column":37}},{"start":{"line":12,"column":41},"end":{"line":12,"column":46}}],"line":12},"2":{"loc":{"start":{"line":26,"column":10},"end":{"line":32,"column":11}},"type":"if","locations":[{"start":{"line":26,"column":10},"end":{"line":32,"column":11}},{"start":{},"end":{}}],"line":26},"3":{"loc":{"start":{"line":28,"column":12},"end":{"line":30,"column":13}},"type":"if","locations":[{"start":{"line":28,"column":12},"end":{"line":30,"column":13}},{"start":{},"end":{}}],"line":28},"4":{"loc":{"start":{"line":41,"column":10},"end":{"line":41,"column":51}},"type":"cond-expr","locations":[{"start":{"line":41,"column":31},"end":{"line":41,"column":46}},{"start":{"line":41,"column":49},"end":{"line":41,"column":51}}],"line":41},"5":{"loc":{"start":{"line":42,"column":11},"end":{"line":42,"column":51}},"type":"cond-expr","locations":[{"start":{"line":42,"column":31},"end":{"line":42,"column":46}},{"start":{"line":42,"column":49},"end":{"line":42,"column":51}}],"line":42}},"s":{"0":16,"1":16,"2":3,"3":1,"4":1,"5":1,"6":0,"7":1,"8":2,"9":2},"f":{"0":16,"1":3,"2":1},"b":{"0":[15,1],"1":[1,1],"2":[1,0],"3":[0,1],"4":[4,12],"5":[4,12]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8387c8300b81c0b0b4606ef9d7e8061b628962d8"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioButton.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioButton.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":52}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":52}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":18,"column":2}},"4":{"start":{"line":20,"column":23},"end":{"line":20,"column":40}},"5":{"start":{"line":21,"column":0},"end":{"line":28,"column":2}},"6":{"start":{"line":30,"column":28},"end":{"line":30,"column":45}},"7":{"start":{"line":31,"column":0},"end":{"line":38,"column":2}},"8":{"start":{"line":40,"column":28},"end":{"line":40,"column":45}},"9":{"start":{"line":41,"column":0},"end":{"line":48,"column":2}},"10":{"start":{"line":50,"column":27},"end":{"line":50,"column":44}},"11":{"start":{"line":51,"column":0},"end":{"line":58,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":52}},"line":9}},"branchMap":{},"s":{"0":1,"1":7,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1},"f":{"0":7},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2c520a64a3211dcf5af130853c6288438078cf1d"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioField.js","statementMap":{"0":{"start":{"line":7,"column":28},"end":{"line":11,"column":8}},"1":{"start":{"line":12,"column":2},"end":{"line":47,"column":4}},"2":{"start":{"line":25,"column":10},"end":{"line":29,"column":11}},"3":{"start":{"line":42,"column":23},"end":{"line":42,"column":77}},"4":{"start":{"line":50,"column":0},"end":{"line":53,"column":2}},"5":{"start":{"line":55,"column":0},"end":{"line":114,"column":2}}},"fnMap":{"0":{"name":"RadioField","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":26}},"loc":{"start":{"line":6,"column":34},"end":{"line":48,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":24,"column":18},"end":{"line":24,"column":19}},"loc":{"start":{"line":25,"column":10},"end":{"line":29,"column":11}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":42,"column":17},"end":{"line":42,"column":18}},"loc":{"start":{"line":42,"column":23},"end":{"line":42,"column":77}},"line":42}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":28},"end":{"line":11,"column":8}},"type":"cond-expr","locations":[{"start":{"line":8,"column":6},"end":{"line":10,"column":7}},{"start":{"line":11,"column":6},"end":{"line":11,"column":8}}],"line":7},"1":{"loc":{"start":{"line":15,"column":8},"end":{"line":15,"column":52}},"type":"cond-expr","locations":[{"start":{"line":15,"column":26},"end":{"line":15,"column":47}},{"start":{"line":15,"column":50},"end":{"line":15,"column":52}}],"line":15},"2":{"loc":{"start":{"line":26,"column":12},"end":{"line":26,"column":73}},"type":"cond-expr","locations":[{"start":{"line":26,"column":33},"end":{"line":26,"column":57}},{"start":{"line":26,"column":60},"end":{"line":26,"column":73}}],"line":26},"3":{"loc":{"start":{"line":32,"column":22},"end":{"line":32,"column":54}},"type":"cond-expr","locations":[{"start":{"line":32,"column":36},"end":{"line":32,"column":42}},{"start":{"line":32,"column":45},"end":{"line":32,"column":54}}],"line":32},"4":{"loc":{"start":{"line":39,"column":10},"end":{"line":39,"column":60}},"type":"cond-expr","locations":[{"start":{"line":39,"column":24},"end":{"line":39,"column":48}},{"start":{"line":39,"column":51},"end":{"line":39,"column":60}}],"line":39}},"s":{"0":8,"1":8,"2":1,"3":0,"4":9,"5":9},"f":{"0":8,"1":1,"2":0},"b":{"0":[8,0],"1":[0,8],"2":[0,1],"3":[0,8],"4":[0,8]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"de13ec0aa03f3c9b4a0470ea03f72a2868744a29"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioField.stories.js","statementMap":{"0":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"1":{"start":{"line":18,"column":17},"end":{"line":18,"column":51}},"2":{"start":{"line":18,"column":27},"end":{"line":18,"column":51}},"3":{"start":{"line":20,"column":25},"end":{"line":20,"column":42}},"4":{"start":{"line":21,"column":0},"end":{"line":27,"column":2}},"5":{"start":{"line":29,"column":23},"end":{"line":29,"column":40}},"6":{"start":{"line":30,"column":0},"end":{"line":37,"column":2}},"7":{"start":{"line":39,"column":28},"end":{"line":39,"column":45}},"8":{"start":{"line":40,"column":0},"end":{"line":47,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":17},"end":{"line":18,"column":18}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":51}},"line":18}},"branchMap":{},"s":{"0":0,"1":1,"2":4,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1},"f":{"0":0,"1":4},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"40c839f92ae3fa3f0196f0c858f0787e214298cc"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SearchBar.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SearchBar.js","statementMap":{"0":{"start":{"line":7,"column":2},"end":{"line":30,"column":4}},"1":{"start":{"line":33,"column":0},"end":{"line":53,"column":2}}},"fnMap":{"0":{"name":"SearchBar","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":33},"end":{"line":31,"column":1}},"line":6}},"branchMap":{},"s":{"0":2,"1":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1c7b11853c0895522d3205862f5f974abf434d1a"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SearchBar.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SearchBar.stories.js","statementMap":{"0":{"start":{"line":8,"column":17},"end":{"line":8,"column":50}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":50}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":14,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":50}},"line":8}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b14522770b9d5ffeedf778c1cb463c0259148758"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SelectField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SelectField.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":40}},"1":{"start":{"line":8,"column":28},"end":{"line":12,"column":8}},"2":{"start":{"line":14,"column":2},"end":{"line":19,"column":3}},"3":{"start":{"line":15,"column":4},"end":{"line":18,"column":7}},"4":{"start":{"line":16,"column":21},"end":{"line":16,"column":44}},"5":{"start":{"line":17,"column":6},"end":{"line":17,"column":74}},"6":{"start":{"line":21,"column":2},"end":{"line":81,"column":4}},"7":{"start":{"line":49,"column":25},"end":{"line":49,"column":62}},"8":{"start":{"line":61,"column":10},"end":{"line":65,"column":12}},"9":{"start":{"line":84,"column":0},"end":{"line":86,"column":2}},"10":{"start":{"line":88,"column":0},"end":{"line":166,"column":2}}},"fnMap":{"0":{"name":"SelectField","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":27}},"loc":{"start":{"line":5,"column":35},"end":{"line":82,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":15,"column":23},"end":{"line":15,"column":24}},"loc":{"start":{"line":15,"column":39},"end":{"line":18,"column":5}},"line":15},"2":{"name":"(anonymous_2)","decl":{"start":{"line":49,"column":18},"end":{"line":49,"column":19}},"loc":{"start":{"line":49,"column":25},"end":{"line":49,"column":62}},"line":49},"3":{"name":"(anonymous_3)","decl":{"start":{"line":60,"column":27},"end":{"line":60,"column":28}},"loc":{"start":{"line":60,"column":52},"end":{"line":66,"column":9}},"line":60}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":28},"end":{"line":12,"column":8}},"type":"cond-expr","locations":[{"start":{"line":9,"column":6},"end":{"line":11,"column":7}},{"start":{"line":12,"column":6},"end":{"line":12,"column":8}}],"line":8},"1":{"loc":{"start":{"line":14,"column":2},"end":{"line":19,"column":3}},"type":"if","locations":[{"start":{"line":14,"column":2},"end":{"line":19,"column":3}},{"start":{},"end":{}}],"line":14},"2":{"loc":{"start":{"line":24,"column":8},"end":{"line":24,"column":60}},"type":"cond-expr","locations":[{"start":{"line":24,"column":26},"end":{"line":24,"column":47}},{"start":{"line":24,"column":50},"end":{"line":24,"column":60}}],"line":24},"3":{"loc":{"start":{"line":29,"column":10},"end":{"line":29,"column":44}},"type":"cond-expr","locations":[{"start":{"line":29,"column":28},"end":{"line":29,"column":39}},{"start":{"line":29,"column":42},"end":{"line":29,"column":44}}],"line":29},"4":{"loc":{"start":{"line":33,"column":9},"end":{"line":37,"column":21}},"type":"cond-expr","locations":[{"start":{"line":34,"column":10},"end":{"line":36,"column":14}},{"start":{"line":37,"column":12},"end":{"line":37,"column":21}}],"line":33},"5":{"loc":{"start":{"line":40,"column":7},"end":{"line":40,"column":69}},"type":"cond-expr","locations":[{"start":{"line":40,"column":21},"end":{"line":40,"column":57}},{"start":{"line":40,"column":60},"end":{"line":40,"column":69}}],"line":40},"6":{"loc":{"start":{"line":43,"column":10},"end":{"line":43,"column":66}},"type":"cond-expr","locations":[{"start":{"line":43,"column":24},"end":{"line":43,"column":49}},{"start":{"line":43,"column":52},"end":{"line":43,"column":66}}],"line":43},"7":{"loc":{"start":{"line":48,"column":22},"end":{"line":48,"column":54}},"type":"cond-expr","locations":[{"start":{"line":48,"column":36},"end":{"line":48,"column":42}},{"start":{"line":48,"column":45},"end":{"line":48,"column":54}}],"line":48},"8":{"loc":{"start":{"line":67,"column":9},"end":{"line":78,"column":9}},"type":"cond-expr","locations":[{"start":{"line":68,"column":10},"end":{"line":75,"column":19}},{"start":{"line":77,"column":10},"end":{"line":77,"column":12}}],"line":67}},"s":{"0":2,"1":2,"2":2,"3":2,"4":6,"5":6,"6":2,"7":0,"8":8,"9":1,"10":1},"f":{"0":2,"1":6,"2":0,"3":8},"b":{"0":[0,2],"1":[2,0],"2":[0,2],"3":[0,2],"4":[0,2],"5":[0,2],"6":[0,2],"7":[0,2],"8":[0,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4dc778ca1dfa1c0d7baf591a568921dc91b2a23d"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SelectField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SelectField.stories.js","statementMap":{"0":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"1":{"start":{"line":18,"column":17},"end":{"line":18,"column":52}},"2":{"start":{"line":18,"column":27},"end":{"line":18,"column":52}},"3":{"start":{"line":20,"column":23},"end":{"line":20,"column":40}},"4":{"start":{"line":21,"column":0},"end":{"line":49,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":17},"end":{"line":18,"column":18}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":52}},"line":18}},"branchMap":{},"s":{"0":0,"1":1,"2":2,"3":1,"4":1},"f":{"0":0,"1":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"060108a0034eb21826fa30a6ad9279201fe4fddc"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TableOfContents.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TableOfContents.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":22,"column":4}},"1":{"start":{"line":10,"column":12},"end":{"line":17,"column":17}},"2":{"start":{"line":25,"column":0},"end":{"line":34,"column":2}}},"fnMap":{"0":{"name":"TableOfContents","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":31}},"loc":{"start":{"line":3,"column":39},"end":{"line":23,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":30},"end":{"line":9,"column":31}},"loc":{"start":{"line":10,"column":12},"end":{"line":17,"column":17}},"line":10}},"branchMap":{},"s":{"0":2,"1":2,"2":1},"f":{"0":2,"1":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"68a381a6ebc5f43ebf320ffdab11375c92ed4354"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TableOfContents.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TableOfContents.stories.js","statementMap":{"0":{"start":{"line":8,"column":17},"end":{"line":8,"column":56}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":56}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":15,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":56}},"line":8}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9b5f5e62a68e6c5d315200f938d93414f7e6477d"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TextField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TextField.js","statementMap":{"0":{"start":{"line":9,"column":16},"end":{"line":9,"column":40}},"1":{"start":{"line":11,"column":28},"end":{"line":15,"column":8}},"2":{"start":{"line":16,"column":2},"end":{"line":68,"column":4}},"3":{"start":{"line":61,"column":25},"end":{"line":61,"column":62}},"4":{"start":{"line":71,"column":0},"end":{"line":74,"column":2}},"5":{"start":{"line":76,"column":0},"end":{"line":176,"column":2}}},"fnMap":{"0":{"name":"TextField","decl":{"start":{"line":8,"column":16},"end":{"line":8,"column":25}},"loc":{"start":{"line":8,"column":33},"end":{"line":69,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":61,"column":18},"end":{"line":61,"column":19}},"loc":{"start":{"line":61,"column":25},"end":{"line":61,"column":62}},"line":61}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":28},"end":{"line":15,"column":8}},"type":"cond-expr","locations":[{"start":{"line":12,"column":6},"end":{"line":14,"column":7}},{"start":{"line":15,"column":6},"end":{"line":15,"column":8}}],"line":11},"1":{"loc":{"start":{"line":19,"column":8},"end":{"line":19,"column":60}},"type":"cond-expr","locations":[{"start":{"line":19,"column":26},"end":{"line":19,"column":47}},{"start":{"line":19,"column":50},"end":{"line":19,"column":60}}],"line":19},"2":{"loc":{"start":{"line":24,"column":10},"end":{"line":24,"column":44}},"type":"cond-expr","locations":[{"start":{"line":24,"column":28},"end":{"line":24,"column":39}},{"start":{"line":24,"column":42},"end":{"line":24,"column":44}}],"line":24},"3":{"loc":{"start":{"line":28,"column":9},"end":{"line":32,"column":21}},"type":"cond-expr","locations":[{"start":{"line":29,"column":10},"end":{"line":31,"column":14}},{"start":{"line":32,"column":12},"end":{"line":32,"column":21}}],"line":28},"4":{"loc":{"start":{"line":35,"column":7},"end":{"line":44,"column":7}},"type":"cond-expr","locations":[{"start":{"line":36,"column":8},"end":{"line":41,"column":12}},{"start":{"line":43,"column":8},"end":{"line":43,"column":10}}],"line":35},"5":{"loc":{"start":{"line":46,"column":7},"end":{"line":46,"column":69}},"type":"cond-expr","locations":[{"start":{"line":46,"column":21},"end":{"line":46,"column":57}},{"start":{"line":46,"column":60},"end":{"line":46,"column":69}}],"line":46},"6":{"loc":{"start":{"line":49,"column":10},"end":{"line":49,"column":66}},"type":"cond-expr","locations":[{"start":{"line":49,"column":24},"end":{"line":49,"column":49}},{"start":{"line":49,"column":52},"end":{"line":49,"column":66}}],"line":49},"7":{"loc":{"start":{"line":50,"column":12},"end":{"line":50,"column":42}},"type":"cond-expr","locations":[{"start":{"line":50,"column":28},"end":{"line":50,"column":37}},{"start":{"line":50,"column":40},"end":{"line":50,"column":42}}],"line":50},"8":{"loc":{"start":{"line":60,"column":22},"end":{"line":60,"column":54}},"type":"cond-expr","locations":[{"start":{"line":60,"column":36},"end":{"line":60,"column":42}},{"start":{"line":60,"column":45},"end":{"line":60,"column":54}}],"line":60}},"s":{"0":6,"1":6,"2":6,"3":2,"4":8,"5":8},"f":{"0":6,"1":2},"b":{"0":[3,3],"1":[0,6],"2":[1,5],"3":[0,6],"4":[0,6],"5":[0,6],"6":[0,6],"7":[0,6],"8":[0,6]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1a8f30eccaa3fc9476a969a54bfed456c34118a9"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TextField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TextField.stories.js","statementMap":{"0":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"1":{"start":{"line":18,"column":17},"end":{"line":18,"column":50}},"2":{"start":{"line":18,"column":27},"end":{"line":18,"column":50}},"3":{"start":{"line":20,"column":23},"end":{"line":20,"column":40}},"4":{"start":{"line":21,"column":0},"end":{"line":27,"column":2}},"5":{"start":{"line":29,"column":28},"end":{"line":29,"column":45}},"6":{"start":{"line":30,"column":0},"end":{"line":37,"column":2}},"7":{"start":{"line":39,"column":25},"end":{"line":39,"column":42}},"8":{"start":{"line":40,"column":0},"end":{"line":48,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":17},"end":{"line":18,"column":18}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":50}},"line":18}},"branchMap":{},"s":{"0":0,"1":1,"2":4,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1},"f":{"0":0,"1":4},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"12a7fb839353e64f3383019a4f7a402276bee374"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CallToAction.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CallToAction.js","statementMap":{"0":{"start":{"line":10,"column":16},"end":{"line":10,"column":40}},"1":{"start":{"line":11,"column":2},"end":{"line":78,"column":4}},"2":{"start":{"line":81,"column":0},"end":{"line":120,"column":2}}},"fnMap":{"0":{"name":"CallToAction","decl":{"start":{"line":9,"column":16},"end":{"line":9,"column":28}},"loc":{"start":{"line":9,"column":36},"end":{"line":79,"column":1}},"line":9}},"branchMap":{"0":{"loc":{"start":{"line":29,"column":15},"end":{"line":43,"column":15}},"type":"cond-expr","locations":[{"start":{"line":30,"column":16},"end":{"line":37,"column":22}},{"start":{"line":39,"column":16},"end":{"line":42,"column":18}}],"line":29},"1":{"loc":{"start":{"line":53,"column":22},"end":{"line":59,"column":35}},"type":"cond-expr","locations":[{"start":{"line":54,"column":24},"end":{"line":58,"column":26}},{"start":{"line":59,"column":26},"end":{"line":59,"column":35}}],"line":53},"2":{"loc":{"start":{"line":61,"column":29},"end":{"line":61,"column":77}},"type":"cond-expr","locations":[{"start":{"line":61,"column":52},"end":{"line":61,"column":65}},{"start":{"line":61,"column":68},"end":{"line":61,"column":77}}],"line":61},"3":{"loc":{"start":{"line":65,"column":17},"end":{"line":71,"column":17}},"type":"binary-expr","locations":[{"start":{"line":65,"column":17},"end":{"line":65,"column":38}},{"start":{"line":66,"column":18},"end":{"line":70,"column":25}}],"line":65}},"s":{"0":3,"1":3,"2":1},"f":{"0":3},"b":{"0":[2,1],"1":[0,3],"2":[0,3],"3":[3,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"701b2d8f9c3aaea66bfec407c38907a7a12016bc"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CallToAction.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CallToAction.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":53}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":53}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":25},"end":{"line":12,"column":42}},"4":{"start":{"line":13,"column":0},"end":{"line":18,"column":2}},"5":{"start":{"line":20,"column":0},"end":{"line":25,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":53}},"line":9}},"branchMap":{},"s":{"0":1,"1":3,"2":1,"3":1,"4":1,"5":1},"f":{"0":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c1699a0be85431a85e768f472a24920d5138096d"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Card.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Card.js","statementMap":{"0":{"start":{"line":10,"column":20},"end":{"line":94,"column":1}},"1":{"start":{"line":11,"column":21},"end":{"line":15,"column":3}},"2":{"start":{"line":17,"column":2},"end":{"line":93,"column":4}},"3":{"start":{"line":96,"column":0},"end":{"line":156,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":20},"end":{"line":10,"column":21}},"loc":{"start":{"line":10,"column":31},"end":{"line":94,"column":1}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":9},"end":{"line":36,"column":9}},"type":"cond-expr","locations":[{"start":{"line":27,"column":10},"end":{"line":33,"column":16}},{"start":{"line":35,"column":10},"end":{"line":35,"column":12}}],"line":26},"1":{"loc":{"start":{"line":40,"column":13},"end":{"line":50,"column":13}},"type":"cond-expr","locations":[{"start":{"line":41,"column":14},"end":{"line":47,"column":15}},{"start":{"line":49,"column":14},"end":{"line":49,"column":16}}],"line":40},"2":{"loc":{"start":{"line":41,"column":14},"end":{"line":47,"column":15}},"type":"cond-expr","locations":[{"start":{"line":42,"column":16},"end":{"line":44,"column":22}},{"start":{"line":46,"column":16},"end":{"line":46,"column":18}}],"line":41},"3":{"loc":{"start":{"line":52,"column":11},"end":{"line":68,"column":11}},"type":"cond-expr","locations":[{"start":{"line":53,"column":12},"end":{"line":65,"column":19}},{"start":{"line":67,"column":12},"end":{"line":67,"column":14}}],"line":52},"4":{"loc":{"start":{"line":56,"column":17},"end":{"line":56,"column":59}},"type":"binary-expr","locations":[{"start":{"line":56,"column":17},"end":{"line":56,"column":38}},{"start":{"line":56,"column":42},"end":{"line":56,"column":59}}],"line":56},"5":{"loc":{"start":{"line":60,"column":17},"end":{"line":60,"column":59}},"type":"binary-expr","locations":[{"start":{"line":60,"column":17},"end":{"line":60,"column":38}},{"start":{"line":60,"column":42},"end":{"line":60,"column":59}}],"line":60},"6":{"loc":{"start":{"line":70,"column":9},"end":{"line":76,"column":9}},"type":"cond-expr","locations":[{"start":{"line":71,"column":10},"end":{"line":73,"column":14}},{"start":{"line":75,"column":10},"end":{"line":75,"column":12}}],"line":70},"7":{"loc":{"start":{"line":80,"column":9},"end":{"line":90,"column":9}},"type":"cond-expr","locations":[{"start":{"line":81,"column":10},"end":{"line":87,"column":12}},{"start":{"line":89,"column":10},"end":{"line":89,"column":12}}],"line":80}},"s":{"0":3,"1":5,"2":5,"3":3},"f":{"0":5},"b":{"0":[2,3],"1":[0,5],"2":[0,0],"3":[2,3],"4":[2,1],"5":[2,1],"6":[0,5],"7":[0,5]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1116dcda890e71f0000776294615ecfd8eaaf1b8"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Card.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Card.stories.js","statementMap":{"0":{"start":{"line":10,"column":17},"end":{"line":10,"column":45}},"1":{"start":{"line":10,"column":27},"end":{"line":10,"column":45}},"2":{"start":{"line":12,"column":23},"end":{"line":12,"column":40}},"3":{"start":{"line":13,"column":23},"end":{"line":13,"column":40}},"4":{"start":{"line":14,"column":25},"end":{"line":14,"column":42}},"5":{"start":{"line":15,"column":24},"end":{"line":15,"column":41}},"6":{"start":{"line":16,"column":26},"end":{"line":16,"column":43}},"7":{"start":{"line":18,"column":0},"end":{"line":24,"column":2}},"8":{"start":{"line":26,"column":0},"end":{"line":33,"column":2}},"9":{"start":{"line":35,"column":0},"end":{"line":42,"column":2}},"10":{"start":{"line":44,"column":0},"end":{"line":50,"column":2}},"11":{"start":{"line":52,"column":0},"end":{"line":59,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":17},"end":{"line":10,"column":18}},"loc":{"start":{"line":10,"column":27},"end":{"line":10,"column":45}},"line":10}},"branchMap":{},"s":{"0":1,"1":3,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1},"f":{"0":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2e2da0fb3a6abb851564ef1a45a237bf31baebf8"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CopyToClipboard.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CopyToClipboard.js","statementMap":{"0":{"start":{"line":6,"column":28},"end":{"line":10,"column":8}},"1":{"start":{"line":11,"column":2},"end":{"line":36,"column":4}},"2":{"start":{"line":20,"column":25},"end":{"line":20,"column":62}},"3":{"start":{"line":39,"column":0},"end":{"line":42,"column":2}},"4":{"start":{"line":44,"column":0},"end":{"line":136,"column":2}}},"fnMap":{"0":{"name":"CopyToClipboard","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":31}},"loc":{"start":{"line":5,"column":39},"end":{"line":37,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":18},"end":{"line":20,"column":19}},"loc":{"start":{"line":20,"column":25},"end":{"line":20,"column":62}},"line":20}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":28},"end":{"line":10,"column":8}},"type":"cond-expr","locations":[{"start":{"line":7,"column":6},"end":{"line":9,"column":7}},{"start":{"line":10,"column":6},"end":{"line":10,"column":8}}],"line":6}},"s":{"0":4,"1":4,"2":1,"3":2,"4":2},"f":{"0":4,"1":1},"b":{"0":[4,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"bc0835bff11bd3549e57ce3e31aa35254945bcef"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CopyToClipboard.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CopyToClipboard.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":56}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":56}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":22,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":56}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3f25d214d88bdfd33845b3eb47504df5a4cace87"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Details.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Details.js","statementMap":{"0":{"start":{"line":7,"column":2},"end":{"line":16,"column":4}},"1":{"start":{"line":19,"column":0},"end":{"line":44,"column":2}}},"fnMap":{"0":{"name":"Details","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":23}},"loc":{"start":{"line":6,"column":31},"end":{"line":17,"column":1}},"line":6}},"branchMap":{},"s":{"0":22,"1":7},"f":{"0":22},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b7785466445b9cf9d425d3edb22f24479f342d90"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Details.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Details.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":48}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":48}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":17,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":48}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d9b80512d9456e87f718ae7bea687ae8676a0f0f"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/ErrorBox.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/ErrorBox.js","statementMap":{"0":{"start":{"line":8,"column":2},"end":{"line":40,"column":4}},"1":{"start":{"line":24,"column":10},"end":{"line":36,"column":12}},"2":{"start":{"line":29,"column":31},"end":{"line":29,"column":48}},"3":{"start":{"line":43,"column":0},"end":{"line":45,"column":2}},"4":{"start":{"line":47,"column":0},"end":{"line":69,"column":2}}},"fnMap":{"0":{"name":"ErrorBox","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":24}},"loc":{"start":{"line":7,"column":32},"end":{"line":41,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":26},"end":{"line":23,"column":27}},"loc":{"start":{"line":23,"column":44},"end":{"line":37,"column":9}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":25},"end":{"line":29,"column":26}},"loc":{"start":{"line":29,"column":31},"end":{"line":29,"column":48}},"line":29}},"branchMap":{},"s":{"0":3,"1":9,"2":1,"3":1,"4":1},"f":{"0":3,"1":9,"2":1},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"68c79e4beeff3c91f01aff07e957d98f66d347c7"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/ErrorBox.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/ErrorBox.stories.js","statementMap":{"0":{"start":{"line":9,"column":6},"end":{"line":16,"column":12}},"1":{"start":{"line":21,"column":17},"end":{"line":21,"column":49}},"2":{"start":{"line":21,"column":27},"end":{"line":21,"column":49}},"3":{"start":{"line":23,"column":23},"end":{"line":23,"column":40}},"4":{"start":{"line":25,"column":0},"end":{"line":41,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":16,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":17},"end":{"line":21,"column":18}},"loc":{"start":{"line":21,"column":27},"end":{"line":21,"column":49}},"line":21}},"branchMap":{},"s":{"0":0,"1":1,"2":3,"3":1,"4":1},"f":{"0":0,"1":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a226db6b059163ad7eaef7f35808bf4e70453faf"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/FeedbackWidget.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/FeedbackWidget.js","statementMap":{"0":{"start":{"line":15,"column":30},"end":{"line":298,"column":1}},"1":{"start":{"line":21,"column":36},"end":{"line":21,"column":51}},"2":{"start":{"line":22,"column":44},"end":{"line":22,"column":59}},"3":{"start":{"line":23,"column":16},"end":{"line":23,"column":40}},"4":{"start":{"line":24,"column":34},"end":{"line":24,"column":65}},"5":{"start":{"line":25,"column":16},"end":{"line":25,"column":69}},"6":{"start":{"line":26,"column":28},"end":{"line":26,"column":42}},"7":{"start":{"line":27,"column":18},"end":{"line":27,"column":22}},"8":{"start":{"line":29,"column":2},"end":{"line":29,"column":27}},"9":{"start":{"line":31,"column":2},"end":{"line":36,"column":21}},"10":{"start":{"line":32,"column":4},"end":{"line":35,"column":5}},"11":{"start":{"line":33,"column":6},"end":{"line":33,"column":27}},"12":{"start":{"line":34,"column":6},"end":{"line":34,"column":22}},"13":{"start":{"line":39,"column":21},"end":{"line":55,"column":4}},"14":{"start":{"line":43,"column":8},"end":{"line":52,"column":11}},"15":{"start":{"line":44,"column":10},"end":{"line":51,"column":11}},"16":{"start":{"line":46,"column":14},"end":{"line":46,"column":52}},"17":{"start":{"line":47,"column":14},"end":{"line":47,"column":20}},"18":{"start":{"line":49,"column":14},"end":{"line":49,"column":52}},"19":{"start":{"line":50,"column":14},"end":{"line":50,"column":20}},"20":{"start":{"line":53,"column":8},"end":{"line":53,"column":22}},"21":{"start":{"line":58,"column":4},"end":{"line":58,"column":54}},"22":{"start":{"line":61,"column":34},"end":{"line":61,"column":46}},"23":{"start":{"line":62,"column":44},"end":{"line":62,"column":56}},"24":{"start":{"line":63,"column":25},"end":{"line":69,"column":4}},"25":{"start":{"line":71,"column":24},"end":{"line":119,"column":3}},"26":{"start":{"line":73,"column":4},"end":{"line":73,"column":23}},"27":{"start":{"line":75,"column":4},"end":{"line":75,"column":31}},"28":{"start":{"line":77,"column":21},"end":{"line":77,"column":33}},"29":{"start":{"line":79,"column":26},"end":{"line":79,"column":58}},"30":{"start":{"line":81,"column":4},"end":{"line":85,"column":6}},"31":{"start":{"line":88,"column":22},"end":{"line":91,"column":6}},"32":{"start":{"line":92,"column":18},"end":{"line":92,"column":37}},"33":{"start":{"line":94,"column":4},"end":{"line":118,"column":5}},"34":{"start":{"line":96,"column":23},"end":{"line":102,"column":8}},"35":{"start":{"line":105,"column":6},"end":{"line":111,"column":7}},"36":{"start":{"line":106,"column":8},"end":{"line":106,"column":49}},"37":{"start":{"line":107,"column":8},"end":{"line":107,"column":24}},"38":{"start":{"line":108,"column":8},"end":{"line":108,"column":23}},"39":{"start":{"line":110,"column":8},"end":{"line":110,"column":46}},"40":{"start":{"line":113,"column":6},"end":{"line":113,"column":25}},"41":{"start":{"line":114,"column":6},"end":{"line":114,"column":30}},"42":{"start":{"line":115,"column":6},"end":{"line":115,"column":28}},"43":{"start":{"line":117,"column":6},"end":{"line":117,"column":38}},"44":{"start":{"line":121,"column":2},"end":{"line":297,"column":4}},"45":{"start":{"line":176,"column":43},"end":{"line":176,"column":65}},"46":{"start":{"line":202,"column":22},"end":{"line":202,"column":35}},"47":{"start":{"line":203,"column":22},"end":{"line":203,"column":37}},"48":{"start":{"line":272,"column":37},"end":{"line":272,"column":71}},"49":{"start":{"line":274,"column":22},"end":{"line":274,"column":72}},"50":{"start":{"line":300,"column":0},"end":{"line":305,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":15,"column":30},"end":{"line":15,"column":31}},"loc":{"start":{"line":20,"column":6},"end":{"line":298,"column":1}},"line":20},"1":{"name":"(anonymous_1)","decl":{"start":{"line":31,"column":12},"end":{"line":31,"column":13}},"loc":{"start":{"line":31,"column":18},"end":{"line":36,"column":3}},"line":31},"2":{"name":"(anonymous_2)","decl":{"start":{"line":42,"column":13},"end":{"line":42,"column":14}},"loc":{"start":{"line":42,"column":25},"end":{"line":54,"column":7}},"line":42},"3":{"name":"(anonymous_3)","decl":{"start":{"line":43,"column":23},"end":{"line":43,"column":24}},"loc":{"start":{"line":43,"column":34},"end":{"line":52,"column":9}},"line":43},"4":{"name":"setFocusAfterSubmit","decl":{"start":{"line":57,"column":11},"end":{"line":57,"column":30}},"loc":{"start":{"line":57,"column":33},"end":{"line":59,"column":3}},"line":57},"5":{"name":"(anonymous_5)","decl":{"start":{"line":71,"column":24},"end":{"line":71,"column":25}},"loc":{"start":{"line":71,"column":37},"end":{"line":119,"column":3}},"line":71},"6":{"name":"(anonymous_6)","decl":{"start":{"line":176,"column":37},"end":{"line":176,"column":38}},"loc":{"start":{"line":176,"column":43},"end":{"line":176,"column":65}},"line":176},"7":{"name":"(anonymous_7)","decl":{"start":{"line":201,"column":29},"end":{"line":201,"column":30}},"loc":{"start":{"line":201,"column":35},"end":{"line":204,"column":21}},"line":201},"8":{"name":"(anonymous_8)","decl":{"start":{"line":272,"column":30},"end":{"line":272,"column":31}},"loc":{"start":{"line":272,"column":37},"end":{"line":272,"column":71}},"line":272},"9":{"name":"(anonymous_9)","decl":{"start":{"line":273,"column":29},"end":{"line":273,"column":30}},"loc":{"start":{"line":274,"column":22},"end":{"line":274,"column":72}},"line":274}},"branchMap":{"0":{"loc":{"start":{"line":32,"column":4},"end":{"line":35,"column":5}},"type":"if","locations":[{"start":{"line":32,"column":4},"end":{"line":35,"column":5}},{"start":{},"end":{}}],"line":32},"1":{"loc":{"start":{"line":44,"column":10},"end":{"line":51,"column":11}},"type":"switch","locations":[{"start":{"line":45,"column":12},"end":{"line":47,"column":20}},{"start":{"line":48,"column":12},"end":{"line":50,"column":20}}],"line":44},"2":{"loc":{"start":{"line":94,"column":4},"end":{"line":118,"column":5}},"type":"if","locations":[{"start":{"line":94,"column":4},"end":{"line":118,"column":5}},{"start":{"line":116,"column":11},"end":{"line":118,"column":5}}],"line":94},"3":{"loc":{"start":{"line":105,"column":6},"end":{"line":111,"column":7}},"type":"if","locations":[{"start":{"line":105,"column":6},"end":{"line":111,"column":7}},{"start":{"line":109,"column":13},"end":{"line":111,"column":7}}],"line":105},"4":{"loc":{"start":{"line":105,"column":10},"end":{"line":105,"column":60}},"type":"binary-expr","locations":[{"start":{"line":105,"column":10},"end":{"line":105,"column":33}},{"start":{"line":105,"column":37},"end":{"line":105,"column":60}}],"line":105},"5":{"loc":{"start":{"line":123,"column":7},"end":{"line":295,"column":7}},"type":"cond-expr","locations":[{"start":{"line":124,"column":8},"end":{"line":292,"column":20}},{"start":{"line":294,"column":8},"end":{"line":294,"column":10}}],"line":123},"6":{"loc":{"start":{"line":138,"column":15},"end":{"line":188,"column":15}},"type":"cond-expr","locations":[{"start":{"line":139,"column":16},"end":{"line":185,"column":22}},{"start":{"line":187,"column":16},"end":{"line":187,"column":18}}],"line":138},"7":{"loc":{"start":{"line":140,"column":19},"end":{"line":184,"column":19}},"type":"cond-expr","locations":[{"start":{"line":141,"column":20},"end":{"line":181,"column":26}},{"start":{"line":183,"column":20},"end":{"line":183,"column":22}}],"line":140},"8":{"loc":{"start":{"line":143,"column":24},"end":{"line":145,"column":45}},"type":"cond-expr","locations":[{"start":{"line":144,"column":28},"end":{"line":144,"column":62}},{"start":{"line":145,"column":28},"end":{"line":145,"column":45}}],"line":143},"9":{"loc":{"start":{"line":151,"column":27},"end":{"line":163,"column":27}},"type":"cond-expr","locations":[{"start":{"line":152,"column":28},"end":{"line":160,"column":30}},{"start":{"line":162,"column":28},"end":{"line":162,"column":30}}],"line":151},"10":{"loc":{"start":{"line":256,"column":19},"end":{"line":261,"column":31}},"type":"cond-expr","locations":[{"start":{"line":257,"column":20},"end":{"line":260,"column":22}},{"start":{"line":261,"column":22},"end":{"line":261,"column":31}}],"line":256}},"s":{"0":5,"1":10,"2":10,"3":10,"4":10,"5":10,"6":10,"7":10,"8":10,"9":10,"10":7,"11":2,"12":2,"13":10,"14":1,"15":1,"16":0,"17":0,"18":1,"19":1,"20":1,"21":0,"22":10,"23":10,"24":10,"25":10,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":1,"44":10,"45":0,"46":0,"47":0,"48":0,"49":0,"50":5},"f":{"0":10,"1":7,"2":1,"3":1,"4":0,"5":1,"6":0,"7":0,"8":0,"9":0},"b":{"0":[2,5],"1":[0,1],"2":[0,1],"3":[0,0],"4":[0,0],"5":[8,2],"6":[0,8],"7":[0,0],"8":[0,0],"9":[0,0],"10":[2,6]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7c9bbc108b79ed0c1303fb4cb1f591b77f28c48e"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/FeedbackWidget.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/FeedbackWidget.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":55}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":55}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":15,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":55}},"line":9}},"branchMap":{},"s":{"0":1,"1":4,"2":1,"3":1},"f":{"0":4},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6b6f2eadbe1fec75f27756a267a16670b063bffc"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Filter.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Filter.js","statementMap":{"0":{"start":{"line":8,"column":2},"end":{"line":37,"column":4}},"1":{"start":{"line":20,"column":12},"end":{"line":32,"column":14}},"2":{"start":{"line":40,"column":0},"end":{"line":71,"column":2}}},"fnMap":{"0":{"name":"Filter","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":22}},"loc":{"start":{"line":7,"column":30},"end":{"line":38,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":19,"column":29},"end":{"line":19,"column":30}},"loc":{"start":{"line":20,"column":12},"end":{"line":32,"column":14}},"line":20}},"branchMap":{},"s":{"0":3,"1":9,"2":1},"f":{"0":3,"1":9},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"aef3568eb5c66a96c8f276114a7001150da0736f"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Filter.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Filter.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":47}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":47}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":32,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":47}},"line":9}},"branchMap":{},"s":{"0":1,"1":3,"2":1,"3":1},"f":{"0":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c762a8a9368b4123c4a4288b8970dfb2a5c009c8"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/List.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/List.js","statementMap":{"0":{"start":{"line":7,"column":16},"end":{"line":7,"column":18}},"1":{"start":{"line":8,"column":2},"end":{"line":28,"column":4}},"2":{"start":{"line":12,"column":10},"end":{"line":14,"column":207}},"3":{"start":{"line":15,"column":8},"end":{"line":15,"column":41}},"4":{"start":{"line":15,"column":27},"end":{"line":15,"column":41}},"5":{"start":{"line":16,"column":8},"end":{"line":25,"column":10}},"6":{"start":{"line":31,"column":0},"end":{"line":41,"column":2}}},"fnMap":{"0":{"name":"List","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":20}},"loc":{"start":{"line":6,"column":28},"end":{"line":29,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":23},"end":{"line":10,"column":24}},"loc":{"start":{"line":10,"column":38},"end":{"line":26,"column":7}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":8},"end":{"line":15,"column":41}},"type":"if","locations":[{"start":{"line":15,"column":8},"end":{"line":15,"column":41}},{"start":{},"end":{}}],"line":15}},"s":{"0":2,"1":2,"2":8,"3":8,"4":6,"5":8,"6":1},"f":{"0":2,"1":8},"b":{"0":[6,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3cb766608b38c074a7a94543bdfb38ee36403255"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/List.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/List.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":50}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":50}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":15,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":50}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1e7a6692400a128558ca0d2321cca60adec2b65d"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Menu.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Menu.js","statementMap":{"0":{"start":{"line":11,"column":21},"end":{"line":11,"column":32}},"1":{"start":{"line":12,"column":17},"end":{"line":12,"column":28}},"2":{"start":{"line":13,"column":34},"end":{"line":13,"column":49}},"3":{"start":{"line":15,"column":2},"end":{"line":91,"column":4}},"4":{"start":{"line":29,"column":25},"end":{"line":29,"column":47}},"5":{"start":{"line":44,"column":25},"end":{"line":44,"column":47}},"6":{"start":{"line":64,"column":27},"end":{"line":64,"column":47}},"7":{"start":{"line":65,"column":30},"end":{"line":65,"column":56}},"8":{"start":{"line":67,"column":10},"end":{"line":87,"column":12}},"9":{"start":{"line":94,"column":0},"end":{"line":121,"column":2}}},"fnMap":{"0":{"name":"Menu","decl":{"start":{"line":9,"column":16},"end":{"line":9,"column":20}},"loc":{"start":{"line":9,"column":28},"end":{"line":92,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":29,"column":19},"end":{"line":29,"column":20}},"loc":{"start":{"line":29,"column":25},"end":{"line":29,"column":47}},"line":29},"2":{"name":"(anonymous_2)","decl":{"start":{"line":44,"column":19},"end":{"line":44,"column":20}},"loc":{"start":{"line":44,"column":25},"end":{"line":44,"column":47}},"line":44},"3":{"name":"(anonymous_3)","decl":{"start":{"line":63,"column":25},"end":{"line":63,"column":26}},"loc":{"start":{"line":63,"column":40},"end":{"line":88,"column":9}},"line":63}},"branchMap":{"0":{"loc":{"start":{"line":46,"column":12},"end":{"line":46,"column":36}},"type":"cond-expr","locations":[{"start":{"line":46,"column":23},"end":{"line":46,"column":25}},{"start":{"line":46,"column":28},"end":{"line":46,"column":36}}],"line":46},"1":{"loc":{"start":{"line":59,"column":40},"end":{"line":59,"column":64}},"type":"cond-expr","locations":[{"start":{"line":59,"column":51},"end":{"line":59,"column":59}},{"start":{"line":59,"column":62},"end":{"line":59,"column":64}}],"line":59},"2":{"loc":{"start":{"line":72,"column":28},"end":{"line":72,"column":52}},"type":"cond-expr","locations":[{"start":{"line":72,"column":39},"end":{"line":72,"column":45}},{"start":{"line":72,"column":48},"end":{"line":72,"column":52}}],"line":72},"3":{"loc":{"start":{"line":77,"column":18},"end":{"line":81,"column":42}},"type":"cond-expr","locations":[{"start":{"line":78,"column":22},"end":{"line":80,"column":44}},{"start":{"line":81,"column":22},"end":{"line":81,"column":42}}],"line":77},"4":{"loc":{"start":{"line":78,"column":22},"end":{"line":80,"column":44}},"type":"cond-expr","locations":[{"start":{"line":79,"column":24},"end":{"line":79,"column":36}},{"start":{"line":80,"column":24},"end":{"line":80,"column":44}}],"line":78}},"s":{"0":4,"1":4,"2":4,"3":4,"4":1,"5":0,"6":12,"7":12,"8":12,"9":1},"f":{"0":4,"1":1,"2":0,"3":12},"b":{"0":[1,3],"1":[1,3],"2":[0,12],"3":[0,12],"4":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"017be5d76b5cc3d4b08235e441f7893c6fba411a"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Menu.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Menu.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":50}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":50}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":30,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":50}},"line":9}},"branchMap":{},"s":{"0":1,"1":3,"2":1,"3":1},"f":{"0":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"273a087b74d37e318558be5b9103e3bcb24a8728"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalListField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalListField.js","statementMap":{"0":{"start":{"line":10,"column":42},"end":{"line":10,"column":74}},"1":{"start":{"line":11,"column":26},"end":{"line":21,"column":3}},"2":{"start":{"line":12,"column":4},"end":{"line":16,"column":5}},"3":{"start":{"line":13,"column":6},"end":{"line":13,"column":30}},"4":{"start":{"line":15,"column":6},"end":{"line":15,"column":29}},"5":{"start":{"line":18,"column":4},"end":{"line":20,"column":5}},"6":{"start":{"line":19,"column":6},"end":{"line":19,"column":53}},"7":{"start":{"line":22,"column":23},"end":{"line":30,"column":4}},"8":{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},"9":{"start":{"line":24,"column":6},"end":{"line":24,"column":16}},"10":{"start":{"line":26,"column":4},"end":{"line":28,"column":5}},"11":{"start":{"line":27,"column":6},"end":{"line":27,"column":15}},"12":{"start":{"line":29,"column":4},"end":{"line":29,"column":13}},"13":{"start":{"line":31,"column":2},"end":{"line":76,"column":4}},"14":{"start":{"line":79,"column":0},"end":{"line":81,"column":2}},"15":{"start":{"line":83,"column":0},"end":{"line":152,"column":2}}},"fnMap":{"0":{"name":"OptionalListField","decl":{"start":{"line":9,"column":16},"end":{"line":9,"column":33}},"loc":{"start":{"line":9,"column":41},"end":{"line":77,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":26},"end":{"line":11,"column":27}},"loc":{"start":{"line":11,"column":55},"end":{"line":21,"column":3}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":22,"column":48},"end":{"line":22,"column":49}},"loc":{"start":{"line":22,"column":58},"end":{"line":30,"column":3}},"line":22}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":51},"end":{"line":10,"column":73}},"type":"binary-expr","locations":[{"start":{"line":10,"column":51},"end":{"line":10,"column":64}},{"start":{"line":10,"column":68},"end":{"line":10,"column":73}}],"line":10},"1":{"loc":{"start":{"line":12,"column":4},"end":{"line":16,"column":5}},"type":"if","locations":[{"start":{"line":12,"column":4},"end":{"line":16,"column":5}},{"start":{"line":14,"column":11},"end":{"line":16,"column":5}}],"line":12},"2":{"loc":{"start":{"line":18,"column":4},"end":{"line":20,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":20,"column":5}},{"start":{},"end":{}}],"line":18},"3":{"loc":{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},{"start":{},"end":{}}],"line":23},"4":{"loc":{"start":{"line":26,"column":4},"end":{"line":28,"column":5}},"type":"if","locations":[{"start":{"line":26,"column":4},"end":{"line":28,"column":5}},{"start":{},"end":{}}],"line":26},"5":{"loc":{"start":{"line":33,"column":7},"end":{"line":59,"column":7}},"type":"cond-expr","locations":[{"start":{"line":34,"column":8},"end":{"line":45,"column":10}},{"start":{"line":47,"column":8},"end":{"line":58,"column":10}}],"line":33},"6":{"loc":{"start":{"line":60,"column":7},"end":{"line":74,"column":19}},"type":"cond-expr","locations":[{"start":{"line":61,"column":8},"end":{"line":73,"column":19}},{"start":{"line":74,"column":10},"end":{"line":74,"column":19}}],"line":60},"7":{"loc":{"start":{"line":60,"column":7},"end":{"line":60,"column":61}},"type":"binary-expr","locations":[{"start":{"line":60,"column":8},"end":{"line":60,"column":26}},{"start":{"line":60,"column":30},"end":{"line":60,"column":43}},{"start":{"line":60,"column":48},"end":{"line":60,"column":61}}],"line":60},"8":{"loc":{"start":{"line":63,"column":13},"end":{"line":69,"column":13}},"type":"cond-expr","locations":[{"start":{"line":64,"column":14},"end":{"line":66,"column":18}},{"start":{"line":68,"column":14},"end":{"line":68,"column":16}}],"line":63}},"s":{"0":5,"1":5,"2":1,"3":0,"4":1,"5":1,"6":0,"7":5,"8":5,"9":0,"10":5,"11":5,"12":0,"13":5,"14":1,"15":1},"f":{"0":5,"1":1,"2":5},"b":{"0":[5,2],"1":[0,1],"2":[0,1],"3":[0,5],"4":[5,0],"5":[4,1],"6":[4,1],"7":[5,2,4],"8":[0,4]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"20032f32f71d27ef13f957aad41220bdd865b533"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalListField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalListField.stories.js","statementMap":{"0":{"start":{"line":11,"column":6},"end":{"line":15,"column":12}},"1":{"start":{"line":20,"column":17},"end":{"line":20,"column":58}},"2":{"start":{"line":20,"column":27},"end":{"line":20,"column":58}},"3":{"start":{"line":22,"column":24},"end":{"line":22,"column":41}},"4":{"start":{"line":23,"column":0},"end":{"line":46,"column":2}},"5":{"start":{"line":48,"column":33},"end":{"line":48,"column":50}},"6":{"start":{"line":49,"column":0},"end":{"line":74,"column":2}},"7":{"start":{"line":76,"column":34},"end":{"line":76,"column":51}},"8":{"start":{"line":77,"column":0},"end":{"line":102,"column":2}},"9":{"start":{"line":104,"column":21},"end":{"line":104,"column":38}},"10":{"start":{"line":105,"column":0},"end":{"line":131,"column":2}},"11":{"start":{"line":133,"column":28},"end":{"line":133,"column":45}},"12":{"start":{"line":134,"column":0},"end":{"line":159,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":11,"column":6},"end":{"line":15,"column":12}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":17},"end":{"line":20,"column":18}},"loc":{"start":{"line":20,"column":27},"end":{"line":20,"column":58}},"line":20}},"branchMap":{},"s":{"0":0,"1":1,"2":4,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1},"f":{"0":0,"1":4},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"488f3b8e9b9cc8ad570af097ab24034216c0a6ac"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalTextField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalTextField.js","statementMap":{"0":{"start":{"line":13,"column":42},"end":{"line":13,"column":74}},"1":{"start":{"line":14,"column":40},"end":{"line":14,"column":61}},"2":{"start":{"line":15,"column":16},"end":{"line":15,"column":40}},"3":{"start":{"line":16,"column":26},"end":{"line":28,"column":3}},"4":{"start":{"line":17,"column":4},"end":{"line":23,"column":5}},"5":{"start":{"line":18,"column":6},"end":{"line":18,"column":30}},"6":{"start":{"line":19,"column":6},"end":{"line":19,"column":37}},"7":{"start":{"line":21,"column":6},"end":{"line":21,"column":29}},"8":{"start":{"line":22,"column":6},"end":{"line":22,"column":36}},"9":{"start":{"line":25,"column":4},"end":{"line":27,"column":5}},"10":{"start":{"line":26,"column":6},"end":{"line":26,"column":53}},"11":{"start":{"line":29,"column":2},"end":{"line":103,"column":4}},"12":{"start":{"line":106,"column":0},"end":{"line":108,"column":2}},"13":{"start":{"line":110,"column":0},"end":{"line":264,"column":2}}},"fnMap":{"0":{"name":"OptionalTextField","decl":{"start":{"line":12,"column":16},"end":{"line":12,"column":33}},"loc":{"start":{"line":12,"column":41},"end":{"line":104,"column":1}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":26},"end":{"line":16,"column":27}},"loc":{"start":{"line":16,"column":55},"end":{"line":28,"column":3}},"line":16},"2":{"name":"(anonymous_2)","decl":{"start":{"line":76,"column":66},"end":{"line":76,"column":67}},"loc":{"start":{"line":76,"column":72},"end":{"line":76,"column":74}},"line":76},"3":{"name":"(anonymous_3)","decl":{"start":{"line":94,"column":66},"end":{"line":94,"column":67}},"loc":{"start":{"line":94,"column":72},"end":{"line":94,"column":74}},"line":94}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":51},"end":{"line":13,"column":73}},"type":"binary-expr","locations":[{"start":{"line":13,"column":51},"end":{"line":13,"column":64}},{"start":{"line":13,"column":68},"end":{"line":13,"column":73}}],"line":13},"1":{"loc":{"start":{"line":17,"column":4},"end":{"line":23,"column":5}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":23,"column":5}},{"start":{"line":20,"column":11},"end":{"line":23,"column":5}}],"line":17},"2":{"loc":{"start":{"line":25,"column":4},"end":{"line":27,"column":5}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":27,"column":5}},{"start":{},"end":{}}],"line":25},"3":{"loc":{"start":{"line":31,"column":7},"end":{"line":46,"column":7}},"type":"binary-expr","locations":[{"start":{"line":31,"column":7},"end":{"line":31,"column":39}},{"start":{"line":32,"column":8},"end":{"line":45,"column":10}}],"line":31},"4":{"loc":{"start":{"line":47,"column":7},"end":{"line":60,"column":7}},"type":"binary-expr","locations":[{"start":{"line":47,"column":7},"end":{"line":47,"column":41}},{"start":{"line":48,"column":8},"end":{"line":59,"column":10}}],"line":47},"5":{"loc":{"start":{"line":61,"column":7},"end":{"line":101,"column":19}},"type":"cond-expr","locations":[{"start":{"line":62,"column":8},"end":{"line":100,"column":9}},{"start":{"line":101,"column":10},"end":{"line":101,"column":19}}],"line":61},"6":{"loc":{"start":{"line":61,"column":7},"end":{"line":61,"column":61}},"type":"binary-expr","locations":[{"start":{"line":61,"column":8},"end":{"line":61,"column":26}},{"start":{"line":61,"column":30},"end":{"line":61,"column":43}},{"start":{"line":61,"column":48},"end":{"line":61,"column":61}}],"line":61},"7":{"loc":{"start":{"line":62,"column":8},"end":{"line":100,"column":9}},"type":"cond-expr","locations":[{"start":{"line":63,"column":10},"end":{"line":82,"column":12}},{"start":{"line":84,"column":10},"end":{"line":99,"column":12}}],"line":62},"8":{"loc":{"start":{"line":76,"column":14},"end":{"line":76,"column":74}},"type":"cond-expr","locations":[{"start":{"line":76,"column":40},"end":{"line":76,"column":63}},{"start":{"line":76,"column":66},"end":{"line":76,"column":74}}],"line":76},"9":{"loc":{"start":{"line":94,"column":14},"end":{"line":94,"column":74}},"type":"cond-expr","locations":[{"start":{"line":94,"column":40},"end":{"line":94,"column":63}},{"start":{"line":94,"column":66},"end":{"line":94,"column":74}}],"line":94}},"s":{"0":132,"1":132,"2":132,"3":132,"4":3,"5":0,"6":0,"7":3,"8":3,"9":3,"10":0,"11":132,"12":7,"13":7},"f":{"0":132,"1":3,"2":0,"3":0},"b":{"0":[132,131],"1":[0,3],"2":[0,3],"3":[132,131],"4":[132,1],"5":[4,128],"6":[132,131,129],"7":[2,2],"8":[0,2],"9":[0,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8634d2958cbaba034f4412b2fc9922d18709bc78"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalTextField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalTextField.stories.js","statementMap":{"0":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"1":{"start":{"line":18,"column":17},"end":{"line":18,"column":58}},"2":{"start":{"line":18,"column":27},"end":{"line":18,"column":58}},"3":{"start":{"line":20,"column":24},"end":{"line":20,"column":41}},"4":{"start":{"line":21,"column":0},"end":{"line":30,"column":2}},"5":{"start":{"line":32,"column":22},"end":{"line":32,"column":39}},"6":{"start":{"line":33,"column":0},"end":{"line":43,"column":2}},"7":{"start":{"line":45,"column":21},"end":{"line":45,"column":38}},"8":{"start":{"line":46,"column":0},"end":{"line":57,"column":2}},"9":{"start":{"line":59,"column":28},"end":{"line":59,"column":45}},"10":{"start":{"line":60,"column":0},"end":{"line":70,"column":2}},"11":{"start":{"line":72,"column":25},"end":{"line":72,"column":42}},"12":{"start":{"line":73,"column":0},"end":{"line":85,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":17},"end":{"line":18,"column":18}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":58}},"line":18}},"branchMap":{},"s":{"0":0,"1":1,"2":3,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1},"f":{"0":0,"1":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f3e59dbd14560c6a06de307d20ffa1ea90764fb7"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Quote.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Quote.js","statementMap":{"0":{"start":{"line":7,"column":2},"end":{"line":18,"column":4}},"1":{"start":{"line":21,"column":0},"end":{"line":36,"column":2}}},"fnMap":{"0":{"name":"Quote","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":21}},"loc":{"start":{"line":6,"column":29},"end":{"line":19,"column":1}},"line":6}},"branchMap":{},"s":{"0":2,"1":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"914151f048ff6674b34078ad362358f66eaf5bdc"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Quote.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Quote.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":52}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":52}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":16,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":52}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8546b91a33b2b077c74b81930be5d6aa06d8fcf1"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/TextButtonField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/TextButtonField.js","statementMap":{"0":{"start":{"line":10,"column":2},"end":{"line":13,"column":38}},"1":{"start":{"line":11,"column":4},"end":{"line":13,"column":38}},"2":{"start":{"line":15,"column":2},"end":{"line":41,"column":4}},"3":{"start":{"line":44,"column":0},"end":{"line":98,"column":2}}},"fnMap":{"0":{"name":"TextButtonField","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":31}},"loc":{"start":{"line":7,"column":39},"end":{"line":42,"column":1}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":2},"end":{"line":13,"column":38}},"type":"if","locations":[{"start":{"line":10,"column":2},"end":{"line":13,"column":38}},{"start":{},"end":{}}],"line":10},"1":{"loc":{"start":{"line":11,"column":4},"end":{"line":13,"column":37}},"type":"cond-expr","locations":[{"start":{"line":12,"column":9},"end":{"line":12,"column":25}},{"start":{"line":13,"column":9},"end":{"line":13,"column":36}}],"line":11},"2":{"loc":{"start":{"line":17,"column":7},"end":{"line":24,"column":7}},"type":"cond-expr","locations":[{"start":{"line":18,"column":8},"end":{"line":18,"column":63}},{"start":{"line":20,"column":8},"end":{"line":23,"column":10}}],"line":17},"3":{"loc":{"start":{"line":26,"column":7},"end":{"line":39,"column":7}},"type":"cond-expr","locations":[{"start":{"line":27,"column":8},"end":{"line":36,"column":10}},{"start":{"line":38,"column":8},"end":{"line":38,"column":10}}],"line":26}},"s":{"0":6,"1":5,"2":6,"3":1},"f":{"0":6},"b":{"0":[5,1],"1":[2,3],"2":[0,6],"3":[6,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"14bda22fd1f2f14d443929d2c285edd59149910e"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/TextButtonField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/TextButtonField.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":72}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":72}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":25},"end":{"line":12,"column":42}},"4":{"start":{"line":13,"column":24},"end":{"line":13,"column":41}},"5":{"start":{"line":14,"column":22},"end":{"line":14,"column":39}},"6":{"start":{"line":16,"column":0},"end":{"line":22,"column":2}},"7":{"start":{"line":24,"column":0},"end":{"line":29,"column":2}},"8":{"start":{"line":31,"column":0},"end":{"line":37,"column":2}},"9":{"start":{"line":39,"column":0},"end":{"line":45,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":72}},"line":9}},"branchMap":{},"s":{"0":1,"1":6,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1},"f":{"0":6},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f29622407ea811475770188efda9193be04d2174"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Footer.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Footer.js","statementMap":{"0":{"start":{"line":9,"column":2},"end":{"line":86,"column":4}},"1":{"start":{"line":23,"column":14},"end":{"line":32,"column":16}},"2":{"start":{"line":49,"column":16},"end":{"line":66,"column":18}},"3":{"start":{"line":89,"column":0},"end":{"line":118,"column":2}}},"fnMap":{"0":{"name":"Footer","decl":{"start":{"line":8,"column":16},"end":{"line":8,"column":22}},"loc":{"start":{"line":8,"column":30},"end":{"line":87,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":22,"column":38},"end":{"line":22,"column":39}},"loc":{"start":{"line":22,"column":56},"end":{"line":33,"column":13}},"line":22},"2":{"name":"(anonymous_2)","decl":{"start":{"line":48,"column":31},"end":{"line":48,"column":32}},"loc":{"start":{"line":48,"column":49},"end":{"line":67,"column":15}},"line":48}},"branchMap":{"0":{"loc":{"start":{"line":53,"column":22},"end":{"line":55,"column":74}},"type":"cond-expr","locations":[{"start":{"line":54,"column":26},"end":{"line":54,"column":87}},{"start":{"line":55,"column":26},"end":{"line":55,"column":74}}],"line":53}},"s":{"0":1,"1":8,"2":8,"3":1},"f":{"0":1,"1":8,"2":8},"b":{"0":[1,7]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5087a391e8615a1a28515c9eca0aac3a96550549"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Footer.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Footer.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":47}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":47}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":88,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":47}},"line":9}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1},"f":{"0":1},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9a8452c83eb0146eee297096df7518c1081011de"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Layout.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Layout.js","statementMap":{"0":{"start":{"line":14,"column":22},"end":{"line":156,"column":1}},"1":{"start":{"line":27,"column":16},"end":{"line":27,"column":40}},"2":{"start":{"line":28,"column":19},"end":{"line":28,"column":48}},"3":{"start":{"line":29,"column":2},"end":{"line":32,"column":11}},"4":{"start":{"line":34,"column":2},"end":{"line":155,"column":4}},"5":{"start":{"line":158,"column":0},"end":{"line":225,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":14,"column":22},"end":{"line":14,"column":23}},"loc":{"start":{"line":26,"column":6},"end":{"line":156,"column":1}},"line":26}},"branchMap":{"0":{"loc":{"start":{"line":28,"column":19},"end":{"line":28,"column":48}},"type":"cond-expr","locations":[{"start":{"line":28,"column":37},"end":{"line":28,"column":41}},{"start":{"line":28,"column":44},"end":{"line":28,"column":48}}],"line":28},"1":{"loc":{"start":{"line":30,"column":4},"end":{"line":32,"column":10}},"type":"cond-expr","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":28}},{"start":{"line":32,"column":8},"end":{"line":32,"column":10}}],"line":30},"2":{"loc":{"start":{"line":30,"column":4},"end":{"line":30,"column":59}},"type":"binary-expr","locations":[{"start":{"line":30,"column":4},"end":{"line":30,"column":33}},{"start":{"line":30,"column":37},"end":{"line":30,"column":59}}],"line":30},"3":{"loc":{"start":{"line":50,"column":9},"end":{"line":60,"column":9}},"type":"cond-expr","locations":[{"start":{"line":51,"column":10},"end":{"line":57,"column":12}},{"start":{"line":59,"column":10},"end":{"line":59,"column":12}}],"line":50},"4":{"loc":{"start":{"line":72,"column":21},"end":{"line":72,"column":78}},"type":"cond-expr","locations":[{"start":{"line":72,"column":41},"end":{"line":72,"column":58}},{"start":{"line":72,"column":61},"end":{"line":72,"column":78}}],"line":72},"5":{"loc":{"start":{"line":86,"column":15},"end":{"line":86,"column":46}},"type":"cond-expr","locations":[{"start":{"line":86,"column":35},"end":{"line":86,"column":39}},{"start":{"line":86,"column":42},"end":{"line":86,"column":46}}],"line":86},"6":{"loc":{"start":{"line":99,"column":15},"end":{"line":99,"column":57}},"type":"cond-expr","locations":[{"start":{"line":99,"column":35},"end":{"line":99,"column":44}},{"start":{"line":99,"column":47},"end":{"line":99,"column":57}}],"line":99},"7":{"loc":{"start":{"line":112,"column":9},"end":{"line":114,"column":16}},"type":"cond-expr","locations":[{"start":{"line":113,"column":10},"end":{"line":113,"column":66}},{"start":{"line":114,"column":12},"end":{"line":114,"column":16}}],"line":112},"8":{"loc":{"start":{"line":112,"column":9},"end":{"line":112,"column":34}},"type":"binary-expr","locations":[{"start":{"line":112,"column":9},"end":{"line":112,"column":19}},{"start":{"line":112,"column":23},"end":{"line":112,"column":34}}],"line":112}},"s":{"0":3,"1":7,"2":7,"3":7,"4":7,"5":3},"f":{"0":7},"b":{"0":[0,7],"1":[7,0],"2":[7,7],"3":[0,7],"4":[7,0],"5":[7,0],"6":[7,0],"7":[2,5],"8":[7,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"767969a8536c431c743d51af94c87afb24fa4471"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Layout.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Layout.stories.js","statementMap":{"0":{"start":{"line":9,"column":19},"end":{"line":21,"column":1}},"1":{"start":{"line":10,"column":2},"end":{"line":20,"column":4}},"2":{"start":{"line":23,"column":17},"end":{"line":23,"column":68}},"3":{"start":{"line":23,"column":27},"end":{"line":23,"column":68}},"4":{"start":{"line":25,"column":24},"end":{"line":25,"column":41}},"5":{"start":{"line":26,"column":26},"end":{"line":26,"column":43}},"6":{"start":{"line":28,"column":0},"end":{"line":31,"column":2}},"7":{"start":{"line":33,"column":0},"end":{"line":38,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":19},"end":{"line":9,"column":20}},"loc":{"start":{"line":9,"column":25},"end":{"line":21,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":17},"end":{"line":23,"column":18}},"loc":{"start":{"line":23,"column":27},"end":{"line":23,"column":68}},"line":23}},"branchMap":{},"s":{"0":1,"1":7,"2":1,"3":7,"4":1,"5":1,"6":1,"7":1},"f":{"0":7,"1":7},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fa998bebdd094c5292aea015bd36a1110983f7e0"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/PhaseBanner.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/PhaseBanner.js","statementMap":{"0":{"start":{"line":12,"column":27},"end":{"line":110,"column":1}},"1":{"start":{"line":20,"column":42},"end":{"line":20,"column":57}},"2":{"start":{"line":21,"column":16},"end":{"line":21,"column":40}},"3":{"start":{"line":22,"column":17},"end":{"line":22,"column":36}},"4":{"start":{"line":24,"column":2},"end":{"line":32,"column":4}},"5":{"start":{"line":25,"column":4},"end":{"line":29,"column":5}},"6":{"start":{"line":26,"column":6},"end":{"line":26,"column":35}},"7":{"start":{"line":28,"column":6},"end":{"line":28,"column":34}},"8":{"start":{"line":31,"column":4},"end":{"line":31,"column":35}},"9":{"start":{"line":34,"column":2},"end":{"line":109,"column":4}},"10":{"start":{"line":112,"column":0},"end":{"line":133,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":12,"column":27},"end":{"line":12,"column":28}},"loc":{"start":{"line":19,"column":6},"end":{"line":110,"column":1}},"line":19},"1":{"name":"(anonymous_1)","decl":{"start":{"line":24,"column":15},"end":{"line":24,"column":16}},"loc":{"start":{"line":24,"column":28},"end":{"line":32,"column":3}},"line":24}},"branchMap":{"0":{"loc":{"start":{"line":25,"column":4},"end":{"line":29,"column":5}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":29,"column":5}},{"start":{"line":27,"column":11},"end":{"line":29,"column":5}}],"line":25},"1":{"loc":{"start":{"line":40,"column":14},"end":{"line":40,"column":42}},"type":"cond-expr","locations":[{"start":{"line":40,"column":31},"end":{"line":40,"column":37}},{"start":{"line":40,"column":40},"end":{"line":40,"column":42}}],"line":40},"2":{"loc":{"start":{"line":49,"column":13},"end":{"line":60,"column":13}},"type":"cond-expr","locations":[{"start":{"line":50,"column":14},"end":{"line":57,"column":16}},{"start":{"line":59,"column":14},"end":{"line":59,"column":16}}],"line":49},"3":{"loc":{"start":{"line":68,"column":9},"end":{"line":99,"column":9}},"type":"cond-expr","locations":[{"start":{"line":69,"column":10},"end":{"line":96,"column":16}},{"start":{"line":98,"column":10},"end":{"line":98,"column":12}}],"line":68}},"s":{"0":4,"1":3,"2":3,"3":3,"4":3,"5":1,"6":0,"7":1,"8":1,"9":3,"10":4},"f":{"0":3,"1":1},"b":{"0":[0,1],"1":[2,1],"2":[2,1],"3":[2,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2086ab5e8ecf14c039f8553e9d1f861e5ab5ba67"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/PhaseBanner.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/PhaseBanner.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":52}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":52}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":28},"end":{"line":12,"column":45}},"4":{"start":{"line":14,"column":0},"end":{"line":17,"column":2}},"5":{"start":{"line":19,"column":0},"end":{"line":23,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":52}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1,"4":1,"5":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2ad2ba3e09977408647854af514684bc9872812d"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ReportAProblem.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ReportAProblem.js","statementMap":{"0":{"start":{"line":15,"column":36},"end":{"line":15,"column":51}},"1":{"start":{"line":16,"column":22},"end":{"line":16,"column":38}},"2":{"start":{"line":18,"column":44},"end":{"line":18,"column":59}},"3":{"start":{"line":20,"column":24},"end":{"line":96,"column":3}},"4":{"start":{"line":22,"column":27},"end":{"line":22,"column":32}},"5":{"start":{"line":25,"column":24},"end":{"line":25,"column":62}},"6":{"start":{"line":26,"column":4},"end":{"line":32,"column":5}},"7":{"start":{"line":26,"column":21},"end":{"line":26,"column":22}},"8":{"start":{"line":27,"column":6},"end":{"line":31,"column":7}},"9":{"start":{"line":28,"column":8},"end":{"line":30,"column":9}},"10":{"start":{"line":29,"column":10},"end":{"line":29,"column":34}},"11":{"start":{"line":35,"column":4},"end":{"line":35,"column":23}},"12":{"start":{"line":37,"column":21},"end":{"line":37,"column":43}},"13":{"start":{"line":40,"column":4},"end":{"line":43,"column":5}},"14":{"start":{"line":41,"column":28},"end":{"line":41,"column":50}},"15":{"start":{"line":42,"column":6},"end":{"line":42,"column":45}},"16":{"start":{"line":46,"column":23},"end":{"line":46,"column":52}},"17":{"start":{"line":47,"column":20},"end":{"line":47,"column":41}},"18":{"start":{"line":51,"column":4},"end":{"line":71,"column":5}},"19":{"start":{"line":52,"column":6},"end":{"line":60,"column":8}},"20":{"start":{"line":62,"column":6},"end":{"line":70,"column":8}},"21":{"start":{"line":73,"column":4},"end":{"line":75,"column":5}},"22":{"start":{"line":74,"column":6},"end":{"line":74,"column":50}},"23":{"start":{"line":78,"column":4},"end":{"line":89,"column":7}},"24":{"start":{"line":88,"column":6},"end":{"line":88,"column":21}},"25":{"start":{"line":91,"column":4},"end":{"line":93,"column":5}},"26":{"start":{"line":92,"column":6},"end":{"line":92,"column":25}},"27":{"start":{"line":95,"column":4},"end":{"line":95,"column":27}},"28":{"start":{"line":98,"column":2},"end":{"line":370,"column":4}},"29":{"start":{"line":373,"column":0},"end":{"line":378,"column":2}}},"fnMap":{"0":{"name":"ReportAProblem","decl":{"start":{"line":14,"column":16},"end":{"line":14,"column":30}},"loc":{"start":{"line":14,"column":38},"end":{"line":371,"column":1}},"line":14},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":24},"end":{"line":20,"column":25}},"loc":{"start":{"line":20,"column":31},"end":{"line":96,"column":3}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":84,"column":13},"end":{"line":84,"column":14}},"loc":{"start":{"line":84,"column":20},"end":{"line":89,"column":5}},"line":84}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":6},"end":{"line":31,"column":7}},"type":"if","locations":[{"start":{"line":27,"column":6},"end":{"line":31,"column":7}},{"start":{},"end":{}}],"line":27},"1":{"loc":{"start":{"line":28,"column":8},"end":{"line":30,"column":9}},"type":"if","locations":[{"start":{"line":28,"column":8},"end":{"line":30,"column":9}},{"start":{},"end":{}}],"line":28},"2":{"loc":{"start":{"line":51,"column":4},"end":{"line":71,"column":5}},"type":"if","locations":[{"start":{"line":51,"column":4},"end":{"line":71,"column":5}},{"start":{"line":61,"column":11},"end":{"line":71,"column":5}}],"line":51},"3":{"loc":{"start":{"line":91,"column":4},"end":{"line":93,"column":5}},"type":"if","locations":[{"start":{"line":91,"column":4},"end":{"line":93,"column":5}},{"start":{},"end":{}}],"line":91},"4":{"loc":{"start":{"line":105,"column":9},"end":{"line":122,"column":9}},"type":"cond-expr","locations":[{"start":{"line":106,"column":10},"end":{"line":119,"column":13}},{"start":{"line":121,"column":10},"end":{"line":121,"column":12}}],"line":105},"5":{"loc":{"start":{"line":124,"column":7},"end":{"line":368,"column":7}},"type":"cond-expr","locations":[{"start":{"line":125,"column":8},"end":{"line":125,"column":10}},{"start":{"line":127,"column":8},"end":{"line":367,"column":11}}],"line":124},"6":{"loc":{"start":{"line":350,"column":15},"end":{"line":354,"column":27}},"type":"cond-expr","locations":[{"start":{"line":351,"column":16},"end":{"line":353,"column":18}},{"start":{"line":354,"column":18},"end":{"line":354,"column":27}}],"line":350}},"s":{"0":20,"1":19,"2":19,"3":19,"4":3,"5":3,"6":3,"7":3,"8":24,"9":21,"10":1,"11":3,"12":3,"13":3,"14":5,"15":5,"16":3,"17":3,"18":3,"19":0,"20":3,"21":3,"22":21,"23":3,"24":0,"25":3,"26":1,"27":3,"28":19,"29":6},"f":{"0":20,"1":3,"2":0},"b":{"0":[21,3],"1":[1,20],"2":[0,3],"3":[1,2],"4":[1,18],"5":[1,18],"6":[2,16]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"aab2c7918d1dd6e334399d6e51f4ce93a6a88906"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ReportAProblem.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ReportAProblem.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":55}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":55}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":55}},"line":9}},"branchMap":{},"s":{"0":1,"1":5,"2":1},"f":{"0":5},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d29be7f648557f0474151c64e2ffc2eeff8aeb14"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/mongodb/connect.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/mongodb/connect.js","statementMap":{"0":{"start":{"line":8,"column":13},"end":{"line":8,"column":25}},"1":{"start":{"line":10,"column":0},"end":{"line":12,"column":1}},"2":{"start":{"line":11,"column":2},"end":{"line":11,"column":56}},"3":{"start":{"line":22,"column":2},"end":{"line":24,"column":3}},"4":{"start":{"line":23,"column":4},"end":{"line":23,"column":23}},"5":{"start":{"line":27,"column":2},"end":{"line":39,"column":3}},"6":{"start":{"line":28,"column":17},"end":{"line":31,"column":5}},"7":{"start":{"line":33,"column":4},"end":{"line":38,"column":7}},"8":{"start":{"line":35,"column":17},"end":{"line":35,"column":35}},"9":{"start":{"line":37,"column":6},"end":{"line":37,"column":28}},"10":{"start":{"line":44,"column":2},"end":{"line":44,"column":37}},"11":{"start":{"line":45,"column":2},"end":{"line":59,"column":5}},"12":{"start":{"line":60,"column":2},"end":{"line":60,"column":21}},"13":{"start":{"line":64,"column":2},"end":{"line":69,"column":3}},"14":{"start":{"line":65,"column":4},"end":{"line":65,"column":33}},"15":{"start":{"line":66,"column":4},"end":{"line":66,"column":37}},"16":{"start":{"line":67,"column":4},"end":{"line":67,"column":23}},"17":{"start":{"line":68,"column":4},"end":{"line":68,"column":26}}},"fnMap":{"0":{"name":"connectToDatabase","decl":{"start":{"line":20,"column":22},"end":{"line":20,"column":39}},"loc":{"start":{"line":20,"column":59},"end":{"line":61,"column":1}},"line":20},"1":{"name":"(anonymous_1)","decl":{"start":{"line":33,"column":62},"end":{"line":33,"column":63}},"loc":{"start":{"line":33,"column":74},"end":{"line":38,"column":5}},"line":33},"2":{"name":"closeConnection","decl":{"start":{"line":63,"column":22},"end":{"line":63,"column":37}},"loc":{"start":{"line":63,"column":40},"end":{"line":70,"column":1}},"line":63}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":0},"end":{"line":12,"column":1}},"type":"if","locations":[{"start":{"line":10,"column":0},"end":{"line":12,"column":1}},{"start":{},"end":{}}],"line":10},"1":{"loc":{"start":{"line":22,"column":2},"end":{"line":24,"column":3}},"type":"if","locations":[{"start":{"line":22,"column":2},"end":{"line":24,"column":3}},{"start":{},"end":{}}],"line":22},"2":{"loc":{"start":{"line":27,"column":2},"end":{"line":39,"column":3}},"type":"if","locations":[{"start":{"line":27,"column":2},"end":{"line":39,"column":3}},{"start":{},"end":{}}],"line":27},"3":{"loc":{"start":{"line":54,"column":8},"end":{"line":57,"column":13}},"type":"cond-expr","locations":[{"start":{"line":56,"column":12},"end":{"line":56,"column":14}},{"start":{"line":57,"column":12},"end":{"line":57,"column":13}}],"line":54},"4":{"loc":{"start":{"line":54,"column":8},"end":{"line":55,"column":45}},"type":"binary-expr","locations":[{"start":{"line":54,"column":8},"end":{"line":54,"column":46}},{"start":{"line":55,"column":8},"end":{"line":55,"column":45}}],"line":54},"5":{"loc":{"start":{"line":64,"column":2},"end":{"line":69,"column":3}},"type":"if","locations":[{"start":{"line":64,"column":2},"end":{"line":69,"column":3}},{"start":{},"end":{}}],"line":64}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":0,"14":0,"15":0,"16":0,"17":0},"f":{"0":1,"1":1,"2":0},"b":{"0":[1,0],"1":[0,1],"2":[1,0],"3":[0,1],"4":[1,1],"5":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2deedd2df2e82e8c6009287241cce8bc2e524b78"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/notify/submitEmail.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/notify/submitEmail.js","statementMap":{"0":{"start":{"line":3,"column":27},"end":{"line":30,"column":1}},"1":{"start":{"line":11,"column":25},"end":{"line":27,"column":4}},"2":{"start":{"line":29,"column":2},"end":{"line":29,"column":62}},"3":{"start":{"line":32,"column":41},"end":{"line":65,"column":1}},"4":{"start":{"line":42,"column":25},"end":{"line":63,"column":4}},"5":{"start":{"line":64,"column":2},"end":{"line":64,"column":62}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":27},"end":{"line":3,"column":28}},"loc":{"start":{"line":10,"column":5},"end":{"line":30,"column":1}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":32,"column":41},"end":{"line":32,"column":42}},"loc":{"start":{"line":41,"column":5},"end":{"line":65,"column":1}},"line":41}},"branchMap":{},"s":{"0":2,"1":1,"2":1,"3":2,"4":0,"5":0},"f":{"0":1,"1":0},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"64121f88f74f2700c145bf99f2a9d5af31e58cbb"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/createBreadcrumbs.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/createBreadcrumbs.js","statementMap":{"0":{"start":{"line":1,"column":33},"end":{"line":12,"column":1}},"1":{"start":{"line":2,"column":2},"end":{"line":11,"column":5}},"2":{"start":{"line":3,"column":4},"end":{"line":10,"column":6}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":33},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":62},"end":{"line":12,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":2,"column":29},"end":{"line":2,"column":30}},"loc":{"start":{"line":2,"column":49},"end":{"line":11,"column":3}},"line":2}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":8},"end":{"line":5,"column":77}},"type":"cond-expr","locations":[{"start":{"line":5,"column":26},"end":{"line":5,"column":50}},{"start":{"line":5,"column":53},"end":{"line":5,"column":77}}],"line":5},"1":{"loc":{"start":{"line":7,"column":8},"end":{"line":9,"column":39}},"type":"cond-expr","locations":[{"start":{"line":8,"column":12},"end":{"line":8,"column":39}},{"start":{"line":9,"column":12},"end":{"line":9,"column":39}}],"line":7}},"s":{"0":1,"1":1,"2":1},"f":{"0":1,"1":1},"b":{"0":[0,1],"1":[0,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4ff228440cfccf8b1af92ac32e0771b0ff6dfd8b"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/getAllUpdateIds.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/getAllUpdateIds.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":15,"column":5}},"1":{"start":{"line":2,"column":33},"end":{"line":15,"column":3}}},"fnMap":{"0":{"name":"getAllUpdateIds","decl":{"start":{"line":1,"column":16},"end":{"line":1,"column":31}},"loc":{"start":{"line":1,"column":39},"end":{"line":16,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":2,"column":23},"end":{"line":2,"column":24}},"loc":{"start":{"line":2,"column":33},"end":{"line":15,"column":3}},"line":2}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0,"1":0},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/maskEmail.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/maskEmail.js","statementMap":{"0":{"start":{"line":3,"column":20},"end":{"line":3,"column":22}},"1":{"start":{"line":4,"column":10},"end":{"line":4,"column":11}},"2":{"start":{"line":6,"column":2},"end":{"line":16,"column":3}},"3":{"start":{"line":6,"column":15},"end":{"line":6,"column":16}},"4":{"start":{"line":7,"column":4},"end":{"line":15,"column":5}},"5":{"start":{"line":8,"column":6},"end":{"line":8,"column":30}},"6":{"start":{"line":9,"column":11},"end":{"line":15,"column":5}},"7":{"start":{"line":10,"column":6},"end":{"line":10,"column":25}},"8":{"start":{"line":11,"column":6},"end":{"line":11,"column":13}},"9":{"start":{"line":13,"column":6},"end":{"line":13,"column":30}},"10":{"start":{"line":14,"column":6},"end":{"line":14,"column":12}},"11":{"start":{"line":18,"column":2},"end":{"line":18,"column":21}}},"fnMap":{"0":{"name":"maskEmail","decl":{"start":{"line":2,"column":16},"end":{"line":2,"column":25}},"loc":{"start":{"line":2,"column":33},"end":{"line":19,"column":1}},"line":2}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":4},"end":{"line":15,"column":5}},"type":"if","locations":[{"start":{"line":7,"column":4},"end":{"line":15,"column":5}},{"start":{"line":9,"column":11},"end":{"line":15,"column":5}}],"line":7},"1":{"loc":{"start":{"line":9,"column":11},"end":{"line":15,"column":5}},"type":"if","locations":[{"start":{"line":9,"column":11},"end":{"line":15,"column":5}},{"start":{"line":12,"column":11},"end":{"line":15,"column":5}}],"line":9},"2":{"loc":{"start":{"line":9,"column":15},"end":{"line":9,"column":61}},"type":"binary-expr","locations":[{"start":{"line":9,"column":15},"end":{"line":9,"column":31}},{"start":{"line":9,"column":35},"end":{"line":9,"column":51}},{"start":{"line":9,"column":55},"end":{"line":9,"column":61}}],"line":9}},"s":{"0":1,"1":1,"2":1,"3":1,"4":14,"5":1,"6":13,"7":10,"8":10,"9":3,"10":3,"11":1},"f":{"0":1},"b":{"0":[1,13],"1":[10,3],"2":[13,12,11]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2c319a415cf9287df92d50f88488af57238eb4bb"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/stripFeedback.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/stripFeedback.js","statementMap":{"0":{"start":{"line":3,"column":2},"end":{"line":6,"column":4}},"1":{"start":{"line":9,"column":2},"end":{"line":12,"column":4}},"2":{"start":{"line":15,"column":2},"end":{"line":18,"column":4}},"3":{"start":{"line":21,"column":2},"end":{"line":24,"column":4}},"4":{"start":{"line":25,"column":2},"end":{"line":28,"column":4}},"5":{"start":{"line":30,"column":2},"end":{"line":30,"column":25}}},"fnMap":{"0":{"name":"stripFeedback","decl":{"start":{"line":1,"column":16},"end":{"line":1,"column":29}},"loc":{"start":{"line":1,"column":47},"end":{"line":31,"column":1}},"line":1}},"branchMap":{},"s":{"0":7,"1":7,"2":7,"3":7,"4":7,"5":7},"f":{"0":7},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d0915e4032d8d1101c90ae4a5d38458236eb2b5f"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/middlewares/initMiddleware.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/middlewares/initMiddleware.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":12,"column":7}},"1":{"start":{"line":5,"column":4},"end":{"line":12,"column":6}},"2":{"start":{"line":6,"column":6},"end":{"line":11,"column":9}},"3":{"start":{"line":7,"column":8},"end":{"line":9,"column":9}},"4":{"start":{"line":8,"column":10},"end":{"line":8,"column":32}},"5":{"start":{"line":10,"column":8},"end":{"line":10,"column":31}}},"fnMap":{"0":{"name":"initMiddleware","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":38}},"loc":{"start":{"line":3,"column":51},"end":{"line":13,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":10}},"loc":{"start":{"line":5,"column":4},"end":{"line":12,"column":6}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":17}},"loc":{"start":{"line":5,"column":37},"end":{"line":12,"column":5}},"line":5},"3":{"name":"(anonymous_3)","decl":{"start":{"line":6,"column":27},"end":{"line":6,"column":28}},"loc":{"start":{"line":6,"column":39},"end":{"line":11,"column":7}},"line":6}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":8},"end":{"line":9,"column":9}},"type":"if","locations":[{"start":{"line":7,"column":8},"end":{"line":9,"column":9}},{"start":{},"end":{}}],"line":7}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/middlewares/joi.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/middlewares/joi.js","statementMap":{"0":{"start":{"line":12,"column":2},"end":{"line":24,"column":4}},"1":{"start":{"line":13,"column":22},"end":{"line":13,"column":62}},"2":{"start":{"line":14,"column":18},"end":{"line":14,"column":37}},"3":{"start":{"line":15,"column":4},"end":{"line":23,"column":5}},"4":{"start":{"line":16,"column":6},"end":{"line":16,"column":31}},"5":{"start":{"line":18,"column":26},"end":{"line":18,"column":31}},"6":{"start":{"line":19,"column":22},"end":{"line":21,"column":8}},"7":{"start":{"line":20,"column":8},"end":{"line":20,"column":52}},"8":{"start":{"line":22,"column":6},"end":{"line":22,"column":47}}},"fnMap":{"0":{"name":"validate","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":32}},"loc":{"start":{"line":11,"column":64},"end":{"line":25,"column":1}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":9},"end":{"line":12,"column":10}},"loc":{"start":{"line":12,"column":29},"end":{"line":24,"column":3}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":19,"column":34},"end":{"line":19,"column":35}},"loc":{"start":{"line":19,"column":41},"end":{"line":21,"column":7}},"line":19}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":50},"end":{"line":11,"column":62}},"type":"default-arg","locations":[{"start":{"line":11,"column":60},"end":{"line":11,"column":62}}],"line":11},"1":{"loc":{"start":{"line":15,"column":4},"end":{"line":23,"column":5}},"type":"if","locations":[{"start":{"line":15,"column":4},"end":{"line":23,"column":5}},{"start":{"line":17,"column":11},"end":{"line":23,"column":5}}],"line":15}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":1,"6":1,"7":2,"8":1},"f":{"0":1,"1":1,"2":2},"b":{"0":[0],"1":[0,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c484cc6eabb2eee8fcbd18f7de461eca0e65b74d"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/404.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/404.js","statementMap":{"0":{"start":{"line":12,"column":16},"end":{"line":12,"column":40}},"1":{"start":{"line":13,"column":30},"end":{"line":13,"column":45}},"2":{"start":{"line":14,"column":17},"end":{"line":14,"column":28}},"3":{"start":{"line":15,"column":21},"end":{"line":15,"column":50}},"4":{"start":{"line":17,"column":2},"end":{"line":29,"column":9}},"5":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"6":{"start":{"line":19,"column":6},"end":{"line":19,"column":58}},"7":{"start":{"line":20,"column":6},"end":{"line":20,"column":56}},"8":{"start":{"line":24,"column":4},"end":{"line":28,"column":5}},"9":{"start":{"line":25,"column":6},"end":{"line":25,"column":35}},"10":{"start":{"line":27,"column":6},"end":{"line":27,"column":22}},"11":{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},"12":{"start":{"line":33,"column":4},"end":{"line":33,"column":23}},"13":{"start":{"line":36,"column":2},"end":{"line":239,"column":4}},"14":{"start":{"line":242,"column":30},"end":{"line":254,"column":1}},"15":{"start":{"line":243,"column":19},"end":{"line":243,"column":72}},"16":{"start":{"line":245,"column":2},"end":{"line":253,"column":4}}},"fnMap":{"0":{"name":"error404","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":32}},"loc":{"start":{"line":11,"column":40},"end":{"line":240,"column":1}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":17,"column":12},"end":{"line":17,"column":13}},"loc":{"start":{"line":17,"column":18},"end":{"line":29,"column":3}},"line":17},"2":{"name":"(anonymous_2)","decl":{"start":{"line":242,"column":30},"end":{"line":242,"column":31}},"loc":{"start":{"line":242,"column":52},"end":{"line":254,"column":1}},"line":242}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},{"start":{},"end":{}}],"line":18},"1":{"loc":{"start":{"line":19,"column":30},"end":{"line":19,"column":57}},"type":"binary-expr","locations":[{"start":{"line":19,"column":30},"end":{"line":19,"column":51}},{"start":{"line":19,"column":55},"end":{"line":19,"column":57}}],"line":19},"2":{"loc":{"start":{"line":24,"column":4},"end":{"line":28,"column":5}},"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":28,"column":5}},{"start":{"line":26,"column":11},"end":{"line":28,"column":5}}],"line":24},"3":{"loc":{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},{"start":{},"end":{}}],"line":32},"4":{"loc":{"start":{"line":40,"column":11},"end":{"line":44,"column":11}},"type":"cond-expr","locations":[{"start":{"line":41,"column":12},"end":{"line":41,"column":52}},{"start":{"line":43,"column":12},"end":{"line":43,"column":14}}],"line":40},"5":{"loc":{"start":{"line":63,"column":21},"end":{"line":63,"column":58}},"type":"cond-expr","locations":[{"start":{"line":63,"column":45},"end":{"line":63,"column":50}},{"start":{"line":63,"column":53},"end":{"line":63,"column":58}}],"line":63},"6":{"loc":{"start":{"line":123,"column":16},"end":{"line":125,"column":58}},"type":"cond-expr","locations":[{"start":{"line":124,"column":20},"end":{"line":124,"column":58}},{"start":{"line":125,"column":20},"end":{"line":125,"column":58}}],"line":123},"7":{"loc":{"start":{"line":128,"column":16},"end":{"line":130,"column":59}},"type":"cond-expr","locations":[{"start":{"line":129,"column":20},"end":{"line":129,"column":59}},{"start":{"line":130,"column":20},"end":{"line":130,"column":59}}],"line":128},"8":{"loc":{"start":{"line":167,"column":20},"end":{"line":169,"column":63}},"type":"cond-expr","locations":[{"start":{"line":168,"column":24},"end":{"line":168,"column":63}},{"start":{"line":169,"column":24},"end":{"line":169,"column":63}}],"line":167},"9":{"loc":{"start":{"line":219,"column":18},"end":{"line":221,"column":60}},"type":"cond-expr","locations":[{"start":{"line":220,"column":22},"end":{"line":220,"column":60}},{"start":{"line":221,"column":22},"end":{"line":221,"column":60}}],"line":219},"10":{"loc":{"start":{"line":224,"column":18},"end":{"line":226,"column":61}},"type":"cond-expr","locations":[{"start":{"line":225,"column":22},"end":{"line":225,"column":61}},{"start":{"line":226,"column":22},"end":{"line":226,"column":61}}],"line":224},"11":{"loc":{"start":{"line":233,"column":7},"end":{"line":237,"column":7}},"type":"cond-expr","locations":[{"start":{"line":234,"column":8},"end":{"line":234,"column":71}},{"start":{"line":236,"column":8},"end":{"line":236,"column":10}}],"line":233}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":1,"6":0,"7":0,"8":1,"9":0,"10":1,"11":2,"12":1,"13":1,"14":1,"15":0,"16":0},"f":{"0":2,"1":1,"2":0},"b":{"0":[0,1],"1":[0,0],"2":[0,1],"3":[1,1],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"10":[0,1],"11":[0,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b2600a9a73fe257c227857c1008787946cbc3e4b"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/500.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/500.js","statementMap":{"0":{"start":{"line":12,"column":16},"end":{"line":12,"column":40}},"1":{"start":{"line":13,"column":30},"end":{"line":13,"column":45}},"2":{"start":{"line":14,"column":17},"end":{"line":14,"column":28}},"3":{"start":{"line":15,"column":21},"end":{"line":15,"column":50}},"4":{"start":{"line":17,"column":2},"end":{"line":29,"column":9}},"5":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"6":{"start":{"line":19,"column":6},"end":{"line":19,"column":58}},"7":{"start":{"line":20,"column":6},"end":{"line":20,"column":56}},"8":{"start":{"line":24,"column":4},"end":{"line":28,"column":5}},"9":{"start":{"line":25,"column":6},"end":{"line":25,"column":35}},"10":{"start":{"line":27,"column":6},"end":{"line":27,"column":22}},"11":{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},"12":{"start":{"line":33,"column":4},"end":{"line":33,"column":23}},"13":{"start":{"line":36,"column":2},"end":{"line":272,"column":4}},"14":{"start":{"line":275,"column":30},"end":{"line":287,"column":1}},"15":{"start":{"line":276,"column":19},"end":{"line":276,"column":72}},"16":{"start":{"line":278,"column":2},"end":{"line":286,"column":4}}},"fnMap":{"0":{"name":"error500","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":32}},"loc":{"start":{"line":11,"column":40},"end":{"line":273,"column":1}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":17,"column":12},"end":{"line":17,"column":13}},"loc":{"start":{"line":17,"column":18},"end":{"line":29,"column":3}},"line":17},"2":{"name":"(anonymous_2)","decl":{"start":{"line":275,"column":30},"end":{"line":275,"column":31}},"loc":{"start":{"line":275,"column":52},"end":{"line":287,"column":1}},"line":275}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},{"start":{},"end":{}}],"line":18},"1":{"loc":{"start":{"line":19,"column":30},"end":{"line":19,"column":57}},"type":"binary-expr","locations":[{"start":{"line":19,"column":30},"end":{"line":19,"column":51}},{"start":{"line":19,"column":55},"end":{"line":19,"column":57}}],"line":19},"2":{"loc":{"start":{"line":24,"column":4},"end":{"line":28,"column":5}},"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":28,"column":5}},{"start":{"line":26,"column":11},"end":{"line":28,"column":5}}],"line":24},"3":{"loc":{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},{"start":{},"end":{}}],"line":32},"4":{"loc":{"start":{"line":40,"column":11},"end":{"line":44,"column":11}},"type":"cond-expr","locations":[{"start":{"line":41,"column":12},"end":{"line":41,"column":52}},{"start":{"line":43,"column":12},"end":{"line":43,"column":14}}],"line":40},"5":{"loc":{"start":{"line":74,"column":21},"end":{"line":74,"column":58}},"type":"cond-expr","locations":[{"start":{"line":74,"column":45},"end":{"line":74,"column":50}},{"start":{"line":74,"column":53},"end":{"line":74,"column":58}}],"line":74},"6":{"loc":{"start":{"line":156,"column":16},"end":{"line":158,"column":58}},"type":"cond-expr","locations":[{"start":{"line":157,"column":20},"end":{"line":157,"column":58}},{"start":{"line":158,"column":20},"end":{"line":158,"column":58}}],"line":156},"7":{"loc":{"start":{"line":161,"column":16},"end":{"line":163,"column":59}},"type":"cond-expr","locations":[{"start":{"line":162,"column":20},"end":{"line":162,"column":59}},{"start":{"line":163,"column":20},"end":{"line":163,"column":59}}],"line":161},"8":{"loc":{"start":{"line":200,"column":20},"end":{"line":202,"column":63}},"type":"cond-expr","locations":[{"start":{"line":201,"column":24},"end":{"line":201,"column":63}},{"start":{"line":202,"column":24},"end":{"line":202,"column":63}}],"line":200},"9":{"loc":{"start":{"line":252,"column":18},"end":{"line":254,"column":60}},"type":"cond-expr","locations":[{"start":{"line":253,"column":22},"end":{"line":253,"column":60}},{"start":{"line":254,"column":22},"end":{"line":254,"column":60}}],"line":252},"10":{"loc":{"start":{"line":257,"column":18},"end":{"line":259,"column":61}},"type":"cond-expr","locations":[{"start":{"line":258,"column":22},"end":{"line":258,"column":61}},{"start":{"line":259,"column":22},"end":{"line":259,"column":61}}],"line":257},"11":{"loc":{"start":{"line":266,"column":7},"end":{"line":270,"column":7}},"type":"cond-expr","locations":[{"start":{"line":267,"column":8},"end":{"line":267,"column":71}},{"start":{"line":269,"column":8},"end":{"line":269,"column":10}}],"line":266}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":1,"6":0,"7":0,"8":1,"9":0,"10":1,"11":2,"12":1,"13":1,"14":1,"15":0,"16":0},"f":{"0":2,"1":1,"2":0},"b":{"0":[0,1],"1":[0,0],"2":[0,1],"3":[1,1],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"10":[0,1],"11":[0,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4828615a79f7c9c552c6d35c197fb8b04cf983cd"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/_app.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/_app.js","statementMap":{"0":{"start":{"line":9,"column":0},"end":{"line":9,"column":26}},"1":{"start":{"line":11,"column":0},"end":{"line":13,"column":1}},"2":{"start":{"line":12,"column":2},"end":{"line":12,"column":22}},"3":{"start":{"line":16,"column":2},"end":{"line":28,"column":4}}},"fnMap":{"0":{"name":"MyApp","decl":{"start":{"line":15,"column":9},"end":{"line":15,"column":14}},"loc":{"start":{"line":15,"column":41},"end":{"line":29,"column":1}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":0},"end":{"line":13,"column":1}},"type":"if","locations":[{"start":{"line":11,"column":0},"end":{"line":13,"column":1}},{"start":{},"end":{}}],"line":11}},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0},"b":{"0":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/error.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/error.js","statementMap":{"0":{"start":{"line":12,"column":16},"end":{"line":12,"column":40}},"1":{"start":{"line":13,"column":20},"end":{"line":13,"column":31}},"2":{"start":{"line":14,"column":21},"end":{"line":14,"column":50}},"3":{"start":{"line":16,"column":21},"end":{"line":16,"column":43}},"4":{"start":{"line":18,"column":4},"end":{"line":18,"column":69}},"5":{"start":{"line":20,"column":4},"end":{"line":20,"column":71}},"6":{"start":{"line":22,"column":4},"end":{"line":22,"column":71}},"7":{"start":{"line":24,"column":4},"end":{"line":24,"column":73}},"8":{"start":{"line":26,"column":2},"end":{"line":31,"column":9}},"9":{"start":{"line":27,"column":4},"end":{"line":30,"column":5}},"10":{"start":{"line":28,"column":6},"end":{"line":28,"column":58}},"11":{"start":{"line":29,"column":6},"end":{"line":29,"column":56}},"12":{"start":{"line":33,"column":2},"end":{"line":452,"column":4}},"13":{"start":{"line":455,"column":30},"end":{"line":467,"column":1}},"14":{"start":{"line":456,"column":19},"end":{"line":456,"column":75}},"15":{"start":{"line":458,"column":2},"end":{"line":466,"column":4}}},"fnMap":{"0":{"name":"ErrorPage","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":33}},"loc":{"start":{"line":11,"column":41},"end":{"line":453,"column":1}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":26,"column":12},"end":{"line":26,"column":13}},"loc":{"start":{"line":26,"column":18},"end":{"line":31,"column":3}},"line":26},"2":{"name":"(anonymous_2)","decl":{"start":{"line":455,"column":30},"end":{"line":455,"column":31}},"loc":{"start":{"line":455,"column":52},"end":{"line":467,"column":1}},"line":455}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":21},"end":{"line":16,"column":43}},"type":"binary-expr","locations":[{"start":{"line":16,"column":21},"end":{"line":16,"column":37}},{"start":{"line":16,"column":41},"end":{"line":16,"column":43}}],"line":16},"1":{"loc":{"start":{"line":18,"column":4},"end":{"line":18,"column":69}},"type":"binary-expr","locations":[{"start":{"line":18,"column":4},"end":{"line":18,"column":20}},{"start":{"line":18,"column":24},"end":{"line":18,"column":69}}],"line":18},"2":{"loc":{"start":{"line":20,"column":4},"end":{"line":20,"column":71}},"type":"binary-expr","locations":[{"start":{"line":20,"column":4},"end":{"line":20,"column":22}},{"start":{"line":20,"column":26},"end":{"line":20,"column":71}}],"line":20},"3":{"loc":{"start":{"line":22,"column":4},"end":{"line":22,"column":71}},"type":"binary-expr","locations":[{"start":{"line":22,"column":4},"end":{"line":22,"column":22}},{"start":{"line":22,"column":26},"end":{"line":22,"column":71}}],"line":22},"4":{"loc":{"start":{"line":24,"column":4},"end":{"line":24,"column":73}},"type":"binary-expr","locations":[{"start":{"line":24,"column":4},"end":{"line":24,"column":24}},{"start":{"line":24,"column":28},"end":{"line":24,"column":73}}],"line":24},"5":{"loc":{"start":{"line":27,"column":4},"end":{"line":30,"column":5}},"type":"if","locations":[{"start":{"line":27,"column":4},"end":{"line":30,"column":5}},{"start":{},"end":{}}],"line":27},"6":{"loc":{"start":{"line":28,"column":30},"end":{"line":28,"column":57}},"type":"binary-expr","locations":[{"start":{"line":28,"column":30},"end":{"line":28,"column":51}},{"start":{"line":28,"column":55},"end":{"line":28,"column":57}}],"line":28},"7":{"loc":{"start":{"line":37,"column":11},"end":{"line":41,"column":11}},"type":"cond-expr","locations":[{"start":{"line":38,"column":12},"end":{"line":38,"column":52}},{"start":{"line":40,"column":12},"end":{"line":40,"column":14}}],"line":37},"8":{"loc":{"start":{"line":53,"column":14},"end":{"line":55,"column":57}},"type":"cond-expr","locations":[{"start":{"line":54,"column":18},"end":{"line":54,"column":53}},{"start":{"line":55,"column":18},"end":{"line":55,"column":57}}],"line":53},"9":{"loc":{"start":{"line":75,"column":21},"end":{"line":75,"column":58}},"type":"cond-expr","locations":[{"start":{"line":75,"column":45},"end":{"line":75,"column":50}},{"start":{"line":75,"column":53},"end":{"line":75,"column":58}}],"line":75},"10":{"loc":{"start":{"line":136,"column":14},"end":{"line":138,"column":57}},"type":"cond-expr","locations":[{"start":{"line":137,"column":18},"end":{"line":137,"column":53}},{"start":{"line":138,"column":18},"end":{"line":138,"column":57}}],"line":136},"11":{"loc":{"start":{"line":160,"column":14},"end":{"line":162,"column":57}},"type":"cond-expr","locations":[{"start":{"line":161,"column":18},"end":{"line":161,"column":53}},{"start":{"line":162,"column":18},"end":{"line":162,"column":57}}],"line":160},"12":{"loc":{"start":{"line":173,"column":18},"end":{"line":175,"column":60}},"type":"cond-expr","locations":[{"start":{"line":174,"column":22},"end":{"line":174,"column":60}},{"start":{"line":175,"column":22},"end":{"line":175,"column":60}}],"line":173},"13":{"loc":{"start":{"line":178,"column":18},"end":{"line":180,"column":61}},"type":"cond-expr","locations":[{"start":{"line":179,"column":22},"end":{"line":179,"column":61}},{"start":{"line":180,"column":22},"end":{"line":180,"column":61}}],"line":178},"14":{"loc":{"start":{"line":196,"column":19},"end":{"line":206,"column":19}},"type":"cond-expr","locations":[{"start":{"line":197,"column":20},"end":{"line":203,"column":24}},{"start":{"line":205,"column":20},"end":{"line":205,"column":22}}],"line":196},"15":{"loc":{"start":{"line":213,"column":19},"end":{"line":290,"column":19}},"type":"cond-expr","locations":[{"start":{"line":214,"column":20},"end":{"line":246,"column":23}},{"start":{"line":247,"column":22},"end":{"line":290,"column":19}}],"line":213},"16":{"loc":{"start":{"line":247,"column":22},"end":{"line":290,"column":19}},"type":"cond-expr","locations":[{"start":{"line":248,"column":20},"end":{"line":273,"column":23}},{"start":{"line":276,"column":20},"end":{"line":289,"column":26}}],"line":247},"17":{"loc":{"start":{"line":298,"column":22},"end":{"line":300,"column":65}},"type":"cond-expr","locations":[{"start":{"line":299,"column":26},"end":{"line":299,"column":65}},{"start":{"line":300,"column":26},"end":{"line":300,"column":65}}],"line":298},"18":{"loc":{"start":{"line":318,"column":19},"end":{"line":328,"column":19}},"type":"cond-expr","locations":[{"start":{"line":319,"column":20},"end":{"line":325,"column":24}},{"start":{"line":327,"column":20},"end":{"line":327,"column":22}}],"line":318},"19":{"loc":{"start":{"line":335,"column":19},"end":{"line":412,"column":19}},"type":"cond-expr","locations":[{"start":{"line":336,"column":20},"end":{"line":368,"column":23}},{"start":{"line":369,"column":22},"end":{"line":412,"column":19}}],"line":335},"20":{"loc":{"start":{"line":369,"column":22},"end":{"line":412,"column":19}},"type":"cond-expr","locations":[{"start":{"line":370,"column":20},"end":{"line":395,"column":23}},{"start":{"line":398,"column":20},"end":{"line":411,"column":26}}],"line":369},"21":{"loc":{"start":{"line":432,"column":18},"end":{"line":434,"column":60}},"type":"cond-expr","locations":[{"start":{"line":433,"column":22},"end":{"line":433,"column":60}},{"start":{"line":434,"column":22},"end":{"line":434,"column":60}}],"line":432},"22":{"loc":{"start":{"line":437,"column":18},"end":{"line":439,"column":61}},"type":"cond-expr","locations":[{"start":{"line":438,"column":22},"end":{"line":438,"column":61}},{"start":{"line":439,"column":22},"end":{"line":439,"column":61}}],"line":437},"23":{"loc":{"start":{"line":446,"column":7},"end":{"line":450,"column":7}},"type":"cond-expr","locations":[{"start":{"line":447,"column":8},"end":{"line":447,"column":71}},{"start":{"line":449,"column":8},"end":{"line":449,"column":10}}],"line":446}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/home.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/home.js","statementMap":{"0":{"start":{"line":11,"column":21},"end":{"line":11,"column":50}},"1":{"start":{"line":12,"column":28},"end":{"line":12,"column":59}},"2":{"start":{"line":14,"column":26},"end":{"line":19,"column":4}},"3":{"start":{"line":15,"column":4},"end":{"line":18,"column":6}},"4":{"start":{"line":21,"column":33},"end":{"line":58,"column":4}},"5":{"start":{"line":22,"column":4},"end":{"line":57,"column":9}},"6":{"start":{"line":60,"column":2},"end":{"line":65,"column":9}},"7":{"start":{"line":61,"column":4},"end":{"line":64,"column":5}},"8":{"start":{"line":62,"column":6},"end":{"line":62,"column":58}},"9":{"start":{"line":63,"column":6},"end":{"line":63,"column":56}},"10":{"start":{"line":67,"column":2},"end":{"line":383,"column":4}},"11":{"start":{"line":386,"column":30},"end":{"line":404,"column":1}},"12":{"start":{"line":387,"column":29},"end":{"line":389,"column":3}},"13":{"start":{"line":390,"column":36},"end":{"line":392,"column":3}},"14":{"start":{"line":394,"column":2},"end":{"line":403,"column":4}}},"fnMap":{"0":{"name":"Home","decl":{"start":{"line":10,"column":24},"end":{"line":10,"column":28}},"loc":{"start":{"line":10,"column":36},"end":{"line":384,"column":1}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":49},"end":{"line":14,"column":50}},"loc":{"start":{"line":14,"column":62},"end":{"line":19,"column":3}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":21,"column":53},"end":{"line":21,"column":54}},"loc":{"start":{"line":22,"column":4},"end":{"line":57,"column":9}},"line":22},"3":{"name":"(anonymous_3)","decl":{"start":{"line":60,"column":12},"end":{"line":60,"column":13}},"loc":{"start":{"line":60,"column":18},"end":{"line":65,"column":3}},"line":60},"4":{"name":"(anonymous_4)","decl":{"start":{"line":386,"column":30},"end":{"line":386,"column":31}},"loc":{"start":{"line":386,"column":52},"end":{"line":404,"column":1}},"line":386}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":10},"end":{"line":28,"column":19}},"type":"cond-expr","locations":[{"start":{"line":27,"column":14},"end":{"line":27,"column":18}},{"start":{"line":28,"column":14},"end":{"line":28,"column":19}}],"line":26},"1":{"loc":{"start":{"line":30,"column":18},"end":{"line":30,"column":79}},"type":"cond-expr","locations":[{"start":{"line":30,"column":42},"end":{"line":30,"column":54}},{"start":{"line":30,"column":57},"end":{"line":30,"column":79}}],"line":30},"2":{"loc":{"start":{"line":34,"column":10},"end":{"line":40,"column":74}},"type":"cond-expr","locations":[{"start":{"line":35,"column":14},"end":{"line":37,"column":65}},{"start":{"line":38,"column":14},"end":{"line":40,"column":74}}],"line":34},"3":{"loc":{"start":{"line":35,"column":14},"end":{"line":37,"column":65}},"type":"cond-expr","locations":[{"start":{"line":36,"column":16},"end":{"line":36,"column":65}},{"start":{"line":37,"column":16},"end":{"line":37,"column":65}}],"line":35},"4":{"loc":{"start":{"line":38,"column":14},"end":{"line":40,"column":74}},"type":"cond-expr","locations":[{"start":{"line":39,"column":14},"end":{"line":39,"column":74}},{"start":{"line":40,"column":14},"end":{"line":40,"column":74}}],"line":38},"5":{"loc":{"start":{"line":43,"column":10},"end":{"line":45,"column":49}},"type":"cond-expr","locations":[{"start":{"line":44,"column":14},"end":{"line":44,"column":49}},{"start":{"line":45,"column":14},"end":{"line":45,"column":49}}],"line":43},"6":{"loc":{"start":{"line":47,"column":15},"end":{"line":47,"column":76}},"type":"cond-expr","locations":[{"start":{"line":47,"column":39},"end":{"line":47,"column":56}},{"start":{"line":47,"column":59},"end":{"line":47,"column":76}}],"line":47},"7":{"loc":{"start":{"line":49,"column":10},"end":{"line":49,"column":77}},"type":"cond-expr","locations":[{"start":{"line":49,"column":34},"end":{"line":49,"column":54}},{"start":{"line":49,"column":57},"end":{"line":49,"column":77}}],"line":49},"8":{"loc":{"start":{"line":52,"column":10},"end":{"line":54,"column":62}},"type":"cond-expr","locations":[{"start":{"line":53,"column":14},"end":{"line":53,"column":62}},{"start":{"line":54,"column":14},"end":{"line":54,"column":62}}],"line":52},"9":{"loc":{"start":{"line":61,"column":4},"end":{"line":64,"column":5}},"type":"if","locations":[{"start":{"line":61,"column":4},"end":{"line":64,"column":5}},{"start":{},"end":{}}],"line":61},"10":{"loc":{"start":{"line":62,"column":30},"end":{"line":62,"column":57}},"type":"binary-expr","locations":[{"start":{"line":62,"column":30},"end":{"line":62,"column":51}},{"start":{"line":62,"column":55},"end":{"line":62,"column":57}}],"line":62},"11":{"loc":{"start":{"line":72,"column":10},"end":{"line":72,"column":79}},"type":"cond-expr","locations":[{"start":{"line":72,"column":34},"end":{"line":72,"column":55}},{"start":{"line":72,"column":58},"end":{"line":72,"column":79}}],"line":72},"12":{"loc":{"start":{"line":77,"column":11},"end":{"line":81,"column":11}},"type":"cond-expr","locations":[{"start":{"line":78,"column":12},"end":{"line":78,"column":52}},{"start":{"line":80,"column":12},"end":{"line":80,"column":14}}],"line":77},"13":{"loc":{"start":{"line":85,"column":13},"end":{"line":87,"column":39}},"type":"cond-expr","locations":[{"start":{"line":86,"column":16},"end":{"line":86,"column":39}},{"start":{"line":87,"column":16},"end":{"line":87,"column":39}}],"line":85},"14":{"loc":{"start":{"line":92,"column":14},"end":{"line":94,"column":67}},"type":"cond-expr","locations":[{"start":{"line":93,"column":18},"end":{"line":93,"column":67}},{"start":{"line":94,"column":18},"end":{"line":94,"column":67}}],"line":92},"15":{"loc":{"start":{"line":103,"column":14},"end":{"line":105,"column":39}},"type":"cond-expr","locations":[{"start":{"line":104,"column":18},"end":{"line":104,"column":39}},{"start":{"line":105,"column":18},"end":{"line":105,"column":39}}],"line":103},"16":{"loc":{"start":{"line":113,"column":14},"end":{"line":115,"column":41}},"type":"cond-expr","locations":[{"start":{"line":114,"column":18},"end":{"line":114,"column":41}},{"start":{"line":115,"column":18},"end":{"line":115,"column":41}}],"line":113},"17":{"loc":{"start":{"line":120,"column":21},"end":{"line":120,"column":58}},"type":"cond-expr","locations":[{"start":{"line":120,"column":45},"end":{"line":120,"column":50}},{"start":{"line":120,"column":53},"end":{"line":120,"column":58}}],"line":120},"18":{"loc":{"start":{"line":126,"column":14},"end":{"line":128,"column":67}},"type":"cond-expr","locations":[{"start":{"line":127,"column":18},"end":{"line":127,"column":67}},{"start":{"line":128,"column":18},"end":{"line":128,"column":67}}],"line":126},"19":{"loc":{"start":{"line":154,"column":16},"end":{"line":156,"column":41}},"type":"cond-expr","locations":[{"start":{"line":155,"column":20},"end":{"line":155,"column":41}},{"start":{"line":156,"column":20},"end":{"line":156,"column":41}}],"line":154},"20":{"loc":{"start":{"line":163,"column":14},"end":{"line":163,"column":77}},"type":"cond-expr","locations":[{"start":{"line":163,"column":38},"end":{"line":163,"column":56}},{"start":{"line":163,"column":59},"end":{"line":163,"column":77}}],"line":163},"21":{"loc":{"start":{"line":169,"column":14},"end":{"line":171,"column":67}},"type":"cond-expr","locations":[{"start":{"line":170,"column":18},"end":{"line":170,"column":67}},{"start":{"line":171,"column":18},"end":{"line":171,"column":67}}],"line":169},"22":{"loc":{"start":{"line":181,"column":14},"end":{"line":181,"column":77}},"type":"cond-expr","locations":[{"start":{"line":181,"column":38},"end":{"line":181,"column":56}},{"start":{"line":181,"column":59},"end":{"line":181,"column":77}}],"line":181},"23":{"loc":{"start":{"line":192,"column":16},"end":{"line":194,"column":41}},"type":"cond-expr","locations":[{"start":{"line":193,"column":20},"end":{"line":193,"column":41}},{"start":{"line":194,"column":20},"end":{"line":194,"column":41}}],"line":192},"24":{"loc":{"start":{"line":201,"column":14},"end":{"line":201,"column":77}},"type":"cond-expr","locations":[{"start":{"line":201,"column":38},"end":{"line":201,"column":56}},{"start":{"line":201,"column":59},"end":{"line":201,"column":77}}],"line":201},"25":{"loc":{"start":{"line":208,"column":14},"end":{"line":210,"column":67}},"type":"cond-expr","locations":[{"start":{"line":209,"column":18},"end":{"line":209,"column":67}},{"start":{"line":210,"column":18},"end":{"line":210,"column":67}}],"line":208},"26":{"loc":{"start":{"line":220,"column":14},"end":{"line":220,"column":77}},"type":"cond-expr","locations":[{"start":{"line":220,"column":38},"end":{"line":220,"column":56}},{"start":{"line":220,"column":59},"end":{"line":220,"column":77}}],"line":220},"27":{"loc":{"start":{"line":231,"column":18},"end":{"line":235,"column":30}},"type":"cond-expr","locations":[{"start":{"line":232,"column":22},"end":{"line":233,"column":30}},{"start":{"line":234,"column":22},"end":{"line":235,"column":30}}],"line":231},"28":{"loc":{"start":{"line":240,"column":15},"end":{"line":242,"column":78}},"type":"cond-expr","locations":[{"start":{"line":241,"column":18},"end":{"line":241,"column":78}},{"start":{"line":242,"column":18},"end":{"line":242,"column":78}}],"line":240},"29":{"loc":{"start":{"line":245,"column":15},"end":{"line":247,"column":78}},"type":"cond-expr","locations":[{"start":{"line":246,"column":18},"end":{"line":246,"column":78}},{"start":{"line":247,"column":18},"end":{"line":247,"column":78}}],"line":245},"30":{"loc":{"start":{"line":258,"column":22},"end":{"line":260,"column":71}},"type":"cond-expr","locations":[{"start":{"line":259,"column":26},"end":{"line":259,"column":71}},{"start":{"line":260,"column":26},"end":{"line":260,"column":71}}],"line":258},"31":{"loc":{"start":{"line":271,"column":17},"end":{"line":274,"column":28}},"type":"cond-expr","locations":[{"start":{"line":272,"column":20},"end":{"line":272,"column":80}},{"start":{"line":273,"column":20},"end":{"line":274,"column":28}}],"line":271},"32":{"loc":{"start":{"line":277,"column":17},"end":{"line":280,"column":28}},"type":"cond-expr","locations":[{"start":{"line":278,"column":20},"end":{"line":278,"column":80}},{"start":{"line":279,"column":20},"end":{"line":280,"column":28}}],"line":277},"33":{"loc":{"start":{"line":285,"column":21},"end":{"line":289,"column":43}},"type":"cond-expr","locations":[{"start":{"line":286,"column":24},"end":{"line":287,"column":43}},{"start":{"line":288,"column":24},"end":{"line":289,"column":43}}],"line":285},"34":{"loc":{"start":{"line":294,"column":21},"end":{"line":298,"column":43}},"type":"cond-expr","locations":[{"start":{"line":295,"column":24},"end":{"line":296,"column":43}},{"start":{"line":297,"column":24},"end":{"line":298,"column":43}}],"line":294},"35":{"loc":{"start":{"line":305,"column":13},"end":{"line":308,"column":24}},"type":"cond-expr","locations":[{"start":{"line":306,"column":16},"end":{"line":306,"column":76}},{"start":{"line":307,"column":16},"end":{"line":308,"column":24}}],"line":305},"36":{"loc":{"start":{"line":317,"column":16},"end":{"line":319,"column":53}},"type":"cond-expr","locations":[{"start":{"line":318,"column":20},"end":{"line":318,"column":53}},{"start":{"line":319,"column":20},"end":{"line":319,"column":53}}],"line":317},"37":{"loc":{"start":{"line":322,"column":16},"end":{"line":368,"column":17}},"type":"cond-expr","locations":[{"start":{"line":323,"column":18},"end":{"line":344,"column":21}},{"start":{"line":346,"column":18},"end":{"line":367,"column":21}}],"line":322},"38":{"loc":{"start":{"line":377,"column":7},"end":{"line":381,"column":7}},"type":"cond-expr","locations":[{"start":{"line":378,"column":8},"end":{"line":378,"column":71}},{"start":{"line":380,"column":8},"end":{"line":380,"column":10}}],"line":377}},"s":{"0":1,"1":1,"2":1,"3":4,"4":1,"5":1,"6":1,"7":1,"8":0,"9":0,"10":1,"11":1,"12":0,"13":0,"14":0},"f":{"0":1,"1":4,"2":1,"3":1,"4":0},"b":{"0":[1,0],"1":[0,1],"2":[0,1],"3":[0,0],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"10":[0,0],"11":[0,1],"12":[0,1],"13":[0,1],"14":[0,1],"15":[0,1],"16":[0,1],"17":[0,1],"18":[0,1],"19":[0,1],"20":[0,1],"21":[0,1],"22":[0,1],"23":[0,1],"24":[0,1],"25":[0,1],"26":[0,1],"27":[0,1],"28":[0,1],"29":[0,1],"30":[0,1],"31":[0,1],"32":[0,1],"33":[0,1],"34":[0,1],"35":[0,1],"36":[0,1],"37":[0,1],"38":[0,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8214ae0e34cb7d4edc72e1b8063192864530188f"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/index.js","statementMap":{"0":{"start":{"line":9,"column":16},"end":{"line":9,"column":40}},"1":{"start":{"line":11,"column":2},"end":{"line":17,"column":9}},"2":{"start":{"line":12,"column":4},"end":{"line":15,"column":5}},"3":{"start":{"line":13,"column":6},"end":{"line":13,"column":58}},"4":{"start":{"line":14,"column":6},"end":{"line":14,"column":56}},"5":{"start":{"line":16,"column":4},"end":{"line":16,"column":41}},"6":{"start":{"line":19,"column":2},"end":{"line":194,"column":4}},"7":{"start":{"line":197,"column":34},"end":{"line":203,"column":2}},"8":{"start":{"line":197,"column":57},"end":{"line":203,"column":1}}},"fnMap":{"0":{"name":"Index","decl":{"start":{"line":8,"column":24},"end":{"line":8,"column":29}},"loc":{"start":{"line":8,"column":37},"end":{"line":195,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":12},"end":{"line":11,"column":13}},"loc":{"start":{"line":11,"column":18},"end":{"line":17,"column":3}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":197,"column":34},"end":{"line":197,"column":35}},"loc":{"start":{"line":197,"column":57},"end":{"line":203,"column":1}},"line":197}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":4},"end":{"line":15,"column":5}},"type":"if","locations":[{"start":{"line":12,"column":4},"end":{"line":15,"column":5}},{"start":{},"end":{}}],"line":12},"1":{"loc":{"start":{"line":13,"column":30},"end":{"line":13,"column":57}},"type":"binary-expr","locations":[{"start":{"line":13,"column":30},"end":{"line":13,"column":51}},{"start":{"line":13,"column":55},"end":{"line":13,"column":57}}],"line":13},"2":{"loc":{"start":{"line":23,"column":9},"end":{"line":27,"column":9}},"type":"cond-expr","locations":[{"start":{"line":24,"column":10},"end":{"line":24,"column":50}},{"start":{"line":26,"column":10},"end":{"line":26,"column":12}}],"line":23},"3":{"loc":{"start":{"line":54,"column":19},"end":{"line":54,"column":56}},"type":"cond-expr","locations":[{"start":{"line":54,"column":43},"end":{"line":54,"column":48}},{"start":{"line":54,"column":51},"end":{"line":54,"column":56}}],"line":54},"4":{"loc":{"start":{"line":188,"column":7},"end":{"line":192,"column":7}},"type":"cond-expr","locations":[{"start":{"line":189,"column":8},"end":{"line":189,"column":71}},{"start":{"line":191,"column":8},"end":{"line":191,"column":10}}],"line":188},"5":{"loc":{"start":{"line":199,"column":12},"end":{"line":199,"column":26}},"type":"binary-expr","locations":[{"start":{"line":199,"column":12},"end":{"line":199,"column":18}},{"start":{"line":199,"column":22},"end":{"line":199,"column":26}}],"line":199},"6":{"loc":{"start":{"line":200,"column":23},"end":{"line":200,"column":60}},"type":"binary-expr","locations":[{"start":{"line":200,"column":23},"end":{"line":200,"column":54}},{"start":{"line":200,"column":58},"end":{"line":200,"column":60}}],"line":200}},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":1,"6":1,"7":1,"8":0},"f":{"0":1,"1":1,"2":0},"b":{"0":[0,1],"1":[0,0],"2":[0,1],"3":[0,1],"4":[0,1],"5":[0,0],"6":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b17e7654477b23b955914b47b2300f61cb98551f"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/notsupported.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/notsupported.js","statementMap":{"0":{"start":{"line":11,"column":16},"end":{"line":11,"column":40}},"1":{"start":{"line":12,"column":34},"end":{"line":12,"column":49}},"2":{"start":{"line":13,"column":34},"end":{"line":13,"column":49}},"3":{"start":{"line":14,"column":21},"end":{"line":14,"column":50}},"4":{"start":{"line":16,"column":2},"end":{"line":21,"column":9}},"5":{"start":{"line":17,"column":4},"end":{"line":20,"column":5}},"6":{"start":{"line":18,"column":6},"end":{"line":18,"column":58}},"7":{"start":{"line":19,"column":6},"end":{"line":19,"column":56}},"8":{"start":{"line":24,"column":4},"end":{"line":24,"column":22}},"9":{"start":{"line":25,"column":4},"end":{"line":25,"column":23}},"10":{"start":{"line":29,"column":4},"end":{"line":29,"column":22}},"11":{"start":{"line":30,"column":4},"end":{"line":30,"column":23}},"12":{"start":{"line":32,"column":2},"end":{"line":474,"column":4}},"13":{"start":{"line":477,"column":30},"end":{"line":489,"column":1}},"14":{"start":{"line":478,"column":19},"end":{"line":478,"column":76}},"15":{"start":{"line":480,"column":2},"end":{"line":488,"column":4}}},"fnMap":{"0":{"name":"notSupported","decl":{"start":{"line":10,"column":24},"end":{"line":10,"column":36}},"loc":{"start":{"line":10,"column":44},"end":{"line":475,"column":1}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":12},"end":{"line":16,"column":13}},"loc":{"start":{"line":16,"column":18},"end":{"line":21,"column":3}},"line":16},"2":{"name":"onClickEn","decl":{"start":{"line":23,"column":11},"end":{"line":23,"column":20}},"loc":{"start":{"line":23,"column":23},"end":{"line":26,"column":3}},"line":23},"3":{"name":"onClickFr","decl":{"start":{"line":28,"column":11},"end":{"line":28,"column":20}},"loc":{"start":{"line":28,"column":23},"end":{"line":31,"column":3}},"line":28},"4":{"name":"(anonymous_4)","decl":{"start":{"line":477,"column":30},"end":{"line":477,"column":31}},"loc":{"start":{"line":477,"column":52},"end":{"line":489,"column":1}},"line":477}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":4},"end":{"line":20,"column":5}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":20,"column":5}},{"start":{},"end":{}}],"line":17},"1":{"loc":{"start":{"line":18,"column":30},"end":{"line":18,"column":57}},"type":"binary-expr","locations":[{"start":{"line":18,"column":30},"end":{"line":18,"column":51}},{"start":{"line":18,"column":55},"end":{"line":18,"column":57}}],"line":18},"2":{"loc":{"start":{"line":36,"column":11},"end":{"line":40,"column":11}},"type":"cond-expr","locations":[{"start":{"line":37,"column":12},"end":{"line":37,"column":52}},{"start":{"line":39,"column":12},"end":{"line":39,"column":14}}],"line":36},"3":{"loc":{"start":{"line":79,"column":21},"end":{"line":79,"column":58}},"type":"cond-expr","locations":[{"start":{"line":79,"column":45},"end":{"line":79,"column":50}},{"start":{"line":79,"column":53},"end":{"line":79,"column":58}}],"line":79},"4":{"loc":{"start":{"line":155,"column":16},"end":{"line":157,"column":58}},"type":"cond-expr","locations":[{"start":{"line":156,"column":20},"end":{"line":156,"column":58}},{"start":{"line":157,"column":20},"end":{"line":157,"column":58}}],"line":155},"5":{"loc":{"start":{"line":160,"column":16},"end":{"line":162,"column":59}},"type":"cond-expr","locations":[{"start":{"line":161,"column":20},"end":{"line":161,"column":59}},{"start":{"line":162,"column":20},"end":{"line":162,"column":59}}],"line":160},"6":{"loc":{"start":{"line":183,"column":20},"end":{"line":185,"column":63}},"type":"cond-expr","locations":[{"start":{"line":184,"column":24},"end":{"line":184,"column":63}},{"start":{"line":185,"column":24},"end":{"line":185,"column":63}}],"line":183},"7":{"loc":{"start":{"line":211,"column":18},"end":{"line":213,"column":61}},"type":"cond-expr","locations":[{"start":{"line":212,"column":22},"end":{"line":212,"column":61}},{"start":{"line":213,"column":22},"end":{"line":213,"column":61}}],"line":211},"8":{"loc":{"start":{"line":216,"column":18},"end":{"line":218,"column":62}},"type":"cond-expr","locations":[{"start":{"line":217,"column":22},"end":{"line":217,"column":62}},{"start":{"line":218,"column":22},"end":{"line":218,"column":62}}],"line":216},"9":{"loc":{"start":{"line":230,"column":18},"end":{"line":232,"column":61}},"type":"cond-expr","locations":[{"start":{"line":231,"column":22},"end":{"line":231,"column":61}},{"start":{"line":232,"column":22},"end":{"line":232,"column":61}}],"line":230},"10":{"loc":{"start":{"line":235,"column":18},"end":{"line":237,"column":62}},"type":"cond-expr","locations":[{"start":{"line":236,"column":22},"end":{"line":236,"column":62}},{"start":{"line":237,"column":22},"end":{"line":237,"column":62}}],"line":235},"11":{"loc":{"start":{"line":249,"column":18},"end":{"line":251,"column":61}},"type":"cond-expr","locations":[{"start":{"line":250,"column":22},"end":{"line":250,"column":61}},{"start":{"line":251,"column":22},"end":{"line":251,"column":61}}],"line":249},"12":{"loc":{"start":{"line":254,"column":18},"end":{"line":256,"column":62}},"type":"cond-expr","locations":[{"start":{"line":255,"column":22},"end":{"line":255,"column":62}},{"start":{"line":256,"column":22},"end":{"line":256,"column":62}}],"line":254},"13":{"loc":{"start":{"line":268,"column":18},"end":{"line":270,"column":61}},"type":"cond-expr","locations":[{"start":{"line":269,"column":22},"end":{"line":269,"column":61}},{"start":{"line":270,"column":22},"end":{"line":270,"column":61}}],"line":268},"14":{"loc":{"start":{"line":273,"column":18},"end":{"line":275,"column":62}},"type":"cond-expr","locations":[{"start":{"line":274,"column":22},"end":{"line":274,"column":62}},{"start":{"line":275,"column":22},"end":{"line":275,"column":62}}],"line":273},"15":{"loc":{"start":{"line":294,"column":28},"end":{"line":294,"column":62}},"type":"cond-expr","locations":[{"start":{"line":294,"column":39},"end":{"line":294,"column":48}},{"start":{"line":294,"column":51},"end":{"line":294,"column":62}}],"line":294},"16":{"loc":{"start":{"line":295,"column":29},"end":{"line":295,"column":69}},"type":"cond-expr","locations":[{"start":{"line":295,"column":40},"end":{"line":295,"column":56}},{"start":{"line":295,"column":59},"end":{"line":295,"column":69}}],"line":295},"17":{"loc":{"start":{"line":370,"column":30},"end":{"line":370,"column":65}},"type":"cond-expr","locations":[{"start":{"line":370,"column":41},"end":{"line":370,"column":49}},{"start":{"line":370,"column":52},"end":{"line":370,"column":65}}],"line":370},"18":{"loc":{"start":{"line":372,"column":31},"end":{"line":372,"column":71}},"type":"cond-expr","locations":[{"start":{"line":372,"column":42},"end":{"line":372,"column":58}},{"start":{"line":372,"column":61},"end":{"line":372,"column":71}}],"line":372},"19":{"loc":{"start":{"line":454,"column":18},"end":{"line":456,"column":60}},"type":"cond-expr","locations":[{"start":{"line":455,"column":22},"end":{"line":455,"column":60}},{"start":{"line":456,"column":22},"end":{"line":456,"column":60}}],"line":454},"20":{"loc":{"start":{"line":459,"column":18},"end":{"line":461,"column":61}},"type":"cond-expr","locations":[{"start":{"line":460,"column":22},"end":{"line":460,"column":61}},{"start":{"line":461,"column":22},"end":{"line":461,"column":61}}],"line":459},"21":{"loc":{"start":{"line":468,"column":7},"end":{"line":472,"column":7}},"type":"cond-expr","locations":[{"start":{"line":469,"column":8},"end":{"line":469,"column":71}},{"start":{"line":471,"column":8},"end":{"line":471,"column":10}}],"line":468}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":1,"13":1,"14":0,"15":0},"f":{"0":1,"1":1,"2":0,"3":0,"4":0},"b":{"0":[0,1],"1":[0,0],"2":[0,1],"3":[0,1],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"10":[0,1],"11":[0,1],"12":[0,1],"13":[0,1],"14":[0,1],"15":[0,1],"16":[0,1],"17":[0,1],"18":[0,1],"19":[0,1],"20":[0,1],"21":[0,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ada9a045de0cc30fd818b5c43e886d0e67c9da5f"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/healthcheck.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/healthcheck.js","statementMap":{"0":{"start":{"line":3,"column":2},"end":{"line":3,"column":49}}},"fnMap":{"0":{"name":"handler","decl":{"start":{"line":2,"column":24},"end":{"line":2,"column":31}},"loc":{"start":{"line":2,"column":42},"end":{"line":4,"column":1}},"line":2}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/report-a-problem.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/report-a-problem.js","statementMap":{"0":{"start":{"line":8,"column":2},"end":{"line":60,"column":3}},"1":{"start":{"line":10,"column":4},"end":{"line":56,"column":5}},"2":{"start":{"line":14,"column":6},"end":{"line":14,"column":32}},"3":{"start":{"line":16,"column":6},"end":{"line":55,"column":7}},"4":{"start":{"line":17,"column":31},"end":{"line":44,"column":9}},"5":{"start":{"line":46,"column":8},"end":{"line":51,"column":9}},"6":{"start":{"line":47,"column":10},"end":{"line":47,"column":36}},"7":{"start":{"line":49,"column":10},"end":{"line":49,"column":43}},"8":{"start":{"line":50,"column":10},"end":{"line":50,"column":39}},"9":{"start":{"line":53,"column":8},"end":{"line":53,"column":25}},"10":{"start":{"line":54,"column":8},"end":{"line":54,"column":37}},"11":{"start":{"line":58,"column":4},"end":{"line":58,"column":37}},"12":{"start":{"line":59,"column":4},"end":{"line":59,"column":60}}},"fnMap":{"0":{"name":"handler","decl":{"start":{"line":7,"column":15},"end":{"line":7,"column":22}},"loc":{"start":{"line":7,"column":33},"end":{"line":61,"column":1}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":2},"end":{"line":60,"column":3}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":60,"column":3}},{"start":{"line":57,"column":9},"end":{"line":60,"column":3}}],"line":8},"1":{"loc":{"start":{"line":10,"column":4},"end":{"line":56,"column":5}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":56,"column":5}},{"start":{"line":15,"column":11},"end":{"line":56,"column":5}}],"line":10},"2":{"loc":{"start":{"line":11,"column":6},"end":{"line":12,"column":43}},"type":"binary-expr","locations":[{"start":{"line":11,"column":6},"end":{"line":11,"column":39}},{"start":{"line":12,"column":6},"end":{"line":12,"column":43}}],"line":11},"3":{"loc":{"start":{"line":20,"column":23},"end":{"line":20,"column":55}},"type":"binary-expr","locations":[{"start":{"line":20,"column":23},"end":{"line":20,"column":42}},{"start":{"line":20,"column":46},"end":{"line":20,"column":55}}],"line":20},"4":{"loc":{"start":{"line":46,"column":8},"end":{"line":51,"column":9}},"type":"if","locations":[{"start":{"line":46,"column":8},"end":{"line":51,"column":9}},{"start":{"line":48,"column":15},"end":{"line":51,"column":9}}],"line":46}},"s":{"0":5,"1":5,"2":2,"3":3,"4":3,"5":2,"6":1,"7":1,"8":1,"9":1,"10":1,"11":0,"12":0},"f":{"0":5},"b":{"0":[5,0],"1":[2,3],"2":[5,4],"3":[3,0],"4":[1,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"daabb193eaa4520bee2cc19293fa4a2ed7f57131"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/robots.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/robots.js","statementMap":{"0":{"start":{"line":8,"column":2},"end":{"line":16,"column":3}},"1":{"start":{"line":9,"column":4},"end":{"line":9,"column":33}},"2":{"start":{"line":10,"column":4},"end":{"line":10,"column":34}},"3":{"start":{"line":11,"column":4},"end":{"line":11,"column":41}},"4":{"start":{"line":12,"column":4},"end":{"line":12,"column":46}},"5":{"start":{"line":14,"column":4},"end":{"line":14,"column":33}},"6":{"start":{"line":15,"column":4},"end":{"line":15,"column":31}},"7":{"start":{"line":17,"column":2},"end":{"line":17,"column":12}}},"fnMap":{"0":{"name":"handler","decl":{"start":{"line":7,"column":30},"end":{"line":7,"column":37}},"loc":{"start":{"line":7,"column":48},"end":{"line":18,"column":1}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":2},"end":{"line":16,"column":3}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":16,"column":3}},{"start":{"line":13,"column":9},"end":{"line":16,"column":3}}],"line":8}},"s":{"0":2,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":2},"f":{"0":2},"b":{"0":[1,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"dfacc08f62bbdf218f1c83f7b7931346443a4506"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/benefits-navigator/[id].js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/benefits-navigator/[id].js","statementMap":{"0":{"start":{"line":13,"column":21},"end":{"line":13,"column":45}},"1":{"start":{"line":14,"column":23},"end":{"line":14,"column":55}},"2":{"start":{"line":16,"column":2},"end":{"line":21,"column":9}},"3":{"start":{"line":17,"column":4},"end":{"line":20,"column":5}},"4":{"start":{"line":18,"column":6},"end":{"line":18,"column":58}},"5":{"start":{"line":19,"column":6},"end":{"line":19,"column":56}},"6":{"start":{"line":23,"column":2},"end":{"line":414,"column":4}},"7":{"start":{"line":419,"column":19},"end":{"line":421,"column":3}},"8":{"start":{"line":423,"column":16},"end":{"line":423,"column":60}},"9":{"start":{"line":424,"column":2},"end":{"line":428,"column":5}},"10":{"start":{"line":425,"column":4},"end":{"line":427,"column":52}},"11":{"start":{"line":429,"column":2},"end":{"line":432,"column":4}},"12":{"start":{"line":435,"column":30},"end":{"line":462,"column":1}},"13":{"start":{"line":437,"column":19},"end":{"line":439,"column":3}},"14":{"start":{"line":441,"column":31},"end":{"line":443,"column":3}},"15":{"start":{"line":444,"column":16},"end":{"line":444,"column":43}},"16":{"start":{"line":446,"column":19},"end":{"line":451,"column":4}},"17":{"start":{"line":447,"column":4},"end":{"line":450,"column":6}},"18":{"start":{"line":453,"column":2},"end":{"line":461,"column":4}}},"fnMap":{"0":{"name":"DynamicBenefitNavigatorPage","decl":{"start":{"line":12,"column":24},"end":{"line":12,"column":51}},"loc":{"start":{"line":12,"column":59},"end":{"line":415,"column":1}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":12},"end":{"line":16,"column":13}},"loc":{"start":{"line":16,"column":18},"end":{"line":21,"column":3}},"line":16},"2":{"name":"getStaticPaths","decl":{"start":{"line":417,"column":22},"end":{"line":417,"column":36}},"loc":{"start":{"line":417,"column":39},"end":{"line":433,"column":1}},"line":417},"3":{"name":"(anonymous_3)","decl":{"start":{"line":424,"column":12},"end":{"line":424,"column":13}},"loc":{"start":{"line":424,"column":22},"end":{"line":428,"column":3}},"line":424},"4":{"name":"(anonymous_4)","decl":{"start":{"line":435,"column":30},"end":{"line":435,"column":31}},"loc":{"start":{"line":435,"column":60},"end":{"line":462,"column":1}},"line":435},"5":{"name":"(anonymous_5)","decl":{"start":{"line":446,"column":32},"end":{"line":446,"column":33}},"loc":{"start":{"line":446,"column":42},"end":{"line":451,"column":3}},"line":446}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":4},"end":{"line":20,"column":5}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":20,"column":5}},{"start":{},"end":{}}],"line":17},"1":{"loc":{"start":{"line":18,"column":30},"end":{"line":18,"column":57}},"type":"binary-expr","locations":[{"start":{"line":18,"column":30},"end":{"line":18,"column":51}},{"start":{"line":18,"column":55},"end":{"line":18,"column":57}}],"line":18},"2":{"loc":{"start":{"line":28,"column":10},"end":{"line":28,"column":79}},"type":"cond-expr","locations":[{"start":{"line":28,"column":34},"end":{"line":28,"column":55}},{"start":{"line":28,"column":58},"end":{"line":28,"column":79}}],"line":28},"3":{"loc":{"start":{"line":37,"column":11},"end":{"line":41,"column":11}},"type":"cond-expr","locations":[{"start":{"line":38,"column":12},"end":{"line":38,"column":52}},{"start":{"line":40,"column":12},"end":{"line":40,"column":14}}],"line":37},"4":{"loc":{"start":{"line":45,"column":13},"end":{"line":47,"column":72}},"type":"cond-expr","locations":[{"start":{"line":46,"column":16},"end":{"line":46,"column":61}},{"start":{"line":47,"column":16},"end":{"line":47,"column":72}}],"line":45},"5":{"loc":{"start":{"line":52,"column":14},"end":{"line":52,"column":77}},"type":"cond-expr","locations":[{"start":{"line":52,"column":38},"end":{"line":52,"column":56}},{"start":{"line":52,"column":59},"end":{"line":52,"column":77}}],"line":52},"6":{"loc":{"start":{"line":61,"column":14},"end":{"line":63,"column":39}},"type":"cond-expr","locations":[{"start":{"line":62,"column":18},"end":{"line":62,"column":39}},{"start":{"line":63,"column":18},"end":{"line":63,"column":39}}],"line":61},"7":{"loc":{"start":{"line":71,"column":14},"end":{"line":73,"column":41}},"type":"cond-expr","locations":[{"start":{"line":72,"column":18},"end":{"line":72,"column":41}},{"start":{"line":73,"column":18},"end":{"line":73,"column":41}}],"line":71},"8":{"loc":{"start":{"line":78,"column":21},"end":{"line":78,"column":58}},"type":"cond-expr","locations":[{"start":{"line":78,"column":45},"end":{"line":78,"column":50}},{"start":{"line":78,"column":53},"end":{"line":78,"column":58}}],"line":78},"9":{"loc":{"start":{"line":93,"column":14},"end":{"line":93,"column":77}},"type":"cond-expr","locations":[{"start":{"line":93,"column":38},"end":{"line":93,"column":56}},{"start":{"line":93,"column":59},"end":{"line":93,"column":77}}],"line":93},"10":{"loc":{"start":{"line":111,"column":16},"end":{"line":113,"column":41}},"type":"cond-expr","locations":[{"start":{"line":112,"column":20},"end":{"line":112,"column":41}},{"start":{"line":113,"column":20},"end":{"line":113,"column":41}}],"line":111},"11":{"loc":{"start":{"line":120,"column":14},"end":{"line":120,"column":77}},"type":"cond-expr","locations":[{"start":{"line":120,"column":38},"end":{"line":120,"column":56}},{"start":{"line":120,"column":59},"end":{"line":120,"column":77}}],"line":120},"12":{"loc":{"start":{"line":138,"column":14},"end":{"line":138,"column":77}},"type":"cond-expr","locations":[{"start":{"line":138,"column":38},"end":{"line":138,"column":56}},{"start":{"line":138,"column":59},"end":{"line":138,"column":77}}],"line":138},"13":{"loc":{"start":{"line":149,"column":16},"end":{"line":151,"column":41}},"type":"cond-expr","locations":[{"start":{"line":150,"column":20},"end":{"line":150,"column":41}},{"start":{"line":151,"column":20},"end":{"line":151,"column":41}}],"line":149},"14":{"loc":{"start":{"line":158,"column":14},"end":{"line":158,"column":77}},"type":"cond-expr","locations":[{"start":{"line":158,"column":38},"end":{"line":158,"column":56}},{"start":{"line":158,"column":59},"end":{"line":158,"column":77}}],"line":158},"15":{"loc":{"start":{"line":177,"column":14},"end":{"line":177,"column":77}},"type":"cond-expr","locations":[{"start":{"line":177,"column":38},"end":{"line":177,"column":56}},{"start":{"line":177,"column":59},"end":{"line":177,"column":77}}],"line":177},"16":{"loc":{"start":{"line":186,"column":14},"end":{"line":186,"column":77}},"type":"cond-expr","locations":[{"start":{"line":186,"column":38},"end":{"line":186,"column":56}},{"start":{"line":186,"column":59},"end":{"line":186,"column":77}}],"line":186},"17":{"loc":{"start":{"line":192,"column":16},"end":{"line":192,"column":73}},"type":"cond-expr","locations":[{"start":{"line":192,"column":40},"end":{"line":192,"column":55}},{"start":{"line":192,"column":58},"end":{"line":192,"column":73}}],"line":192},"18":{"loc":{"start":{"line":195,"column":15},"end":{"line":197,"column":40}},"type":"cond-expr","locations":[{"start":{"line":196,"column":18},"end":{"line":196,"column":40}},{"start":{"line":197,"column":18},"end":{"line":197,"column":40}}],"line":195},"19":{"loc":{"start":{"line":204,"column":16},"end":{"line":204,"column":73}},"type":"cond-expr","locations":[{"start":{"line":204,"column":40},"end":{"line":204,"column":55}},{"start":{"line":204,"column":58},"end":{"line":204,"column":73}}],"line":204},"20":{"loc":{"start":{"line":207,"column":15},"end":{"line":209,"column":40}},"type":"cond-expr","locations":[{"start":{"line":208,"column":18},"end":{"line":208,"column":40}},{"start":{"line":209,"column":18},"end":{"line":209,"column":40}}],"line":207},"21":{"loc":{"start":{"line":228,"column":17},"end":{"line":231,"column":28}},"type":"cond-expr","locations":[{"start":{"line":229,"column":20},"end":{"line":229,"column":80}},{"start":{"line":230,"column":20},"end":{"line":231,"column":28}}],"line":228},"22":{"loc":{"start":{"line":234,"column":17},"end":{"line":237,"column":28}},"type":"cond-expr","locations":[{"start":{"line":235,"column":20},"end":{"line":235,"column":80}},{"start":{"line":236,"column":20},"end":{"line":237,"column":28}}],"line":234},"23":{"loc":{"start":{"line":241,"column":20},"end":{"line":245,"column":36}},"type":"cond-expr","locations":[{"start":{"line":242,"column":24},"end":{"line":243,"column":36}},{"start":{"line":244,"column":24},"end":{"line":245,"column":36}}],"line":241},"24":{"loc":{"start":{"line":248,"column":19},"end":{"line":252,"column":30}},"type":"cond-expr","locations":[{"start":{"line":249,"column":22},"end":{"line":250,"column":30}},{"start":{"line":251,"column":22},"end":{"line":252,"column":30}}],"line":248},"25":{"loc":{"start":{"line":255,"column":19},"end":{"line":259,"column":30}},"type":"cond-expr","locations":[{"start":{"line":256,"column":22},"end":{"line":257,"column":30}},{"start":{"line":258,"column":22},"end":{"line":259,"column":30}}],"line":255},"26":{"loc":{"start":{"line":264,"column":17},"end":{"line":267,"column":28}},"type":"cond-expr","locations":[{"start":{"line":265,"column":20},"end":{"line":265,"column":80}},{"start":{"line":266,"column":20},"end":{"line":267,"column":28}}],"line":264},"27":{"loc":{"start":{"line":271,"column":17},"end":{"line":274,"column":28}},"type":"cond-expr","locations":[{"start":{"line":272,"column":20},"end":{"line":272,"column":80}},{"start":{"line":273,"column":20},"end":{"line":274,"column":28}}],"line":271},"28":{"loc":{"start":{"line":278,"column":17},"end":{"line":281,"column":28}},"type":"cond-expr","locations":[{"start":{"line":279,"column":20},"end":{"line":279,"column":80}},{"start":{"line":280,"column":20},"end":{"line":281,"column":28}}],"line":278},"29":{"loc":{"start":{"line":285,"column":17},"end":{"line":288,"column":28}},"type":"cond-expr","locations":[{"start":{"line":286,"column":20},"end":{"line":286,"column":80}},{"start":{"line":287,"column":20},"end":{"line":288,"column":28}}],"line":285},"30":{"loc":{"start":{"line":291,"column":17},"end":{"line":294,"column":28}},"type":"cond-expr","locations":[{"start":{"line":292,"column":20},"end":{"line":292,"column":80}},{"start":{"line":293,"column":20},"end":{"line":294,"column":28}}],"line":291},"31":{"loc":{"start":{"line":297,"column":17},"end":{"line":300,"column":28}},"type":"cond-expr","locations":[{"start":{"line":298,"column":20},"end":{"line":298,"column":80}},{"start":{"line":299,"column":20},"end":{"line":300,"column":28}}],"line":297},"32":{"loc":{"start":{"line":304,"column":17},"end":{"line":307,"column":28}},"type":"cond-expr","locations":[{"start":{"line":305,"column":20},"end":{"line":305,"column":80}},{"start":{"line":306,"column":20},"end":{"line":307,"column":28}}],"line":304},"33":{"loc":{"start":{"line":310,"column":17},"end":{"line":314,"column":28}},"type":"cond-expr","locations":[{"start":{"line":311,"column":20},"end":{"line":312,"column":28}},{"start":{"line":313,"column":20},"end":{"line":314,"column":28}}],"line":310},"34":{"loc":{"start":{"line":317,"column":17},"end":{"line":321,"column":28}},"type":"cond-expr","locations":[{"start":{"line":318,"column":20},"end":{"line":319,"column":28}},{"start":{"line":320,"column":20},"end":{"line":321,"column":28}}],"line":317},"35":{"loc":{"start":{"line":325,"column":17},"end":{"line":329,"column":28}},"type":"cond-expr","locations":[{"start":{"line":326,"column":20},"end":{"line":327,"column":28}},{"start":{"line":328,"column":20},"end":{"line":329,"column":28}}],"line":325},"36":{"loc":{"start":{"line":332,"column":17},"end":{"line":336,"column":28}},"type":"cond-expr","locations":[{"start":{"line":333,"column":20},"end":{"line":334,"column":28}},{"start":{"line":335,"column":20},"end":{"line":336,"column":28}}],"line":332},"37":{"loc":{"start":{"line":339,"column":17},"end":{"line":343,"column":28}},"type":"cond-expr","locations":[{"start":{"line":340,"column":20},"end":{"line":341,"column":28}},{"start":{"line":342,"column":20},"end":{"line":343,"column":28}}],"line":339},"38":{"loc":{"start":{"line":346,"column":17},"end":{"line":350,"column":28}},"type":"cond-expr","locations":[{"start":{"line":347,"column":20},"end":{"line":348,"column":28}},{"start":{"line":349,"column":20},"end":{"line":350,"column":28}}],"line":346},"39":{"loc":{"start":{"line":354,"column":17},"end":{"line":358,"column":28}},"type":"cond-expr","locations":[{"start":{"line":355,"column":20},"end":{"line":356,"column":28}},{"start":{"line":357,"column":20},"end":{"line":358,"column":28}}],"line":354},"40":{"loc":{"start":{"line":361,"column":17},"end":{"line":365,"column":28}},"type":"cond-expr","locations":[{"start":{"line":362,"column":20},"end":{"line":363,"column":28}},{"start":{"line":364,"column":20},"end":{"line":365,"column":28}}],"line":361},"41":{"loc":{"start":{"line":368,"column":17},"end":{"line":372,"column":28}},"type":"cond-expr","locations":[{"start":{"line":369,"column":20},"end":{"line":370,"column":28}},{"start":{"line":371,"column":20},"end":{"line":372,"column":28}}],"line":368},"42":{"loc":{"start":{"line":376,"column":19},"end":{"line":380,"column":41}},"type":"cond-expr","locations":[{"start":{"line":377,"column":22},"end":{"line":378,"column":41}},{"start":{"line":379,"column":22},"end":{"line":380,"column":41}}],"line":376},"43":{"loc":{"start":{"line":383,"column":19},"end":{"line":387,"column":41}},"type":"cond-expr","locations":[{"start":{"line":384,"column":22},"end":{"line":385,"column":41}},{"start":{"line":386,"column":22},"end":{"line":387,"column":41}}],"line":383},"44":{"loc":{"start":{"line":390,"column":19},"end":{"line":394,"column":41}},"type":"cond-expr","locations":[{"start":{"line":391,"column":22},"end":{"line":392,"column":41}},{"start":{"line":393,"column":22},"end":{"line":394,"column":41}}],"line":390},"45":{"loc":{"start":{"line":398,"column":17},"end":{"line":402,"column":28}},"type":"cond-expr","locations":[{"start":{"line":399,"column":20},"end":{"line":400,"column":28}},{"start":{"line":401,"column":20},"end":{"line":402,"column":28}}],"line":398},"46":{"loc":{"start":{"line":408,"column":7},"end":{"line":412,"column":7}},"type":"cond-expr","locations":[{"start":{"line":409,"column":8},"end":{"line":409,"column":71}},{"start":{"line":411,"column":8},"end":{"line":411,"column":10}}],"line":408},"47":{"loc":{"start":{"line":425,"column":4},"end":{"line":427,"column":51}},"type":"cond-expr","locations":[{"start":{"line":426,"column":9},"end":{"line":426,"column":50}},{"start":{"line":427,"column":9},"end":{"line":427,"column":50}}],"line":425},"48":{"loc":{"start":{"line":448,"column":6},"end":{"line":449,"column":47}},"type":"binary-expr","locations":[{"start":{"line":448,"column":6},"end":{"line":448,"column":47}},{"start":{"line":449,"column":6},"end":{"line":449,"column":47}}],"line":448}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[0,0],"46":[0,0],"47":[0,0],"48":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/benefits-navigator/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/benefits-navigator/index.js","statementMap":{"0":{"start":{"line":14,"column":21},"end":{"line":14,"column":50}},"1":{"start":{"line":15,"column":24},"end":{"line":15,"column":51}},"2":{"start":{"line":16,"column":31},"end":{"line":24,"column":3}},"3":{"start":{"line":19,"column":8},"end":{"line":22,"column":31}},"4":{"start":{"line":25,"column":26},"end":{"line":34,"column":3}},"5":{"start":{"line":37,"column":21},"end":{"line":37,"column":23}},"6":{"start":{"line":39,"column":4},"end":{"line":75,"column":5}},"7":{"start":{"line":40,"column":6},"end":{"line":74,"column":7}},"8":{"start":{"line":41,"column":8},"end":{"line":43,"column":10}},"9":{"start":{"line":44,"column":13},"end":{"line":74,"column":7}},"10":{"start":{"line":45,"column":26},"end":{"line":49,"column":10}},"11":{"start":{"line":46,"column":10},"end":{"line":48,"column":15}},"12":{"start":{"line":50,"column":8},"end":{"line":54,"column":10}},"13":{"start":{"line":55,"column":13},"end":{"line":74,"column":7}},"14":{"start":{"line":56,"column":26},"end":{"line":60,"column":10}},"15":{"start":{"line":57,"column":10},"end":{"line":59,"column":15}},"16":{"start":{"line":61,"column":8},"end":{"line":65,"column":10}},"17":{"start":{"line":66,"column":13},"end":{"line":74,"column":7}},"18":{"start":{"line":67,"column":8},"end":{"line":71,"column":10}},"19":{"start":{"line":72,"column":13},"end":{"line":74,"column":7}},"20":{"start":{"line":73,"column":8},"end":{"line":73,"column":34}},"21":{"start":{"line":77,"column":4},"end":{"line":77,"column":20}},"22":{"start":{"line":80,"column":32},"end":{"line":103,"column":4}},"23":{"start":{"line":81,"column":4},"end":{"line":102,"column":9}},"24":{"start":{"line":105,"column":2},"end":{"line":110,"column":9}},"25":{"start":{"line":106,"column":4},"end":{"line":109,"column":5}},"26":{"start":{"line":107,"column":6},"end":{"line":107,"column":58}},"27":{"start":{"line":108,"column":6},"end":{"line":108,"column":56}},"28":{"start":{"line":112,"column":2},"end":{"line":778,"column":4}},"29":{"start":{"line":781,"column":30},"end":{"line":802,"column":1}},"30":{"start":{"line":783,"column":29},"end":{"line":785,"column":3}},"31":{"start":{"line":787,"column":31},"end":{"line":789,"column":3}},"32":{"start":{"line":791,"column":2},"end":{"line":801,"column":4}}},"fnMap":{"0":{"name":"OasBenefitsEstimator","decl":{"start":{"line":13,"column":24},"end":{"line":13,"column":44}},"loc":{"start":{"line":13,"column":52},"end":{"line":779,"column":1}},"line":13},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":6},"end":{"line":18,"column":7}},"loc":{"start":{"line":19,"column":8},"end":{"line":22,"column":31}},"line":19},"2":{"name":"generateReactElements","decl":{"start":{"line":36,"column":11},"end":{"line":36,"column":32}},"loc":{"start":{"line":36,"column":39},"end":{"line":78,"column":3}},"line":36},"3":{"name":"(anonymous_3)","decl":{"start":{"line":45,"column":43},"end":{"line":45,"column":44}},"loc":{"start":{"line":46,"column":10},"end":{"line":48,"column":15}},"line":46},"4":{"name":"(anonymous_4)","decl":{"start":{"line":56,"column":43},"end":{"line":56,"column":44}},"loc":{"start":{"line":57,"column":10},"end":{"line":59,"column":15}},"line":57},"5":{"name":"(anonymous_5)","decl":{"start":{"line":80,"column":48},"end":{"line":80,"column":49}},"loc":{"start":{"line":81,"column":4},"end":{"line":102,"column":9}},"line":81},"6":{"name":"(anonymous_6)","decl":{"start":{"line":105,"column":12},"end":{"line":105,"column":13}},"loc":{"start":{"line":105,"column":18},"end":{"line":110,"column":3}},"line":105},"7":{"name":"(anonymous_7)","decl":{"start":{"line":781,"column":30},"end":{"line":781,"column":31}},"loc":{"start":{"line":781,"column":52},"end":{"line":802,"column":1}},"line":781}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":8},"end":{"line":22,"column":31}},"type":"binary-expr","locations":[{"start":{"line":19,"column":8},"end":{"line":19,"column":31}},{"start":{"line":20,"column":8},"end":{"line":20,"column":29}},{"start":{"line":21,"column":8},"end":{"line":21,"column":37}},{"start":{"line":22,"column":8},"end":{"line":22,"column":31}}],"line":19},"1":{"loc":{"start":{"line":40,"column":6},"end":{"line":74,"column":7}},"type":"if","locations":[{"start":{"line":40,"column":6},"end":{"line":74,"column":7}},{"start":{"line":44,"column":13},"end":{"line":74,"column":7}}],"line":40},"2":{"loc":{"start":{"line":44,"column":13},"end":{"line":74,"column":7}},"type":"if","locations":[{"start":{"line":44,"column":13},"end":{"line":74,"column":7}},{"start":{"line":55,"column":13},"end":{"line":74,"column":7}}],"line":44},"3":{"loc":{"start":{"line":55,"column":13},"end":{"line":74,"column":7}},"type":"if","locations":[{"start":{"line":55,"column":13},"end":{"line":74,"column":7}},{"start":{"line":66,"column":13},"end":{"line":74,"column":7}}],"line":55},"4":{"loc":{"start":{"line":66,"column":13},"end":{"line":74,"column":7}},"type":"if","locations":[{"start":{"line":66,"column":13},"end":{"line":74,"column":7}},{"start":{"line":72,"column":13},"end":{"line":74,"column":7}}],"line":66},"5":{"loc":{"start":{"line":72,"column":13},"end":{"line":74,"column":7}},"type":"if","locations":[{"start":{"line":72,"column":13},"end":{"line":74,"column":7}},{"start":{},"end":{}}],"line":72},"6":{"loc":{"start":{"line":85,"column":10},"end":{"line":87,"column":73}},"type":"cond-expr","locations":[{"start":{"line":86,"column":14},"end":{"line":86,"column":73}},{"start":{"line":87,"column":14},"end":{"line":87,"column":73}}],"line":85},"7":{"loc":{"start":{"line":90,"column":10},"end":{"line":92,"column":48}},"type":"cond-expr","locations":[{"start":{"line":91,"column":14},"end":{"line":91,"column":48}},{"start":{"line":92,"column":14},"end":{"line":92,"column":48}}],"line":90},"8":{"loc":{"start":{"line":94,"column":15},"end":{"line":94,"column":74}},"type":"cond-expr","locations":[{"start":{"line":94,"column":39},"end":{"line":94,"column":55}},{"start":{"line":94,"column":58},"end":{"line":94,"column":74}}],"line":94},"9":{"loc":{"start":{"line":95,"column":14},"end":{"line":95,"column":79}},"type":"cond-expr","locations":[{"start":{"line":95,"column":38},"end":{"line":95,"column":57}},{"start":{"line":95,"column":60},"end":{"line":95,"column":79}}],"line":95},"10":{"loc":{"start":{"line":97,"column":10},"end":{"line":99,"column":48}},"type":"cond-expr","locations":[{"start":{"line":98,"column":14},"end":{"line":98,"column":48}},{"start":{"line":99,"column":14},"end":{"line":99,"column":48}}],"line":97},"11":{"loc":{"start":{"line":106,"column":4},"end":{"line":109,"column":5}},"type":"if","locations":[{"start":{"line":106,"column":4},"end":{"line":109,"column":5}},{"start":{},"end":{}}],"line":106},"12":{"loc":{"start":{"line":107,"column":30},"end":{"line":107,"column":57}},"type":"binary-expr","locations":[{"start":{"line":107,"column":30},"end":{"line":107,"column":51}},{"start":{"line":107,"column":55},"end":{"line":107,"column":57}}],"line":107},"13":{"loc":{"start":{"line":117,"column":10},"end":{"line":117,"column":79}},"type":"cond-expr","locations":[{"start":{"line":117,"column":34},"end":{"line":117,"column":55}},{"start":{"line":117,"column":58},"end":{"line":117,"column":79}}],"line":117},"14":{"loc":{"start":{"line":126,"column":11},"end":{"line":130,"column":11}},"type":"cond-expr","locations":[{"start":{"line":127,"column":12},"end":{"line":127,"column":52}},{"start":{"line":129,"column":12},"end":{"line":129,"column":14}}],"line":126},"15":{"loc":{"start":{"line":134,"column":13},"end":{"line":136,"column":72}},"type":"cond-expr","locations":[{"start":{"line":135,"column":16},"end":{"line":135,"column":61}},{"start":{"line":136,"column":16},"end":{"line":136,"column":72}}],"line":134},"16":{"loc":{"start":{"line":141,"column":14},"end":{"line":143,"column":67}},"type":"cond-expr","locations":[{"start":{"line":142,"column":18},"end":{"line":142,"column":67}},{"start":{"line":143,"column":18},"end":{"line":143,"column":67}}],"line":141},"17":{"loc":{"start":{"line":153,"column":16},"end":{"line":155,"column":41}},"type":"cond-expr","locations":[{"start":{"line":154,"column":20},"end":{"line":154,"column":41}},{"start":{"line":155,"column":20},"end":{"line":155,"column":41}}],"line":153},"18":{"loc":{"start":{"line":163,"column":14},"end":{"line":165,"column":39}},"type":"cond-expr","locations":[{"start":{"line":164,"column":18},"end":{"line":164,"column":39}},{"start":{"line":165,"column":18},"end":{"line":165,"column":39}}],"line":163},"19":{"loc":{"start":{"line":173,"column":14},"end":{"line":175,"column":41}},"type":"cond-expr","locations":[{"start":{"line":174,"column":18},"end":{"line":174,"column":41}},{"start":{"line":175,"column":18},"end":{"line":175,"column":41}}],"line":173},"20":{"loc":{"start":{"line":180,"column":21},"end":{"line":180,"column":58}},"type":"cond-expr","locations":[{"start":{"line":180,"column":45},"end":{"line":180,"column":50}},{"start":{"line":180,"column":53},"end":{"line":180,"column":58}}],"line":180},"21":{"loc":{"start":{"line":195,"column":14},"end":{"line":197,"column":67}},"type":"cond-expr","locations":[{"start":{"line":196,"column":18},"end":{"line":196,"column":67}},{"start":{"line":197,"column":18},"end":{"line":197,"column":67}}],"line":195},"22":{"loc":{"start":{"line":215,"column":16},"end":{"line":217,"column":41}},"type":"cond-expr","locations":[{"start":{"line":216,"column":20},"end":{"line":216,"column":41}},{"start":{"line":217,"column":20},"end":{"line":217,"column":41}}],"line":215},"23":{"loc":{"start":{"line":224,"column":14},"end":{"line":224,"column":77}},"type":"cond-expr","locations":[{"start":{"line":224,"column":38},"end":{"line":224,"column":56}},{"start":{"line":224,"column":59},"end":{"line":224,"column":77}}],"line":224},"24":{"loc":{"start":{"line":230,"column":14},"end":{"line":232,"column":67}},"type":"cond-expr","locations":[{"start":{"line":231,"column":18},"end":{"line":231,"column":67}},{"start":{"line":232,"column":18},"end":{"line":232,"column":67}}],"line":230},"25":{"loc":{"start":{"line":242,"column":14},"end":{"line":244,"column":58}},"type":"cond-expr","locations":[{"start":{"line":243,"column":18},"end":{"line":243,"column":58}},{"start":{"line":244,"column":18},"end":{"line":244,"column":58}}],"line":242},"26":{"loc":{"start":{"line":255,"column":16},"end":{"line":257,"column":41}},"type":"cond-expr","locations":[{"start":{"line":256,"column":20},"end":{"line":256,"column":41}},{"start":{"line":257,"column":20},"end":{"line":257,"column":41}}],"line":255},"27":{"loc":{"start":{"line":264,"column":14},"end":{"line":264,"column":77}},"type":"cond-expr","locations":[{"start":{"line":264,"column":38},"end":{"line":264,"column":56}},{"start":{"line":264,"column":59},"end":{"line":264,"column":77}}],"line":264},"28":{"loc":{"start":{"line":271,"column":14},"end":{"line":273,"column":67}},"type":"cond-expr","locations":[{"start":{"line":272,"column":18},"end":{"line":272,"column":67}},{"start":{"line":273,"column":18},"end":{"line":273,"column":67}}],"line":271},"29":{"loc":{"start":{"line":283,"column":14},"end":{"line":285,"column":58}},"type":"cond-expr","locations":[{"start":{"line":284,"column":18},"end":{"line":284,"column":58}},{"start":{"line":285,"column":18},"end":{"line":285,"column":58}}],"line":283},"30":{"loc":{"start":{"line":298,"column":20},"end":{"line":302,"column":32}},"type":"cond-expr","locations":[{"start":{"line":299,"column":24},"end":{"line":300,"column":32}},{"start":{"line":301,"column":24},"end":{"line":302,"column":32}}],"line":298},"31":{"loc":{"start":{"line":311,"column":24},"end":{"line":313,"column":73}},"type":"cond-expr","locations":[{"start":{"line":312,"column":28},"end":{"line":312,"column":73}},{"start":{"line":313,"column":28},"end":{"line":313,"column":73}}],"line":311},"32":{"loc":{"start":{"line":316,"column":24},"end":{"line":318,"column":68}},"type":"cond-expr","locations":[{"start":{"line":317,"column":28},"end":{"line":317,"column":68}},{"start":{"line":318,"column":28},"end":{"line":318,"column":68}}],"line":316},"33":{"loc":{"start":{"line":327,"column":17},"end":{"line":330,"column":28}},"type":"cond-expr","locations":[{"start":{"line":328,"column":20},"end":{"line":328,"column":80}},{"start":{"line":329,"column":20},"end":{"line":330,"column":28}}],"line":327},"34":{"loc":{"start":{"line":336,"column":20},"end":{"line":338,"column":54}},"type":"cond-expr","locations":[{"start":{"line":337,"column":24},"end":{"line":337,"column":54}},{"start":{"line":338,"column":24},"end":{"line":338,"column":54}}],"line":336},"35":{"loc":{"start":{"line":341,"column":20},"end":{"line":343,"column":54}},"type":"cond-expr","locations":[{"start":{"line":342,"column":24},"end":{"line":342,"column":54}},{"start":{"line":343,"column":24},"end":{"line":343,"column":54}}],"line":341},"36":{"loc":{"start":{"line":346,"column":20},"end":{"line":348,"column":54}},"type":"cond-expr","locations":[{"start":{"line":347,"column":24},"end":{"line":347,"column":54}},{"start":{"line":348,"column":24},"end":{"line":348,"column":54}}],"line":346},"37":{"loc":{"start":{"line":354,"column":20},"end":{"line":358,"column":38}},"type":"cond-expr","locations":[{"start":{"line":355,"column":24},"end":{"line":356,"column":38}},{"start":{"line":357,"column":24},"end":{"line":358,"column":38}}],"line":354},"38":{"loc":{"start":{"line":361,"column":20},"end":{"line":365,"column":32}},"type":"cond-expr","locations":[{"start":{"line":362,"column":24},"end":{"line":363,"column":32}},{"start":{"line":364,"column":24},"end":{"line":365,"column":32}}],"line":361},"39":{"loc":{"start":{"line":368,"column":20},"end":{"line":370,"column":57}},"type":"cond-expr","locations":[{"start":{"line":369,"column":24},"end":{"line":369,"column":57}},{"start":{"line":370,"column":24},"end":{"line":370,"column":57}}],"line":368},"40":{"loc":{"start":{"line":373,"column":20},"end":{"line":375,"column":70}},"type":"cond-expr","locations":[{"start":{"line":374,"column":24},"end":{"line":374,"column":70}},{"start":{"line":375,"column":24},"end":{"line":375,"column":70}}],"line":373},"41":{"loc":{"start":{"line":378,"column":20},"end":{"line":382,"column":32}},"type":"cond-expr","locations":[{"start":{"line":379,"column":24},"end":{"line":380,"column":32}},{"start":{"line":381,"column":24},"end":{"line":382,"column":32}}],"line":378},"42":{"loc":{"start":{"line":390,"column":15},"end":{"line":392,"column":78}},"type":"cond-expr","locations":[{"start":{"line":391,"column":18},"end":{"line":391,"column":78}},{"start":{"line":392,"column":18},"end":{"line":392,"column":78}}],"line":390},"43":{"loc":{"start":{"line":395,"column":15},"end":{"line":397,"column":78}},"type":"cond-expr","locations":[{"start":{"line":396,"column":18},"end":{"line":396,"column":78}},{"start":{"line":397,"column":18},"end":{"line":397,"column":78}}],"line":395},"44":{"loc":{"start":{"line":400,"column":15},"end":{"line":402,"column":78}},"type":"cond-expr","locations":[{"start":{"line":401,"column":18},"end":{"line":401,"column":78}},{"start":{"line":402,"column":18},"end":{"line":402,"column":78}}],"line":400},"45":{"loc":{"start":{"line":406,"column":17},"end":{"line":410,"column":39}},"type":"cond-expr","locations":[{"start":{"line":407,"column":20},"end":{"line":408,"column":39}},{"start":{"line":409,"column":20},"end":{"line":410,"column":39}}],"line":406},"46":{"loc":{"start":{"line":413,"column":17},"end":{"line":417,"column":39}},"type":"cond-expr","locations":[{"start":{"line":414,"column":20},"end":{"line":415,"column":39}},{"start":{"line":416,"column":20},"end":{"line":417,"column":39}}],"line":413},"47":{"loc":{"start":{"line":420,"column":17},"end":{"line":424,"column":39}},"type":"cond-expr","locations":[{"start":{"line":421,"column":20},"end":{"line":422,"column":39}},{"start":{"line":423,"column":20},"end":{"line":424,"column":39}}],"line":420},"48":{"loc":{"start":{"line":428,"column":15},"end":{"line":430,"column":78}},"type":"cond-expr","locations":[{"start":{"line":429,"column":18},"end":{"line":429,"column":78}},{"start":{"line":430,"column":18},"end":{"line":430,"column":78}}],"line":428},"49":{"loc":{"start":{"line":434,"column":17},"end":{"line":437,"column":28}},"type":"cond-expr","locations":[{"start":{"line":435,"column":20},"end":{"line":435,"column":80}},{"start":{"line":436,"column":20},"end":{"line":437,"column":28}}],"line":434},"50":{"loc":{"start":{"line":443,"column":22},"end":{"line":447,"column":50}},"type":"cond-expr","locations":[{"start":{"line":444,"column":26},"end":{"line":445,"column":50}},{"start":{"line":446,"column":26},"end":{"line":447,"column":50}}],"line":443},"51":{"loc":{"start":{"line":450,"column":22},"end":{"line":454,"column":45}},"type":"cond-expr","locations":[{"start":{"line":451,"column":26},"end":{"line":452,"column":45}},{"start":{"line":453,"column":26},"end":{"line":454,"column":45}}],"line":450},"52":{"loc":{"start":{"line":462,"column":23},"end":{"line":466,"column":53}},"type":"cond-expr","locations":[{"start":{"line":463,"column":26},"end":{"line":464,"column":53}},{"start":{"line":465,"column":26},"end":{"line":466,"column":53}}],"line":462},"53":{"loc":{"start":{"line":469,"column":23},"end":{"line":473,"column":53}},"type":"cond-expr","locations":[{"start":{"line":470,"column":26},"end":{"line":471,"column":53}},{"start":{"line":472,"column":26},"end":{"line":473,"column":53}}],"line":469},"54":{"loc":{"start":{"line":477,"column":25},"end":{"line":481,"column":66}},"type":"cond-expr","locations":[{"start":{"line":478,"column":28},"end":{"line":479,"column":66}},{"start":{"line":480,"column":28},"end":{"line":481,"column":66}}],"line":477},"55":{"loc":{"start":{"line":484,"column":25},"end":{"line":488,"column":66}},"type":"cond-expr","locations":[{"start":{"line":485,"column":28},"end":{"line":486,"column":66}},{"start":{"line":487,"column":28},"end":{"line":488,"column":66}}],"line":484},"56":{"loc":{"start":{"line":491,"column":25},"end":{"line":495,"column":66}},"type":"cond-expr","locations":[{"start":{"line":492,"column":28},"end":{"line":493,"column":66}},{"start":{"line":494,"column":28},"end":{"line":495,"column":66}}],"line":491},"57":{"loc":{"start":{"line":504,"column":22},"end":{"line":508,"column":48}},"type":"cond-expr","locations":[{"start":{"line":505,"column":26},"end":{"line":506,"column":48}},{"start":{"line":507,"column":26},"end":{"line":508,"column":48}}],"line":504},"58":{"loc":{"start":{"line":511,"column":22},"end":{"line":515,"column":46}},"type":"cond-expr","locations":[{"start":{"line":512,"column":26},"end":{"line":513,"column":46}},{"start":{"line":514,"column":26},"end":{"line":515,"column":46}}],"line":511},"59":{"loc":{"start":{"line":524,"column":22},"end":{"line":528,"column":50}},"type":"cond-expr","locations":[{"start":{"line":525,"column":26},"end":{"line":526,"column":50}},{"start":{"line":527,"column":26},"end":{"line":528,"column":50}}],"line":524},"60":{"loc":{"start":{"line":531,"column":22},"end":{"line":535,"column":45}},"type":"cond-expr","locations":[{"start":{"line":532,"column":26},"end":{"line":533,"column":45}},{"start":{"line":534,"column":26},"end":{"line":535,"column":45}}],"line":531},"61":{"loc":{"start":{"line":543,"column":23},"end":{"line":547,"column":53}},"type":"cond-expr","locations":[{"start":{"line":544,"column":26},"end":{"line":545,"column":53}},{"start":{"line":546,"column":26},"end":{"line":547,"column":53}}],"line":543},"62":{"loc":{"start":{"line":550,"column":23},"end":{"line":554,"column":53}},"type":"cond-expr","locations":[{"start":{"line":551,"column":26},"end":{"line":552,"column":53}},{"start":{"line":553,"column":26},"end":{"line":554,"column":53}}],"line":550},"63":{"loc":{"start":{"line":558,"column":25},"end":{"line":562,"column":66}},"type":"cond-expr","locations":[{"start":{"line":559,"column":28},"end":{"line":560,"column":66}},{"start":{"line":561,"column":28},"end":{"line":562,"column":66}}],"line":558},"64":{"loc":{"start":{"line":565,"column":25},"end":{"line":569,"column":66}},"type":"cond-expr","locations":[{"start":{"line":566,"column":28},"end":{"line":567,"column":66}},{"start":{"line":568,"column":28},"end":{"line":569,"column":66}}],"line":565},"65":{"loc":{"start":{"line":572,"column":25},"end":{"line":576,"column":66}},"type":"cond-expr","locations":[{"start":{"line":573,"column":28},"end":{"line":574,"column":66}},{"start":{"line":575,"column":28},"end":{"line":576,"column":66}}],"line":572},"66":{"loc":{"start":{"line":585,"column":22},"end":{"line":589,"column":48}},"type":"cond-expr","locations":[{"start":{"line":586,"column":26},"end":{"line":587,"column":48}},{"start":{"line":588,"column":26},"end":{"line":589,"column":48}}],"line":585},"67":{"loc":{"start":{"line":592,"column":22},"end":{"line":596,"column":46}},"type":"cond-expr","locations":[{"start":{"line":593,"column":26},"end":{"line":594,"column":46}},{"start":{"line":595,"column":26},"end":{"line":596,"column":46}}],"line":592},"68":{"loc":{"start":{"line":605,"column":22},"end":{"line":609,"column":50}},"type":"cond-expr","locations":[{"start":{"line":606,"column":26},"end":{"line":607,"column":50}},{"start":{"line":608,"column":26},"end":{"line":609,"column":50}}],"line":605},"69":{"loc":{"start":{"line":612,"column":22},"end":{"line":616,"column":45}},"type":"cond-expr","locations":[{"start":{"line":613,"column":26},"end":{"line":614,"column":45}},{"start":{"line":615,"column":26},"end":{"line":616,"column":45}}],"line":612},"70":{"loc":{"start":{"line":624,"column":23},"end":{"line":628,"column":53}},"type":"cond-expr","locations":[{"start":{"line":625,"column":26},"end":{"line":626,"column":53}},{"start":{"line":627,"column":26},"end":{"line":628,"column":53}}],"line":624},"71":{"loc":{"start":{"line":631,"column":23},"end":{"line":635,"column":53}},"type":"cond-expr","locations":[{"start":{"line":632,"column":26},"end":{"line":633,"column":53}},{"start":{"line":634,"column":26},"end":{"line":635,"column":53}}],"line":631},"72":{"loc":{"start":{"line":639,"column":25},"end":{"line":643,"column":66}},"type":"cond-expr","locations":[{"start":{"line":640,"column":28},"end":{"line":641,"column":66}},{"start":{"line":642,"column":28},"end":{"line":643,"column":66}}],"line":639},"73":{"loc":{"start":{"line":646,"column":25},"end":{"line":650,"column":66}},"type":"cond-expr","locations":[{"start":{"line":647,"column":28},"end":{"line":648,"column":66}},{"start":{"line":649,"column":28},"end":{"line":650,"column":66}}],"line":646},"74":{"loc":{"start":{"line":653,"column":25},"end":{"line":657,"column":66}},"type":"cond-expr","locations":[{"start":{"line":654,"column":28},"end":{"line":655,"column":66}},{"start":{"line":656,"column":28},"end":{"line":657,"column":66}}],"line":653},"75":{"loc":{"start":{"line":660,"column":25},"end":{"line":664,"column":66}},"type":"cond-expr","locations":[{"start":{"line":661,"column":28},"end":{"line":662,"column":66}},{"start":{"line":663,"column":28},"end":{"line":664,"column":66}}],"line":660},"76":{"loc":{"start":{"line":667,"column":25},"end":{"line":671,"column":66}},"type":"cond-expr","locations":[{"start":{"line":668,"column":28},"end":{"line":669,"column":66}},{"start":{"line":670,"column":28},"end":{"line":671,"column":66}}],"line":667},"77":{"loc":{"start":{"line":680,"column":22},"end":{"line":684,"column":48}},"type":"cond-expr","locations":[{"start":{"line":681,"column":26},"end":{"line":682,"column":48}},{"start":{"line":683,"column":26},"end":{"line":684,"column":48}}],"line":680},"78":{"loc":{"start":{"line":687,"column":22},"end":{"line":691,"column":46}},"type":"cond-expr","locations":[{"start":{"line":688,"column":26},"end":{"line":689,"column":46}},{"start":{"line":690,"column":26},"end":{"line":691,"column":46}}],"line":687},"79":{"loc":{"start":{"line":702,"column":17},"end":{"line":705,"column":28}},"type":"cond-expr","locations":[{"start":{"line":703,"column":20},"end":{"line":703,"column":80}},{"start":{"line":704,"column":20},"end":{"line":705,"column":28}}],"line":702},"80":{"loc":{"start":{"line":708,"column":17},"end":{"line":711,"column":28}},"type":"cond-expr","locations":[{"start":{"line":709,"column":20},"end":{"line":709,"column":80}},{"start":{"line":710,"column":20},"end":{"line":711,"column":28}}],"line":708},"81":{"loc":{"start":{"line":714,"column":17},"end":{"line":717,"column":28}},"type":"cond-expr","locations":[{"start":{"line":715,"column":20},"end":{"line":715,"column":80}},{"start":{"line":716,"column":20},"end":{"line":717,"column":28}}],"line":714},"82":{"loc":{"start":{"line":726,"column":17},"end":{"line":729,"column":28}},"type":"cond-expr","locations":[{"start":{"line":727,"column":20},"end":{"line":727,"column":80}},{"start":{"line":728,"column":20},"end":{"line":729,"column":28}}],"line":726},"83":{"loc":{"start":{"line":736,"column":13},"end":{"line":738,"column":40}},"type":"cond-expr","locations":[{"start":{"line":737,"column":16},"end":{"line":737,"column":33}},{"start":{"line":738,"column":16},"end":{"line":738,"column":40}}],"line":736},"84":{"loc":{"start":{"line":772,"column":7},"end":{"line":776,"column":7}},"type":"cond-expr","locations":[{"start":{"line":773,"column":8},"end":{"line":773,"column":71}},{"start":{"line":775,"column":8},"end":{"line":775,"column":10}}],"line":772}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"b":{"0":[0,0,0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[0,0],"46":[0,0],"47":[0,0],"48":[0,0],"49":[0,0],"50":[0,0],"51":[0,0],"52":[0,0],"53":[0,0],"54":[0,0],"55":[0,0],"56":[0,0],"57":[0,0],"58":[0,0],"59":[0,0],"60":[0,0],"61":[0,0],"62":[0,0],"63":[0,0],"64":[0,0],"65":[0,0],"66":[0,0],"67":[0,0],"68":[0,0],"69":[0,0],"70":[0,0],"71":[0,0],"72":[0,0],"73":[0,0],"74":[0,0],"75":[0,0],"76":[0,0],"77":[0,0],"78":[0,0],"79":[0,0],"80":[0,0],"81":[0,0],"82":[0,0],"83":[0,0],"84":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/dashboard/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/dashboard/index.js","statementMap":{"0":{"start":{"line":13,"column":21},"end":{"line":13,"column":50}},"1":{"start":{"line":14,"column":31},"end":{"line":22,"column":3}},"2":{"start":{"line":17,"column":8},"end":{"line":20,"column":31}},"3":{"start":{"line":23,"column":26},"end":{"line":32,"column":3}},"4":{"start":{"line":34,"column":2},"end":{"line":39,"column":9}},"5":{"start":{"line":35,"column":4},"end":{"line":38,"column":5}},"6":{"start":{"line":36,"column":6},"end":{"line":36,"column":58}},"7":{"start":{"line":37,"column":6},"end":{"line":37,"column":56}},"8":{"start":{"line":41,"column":2},"end":{"line":416,"column":4}},"9":{"start":{"line":419,"column":30},"end":{"line":439,"column":1}},"10":{"start":{"line":421,"column":29},"end":{"line":423,"column":3}},"11":{"start":{"line":425,"column":31},"end":{"line":427,"column":3}},"12":{"start":{"line":429,"column":2},"end":{"line":438,"column":4}}},"fnMap":{"0":{"name":"MscaDashboard","decl":{"start":{"line":12,"column":24},"end":{"line":12,"column":37}},"loc":{"start":{"line":12,"column":45},"end":{"line":417,"column":1}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":6},"end":{"line":16,"column":7}},"loc":{"start":{"line":17,"column":8},"end":{"line":20,"column":31}},"line":17},"2":{"name":"(anonymous_2)","decl":{"start":{"line":34,"column":12},"end":{"line":34,"column":13}},"loc":{"start":{"line":34,"column":18},"end":{"line":39,"column":3}},"line":34},"3":{"name":"(anonymous_3)","decl":{"start":{"line":419,"column":30},"end":{"line":419,"column":31}},"loc":{"start":{"line":419,"column":52},"end":{"line":439,"column":1}},"line":419}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":8},"end":{"line":20,"column":31}},"type":"binary-expr","locations":[{"start":{"line":17,"column":8},"end":{"line":17,"column":31}},{"start":{"line":18,"column":8},"end":{"line":18,"column":29}},{"start":{"line":19,"column":8},"end":{"line":19,"column":37}},{"start":{"line":20,"column":8},"end":{"line":20,"column":31}}],"line":17},"1":{"loc":{"start":{"line":35,"column":4},"end":{"line":38,"column":5}},"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":38,"column":5}},{"start":{},"end":{}}],"line":35},"2":{"loc":{"start":{"line":36,"column":30},"end":{"line":36,"column":57}},"type":"binary-expr","locations":[{"start":{"line":36,"column":30},"end":{"line":36,"column":51}},{"start":{"line":36,"column":55},"end":{"line":36,"column":57}}],"line":36},"3":{"loc":{"start":{"line":46,"column":10},"end":{"line":46,"column":79}},"type":"cond-expr","locations":[{"start":{"line":46,"column":34},"end":{"line":46,"column":55}},{"start":{"line":46,"column":58},"end":{"line":46,"column":79}}],"line":46},"4":{"loc":{"start":{"line":55,"column":11},"end":{"line":59,"column":11}},"type":"cond-expr","locations":[{"start":{"line":56,"column":12},"end":{"line":56,"column":52}},{"start":{"line":58,"column":12},"end":{"line":58,"column":14}}],"line":55},"5":{"loc":{"start":{"line":63,"column":13},"end":{"line":65,"column":72}},"type":"cond-expr","locations":[{"start":{"line":64,"column":16},"end":{"line":64,"column":61}},{"start":{"line":65,"column":16},"end":{"line":65,"column":72}}],"line":63},"6":{"loc":{"start":{"line":70,"column":14},"end":{"line":72,"column":67}},"type":"cond-expr","locations":[{"start":{"line":71,"column":18},"end":{"line":71,"column":67}},{"start":{"line":72,"column":18},"end":{"line":72,"column":67}}],"line":70},"7":{"loc":{"start":{"line":82,"column":16},"end":{"line":84,"column":41}},"type":"cond-expr","locations":[{"start":{"line":83,"column":20},"end":{"line":83,"column":41}},{"start":{"line":84,"column":20},"end":{"line":84,"column":41}}],"line":82},"8":{"loc":{"start":{"line":92,"column":14},"end":{"line":94,"column":39}},"type":"cond-expr","locations":[{"start":{"line":93,"column":18},"end":{"line":93,"column":39}},{"start":{"line":94,"column":18},"end":{"line":94,"column":39}}],"line":92},"9":{"loc":{"start":{"line":102,"column":14},"end":{"line":104,"column":41}},"type":"cond-expr","locations":[{"start":{"line":103,"column":18},"end":{"line":103,"column":41}},{"start":{"line":104,"column":18},"end":{"line":104,"column":41}}],"line":102},"10":{"loc":{"start":{"line":109,"column":21},"end":{"line":109,"column":58}},"type":"cond-expr","locations":[{"start":{"line":109,"column":45},"end":{"line":109,"column":50}},{"start":{"line":109,"column":53},"end":{"line":109,"column":58}}],"line":109},"11":{"loc":{"start":{"line":124,"column":14},"end":{"line":126,"column":67}},"type":"cond-expr","locations":[{"start":{"line":125,"column":18},"end":{"line":125,"column":67}},{"start":{"line":126,"column":18},"end":{"line":126,"column":67}}],"line":124},"12":{"loc":{"start":{"line":144,"column":16},"end":{"line":146,"column":41}},"type":"cond-expr","locations":[{"start":{"line":145,"column":20},"end":{"line":145,"column":41}},{"start":{"line":146,"column":20},"end":{"line":146,"column":41}}],"line":144},"13":{"loc":{"start":{"line":153,"column":14},"end":{"line":153,"column":77}},"type":"cond-expr","locations":[{"start":{"line":153,"column":38},"end":{"line":153,"column":56}},{"start":{"line":153,"column":59},"end":{"line":153,"column":77}}],"line":153},"14":{"loc":{"start":{"line":159,"column":14},"end":{"line":161,"column":78}},"type":"cond-expr","locations":[{"start":{"line":160,"column":18},"end":{"line":160,"column":78}},{"start":{"line":161,"column":18},"end":{"line":161,"column":78}}],"line":159},"15":{"loc":{"start":{"line":171,"column":14},"end":{"line":171,"column":77}},"type":"cond-expr","locations":[{"start":{"line":171,"column":38},"end":{"line":171,"column":56}},{"start":{"line":171,"column":59},"end":{"line":171,"column":77}}],"line":171},"16":{"loc":{"start":{"line":182,"column":16},"end":{"line":184,"column":41}},"type":"cond-expr","locations":[{"start":{"line":183,"column":20},"end":{"line":183,"column":41}},{"start":{"line":184,"column":20},"end":{"line":184,"column":41}}],"line":182},"17":{"loc":{"start":{"line":191,"column":14},"end":{"line":191,"column":77}},"type":"cond-expr","locations":[{"start":{"line":191,"column":38},"end":{"line":191,"column":56}},{"start":{"line":191,"column":59},"end":{"line":191,"column":77}}],"line":191},"18":{"loc":{"start":{"line":198,"column":14},"end":{"line":200,"column":78}},"type":"cond-expr","locations":[{"start":{"line":199,"column":18},"end":{"line":199,"column":78}},{"start":{"line":200,"column":18},"end":{"line":200,"column":78}}],"line":198},"19":{"loc":{"start":{"line":210,"column":14},"end":{"line":210,"column":77}},"type":"cond-expr","locations":[{"start":{"line":210,"column":38},"end":{"line":210,"column":56}},{"start":{"line":210,"column":59},"end":{"line":210,"column":77}}],"line":210},"20":{"loc":{"start":{"line":223,"column":20},"end":{"line":225,"column":42}},"type":"cond-expr","locations":[{"start":{"line":224,"column":24},"end":{"line":224,"column":42}},{"start":{"line":225,"column":24},"end":{"line":225,"column":42}}],"line":223},"21":{"loc":{"start":{"line":234,"column":24},"end":{"line":236,"column":73}},"type":"cond-expr","locations":[{"start":{"line":235,"column":28},"end":{"line":235,"column":73}},{"start":{"line":236,"column":28},"end":{"line":236,"column":73}}],"line":234},"22":{"loc":{"start":{"line":239,"column":24},"end":{"line":241,"column":75}},"type":"binary-expr","locations":[{"start":{"line":239,"column":25},"end":{"line":241,"column":68}},{"start":{"line":241,"column":73},"end":{"line":241,"column":75}}],"line":239},"23":{"loc":{"start":{"line":239,"column":25},"end":{"line":241,"column":68}},"type":"cond-expr","locations":[{"start":{"line":240,"column":28},"end":{"line":240,"column":68}},{"start":{"line":241,"column":28},"end":{"line":241,"column":68}}],"line":239},"24":{"loc":{"start":{"line":250,"column":17},"end":{"line":253,"column":28}},"type":"cond-expr","locations":[{"start":{"line":251,"column":20},"end":{"line":251,"column":80}},{"start":{"line":252,"column":20},"end":{"line":253,"column":28}}],"line":250},"25":{"loc":{"start":{"line":259,"column":20},"end":{"line":261,"column":54}},"type":"cond-expr","locations":[{"start":{"line":260,"column":24},"end":{"line":260,"column":54}},{"start":{"line":261,"column":24},"end":{"line":261,"column":54}}],"line":259},"26":{"loc":{"start":{"line":264,"column":20},"end":{"line":266,"column":54}},"type":"cond-expr","locations":[{"start":{"line":265,"column":24},"end":{"line":265,"column":54}},{"start":{"line":266,"column":24},"end":{"line":266,"column":54}}],"line":264},"27":{"loc":{"start":{"line":269,"column":20},"end":{"line":271,"column":54}},"type":"cond-expr","locations":[{"start":{"line":270,"column":24},"end":{"line":270,"column":54}},{"start":{"line":271,"column":24},"end":{"line":271,"column":54}}],"line":269},"28":{"loc":{"start":{"line":277,"column":20},"end":{"line":281,"column":32}},"type":"cond-expr","locations":[{"start":{"line":278,"column":24},"end":{"line":279,"column":32}},{"start":{"line":280,"column":24},"end":{"line":281,"column":32}}],"line":277},"29":{"loc":{"start":{"line":284,"column":20},"end":{"line":288,"column":32}},"type":"cond-expr","locations":[{"start":{"line":285,"column":24},"end":{"line":286,"column":32}},{"start":{"line":287,"column":24},"end":{"line":288,"column":32}}],"line":284},"30":{"loc":{"start":{"line":291,"column":20},"end":{"line":293,"column":57}},"type":"cond-expr","locations":[{"start":{"line":292,"column":24},"end":{"line":292,"column":57}},{"start":{"line":293,"column":24},"end":{"line":293,"column":57}}],"line":291},"31":{"loc":{"start":{"line":296,"column":20},"end":{"line":298,"column":70}},"type":"cond-expr","locations":[{"start":{"line":297,"column":24},"end":{"line":297,"column":70}},{"start":{"line":298,"column":24},"end":{"line":298,"column":70}}],"line":296},"32":{"loc":{"start":{"line":301,"column":20},"end":{"line":305,"column":32}},"type":"cond-expr","locations":[{"start":{"line":302,"column":24},"end":{"line":303,"column":32}},{"start":{"line":304,"column":24},"end":{"line":305,"column":32}}],"line":301},"33":{"loc":{"start":{"line":314,"column":17},"end":{"line":317,"column":28}},"type":"cond-expr","locations":[{"start":{"line":315,"column":20},"end":{"line":315,"column":80}},{"start":{"line":316,"column":20},"end":{"line":317,"column":28}}],"line":314},"34":{"loc":{"start":{"line":320,"column":17},"end":{"line":323,"column":28}},"type":"cond-expr","locations":[{"start":{"line":321,"column":20},"end":{"line":321,"column":80}},{"start":{"line":322,"column":20},"end":{"line":323,"column":28}}],"line":320},"35":{"loc":{"start":{"line":326,"column":17},"end":{"line":329,"column":28}},"type":"cond-expr","locations":[{"start":{"line":327,"column":20},"end":{"line":327,"column":80}},{"start":{"line":328,"column":20},"end":{"line":329,"column":28}}],"line":326},"36":{"loc":{"start":{"line":332,"column":17},"end":{"line":335,"column":28}},"type":"cond-expr","locations":[{"start":{"line":333,"column":20},"end":{"line":333,"column":80}},{"start":{"line":334,"column":20},"end":{"line":335,"column":28}}],"line":332},"37":{"loc":{"start":{"line":338,"column":17},"end":{"line":341,"column":28}},"type":"cond-expr","locations":[{"start":{"line":339,"column":20},"end":{"line":339,"column":80}},{"start":{"line":340,"column":20},"end":{"line":341,"column":28}}],"line":338},"38":{"loc":{"start":{"line":344,"column":17},"end":{"line":347,"column":28}},"type":"cond-expr","locations":[{"start":{"line":345,"column":20},"end":{"line":345,"column":80}},{"start":{"line":346,"column":20},"end":{"line":347,"column":28}}],"line":344},"39":{"loc":{"start":{"line":350,"column":17},"end":{"line":353,"column":28}},"type":"cond-expr","locations":[{"start":{"line":351,"column":20},"end":{"line":351,"column":80}},{"start":{"line":352,"column":20},"end":{"line":353,"column":28}}],"line":350},"40":{"loc":{"start":{"line":356,"column":17},"end":{"line":359,"column":28}},"type":"cond-expr","locations":[{"start":{"line":357,"column":20},"end":{"line":357,"column":80}},{"start":{"line":358,"column":20},"end":{"line":359,"column":28}}],"line":356},"41":{"loc":{"start":{"line":362,"column":17},"end":{"line":365,"column":28}},"type":"cond-expr","locations":[{"start":{"line":363,"column":20},"end":{"line":363,"column":80}},{"start":{"line":364,"column":20},"end":{"line":365,"column":28}}],"line":362},"42":{"loc":{"start":{"line":368,"column":17},"end":{"line":371,"column":28}},"type":"cond-expr","locations":[{"start":{"line":369,"column":20},"end":{"line":369,"column":80}},{"start":{"line":370,"column":20},"end":{"line":371,"column":28}}],"line":368},"43":{"loc":{"start":{"line":374,"column":17},"end":{"line":378,"column":28}},"type":"cond-expr","locations":[{"start":{"line":375,"column":20},"end":{"line":376,"column":28}},{"start":{"line":377,"column":20},"end":{"line":378,"column":28}}],"line":374},"44":{"loc":{"start":{"line":410,"column":7},"end":{"line":414,"column":7}},"type":"cond-expr","locations":[{"start":{"line":411,"column":8},"end":{"line":411,"column":71}},{"start":{"line":413,"column":8},"end":{"line":413,"column":10}}],"line":410}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0,0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/oas-benefits-estimator/[id].js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/oas-benefits-estimator/[id].js","statementMap":{"0":{"start":{"line":13,"column":16},"end":{"line":13,"column":40}},"1":{"start":{"line":14,"column":21},"end":{"line":14,"column":45}},"2":{"start":{"line":15,"column":23},"end":{"line":15,"column":55}},"3":{"start":{"line":17,"column":2},"end":{"line":22,"column":9}},"4":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"5":{"start":{"line":19,"column":6},"end":{"line":19,"column":58}},"6":{"start":{"line":20,"column":6},"end":{"line":20,"column":56}},"7":{"start":{"line":24,"column":2},"end":{"line":445,"column":4}},"8":{"start":{"line":450,"column":19},"end":{"line":452,"column":3}},"9":{"start":{"line":454,"column":16},"end":{"line":454,"column":60}},"10":{"start":{"line":456,"column":2},"end":{"line":460,"column":5}},"11":{"start":{"line":457,"column":4},"end":{"line":459,"column":52}},"12":{"start":{"line":461,"column":2},"end":{"line":464,"column":4}},"13":{"start":{"line":467,"column":30},"end":{"line":493,"column":1}},"14":{"start":{"line":469,"column":19},"end":{"line":471,"column":3}},"15":{"start":{"line":473,"column":31},"end":{"line":475,"column":3}},"16":{"start":{"line":476,"column":16},"end":{"line":476,"column":43}},"17":{"start":{"line":478,"column":19},"end":{"line":483,"column":4}},"18":{"start":{"line":479,"column":4},"end":{"line":482,"column":6}},"19":{"start":{"line":484,"column":2},"end":{"line":492,"column":4}}},"fnMap":{"0":{"name":"OASUpdatePage","decl":{"start":{"line":12,"column":24},"end":{"line":12,"column":37}},"loc":{"start":{"line":12,"column":45},"end":{"line":446,"column":1}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":17,"column":12},"end":{"line":17,"column":13}},"loc":{"start":{"line":17,"column":18},"end":{"line":22,"column":3}},"line":17},"2":{"name":"getStaticPaths","decl":{"start":{"line":448,"column":22},"end":{"line":448,"column":36}},"loc":{"start":{"line":448,"column":39},"end":{"line":465,"column":1}},"line":448},"3":{"name":"(anonymous_3)","decl":{"start":{"line":456,"column":12},"end":{"line":456,"column":13}},"loc":{"start":{"line":456,"column":22},"end":{"line":460,"column":3}},"line":456},"4":{"name":"(anonymous_4)","decl":{"start":{"line":467,"column":30},"end":{"line":467,"column":31}},"loc":{"start":{"line":467,"column":60},"end":{"line":493,"column":1}},"line":467},"5":{"name":"(anonymous_5)","decl":{"start":{"line":478,"column":32},"end":{"line":478,"column":33}},"loc":{"start":{"line":478,"column":42},"end":{"line":483,"column":3}},"line":478}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},{"start":{},"end":{}}],"line":18},"1":{"loc":{"start":{"line":19,"column":30},"end":{"line":19,"column":57}},"type":"binary-expr","locations":[{"start":{"line":19,"column":30},"end":{"line":19,"column":51}},{"start":{"line":19,"column":55},"end":{"line":19,"column":57}}],"line":19},"2":{"loc":{"start":{"line":29,"column":10},"end":{"line":29,"column":79}},"type":"cond-expr","locations":[{"start":{"line":29,"column":34},"end":{"line":29,"column":55}},{"start":{"line":29,"column":58},"end":{"line":29,"column":79}}],"line":29},"3":{"loc":{"start":{"line":38,"column":11},"end":{"line":42,"column":11}},"type":"cond-expr","locations":[{"start":{"line":39,"column":12},"end":{"line":39,"column":52}},{"start":{"line":41,"column":12},"end":{"line":41,"column":14}}],"line":38},"4":{"loc":{"start":{"line":46,"column":13},"end":{"line":48,"column":72}},"type":"cond-expr","locations":[{"start":{"line":47,"column":16},"end":{"line":47,"column":61}},{"start":{"line":48,"column":16},"end":{"line":48,"column":72}}],"line":46},"5":{"loc":{"start":{"line":53,"column":14},"end":{"line":53,"column":77}},"type":"cond-expr","locations":[{"start":{"line":53,"column":38},"end":{"line":53,"column":56}},{"start":{"line":53,"column":59},"end":{"line":53,"column":77}}],"line":53},"6":{"loc":{"start":{"line":62,"column":14},"end":{"line":64,"column":39}},"type":"cond-expr","locations":[{"start":{"line":63,"column":18},"end":{"line":63,"column":39}},{"start":{"line":64,"column":18},"end":{"line":64,"column":39}}],"line":62},"7":{"loc":{"start":{"line":72,"column":14},"end":{"line":74,"column":41}},"type":"cond-expr","locations":[{"start":{"line":73,"column":18},"end":{"line":73,"column":41}},{"start":{"line":74,"column":18},"end":{"line":74,"column":41}}],"line":72},"8":{"loc":{"start":{"line":79,"column":21},"end":{"line":79,"column":58}},"type":"cond-expr","locations":[{"start":{"line":79,"column":45},"end":{"line":79,"column":50}},{"start":{"line":79,"column":53},"end":{"line":79,"column":58}}],"line":79},"9":{"loc":{"start":{"line":94,"column":14},"end":{"line":94,"column":77}},"type":"cond-expr","locations":[{"start":{"line":94,"column":38},"end":{"line":94,"column":56}},{"start":{"line":94,"column":59},"end":{"line":94,"column":77}}],"line":94},"10":{"loc":{"start":{"line":112,"column":16},"end":{"line":114,"column":41}},"type":"cond-expr","locations":[{"start":{"line":113,"column":20},"end":{"line":113,"column":41}},{"start":{"line":114,"column":20},"end":{"line":114,"column":41}}],"line":112},"11":{"loc":{"start":{"line":121,"column":14},"end":{"line":121,"column":77}},"type":"cond-expr","locations":[{"start":{"line":121,"column":38},"end":{"line":121,"column":56}},{"start":{"line":121,"column":59},"end":{"line":121,"column":77}}],"line":121},"12":{"loc":{"start":{"line":127,"column":14},"end":{"line":129,"column":78}},"type":"cond-expr","locations":[{"start":{"line":128,"column":18},"end":{"line":128,"column":78}},{"start":{"line":129,"column":18},"end":{"line":129,"column":78}}],"line":127},"13":{"loc":{"start":{"line":139,"column":14},"end":{"line":139,"column":77}},"type":"cond-expr","locations":[{"start":{"line":139,"column":38},"end":{"line":139,"column":56}},{"start":{"line":139,"column":59},"end":{"line":139,"column":77}}],"line":139},"14":{"loc":{"start":{"line":150,"column":16},"end":{"line":152,"column":41}},"type":"cond-expr","locations":[{"start":{"line":151,"column":20},"end":{"line":151,"column":41}},{"start":{"line":152,"column":20},"end":{"line":152,"column":41}}],"line":150},"15":{"loc":{"start":{"line":159,"column":14},"end":{"line":159,"column":77}},"type":"cond-expr","locations":[{"start":{"line":159,"column":38},"end":{"line":159,"column":56}},{"start":{"line":159,"column":59},"end":{"line":159,"column":77}}],"line":159},"16":{"loc":{"start":{"line":166,"column":14},"end":{"line":168,"column":78}},"type":"cond-expr","locations":[{"start":{"line":167,"column":18},"end":{"line":167,"column":78}},{"start":{"line":168,"column":18},"end":{"line":168,"column":78}}],"line":166},"17":{"loc":{"start":{"line":178,"column":14},"end":{"line":178,"column":77}},"type":"cond-expr","locations":[{"start":{"line":178,"column":38},"end":{"line":178,"column":56}},{"start":{"line":178,"column":59},"end":{"line":178,"column":77}}],"line":178},"18":{"loc":{"start":{"line":187,"column":14},"end":{"line":189,"column":78}},"type":"cond-expr","locations":[{"start":{"line":188,"column":18},"end":{"line":188,"column":78}},{"start":{"line":189,"column":18},"end":{"line":189,"column":78}}],"line":187},"19":{"loc":{"start":{"line":195,"column":16},"end":{"line":195,"column":73}},"type":"cond-expr","locations":[{"start":{"line":195,"column":40},"end":{"line":195,"column":55}},{"start":{"line":195,"column":58},"end":{"line":195,"column":73}}],"line":195},"20":{"loc":{"start":{"line":198,"column":15},"end":{"line":200,"column":40}},"type":"cond-expr","locations":[{"start":{"line":199,"column":18},"end":{"line":199,"column":40}},{"start":{"line":200,"column":18},"end":{"line":200,"column":40}}],"line":198},"21":{"loc":{"start":{"line":207,"column":16},"end":{"line":207,"column":73}},"type":"cond-expr","locations":[{"start":{"line":207,"column":40},"end":{"line":207,"column":55}},{"start":{"line":207,"column":58},"end":{"line":207,"column":73}}],"line":207},"22":{"loc":{"start":{"line":210,"column":15},"end":{"line":212,"column":40}},"type":"cond-expr","locations":[{"start":{"line":211,"column":18},"end":{"line":211,"column":40}},{"start":{"line":212,"column":18},"end":{"line":212,"column":40}}],"line":210},"23":{"loc":{"start":{"line":223,"column":15},"end":{"line":225,"column":78}},"type":"cond-expr","locations":[{"start":{"line":224,"column":18},"end":{"line":224,"column":78}},{"start":{"line":225,"column":18},"end":{"line":225,"column":78}}],"line":223},"24":{"loc":{"start":{"line":228,"column":15},"end":{"line":230,"column":78}},"type":"cond-expr","locations":[{"start":{"line":229,"column":18},"end":{"line":229,"column":78}},{"start":{"line":230,"column":18},"end":{"line":230,"column":78}}],"line":228},"25":{"loc":{"start":{"line":237,"column":22},"end":{"line":239,"column":71}},"type":"cond-expr","locations":[{"start":{"line":238,"column":26},"end":{"line":238,"column":71}},{"start":{"line":239,"column":26},"end":{"line":239,"column":71}}],"line":237},"26":{"loc":{"start":{"line":242,"column":22},"end":{"line":244,"column":66}},"type":"cond-expr","locations":[{"start":{"line":243,"column":26},"end":{"line":243,"column":66}},{"start":{"line":244,"column":26},"end":{"line":244,"column":66}}],"line":242},"27":{"loc":{"start":{"line":253,"column":15},"end":{"line":255,"column":78}},"type":"cond-expr","locations":[{"start":{"line":254,"column":18},"end":{"line":254,"column":78}},{"start":{"line":255,"column":18},"end":{"line":255,"column":78}}],"line":253},"28":{"loc":{"start":{"line":258,"column":15},"end":{"line":260,"column":78}},"type":"cond-expr","locations":[{"start":{"line":259,"column":18},"end":{"line":259,"column":78}},{"start":{"line":260,"column":18},"end":{"line":260,"column":78}}],"line":258},"29":{"loc":{"start":{"line":263,"column":15},"end":{"line":265,"column":78}},"type":"cond-expr","locations":[{"start":{"line":264,"column":18},"end":{"line":264,"column":78}},{"start":{"line":265,"column":18},"end":{"line":265,"column":78}}],"line":263},"30":{"loc":{"start":{"line":269,"column":17},"end":{"line":273,"column":39}},"type":"cond-expr","locations":[{"start":{"line":270,"column":20},"end":{"line":271,"column":39}},{"start":{"line":272,"column":20},"end":{"line":273,"column":39}}],"line":269},"31":{"loc":{"start":{"line":276,"column":17},"end":{"line":280,"column":39}},"type":"cond-expr","locations":[{"start":{"line":277,"column":20},"end":{"line":278,"column":39}},{"start":{"line":279,"column":20},"end":{"line":280,"column":39}}],"line":276},"32":{"loc":{"start":{"line":283,"column":17},"end":{"line":287,"column":39}},"type":"cond-expr","locations":[{"start":{"line":284,"column":20},"end":{"line":285,"column":39}},{"start":{"line":286,"column":20},"end":{"line":287,"column":39}}],"line":283},"33":{"loc":{"start":{"line":291,"column":15},"end":{"line":293,"column":78}},"type":"cond-expr","locations":[{"start":{"line":292,"column":18},"end":{"line":292,"column":78}},{"start":{"line":293,"column":18},"end":{"line":293,"column":78}}],"line":291},"34":{"loc":{"start":{"line":296,"column":15},"end":{"line":298,"column":78}},"type":"cond-expr","locations":[{"start":{"line":297,"column":18},"end":{"line":297,"column":78}},{"start":{"line":298,"column":18},"end":{"line":298,"column":78}}],"line":296},"35":{"loc":{"start":{"line":301,"column":15},"end":{"line":303,"column":78}},"type":"cond-expr","locations":[{"start":{"line":302,"column":18},"end":{"line":302,"column":78}},{"start":{"line":303,"column":18},"end":{"line":303,"column":78}}],"line":301},"36":{"loc":{"start":{"line":306,"column":15},"end":{"line":308,"column":79}},"type":"cond-expr","locations":[{"start":{"line":307,"column":18},"end":{"line":307,"column":79}},{"start":{"line":308,"column":18},"end":{"line":308,"column":79}}],"line":306},"37":{"loc":{"start":{"line":311,"column":15},"end":{"line":313,"column":79}},"type":"cond-expr","locations":[{"start":{"line":312,"column":18},"end":{"line":312,"column":79}},{"start":{"line":313,"column":18},"end":{"line":313,"column":79}}],"line":311},"38":{"loc":{"start":{"line":316,"column":15},"end":{"line":318,"column":79}},"type":"cond-expr","locations":[{"start":{"line":317,"column":18},"end":{"line":317,"column":79}},{"start":{"line":318,"column":18},"end":{"line":318,"column":79}}],"line":316},"39":{"loc":{"start":{"line":321,"column":15},"end":{"line":323,"column":79}},"type":"cond-expr","locations":[{"start":{"line":322,"column":18},"end":{"line":322,"column":79}},{"start":{"line":323,"column":18},"end":{"line":323,"column":79}}],"line":321},"40":{"loc":{"start":{"line":326,"column":15},"end":{"line":328,"column":79}},"type":"cond-expr","locations":[{"start":{"line":327,"column":18},"end":{"line":327,"column":79}},{"start":{"line":328,"column":18},"end":{"line":328,"column":79}}],"line":326},"41":{"loc":{"start":{"line":331,"column":15},"end":{"line":333,"column":79}},"type":"cond-expr","locations":[{"start":{"line":332,"column":18},"end":{"line":332,"column":79}},{"start":{"line":333,"column":18},"end":{"line":333,"column":79}}],"line":331},"42":{"loc":{"start":{"line":337,"column":17},"end":{"line":341,"column":39}},"type":"cond-expr","locations":[{"start":{"line":338,"column":20},"end":{"line":339,"column":39}},{"start":{"line":340,"column":20},"end":{"line":341,"column":39}}],"line":337},"43":{"loc":{"start":{"line":344,"column":17},"end":{"line":348,"column":39}},"type":"cond-expr","locations":[{"start":{"line":345,"column":20},"end":{"line":346,"column":39}},{"start":{"line":347,"column":20},"end":{"line":348,"column":39}}],"line":344},"44":{"loc":{"start":{"line":352,"column":15},"end":{"line":354,"column":79}},"type":"cond-expr","locations":[{"start":{"line":353,"column":18},"end":{"line":353,"column":79}},{"start":{"line":354,"column":18},"end":{"line":354,"column":79}}],"line":352},"45":{"loc":{"start":{"line":358,"column":17},"end":{"line":362,"column":39}},"type":"cond-expr","locations":[{"start":{"line":359,"column":20},"end":{"line":360,"column":39}},{"start":{"line":361,"column":20},"end":{"line":362,"column":39}}],"line":358},"46":{"loc":{"start":{"line":365,"column":17},"end":{"line":369,"column":39}},"type":"cond-expr","locations":[{"start":{"line":366,"column":20},"end":{"line":367,"column":39}},{"start":{"line":368,"column":20},"end":{"line":369,"column":39}}],"line":365},"47":{"loc":{"start":{"line":372,"column":17},"end":{"line":376,"column":39}},"type":"cond-expr","locations":[{"start":{"line":373,"column":20},"end":{"line":374,"column":39}},{"start":{"line":375,"column":20},"end":{"line":376,"column":39}}],"line":372},"48":{"loc":{"start":{"line":380,"column":15},"end":{"line":382,"column":79}},"type":"cond-expr","locations":[{"start":{"line":381,"column":18},"end":{"line":381,"column":79}},{"start":{"line":382,"column":18},"end":{"line":382,"column":79}}],"line":380},"49":{"loc":{"start":{"line":385,"column":15},"end":{"line":387,"column":79}},"type":"cond-expr","locations":[{"start":{"line":386,"column":18},"end":{"line":386,"column":79}},{"start":{"line":387,"column":18},"end":{"line":387,"column":79}}],"line":385},"50":{"loc":{"start":{"line":390,"column":15},"end":{"line":392,"column":79}},"type":"cond-expr","locations":[{"start":{"line":391,"column":18},"end":{"line":391,"column":79}},{"start":{"line":392,"column":18},"end":{"line":392,"column":79}}],"line":390},"51":{"loc":{"start":{"line":399,"column":16},"end":{"line":401,"column":62}},"type":"cond-expr","locations":[{"start":{"line":400,"column":20},"end":{"line":400,"column":62}},{"start":{"line":401,"column":20},"end":{"line":401,"column":62}}],"line":399},"52":{"loc":{"start":{"line":404,"column":16},"end":{"line":406,"column":53}},"type":"cond-expr","locations":[{"start":{"line":405,"column":20},"end":{"line":405,"column":53}},{"start":{"line":406,"column":20},"end":{"line":406,"column":53}}],"line":404},"53":{"loc":{"start":{"line":414,"column":12},"end":{"line":416,"column":49}},"type":"cond-expr","locations":[{"start":{"line":415,"column":16},"end":{"line":415,"column":49}},{"start":{"line":416,"column":16},"end":{"line":416,"column":49}}],"line":414},"54":{"loc":{"start":{"line":419,"column":12},"end":{"line":421,"column":76}},"type":"cond-expr","locations":[{"start":{"line":420,"column":16},"end":{"line":420,"column":76}},{"start":{"line":421,"column":16},"end":{"line":421,"column":76}}],"line":419},"55":{"loc":{"start":{"line":426,"column":14},"end":{"line":428,"column":67}},"type":"cond-expr","locations":[{"start":{"line":427,"column":18},"end":{"line":427,"column":67}},{"start":{"line":428,"column":18},"end":{"line":428,"column":67}}],"line":426},"56":{"loc":{"start":{"line":430,"column":14},"end":{"line":432,"column":76}},"type":"cond-expr","locations":[{"start":{"line":431,"column":18},"end":{"line":431,"column":76}},{"start":{"line":432,"column":18},"end":{"line":432,"column":76}}],"line":430},"57":{"loc":{"start":{"line":439,"column":7},"end":{"line":443,"column":7}},"type":"cond-expr","locations":[{"start":{"line":440,"column":8},"end":{"line":440,"column":71}},{"start":{"line":442,"column":8},"end":{"line":442,"column":10}}],"line":439},"58":{"loc":{"start":{"line":457,"column":4},"end":{"line":459,"column":51}},"type":"cond-expr","locations":[{"start":{"line":458,"column":9},"end":{"line":458,"column":50}},{"start":{"line":459,"column":9},"end":{"line":459,"column":50}}],"line":457},"59":{"loc":{"start":{"line":480,"column":6},"end":{"line":481,"column":47}},"type":"binary-expr","locations":[{"start":{"line":480,"column":6},"end":{"line":480,"column":47}},{"start":{"line":481,"column":6},"end":{"line":481,"column":47}}],"line":480}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[0,0],"46":[0,0],"47":[0,0],"48":[0,0],"49":[0,0],"50":[0,0],"51":[0,0],"52":[0,0],"53":[0,0],"54":[0,0],"55":[0,0],"56":[0,0],"57":[0,0],"58":[0,0],"59":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/oas-benefits-estimator/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/oas-benefits-estimator/index.js","statementMap":{"0":{"start":{"line":14,"column":21},"end":{"line":14,"column":50}},"1":{"start":{"line":15,"column":24},"end":{"line":15,"column":51}},"2":{"start":{"line":16,"column":31},"end":{"line":24,"column":3}},"3":{"start":{"line":19,"column":8},"end":{"line":22,"column":31}},"4":{"start":{"line":25,"column":26},"end":{"line":34,"column":3}},"5":{"start":{"line":36,"column":32},"end":{"line":59,"column":4}},"6":{"start":{"line":37,"column":4},"end":{"line":58,"column":9}},"7":{"start":{"line":61,"column":2},"end":{"line":66,"column":9}},"8":{"start":{"line":62,"column":4},"end":{"line":65,"column":5}},"9":{"start":{"line":63,"column":6},"end":{"line":63,"column":58}},"10":{"start":{"line":64,"column":6},"end":{"line":64,"column":56}},"11":{"start":{"line":68,"column":2},"end":{"line":448,"column":4}},"12":{"start":{"line":451,"column":30},"end":{"line":472,"column":1}},"13":{"start":{"line":453,"column":29},"end":{"line":455,"column":3}},"14":{"start":{"line":457,"column":31},"end":{"line":459,"column":3}},"15":{"start":{"line":461,"column":2},"end":{"line":471,"column":4}}},"fnMap":{"0":{"name":"OasBenefitsEstimator","decl":{"start":{"line":13,"column":24},"end":{"line":13,"column":44}},"loc":{"start":{"line":13,"column":52},"end":{"line":449,"column":1}},"line":13},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":6},"end":{"line":18,"column":7}},"loc":{"start":{"line":19,"column":8},"end":{"line":22,"column":31}},"line":19},"2":{"name":"(anonymous_2)","decl":{"start":{"line":36,"column":48},"end":{"line":36,"column":49}},"loc":{"start":{"line":37,"column":4},"end":{"line":58,"column":9}},"line":37},"3":{"name":"(anonymous_3)","decl":{"start":{"line":61,"column":12},"end":{"line":61,"column":13}},"loc":{"start":{"line":61,"column":18},"end":{"line":66,"column":3}},"line":61},"4":{"name":"(anonymous_4)","decl":{"start":{"line":451,"column":30},"end":{"line":451,"column":31}},"loc":{"start":{"line":451,"column":52},"end":{"line":472,"column":1}},"line":451}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":8},"end":{"line":22,"column":31}},"type":"binary-expr","locations":[{"start":{"line":19,"column":8},"end":{"line":19,"column":31}},{"start":{"line":20,"column":8},"end":{"line":20,"column":29}},{"start":{"line":21,"column":8},"end":{"line":21,"column":37}},{"start":{"line":22,"column":8},"end":{"line":22,"column":31}}],"line":19},"1":{"loc":{"start":{"line":41,"column":10},"end":{"line":43,"column":73}},"type":"cond-expr","locations":[{"start":{"line":42,"column":14},"end":{"line":42,"column":73}},{"start":{"line":43,"column":14},"end":{"line":43,"column":73}}],"line":41},"2":{"loc":{"start":{"line":46,"column":10},"end":{"line":48,"column":55}},"type":"binary-expr","locations":[{"start":{"line":46,"column":11},"end":{"line":48,"column":48}},{"start":{"line":48,"column":53},"end":{"line":48,"column":55}}],"line":46},"3":{"loc":{"start":{"line":46,"column":11},"end":{"line":48,"column":48}},"type":"cond-expr","locations":[{"start":{"line":47,"column":14},"end":{"line":47,"column":48}},{"start":{"line":48,"column":14},"end":{"line":48,"column":48}}],"line":46},"4":{"loc":{"start":{"line":50,"column":15},"end":{"line":50,"column":74}},"type":"cond-expr","locations":[{"start":{"line":50,"column":39},"end":{"line":50,"column":55}},{"start":{"line":50,"column":58},"end":{"line":50,"column":74}}],"line":50},"5":{"loc":{"start":{"line":51,"column":14},"end":{"line":51,"column":79}},"type":"cond-expr","locations":[{"start":{"line":51,"column":38},"end":{"line":51,"column":57}},{"start":{"line":51,"column":60},"end":{"line":51,"column":79}}],"line":51},"6":{"loc":{"start":{"line":53,"column":10},"end":{"line":55,"column":48}},"type":"cond-expr","locations":[{"start":{"line":54,"column":14},"end":{"line":54,"column":48}},{"start":{"line":55,"column":14},"end":{"line":55,"column":48}}],"line":53},"7":{"loc":{"start":{"line":62,"column":4},"end":{"line":65,"column":5}},"type":"if","locations":[{"start":{"line":62,"column":4},"end":{"line":65,"column":5}},{"start":{},"end":{}}],"line":62},"8":{"loc":{"start":{"line":63,"column":30},"end":{"line":63,"column":57}},"type":"binary-expr","locations":[{"start":{"line":63,"column":30},"end":{"line":63,"column":51}},{"start":{"line":63,"column":55},"end":{"line":63,"column":57}}],"line":63},"9":{"loc":{"start":{"line":73,"column":10},"end":{"line":73,"column":79}},"type":"cond-expr","locations":[{"start":{"line":73,"column":34},"end":{"line":73,"column":55}},{"start":{"line":73,"column":58},"end":{"line":73,"column":79}}],"line":73},"10":{"loc":{"start":{"line":82,"column":11},"end":{"line":86,"column":11}},"type":"cond-expr","locations":[{"start":{"line":83,"column":12},"end":{"line":83,"column":52}},{"start":{"line":85,"column":12},"end":{"line":85,"column":14}}],"line":82},"11":{"loc":{"start":{"line":90,"column":13},"end":{"line":92,"column":72}},"type":"cond-expr","locations":[{"start":{"line":91,"column":16},"end":{"line":91,"column":61}},{"start":{"line":92,"column":16},"end":{"line":92,"column":72}}],"line":90},"12":{"loc":{"start":{"line":97,"column":14},"end":{"line":99,"column":67}},"type":"cond-expr","locations":[{"start":{"line":98,"column":18},"end":{"line":98,"column":67}},{"start":{"line":99,"column":18},"end":{"line":99,"column":67}}],"line":97},"13":{"loc":{"start":{"line":109,"column":16},"end":{"line":111,"column":41}},"type":"cond-expr","locations":[{"start":{"line":110,"column":20},"end":{"line":110,"column":41}},{"start":{"line":111,"column":20},"end":{"line":111,"column":41}}],"line":109},"14":{"loc":{"start":{"line":119,"column":14},"end":{"line":121,"column":39}},"type":"cond-expr","locations":[{"start":{"line":120,"column":18},"end":{"line":120,"column":39}},{"start":{"line":121,"column":18},"end":{"line":121,"column":39}}],"line":119},"15":{"loc":{"start":{"line":129,"column":14},"end":{"line":131,"column":41}},"type":"cond-expr","locations":[{"start":{"line":130,"column":18},"end":{"line":130,"column":41}},{"start":{"line":131,"column":18},"end":{"line":131,"column":41}}],"line":129},"16":{"loc":{"start":{"line":136,"column":21},"end":{"line":136,"column":58}},"type":"cond-expr","locations":[{"start":{"line":136,"column":45},"end":{"line":136,"column":50}},{"start":{"line":136,"column":53},"end":{"line":136,"column":58}}],"line":136},"17":{"loc":{"start":{"line":151,"column":14},"end":{"line":153,"column":67}},"type":"cond-expr","locations":[{"start":{"line":152,"column":18},"end":{"line":152,"column":67}},{"start":{"line":153,"column":18},"end":{"line":153,"column":67}}],"line":151},"18":{"loc":{"start":{"line":171,"column":16},"end":{"line":173,"column":41}},"type":"cond-expr","locations":[{"start":{"line":172,"column":20},"end":{"line":172,"column":41}},{"start":{"line":173,"column":20},"end":{"line":173,"column":41}}],"line":171},"19":{"loc":{"start":{"line":180,"column":14},"end":{"line":180,"column":77}},"type":"cond-expr","locations":[{"start":{"line":180,"column":38},"end":{"line":180,"column":56}},{"start":{"line":180,"column":59},"end":{"line":180,"column":77}}],"line":180},"20":{"loc":{"start":{"line":186,"column":14},"end":{"line":188,"column":78}},"type":"cond-expr","locations":[{"start":{"line":187,"column":18},"end":{"line":187,"column":78}},{"start":{"line":188,"column":18},"end":{"line":188,"column":78}}],"line":186},"21":{"loc":{"start":{"line":198,"column":14},"end":{"line":198,"column":77}},"type":"cond-expr","locations":[{"start":{"line":198,"column":38},"end":{"line":198,"column":56}},{"start":{"line":198,"column":59},"end":{"line":198,"column":77}}],"line":198},"22":{"loc":{"start":{"line":209,"column":16},"end":{"line":211,"column":41}},"type":"cond-expr","locations":[{"start":{"line":210,"column":20},"end":{"line":210,"column":41}},{"start":{"line":211,"column":20},"end":{"line":211,"column":41}}],"line":209},"23":{"loc":{"start":{"line":218,"column":14},"end":{"line":218,"column":77}},"type":"cond-expr","locations":[{"start":{"line":218,"column":38},"end":{"line":218,"column":56}},{"start":{"line":218,"column":59},"end":{"line":218,"column":77}}],"line":218},"24":{"loc":{"start":{"line":225,"column":14},"end":{"line":227,"column":78}},"type":"cond-expr","locations":[{"start":{"line":226,"column":18},"end":{"line":226,"column":78}},{"start":{"line":227,"column":18},"end":{"line":227,"column":78}}],"line":225},"25":{"loc":{"start":{"line":237,"column":14},"end":{"line":237,"column":77}},"type":"cond-expr","locations":[{"start":{"line":237,"column":38},"end":{"line":237,"column":56}},{"start":{"line":237,"column":59},"end":{"line":237,"column":77}}],"line":237},"26":{"loc":{"start":{"line":250,"column":20},"end":{"line":254,"column":32}},"type":"cond-expr","locations":[{"start":{"line":251,"column":24},"end":{"line":252,"column":32}},{"start":{"line":253,"column":24},"end":{"line":254,"column":32}}],"line":250},"27":{"loc":{"start":{"line":263,"column":24},"end":{"line":265,"column":73}},"type":"cond-expr","locations":[{"start":{"line":264,"column":28},"end":{"line":264,"column":73}},{"start":{"line":265,"column":28},"end":{"line":265,"column":73}}],"line":263},"28":{"loc":{"start":{"line":268,"column":24},"end":{"line":270,"column":75}},"type":"binary-expr","locations":[{"start":{"line":268,"column":25},"end":{"line":270,"column":68}},{"start":{"line":270,"column":73},"end":{"line":270,"column":75}}],"line":268},"29":{"loc":{"start":{"line":268,"column":25},"end":{"line":270,"column":68}},"type":"cond-expr","locations":[{"start":{"line":269,"column":28},"end":{"line":269,"column":68}},{"start":{"line":270,"column":28},"end":{"line":270,"column":68}}],"line":268},"30":{"loc":{"start":{"line":279,"column":17},"end":{"line":282,"column":28}},"type":"cond-expr","locations":[{"start":{"line":280,"column":20},"end":{"line":280,"column":80}},{"start":{"line":281,"column":20},"end":{"line":282,"column":28}}],"line":279},"31":{"loc":{"start":{"line":288,"column":20},"end":{"line":290,"column":54}},"type":"cond-expr","locations":[{"start":{"line":289,"column":24},"end":{"line":289,"column":54}},{"start":{"line":290,"column":24},"end":{"line":290,"column":54}}],"line":288},"32":{"loc":{"start":{"line":293,"column":20},"end":{"line":295,"column":54}},"type":"cond-expr","locations":[{"start":{"line":294,"column":24},"end":{"line":294,"column":54}},{"start":{"line":295,"column":24},"end":{"line":295,"column":54}}],"line":293},"33":{"loc":{"start":{"line":298,"column":20},"end":{"line":300,"column":54}},"type":"cond-expr","locations":[{"start":{"line":299,"column":24},"end":{"line":299,"column":54}},{"start":{"line":300,"column":24},"end":{"line":300,"column":54}}],"line":298},"34":{"loc":{"start":{"line":306,"column":20},"end":{"line":310,"column":32}},"type":"cond-expr","locations":[{"start":{"line":307,"column":24},"end":{"line":308,"column":32}},{"start":{"line":309,"column":24},"end":{"line":310,"column":32}}],"line":306},"35":{"loc":{"start":{"line":313,"column":20},"end":{"line":317,"column":32}},"type":"cond-expr","locations":[{"start":{"line":314,"column":24},"end":{"line":315,"column":32}},{"start":{"line":316,"column":24},"end":{"line":317,"column":32}}],"line":313},"36":{"loc":{"start":{"line":320,"column":20},"end":{"line":322,"column":57}},"type":"cond-expr","locations":[{"start":{"line":321,"column":24},"end":{"line":321,"column":57}},{"start":{"line":322,"column":24},"end":{"line":322,"column":57}}],"line":320},"37":{"loc":{"start":{"line":325,"column":20},"end":{"line":327,"column":70}},"type":"cond-expr","locations":[{"start":{"line":326,"column":24},"end":{"line":326,"column":70}},{"start":{"line":327,"column":24},"end":{"line":327,"column":70}}],"line":325},"38":{"loc":{"start":{"line":330,"column":20},"end":{"line":334,"column":32}},"type":"cond-expr","locations":[{"start":{"line":331,"column":24},"end":{"line":332,"column":32}},{"start":{"line":333,"column":24},"end":{"line":334,"column":32}}],"line":330},"39":{"loc":{"start":{"line":342,"column":15},"end":{"line":344,"column":78}},"type":"cond-expr","locations":[{"start":{"line":343,"column":18},"end":{"line":343,"column":78}},{"start":{"line":344,"column":18},"end":{"line":344,"column":78}}],"line":342},"40":{"loc":{"start":{"line":351,"column":16},"end":{"line":353,"column":62}},"type":"cond-expr","locations":[{"start":{"line":352,"column":20},"end":{"line":352,"column":62}},{"start":{"line":353,"column":20},"end":{"line":353,"column":62}}],"line":351},"41":{"loc":{"start":{"line":356,"column":16},"end":{"line":358,"column":53}},"type":"cond-expr","locations":[{"start":{"line":357,"column":20},"end":{"line":357,"column":53}},{"start":{"line":358,"column":20},"end":{"line":358,"column":53}}],"line":356},"42":{"loc":{"start":{"line":363,"column":15},"end":{"line":365,"column":78}},"type":"cond-expr","locations":[{"start":{"line":364,"column":18},"end":{"line":364,"column":78}},{"start":{"line":365,"column":18},"end":{"line":365,"column":78}}],"line":363},"43":{"loc":{"start":{"line":368,"column":15},"end":{"line":370,"column":78}},"type":"cond-expr","locations":[{"start":{"line":369,"column":18},"end":{"line":369,"column":78}},{"start":{"line":370,"column":18},"end":{"line":370,"column":78}}],"line":368},"44":{"loc":{"start":{"line":373,"column":15},"end":{"line":375,"column":78}},"type":"cond-expr","locations":[{"start":{"line":374,"column":18},"end":{"line":374,"column":78}},{"start":{"line":375,"column":18},"end":{"line":375,"column":78}}],"line":373},"45":{"loc":{"start":{"line":378,"column":15},"end":{"line":380,"column":78}},"type":"cond-expr","locations":[{"start":{"line":379,"column":18},"end":{"line":379,"column":78}},{"start":{"line":380,"column":18},"end":{"line":380,"column":78}}],"line":378},"46":{"loc":{"start":{"line":384,"column":13},"end":{"line":386,"column":77}},"type":"cond-expr","locations":[{"start":{"line":385,"column":16},"end":{"line":385,"column":77}},{"start":{"line":386,"column":16},"end":{"line":386,"column":77}}],"line":384},"47":{"loc":{"start":{"line":393,"column":16},"end":{"line":395,"column":62}},"type":"cond-expr","locations":[{"start":{"line":394,"column":20},"end":{"line":394,"column":62}},{"start":{"line":395,"column":20},"end":{"line":395,"column":62}}],"line":393},"48":{"loc":{"start":{"line":398,"column":16},"end":{"line":400,"column":53}},"type":"cond-expr","locations":[{"start":{"line":399,"column":20},"end":{"line":399,"column":53}},{"start":{"line":400,"column":20},"end":{"line":400,"column":53}}],"line":398},"49":{"loc":{"start":{"line":406,"column":13},"end":{"line":408,"column":51}},"type":"cond-expr","locations":[{"start":{"line":407,"column":16},"end":{"line":407,"column":51}},{"start":{"line":408,"column":16},"end":{"line":408,"column":51}}],"line":406},"50":{"loc":{"start":{"line":417,"column":12},"end":{"line":419,"column":49}},"type":"cond-expr","locations":[{"start":{"line":418,"column":16},"end":{"line":418,"column":49}},{"start":{"line":419,"column":16},"end":{"line":419,"column":49}}],"line":417},"51":{"loc":{"start":{"line":422,"column":12},"end":{"line":424,"column":76}},"type":"cond-expr","locations":[{"start":{"line":423,"column":16},"end":{"line":423,"column":76}},{"start":{"line":424,"column":16},"end":{"line":424,"column":76}}],"line":422},"52":{"loc":{"start":{"line":429,"column":14},"end":{"line":431,"column":67}},"type":"cond-expr","locations":[{"start":{"line":430,"column":18},"end":{"line":430,"column":67}},{"start":{"line":431,"column":18},"end":{"line":431,"column":67}}],"line":429},"53":{"loc":{"start":{"line":433,"column":14},"end":{"line":435,"column":76}},"type":"cond-expr","locations":[{"start":{"line":434,"column":18},"end":{"line":434,"column":76}},{"start":{"line":435,"column":18},"end":{"line":435,"column":76}}],"line":433},"54":{"loc":{"start":{"line":442,"column":7},"end":{"line":446,"column":7}},"type":"cond-expr","locations":[{"start":{"line":443,"column":8},"end":{"line":443,"column":71}},{"start":{"line":445,"column":8},"end":{"line":445,"column":10}}],"line":442}},"s":{"0":1,"1":1,"2":1,"3":12,"4":1,"5":1,"6":1,"7":1,"8":1,"9":0,"10":0,"11":1,"12":1,"13":0,"14":0,"15":0},"f":{"0":1,"1":12,"2":1,"3":1,"4":0},"b":{"0":[12,11,10,9],"1":[0,1],"2":[1,1],"3":[0,1],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,0],"9":[0,1],"10":[0,1],"11":[0,1],"12":[0,1],"13":[0,1],"14":[0,1],"15":[0,1],"16":[0,1],"17":[0,1],"18":[0,1],"19":[0,1],"20":[0,1],"21":[0,1],"22":[0,1],"23":[0,1],"24":[0,1],"25":[0,1],"26":[0,1],"27":[0,1],"28":[1,1],"29":[0,1],"30":[0,1],"31":[0,1],"32":[0,1],"33":[0,1],"34":[0,1],"35":[0,1],"36":[0,1],"37":[0,1],"38":[0,1],"39":[0,1],"40":[0,1],"41":[0,1],"42":[0,1],"43":[0,1],"44":[0,1],"45":[0,1],"46":[0,1],"47":[0,1],"48":[0,1],"49":[0,1],"50":[0,1],"51":[0,1],"52":[0,1],"53":[0,1],"54":[0,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b6b52e31441842bf3d9ebf1f276bc721efd0b733"} +} diff --git a/refs/pull/858/merge/coverage/lcov-report/base.css b/refs/pull/858/merge/coverage/lcov-report/base.css new file mode 100644 index 0000000000..f418035b46 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/refs/pull/858/merge/coverage/lcov-report/block-navigation.js b/refs/pull/858/merge/coverage/lcov-report/block-navigation.js new file mode 100644 index 0000000000..cc12130231 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/block-navigation.js @@ -0,0 +1,87 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/ActionButton.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/ActionButton.js.html new file mode 100644 index 0000000000..d8f7a8742b --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/ActionButton.js.html @@ -0,0 +1,781 @@ + + + + + + Code coverage report for components/atoms/ActionButton.js + + + + + + + + + +
+
+

All files / components/atoms ActionButton.js

+
+ +
+ 100% + Statements + 15/15 +
+ + +
+ 84% + Branches + 42/50 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 100% + Lines + 15/15 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233  +  +  +  +  +  +  +  +  +  +75x +  +75x +  +75x +  +75x +  +75x +  +  +75x +  +  +  +  +  +  +  +  +  +  +  +  +75x +75x +75x +67x +1x +1x +1x +  +  +  +  +  +75x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +17x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import Link from "next/link";
+import { useEffect } from "react";
+ 
+/**
+ * Button component
+ */
+export function ActionButton(props) {
+  //Styling for buttons and links
+  const PRIMARY =
+    "text-multi-neutrals-white bg-multi-blue-blue70 hover:bg-multi-blue-blue60g focus:bg-multi-blue-blue60g";
+  const SECONDARY =
+    "text-multi-blue-blue60b bg-multi-neutrals-grey30a hover:bg-multi-neutrals-grey50a focus:bg-multi-neutrals-grey60";
+  const SUPERTASK =
+    "text-multi-neutrals-white bg-specific-green-green50 hover:bg-specific-green-green70 focus:bg-sepcific-green-green70";
+  const DANGER =
+    "text-multi-neutrals-white bg-specific-red-red50 hover:bg-specific-red-red70 focus:bg-specific-red-red70";
+  const LINK =
+    "text-multi-blue-blue60c hover:text-multi-blue-blue50b focus:text-multi-blue-blue60f";
+ 
+  const style =
+    props.style === "primary"
+      ? PRIMARY
+      : props.style === "secondary"
+      ? SECONDARY
+      : props.style === "supertask"
+      ? SUPERTASK
+      : props.style === "danger"
+      ? DANGER
+      : props.style === "link"
+      ? LINK
+      : "";
+ 
+  //Activate Links with spacebar
+  useEffect(() => {
+    let link = document.getElementById(props.id);
+    if (link) {
+      link.addEventListener("keydown", (event) => {
+        Eif (event.key === "Spacebar" || event.key === " ") {
+          event.preventDefault();
+          link.click();
+        }
+      });
+    }
+  });
+ 
+  return props.href ? (
+    <Link
+      href={props.href}
+      aria-label={`${props.ariaLabel ? props.ariaLabel : undefined}`}
+      className={`flex flex-row ${style} focus:ring focus:ring-offset-4 ring-multi-blue-blue60f py-2 px-4 rounded-sm w-fit text-base font-display ${props.custom}`}
+      onClick={props.onClick}
+      id={props.id}
+      data-testid={props.dataTestId}
+      data-cy={props.dataCy || props.id}
+      data-cy-button={props.dataCyButton}
+      disabled={props.disabled}
+      role="button"
+      draggable="false"
+      lang={props.lang}
+    >
+      {props.icon && !props.iconEnd ? (
+        <span className={props.icon} data-testid={props.dataTestId} />
+      ) : undefined}
+      {props.text}
+      {props.children}
+      {props.icon && props.iconEnd ? (
+        <span className={props.icon} data-testid={props.dataTestId} />
+      ) : undefined}
+    </Link>
+  ) : (
+    <button
+      aria-expanded={`${props.ariaExpanded ? props.ariaExpanded : undefined}`}
+      aria-label={`${props.ariaLabel ? props.ariaLabel : undefined}`}
+      className={`flex flex-row ${style} focus:ring focus:ring-offset-4 ring-multi-blue-blue60f py-2 px-4 rounded-sm w-fit text-base font-display ${props.custom}`}
+      onClick={props.onClick}
+      type={props.type}
+      id={props.id}
+      data-testid={props.dataTestId}
+      data-cy={props.dataCy || props.id}
+      data-cy-button={props.dataCyButton}
+      disabled={props.disabled}
+      data-gc-analytics-submit={props.analyticsTracking ? "submit" : undefined}
+    >
+      {props.icon && !props.iconEnd ? (
+        <span className={props.icon} data-testid={props.dataTestId} />
+      ) : undefined}
+      {props.imageSource && props.imageAlt ? (
+        <>
+          <img src={props.imageSource} alt={props.imageAlt} />
+          <span className={props.imageSpanClass} data-testid={props.dataTestId}>
+            {props.imageSpanText}
+          </span>
+        </>
+      ) : undefined}
+      <span className="flex">
+        {props.text}
+        {props.expandIcon}
+      </span>
+      {props.children}
+      {props.icon && props.iconEnd ? (
+        <span className={props.icon} data-testid={props.dataTestId} />
+      ) : undefined}
+    </button>
+  );
+}
+ 
+ActionButton.propTypes = {
+  /**
+   * This will add an icon inside the button when needed
+   */
+  icon: PropTypes.string,
+ 
+  /**
+   * This is for placing an icon at the end of the component
+   */
+  iconEnd: PropTypes.bool,
+ 
+  /**
+   * The text that the button will display
+   */
+  text: PropTypes.string,
+ 
+  /**
+   * Style link as a button when there's a href
+   */
+  href: PropTypes.string,
+ 
+  /**
+   * Identify which button being clicked
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * Lang attribute for links that do not match the language of the top level document
+   */
+  lang: PropTypes.string,
+  /**
+   * the type of the button
+   */
+  type: PropTypes.oneOf(["submit", "reset"]),
+ 
+  /**
+   * Secondary color styling option
+   */
+  secondary: PropTypes.bool,
+ 
+  /**
+   * Tertiary color styling option
+   */
+  tertiary: PropTypes.bool,
+ 
+  /**
+   * Custom button styling option
+   */
+  custom: PropTypes.string,
+ 
+  /**
+   * Callback for a click event on the button
+   */
+  onClick: PropTypes.func,
+ 
+  /**
+   * User must input one of the follow button styles to apply
+   * to their button. To apply the link style, the user must
+   * also add a value to the href prop
+   */
+  style: PropTypes.oneOf([
+    "supertask",
+    "primary",
+    "secondary",
+    "danger",
+    "link",
+  ]),
+ 
+  /**
+   * any other elements you want to add to the button
+   */
+  children: PropTypes.oneOfType([
+    PropTypes.string,
+    PropTypes.element,
+    PropTypes.arrayOf(PropTypes.element),
+  ]),
+  /**
+   * Test id for unit test
+   */
+  dataTestId: PropTypes.string,
+  /**
+   * Test id for e2e test
+   */
+  dataCy: PropTypes.string,
+  /**
+   * Test id for e2e test
+   */
+  dataCyButton: PropTypes.string,
+  /**
+   * Enabled or disabled the button
+   */
+  disabled: PropTypes.bool,
+  /**
+   * For tracking reset or submit on forms for analytics
+   */
+  analyticsTracking: PropTypes.bool,
+  /**
+   * Expand icon that will show the Feedback as popup
+   */
+  expandIcon: PropTypes.object,
+  /**
+   * Aria expanded state
+   */
+  ariaExpanded: PropTypes.string,
+  /**
+   * Aria label
+   */
+  ariaLabel: PropTypes.string,
+  /**
+   * Image source
+   */
+  imageSource: PropTypes.string,
+  /**
+   * Image alt
+   */
+  imageAlt: PropTypes.string,
+  /**
+   * Image span text
+   */
+  imageSpanText: PropTypes.string,
+  /**
+   * Image span classname
+   */
+  imageSpanClass: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/ActionButton.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/ActionButton.stories.js.html new file mode 100644 index 0000000000..83a9950880 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/ActionButton.stories.js.html @@ -0,0 +1,229 @@ + + + + + + Code coverage report for components/atoms/ActionButton.stories.js + + + + + + + + + +
+
+

All files / components/atoms ActionButton.stories.js

+
+ +
+ 100% + Statements + 12/12 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 11/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49  +  +  +  +  +  +  +7x +  +1x +1x +1x +1x +1x +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  + 
import { ActionButton } from "./ActionButton";
+ 
+export default {
+  title: "Components/Atoms/ActionButton",
+  component: ActionButton,
+};
+ 
+const Template = (args) => <ActionButton {...args} />;
+ 
+export const Primary = Template.bind({});
+export const Secondary = Template.bind({});
+export const Supertask = Template.bind({});
+export const Danger = Template.bind({});
+export const Link = Template.bind({});
+ 
+Primary.args = {
+  id: "primary",
+  style: "primary",
+  text: "Primary",
+};
+ 
+Secondary.args = {
+  id: "secondary",
+  text: "Secondary",
+  style: "secondary",
+  secondary: true,
+};
+ 
+Supertask.args = {
+  id: "supertask",
+  text: "Supertask",
+  style: "supertask",
+  tertiary: true,
+};
+ 
+Danger.args = {
+  id: "danger",
+  text: "Danger",
+  style: "danger",
+  disabled: true,
+};
+ 
+Link.args = {
+  id: "link",
+  text: "Link",
+  style: "link",
+  href: "/",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/Alert.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/Alert.js.html new file mode 100644 index 0000000000..9b03d20fcd --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/Alert.js.html @@ -0,0 +1,235 @@ + + + + + + Code coverage report for components/atoms/Alert.js + + + + + + + + + +
+
+

All files / components/atoms Alert.js

+
+ +
+ 100% + Statements + 2/2 +
+ + +
+ 50% + Branches + 2/4 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { faCircleInfo } from "@fortawesome/free-solid-svg-icons";
+import { faTriangleExclamation } from "@fortawesome/free-solid-svg-icons";
+ 
+/**
+ * Contextual alert component meant to draw attention to a short important message.
+ * Currently only has the option for an info alert, but other options can be added later so the alert
+ * can be customized.
+ */
+export function Alert(props) {
+  return (
+    <div className="layout-container">
+      <div
+        className={`relative border-l-6 min-h-40px my-10 ${
+          props.triangle ? "border-[#EE7100]" : "border-[#269ABC]"
+        }`}
+      >
+        <span className="absolute py-1 top-4 -left-3.5 bg-white">
+          {props.triangle ? (
+            <FontAwesomeIcon
+              icon={faTriangleExclamation}
+              color={"#EE7100"}
+              size="xl"
+            />
+          ) : (
+            <FontAwesomeIcon icon={faCircleInfo} color={"#269ABC"} size="xl" />
+          )}
+        </span>
+        <div className="ml-6">
+          <h3 className="text-h3 font-display">
+            <>{props.title}</>
+          </h3>
+          <p className="text-p">{props.text}</p>
+        </div>
+      </div>
+    </div>
+  );
+}
+ 
+Alert.propTypes = {
+  /**
+   * The title for the alert
+   */
+  title: PropTypes.string,
+  /**
+   * The description for the alert, accepts a string or JSX
+   */
+  text: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/Alert.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/Alert.stories.js.html new file mode 100644 index 0000000000..0df5637c27 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/Alert.stories.js.html @@ -0,0 +1,130 @@ + + + + + + Code coverage report for components/atoms/Alert.stories.js + + + + + + + + + +
+
+

All files / components/atoms Alert.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16  +  +  +  +  +  +  +2x +  +1x +  +1x +  +  +  + 
import { Alert } from "./Alert";
+ 
+export default {
+  title: "Components/Atoms/Alert",
+  component: Alert,
+};
+ 
+const Template = (args) => <Alert {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  title: "Alert Title",
+  text: "Alert Text",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/Banner.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/Banner.js.html new file mode 100644 index 0000000000..7eda3d2dc7 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/Banner.js.html @@ -0,0 +1,205 @@ + + + + + + Code coverage report for components/atoms/Banner.js + + + + + + + + + +
+
+

All files / components/atoms Banner.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41  +  +  +  +  +  +  +4x +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import PropTypes from "prop-types";
+ 
+/**
+ * Displays the banner on the page
+ */
+ 
+export const Banner = ({ siteTitle, headline }) => {
+  return (
+    <div className="bg-banner-img-mobile bg-center bg-cover py-8 sm:bg-banner-img sm:bg-right">
+      <div className="lg:container xxs:mx-0 xxs:px-0 lg:mx-auto lg:px-6 xxl:mx-auto">
+        <div className="bg-black bg-opacity-90 text-white p-4 xxs:w-screen lg:bg-opacity-30 lg:w-2/3 xl:w-1/2">
+          <h1
+            className="text-h1 font-medium pt-4 pb-2 break-words"
+            id="pageMainTitle"
+            tabIndex="-1"
+          >
+            {siteTitle}
+          </h1>
+          <hr className="border-2 border-hr-red-bar bg-hr-red-bar bg-opacity-90 border-opacity-90 w-3/4" />
+          <p className="text-base font-normal py-4 break-words">{headline}</p>
+        </div>
+      </div>
+    </div>
+  );
+};
+ 
+Banner.propTypes = {
+  /**
+   * Text area that displays the title for the page
+   */
+  siteTitle: PropTypes.string.isRequired,
+ 
+  /**
+   * text area for headline in the banner
+   */
+  headline: PropTypes.string.isRequired,
+};
+ 
+export default Banner;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/Banner.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/Banner.stories.js.html new file mode 100644 index 0000000000..f56015aeaf --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/Banner.stories.js.html @@ -0,0 +1,133 @@ + + + + + + Code coverage report for components/atoms/Banner.stories.js + + + + + + + + + +
+
+

All files / components/atoms Banner.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17  +  +  +  +  +  +  +  +2x +  +1x +  +1x +  +  +  + 
import React from "react";
+import Banner from "./Banner";
+ 
+export default {
+  title: "Components/Atoms/Banner",
+  component: Banner,
+};
+ 
+const Template = (args) => <Banner {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  siteTitle: "Banner Text",
+  headline: "Banner Headline",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/Breadcrumb.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/Breadcrumb.js.html new file mode 100644 index 0000000000..fd341472eb --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/Breadcrumb.js.html @@ -0,0 +1,265 @@ + + + + + + Code coverage report for components/atoms/Breadcrumb.js + + + + + + + + + +
+
+

All files / components/atoms Breadcrumb.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61  +  +  +  +  +  +  +11x +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import Link from "next/link";
+ 
+/**
+ *  Breadcrumb component
+ */
+export function Breadcrumb(props) {
+  return (
+    <nav aria-label="breadcrumbs">
+      <ul className="block text-custom-blue-dark text-base font-body -ml-4 -my-4 ">
+        <li className="inline-block min-w-0 max-w-full truncate px-1 -my-4">
+          <Link
+            href="https://www.canada.ca/"
+            className="text-sm hover:text-custom-blue-link visited:text-purple-700 underline"
+          >
+            Canada.ca
+          </Link>
+        </li>
+ 
+        {props.items
+          ? props.items.map((item, key) => {
+              return (
+                <li
+                  key={key}
+                  className="inline-block min-w-0 max-w-full truncate -my-4 px-1"
+                >
+                  <span className="inline-block align-middle text-gray-breadcrumb icon-cheveron-right mr-4" />
+                  <Link
+                    href={item.link}
+                    className="text-sm hover:text-canada-footer-hover-font-blue text-canada-footer-font visited:text-purple-700 underline"
+                  >
+                    {item.text}
+                  </Link>
+                </li>
+              );
+            })
+          : null}
+      </ul>
+    </nav>
+  );
+}
+ 
+Breadcrumb.propTypes = {
+  /**
+   * Array of Items for the breadcrumb
+   */
+  items: PropTypes.arrayOf(
+    PropTypes.shape({
+      /**
+       * Text for the breadcrumb
+       */
+      text: PropTypes.string,
+ 
+      /**
+       * Link for the breadcrumb
+       */
+      link: PropTypes.string,
+    })
+  ),
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/Breadcrumb.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/Breadcrumb.stories.js.html new file mode 100644 index 0000000000..e25619c7f4 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/Breadcrumb.stories.js.html @@ -0,0 +1,142 @@ + + + + + + Code coverage report for components/atoms/Breadcrumb.stories.js + + + + + + + + + +
+
+

All files / components/atoms Breadcrumb.stories.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20  +  +  +  +  +  +  +3x +  +1x +1x +  +1x +  +  +  +  +  +  + 
import { Breadcrumb } from "./Breadcrumb";
+ 
+export default {
+  title: "Components/Atoms/Breadcrumb",
+  component: Breadcrumb,
+};
+ 
+const Template = (args) => <Breadcrumb {...args} />;
+ 
+export const Primary = Template.bind({});
+export const WithItems = Template.bind({});
+ 
+WithItems.args = {
+  items: [
+    { text: "Link1", link: "/" },
+    { text: "Link2", link: "/" },
+    { text: "Link3", link: "/" },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/CheckBox.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/CheckBox.js.html new file mode 100644 index 0000000000..60d3c793e8 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/CheckBox.js.html @@ -0,0 +1,472 @@ + + + + + + Code coverage report for components/atoms/CheckBox.js + + + + + + + + + +
+
+

All files / components/atoms CheckBox.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 71.42% + Branches + 10/14 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130  +  +  +  +  +  +145x +  +  +  +  +145x +  +  +  +  +  +  +  +  +  +  +  +  +6x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * check box component for forms
+ */
+export function CheckBox(props) {
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        checked: props.checked,
+      }
+    : {};
+  return (
+    <div
+      className={`block leading-tight relative pl-40px h-46px clear-left${
+        props.className ? " " + props.className : " mb-4"
+      }`}
+    >
+      <input
+        className="control-input cursor-pointer appearance-none w-40px h-40px absolute left-0 m-0 z-1 opacity-0"
+        id={props.id}
+        name={props.name}
+        value={props.value}
+        type="checkbox"
+        onChange={(e) =>
+          props.onChange(
+            props.uncontrolled ? !e.currentTarget.checked : props.checked,
+            props.name,
+            props.value
+          )
+        }
+        aria-required={props.required}
+        aria-invalid={props.error ? "true" : undefined}
+        data-cy={props.dataCy}
+        data-testid={props.dataTestId}
+        {...ifControlledProps}
+      />
+      <label
+        className={`checkbox-label control-label inline-block cursor-pointer pt-4px pb-5px px-15px text-sm lg:text-p leading-tight sm:leading-6 ${
+          props.bolded ? "font-semibold" : "font-normal"
+        } font-body${props.error ? " text-error-border-red" : undefined}`}
+        htmlFor={props.id}
+      >
+        {props.showRequiredLabel ? (
+          <b className="text-error-border-red" aria-hidden="true">
+            *
+          </b>
+        ) : undefined}{" "}
+        {props.label} {<p className="sr-only">{props.expandState}</p>}
+      </label>
+    </div>
+  );
+}
+ 
+CheckBox.defaultProps = {
+  checked: false,
+  value: "true",
+  showRequiredLabel: false,
+};
+ 
+CheckBox.propTypes = {
+  /**
+   * additional css for the component
+   */
+  className: PropTypes.string,
+  /**
+   * whether or not the checkbox is checked
+   */
+  checked: PropTypes.bool.isRequired,
+ 
+  /**
+   * the value of the field when the checkbox is checked
+   */
+  value: PropTypes.string,
+ 
+  /**
+   * the name of the checkbox
+   */
+  name: PropTypes.string.isRequired,
+ 
+  /**
+   * the id of the checkbox
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * the label for the checkbox
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * whether or not there is an error
+   */
+  error: PropTypes.bool,
+ 
+  /**
+   * whether or not the field is required
+   */
+  required: PropTypes.bool,
+ 
+  /**
+   * show the "* ... (required)" in the label. in lists, this isn't necessary, but for an individual checkbox without a parent fieldset this is required
+   */
+  showRequiredLabel: PropTypes.bool,
+ 
+  /**
+   * callback to handle change in checked state, takes three arguments, the checked state, the name and the value
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * boolean flag to specify that this input should not be controlled by react
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * boolean flag to specify when label content should be bolded
+   */
+  bolded: PropTypes.bool,
+ 
+  /**
+   * testing selector for cypress
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * testing selector for unit tests
+   */
+  dataTestId: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/CheckBox.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/CheckBox.stories.js.html new file mode 100644 index 0000000000..879641d72e --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/CheckBox.stories.js.html @@ -0,0 +1,256 @@ + + + + + + Code coverage report for components/atoms/CheckBox.stories.js + + + + + + + + + +
+
+

All files / components/atoms CheckBox.stories.js

+
+ +
+ 90.9% + Statements + 10/11 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 90% + Lines + 9/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +1x +1x +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  + 
import React from "react";
+import { CheckBox } from "./CheckBox";
+ 
+export default {
+  title: "Components/Atoms/CheckBox",
+  component: CheckBox,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <CheckBox {...args} />;
+ 
+export const UnChecked = Template.bind({});
+UnChecked.args = {
+  id: "checkbox 1",
+  name: "ChexBox1",
+  value: "IsChecked",
+  label: "I am a checkbox",
+  dataTestId: "unchecked-checkbox",
+};
+ 
+export const Checked = Template.bind({});
+Checked.args = {
+  id: "checkbox 1",
+  name: "ChexBox1",
+  value: "IsChecked",
+  label: "I am a checkbox",
+  dataTestId: "checked-checkbox",
+  checked: true,
+};
+ 
+export const UnControlled = Template.bind({});
+UnControlled.args = {
+  id: "checkbox 1",
+  name: "ChexBox1",
+  value: "IsChecked",
+  label: "I am an uncontrolled checkbox",
+  dataTestId: "uncontrolled-checkbox",
+  uncontrolled: true,
+};
+ 
+export const Required = Template.bind({});
+Required.args = {
+  id: "checkbox 1",
+  name: "ChexBox1",
+  value: "IsChecked",
+  label: "I am an uncontrolled checkbox",
+  dataTestId: "required-checkbox",
+  showRequiredLabel: true,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/DateModified.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/DateModified.js.html new file mode 100644 index 0000000000..867a731e85 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/DateModified.js.html @@ -0,0 +1,190 @@ + + + + + + Code coverage report for components/atoms/DateModified.js + + + + + + + + + +
+
+

All files / components/atoms DateModified.js

+
+ +
+ 100% + Statements + 9/9 +
+ + +
+ 100% + Branches + 6/6 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 9/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36  +  +  +  +10x +  +10x +10x +4x +2x +2x +  +  +10x +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +4x +  +  +  + 
import PropTypes from "prop-types";
+import { useTranslation } from "next-i18next";
+ 
+export function DateModified(props) {
+  const { t } = useTranslation("common");
+  // TeamCity build dates are received in the format yyyyMMdd
+  let dateFormatted = "NA";
+  if (props.date) {
+    if (!props.date.match(/(?=\S*['-])([a-zA-Z'-]+)/gm)) {
+      dateFormatted = props.date.replace(/^(.{4})(.{2})/gm, "$1-$2-");
+    } else dateFormatted = props.date;
+  }
+ 
+  return (
+    <dl className="mt-8 py-2 font-body font-normal text-sm">
+      <dt className="inline">{t("dateModified")}</dt>
+      <dd className="inline">
+        {dateFormatted === "NA" ? (
+          <time>{` ${dateFormatted}`}</time>
+        ) : (
+          <time dateTime={dateFormatted}>{` ${dateFormatted}`}</time>
+        )}
+      </dd>
+    </dl>
+  );
+}
+ 
+DateModified.defaultProps = {
+  date: process.env.NEXT_PUBLIC_BUILD_DATE,
+};
+ 
+DateModified.propTypes = {
+  // Date string in format yyyyMMdd
+  date: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/DateModified.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/DateModified.stories.js.html new file mode 100644 index 0000000000..a560c7728c --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/DateModified.stories.js.html @@ -0,0 +1,127 @@ + + + + + + Code coverage report for components/atoms/DateModified.stories.js + + + + + + + + + +
+
+

All files / components/atoms DateModified.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15  +  +  +  +  +  +  +3x +  +1x +  +1x +  +  + 
import { DateModified } from "./DateModified";
+ 
+export default {
+  title: "Components/Atoms/DateModified",
+  component: DateModified,
+};
+ 
+const Template = (args) => <DateModified {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  date: "20200420",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/ErrorLabel.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/ErrorLabel.js.html new file mode 100644 index 0000000000..76af5a4ee8 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/ErrorLabel.js.html @@ -0,0 +1,154 @@ + + + + + + Code coverage report for components/atoms/ErrorLabel.js + + + + + + + + + +
+
+

All files / components/atoms ErrorLabel.js

+
+ +
+ 100% + Statements + 2/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24  +  +  +  +  +  +5x +  +  +  +  +  +  +  +  +13x +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * error label component that is used with form inputs to display error messages
+ */
+export function ErrorLabel(props) {
+  return (
+    <div
+      className={`error-label border-l-4 border-error-border-red px-3 py-1 bg-error-background-red font-body font-bold mb-5px text-sm lg:text-p ${props.className}`}
+    >
+      {props.message}
+    </div>
+  );
+}
+ 
+ErrorLabel.propTypes = {
+  message: PropTypes.string.isRequired,
+ 
+  /**
+   * Prop for adding some classes
+   */
+  className: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/ErrorLabel.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/ErrorLabel.stories.js.html new file mode 100644 index 0000000000..c0872f6810 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/ErrorLabel.stories.js.html @@ -0,0 +1,127 @@ + + + + + + Code coverage report for components/atoms/ErrorLabel.stories.js + + + + + + + + + +
+
+

All files / components/atoms ErrorLabel.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15  +  +  +  +  +  +  +  +2x +  +1x +1x +  +  + 
import React from "react";
+import { ErrorLabel } from "./ErrorLabel";
+ 
+export default {
+  title: "Components/Atoms/ErrorLabel",
+  component: ErrorLabel,
+};
+ 
+const Template = (args) => <ErrorLabel {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  message: "Error 1: This is a message",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/HTMList.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/HTMList.js.html new file mode 100644 index 0000000000..56f7278165 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/HTMList.js.html @@ -0,0 +1,163 @@ + + + + + + Code coverage report for components/atoms/HTMList.js + + + + + + + + + +
+
+

All files / components/atoms HTMList.js

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 100% + Branches + 3/3 +
+ + +
+ 100% + Functions + 4/4 +
+ + +
+ 100% + Lines + 6/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +7x +7x +  +18x +  +13x +  +  +  +  +7x +  +  +  +  +  +  +1x +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+export function HTMList({ tag = "ul", content, listClassName, liClassName }) {
+  const parseList = (content) =>
+    content
+      .split("*") // split the string on asterisks
+      .filter((item) => item) // filter out empty strings
+      .map((item, index) => (
+        <li className={liClassName} key={index}>
+          {item.trim()}
+        </li>
+      ));
+ 
+  return tag === "ul" ? (
+    <ul className={listClassName}>{parseList(content)}</ul>
+  ) : (
+    <ol className={listClassName}>{parseList(content)}</ol>
+  );
+}
+ 
+HTMList.propTypes = {
+  tag: PropTypes.string,
+  content: PropTypes.string.isRequired,
+  listClassName: PropTypes.string,
+  liClassName: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/MultiTextField.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/MultiTextField.js.html new file mode 100644 index 0000000000..62f757ddf7 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/MultiTextField.js.html @@ -0,0 +1,523 @@ + + + + + + Code coverage report for components/atoms/MultiTextField.js + + + + + + + + + +
+
+

All files / components/atoms MultiTextField.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 60% + Branches + 6/10 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147  +  +  +  +  +  +  +  +4x +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +8x +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ErrorLabel } from "./ErrorLabel";
+import { useTranslation } from "next-i18next";
+ 
+/**
+ * multi line text field
+ */
+export function MultiTextField(props) {
+  const { t } = useTranslation("common");
+ 
+  return (
+    <div
+      className={`block leading-tight${
+        props.className ? " " + props.className : " mb-12"
+      }`}
+    >
+      <label
+        className={`block leading-tight text-sm lg:text-p font-body mb-5px ${
+          props.boldLabel ? "font-bold" : ""
+        }`}
+        htmlFor={props.id}
+      >
+        {props.required ? (
+          <b className="text-error-border-red" aria-hidden="true">
+            *
+          </b>
+        ) : undefined}{" "}
+        {props.label}{" "}
+      </label>
+      <p id={props.describedby} className="text-sm lg:text-g mb-5 leading-30px">
+        {t("doNotInclude")}
+      </p>
+      {props.error ? <ErrorLabel message={props.error} /> : undefined}
+      <textarea
+        className={`text-input font-body w-full min-h-40px shadow-sm text-form-input-gray border-2 py-6px px-12px ${
+          props.error ? "border-error-border-red" : "border-black"
+        }`}
+        id={props.id}
+        name={props.name}
+        placeholder={props.placeholder}
+        onChange={(e) => props.onChange(e.currentTarget.value)}
+        cols={props.cols}
+        rows={props.rows}
+        spellCheck={props.spellCheck}
+        wrap={props.wrap}
+        required={props.required}
+        data-testid={props.dataTestId}
+        data-cy={props.dataCy}
+        aria-describedby={props.describedby}
+      >
+        {props.value}
+      </textarea>
+    </div>
+  );
+}
+ 
+MultiTextField.defaultProps = {
+  spellCheck: true,
+  wrap: "soft",
+};
+ 
+MultiTextField.propTypes = {
+  /**
+   * additional css for the component
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * the id of the multi text field
+   */
+  id: PropTypes.string.isRequired,
+  /**
+   * the name of the multi text field
+   */
+  name: PropTypes.string.isRequired,
+  /**
+   * the label for the multi text field
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * the value for the multi text field
+   */
+  value: PropTypes.string,
+ 
+  /**
+   * message to display if there is an error
+   */
+  error: PropTypes.string,
+ 
+  /**
+   * whether or not the field is required
+   */
+  required: PropTypes.bool,
+ 
+  /**
+   * whether or not spellchecking is enabled for this field, by default it is
+   */
+  spellCheck: PropTypes.bool,
+ 
+  /**
+   * whether or not the label is bold
+   */
+  boldLabel: PropTypes.bool,
+  /**
+   * whether to soft wrap or hard wrap the field
+   */
+  wrap: PropTypes.oneOf(["soft", "hard"]),
+  /**
+   * the placeholder for the multi text field
+   */
+  placeholder: PropTypes.string,
+  /**
+   * how much lines should the multi text field show
+   */
+  rows: PropTypes.number,
+  /**
+   * how much columns should the multi text field show
+   */
+  cols: PropTypes.number,
+  /**
+   * the minimum length of characters for the multi text field
+   */
+  minLength: PropTypes.number,
+  /**
+   * the maximum length of characters for the multi text field
+   */
+  maxLength: PropTypes.number,
+  /**
+   * call back for when the value of the multi text field changes
+   */
+  onChange: PropTypes.func,
+  /**
+   * unit test selector
+   */
+  dataTestId: PropTypes.string,
+  /**
+   * cypress selector
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * aria-describedby label id
+   */
+  describedby: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/MultiTextField.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/MultiTextField.stories.js.html new file mode 100644 index 0000000000..da62971541 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/MultiTextField.stories.js.html @@ -0,0 +1,232 @@ + + + + + + Code coverage report for components/atoms/MultiTextField.stories.js + + + + + + + + + +
+
+

All files / components/atoms MultiTextField.stories.js

+
+ +
+ 88.88% + Statements + 8/9 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 87.5% + Lines + 7/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +1x +1x +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { MultiTextField } from "./MultiTextField";
+ 
+export default {
+  title: "Components/Atoms/MultiTextField",
+  component: MultiTextField,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <MultiTextField i {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  id: "multiTextField1",
+  name: "multiTextField1",
+  label: "I am a multi text field",
+  dataTestId: "multitext-one",
+  placeholder: "some placeholder text",
+};
+ 
+export const BoldLabel = Template.bind({});
+BoldLabel.args = {
+  id: "multiTextField1",
+  name: "multiTextField1",
+  label: "I am a multi text field",
+  dataTestId: "multitext-bold",
+  placeholder: "some placeholder text",
+  boldLabel: true,
+};
+ 
+export const HardWrap = Template.bind({});
+HardWrap.args = {
+  id: "multiTextField1",
+  name: "multiTextField1",
+  label: "I am a multi text field",
+  dataTestId: "multitext-hard-wrap",
+  placeholder: "some placeholder text",
+  cols: 30,
+  rows: 5,
+  wrap: "hard",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/ProjectInfo.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/ProjectInfo.js.html new file mode 100644 index 0000000000..0bc327e03c --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/ProjectInfo.js.html @@ -0,0 +1,241 @@ + + + + + + Code coverage report for components/atoms/ProjectInfo.js + + + + + + + + + +
+
+

All files / components/atoms ProjectInfo.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 75% + Branches + 3/4 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53  +  +  +  +  +  +3x +3x +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { useTranslation } from "next-i18next";
+import { useState } from "react";
+import { HelpIcon } from "@dts-stn/service-canada-design-system";
+ 
+export function ProjectInfo(props) {
+  const { t } = useTranslation("common");
+  const [showInfo, setShowInfo] = useState(false);
+ 
+  return (
+    <>
+      <div className="grid grid-cols-1 xl:grid-cols-3 gap-x-2 text-[20px]">
+        <strong className="font-body col-span-1">{props.termStarted}</strong>
+        <p className="col-span-2">
+          {!props.dateStarted ? undefined : props.dateStarted.substring(0, 10)}
+        </p>
+        <strong className="font-body col-span-1">{props.termEnded}</strong>
+        <p className="col-span-2">
+          {!props.dateEnded ? undefined : props.dateEnded.substring(0, 10)}
+        </p>
+        <strong className="font-body col-span-1 my-auto">
+          {props.termStage}
+        </strong>
+        <div className="flex col-span-2 items-end">
+          <div className="shrink-0 flex">
+            <p className="my-auto">{props.stage}</p>
+            <div className="my-auto">
+              <HelpIcon
+                lang={props.locale}
+                title={props.stage}
+                body={props.definition}
+              />
+            </div>
+          </div>
+        </div>
+        <strong className="font-body col-span-1 col-start-1">
+          {props.termSummary}
+        </strong>
+        <p className="col-span-2">{props.summary}</p>
+      </div>
+    </>
+  );
+}
+ 
+ProjectInfo.propTypes = {
+  dateStarted: PropTypes.string,
+  dateEnded: PropTypes.string,
+  stage: PropTypes.string,
+  summary: PropTypes.string,
+  info: PropTypes.string,
+  locale: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/ProjectInfo.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/ProjectInfo.stories.js.html new file mode 100644 index 0000000000..fd96c9a229 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/ProjectInfo.stories.js.html @@ -0,0 +1,136 @@ + + + + + + Code coverage report for components/atoms/ProjectInfo.stories.js + + + + + + + + + +
+
+

All files / components/atoms ProjectInfo.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18  +  +  +  +  +  +  +2x +  +1x +  +1x +  +  +  +  +  + 
import { ProjectInfo } from "./ProjectInfo";
+ 
+export default {
+  title: "Components/Atoms/ProjectInfo",
+  component: ProjectInfo,
+};
+ 
+const Template = (args) => <ProjectInfo {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  dateStarted: "2021-01-01",
+  dateEnded: "2022-03-31",
+  stage: "Alpha",
+  summary: "Project status",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioButton.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioButton.js.html new file mode 100644 index 0000000000..a152a20126 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioButton.js.html @@ -0,0 +1,430 @@ + + + + + + Code coverage report for components/atoms/RadioButton.js + + + + + + + + + +
+
+

All files / components/atoms RadioButton.js

+
+ +
+ 90% + Statements + 9/10 +
+ + +
+ 83.33% + Branches + 10/12 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 90% + Lines + 9/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116  +  +  +  +  +  +16x +  +  +  +  +  +  +16x +  +  +  +  +  +  +  +  +3x +  +  +1x +1x +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * Radio input styled as a button
+ **/
+export function RadioButton(props) {
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        checked: props.checked,
+      }
+    : {
+        defaultChecked: props.checked || false,
+      };
+  return (
+    <div className="flex relative">
+      <input
+        type="radio"
+        className="radio-button absolute top-0 left-0 w-full h-full appearance-none cursor-pointer"
+        id={props.id}
+        name={props.name}
+        value={props.value}
+        onChange={(e) => {
+          props.onChange(props.value, e);
+        }}
+        onKeyUp={(e) => {
+          Eif (e.key === "Enter") {
+            e.preventDefault();
+            Iif (props.uncontrolled) {
+              e.currentTarget.checked = true;
+            }
+            props.onChange(props.value, e);
+          }
+        }}
+        data-testid={props.dataTestId}
+        data-cy={props.dataCy}
+        required={props.required}
+        {...ifControlledProps}
+      />
+      <label
+        className={`radio-button-label font-body float-left text-xs px-5 py-3 border border-solid border-gray-600 border-opacity-50${
+          props.roundedFront ? " rounded-l-lg" : ""
+        }${props.roundedBack ? " rounded-r-lg" : ""}`}
+        htmlFor={props.id}
+      >
+        {props.label}
+      </label>
+    </div>
+  );
+}
+ 
+RadioButton.defaultProps = {
+  checked: false,
+};
+ 
+RadioButton.propTypes = {
+  /**
+   * the id for the input
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * the name for the input
+   */
+  name: PropTypes.string.isRequired,
+ 
+  /**
+   * the value for the input
+   */
+  value: PropTypes.string.isRequired,
+ 
+  /**
+   * the label for the radio button
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * whether or not the field is required
+   */
+  required: PropTypes.bool,
+ 
+  /**
+   * whether the radio button is checked or not
+   */
+  checked: PropTypes.bool,
+ 
+  /**
+   * Should the button be rounded in the front
+   */
+  roundedFront: PropTypes.bool,
+ 
+  /**
+   * Should the button be rounded in the back
+   */
+  roundedBack: PropTypes.bool,
+ 
+  /**
+   * if the input is controlled by react or not
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * onChange callback
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * unit test selector
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * cypress test selector
+   */
+  dataCy: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioButton.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioButton.stories.js.html new file mode 100644 index 0000000000..ee5a2b83b8 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioButton.stories.js.html @@ -0,0 +1,259 @@ + + + + + + Code coverage report for components/atoms/RadioButton.stories.js + + + + + + + + + +
+
+

All files / components/atoms RadioButton.stories.js

+
+ +
+ 100% + Statements + 12/12 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 11/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59  +  +  +  +  +  +  +  +7x +  +1x +1x +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  + 
import React from "react";
+import { RadioButton } from "./RadioButton";
+ 
+export default {
+  title: "Components/Atoms/RadioButton",
+  component: RadioButton,
+};
+ 
+const Template = (args) => <RadioButton {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  id: "radio-button-1",
+  name: "radio_button_1",
+  value: "Some Value",
+  label: "My Radio Button",
+  dataTestId: "primary",
+};
+ 
+export const Checked = Template.bind({});
+Checked.args = {
+  id: "radio-button-checked",
+  name: "radio_button_checked",
+  value: "Some Value",
+  label: "My Radio Button",
+  dataTestId: "checked",
+  checked: true,
+};
+ 
+export const UnControlled = Template.bind({});
+UnControlled.args = {
+  id: "radio-button-uncontrolled",
+  name: "radio_button_uncontrolled",
+  value: "Some Value",
+  label: "My Radio Button",
+  dataTestId: "uncontrolled",
+  uncontrolled: true,
+};
+ 
+export const RoundedFront = Template.bind({});
+RoundedFront.args = {
+  id: "radio-button-rounded-front",
+  name: "radio_button_rounded_front",
+  value: "Some Value",
+  label: "My Radio Button",
+  dataTestId: "roundedFront",
+  roundedFront: true,
+};
+ 
+export const RoundedBack = Template.bind({});
+RoundedBack.args = {
+  id: "radio-button-rounded-back",
+  name: "radio_button_rounded_back",
+  value: "Some Value",
+  label: "My Radio Button",
+  dataTestId: "roundedBack",
+  roundedBack: true,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioField.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioField.js.html new file mode 100644 index 0000000000..8c2320f13c --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioField.js.html @@ -0,0 +1,427 @@ + + + + + + Code coverage report for components/atoms/RadioField.js + + + + + + + + + +
+
+

All files / components/atoms RadioField.js

+
+ +
+ 83.33% + Statements + 5/6 +
+ + +
+ 50% + Branches + 5/10 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 83.33% + Lines + 5/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115  +  +  +  +  +  +8x +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * radio field
+ */
+export function RadioField(props) {
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        checked: props.checked,
+      }
+    : {};
+  return (
+    <div
+      className={`block leading-tight relative pl-40px h-40px clear-left mb-10px${
+        props.className ? " " + props.className : ""
+      }`}
+    >
+      <input
+        className="control-input cursor-pointer appearance-none w-40px h-40px absolute left-0 m-0 z-1 opacity-0"
+        id={props.id}
+        name={props.name}
+        value={props.value}
+        type="radio"
+        onChange={(e) =>
+          props.onChange(
+            props.uncontrolled ? !e.currentTarget.checked : props.checked,
+            props.name,
+            props.value
+          )
+        }
+        aria-required={props.required}
+        aria-invalid={props.error ? "true" : undefined}
+        data-cy={props.dataCy}
+        data-testid={props.dataTestId}
+        {...ifControlledProps}
+      />
+      <label
+        className={`radio-field-label control-label inline-block cursor-pointer pt-4px pb-5px px-15px text-sm lg:text-p leading-tight sm:leading-6 font-normal font-body${
+          props.error ? " text-error-border-red" : undefined
+        }`}
+        htmlFor={props.id}
+        onClick={() => props.onChange(props.checked, props.name, props.value)}
+      >
+        {props.label}
+      </label>
+    </div>
+  );
+}
+ 
+RadioField.defaultProps = {
+  checked: false,
+  value: "true",
+};
+ 
+RadioField.propTypes = {
+  /**
+   * additional css for the component
+   */
+  className: PropTypes.string,
+  /**
+   * whether or not the checkbox is checked
+   */
+  checked: PropTypes.bool.isRequired,
+ 
+  /**
+   * the value of the field when the checkbox is checked
+   */
+  value: PropTypes.string,
+ 
+  /**
+   * the name of the checkbox
+   */
+  name: PropTypes.string.isRequired,
+ 
+  /**
+   * whether or not there is an error
+   */
+  error: PropTypes.bool,
+ 
+  /**
+   * whether or not the field is required
+   */
+  required: PropTypes.bool,
+ 
+  /**
+   * the id of the checkbox
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * the label for the checkbox
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * callback to handle change in checked state, takes three arguments, the checked state, the name and the value
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * boolean flag to specify that this input should not be controlled by react
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * testing selector for cypress
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * testing selector for unit tests
+   */
+  dataTestId: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioField.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioField.stories.js.html new file mode 100644 index 0000000000..07ecfc6e7b --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/RadioField.stories.js.html @@ -0,0 +1,226 @@ + + + + + + Code coverage report for components/atoms/RadioField.stories.js + + + + + + + + + +
+
+

All files / components/atoms RadioField.stories.js

+
+ +
+ 88.88% + Statements + 8/9 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 87.5% + Lines + 7/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +1x +1x +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  + 
import React from "react";
+import { RadioField } from "./RadioField";
+ 
+export default {
+  title: "Components/Atoms/RadioField",
+  component: RadioField,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <RadioField {...args} />;
+ 
+export const UnChecked = Template.bind({});
+UnChecked.args = {
+  id: "radio 1",
+  name: "RadioField1",
+  value: "IsChecked",
+  label: "I am a radio button",
+  dataTestId: "unchecked-radio-field",
+};
+ 
+export const Checked = Template.bind({});
+Checked.args = {
+  id: "radio 1",
+  name: "RadioField1",
+  value: "IsChecked",
+  label: "I am a radio button",
+  dataTestId: "checked-radio-field",
+  checked: true,
+};
+ 
+export const UnControlled = Template.bind({});
+UnControlled.args = {
+  id: "radio 1",
+  name: "RadioField1",
+  value: "IsChecked",
+  label: "I am an uncontrolled checkbox",
+  dataTestId: "uncontrolled-checkbox",
+  uncontrolled: true,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/SearchBar.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/SearchBar.js.html new file mode 100644 index 0000000000..592b82a460 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/SearchBar.js.html @@ -0,0 +1,244 @@ + + + + + + Code coverage report for components/atoms/SearchBar.js + + + + + + + + + +
+
+

All files / components/atoms SearchBar.js

+
+ +
+ 100% + Statements + 2/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ *  component
+ */
+export function SearchBar(props) {
+  return (
+    <form
+      className="w-full inline-flex h-9 lg:w-full xl:w-80 w-full border border-solid border-gray-light-100"
+      onSubmit={props.onSubmit}
+      data-cy={props.dataCy}
+    >
+      <input
+        type="text"
+        placeholder={props.placeholder}
+        className="placeholder-text-gray text-text-gray font-body py-1 px-2 focus:outline-none w-full"
+        onChange={props.onChange}
+      />
+ 
+      <button
+        title="Search bar button"
+        type="submit"
+        className={
+          "bg-custom-blue-dark text-white text-center text-base rounded-none pt-0.5 h-full w-10 hover:bg-gray-dark active:bg-gray-dark focus:bg-gray-dark"
+        }
+      >
+        <span className="icon-search" />
+      </button>
+    </form>
+  );
+}
+ 
+SearchBar.propTypes = {
+  /**
+   * Placeholder for the search bar
+   */
+  placeholder: PropTypes.string.isRequired,
+ 
+  /**
+   * Action to do on input change
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * Action to do on form submit
+   */
+  onSubmit: PropTypes.func,
+ 
+  /**
+   * Test id for cypress test
+   */
+  dataCy: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/SearchBar.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/SearchBar.stories.js.html new file mode 100644 index 0000000000..cffd9c45e1 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/SearchBar.stories.js.html @@ -0,0 +1,127 @@ + + + + + + Code coverage report for components/atoms/SearchBar.stories.js + + + + + + + + + +
+
+

All files / components/atoms SearchBar.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15  +  +  +  +  +  +  +2x +  +1x +  +1x +  +  + 
import { SearchBar } from "./SearchBar";
+ 
+export default {
+  title: "Components/Atoms/SearchBar",
+  component: SearchBar,
+};
+ 
+const Template = (args) => <SearchBar {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  placeholder: "Search Canada.ca",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/SelectField.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/SelectField.js.html new file mode 100644 index 0000000000..cb410456e6 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/SelectField.js.html @@ -0,0 +1,583 @@ + + + + + + Code coverage report for components/atoms/SelectField.js + + + + + + + + + +
+
+

All files / components/atoms SelectField.js

+
+ +
+ 90.9% + Statements + 10/11 +
+ + +
+ 50% + Branches + 9/18 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 90.9% + Lines + 10/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167  +  +  +  +  +2x +  +2x +  +  +  +  +  +2x +2x +6x +6x +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ErrorLabel } from "./ErrorLabel";
+import { useTranslation } from "next-i18next";
+ 
+export function SelectField(props) {
+  const { t } = useTranslation("common");
+ 
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        value: props.value,
+      }
+    : {};
+ 
+  Eif (!props.ignoreSort) {
+    props.options.sort(function (a, b) {
+      var collator = new Intl.Collator("fr");
+      return collator.compare(a.name.toLowerCase(), b.name.toLowerCase());
+    });
+  }
+ 
+  return (
+    <div
+      className={`block leading-tight${
+        props.className ? " " + props.className : " mb-10px"
+      }`}
+    >
+      <label
+        className={`select-field-label block leading-tight text-sm lg:text-p font-body mb-5 ${
+          props.boldLabel ? "font-bold" : ""
+        }`}
+        htmlFor={props.id + "-choice"}
+      >
+        {props.required ? (
+          <b className="text-error-border-red" aria-hidden="true">
+            *
+          </b>
+        ) : undefined}{" "}
+        {props.label}{" "}
+      </label>
+      {props.error ? <ErrorLabel message={props.error} /> : undefined}
+      <select
+        className={`text-input select-field bg-white font-body w-full min-h-40px shadow-sm border-2 py-6px px-12px ${
+          props.error ? "border-error-border-red" : "border-black"
+        }`}
+        id={props.id + "-choice"}
+        name={props.name}
+        aria-required={props.required}
+        aria-invalid={props.error ? "true" : undefined}
+        onChange={(e) => props.onChange(e.currentTarget.value)}
+        {...ifControlledProps}
+        data-testid={props.dataTestId + "-choice"}
+        data-cy={props.dataCy + "-choice"}
+      >
+        <option
+          key="default"
+          value=""
+          data-testid="default"
+          data-cy="default"
+        />
+        {props.options.map(({ id, name, value }) => {
+          return (
+            <option key={id} value={value} data-testid={id} data-cy={id}>
+              {name}
+            </option>
+          );
+        })}
+        {props.other ? (
+          <option
+            key={"other"}
+            value={"other"}
+            data-testid={"other"}
+            data-cy={"other"}
+          >
+            {t("reportAProblemOther")}
+          </option>
+        ) : (
+          ""
+        )}
+      </select>
+    </div>
+  );
+}
+ 
+SelectField.defaultProps = {
+  value: "",
+};
+ 
+SelectField.propTypes = {
+  /**
+   * additional css for the component
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * the id of the text field
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * the name of the text field
+   */
+  name: PropTypes.string.isRequired,
+ 
+  /**
+   * the label of the text field
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * whether ot not the field is required
+   */
+  required: PropTypes.bool,
+ 
+  /**
+   * value of the text field
+   */
+  value: PropTypes.string.isRequired,
+ 
+  /**
+   * call back for when the value of the text field changes
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * message to display if there is an error
+   */
+  error: PropTypes.string,
+ 
+  /**
+   * Other option for dropdown
+   */
+  other: PropTypes.bool,
+ 
+  /**
+   * if label should be bold
+   */
+  boldLabel: PropTypes.bool,
+ 
+  /**
+   * boolean flag to specify that this input should be uncontrolled by react
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  options: PropTypes.arrayOf(
+    PropTypes.shape({
+      id: PropTypes.string.isRequired,
+      name: PropTypes.string.isRequired,
+      value: PropTypes.string.isRequired,
+    })
+  ),
+ 
+  /**
+   * unit test selector
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * cypress tests selector
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * if true, skip sorting the options
+   */
+  ignoreSort: PropTypes.bool,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/SelectField.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/SelectField.stories.js.html new file mode 100644 index 0000000000..6a1bde8370 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/SelectField.stories.js.html @@ -0,0 +1,232 @@ + + + + + + Code coverage report for components/atoms/SelectField.stories.js + + + + + + + + + +
+
+

All files / components/atoms SelectField.stories.js

+
+ +
+ 80% + Statements + 4/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 75% + Lines + 3/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { SelectField } from "./SelectField";
+ 
+export default {
+  title: "Components/Atoms/SelectField",
+  component: SelectField,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <SelectField {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  id: "select-field-1",
+  name: "selectField1",
+  label: "I am a select field",
+  uncontrolled: true,
+  dataTestId: "select-field-1",
+  options: [
+    {
+      id: "option1",
+      name: "Option 1",
+      value: "option1",
+    },
+    {
+      id: "option2",
+      name: "Option 2",
+      value: "option2",
+    },
+    {
+      id: "option3",
+      name: "Option 3",
+      value: "option3",
+    },
+    {
+      id: "option4",
+      name: "Option 4",
+      value: "option4",
+    },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/TableOfContents.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/TableOfContents.js.html new file mode 100644 index 0000000000..7e2d907e02 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/TableOfContents.js.html @@ -0,0 +1,187 @@ + + + + + + Code coverage report for components/atoms/TableOfContents.js + + + + + + + + + +
+
+

All files / components/atoms TableOfContents.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35  +  +  +2x +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+export function TableOfContents(props) {
+  return (
+    <>
+      <h2 className="font-semibold">{props.title}</h2>
+      <nav>
+        <ul className="leading-4 list-disc">
+          {props.headings.map((heading) => (
+            <li key={heading.id}>
+              <a
+                className="underline text-custom-blue-link underline hover:text-custom-blue-projects-link"
+                href={`#${heading.id}`}
+              >
+                {heading.text}
+              </a>
+            </li>
+          ))}
+        </ul>
+      </nav>
+    </>
+  );
+}
+ 
+TableOfContents.propTypes = {
+  /**
+   * The title for the table of contents
+   */
+  title: PropTypes.string,
+  /**
+   * An array of headings
+   */
+  headings: PropTypes.array,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/TableOfContents.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/TableOfContents.stories.js.html new file mode 100644 index 0000000000..667e828e7f --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/TableOfContents.stories.js.html @@ -0,0 +1,130 @@ + + + + + + Code coverage report for components/atoms/TableOfContents.stories.js + + + + + + + + + +
+
+

All files / components/atoms TableOfContents.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16  +  +  +  +  +  +  +2x +  +1x +  +1x +  +  +  + 
import { TableOfContents } from "./TableOfContents";
+ 
+export default {
+  title: "Components/Atoms/TableOfContents",
+  component: TableOfContents,
+};
+ 
+const Template = (args) => <TableOfContents {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  title: "Table of Contents Title",
+  headings: [{ id: "heading-one", text: "Heading one" }],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/TextField.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/TextField.js.html new file mode 100644 index 0000000000..c5a45ba4d5 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/TextField.js.html @@ -0,0 +1,613 @@ + + + + + + Code coverage report for components/atoms/TextField.js + + + + + + + + + +
+
+

All files / components/atoms TextField.js

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 61.11% + Branches + 11/18 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 6/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177  +  +  +  +  +  +  +  +6x +  +6x +  +  +  +  +6x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +8x +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ErrorLabel } from "./ErrorLabel";
+import { useTranslation } from "next-i18next";
+ 
+/**
+ * text field component
+ */
+export function TextField(props) {
+  const { t } = useTranslation("common");
+ 
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        value: props.value,
+      }
+    : {};
+  return (
+    <div
+      className={`block leading-tight${
+        props.className ? " " + props.className : " mb-10px"
+      }`}
+    >
+      <label
+        className={`block leading-tight text-sm lg:text-p font-body mb-5 ${
+          props.boldLabel ? "font-bold" : ""
+        }`}
+        htmlFor={props.id}
+      >
+        {props.required ? (
+          <b className="text-error-border-red" aria-hidden="true">
+            *
+          </b>
+        ) : undefined}{" "}
+        {props.label}{" "}
+      </label>
+      {props.describedby ? (
+        <p
+          id={props.describedby}
+          className="text-xs lg:text-sm mb-5 leading-30px"
+        >
+          {t("doNotInclude")}
+        </p>
+      ) : (
+        ""
+      )}
+ 
+      {props.error ? <ErrorLabel message={props.error} /> : undefined}
+      <input
+        className={`text-input font-body w-full lg:w-3/4 min-h-40px shadow-sm text-form-input-gray border-2 py-6px px-12px ${
+          props.error ? "border-error-border-red" : "border-black"
+        } ${props.exclude ? "exclude" : ""}`}
+        id={props.id}
+        aria-describedby={props.describedby}
+        name={props.name}
+        placeholder={props.placeholder}
+        type={props.type}
+        min={props.min}
+        max={props.max}
+        step={props.step}
+        aria-required={props.required}
+        aria-invalid={props.error ? "true" : undefined}
+        onChange={(e) => props.onChange(e.currentTarget.value)}
+        {...ifControlledProps}
+        data-testid={props.dataTestId}
+        data-cy={props.dataCy}
+        autoComplete={props.autoComplete}
+      />
+    </div>
+  );
+}
+ 
+TextField.defaultProps = {
+  value: "",
+  type: "text",
+};
+ 
+TextField.propTypes = {
+  /**
+   * additional css for the component
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * the id of the text field
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * the name of the text field
+   */
+  name: PropTypes.string.isRequired,
+ 
+  /**
+   * the label of the text field
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * whether ot not the field is required
+   */
+  required: PropTypes.bool,
+ 
+  /**
+   * value of the text field
+   */
+  value: PropTypes.string,
+ 
+  /**
+   * placeholder for the text field,
+   */
+  placeholder: PropTypes.string,
+ 
+  /**
+   * the type of the input
+   */
+  type: PropTypes.string,
+ 
+  /**
+   * call back for when the value of the text field changes
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * message to display if there is an error
+   */
+  error: PropTypes.string,
+ 
+  /**
+   * if label should be bold
+   */
+  boldLabel: PropTypes.bool,
+ 
+  /**
+   * boolean flag to specify that this input should be uncontrolled by react
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * min value allowed
+   */
+  min: PropTypes.number,
+ 
+  /**
+   * max value allowed
+   */
+  max: PropTypes.number,
+ 
+  /**
+   * the legal number of intervals
+   */
+  step: PropTypes.number,
+ 
+  /**
+   * unit test selector
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * cypress tests selector
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * Exclude option for adding exclude class to the textfield
+   */
+  exclude: PropTypes.bool,
+ 
+  /**
+   * aria-describedby label id
+   */
+  describedby: PropTypes.string,
+ 
+  /**
+   * Option to enable autocomplete on field
+   */
+  autocomplete: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/TextField.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/TextField.stories.js.html new file mode 100644 index 0000000000..43e9073ae1 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/TextField.stories.js.html @@ -0,0 +1,229 @@ + + + + + + Code coverage report for components/atoms/TextField.stories.js + + + + + + + + + +
+
+

All files / components/atoms TextField.stories.js

+
+ +
+ 88.88% + Statements + 8/9 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 87.5% + Lines + 7/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +1x +1x +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  + 
import React from "react";
+import { TextField } from "./TextField";
+ 
+export default {
+  title: "Components/Atoms/TextField",
+  component: TextField,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <TextField {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  id: "textField1",
+  name: "textField1",
+  label: "I am a text field",
+  dataTestId: "textbox-controlled",
+  placeholder: "Some placeholder text",
+};
+ 
+export const UnControlled = Template.bind({});
+UnControlled.args = {
+  id: "textField1",
+  name: "textField1",
+  label: "I am a text field",
+  placeholder: "Some placeholder text",
+  dataTestId: "textbox-uncontrolled",
+  uncontrolled: true,
+};
+ 
+export const BoldLabel = Template.bind({});
+BoldLabel.args = {
+  id: "textField1",
+  name: "textField1",
+  label: "I am a text field",
+  placeholder: "Some placeholder text",
+  dataTestId: "textbox-bold",
+  uncontrolled: true,
+  boldLabel: true,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/atoms/index.html b/refs/pull/858/merge/coverage/lcov-report/components/atoms/index.html new file mode 100644 index 0000000000..0a9e3a75d8 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/atoms/index.html @@ -0,0 +1,566 @@ + + + + + + Code coverage report for components/atoms + + + + + + + + + +
+
+

All files components/atoms

+
+ +
+ 95.83% + Statements + 184/192 +
+ + +
+ 72.18% + Branches + 109/151 +
+ + +
+ 86.79% + Functions + 46/53 +
+ + +
+ 95.48% + Lines + 169/177 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
ActionButton.js +
+
100%15/1584%42/50100%3/3100%15/15
ActionButton.stories.js +
+
100%12/12100%0/0100%1/1100%11/11
Alert.js +
+
100%2/250%2/4100%1/1100%2/2
Alert.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
Banner.js +
+
100%3/3100%0/0100%1/1100%3/3
Banner.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
Breadcrumb.js +
+
100%3/3100%2/2100%2/2100%3/3
Breadcrumb.stories.js +
+
100%5/5100%0/0100%1/1100%4/4
CheckBox.js +
+
100%5/571.42%10/14100%2/2100%5/5
CheckBox.stories.js +
+
90.9%10/11100%0/050%1/290%9/10
DateModified.js +
+
100%9/9100%6/6100%1/1100%9/9
DateModified.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
ErrorLabel.js +
+
100%2/2100%0/0100%1/1100%2/2
ErrorLabel.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
HTMList.js +
+
100%6/6100%3/3100%4/4100%6/6
MultiTextField.js +
+
100%5/560%6/10100%2/2100%5/5
MultiTextField.stories.js +
+
88.88%8/9100%0/050%1/287.5%7/8
ProjectInfo.js +
+
100%4/475%3/4100%1/1100%4/4
ProjectInfo.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
RadioButton.js +
+
90%9/1083.33%10/12100%3/390%9/10
RadioButton.stories.js +
+
100%12/12100%0/0100%1/1100%11/11
RadioField.js +
+
83.33%5/650%5/1066.66%2/383.33%5/6
RadioField.stories.js +
+
88.88%8/9100%0/050%1/287.5%7/8
SearchBar.js +
+
100%2/2100%0/0100%1/1100%2/2
SearchBar.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
SelectField.js +
+
90.9%10/1150%9/1875%3/490.9%10/11
SelectField.stories.js +
+
80%4/5100%0/050%1/275%3/4
TableOfContents.js +
+
100%3/3100%0/0100%2/2100%3/3
TableOfContents.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
TextField.js +
+
100%6/661.11%11/18100%2/2100%6/6
TextField.stories.js +
+
88.88%8/9100%0/050%1/287.5%7/8
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/index.html b/refs/pull/858/merge/coverage/lcov-report/components/index.html new file mode 100644 index 0000000000..fc0706dcfb --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for components + + + + + + + + + +
+
+

All files components

+
+ +
+ 0% + Statements + 0/0 +
+ + +
+ 0% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/0 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.js +
+
0%0/00%0/00%0/00%0/0
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/index.js.html b/refs/pull/858/merge/coverage/lcov-report/components/index.js.html new file mode 100644 index 0000000000..5b75d5340c --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/index.js.html @@ -0,0 +1,88 @@ + + + + + + Code coverage report for components/index.js + + + + + + + + + +
+
+

All files / components index.js

+
+ +
+ 0% + Statements + 0/0 +
+ + +
+ 0% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/0 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2  + 
import "prop-types";
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/CallToAction.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/CallToAction.js.html new file mode 100644 index 0000000000..ec3b5f0d38 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/CallToAction.js.html @@ -0,0 +1,445 @@ + + + + + + Code coverage report for components/molecules/CallToAction.js + + + + + + + + + +
+
+

All files / components/molecules CallToAction.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 62.5% + Branches + 5/8 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121  +  +  +  +  +  +  +  +  +3x +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ActionButton } from "../atoms/ActionButton";
+import Link from "next/link";
+import { useTranslation } from "next-i18next";
+ 
+/**
+ * A section that will have a title, small description, and a link to some action we want to user to make
+ */
+export function CallToAction(props) {
+  const { t } = useTranslation("common");
+  return (
+    <div className="bg-[#ebf2fc] text-[#333] my-12">
+      <div className="layout-container pb-10 pt-10 text-sm md:text-base">
+        <div>
+          <div className="flex flex-col">
+            <div className="flex -my-2">
+              <img
+                className="mb-2 -ml-4"
+                src="/cta_icon.svg"
+                alt=""
+                width="60"
+                height="53"
+              />
+              <h3 className="lg:text-h1 ml-2">
+                <>{props.title}</>
+              </h3>
+            </div>
+            <aside className="pt-3 border-l-2 ml-2 lg:ml-3.5 border-custom-blue-blue xl:w-3/4">
+              {props.description ? (
+                <div className="pl-4">
+                  <p className="text-base lg:text-p ml-6 pb-3 whitespace-pre-line">
+                    {props.description}
+                  </p>
+                  <p className="text-base lg:text-p ml-6 pb-3 whitespace-pre-line">
+                    {props.disclaimer}
+                  </p>
+                </div>
+              ) : (
+                <div
+                  className="text-base lg:text-p ml-6 pb-3 whitespace-pre-line"
+                  dangerouslySetInnerHTML={{ __html: props.html }}
+                />
+              )}
+              <div className="ml-6">
+                <p className="flex mb-4 pl-4 text-center">
+                  <ActionButton
+                    id="become-a-participant-btn"
+                    custom={`py-1.5 px-3 rounded text-white text-base lg:text-p font-display bg-custom-blue-dark hover:bg-custom-blue-light border border-custom-blue-darker active:bg-custom-blue-darker hover:ring-2 hover:ring-white`}
+                    className=""
+                    href={props.href}
+                    text={props.hrefText}
+                    expandIcon={
+                      props.feedbackActive ? (
+                        <img
+                          className="px-2"
+                          src="/feedback-icon-white.svg"
+                          alt=""
+                        />
+                      ) : undefined
+                    }
+                    onClick={props.feedbackActive ? props.clicked : undefined}
+                    ariaExpanded={props.ariaExpanded}
+                  />
+                </p>
+                {props.showPrivacyLink && (
+                  <Link href={t("privacyRedirect")} locale={props.lang}>
+                    <a className="pl-4 text-base lg:text-p underline flex xl:inline lg:mr-10">
+                      {t("privacyLinkText")}
+                    </a>
+                  </Link>
+                )}
+              </div>
+            </aside>
+          </div>
+        </div>
+      </div>
+    </div>
+  );
+}
+ 
+CallToAction.propTypes = {
+  /**
+   * title of the call to action
+   */
+  title: PropTypes.string.isRequired,
+ 
+  /**
+   * a short description about what the call to action is about - string format
+   */
+  description: PropTypes.string,
+  /**
+   * a short disclaimer after the description - ie. for a sign up banner an explanation that participation is voluntary
+   */
+  disclaimer: PropTypes.string,
+ 
+  /**
+   * a short description about what the call to action is about - html format
+   */
+  html: PropTypes.string,
+ 
+  /**
+   * the url to the action
+   */
+  href: PropTypes.string.isRequired,
+ 
+  /**
+   * url text to be displayed
+   */
+  hrefText: PropTypes.string.isRequired,
+ 
+  /**
+   * Aria expanded state
+   */
+  ariaExpanded: PropTypes.string,
+ 
+  /**
+   * Show or hide privacy link
+   */
+  showPrivacyLink: PropTypes.bool,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/CallToAction.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/CallToAction.stories.js.html new file mode 100644 index 0000000000..4758447ec9 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/CallToAction.stories.js.html @@ -0,0 +1,160 @@ + + + + + + Code coverage report for components/molecules/CallToAction.stories.js + + + + + + + + + +
+
+

All files / components/molecules CallToAction.stories.js

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26  +  +  +  +  +  +  +  +3x +  +1x +1x +1x +  +  +  +  +  +  +1x +  +  +  +  +  + 
import React from "react";
+import { CallToAction } from "./CallToAction";
+ 
+export default {
+  title: "Components/Molecules/CallToAction",
+  component: CallToAction,
+};
+ 
+const Template = (args) => <CallToAction {...args} />;
+ 
+export const Primary = Template.bind({});
+export const Secondary = Template.bind({});
+Primary.args = {
+  title: "the title",
+  description: "a description that should be short and concise",
+  href: "#",
+  hrefText: "the link text",
+};
+ 
+Secondary.args = {
+  title: "the title",
+  html: "<h1>Title</h1><p>Text</p>",
+  href: "#",
+  hrefText: "the link text",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/Card.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Card.js.html new file mode 100644 index 0000000000..24b7629ca8 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Card.js.html @@ -0,0 +1,559 @@ + + + + + + Code coverage report for components/molecules/Card.js + + + + + + + + + +
+
+

All files / components/molecules Card.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 68.75% + Branches + 11/16 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159  +  +  +  +  +  +  +  +  +3x +5x +  +  +  +  +  +5x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import PropTypes from "prop-types";
+import Link from "next/link";
+import { ActionButton } from "../atoms/ActionButton";
+ 
+/**
+ * Displays an experiment card on the page
+ */
+ 
+export const Card = (props) => {
+  const tagColours = {
+    current_projects: "custom-green",
+    past_projects: "custom-gray",
+    upcoming_projects: "custom-blue",
+  };
+ 
+  return (
+    <Link href={props.href}>
+      <div
+        className={`group card-shadow border border-custom-gray-border rounded-md pb-4 hover:cursor-pointer ${
+          "border-" + tagColours[props.tag]
+        }`}
+        data-testid={props.dataTestId}
+        data-cy={props.dataCy}
+      >
+        {props.showImage ? (
+          <div className="h-80 flex justify-center">
+            <img
+              src={props.imgSrc}
+              alt={props.imgAlt}
+              className="object-contain rounded-md"
+            />
+          </div>
+        ) : (
+          ""
+        )}
+        <div className="flex">
+          <p className="block font-display text-lg text-custom-blue-projects-link font-bold underline underline-offset-4 my-1 py-2 px-6 items-center group-hover:no-underline group-hover:text-custom-blue-projects-link-hover">
+            {props.title}
+            {props.showIcon ? (
+              props.href.substring(0, 8) === "https://" ? (
+                <div className="h-4 w-4 ml-1 mt-1 relative">
+                  <img src={props.icon} alt={props.iconAlt} />
+                </div>
+              ) : (
+                ""
+              )
+            ) : (
+              ""
+            )}
+          </p>
+          {props.showTag ? (
+            <span
+              className={`block w-max py-2 px-2 font-body font-bold border-l-4 mr-6 mt-auto mb-auto ${
+                "border-" +
+                (tagColours[props.tag] || "gray-experiment") +
+                "-darker"
+              } ${
+                "bg-" +
+                (tagColours[props.tag] || "gray-experiment") +
+                "-lighter"
+              }`}
+            >
+              {props.tagLabel}
+            </span>
+          ) : (
+            ""
+          )}
+        </div>
+        {props.showDate ? (
+          <p className="ml-6 text-base text-custom-gray-date">
+            {"Posted: " + props.datePosted.substring(0, 10)}
+          </p>
+        ) : (
+          ""
+        )}
+        <p className="text-custom-gray-text mx-6 leading-30px text-lg">
+          {props.description}
+        </p>
+        {props.showButton ? (
+          <ActionButton
+            href={props.btnHref}
+            text={props.btnText}
+            id={props.btnId}
+            dataCy={props.btnId}
+            className="flex mt-6 mb-2 ml-4 rounded xxs:w-full xs:w-fit py-2 bg-[#EAEBED] text-custom-blue-text focus:ring-inset focus:ring-2 focus:ring-black hover:bg-details-button-hover-gray text-center border border-details-button-gray"
+          />
+        ) : (
+          ""
+        )}
+      </div>
+    </Link>
+  );
+};
+ 
+Card.propTypes = {
+  /**
+   * Title of the experiment card.
+   */
+  title: PropTypes.string.isRequired,
+ 
+  /**
+   * tag of the experiment card
+   */
+  tag: PropTypes.string,
+ 
+  /**
+   * Link of the card
+   */
+  href: PropTypes.string,
+ 
+  /**
+   * the label of the tag card
+   */
+  tagLabel: PropTypes.string,
+ 
+  /**
+   * Description of the experiment card.
+   */
+  description: PropTypes.string.isRequired,
+ 
+  /**
+   * the test id for unit tests
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * the test id for cypress test
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * Boolean value to show or hide image
+   */
+  showImage: PropTypes.bool,
+ 
+  /**
+   * Boolean value to show or hide button
+   */
+  showButton: PropTypes.bool,
+ 
+  /**
+   * Boolean value to show or hide date
+   */
+  showDate: PropTypes.bool,
+ 
+  /**
+   * Boolean value to show or hide icon beside title
+   */
+  showIcon: PropTypes.bool,
+ 
+  /**
+   * Boolean value to show or hide tag
+   */
+  showTag: PropTypes.bool,
+};
+ 
+export default Card;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/Card.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Card.stories.js.html new file mode 100644 index 0000000000..560e7c6d99 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Card.stories.js.html @@ -0,0 +1,262 @@ + + + + + + Code coverage report for components/molecules/Card.stories.js + + + + + + + + + +
+
+

All files / components/molecules Card.stories.js

+
+ +
+ 100% + Statements + 12/12 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 11/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60  +  +  +  +  +  +  +  +  +3x +  +1x +1x +1x +1x +1x +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  + 
import React from "react";
+import Card from "./Card";
+import Image from "../../public/placeholder.png";
+ 
+export default {
+  title: "Components/Molecules/Card",
+  component: Card,
+};
+ 
+const Template = (args) => <Card {...args} />;
+ 
+export const Primary = Template.bind({});
+export const WithTag = Template.bind({});
+export const WithImage = Template.bind({});
+export const WithDate = Template.bind({});
+export const WithButton = Template.bind({});
+ 
+Primary.args = {
+  title: "Title",
+  href: "/some/link",
+  description: "Description",
+  imgSrc: "/placeholderImg",
+  imgAlt: "placeholderAlt",
+};
+ 
+WithTag.args = {
+  showTag: true,
+  title: "Title",
+  tag: "experiment_tag",
+  tagLabel: "Experiment tag",
+  description: "Description",
+  href: "/some/link",
+};
+ 
+WithImage.args = {
+  showImage: true,
+  title: "Title",
+  description: "Description",
+  href: "/somelink",
+  imgSrc: Image,
+  imgAlt: "placeholderAlt",
+};
+ 
+WithDate.args = {
+  showDate: true,
+  title: "Title",
+  href: "/somelink",
+  datePosted: "2022-01-01",
+  description: "Description",
+};
+ 
+WithButton.args = {
+  showButton: true,
+  title: "Title",
+  description: "Description",
+  href: "/somelink",
+  btnHref: "/somelink",
+  btnText: "Button text",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/CopyToClipboard.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/CopyToClipboard.js.html new file mode 100644 index 0000000000..f264ff0294 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/CopyToClipboard.js.html @@ -0,0 +1,493 @@ + + + + + + Code coverage report for components/molecules/CopyToClipboard.js + + + + + + + + + +
+
+

All files / components/molecules CopyToClipboard.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 50% + Branches + 1/2 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137  +  +  +  +  +4x +  +  +  +  +4x +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import Clipboard from "react-copy-to-clipboard";
+import { ActionButton } from "../atoms/ActionButton";
+ 
+export function CopyToClipboard(props) {
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        value: props.value,
+      }
+    : {};
+  return (
+    <div>
+      <input
+        className={`font-body w-full min-h-40px py-6px px-12px text-center ${props.textFieldStyle}`}
+        id={props.id}
+        aria-describedby={props.describedby}
+        name={props.name}
+        placeholder={props.placeholder}
+        type={props.type}
+        onChange={(e) => props.onChange(e.currentTarget.value)}
+        {...ifControlledProps}
+        data-testid={props.dataTestId}
+        data-cy={props.dataCy}
+        aria-label={props.aria_label}
+      />
+      <Clipboard text={props.value}>
+        <ActionButton
+          id={props.buttonId}
+          className={`w-full ${props.buttonStyle}`}
+          onClick={props.onClick}
+        >
+          {props.buttonText}
+        </ActionButton>
+      </Clipboard>
+    </div>
+  );
+}
+ 
+CopyToClipboard.defaultProps = {
+  value: "",
+  type: "text",
+};
+ 
+CopyToClipboard.propTypes = {
+  /**
+   * additional css for the component
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * the id of the text field
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * the name of the text field
+   */
+  name: PropTypes.string.isRequired,
+ 
+  /**
+   * value of the text field
+   */
+  value: PropTypes.string,
+ 
+  /**
+   * placeholder for the text field,
+   */
+  placeholder: PropTypes.string,
+ 
+  /**
+   * the type of the input
+   */
+  type: PropTypes.string,
+ 
+  /**
+   * call back for when the value of the text field changes
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * call back for when the link has been copied
+   */
+  onClick: PropTypes.func,
+ 
+  /**
+   * message to display if there is an error
+   */
+  error: PropTypes.string,
+ 
+  /**
+   * if label should be bold
+   */
+  boldLabel: PropTypes.bool,
+ 
+  /**
+   * boolean flag to specify that this input should be uncontrolled by react
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * unit test selector
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * cypress tests selector
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * aria-describedby label id
+   */
+  describedby: PropTypes.string,
+ 
+  /**
+   * aria-label
+   */
+  aria_label: PropTypes.string,
+ 
+  /**
+   * Text for ActionButton
+   */
+  buttonText: PropTypes.string,
+  /**
+   * id for ActionButton
+   */
+  buttonId: PropTypes.string,
+  /**
+   * Custom styling for the button
+   */
+  buttonStyle: PropTypes.string,
+  /**
+   * Custom styling for the text field
+   */
+  textFieldStyle: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/CopyToClipboard.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/CopyToClipboard.stories.js.html new file mode 100644 index 0000000000..f3b8d30db8 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/CopyToClipboard.stories.js.html @@ -0,0 +1,151 @@ + + + + + + Code coverage report for components/molecules/CopyToClipboard.stories.js + + + + + + + + + +
+
+

All files / components/molecules CopyToClipboard.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23  +  +  +  +  +  +  +  +2x +  +1x +  +1x +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { CopyToClipboard } from "./CopyToClipboard";
+ 
+export default {
+  title: "Components/Molecules/CopyToClipboard",
+  component: CopyToClipboard,
+};
+ 
+const Template = (args) => <CopyToClipboard {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  buttonId: "clipboardButton",
+  buttonText: "Copy link",
+  buttonStyle: "ieButton",
+  id: "clipboard",
+  name: "theClipboard",
+  textFieldStyle: "ieTextField",
+  dataTestId: "clipboard-controlled",
+  aria_label: "clipboard",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/Details.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Details.js.html new file mode 100644 index 0000000000..6ef5e47fec --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Details.js.html @@ -0,0 +1,217 @@ + + + + + + Code coverage report for components/molecules/Details.js + + + + + + + + + +
+
+

All files / components/molecules Details.js

+
+ +
+ 100% + Statements + 2/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45  +  +  +  +  +  +22x +  +  +  +  +  +  +  +  +  +  +  +7x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * Drop Down Element
+ */
+export function Details(props) {
+  return (
+    <details data-testid={props.dataTestId} data-cy={props.dataCy}>
+      <summary className="max-w-450px w-full bg-details-button-gray focus:ring-inset focus:ring-2 focus:ring-black active:bg-details-button-active-gray hover:bg-details-button-hover-gray rounded py-12px px-5px font-body text-sm text-center text-canada-footer-font cursor-pointer border border-outset border-details-button-gray">
+        {props.label}
+      </summary>
+      <div className="max-w-450px w-full min-h-200px bg-gray-light-200 mt-1 p-15px border border-details-border-gray rounded ring-inset ring-1 ring-gray-light-200">
+        {props.children}
+      </div>
+    </details>
+  );
+}
+ 
+Details.propTypes = {
+  /**
+   * id for the details element
+   */
+  id: PropTypes.string,
+ 
+  /**
+   * the label of the details button
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * the content for the details element
+   */
+  children: PropTypes.node,
+ 
+  /**
+   * unit test selector
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * cypress selector
+   */
+  dataCy: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/Details.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Details.stories.js.html new file mode 100644 index 0000000000..bd08042a09 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Details.stories.js.html @@ -0,0 +1,136 @@ + + + + + + Code coverage report for components/molecules/Details.stories.js + + + + + + + + + +
+
+

All files / components/molecules Details.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18  +  +  +  +  +  +  +  +2x +  +1x +1x +  +  +  +  +  + 
import React from "react";
+import { Details } from "./Details";
+ 
+export default {
+  title: "Components/Molecules/Details",
+  component: Details,
+};
+ 
+const Template = (args) => <Details {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  id: "unopenedDetails",
+  label: "A Drop Down",
+  children: "Content",
+  dataTestId: "details",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/ErrorBox.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/ErrorBox.js.html new file mode 100644 index 0000000000..83c2b0534b --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/ErrorBox.js.html @@ -0,0 +1,292 @@ + + + + + + Code coverage report for components/molecules/ErrorBox.js + + + + + + + + + +
+
+

All files / components/molecules ErrorBox.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ActionButton } from "../atoms/ActionButton";
+ 
+/**
+ * error box to be used to summarise error in forms
+ */
+export function ErrorBox(props) {
+  return (
+    <div
+      id="error-box"
+      className="relative border-l-4 border-error-border-red min-h-40px my-10"
+      data-cy="error-box"
+      role="alert"
+      aria-atomic="true"
+    >
+      <span className="icon-error absolute top-1 -left-2.5 bg-white" />
+      <p className="font-bold ml-4 text-p mb-2 lg:text-h4">{props.text}</p>
+      <ul
+        className="w-full list-disc list-outside leading-loose pl-8 text-sm lg:text-p"
+        data-cy="error-box-items"
+        id="error-box-items"
+      >
+        {props.errors.map(({ id, text }) => {
+          return (
+            <li key={`${id}-${text}`} className="mb-2">
+              <ActionButton
+                id={`${id}-${text}`}
+                custom="font-body hover:text-canada-footer-hover-font-blue text-canada-footer-font underline inline-block text-left"
+                onClick={() => props.onClick(id)}
+                dataCy={`error-item-${id}`}
+                className="" // This is to avoid all the "undefined" class names applied.
+              >
+                {text}
+              </ActionButton>
+            </li>
+          );
+        })}
+      </ul>
+    </div>
+  );
+}
+ 
+ErrorBox.defaultProps = {
+  errors: [],
+};
+ 
+ErrorBox.propTypes = {
+  /**
+   * An array of error messages to display. Each object contains the id of the element which
+   * when the text is clicked the browser will scroll too
+   */
+  text: PropTypes.string.isRequired,
+  errors: PropTypes.arrayOf(
+    PropTypes.shape({
+      /**
+       * the id of the element on the page to scroll too
+       */
+      id: PropTypes.string.isRequired,
+      /**
+       * the text to display for the error component
+       */
+      text: PropTypes.string.isRequired,
+    })
+  ),
+  /**
+   * onClick callback
+   */
+  onClick: PropTypes.func,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/ErrorBox.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/ErrorBox.stories.js.html new file mode 100644 index 0000000000..dcf9d16910 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/ErrorBox.stories.js.html @@ -0,0 +1,208 @@ + + + + + + Code coverage report for components/molecules/ErrorBox.stories.js + + + + + + + + + +
+
+

All files / components/molecules ErrorBox.stories.js

+
+ +
+ 80% + Statements + 4/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 75% + Lines + 3/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { ErrorBox } from "./ErrorBox";
+ 
+export default {
+  title: "Components/Molecules/ErrorBox",
+  component: ErrorBox,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex items-center flex-col">
+        <div className="w-96">
+          <Story />
+        </div>
+        <div id="someid" className="mt-80">
+          Some element with an id
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <ErrorBox {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  text: "The form could not be submitted because three errors were found",
+  errors: [
+    {
+      id: "someid",
+      text: "Some Error 1",
+    },
+    {
+      id: "someid",
+      text: "Some Error 2",
+    },
+    {
+      id: "someid",
+      text: "Some Error 3",
+    },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/FeedbackWidget.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/FeedbackWidget.js.html new file mode 100644 index 0000000000..8d9c0215bb --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/FeedbackWidget.js.html @@ -0,0 +1,1006 @@ + + + + + + Code coverage report for components/molecules/FeedbackWidget.js + + + + + + + + + +
+
+

All files / components/molecules FeedbackWidget.js

+
+ +
+ 66.66% + Statements + 34/51 +
+ + +
+ 40.9% + Branches + 9/22 +
+ + +
+ 50% + Functions + 5/10 +
+ + +
+ 66.66% + Lines + 34/51 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308  +  +  +  +  +  +  +  +  +  +  +  +  +  +5x +  +  +  +  +  +10x +10x +10x +10x +10x +10x +10x +  +10x +  +10x +7x +2x +2x +  +  +  +  +10x +  +  +  +1x +1x +  +  +  +  +1x +1x +  +  +1x +  +  +  +  +  +  +  +10x +10x +10x +  +  +  +  +  +  +  +10x +  +1x +  +1x +  +1x +  +1x +  +1x +  +  +  +  +  +  +1x +  +  +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +10x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +5x +  +  +  +  +  +  +  + 
import React, { useEffect, useState, useRef } from "react";
+import PropTypes from "prop-types";
+import { useTranslation } from "next-i18next";
+import { ActionButton } from "../atoms/ActionButton";
+import Joi from "joi";
+import { ErrorLabel } from "../atoms/ErrorLabel";
+import FocusTrap from "focus-trap-react";
+import lockScroll from "react-lock-scroll";
+import { stripFeedback } from "../../lib/utils/stripFeedback";
+ 
+/**
+ * Displays the PhaseBanner on the page
+ */
+ 
+export const FeedbackWidget = ({
+  showFeedback,
+  toggleForm,
+  projectName,
+  path,
+}) => {
+  const [submitted, setSubmitted] = useState(false);
+  const [feedbackClose, setFeedbackClose] = useState(false);
+  const { t } = useTranslation("common");
+  const [response, setResponse] = useState(t("thankYouFeedback"));
+  const email = process.env.NEXT_PUBLIC_NOTIFY_REPORT_A_PROBLEM_EMAIL;
+  const [count, setCount] = useState(2000);
+  var maxLength = 2000;
+ 
+  lockScroll(showFeedback);
+ 
+  useEffect(() => {
+    if (!showFeedback) {
+      setFeedbackError("");
+      setFeedback("");
+    }
+  }, [showFeedback]);
+ 
+  // Joi form validation schema.
+  const formSchema = Joi.object({
+    feedback: Joi.string()
+      .required()
+      .error((errors) => {
+        errors.forEach((error) => {
+          switch (error.code) {
+            case "any.required":
+              error.message = t("feedbackRequired");
+              break;
+            default:
+              error.message = t("feedbackRequired");
+              break;
+          }
+        });
+        return errors;
+      }),
+  });
+ 
+  function setFocusAfterSubmit() {
+    document.getElementById("feedbackButton").focus();
+  }
+ 
+  const [feedback, setFeedback] = useState("");
+  const [feedbackError, setFeedbackError] = useState("");
+  const feedbackObject = useRef({
+    feedbackToSend: {
+      project: "",
+      pageUrl: "",
+      feedback: "",
+    },
+  });
+ 
+  let onSubmitHandler = async (e) => {
+    // prevent default behaviour of form
+    e.preventDefault();
+    // clear out error values
+    await setFeedbackError("");
+    // compile feedback into object to be validated
+    const formData = { feedback };
+    //Strip personal identifier information from feedback
+    var cleanedFeedback = stripFeedback(formData.feedback);
+    // set values in feedback object
+    feedbackObject.current.feedbackToSend = {
+      project: projectName,
+      pageUrl: path,
+      feedback: cleanedFeedback,
+    };
+ 
+    // validate data using Joi schema
+    const { error } = formSchema.validate(formData, {
+      abortEarly: false,
+      allowUnknown: true,
+    });
+    const valid = error === undefined;
+ 
+    Iif (valid) {
+      //Submit data to the api
+      const response = await fetch("/api/feedback", {
+        method: "POST",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        body: JSON.stringify(feedbackObject.current.feedbackToSend),
+      });
+ 
+      // if the response is good, show thank you message
+      if (response.status === 201 || response.status === 200) {
+        await setResponse(t("thankYouFeedback"));
+        setFeedback("");
+        setCount(2000);
+      } else {
+        await setResponse(t("sorryFeedback"));
+      }
+ 
+      setSubmitted(true);
+      setFeedbackClose(false);
+      setFocusAfterSubmit();
+    } else {
+      setFeedbackError(error.message);
+    }
+  };
+ 
+  return (
+    <>
+      {showFeedback ? (
+        <FocusTrap
+          focusTrapOptions={{
+            initialFocus: false,
+            fallbackFocus: "#feedbackClose",
+          }}
+        >
+          <div
+            className="fixed top-0 left-0 w-screen h-full flex justify-center items-center"
+            style={{ background: "rgba(71, 71, 71, 0.8)" }}
+          >
+            <div
+              className="w-auto mx-12 md:mx-24 bg-white shadow-lg border-black border-4"
+              data-testid="feedbackDropdown"
+            >
+              {submitted ? (
+                <div role="status" className="w-full">
+                  {!feedbackClose ? (
+                    <div
+                      className={`${
+                        response === t("thankYouFeedback")
+                          ? "bg-custom-green-darker font-bold"
+                          : "bg-circle-color"
+                      } text-white flex py-2`}
+                    >
+                      <div className="layout-container flex">
+                        <span className="flex flex-col text-xs lg:text-sm font-body mt-2 mb-4 w-full">
+                          {response}
+                          {response === t("sorryFeedback") ? (
+                            <ActionButton
+                              id="link-mail"
+                              ariaLabel="Service Canada email"
+                              dataCy="link-mail"
+                              dataTestId="link-mail"
+                              href={`mailto:${email}`}
+                              text={email}
+                              custom="w-max text-xs lg:text-sm underline outline-none focus:outline-white-solid"
+                            />
+                          ) : (
+                            ""
+                          )}
+                        </span>
+                        <div className="w-1/4 flex justify-end">
+                          <ActionButton
+                            id="feedbackClose"
+                            ariaLabel="Close the expanded feedback section"
+                            dataCy="closeButton"
+                            dataTestId="closeButton"
+                            custom="font-body text-gray-dark-100 flex -py-1 mt-2.5 lg:mt-0 outline-none focus:outline-white-solid items-center"
+                            imageSource="/close-x.svg"
+                            imageAlt="Close button"
+                            imageSpanClass="text-xs text-white leading-4 lg:text-sm underline ml-1 lg:ml-2 lg:leading-10"
+                            imageSpanText={t("close")}
+                            onClick={() => setFeedbackClose(true)}
+                            tabindex="-1"
+                          />
+                        </div>
+                      </div>
+                    </div>
+                  ) : (
+                    ""
+                  )}
+                </div>
+              ) : (
+                ""
+              )}
+              <div className="layout-container text-gray-dark-100 pb-4">
+                <div className="pt-4">
+                  <ActionButton
+                    id="feedbackClose"
+                    ariaLabel="Close the expanded feedback section"
+                    dataCy="closeButton"
+                    dataTestId="closeButton"
+                    custom="flex float-right font-body text-gray-dark-100 flex mt-2.5 lg:mt-0 outline-none focus:outline-white-solid items-center"
+                    imageSource="/close-x.svg"
+                    imageAlt="Close button"
+                    imageSpanClass="text-xs leading-4 lg:text-sm underline ml-2 lg:leading-10"
+                    imageSpanText={t("close")}
+                    onClick={() => {
+                      toggleForm();
+                      setCount(2000);
+                    }}
+                  />
+                </div>
+                <h2 className="text-h4 lg:text-h3 lg:text-sm font-display pt-6 mb-4 w-48 sm:w-auto">
+                  {t("improveService")}
+                </h2>
+                <ul className="list-outside list-disc px-6 pb-3">
+                  <li className="text-xs lg:text-sm pt-2 pb-1 font-body">
+                    <strong>{t("reportAProblemNoReply")}</strong>
+                  </li>
+                  <li className="text-xs lg:text-sm font-body mb-0">
+                    <strong>{t("confidential")}</strong>
+                    <ActionButton
+                      ariaLabel="Privacy page link"
+                      id="link-privacyPage"
+                      dataCy="link-privacyPage"
+                      dataTestId="link-privacyPage"
+                      href={t("privacyLink")}
+                      text={t("reportAProblemPrivacyStatement")}
+                      custom="text-xs lg:text-sm underline ml-2 outline-none focus:outline-white-solid"
+                    />
+                  </li>
+                </ul>
+                <form
+                  data-gc-analytics-formname="ESDC|EDSC:ServiceCanadaLabsFeedback-Form"
+                  data-gc-analytics-collect='[{"value":"input,select","emptyField":"N/A"}]'
+                  className="w-full"
+                  action="#"
+                  onSubmit={onSubmitHandler}
+                  aria-live="polite"
+                >
+                  <label
+                    htmlFor="feedbackTextArea"
+                    className="text-xs lg:text-sm font-body"
+                  >
+                    <b
+                      className="text-error-border-red mr-1"
+                      aria-hidden="true"
+                    >
+                      *
+                    </b>
+                    <b>{t("doBetter")}</b>
+                  </label>
+                  <div id="feedbackInfo">
+                    <p className="text-xs lg:text-sm my-2">
+                      {t("doNotInclude")}
+                    </p>
+                    <p className="text-xs lg:text-sm mb-1 mt-4">
+                      {count}
+                      {t("maximum2000")}
+                    </p>
+                  </div>
+                  {feedbackError ? (
+                    <ErrorLabel
+                      message={feedbackError}
+                      className="text-black mt-4"
+                    />
+                  ) : undefined}
+                  <textarea
+                    aria-describedby="feedbackInfo"
+                    id="feedbackTextArea"
+                    name="feedbackTextArea"
+                    maxLength="2000"
+                    rows="5"
+                    className={
+                      "text-input font-body w-full min-h-40px shadow-sm text-form-input-gray border-2 border-gray-dark-100 my-2 py-6px px-12px rounded"
+                    }
+                    value={feedback}
+                    onChange={(e) => setFeedback(e.currentTarget.value)}
+                    onInput={(e) =>
+                      setCount(maxLength - e.currentTarget.value.length)
+                    }
+                    aria-required="true"
+                  />
+                  <ActionButton
+                    id="feedback-submit"
+                    ariaLabel="Submit feedback"
+                    custom="outline-none focus:outline-black-solid rounded block w-full lg:w-auto lg:px-12 text-xs lg:text-sm py-2 mt-2 font-bold bg-custom-blue-blue text-white border border-custom-blue-blue active:bg-custom-blue-dark hover:bg-custom-blue-light flex justify-center"
+                    type="submit"
+                    dataCy="feedback-submit"
+                    dataTestId="feedback-submit"
+                    text={t("reportAProblemSubmit")}
+                    analyticsTracking
+                  />
+                </form>
+              </div>
+            </div>
+          </div>
+        </FocusTrap>
+      ) : (
+        ""
+      )}
+    </>
+  );
+};
+ 
+FeedbackWidget.propTypes = {
+  /**
+   * This is for showing the feedback component
+   */
+  feedbackActive: PropTypes.bool,
+};
+ 
+export default FeedbackWidget;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/FeedbackWidget.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/FeedbackWidget.stories.js.html new file mode 100644 index 0000000000..ce543eaf64 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/FeedbackWidget.stories.js.html @@ -0,0 +1,130 @@ + + + + + + Code coverage report for components/molecules/FeedbackWidget.stories.js + + + + + + + + + +
+
+

All files / components/molecules FeedbackWidget.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16  +  +  +  +  +  +  +  +4x +  +1x +  +1x +  +  + 
import React from "react";
+import FeedbackWidget from "./FeedbackWidget";
+ 
+export default {
+  title: "Components/Molecules/FeedbackWidget",
+  component: FeedbackWidget,
+};
+ 
+const Template = (args) => <FeedbackWidget {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  showFeedback: true,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/Filter.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Filter.js.html new file mode 100644 index 0000000000..00a401e5e0 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Filter.js.html @@ -0,0 +1,298 @@ + + + + + + Code coverage report for components/molecules/Filter.js + + + + + + + + + +
+
+

All files / components/molecules Filter.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { RadioButton } from "../atoms/RadioButton";
+ 
+/**
+ *  Filter Experiments component
+ */
+export function Filter(props) {
+  return (
+    <form
+      className="my-12"
+      data-testid={props.dataTestId}
+      data-cy={props.dataCy}
+    >
+      <fieldset>
+        <legend className="md:float-left font-body pb-3 pt-2 pr-4 text-sm md:text-base">
+          {props.label}
+        </legend>
+        <div className={"flex"}>
+          {props.options.map(({ id, label, checked }, index) => (
+            <RadioButton
+              key={id}
+              label={label}
+              value={id}
+              name={id}
+              id={id}
+              dataTestId={id}
+              dataCy={id}
+              onChange={props.onChange}
+              checked={checked}
+              roundedFront={index === 0}
+              roundedBack={index === props.options.length - 1}
+            />
+          ))}
+        </div>
+      </fieldset>
+    </form>
+  );
+}
+ 
+Filter.propTypes = {
+  /**
+   * options for the filter
+   */
+  options: PropTypes.arrayOf(
+    PropTypes.shape({
+      id: PropTypes.string.isRequired,
+      label: PropTypes.string.isRequired,
+      checked: PropTypes.bool,
+    })
+  ).isRequired,
+ 
+  /**
+   * filter label
+   */
+  label: PropTypes.string,
+ 
+  /**
+   * Action to do on input change
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * Test id for unit tests
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * Test id for cypress test
+   */
+  dataCy: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/Filter.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Filter.stories.js.html new file mode 100644 index 0000000000..f9e5fdcabf --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Filter.stories.js.html @@ -0,0 +1,181 @@ + + + + + + Code coverage report for components/molecules/Filter.stories.js + + + + + + + + + +
+
+

All files / components/molecules Filter.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33  +  +  +  +  +  +  +  +3x +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { Filter } from "./Filter";
+ 
+export default {
+  title: "Components/Molecules/Filter",
+  component: Filter,
+};
+ 
+const Template = (args) => <Filter {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  label: "Filter By",
+  options: [
+    {
+      id: "all",
+      label: "All",
+      checked: false,
+    },
+    {
+      id: "coming_soon",
+      label: "Coming Soon",
+      checked: false,
+    },
+    {
+      id: "alpha",
+      label: "Alpha",
+      checked: true,
+    },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/List.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/List.js.html new file mode 100644 index 0000000000..603519bf80 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/List.js.html @@ -0,0 +1,208 @@ + + + + + + Code coverage report for components/molecules/List.js + + + + + + + + + +
+
+

All files / components/molecules List.js

+
+ +
+ 100% + Statements + 7/7 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 6/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42  +  +  +  +  +  +2x +2x +  +  +  +8x +  +  +8x +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ *  List component
+ */
+export function List(props) {
+  let opacity = 40;
+  return (
+    <ul className={props.className}>
+      {props.items.map((item, key) => {
+        let className =
+          "bg-opacity-" +
+          opacity +
+          " bg-circle-color text-shadow-about-circles flex-shrink-0 mr-4 mb-2 rounded-full h-36 w-36 flex items-center justify-center text-white font-bold font-display text-h1xxl relative md:left-0 -left-14";
+        if (opacity < 100) opacity += 20;
+        return (
+          <li key={key} className="flex">
+            <span className={className} role="presentation">
+              {key + 1}
+            </span>
+            <p className="text-sm md:text-p my-auto leading-normal font-body">
+              {item}
+            </p>
+          </li>
+        );
+      })}
+    </ul>
+  );
+}
+ 
+List.propTypes = {
+  /**
+   * List items
+   */
+  items: PropTypes.arrayOf(String).isRequired,
+ 
+  /**
+   * Option for styling component
+   */
+  className: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/List.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/List.stories.js.html new file mode 100644 index 0000000000..05cf5bfff6 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/List.stories.js.html @@ -0,0 +1,130 @@ + + + + + + Code coverage report for components/molecules/List.stories.js + + + + + + + + + +
+
+

All files / components/molecules List.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16  +  +  +  +  +  +  +  +2x +  +1x +  +1x +  +  + 
import React from "react";
+import { List } from "./List";
+ 
+export default {
+  title: "Components/Molecules/List",
+  component: List,
+};
+ 
+const Template = (args) => <List {...args}></List>;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  items: ["Item 1", "Item 2", "Item 3", "Item 4"],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/Menu.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Menu.js.html new file mode 100644 index 0000000000..dbebeb7afa --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Menu.js.html @@ -0,0 +1,448 @@ + + + + + + Code coverage report for components/molecules/Menu.js + + + + + + + + + +
+
+

All files / components/molecules Menu.js

+
+ +
+ 90% + Statements + 9/10 +
+ + +
+ 60% + Branches + 6/10 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 90% + Lines + 9/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122  +  +  +  +  +  +  +  +  +  +4x +4x +4x +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +12x +12x +  +12x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import Link from "next/link";
+import { useRouter } from "next/router";
+import { useState } from "react";
+ 
+/**
+ * Menu component
+ */
+export function Menu(props) {
+  //Router
+  const { asPath } = useRouter();
+  const router = useRouter();
+  const [showMenu, setShowMenu] = useState(false);
+ 
+  return (
+    <nav
+      title="Menu"
+      className="layout-container lg:justify-end lg:flex"
+      data-cy="menu"
+      role="navigation"
+      aria-labelledby="mainSiteNav"
+    >
+      <h3 className="sr-only" id="mainSiteNav">
+        Menu
+      </h3>
+      <div className="flex justify-between">
+        <button
+          id="menuButton"
+          onClick={() => setShowMenu(!showMenu)}
+          className="text-h4 text-canada-footer-font focus:outline-none focus:ring-2 focus:ring-black mb-4 py-1"
+          aria-haspopup="true"
+          aria-expanded={showMenu}
+          aria-controls="menuDropdown"
+          data-testid="menuButton"
+        >
+          <span className="inline-block align-middle icon-menu" />
+          <span className="inline-block align-middle pl-3 font-body text-p leading-none">
+            {props.menuButtonTitle}
+          </span>
+        </button>
+ 
+        <button
+          id="menuClose"
+          onClick={() => setShowMenu(!showMenu)}
+          className={`${
+            showMenu ? "" : "hidden"
+          } sr-only mb-4 text-canada-footer-font outline-none focus:not-sr-only focus:outline-black-solid lg:invisible`}
+          aria-expanded={showMenu}
+          aria-controls="menuDropdown"
+          aria-label="Close the expanded menu options"
+          data-testid="menuCloseButton"
+        >
+          <img src="/close-x-menu.svg" alt="Close button"></img>
+        </button>
+      </div>
+ 
+      <ul
+        id="menuDropdown"
+        className={`menuDropdown mt-2 ${showMenu ? "active" : ""}`}
+        role="menu"
+        aria-expanded={showMenu}
+      >
+        {props.items.map((item, key) => {
+          const exactURL = asPath === item.link; // it's exactly this url
+          const includesURL = asPath.includes(item.link); // it's a child of this url (eg, "/projects/app" includes "/projects")
+ 
+          return (
+            <li
+              key={key}
+              className={`py-3 lg:py-0 cursor-pointer text-custom-blue-projects-link list-none -my-2 -ml-2`}
+              role="menuitem"
+              aria-current={exactURL ? "page" : null}
+            >
+              <Link
+                href={item.link}
+                className={`font-body text-base ${
+                  includesURL
+                    ? router.pathname !== "/signup/privacy"
+                      ? "activePage"
+                      : "menuLink underline"
+                    : "menuLink underline"
+                }`}
+              >
+                {item.text}
+              </Link>
+            </li>
+          );
+        })}
+      </ul>
+    </nav>
+  );
+}
+ 
+Menu.propTypes = {
+  /**
+   * Menu title for small screens
+   */
+  menuButtonTitle: PropTypes.string.isRequired,
+ 
+  /**
+   * text for sign up button
+   */
+  signUpText: PropTypes.string.isRequired,
+ 
+  /**
+   * Array of Items for the menu
+   */
+  items: PropTypes.arrayOf(
+    PropTypes.shape({
+      /**
+       * Text for the menu
+       */
+      text: PropTypes.string,
+ 
+      /**
+       * Link for the menu
+       */
+      link: PropTypes.string,
+    })
+  ).isRequired,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/Menu.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Menu.stories.js.html new file mode 100644 index 0000000000..f0ed875e40 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Menu.stories.js.html @@ -0,0 +1,175 @@ + + + + + + Code coverage report for components/molecules/Menu.stories.js + + + + + + + + + +
+
+

All files / components/molecules Menu.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31  +  +  +  +  +  +  +  +3x +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { Menu } from "./Menu";
+ 
+export default {
+  title: "Components/Molecules/Menu",
+  component: Menu,
+};
+ 
+const Template = (args) => <Menu {...args}></Menu>;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  menuButtonTitle: "Menu",
+  signUpText: "Sign up",
+  items: [
+    {
+      link: "#",
+      text: "Link1",
+    },
+    {
+      link: "#",
+      text: "Link2",
+    },
+    {
+      link: "#",
+      text: "Link3",
+    },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalListField.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalListField.js.html new file mode 100644 index 0000000000..c7842649f6 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalListField.js.html @@ -0,0 +1,541 @@ + + + + + + Code coverage report for components/molecules/OptionalListField.js + + + + + + + + + +
+
+

All files / components/molecules OptionalListField.js

+
+ +
+ 75% + Statements + 12/16 +
+ + +
+ 73.68% + Branches + 14/19 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 75% + Lines + 12/16 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153  +  +  +  +  +  +  +  +  +5x +5x +1x +  +  +1x +  +  +1x +  +  +  +5x +5x +  +  +5x +5x +  +  +  +5x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from "react";
+import { CheckBox } from "../atoms/CheckBox";
+import { RadioField } from "../atoms/RadioField";
+import PropTypes from "prop-types";
+ 
+/**
+ * An optional list field (radio, checkbox) that is enabled by a checkbox
+ */
+export function OptionalListField(props) {
+  let [showListField, setShowListField] = useState(props.checked || false);
+  let handleCheckChange = (wasChecked, name, value) => {
+    Iif (wasChecked) {
+      setShowListField(false);
+    } else {
+      setShowListField(true);
+    }
+ 
+    Iif (props.onControlChange) {
+      props.onControlChange(wasChecked, name, value);
+    }
+  };
+  let sortedChildren = [...props.children].sort((a, b) => {
+    Iif (a.props.label < b.props.label) {
+      return -1;
+    }
+    Eif (b.props.label < a.props.label) {
+      return 1;
+    }
+    return 0;
+  });
+  return (
+    <>
+      {props.controlType === "checkbox" ? (
+        <CheckBox
+          label={props.controlLabel}
+          id={props.controlId}
+          name={props.controlName}
+          checked={props.checked}
+          uncontrolled={props.uncontrolled}
+          value={props.controlValue}
+          onChange={handleCheckChange}
+          dataTestId={props.controlDataTestId}
+          required={props.controlRequired}
+          dataCy={props.controlDataCy}
+        />
+      ) : (
+        <RadioField
+          label={props.controlLabel}
+          id={props.controlId}
+          name={props.controlName}
+          checked={props.checked}
+          uncontrolled={props.uncontrolled}
+          value={props.controlValue}
+          onChange={handleCheckChange}
+          required={props.controlRequired}
+          dataTestId={props.controlDataTestId}
+          dataCy={props.controlDataCy}
+        />
+      )}
+      {(props.uncontrolled && showListField) || props.checked ? (
+        <fieldset className="mb-10px">
+          <legend className="block leading-tight text-sm font-body mb-5px font-bold">
+            {props.listFieldRequired ? (
+              <b className="text-error-border-red" aria-hidden="true">
+                *
+              </b>
+            ) : (
+              ""
+            )}
+            {props.listLabel}
+          </legend>
+          <div className="gap-4">{sortedChildren}</div>
+        </fieldset>
+      ) : undefined}
+    </>
+  );
+}
+ 
+OptionalListField.defaultProps = {
+  controlType: "checkbox",
+};
+ 
+OptionalListField.propTypes = {
+  /**
+   * the type of field that should be used
+   */
+  controlType: PropTypes.oneOf(["checkbox", "radiofield"]),
+  /**
+   * the id for the checkbox
+   */
+  controlId: PropTypes.string.isRequired,
+ 
+  /**
+   * the name for the checkbox
+   */
+  controlName: PropTypes.string.isRequired,
+ 
+  /**
+   * the label for the checkbox
+   */
+  controlLabel: PropTypes.string.isRequired,
+ 
+  /**
+   * the value for the checkbox
+   */
+  controlValue: PropTypes.string,
+ 
+  /**
+   * whether or not the checkbox is checked
+   */
+  checked: PropTypes.bool,
+ 
+  /**
+   * boolean flag to denote whether or not the inputs are controlled
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * whether or not the control is required
+   */
+  controlRequired: PropTypes.bool,
+ 
+  /**
+   * the test id for the checkbox to select in unit tests
+   */
+  controlDataTestId: PropTypes.string,
+ 
+  /**
+   * the cypress selector for the checkbox
+   */
+  controlDataCy: PropTypes.string,
+ 
+  /**
+   * callback when the checkbox changes
+   */
+  onControlChange: PropTypes.func,
+ 
+  /**
+   * whether or not the list field is required
+   */
+  listFieldRequired: PropTypes.bool,
+ 
+  /**
+   * list items to display
+   */
+  children: PropTypes.arrayOf(PropTypes.element),
+ 
+  /**
+   * legend text for the list items
+   */
+  listLabel: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalListField.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalListField.stories.js.html new file mode 100644 index 0000000000..00c7c2cf79 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalListField.stories.js.html @@ -0,0 +1,562 @@ + + + + + + Code coverage report for components/molecules/OptionalListField.stories.js + + + + + + + + + +
+
+

All files / components/molecules OptionalListField.stories.js

+
+ +
+ 92.3% + Statements + 12/13 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 91.66% + Lines + 11/12 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { OptionalListField } from "./OptionalListField";
+import { CheckBox } from "../atoms/CheckBox";
+import { RadioField } from "../atoms/RadioField";
+ 
+export default {
+  title: "Components/Molecules/OptionalListField",
+  component: OptionalListField,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <OptionalListField {...args} />;
+ 
+export const UnOpened = Template.bind({});
+UnOpened.args = {
+  controlId: "nutella-check-1",
+  controlName: "nutellaCheckOne",
+  controlLabel: "Do you not like Nutella ?",
+  controlValue: "unopened",
+  controlDataTestId: "unopened-check-1",
+  listLabel: "Please check all the reasons why you are wrong.",
+  children: [
+    <CheckBox
+      key="key1"
+      label="I don't like fake chocolate spread"
+      name="reasons"
+      value="dislike"
+      id="reasons-dislike"
+    />,
+    <CheckBox
+      key="key2"
+      label="I make poor choices"
+      name="reasons"
+      value="poor-choice"
+      id="reasons-poor-choice"
+    />,
+  ],
+};
+ 
+export const Opened_Checkboxes = Template.bind({});
+Opened_Checkboxes.args = {
+  controlId: "nutella-check-1",
+  controlName: "nutellaCheckOne",
+  controlLabel: "Do you not like Nutella ?",
+  checked: true,
+  controlDataTestId: "opened-check-1",
+  listLabel: "Please check all the reasons why you are wrong.",
+  children: [
+    <CheckBox
+      key="key1"
+      label="I don't like fake chocolate spread"
+      name="reasons"
+      value="dislike"
+      id="reasons-dislike"
+      dataTestId="reasons-dislike"
+    />,
+    <CheckBox
+      key="key2"
+      label="I make poor choices"
+      name="reasons"
+      value="poor-choice"
+      id="reasons-poor-choice"
+      dataTestId="reasons-poor-choice"
+    />,
+  ],
+};
+ 
+export const Opened_Radiofields = Template.bind({});
+Opened_Radiofields.args = {
+  controlId: "nutella-check-1",
+  controlName: "nutellaCheckOne",
+  controlLabel: "Do you not like Nutella ?",
+  checked: true,
+  controlDataTestId: "opened-check-1",
+  listLabel: "Please check all the reasons why you are wrong.",
+  children: [
+    <RadioField
+      key="key1"
+      label="I don't like fake chocolate spread"
+      name="reasons"
+      value="dislike"
+      id="reasons-dislike"
+      dataTestId="reasons-dislike"
+    />,
+    <RadioField
+      key="key2"
+      label="I make poor choices"
+      name="reasons"
+      value="poor-choice"
+      id="reasons-poor-choice"
+      dataTestId="reasons-poor-choice"
+    />,
+  ],
+};
+ 
+export const Radio = Template.bind({});
+Radio.args = {
+  controlType: "radiofield",
+  controlId: "nutella-check-1",
+  controlName: "nutellaCheckOne",
+  controlLabel: "Do you not like Nutella ?",
+  checked: true,
+  controlDataTestId: "radio-check-1",
+  listLabel: "Please check all the reasons why you are wrong.",
+  children: [
+    <CheckBox
+      key="key1"
+      label="I don't like fake chocolate spread"
+      name="reasons"
+      value="dislike"
+      id="reasons-dislike"
+      dataTestId="reasons-dislike"
+    />,
+    <CheckBox
+      key="key2"
+      label="I make poor choices"
+      name="reasons"
+      value="poor-choice"
+      id="reasons-poor-choice"
+      dataTestId="reasons-poor-choice"
+    />,
+  ],
+};
+ 
+export const UnControlled = Template.bind({});
+UnControlled.args = {
+  controlId: "nutella-check-1",
+  controlName: "nutellaCheckOne",
+  controlLabel: "Do you not like Nutella ?",
+  uncontrolled: true,
+  controlDataTestId: "uncontrolled-check-1",
+  listLabel: "Please check all the reasons why you are wrong.",
+  children: [
+    <CheckBox
+      key="key1"
+      label="I don't like fake chocolate spread"
+      name="reasons"
+      value="dislike"
+      id="reasons-dislike"
+      dataTestId="reasons-dislike"
+    />,
+    <CheckBox
+      key="key2"
+      label="I make poor choices"
+      name="reasons"
+      value="poor-choice"
+      id="reasons-poor-choice"
+      dataTestId="reasons-poor-choice"
+    />,
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalTextField.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalTextField.js.html new file mode 100644 index 0000000000..b7bcb75658 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalTextField.js.html @@ -0,0 +1,877 @@ + + + + + + Code coverage report for components/molecules/OptionalTextField.js + + + + + + + + + +
+
+

All files / components/molecules OptionalTextField.js

+
+ +
+ 78.57% + Statements + 11/14 +
+ + +
+ 80.95% + Branches + 17/21 +
+ + +
+ 50% + Functions + 2/4 +
+ + +
+ 78.57% + Lines + 11/14 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265  +  +  +  +  +  +  +  +  +  +  +  +132x +132x +132x +132x +3x +  +  +  +3x +3x +  +  +3x +  +  +  +132x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +7x +  +  +  +7x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from "react";
+import { CheckBox } from "../atoms/CheckBox";
+import { TextField } from "../atoms/TextField";
+import { MultiTextField } from "../atoms/MultiTextField";
+import { RadioField } from "../atoms/RadioField";
+import { useTranslation } from "next-i18next";
+import PropTypes from "prop-types";
+ 
+/**
+ * An optional text box that is enabled by a checkbox
+ */
+export function OptionalTextField(props) {
+  let [showTextField, setShowTextField] = useState(props.checked || false);
+  const [expandState, setExpandState] = useState("collapsed");
+  const { t } = useTranslation("common");
+  let handleCheckChange = (wasChecked, name, value) => {
+    Iif (wasChecked) {
+      setShowTextField(false);
+      setExpandState(t("collapsed"));
+    } else {
+      setShowTextField(true);
+      setExpandState(t("expanded"));
+    }
+ 
+    Iif (props.onControlChange) {
+      props.onControlChange(wasChecked, name, value);
+    }
+  };
+  return (
+    <>
+      {props.controlType === "checkbox" && (
+        <CheckBox
+          label={props.controlLabel}
+          id={props.controlId}
+          name={props.controlName}
+          className={props.checkBoxStyle}
+          checked={props.checked}
+          uncontrolled={props.uncontrolled}
+          value={props.controlValue}
+          onChange={handleCheckChange}
+          dataTestId={props.controlDataTestId}
+          required={props.controlRequired}
+          dataCy={props.controlDataCy}
+          expandState={expandState}
+        />
+      )}
+      {props.controlType === "radiofield" && (
+        <RadioField
+          label={props.controlLabel}
+          id={props.controlId}
+          name={props.controlName}
+          checked={props.checked}
+          uncontrolled={props.uncontrolled}
+          value={props.controlValue}
+          onChange={handleCheckChange}
+          required={props.controlRequired}
+          dataTestId={props.controlDataTestId}
+          dataCy={props.controlDataCy}
+        />
+      )}
+      {(props.uncontrolled && showTextField) || props.checked ? (
+        props.multiText ? (
+          <MultiTextField
+            label={props.textFieldLabel}
+            placeholder={props.textFieldPlaceHolder}
+            name={props.textFieldName}
+            id={props.textFieldId}
+            value={props.textFieldValue}
+            boldLabel={props.textLabelBold}
+            rows={props.rows}
+            cols={props.cols}
+            spellCheck={props.spellCheck}
+            wrap={props.wrap}
+            required={props.textFieldRequired}
+            onChange={
+              props.onTextFieldChange ? props.onTextFieldChange : () => {}
+            }
+            dataTestId={props.textFieldDataTestId}
+            dataCy={props.textFieldDataCy}
+            error={props.error}
+            describedby={props.describedby}
+          />
+        ) : (
+          <TextField
+            label={props.textFieldLabel}
+            placeholder={props.textFieldPlaceHolder}
+            name={props.textFieldName}
+            id={props.textFieldId}
+            value={props.textFieldValue}
+            boldLabel={props.textLabelBold}
+            uncontrolled={props.uncontrolled}
+            required={props.textFieldRequired}
+            onChange={
+              props.onTextFieldChange ? props.onTextFieldChange : () => {}
+            }
+            dataTestId={props.textFieldDataTestId}
+            describedby={props.describedby}
+            dataCy={props.textFieldDataCy}
+          />
+        )
+      ) : undefined}
+    </>
+  );
+}
+ 
+OptionalTextField.defaultProps = {
+  controlType: "checkbox",
+};
+ 
+OptionalTextField.propTypes = {
+  /**
+   * the type of field that should be used
+   */
+  controlType: PropTypes.oneOf(["checkbox", "radiofield"]),
+  /**
+   * the id for the checkbox
+   */
+  controlId: PropTypes.string.isRequired,
+ 
+  /**
+   * the id for the text field
+   */
+  textFieldId: PropTypes.string.isRequired,
+ 
+  /**
+   * the name for the checkbox
+   */
+  controlName: PropTypes.string.isRequired,
+ 
+  /**
+   * the name for the text field
+   */
+  textFieldName: PropTypes.string.isRequired,
+ 
+  /**
+   * the label for the checkbox
+   */
+  controlLabel: PropTypes.string.isRequired,
+ 
+  /**
+   * the label for the text field
+   */
+  textFieldLabel: PropTypes.string.isRequired,
+ 
+  /**
+   * whether or not the text label is bold
+   */
+  textLabelBold: PropTypes.bool,
+ 
+  /**
+   * the value for the checkbox
+   */
+  controlValue: PropTypes.string,
+ 
+  /**
+   * the value for the text field
+   */
+  textFieldValue: PropTypes.string,
+ 
+  /**
+   * text field placeholder
+   */
+  textFieldPlaceHolder: PropTypes.string,
+ 
+  /**
+   * whether or not the checkbox is checked
+   */
+  checked: PropTypes.bool,
+ 
+  /**
+   * boolean flag to denote whether or not the inputs are controlled
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * whether or not the control is required
+   */
+  controlRequired: PropTypes.bool,
+ 
+  /**
+   * whether or not the text field is required
+   */
+  textFieldRequired: PropTypes.bool,
+ 
+  /**
+   * the test id for the checkbox to select in unit tests
+   */
+  controlDataTestId: PropTypes.string,
+ 
+  /**
+   * the test id for the text field to select in unit tests
+   */
+  textFieldDataTestId: PropTypes.string,
+ 
+  /**
+   * the cypress selector for the checkbox
+   */
+  controlDataCy: PropTypes.string,
+ 
+  /**
+   * the cypress selector for the text field
+   */
+  textFieldDataCy: PropTypes.string,
+ 
+  /**
+   * callback when the checkbox changes
+   */
+  onControlChange: PropTypes.func,
+ 
+  /**
+   * callback when the text field changes
+   */
+  onTextFieldChange: PropTypes.func,
+ 
+  /**
+   * whether or not its a multi text field
+   */
+  multiText: PropTypes.bool,
+ 
+  /**
+   * how much lines should the multi text field show
+   */
+  rows: PropTypes.number,
+ 
+  /**
+   * how much columns the multi text field has
+   */
+  cols: PropTypes.number,
+ 
+  /**
+   * the minimum amount of characters for the multi text field
+   */
+  minLength: PropTypes.number,
+ 
+  /**
+   * the maximum amount of characters for the multi text field
+   */
+  maxLength: PropTypes.number,
+ 
+  /**
+   * the wrap preference for the multi text field
+   */
+  wrap: PropTypes.oneOf(["hard", "soft"]),
+ 
+  /**
+   * whether or not to spellcheck for the multi text field
+   */
+  spellCheck: PropTypes.bool,
+ 
+  /**
+   * message to display if there is an error
+   */
+  error: PropTypes.string,
+ 
+  /**
+   * aria-describedby label id
+   */
+  describedby: PropTypes.string,
+ 
+  /**
+   * Styling for checkbox
+   */
+  checkBoxStyle: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalTextField.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalTextField.stories.js.html new file mode 100644 index 0000000000..1487cc8dc9 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/OptionalTextField.stories.js.html @@ -0,0 +1,340 @@ + + + + + + Code coverage report for components/molecules/OptionalTextField.stories.js + + + + + + + + + +
+
+

All files / components/molecules OptionalTextField.stories.js

+
+ +
+ 92.3% + Statements + 12/13 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 91.66% + Lines + 11/12 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { OptionalTextField } from "./OptionalTextField";
+ 
+export default {
+  title: "Components/Molecules/OptionalTextField",
+  component: OptionalTextField,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <OptionalTextField {...args} />;
+ 
+export const UnOpened = Template.bind({});
+UnOpened.args = {
+  controlId: "nutella-check-1",
+  textFieldId: "nutella-text-1",
+  controlName: "nutellaCheckOne",
+  textFieldName: "nutellaTextOne",
+  controlLabel: "Do you not like Nutella ?",
+  textFieldLabel: "Please explain why you are wrong ?",
+  controlDataTestId: "unopened-check-1",
+  textFieldDataTestId: "unopened-text-1",
+};
+ 
+export const Opened = Template.bind({});
+Opened.args = {
+  controlId: "nutella-check-1",
+  textFieldId: "nutella-text-1",
+  controlName: "nutellaCheckOne",
+  textFieldName: "nutellaTextOne",
+  controlLabel: "Do you not like Nutella ?",
+  checked: true,
+  textFieldLabel: "Please explain why you are wrong ?",
+  controlDataTestId: "opened-check-1",
+  textFieldDataTestId: "opened-text-1",
+};
+ 
+export const Radio = Template.bind({});
+Radio.args = {
+  controlType: "radiofield",
+  controlId: "nutella-check-1",
+  textFieldId: "nutella-text-1",
+  controlName: "nutellaCheckOne",
+  textFieldName: "nutellaTextOne",
+  controlLabel: "Do you not like Nutella ?",
+  checked: true,
+  textFieldLabel: "Please explain why you are wrong ?",
+  controlDataTestId: "radio-check-1",
+  textFieldDataTestId: "radio-text-1",
+};
+ 
+export const UnControlled = Template.bind({});
+UnControlled.args = {
+  controlId: "nutella-check-1",
+  textFieldId: "nutella-text-1",
+  controlName: "nutellaCheckOne",
+  textFieldName: "nutellaTextOne",
+  controlLabel: "Do you not like Nutella ?",
+  uncontrolled: true,
+  textFieldLabel: "Please explain why you are wrong ?",
+  controlDataTestId: "uncontrolled-check-1",
+  textFieldDataTestId: "uncontrolled-text-1",
+};
+ 
+export const MultiText = Template.bind({});
+MultiText.args = {
+  controlId: "nutella-check-1",
+  textFieldId: "nutella-text-1",
+  controlName: "nutellaCheckOne",
+  textFieldName: "nutellaTextOne",
+  controlLabel: "Do you not like Nutella ?",
+  uncontrolled: true,
+  multiText: true,
+  rows: 5,
+  textFieldLabel: "Please explain why you are wrong ?",
+  controlDataTestId: "multitext-check-1",
+  textFieldDataTestId: "multitext-text-1",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/Quote.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Quote.js.html new file mode 100644 index 0000000000..114b63e208 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Quote.js.html @@ -0,0 +1,193 @@ + + + + + + Code coverage report for components/molecules/Quote.js + + + + + + + + + +
+
+

All files / components/molecules Quote.js

+
+ +
+ 100% + Statements + 2/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * Quote component
+ */
+export function Quote(props) {
+  return (
+    <figure
+      title="Quote"
+      className={
+        props.className +
+        " border-l-4 text-sm md:text-p pl-4 leading-normal font-body"
+      }
+    >
+      <blockquote className="max-w-sm">{props.text}</blockquote>
+      <figcaption className="text-gray-500 pt-4"> — {props.author}</figcaption>
+    </figure>
+  );
+}
+ 
+Quote.propTypes = {
+  /**
+   * Option for styling component
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * Quote
+   */
+  text: PropTypes.string,
+ 
+  /**
+   * Author
+   */
+  author: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/Quote.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Quote.stories.js.html new file mode 100644 index 0000000000..b3a24ee81c --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/Quote.stories.js.html @@ -0,0 +1,133 @@ + + + + + + Code coverage report for components/molecules/Quote.stories.js + + + + + + + + + +
+
+

All files / components/molecules Quote.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17  +  +  +  +  +  +  +  +2x +  +1x +  +1x +  +  +  + 
import React from "react";
+import { Quote } from "./Quote";
+ 
+export default {
+  title: "Components/Molecules/Quote",
+  component: Quote,
+};
+ 
+const Template = (args) => <Quote {...args}></Quote>;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  text: "Some quote",
+  author: "Author",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/TextButtonField.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/TextButtonField.js.html new file mode 100644 index 0000000000..14924daf1c --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/TextButtonField.js.html @@ -0,0 +1,379 @@ + + + + + + Code coverage report for components/molecules/TextButtonField.js + + + + + + + + + +
+
+

All files / components/molecules TextButtonField.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 75% + Branches + 6/8 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99  +  +  +  +  +  +  +  +  +6x +5x +  +  +  +6x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ActionButton } from "../atoms/ActionButton";
+ 
+/**
+ *  component
+ */
+export function TextButtonField(props) {
+  //Verification for styling
+  let secondary;
+  if (props.custom === undefined)
+    props.secondary === undefined
+      ? (secondary = true)
+      : (secondary = props.secondary);
+ 
+  return (
+    <div className={props.className + " mb-4 mx-0"}>
+      {props.html === undefined ? (
+        <div className="textbuttonField">{props.children}</div>
+      ) : (
+        <div
+          className="textbuttonField"
+          dangerouslySetInnerHTML={{ __html: props.html }}
+        />
+      )}
+ 
+      {props.buttonText ? (
+        <ActionButton
+          id={props.idButton}
+          className={"mt-2 text-xs md:text-base"}
+          text={props.buttonText}
+          secondary={secondary}
+          disabled={props.disabled}
+          custom={props.custom}
+          href={props.href}
+          dataCyButton={props.dataCyButton}
+        />
+      ) : (
+        ""
+      )}
+    </div>
+  );
+}
+ 
+TextButtonField.propTypes = {
+  /**
+   * Option for styling component
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * Option for html
+   */
+  html: PropTypes.string,
+ 
+  /**
+   * Contenty
+   */
+  children: PropTypes.oneOfType([
+    PropTypes.string,
+    PropTypes.element,
+    PropTypes.arrayOf(PropTypes.element),
+  ]),
+ 
+  /**
+   * Button id
+   */
+  idButton: PropTypes.string,
+ 
+  /**
+   * Button link
+   */
+  href: PropTypes.string,
+ 
+  /**
+   * Button text
+   */
+  buttonText: PropTypes.string,
+ 
+  /**
+   * Button secondary
+   */
+  secondary: PropTypes.bool,
+ 
+  /**
+   * Button disabled
+   */
+  disabled: PropTypes.bool,
+ 
+  /**
+   * Button custom
+   */
+  custom: PropTypes.string,
+ 
+  /**
+   * Test id for cypress test for the button
+   */
+  dataCyButton: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/TextButtonField.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/TextButtonField.stories.js.html new file mode 100644 index 0000000000..b033731fe4 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/TextButtonField.stories.js.html @@ -0,0 +1,220 @@ + + + + + + Code coverage report for components/molecules/TextButtonField.stories.js + + + + + + + + + +
+
+

All files / components/molecules TextButtonField.stories.js

+
+ +
+ 100% + Statements + 10/10 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 9/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46  +  +  +  +  +  +  +  +6x +  +1x +1x +1x +1x +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  + 
import React from "react";
+import { TextButtonField } from "./TextButtonField";
+ 
+export default {
+  title: "Components/Molecules/TextButtonField",
+  component: TextButtonField,
+};
+ 
+const Template = (args) => <TextButtonField {...args}></TextButtonField>;
+ 
+export const Primary = Template.bind({});
+export const Secondary = Template.bind({});
+export const Disabled = Template.bind({});
+export const Custom = Template.bind({});
+ 
+Primary.args = {
+  title: "Primary",
+  html: "<h1>Title</h1><p>Text</p>",
+  idButton: "Button1",
+  buttonText: "Button",
+  secondary: false,
+};
+ 
+Secondary.args = {
+  title: "Secondary",
+  html: "<h1>Title</h1><p>Text</p>",
+  buttonText: "Button",
+  idButton: "Button2",
+};
+ 
+Disabled.args = {
+  title: "Disabled",
+  html: "<h1>Title</h1><p>Text</p>",
+  buttonText: "Button",
+  idButton: "Button3",
+  disabled: true,
+};
+ 
+Custom.args = {
+  title: "Custom",
+  html: "<h1>Title</h1><p>Text</p>",
+  buttonText: "Button",
+  idButton: "Button4",
+  custom: "bg-red-100",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/molecules/index.html b/refs/pull/858/merge/coverage/lcov-report/components/molecules/index.html new file mode 100644 index 0000000000..670f0fb1eb --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/molecules/index.html @@ -0,0 +1,491 @@ + + + + + + Code coverage report for components/molecules + + + + + + + + + +
+
+

All files components/molecules

+
+ +
+ 86.85% + Statements + 185/213 +
+ + +
+ 65.74% + Branches + 71/108 +
+ + +
+ 78.43% + Functions + 40/51 +
+ + +
+ 85.92% + Lines + 171/199 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
CallToAction.js +
+
100%3/362.5%5/8100%1/1100%3/3
CallToAction.stories.js +
+
100%6/6100%0/0100%1/1100%5/5
Card.js +
+
100%4/468.75%11/16100%1/1100%4/4
Card.stories.js +
+
100%12/12100%0/0100%1/1100%11/11
CopyToClipboard.js +
+
100%5/550%1/2100%2/2100%5/5
CopyToClipboard.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
Details.js +
+
100%2/2100%0/0100%1/1100%2/2
Details.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
ErrorBox.js +
+
100%5/5100%0/0100%3/3100%5/5
ErrorBox.stories.js +
+
80%4/5100%0/050%1/275%3/4
FeedbackWidget.js +
+
66.66%34/5140.9%9/2250%5/1066.66%34/51
FeedbackWidget.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
Filter.js +
+
100%3/3100%0/0100%2/2100%3/3
Filter.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
List.js +
+
100%7/7100%2/2100%2/2100%6/6
List.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
Menu.js +
+
90%9/1060%6/1075%3/490%9/10
Menu.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
OptionalListField.js +
+
75%12/1673.68%14/19100%3/375%12/16
OptionalListField.stories.js +
+
92.3%12/13100%0/050%1/291.66%11/12
OptionalTextField.js +
+
78.57%11/1480.95%17/2150%2/478.57%11/14
OptionalTextField.stories.js +
+
92.3%12/13100%0/050%1/291.66%11/12
Quote.js +
+
100%2/2100%0/0100%1/1100%2/2
Quote.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
TextButtonField.js +
+
100%4/475%6/8100%1/1100%4/4
TextButtonField.stories.js +
+
100%10/10100%0/0100%1/1100%9/9
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/organisms/Footer.js.html b/refs/pull/858/merge/coverage/lcov-report/components/organisms/Footer.js.html new file mode 100644 index 0000000000..1523de996b --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/organisms/Footer.js.html @@ -0,0 +1,439 @@ + + + + + + Code coverage report for components/organisms/Footer.js + + + + + + + + + +
+
+

All files / components/organisms Footer.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ActionButton } from "../atoms/ActionButton";
+ 
+/**
+ * footer element for all pages
+ */
+ 
+export function Footer(props) {
+  return (
+    <div className="w-full">
+      <div className="w-full h-auto footerBackground bg-custom-blue-dark">
+        <div
+          className="w-full py-7 layout-container"
+          role="navigation"
+          aria-labelledby="footerNav1"
+        >
+          <h3 className="sr-only" id="footerNav1">
+            {props.footerNav1}
+          </h3>
+          <ul className="flex flex-col text-xs lg:grid lg:grid-cols-2 xl:grid xl:grid-cols-3 lg:gap-1 -ml-4">
+            {" "}
+            {props.footerBoxLinks.map((value, index) => {
+              return (
+                <li
+                  key={index}
+                  className="text-xs text-white w-64 lg:w-80 my-2.5 hover:underline list-none"
+                >
+                  <a className="font-body" href={value.footerBoxlink}>
+                    {value.footerBoxLinkText}
+                  </a>
+                </li>
+              );
+            })}
+          </ul>
+        </div>
+      </div>
+      <div className="w-full h-full bg-footer-background-color pb-4">
+        <div className="h-auto bg-footer-white pt-5 layout-container flex flex-col xl:flex xl:flex-row md:justify-between">
+          <div
+            className="mt-3.5 xl:mt-5"
+            role="navigation"
+            aria-labelledby="footerNav2"
+          >
+            <h3 className="sr-only" id="footerNav2">
+              {props.footerNav2}
+            </h3>
+            <ul className="flex flex-col md:grid md:grid-cols-2 xl:flex lg:flex-row -ml-4">
+              {props.links.map((value, index) => {
+                return (
+                  <li
+                    key={index}
+                    className={
+                      index === 0
+                        ? "lg:mb-4 mb-5 lg:list-inside list-disc xl:list-none text-xxs"
+                        : "lg:mb-4 mb-5 lg:list-inside list-disc text-xxs"
+                    }
+                  >
+                    <a
+                      className="text-xs font-body hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                      data-cy="social-media-link"
+                      href={value.link}
+                    >
+                      {value.linkText}
+                    </a>
+                  </li>
+                );
+              })}
+            </ul>
+          </div>
+          <div className="flex items-center justify-between">
+            <ActionButton
+              id="TopOfPageButton"
+              href="#"
+              custom="text-left w-32 flex flex-col lg:hidden"
+              text={props.topOfPage}
+              icon="icon-up-caret"
+              iconEnd
+            />
+            <span className="flex relative footer-logo">
+              <img src={props.footerLogoImage} alt={props.footerLogoAltText} />
+            </span>
+          </div>
+        </div>
+      </div>
+    </div>
+  );
+}
+ 
+Footer.propTypes = {
+  /**
+   * array of objects containing the link text and link
+   */
+  footerBoxLinks: PropTypes.arrayOf(
+    PropTypes.shape({
+      footerBoxlink: PropTypes.string.isRequired,
+      footerBoxLinkText: PropTypes.string.isRequired,
+    })
+  ),
+  /**
+   * array of objects containing the link text and link
+   */
+  links: PropTypes.arrayOf(
+    PropTypes.shape({
+      link: PropTypes.string.isRequired,
+      linkText: PropTypes.string.isRequired,
+    })
+  ),
+ 
+  /**
+   * alt text for footer canada-ca logo
+   */
+  footerLogoAltText: PropTypes.string.isRequired,
+ 
+  /**
+   * image path for footer logo
+   */
+  footerLogoImage: PropTypes.string.isRequired,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/organisms/Footer.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/organisms/Footer.stories.js.html new file mode 100644 index 0000000000..0120f1a869 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/organisms/Footer.stories.js.html @@ -0,0 +1,349 @@ + + + + + + Code coverage report for components/organisms/Footer.stories.js + + + + + + + + + +
+
+

All files / components/organisms Footer.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89  +  +  +  +  +  +  +  +1x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Footer } from "./Footer";
+import logo from "../../public/wmms-blk.svg";
+ 
+export default {
+  title: "Components/Organisms/Footer",
+  component: Footer,
+};
+ 
+const Template = (args) => <Footer {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  links: [
+    {
+      link: "https://some-link-1.com",
+      linkText: "some-link-1",
+    },
+    {
+      link: "https://some-link-2.com",
+      linkText: "some-lin-2",
+    },
+    {
+      link: "https://some-link-3.com",
+      linkText: "some-link-3",
+    },
+    {
+      link: "https://some-link-4.com",
+      linkText: "some-link-4",
+    },
+    {
+      link: "https://some-link-5.com",
+      linkText: "some-link-5",
+    },
+    {
+      link: "https://some-link-6.com",
+      linkText: "some-link-6",
+    },
+    {
+      link: "https://some-link-7.com",
+      linkText: "some-link-7",
+    },
+    {
+      link: "https://some-link-8.com",
+      linkText: "some-link-8",
+    },
+  ],
+ 
+  footerBoxLinks: [
+    {
+      footerBoxlink: "https://some-link-11.com",
+      footerBoxLinkText: "some-link-11",
+    },
+    {
+      footerBoxlink: "https://some-link-22.com",
+      footerBoxLinkText: "some-lin-22",
+    },
+    {
+      footerBoxlink: "https://some-link-33.com",
+      footerBoxLinkText: "some-link-33",
+    },
+    {
+      footerBoxlink: "https://some-link-44.com",
+      footerBoxLinkText: "some-link-44",
+    },
+    {
+      footerBoxlink: "https://some-link-55.com",
+      footerBoxLinkText: "some-link-55",
+    },
+    {
+      footerBoxlink: "https://some-link-66.com",
+      footerBoxLinkText: "some-link-66",
+    },
+    {
+      footerBoxlink: "https://some-link-77.com",
+      footerBoxLinkText: "some-link-77",
+    },
+    {
+      footerBoxlink: "https://some-link-88.com",
+      footerBoxLinkText: "some-link-88",
+    },
+  ],
+ 
+  footerLogoAltText: "Symbol of the Government of Canada",
+  footerLogoImage: logo,
+  reportBtnText: "Report a problem",
+  reportDescription:
+    "Experiencing an issue with this product or have you spotted an error?",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/organisms/Layout.js.html b/refs/pull/858/merge/coverage/lcov-report/components/organisms/Layout.js.html new file mode 100644 index 0000000000..b3fcdc782f --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/organisms/Layout.js.html @@ -0,0 +1,760 @@ + + + + + + Code coverage report for components/organisms/Layout.js + + + + + + + + + +
+
+

All files / components/organisms Layout.js

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 66.66% + Branches + 12/18 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 6/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +7x +7x +7x +  +  +  +  +7x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { Banner } from "../atoms/Banner";
+import { Footer } from "@dts-stn/service-canada-design-system";
+import { PhaseBanner } from "./PhaseBanner";
+import { ReportAProblem } from "./ReportAProblem";
+import Link from "next/link";
+import { useTranslation } from "next-i18next";
+import { DateModified } from "../atoms/DateModified";
+import { Breadcrumb } from "../atoms/Breadcrumb";
+ 
+/**
+ * Component which defines the layout of the page for all screen sizes
+ */
+export const Layout = ({
+  bannerText,
+  bannerTitle,
+  children,
+  locale,
+  langUrl,
+  breadcrumbItems,
+  feedbackActive,
+  showDisclaimer,
+  projectName,
+  path,
+  dateModifiedOverride,
+}) => {
+  const { t } = useTranslation("common");
+  const language = locale === "en" ? "fr" : "en";
+  path =
+    typeof window !== "undefined" && window.location.origin
+      ? window.location.href
+      : "";
+ 
+  return (
+    <div className="overflow-x-hidden">
+      <nav className="skip-main">
+        <a
+          id="skipToMainContent"
+          className="bg-white text-custom-blue-dark text-lg underline py-1 px-2 focus:outline-dark-goldenrod hover:bg-gray-dark"
+          href="#pageMainTitle"
+          data-cy-button={"skip-Content"}
+          draggable="false"
+        >
+          {t("skipToMainContentBtn")}
+        </a>
+      </nav>
+      <header>
+        <h2 className="sr-only">{t("globalHeader")}</h2>
+        <h3 className="sr-only">{t("testSiteNotice")}</h3>
+        {showDisclaimer ? (
+          <PhaseBanner
+            phase={t("phaseBannerTag")}
+            feedbackActive={feedbackActive}
+            text={t("phaseBannerText")}
+            projectName={projectName}
+            path={path}
+          />
+        ) : (
+          ""
+        )}
+        <div className="layout-container flex-col flex lg:flex lg:flex-row justify-between  mt-2">
+          <div
+            className="flex flex-row justify-between items-center lg:mt-7 mt-1.5"
+            role="navigation"
+            aria-labelledby="officialSiteNav"
+          >
+            <h3 className="sr-only" id="officialSiteNav">
+              {t("officialSiteNavigation")}
+            </h3>
+            <a href="https://www.canada.ca">
+              <img
+                src={language === "en" ? "/sig-blk-fr.svg" : "/sig-blk-en.svg"}
+                alt={t("symbol")}
+                width="375"
+                height="35"
+              />
+            </a>
+            <h3 className="sr-only">{t("languageSelection")}</h3>
+            <Link
+              key={language}
+              href={langUrl}
+              locale={language}
+              data-testid="languageLink1"
+              className="visible lg:invisible ml-6 sm:ml-16 underline font-body font-bold text-canada-footer-font lg:text-sm text-base hover:text-canada-footer-hover-font-blue"
+            >
+              {language === "en" ? "EN" : "FR"}
+            </Link>
+          </div>
+          <div className="flex-col flex">
+            <Link
+              key={language}
+              href={langUrl}
+              locale={language}
+              data-testid="languageLink3"
+              className="lg:visible invisible pb-0 lg:pb-2 self-end underline font-body text-canada-footer-font hover:text-canada-footer-hover-font-blue"
+              data-cy="toggle-language-link"
+              lang={language}
+            >
+              {language === "en" ? "English" : "Français"}
+            </Link>
+          </div>
+        </div>
+ 
+        <div className="border-t pb-2 mt-4">
+          <div className="layout-container mt-10 mb-2">
+            <Breadcrumb items={breadcrumbItems} />
+          </div>
+        </div>
+      </header>
+ 
+      <main>
+        {bannerText && bannerTitle ? (
+          <Banner siteTitle={bannerTitle} headline={bannerText} />
+        ) : null}
+        <div>{children}</div>
+        <div className="mt-12">
+          <h2 className="sr-only">{t("siteFooter")}</h2>
+          <div className="layout-container mt-5">
+            <ReportAProblem />
+          </div>
+          <div className="layout-container mb-2">
+            <DateModified date={dateModifiedOverride} />
+          </div>
+        </div>
+      </main>
+ 
+      <Footer
+        id="footer"
+        lang={locale}
+        btnLink={"#"}
+        brandLinks={[
+          {
+            id: "link1",
+            text: t("footerSocialMedia"),
+            href: t("footerSocialMediaURL"),
+          },
+          {
+            id: "link2",
+            text: t("footerMobileApp"),
+            href: t("footerMobileAppURL"),
+          },
+          {
+            id: "link3",
+            text: t("footerTermsAndCondition"),
+            href: t("footerTermsAndConditionURL"),
+          },
+          {
+            id: "link4",
+            text: t("footerPrivacy"),
+            href: t("footerPrivacyURL"),
+          },
+        ]}
+      />
+    </div>
+  );
+};
+ 
+Layout.propTypes = {
+  /**
+   * text for the banner
+   */
+  bannerText: PropTypes.string,
+ 
+  /**
+   * title of the banner
+   */
+  bannerTitle: PropTypes.string,
+ 
+  /**
+   * child elements that will constitute the page
+   */
+  children: PropTypes.oneOfType([
+    PropTypes.string,
+    PropTypes.element,
+    PropTypes.arrayOf(PropTypes.element),
+  ]),
+ 
+  /**
+   * currently active locale
+   */
+  locale: PropTypes.string,
+ 
+  /**
+   * URL to use for navigation when changing locales
+   */
+  langUrl: PropTypes.string,
+ 
+  /**
+   * Array of Items for the breadcrumb
+   */
+  breadcrumbItems: PropTypes.arrayOf(
+    PropTypes.shape({
+      /**
+       * Text for the breadcrumb
+       */
+      text: PropTypes.string,
+ 
+      /**
+       * Link for the breadcrumb
+       */
+      link: PropTypes.string,
+    })
+  ),
+ 
+  /**
+   * For activating feedback on active projects pages
+   */
+  feedbackActive: PropTypes.bool,
+  /**
+   * Boolean that determines whether the disclaimer at the top of the screen is shown or not
+   */
+  showDisclaimer: PropTypes.bool,
+  /**
+   * Project/page name that feedback is coming from
+   */
+  projectName: PropTypes.string,
+  /**
+   * Path that the feedback is coming from
+   */
+  path: PropTypes.string,
+  /**
+   * Manual override for date modified component
+   */
+  dateModifiedOverride: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/organisms/Layout.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/organisms/Layout.stories.js.html new file mode 100644 index 0000000000..45af1c38fb --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/organisms/Layout.stories.js.html @@ -0,0 +1,199 @@ + + + + + + Code coverage report for components/organisms/Layout.stories.js + + + + + + + + + +
+
+

All files / components/organisms Layout.stories.js

+
+ +
+ 100% + Statements + 8/8 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39  +  +  +  +  +  +  +  +1x +7x +  +  +  +  +  +  +  +  +  +  +  +  +7x +  +1x +1x +  +1x +  +  +  +  +1x +  +  +  +  +  + 
import React from "react";
+import { Layout } from "./Layout";
+ 
+export default {
+  title: "Components/Organisms/Layout",
+  component: Layout,
+};
+ 
+const sampleText = () => {
+  return (
+    <p data-testid="child-element">
+      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+      tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
+      veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
+      commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
+      velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
+      cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
+      est laborum.
+    </p>
+  );
+};
+ 
+const Template = (args) => <Layout {...args}>{sampleText()}</Layout>;
+ 
+export const NoBanner = Template.bind({});
+export const WithBanner = Template.bind({});
+ 
+NoBanner.args = {
+  langUrl: "someUrl",
+  locale: "someLocale",
+};
+ 
+WithBanner.args = {
+  bannerTitle: "Banner Title",
+  bannerText: "Banner Text",
+  langUrl: "someUrl",
+  locale: "someLocale",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/organisms/PhaseBanner.js.html b/refs/pull/858/merge/coverage/lcov-report/components/organisms/PhaseBanner.js.html new file mode 100644 index 0000000000..a91fc610ed --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/organisms/PhaseBanner.js.html @@ -0,0 +1,490 @@ + + + + + + Code coverage report for components/organisms/PhaseBanner.js + + + + + + + + + +
+
+

All files / components/organisms PhaseBanner.js

+
+ +
+ 90.9% + Statements + 10/11 +
+ + +
+ 87.5% + Branches + 7/8 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 90.9% + Lines + 10/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +3x +3x +3x +  +3x +1x +  +  +1x +  +  +1x +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import PropTypes from "prop-types";
+import { useTranslation } from "next-i18next";
+import { useState, useRef } from "react";
+import { FeedbackWidget } from "../molecules/FeedbackWidget";
+import { ActionButton } from "../atoms/ActionButton";
+ 
+/**
+ * Displays the PhaseBanner on the page
+ */
+ 
+export const PhaseBanner = ({
+  phase,
+  text,
+  feedbackActive,
+  projectName,
+  path,
+  toggleForm,
+}) => {
+  const [showFeedback, setShowFeedback] = useState(false);
+  const { t } = useTranslation("common");
+  const toggle = useRef("Collapsed");
+ 
+  toggleForm = async (e) => {
+    Iif (showFeedback) {
+      toggle.current = "Collapsed";
+    } else {
+      toggle.current = "Expanded";
+    }
+ 
+    setShowFeedback(!showFeedback);
+  };
+ 
+  return (
+    <>
+      <div className="bg-circle-color">
+        <div className="block lg:flex py-4 layout-container">
+          <div
+            className={`flex justify-between lg:block lg:w-max ${
+              feedbackActive ? "mt-2" : ""
+            }`}
+          >
+            <span
+              className="font-body text-xs text-white border block w-max px-4 py-1 my-auto leading-6 items-center"
+              role="alert"
+            >
+              {phase}
+            </span>
+            {feedbackActive ? (
+              <ActionButton
+                id="back-projects"
+                dataCy="back-projects"
+                dataTestId="back-projects"
+                custom="font-body w-max text-xs underline text-white block outline-none focus:outline-white-solid h-full flex items-center -mt-2 py-2"
+                text={t("backProjects")}
+                href={t("breadCrumbsHref2")}
+              />
+            ) : (
+              ""
+            )}
+          </div>
+          <div className="lg:ml-4 xl:ml-8 xxl:ml-12">
+            <p className="mt-2 lg:mt-0 h-full font-body text-xs lg:text-sm text-white lg:ml-4 my-auto flex items-center">
+              {text}
+            </p>
+          </div>
+        </div>
+        {feedbackActive ? (
+          <div className="py-4 outline-none bg-custom-blue-blue font-body text-xs lg:text-sm text-white flex items-center lg:my-0">
+            <div className="flex layout-container">
+              <span
+                className="invisible hidden md:block font-body text-xs text-white border block w-max px-4 py-1 my-auto leading-6 items-center"
+                role="alert"
+              >
+                {phase}
+              </span>
+              <div className="lg:ml-6 xl:ml-12 xxl:ml-14 my-auto">
+                <button
+                  id="feedbackButton"
+                  onClick={toggleForm}
+                  className="flex focus:outline-white-solid items-center lg:ml-4 my-auto"
+                  data-testid="feedbackButton"
+                >
+                  <strong className="underline">
+                    {t("giveFeedback")}
+                    <span className="sr-only">{toggle.current}</span>
+                  </strong>
+                  <img
+                    className="px-2 flex items-center"
+                    src="/feedback-icon-white.svg"
+                    alt=""
+                  />
+                </button>
+              </div>
+            </div>
+          </div>
+        ) : (
+          ""
+        )}
+      </div>
+ 
+      <FeedbackWidget
+        showFeedback={showFeedback}
+        toggleForm={toggleForm}
+        projectName={projectName}
+        path={path}
+      />
+    </>
+  );
+};
+ 
+PhaseBanner.propTypes = {
+  /**
+   * Phase stage in the PhaseBanner
+   */
+  phase: PropTypes.string.isRequired,
+  /**
+   * Phasebanner text
+   */
+  text: PropTypes.string.isRequired,
+  /**
+   * This is for showing the feedback component
+   */
+  feedbackActive: PropTypes.bool,
+  /**
+   * Project/page name that feedback is coming from
+   */
+  projectName: PropTypes.string,
+  /**
+   * Path that the feedback is coming from
+   */
+  path: PropTypes.string,
+};
+ 
+export default PhaseBanner;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/organisms/PhaseBanner.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/organisms/PhaseBanner.stories.js.html new file mode 100644 index 0000000000..d3699f90aa --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/organisms/PhaseBanner.stories.js.html @@ -0,0 +1,154 @@ + + + + + + Code coverage report for components/organisms/PhaseBanner.stories.js + + + + + + + + + +
+
+

All files / components/organisms PhaseBanner.stories.js

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24  +  +  +  +  +  +  +  +2x +  +1x +1x +  +1x +  +  +  +  +1x +  +  +  +  + 
import React from "react";
+import PhaseBanner from "./PhaseBanner";
+ 
+export default {
+  title: "Components/Atoms/PhaseBanner",
+  component: PhaseBanner,
+};
+ 
+const Template = (args) => <PhaseBanner {...args} />;
+ 
+export const Primary = Template.bind({});
+export const WithFeedback = Template.bind({});
+ 
+Primary.args = {
+  phase: "PhaseBanner Phase",
+  text: "PhaseBanner Text",
+};
+ 
+WithFeedback.args = {
+  phase: "PhaseBanner Phase",
+  text: "PhaseBanner Text",
+  feedbackActive: true,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/organisms/ReportAProblem.js.html b/refs/pull/858/merge/coverage/lcov-report/components/organisms/ReportAProblem.js.html new file mode 100644 index 0000000000..ae07fa92dc --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/organisms/ReportAProblem.js.html @@ -0,0 +1,1219 @@ + + + + + + Code coverage report for components/organisms/ReportAProblem.js + + + + + + + + + +
+
+

All files / components/organisms ReportAProblem.js

+
+ +
+ 93.33% + Statements + 28/30 +
+ + +
+ 92.85% + Branches + 13/14 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 93.1% + Lines + 27/29 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379  +  +  +  +  +  +  +  +  +  +  +  +  +  +20x +19x +  +19x +  +19x +  +3x +  +  +3x +3x +24x +21x +1x +  +  +  +  +  +3x +  +3x +  +  +3x +5x +5x +  +  +  +3x +3x +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +3x +21x +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +3x +1x +  +  +3x +  +  +19x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +6x +  +  +  +  +  + 
import PropTypes from "prop-types";
+import Link from "next/link";
+import { useState } from "react";
+import { useTranslation } from "next-i18next";
+import { OptionalTextField } from "../molecules/OptionalTextField";
+import { Details } from "../molecules/Details";
+import { ActionButton } from "../atoms/ActionButton";
+import { stripFeedback } from "../../lib/utils/stripFeedback";
+import { ErrorLabel } from "../atoms/ErrorLabel";
+ 
+/**
+ * Report a problem button to report technical issues on the page.
+ */
+export function ReportAProblem(props) {
+  const [submitted, setSubmitted] = useState(false);
+  const { t, i18n } = useTranslation();
+ 
+  const [submittedOnce, setSubmittedOnce] = useState(false);
+ 
+  let onSubmitHandler = (e) => {
+    //Checking if at least one checkbox is selected
+    let checkBoxSelected = false;
+ 
+    //Check the checkboxes
+    let inputElements = document.getElementsByTagName("input");
+    for (let index = 0; index < inputElements.length; index++) {
+      if (inputElements[index].type == "checkbox") {
+        if (inputElements[index].checked) {
+          checkBoxSelected = true;
+        }
+      }
+    }
+ 
+    // prevent default behaviour of form
+    e.preventDefault();
+    // create FormData object from form
+    const formData = new FormData(e.target);
+ 
+    // Iterate through key/value pairs and strip personal identifier information from each value
+    for (var pair of formData.entries()) {
+      let cleanedFeedback = stripFeedback(pair[1]);
+      formData.set(pair[0], cleanedFeedback);
+    }
+    // create URLSearchParams object from FormData object
+    // this will be used to create url encoded string of names and values of the form fields
+    const urlEncoded = new URLSearchParams(formData);
+    let urlString = urlEncoded.toString();
+    //Replace the values with yes for GCNotify
+    let values;
+ 
+    Iif (formData.get("language").toString().localeCompare("fr") == 0) {
+      values = [
+        "Informations+incorrectes",
+        "Informations+impr%C3%A9cises",
+        "Vous+n%E2%80%99avez+pas+trouv%C3%A9+ce+que+vous+cherchiez",
+        "La+page+ne+fonctionne+pas+avec+vos+technologies+d%E2%80%99adaptation",
+        "Vous+%C3%AAtes+inquiet+pour+votre+vie+priv%C3%A9e",
+        "Vous+ne+savez+pas+o%C3%B9+trouver+de+l%E2%80%99aide",
+        "Autres",
+      ];
+    } else {
+      values = [
+        "Incorrect+Information",
+        "Unclear+Information",
+        "You+didn%E2%80%99t+find+what+you+were+looking+for",
+        "Page+does+not+work+with+your+adaptive+technologies",
+        "You%E2%80%99re+worried+about+your+privacy",
+        "You+don%E2%80%99t+know+where+else+to+go+for+help",
+        "Other",
+      ];
+    }
+ 
+    for (const value of values) {
+      urlString = urlString.replace(value, "yes");
+    }
+ 
+    // call report a problem API route
+    fetch("/api/report-a-problem", {
+      method: "POST",
+      headers: {
+        "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
+      },
+      body: urlString,
+    }).catch((e) => {
+      // handle error if fetch fails
+      // fetch only fails if there is no internet connection not for the actual
+      // request so there is nothing really to do here other than to log it
+      console.log(e);
+    });
+ 
+    if (checkBoxSelected) {
+      setSubmitted(true);
+    }
+    //Make sure the form was submitted at least once
+    setSubmittedOnce(true);
+  };
+ 
+  return (
+    <Details
+      label={t("footerReportProblemButtonString", { lng: props.language })}
+      dataCy="report-a-problem-details"
+      dataTestId="report-a-problem-details"
+    >
+      <div role="status">
+        {submitted ? (
+          <>
+            <h2 className="text-h3 font-display mb-4 font-bold">
+              <b>
+                {t("reportAProblemThankYouForYourHelp", {
+                  lng: props.language,
+                })}
+              </b>
+            </h2>
+            <p className="text-sm font-body">
+              {t("reportAProblemYouWillNotBeContacted", {
+                lng: props.language,
+              })}
+            </p>
+          </>
+        ) : (
+          ""
+        )}
+      </div>
+      {submitted ? (
+        ""
+      ) : (
+        <>
+          <h2 className="text-base font-body">
+            {t("reportAProblemTitle", { lng: props.language })}
+          </h2>
+          <ul className="list-outside list-disc px-6 py-2">
+            <li className="text-xs sm:text-sm font-body mb-4 leading-tight sm:leading-6">
+              <b>{t("reportAProblemNoReply", { lng: props.language })}</b>
+            </li>
+            <li className="text-xs sm:text-sm font-body my-4 leading-tight sm:leading-6">
+              <b>
+                {t("reportAProblemFeedbackConfidential", {
+                  lng: props.language,
+                })}
+              </b>{" "}
+              <Link
+                href="/signup/privacy"
+                className="underline text-xs sm:text-sm font-body hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+              >
+                {t("reportAProblemPrivacyStatement", { lng: props.language })}
+              </Link>
+            </li>
+          </ul>
+          <form
+            data-gc-analytics-formname="ESDC|EDSC:ServiceCanadaLabsReport-Problem"
+            data-gc-analytics-collect='[{"value":"input,select","emptyField":"N/A"}]'
+            className="w-full"
+            action="#"
+            onSubmit={onSubmitHandler}
+          >
+            <input
+              type="hidden"
+              id="language"
+              name="language"
+              value={i18n.language}
+            />
+            <fieldset>
+              <legend className="text-base sm:text-p font-body font-normal mb-6">
+                <b className="text-error-border-red mr-2" aria-hidden="true">
+                  *
+                </b>
+                {t("reportAProblemCheckAllThatApply", { lng: props.language })}
+              </legend>
+              <OptionalTextField
+                controlId="incorrectInformationCheckBox"
+                textFieldId="incorrectInformationTextField"
+                controlName="incorrect_information"
+                textFieldName="incorrect_information_details"
+                controlLabel={t("reportAProblemIncorrectInformation", {
+                  lng: props.language,
+                })}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="incorrectInformation-checkbox"
+                textFieldDataTestId="incorrectInformation-text"
+                controlDataCy="incorrectInformation-checkbox"
+                textFieldDataCy="incorrectInformation-text"
+                describedby="incorrectInformation"
+                OptionalTextField
+                checkBoxStyle="mb-4 inline-block"
+                controlValue={t("reportAProblemIncorrectInformation", {
+                  lng: props.language,
+                })}
+              />
+              <OptionalTextField
+                controlId="unclearInformationCheckBox"
+                textFieldId="unclearInformationTextField"
+                controlName="unclear_information"
+                textFieldName="unclear_information_details"
+                controlLabel={t("reportAProblemUnclearInformation", {
+                  lng: props.language,
+                })}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="unclearInformation-checkbox"
+                textFieldDataTestId="unclearInformation-text"
+                controlDataCy="unclearInformation-checkbox"
+                textFieldDataCy="unclearInformation-text"
+                describedby="unclearInformation"
+                checkBoxStyle="mb-4 inline-block"
+                controlValue={t("reportAProblemUnclearInformation", {
+                  lng: props.language,
+                })}
+              />
+              <OptionalTextField
+                controlId="infoNotFoundCheckBox"
+                textFieldId="infoNotFoundTextField"
+                controlName="info_not_found"
+                textFieldName="info_not_found_details"
+                controlLabel={t("reportAProblemDidNotFindWhatYoureLookingFor", {
+                  lng: props.language,
+                })}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="infoNotFound-checkbox"
+                textFieldDataTestId="infoNotFound-text"
+                controlDataCy="infoNotFound-checkbox"
+                textFieldDataCy="infoNotFound-text"
+                describedby="infoNotFound"
+                checkBoxStyle="lg:mb-8 mb-4 inline-block"
+                controlValue={t("reportAProblemDidNotFindWhatYoureLookingFor", {
+                  lng: props.language,
+                })}
+              />
+              <OptionalTextField
+                controlId="adaptiveTechnologyCheckBox"
+                textFieldId="adaptiveTechnologyTextField"
+                controlName="adaptive_technology"
+                textFieldName="adaptive_technology_details"
+                controlLabel={t(
+                  "reportAProblemPageDoesNotWorkWithAdaptiveTechnology",
+                  { lng: props.language }
+                )}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="adaptiveTechnology-checkbox"
+                textFieldDataTestId="adaptiveTechnology-text"
+                controlDataCy="adaptiveTechnology-checkbox"
+                textFieldDataCy="adaptiveTechnology-text"
+                describedby="adaptiveTechnology"
+                checkBoxStyle="mb-8 inline-block"
+                controlValue={t(
+                  "reportAProblemPageDoesNotWorkWithAdaptiveTechnology",
+                  { lng: props.language }
+                )}
+              />
+              <OptionalTextField
+                controlId="privacyIssuesCheckBox"
+                textFieldId="privacyIssuesTextField"
+                controlName="privacy_issues"
+                textFieldName="privacy_issues_details"
+                controlLabel={t("reportAProblemYoureWorriedAboutYourPrivacy", {
+                  lng: props.language,
+                })}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="privacyIssues-checkbox"
+                textFieldDataTestId="privacyIssues-text"
+                controlDataCy="privacyIssues-checkbox"
+                textFieldDataCy="privacyIssues-text"
+                describedby="privacyIssues"
+                checkBoxStyle="mb-4 inline-block"
+                controlValue={t("reportAProblemYoureWorriedAboutYourPrivacy", {
+                  lng: props.language,
+                })}
+              />
+              <OptionalTextField
+                controlId="noWhereElseToGoCheckBox"
+                textFieldId="noWhereElseToGoTextField"
+                controlName="no_where_else_to_go"
+                textFieldName="no_where_else_to_go_details"
+                controlLabel={t("reportAProblemNoWhereElseToGo", {
+                  lng: props.language,
+                })}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="noWhereElseToGo-checkbox"
+                textFieldDataTestId="noWhereElseToGo-text"
+                controlDataCy="noWhereElseToGo-checkbox"
+                textFieldDataCy="noWhereElseToGo-text"
+                describedby="noWhereElseToGo"
+                checkBoxStyle="lg:mb-8 mb-4 inline-block"
+                controlValue={t("reportAProblemNoWhereElseToGo", {
+                  lng: props.language,
+                })}
+              />
+              <OptionalTextField
+                controlId="otherCheckBox"
+                textFieldId="otherTextField"
+                controlName="other"
+                textFieldName="other_details"
+                controlLabel={t("reportAProblemOther", { lng: props.language })}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="other-checkbox"
+                textFieldDataTestId="other-text"
+                controlDataCy="other-checkbox"
+                textFieldDataCy="other-text"
+                describedby="other"
+                checkBoxStyle="mb-4"
+                controlValue={t("reportAProblemOther", { lng: props.language })}
+              />
+              {submittedOnce ? (
+                <ErrorLabel
+                  message={t("reportAProblemError", { lng: props.language })}
+                />
+              ) : undefined}
+            </fieldset>
+            <ActionButton
+              id="submit"
+              className="rounded block mt-4"
+              type="submit"
+              dataCy="report-a-problem-submit"
+              dataTestId="report-a-problem-submit"
+              analyticsTracking
+            >
+              {t("reportAProblemSubmit", { lng: props.language })}
+            </ActionButton>
+          </form>
+        </>
+      )}
+    </Details>
+  );
+}
+ 
+ReportAProblem.propTypes = {
+  /**
+   * Translation language
+   */
+  language: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/organisms/ReportAProblem.stories.js.html b/refs/pull/858/merge/coverage/lcov-report/components/organisms/ReportAProblem.stories.js.html new file mode 100644 index 0000000000..c28404c91e --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/organisms/ReportAProblem.stories.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for components/organisms/ReportAProblem.stories.js + + + + + + + + + +
+
+

All files / components/organisms ReportAProblem.stories.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12  +  +  +  +  +  +  +  +5x +  +1x + 
import React from "react";
+import { ReportAProblem } from "./ReportAProblem";
+ 
+export default {
+  title: "Components/Organisms/ReportAProblem",
+  component: ReportAProblem,
+};
+ 
+const Template = (args) => <ReportAProblem {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/components/organisms/index.html b/refs/pull/858/merge/coverage/lcov-report/components/organisms/index.html new file mode 100644 index 0000000000..b76123cc39 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/components/organisms/index.html @@ -0,0 +1,221 @@ + + + + + + Code coverage report for components/organisms + + + + + + + + + +
+
+

All files components/organisms

+
+ +
+ 95.83% + Statements + 69/72 +
+ + +
+ 80.95% + Branches + 34/42 +
+ + +
+ 92.85% + Functions + 13/14 +
+ + +
+ 95.52% + Lines + 64/67 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
Footer.js +
+
100%4/4100%2/2100%3/3100%4/4
Footer.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
Layout.js +
+
100%6/666.66%12/18100%1/1100%6/6
Layout.stories.js +
+
100%8/8100%0/0100%2/2100%7/7
PhaseBanner.js +
+
90.9%10/1187.5%7/8100%2/290.9%10/11
PhaseBanner.stories.js +
+
100%6/6100%0/0100%1/1100%5/5
ReportAProblem.js +
+
93.33%28/3092.85%13/1466.66%2/393.1%27/29
ReportAProblem.stories.js +
+
100%3/3100%0/0100%1/1100%2/2
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/favicon.png b/refs/pull/858/merge/coverage/lcov-report/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..c1525b811a167671e9de1fa78aab9f5c0b61cef7 GIT binary patch literal 445 zcmV;u0Yd(XP))rP{nL}Ln%S7`m{0DjX9TLF* zFCb$4Oi7vyLOydb!7n&^ItCzb-%BoB`=x@N2jll2Nj`kauio%aw_@fe&*}LqlFT43 z8doAAe))z_%=P%v^@JHp3Hjhj^6*Kr_h|g_Gr?ZAa&y>wxHE99Gk>A)2MplWz2xdG zy8VD2J|Uf#EAw*bo5O*PO_}X2Tob{%bUoO2G~T`@%S6qPyc}VkhV}UifBuRk>%5v( z)x7B{I~z*k<7dv#5tC+m{km(D087J4O%+<<;K|qwefb6@GSX45wCK}Sn*> + + + + Code coverage report for All files + + + + + + + + + +
+
+

All files

+
+ +
+ 74.2% + Statements + 561/756 +
+ + +
+ 32.93% + Branches + 385/1169 +
+ + +
+ 66.49% + Functions + 127/191 +
+ + +
+ 73.15% + Lines + 526/719 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
components +
+
0%0/00%0/00%0/00%0/0
components/atoms +
+
95.83%184/19272.18%109/15186.79%46/5395.48%169/177
components/molecules +
+
86.85%185/21365.74%71/10878.43%40/5185.92%171/199
components/organisms +
+
95.83%69/7280.95%34/4292.85%13/1495.52%64/67
lib/mongodb +
+
66.66%12/1850%6/1266.66%2/366.66%12/18
lib/notify +
+
66.66%4/6100%0/050%1/266.66%4/6
lib/utils +
+
91.3%21/2381.81%9/1166.66%4/695.23%20/21
middlewares +
+
53.33%8/1520%1/542.85%3/753.33%8/15
pages +
+
51.06%48/9436.75%86/23452.17%12/2351.61%48/93
pages/api +
+
86.36%19/2283.33%10/1266.66%2/386.36%19/22
pages/projects/benefits-navigator +
+
0%0/520%0/2700%0/140%0/52
pages/projects/dashboard +
+
0%0/130%0/920%0/40%0/13
pages/projects/oas-benefits-estimator +
+
30.55%11/3625.43%59/23236.36%4/1130.55%11/36
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/lib/mongodb/connect.js.html b/refs/pull/858/merge/coverage/lcov-report/lib/mongodb/connect.js.html new file mode 100644 index 0000000000..6d5e34ac26 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/lib/mongodb/connect.js.html @@ -0,0 +1,295 @@ + + + + + + Code coverage report for lib/mongodb/connect.js + + + + + + + + + +
+
+

All files / lib/mongodb connect.js

+
+ +
+ 66.66% + Statements + 12/18 +
+ + +
+ 50% + Branches + 6/12 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 66.66% + Lines + 12/18 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71  +  +  +  +  +  +  +1x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +1x +1x +  +  +  +  +1x +  +1x +  +1x +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  + 
import { MongoClient } from "mongodb";
+ 
+/**
+ * Global is used here to maintain a cached connection across hot reloads
+ * in development. This prevents connections growing exponentially
+ * during API Route usage.
+ */
+let cached = global.mongo;
+ 
+Eif (!cached) {
+  cached = global.mongo = { conn: null, promise: null };
+}
+ 
+/**
+ * function which establishes or returns cached connection to mongo database
+ * @param mongoURI - the uri for the mongo db
+ * @param mongoDB - the database to use
+ * @returns {Promise<null>}
+ */
+export async function connectToDatabase(mongoURI, mongoDB) {
+  // if there already exists a connection use this connection and return it
+  Iif (cached.conn) {
+    return cached.conn;
+  }
+ 
+  //  if there is no connection creator instantiate this
+  Eif (!cached.promise) {
+    const opts = {
+      useNewUrlParser: true,
+      useUnifiedTopology: true,
+    };
+ 
+    cached.promise = MongoClient.connect(mongoURI, opts).then((client) => {
+      // construct the DBO client
+      const db = client.db(mongoDB);
+ 
+      return { client, db };
+    });
+  }
+ 
+  // Create new connection from connection creator
+  // Use -1 to create a ttl index with no default ttl in CosmosDB. Document-level ttl will take precedence.
+  // Only use -1 value in environments using CosmosDB as it throws an error with standard MongoDB clients
+  cached.conn = await cached.promise;
+  await cached.conn.db.collection("users").createIndexes([
+    {
+      key: { email: 1 },
+      name: "email",
+      unique: true,
+    },
+    {
+      key: { _ts: 1 },
+      expireAfterSeconds:
+        process.env.NODE_ENV === "development" ||
+        process.env.NODE_ENV === "production"
+          ? -1
+          : 0,
+    },
+  ]);
+  return cached.conn;
+}
+ 
+export async function closeConnection() {
+  if (cached.conn) {
+    await cached.conn.db.close();
+    await cached.conn.client.close();
+    cached.conn = null;
+    cached.promise = null;
+  }
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/lib/mongodb/index.html b/refs/pull/858/merge/coverage/lcov-report/lib/mongodb/index.html new file mode 100644 index 0000000000..a47f23cc36 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/lib/mongodb/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for lib/mongodb + + + + + + + + + +
+
+

All files lib/mongodb

+
+ +
+ 66.66% + Statements + 12/18 +
+ + +
+ 50% + Branches + 6/12 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 66.66% + Lines + 12/18 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
connect.js +
+
66.66%12/1850%6/1266.66%2/366.66%12/18
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/lib/notify/index.html b/refs/pull/858/merge/coverage/lcov-report/lib/notify/index.html new file mode 100644 index 0000000000..689f421ede --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/lib/notify/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for lib/notify + + + + + + + + + +
+
+

All files lib/notify

+
+ +
+ 66.66% + Statements + 4/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 66.66% + Lines + 4/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
submitEmail.js +
+
66.66%4/6100%0/050%1/266.66%4/6
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/lib/notify/submitEmail.js.html b/refs/pull/858/merge/coverage/lcov-report/lib/notify/submitEmail.js.html new file mode 100644 index 0000000000..347d718f98 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/lib/notify/submitEmail.js.html @@ -0,0 +1,280 @@ + + + + + + Code coverage report for lib/notify/submitEmail.js + + + + + + + + + +
+
+

All files / lib/notify submitEmail.js

+
+ +
+ 66.66% + Statements + 4/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 66.66% + Lines + 4/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66  +  +2x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import "node-fetch";
+ 
+export const submitEmail = async (
+  data,
+  defaults,
+  templateId,
+  email,
+  notifyApiAddress,
+  notifyApiKey
+) => {
+  const notifyResponse = await fetch(notifyApiAddress, {
+    method: "POST",
+    headers: {
+      "Content-Type": "application/json",
+      Authorization: `ApiKey-v1 ${notifyApiKey}`,
+    },
+    body: JSON.stringify({
+      email_address: email,
+      template_id: templateId,
+      // notify requires all values in the template to be present
+      // in the request.... highly annoying but providing defaults solves this
+      personalisation: {
+        ...defaults,
+        ...data,
+      },
+    }),
+  });
+ 
+  return [notifyResponse.status, await notifyResponse.json()];
+};
+ 
+export const submitEmailWithAttachment = async (
+  data,
+  defaults,
+  templateId,
+  email,
+  file,
+  fileName,
+  notifyApiAddress,
+  notifyApiKey
+) => {
+  const notifyResponse = await fetch(notifyApiAddress, {
+    method: "POST",
+    headers: {
+      "Content-Type": "application/json",
+      Authorization: `ApiKey-v1 ${notifyApiKey}`,
+    },
+    body: JSON.stringify({
+      email_address: email,
+      template_id: templateId,
+      // notify requires all values in the template to be present
+      // in the request.... highly annoying but providing defaults solves this
+      personalisation: {
+        application_file: {
+          file: file,
+          filename: fileName,
+          sending_method: "attach",
+        },
+        ...defaults,
+        ...data,
+      },
+    }),
+  });
+  return [notifyResponse.status, await notifyResponse.json()];
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/lib/utils/createBreadcrumbs.js.html b/refs/pull/858/merge/coverage/lcov-report/lib/utils/createBreadcrumbs.js.html new file mode 100644 index 0000000000..469a075f2c --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/lib/utils/createBreadcrumbs.js.html @@ -0,0 +1,121 @@ + + + + + + Code coverage report for lib/utils/createBreadcrumbs.js + + + + + + + + + +
+
+

All files / lib/utils createBreadcrumbs.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 50% + Branches + 2/4 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +131x +1x +1x +  +  +  +  +  +  +  +  +  + 
export const createBreadcrumbs = (breadcrumbArray, locale) => {
+  return breadcrumbArray.map((breadCrumbItem) => {
+    return {
+      text:
+        locale === "en" ? breadCrumbItem.scTitleEn : breadCrumbItem.scTitleFr,
+      link:
+        locale === "en"
+          ? breadCrumbItem.scPageNameEn
+          : breadCrumbItem.scPageNameFr,
+    };
+  });
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/lib/utils/getAllUpdateIds.js.html b/refs/pull/858/merge/coverage/lcov-report/lib/utils/getAllUpdateIds.js.html new file mode 100644 index 0000000000..6036686416 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/lib/utils/getAllUpdateIds.js.html @@ -0,0 +1,133 @@ + + + + + + Code coverage report for lib/utils/getAllUpdateIds.js + + + + + + + + + +
+
+

All files / lib/utils getAllUpdateIds.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export function getAllUpdateIds(items) {
+  return items.flatMap((item) => [
+    {
+      params: {
+        id: item.scPageNameEn,
+      },
+      locale: "en",
+    },
+    {
+      params: {
+        id: item.scPageNameFr,
+      },
+      locale: "fr",
+    },
+  ]);
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/lib/utils/index.html b/refs/pull/858/merge/coverage/lcov-report/lib/utils/index.html new file mode 100644 index 0000000000..6bd74c8295 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/lib/utils/index.html @@ -0,0 +1,161 @@ + + + + + + Code coverage report for lib/utils + + + + + + + + + +
+
+

All files lib/utils

+
+ +
+ 91.3% + Statements + 21/23 +
+ + +
+ 81.81% + Branches + 9/11 +
+ + +
+ 66.66% + Functions + 4/6 +
+ + +
+ 95.23% + Lines + 20/21 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
createBreadcrumbs.js +
+
100%3/350%2/4100%2/2100%3/3
getAllUpdateIds.js +
+
0%0/2100%0/00%0/20%0/1
maskEmail.js +
+
100%12/12100%7/7100%1/1100%11/11
stripFeedback.js +
+
100%6/6100%0/0100%1/1100%6/6
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/lib/utils/maskEmail.js.html b/refs/pull/858/merge/coverage/lcov-report/lib/utils/maskEmail.js.html new file mode 100644 index 0000000000..e92b6526f4 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/lib/utils/maskEmail.js.html @@ -0,0 +1,142 @@ + + + + + + Code coverage report for lib/utils/maskEmail.js + + + + + + + + + +
+
+

All files / lib/utils maskEmail.js

+
+ +
+ 100% + Statements + 12/12 +
+ + +
+ 100% + Branches + 7/7 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 11/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20  +  +1x +1x +  +1x +14x +1x +13x +10x +10x +  +3x +3x +  +  +  +1x +  + 
//Function for masking email to get in the thank you page later
+export function maskEmail(email) {
+  let maskedEmail = "";
+  let x = 0;
+ 
+  for (var i = 0; i < email.length; i++) {
+    if (i === 0) {
+      maskedEmail += email[i];
+    } else if (email[i] !== "@" && email[i] !== "." && x <= 3) {
+      maskedEmail += "*";
+      x += 1;
+    } else {
+      maskedEmail += email[i];
+      x = 0;
+    }
+  }
+ 
+  return maskedEmail;
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/lib/utils/stripFeedback.js.html b/refs/pull/858/merge/coverage/lcov-report/lib/utils/stripFeedback.js.html new file mode 100644 index 0000000000..51b2285541 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/lib/utils/stripFeedback.js.html @@ -0,0 +1,178 @@ + + + + + + Code coverage report for lib/utils/stripFeedback.js + + + + + + + + + +
+
+

All files / lib/utils stripFeedback.js

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 6/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32  +  +7x +  +  +  +  +  +7x +  +  +  +  +  +7x +  +  +  +  +  +7x +  +  +  +7x +  +  +  +  +7x +  + 
export function stripFeedback(feedbackToClean) {
+  //Remove postal code from feedback
+  feedbackToClean = feedbackToClean.replaceAll(
+    /[ABCEGHJ-NPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][ -]?\d[ABCEGHJ-NPRSTV-Z]\d/gim,
+    "### ###"
+  );
+ 
+  //Remove SIN from feedback
+  feedbackToClean = feedbackToClean.replaceAll(
+    /(\d{3}\s*\d{3}\s*\d{3}|\d{3}\D*\d{3}\D*\d{3})/gm,
+    "### ### ###"
+  );
+ 
+  //Remove email from feedback
+  feedbackToClean = feedbackToClean.replaceAll(
+    /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*/gim,
+    "####@####.####"
+  );
+ 
+  //Removes phone number from feedback
+  feedbackToClean = feedbackToClean.replaceAll(
+    /(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}/gm,
+    "# ### ### ###"
+  );
+  feedbackToClean = feedbackToClean.replaceAll(
+    /(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?/gm,
+    "# ### ### ###"
+  );
+ 
+  return feedbackToClean;
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/middlewares/index.html b/refs/pull/858/merge/coverage/lcov-report/middlewares/index.html new file mode 100644 index 0000000000..2b5da58145 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/middlewares/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for middlewares + + + + + + + + + +
+
+

All files middlewares

+
+ +
+ 53.33% + Statements + 8/15 +
+ + +
+ 20% + Branches + 1/5 +
+ + +
+ 42.85% + Functions + 3/7 +
+ + +
+ 53.33% + Lines + 8/15 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
initMiddleware.js +
+
0%0/60%0/20%0/40%0/6
joi.js +
+
88.88%8/933.33%1/3100%3/388.88%8/9
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/middlewares/initMiddleware.js.html b/refs/pull/858/merge/coverage/lcov-report/middlewares/initMiddleware.js.html new file mode 100644 index 0000000000..95bd9b9b8b --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/middlewares/initMiddleware.js.html @@ -0,0 +1,124 @@ + + + + + + Code coverage report for middlewares/initMiddleware.js + + + + + + + + + +
+
+

All files / middlewares initMiddleware.js

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14  +  +  +  +  +  +  +  +  +  +  +  +  + 
// Helper method to wait for a middleware to execute before continuing
+// And to throw an error when an error happens in a middleware
+export default function initMiddleware(middleware) {
+  return (req, res) =>
+    new Promise((resolve, reject) => {
+      middleware(req, res, (result) => {
+        if (result instanceof Error) {
+          return reject(result);
+        }
+        return resolve(result);
+      });
+    });
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/middlewares/joi.js.html b/refs/pull/858/merge/coverage/lcov-report/middlewares/joi.js.html new file mode 100644 index 0000000000..08e2c01bc7 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/middlewares/joi.js.html @@ -0,0 +1,160 @@ + + + + + + Code coverage report for middlewares/joi.js + + + + + + + + + +
+
+

All files / middlewares joi.js

+
+ +
+ 88.88% + Statements + 8/9 +
+ + +
+ 33.33% + Branches + 1/3 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 88.88% + Lines + 8/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +1x +  +  +1x +1x +2x +  +1x +  +  +  + 
import { Schema, ValidationOptions } from "joi"; //lgtm [js/unused-local-variable]
+import { NextApiHandler } from "next"; //lgtm [js/unused-local-variable]
+ 
+/**
+ * middleware to validate body of request with Joi schema
+ * if valid handler will be called otherwise a 400 response with the errors will be returned
+ * @param schema {Schema} - joi validation schema
+ * @param handler {NextApiHandler} - the next handler to call if the schema is valid
+ * @param options {ValidationOptions} - the Joi validations options
+ */
+export default function validate(schema, handler, options = {}) {
+  return async (req, res) => {
+    const { error } = await schema.validate(req.body, options);
+    const valid = error === undefined;
+    Iif (valid) {
+      return handler(req, res);
+    } else {
+      const { details } = error;
+      const message = details.map((i) => {
+        return { path: i.path, message: i.message };
+      });
+      res.status(400).json({ error: message });
+    }
+  };
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/404.js.html b/refs/pull/858/merge/coverage/lcov-report/pages/404.js.html new file mode 100644 index 0000000000..4a9fd14231 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/404.js.html @@ -0,0 +1,847 @@ + + + + + + Code coverage report for pages/404.js + + + + + + + + + +
+
+

All files / pages 404.js

+
+ +
+ 70.58% + Statements + 12/17 +
+ + +
+ 50% + Branches + 12/24 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 70.58% + Lines + 12/17 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255  +  +  +  +  +  +  +  +  +  +  +2x +2x +2x +2x +  +2x +1x +  +  +  +  +  +1x +  +  +1x +  +  +  +  +2x +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { useTranslation } from "next-i18next";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import Link from "next/link";
+import { ReportAProblem } from "../components/organisms/ReportAProblem";
+import { ActionButton } from "../components/atoms/ActionButton";
+import { useEffect, useState } from "react";
+import { useRouter } from "next/router";
+import aemServiceInstance from "../services/aemServiceInstance";
+ 
+export default function error404(props) {
+  const { t } = useTranslation("common");
+  const [loaded, setLoaded] = useState(false);
+  const router = useRouter();
+  const [pageData] = useState(props.pageData.item);
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+ 
+    //If using Internet Explorer, redirect to /notsupported
+    Iif (window.document.documentMode) {
+      router.push("/notsupported");
+    } else {
+      setLoaded(true);
+    }
+  }, []);
+ 
+  //If using Internet Explorer, render empty page so page doesn't flash before redirect
+  if (!loaded) {
+    return <div></div>;
+  }
+ 
+  return (
+    <>
+      <div className="min-h-screen relative">
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* Primary HTML Meta Tags */}
+          <title data-gc-analytics-error="404">
+            {pageData.scContentEn.json[0].content[0].value} (404) |{" "}
+            {pageData.scContentFr.json[0].content[0].value} (404)
+          </title>
+          <meta
+            name="description"
+            content={`${t("404errorMetaDescription")}`}
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+ 
+          {/* DCMI Meta Tags */}
+          <meta name="dcterms.title" content={`404 — ${t("siteTitle")}`} />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta
+            name="dcterms.description"
+            content={`${t("404errorMetaDescription")}`}
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={t("metaSubject")}
+          />
+          <meta name="dcterms.creator" content="Service Canada" />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-06-01" />
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca/" + `${props.locale}` + "/404"
+            }
+          />
+          <meta property="og:title" content={`404 — ${t("siteTitle")}`} />
+          <meta
+            property="og:description"
+            content={`${t("404errorMetaDescription")}`}
+          />
+          <meta property="og:image" content={`${t("metaImage")}`} />
+          <meta property="og:image:alt" content={`${t("siteTitle")}`} />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca/" + `${props.locale}` + "/404"
+            }
+          />
+          <meta property="twitter:title" content={`500 — ${t("siteTitle")}`} />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={`${t("404errorMetaDescription")}`}
+          />
+          <meta property="twitter:image" content={`${t("metaImage")}`} />
+          <meta property="twitter:image:alt" content={`${t("siteTitle")}`} />
+        </Head>
+        <section className="layout-container pb-44">
+          <div className="pt-6">
+            <img
+              src={`https://www.canada.ca${
+                props.locale === "en"
+                  ? pageData.scGcImages[0].scImageEn._path
+                  : pageData.scGcImages[0].scImageFr._path
+              }`}
+              alt={
+                props.locale === "en"
+                  ? pageData.scGcImages[0].scImageAltTextEn
+                  : pageData.scGcImages[0].scImageAltTextFr
+              }
+              width={575}
+              height={59}
+            />
+          </div>
+          <div className="flex flex-col lg:flex-row justify-between items-center lg:items-start mt-8">
+            <div>
+              <div className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 xl:h-400px lg:h-500px mb-8 lg:mb-0">
+                <h1 className="font-bold font-display mb-4">
+                  {pageData.scContentEn.json[0].content[0].value}
+                </h1>
+                <p className="font-bold font-body mb-8">
+                  {pageData.scContentEn.json[1].content[0].value}
+                </p>
+                <p className="font-body text-sm mb-4 leading-30px">
+                  {pageData.scContentEn.json[2].content[0].value}
+                </p>
+                <div className="flex">
+                  <span className="error404-link" />
+                  <p className="font-body text-sm leading-30px">
+                    {pageData.scContentEn.json[3].content[0].value}
+                    <Link
+                      href={pageData.scContentEn.json[3].content[1].data.href}
+                      className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                    >
+                      {pageData.scContentEn.json[3].content[1].value}
+                    </Link>
+                  </p>
+                </div>
+              </div>
+              <ReportAProblem language={"en"} />
+            </div>
+            <div className="flex items-center justify-center circle-background my-8 mx-4 lg:mt-0 lightbulb-bg shrink-0">
+              <span className="relative lightbulb">
+                <img
+                  src={`https://www.canada.ca${
+                    props.locale === "en"
+                      ? pageData.scImageList[0].scImageEn._path
+                      : pageData.scImageList[0].scImageFr._path
+                  }`}
+                  alt=""
+                />
+              </span>
+            </div>
+            <div>
+              <div
+                className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 xl:h-400px lg:h-500px mb-8 lg:mb-0"
+                lang="fr"
+              >
+                <h1 className="font-bold font-display mb-4">
+                  {pageData.scContentFr.json[0].content[0].value}
+                </h1>
+                <p className="font-bold font-body mb-8">
+                  {pageData.scContentFr.json[1].content[0].value}
+                </p>
+                <p className="font-body text-sm mb-4 leading-30px">
+                  {pageData.scContentFr.json[2].content[0].value}
+                </p>
+                <div className="flex">
+                  <span className="error404-link" />
+                  <p className="font-body text-sm leading-30px">
+                    {pageData.scContentFr.json[3].content[0].value}
+                    <Link
+                      href={pageData.scContentFr.json[3].content[1].data.href}
+                      className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                    >
+                      {pageData.scContentFr.json[3].content[1].value}
+                    </Link>
+                  </p>
+                </div>
+              </div>
+              <ReportAProblem language="fr" />
+            </div>
+          </div>
+        </section>
+        <footer className="h-100px w-screen bg-footer-background-color absolute bottom-0">
+          <div className="layout-container flex justify-between lg:flex-row-reverse pt-4 lg:pt-0 lg:mt-8">
+            <ActionButton
+              id="404TopOfPageButton"
+              href="#"
+              custom="text-left w-32 flex flex-col lg:hidden"
+              text="Top of page / Haut de la page"
+              icon="icon-up-caret"
+              iconEnd
+            />
+            <span className="relative footer-logo">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scGcImages[1].scImageEn._path
+                    : pageData.scGcImages[1].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scGcImages[1].scImageAltTextEn
+                    : pageData.scGcImages[1].scImageAltTextFr
+                }
+              />
+            </span>
+          </div>
+        </footer>
+      </div>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data } = await aemServiceInstance.getFragment("error404Query");
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      ...(await serverSideTranslations("en", ["common"])),
+      ...(await serverSideTranslations("fr", ["common"])),
+      pageData: data.scLabsErrorPagev1ByPath,
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/500.js.html b/refs/pull/858/merge/coverage/lcov-report/pages/500.js.html new file mode 100644 index 0000000000..b887f39670 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/500.js.html @@ -0,0 +1,946 @@ + + + + + + Code coverage report for pages/500.js + + + + + + + + + +
+
+

All files / pages 500.js

+
+ +
+ 70.58% + Statements + 12/17 +
+ + +
+ 50% + Branches + 12/24 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 70.58% + Lines + 12/17 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288  +  +  +  +  +  +  +  +  +  +  +2x +2x +2x +2x +  +2x +1x +  +  +  +  +  +1x +  +  +1x +  +  +  +  +2x +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { useTranslation } from "next-i18next";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import Link from "next/link";
+import { ReportAProblem } from "../components/organisms/ReportAProblem";
+import { ActionButton } from "../components/atoms/ActionButton";
+import { useEffect, useState } from "react";
+import { useRouter } from "next/router";
+import aemServiceInstance from "../services/aemServiceInstance";
+ 
+export default function error500(props) {
+  const { t } = useTranslation("common");
+  const [loaded, setLoaded] = useState(false);
+  const router = useRouter();
+  const [pageData] = useState(props.pageData.item);
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+ 
+    //If using Internet Explorer, redirect to /notsupported
+    Iif (window.document.documentMode) {
+      router.push("/notsupported");
+    } else {
+      setLoaded(true);
+    }
+  }, []);
+ 
+  //If using Internet Explorer, render empty page so page doesn't flash before redirect
+  if (!loaded) {
+    return <div></div>;
+  }
+ 
+  return (
+    <>
+      <div className="min-h-screen relative">
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* Primary HTML Meta Tags */}
+          <title data-gc-analytics-error="500">
+            {pageData.scContentEn.json[0].content[0].value} (500) |{" "}
+            {pageData.scContentFr.json[0].content[0].value} (500)
+          </title>
+          <meta
+            name="description"
+            content="Error message stating that the server is down, or the URL is incorrect or expired"
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta content="width=device-width, initial-scale=1" name="viewport" />
+          <meta name="robots" content="noindex, nofollow" />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            property="dcterms:title"
+            lang="en"
+            content="The web site has reported an error (500)"
+          />
+          <meta
+            property="dcterms:title"
+            lang="fr"
+            content="Le site Web a signalé une erreur (500)"
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2"
+          />
+          <meta
+            property="dcterms:description"
+            lang="en"
+            content="Error message stating that the server is down, or the URL is incorrect or expired."
+          />
+          <meta
+            property="dcterms:description"
+            lang="fr"
+            content="Message d’erreur indiquant que le serveur est en panne ou l’URL est incorrecte ou expirée."
+          />
+          <meta property="dcterms:creator" lang="en" content="Service Canada" />
+          <meta property="dcterms:creator" lang="fr" content="Service Canada" />
+          <meta
+            property="dcterms:subject"
+            lang="en"
+            title="gccore"
+            content="GV Government and Politics;Government services"
+          />
+          <meta
+            property="dcterms:subject"
+            lang="fr"
+            title="gccore"
+            content="GV Gouvernement et vie politique;Services gouvernementaux"
+          />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-06-22" />
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta property="dcterms:issued" content="2021-06-22" />
+          <meta property="dcterms:modified" content="2021-MM-DD" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca/" + `${props.locale}` + "/500"
+            }
+          />
+          <meta
+            property="og:title"
+            content="The web site has reported an error (500) | Le site Web a signalé une
+          erreur (500)"
+          />
+          <meta
+            property="og:description"
+            content="Error message stating that the server is down, or the URL is incorrect or expired"
+          />
+          <meta property="og:image" content={`${t("metaImage")}`} />
+          <meta property="og:image:alt" content={`${t("siteTitle")}`} />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca/" + `${props.locale}` + "/500"
+            }
+          />
+          <meta
+            property="twitter:title"
+            content="Error message stating that the server is down, or the URL is incorrect or expired"
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content="Error message stating that the server is down, or the URL is incorrect or expired"
+          />
+          <meta property="twitter:image" content={`${t("metaImage")}`} />
+          <meta property="twitter:image:alt" content={`${t("siteTitle")}`} />
+        </Head>
+        <section className="layout-container pb-44">
+          <div className="pt-6">
+            <img
+              src={`https://www.canada.ca${
+                props.locale === "en"
+                  ? pageData.scGcImages[0].scImageEn._path
+                  : pageData.scGcImages[0].scImageFr._path
+              }`}
+              alt={
+                props.locale === "en"
+                  ? pageData.scGcImages[0].scImageAltTextEn
+                  : pageData.scGcImages[0].scImageAltTextFr
+              }
+              width={575}
+              height={59}
+            />
+          </div>
+          <div className="flex flex-col lg:flex-row justify-between items-center lg:items-start mt-8">
+            <div>
+              <div className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 xl:h-400px lg:h-500px mb-8 lg:mb-0">
+                <h1 className="font-bold font-display mb-4">
+                  {pageData.scContentEn.json[0].content[0].value}
+                </h1>
+                <p className="font-bold font-body mb-8">
+                  {pageData.scContentEn.json[1].content[0].value}
+                </p>
+                <p className="font-body text-sm mb-4 leading-30px">
+                  {pageData.scContentEn.json[2].content[0].value}
+                </p>
+                <div className="flex">
+                  <span className="error404-link" />
+                  <p className="font-body text-sm leading-30px">
+                    {pageData.scContentEn.json[3].content[0].value}
+                    <Link
+                      href={pageData.scContentEn.json[3].content[1].data.href}
+                      className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                    >
+                      {pageData.scContentEn.json[3].content[1].value}
+                    </Link>
+                  </p>
+                </div>
+              </div>
+              <ReportAProblem language={"en"} />
+            </div>
+            <div className="flex items-center justify-center circle-background my-8 lg:mt-0 lightbulb-bg">
+              <span className="relative lightbulb">
+                <img
+                  src={`https://www.canada.ca${
+                    props.locale === "en"
+                      ? pageData.scImageList[0].scImageEn._path
+                      : pageData.scImageList[0].scImageFr._path
+                  }`}
+                  alt=""
+                />
+              </span>
+            </div>
+            <div>
+              <div
+                className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 xl:h-400px lg:h-500px mb-8 lg:mb-0"
+                lang="fr"
+              >
+                <h1 className="font-bold font-display mb-4">
+                  {pageData.scContentFr.json[0].content[0].value}
+                </h1>
+                <p className="font-bold font-body mb-8">
+                  {pageData.scContentFr.json[1].content[0].value}
+                </p>
+                <p className="font-body text-sm mb-4 leading-30px">
+                  {pageData.scContentFr.json[2].content[0].value}
+                </p>
+                <div className="flex">
+                  <span className="error50-link" />
+                  <p className="font-body text-sm leading-30px">
+                    {pageData.scContentFr.json[3].content[0].value}
+                    <Link
+                      href={pageData.scContentFr.json[3].content[1].data.href}
+                      className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                    >
+                      {pageData.scContentFr.json[3].content[1].value}
+                    </Link>
+                  </p>
+                </div>
+              </div>
+              <ReportAProblem language="fr" />
+            </div>
+          </div>
+        </section>
+        <footer className="h-100px w-screen bg-footer-background-color absolute bottom-0">
+          <div className="layout-container flex justify-between lg:flex-row-reverse pt-4 lg:pt-0 lg:mt-8">
+            <ActionButton
+              id="404TopOfPageButton"
+              href="#"
+              custom="text-left w-32 flex flex-col lg:hidden"
+              text="Top of page / Haut de la page"
+              icon="icon-up-caret"
+              iconEnd
+            />
+            <span className="relative footer-logo">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scGcImages[1].scImageEn._path
+                    : pageData.scGcImages[1].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scGcImages[1].scImageAltTextEn
+                    : pageData.scGcImages[1].scImageAltTextFr
+                }
+              />
+            </span>
+          </div>
+        </footer>
+      </div>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data } = await aemServiceInstance.getFragment("error500Query");
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      ...(await serverSideTranslations("en", ["common"])),
+      ...(await serverSideTranslations("fr", ["common"])),
+      pageData: data.scLabsErrorPagev1ByPath,
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/_app.js.html b/refs/pull/858/merge/coverage/lcov-report/pages/_app.js.html new file mode 100644 index 0000000000..65624892b4 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/_app.js.html @@ -0,0 +1,178 @@ + + + + + + Code coverage report for pages/_app.js + + + + + + + + + +
+
+

All files / pages _app.js

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { appWithTranslation } from "next-i18next";
+import "../styles/globals.css";
+import "../styles/forms.css";
+import "../styles/menu.css";
+import Head from "next/head";
+import { config } from "@fortawesome/fontawesome-svg-core";
+import "@fortawesome/fontawesome-svg-core/styles.css";
+ 
+config.autoAddCss = false;
+ 
+if (process.env.NEXT_PUBLIC_API_MOCKING === "enabled") {
+  require("../mocks");
+}
+ 
+function MyApp({ Component, pageProps }) {
+  return (
+    <>
+      <Head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta
+          name="og:builddate"
+          content={process.env.NEXT_PUBLIC_BUILD_DATE}
+        />
+        <meta name="og:buildid" content={process.env.NEXT_PUBLIC_BUILD_ID} />
+      </Head>
+      <Component {...pageProps} />
+    </>
+  );
+}
+ 
+export default appWithTranslation(MyApp);
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/api/healthcheck.js.html b/refs/pull/858/merge/coverage/lcov-report/pages/api/healthcheck.js.html new file mode 100644 index 0000000000..04a2eea34d --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/api/healthcheck.js.html @@ -0,0 +1,97 @@ + + + + + + Code coverage report for pages/api/healthcheck.js + + + + + + + + + +
+
+

All files / pages/api healthcheck.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5  +  +  +  + 
// TODO: add checks for the status of the CMS
+export default function handler(req, res) {
+  res.status(200).json({ message: "Status OK" });
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/api/index.html b/refs/pull/858/merge/coverage/lcov-report/pages/api/index.html new file mode 100644 index 0000000000..8ae8c0a1fe --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/api/index.html @@ -0,0 +1,146 @@ + + + + + + Code coverage report for pages/api + + + + + + + + + +
+
+

All files pages/api

+
+ +
+ 86.36% + Statements + 19/22 +
+ + +
+ 83.33% + Branches + 10/12 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 86.36% + Lines + 19/22 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
healthcheck.js +
+
0%0/1100%0/00%0/10%0/1
report-a-problem.js +
+
84.61%11/1380%8/10100%1/184.61%11/13
robots.js +
+
100%8/8100%2/2100%1/1100%8/8
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/api/report-a-problem.js.html b/refs/pull/858/merge/coverage/lcov-report/pages/api/report-a-problem.js.html new file mode 100644 index 0000000000..4a63f65aab --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/api/report-a-problem.js.html @@ -0,0 +1,274 @@ + + + + + + Code coverage report for pages/api/report-a-problem.js + + + + + + + + + +
+
+

All files / pages/api report-a-problem.js

+
+ +
+ 84.61% + Statements + 11/13 +
+ + +
+ 80% + Branches + 8/10 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 84.61% + Lines + 11/13 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64  +  +  +  +  +  +  +5x +  +5x +  +  +  +2x +  +3x +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +1x +  +1x +1x +  +  +1x +1x +  +  +  +  +  +  +  +  +  + 
import { submitEmail } from "../../lib/notify/submitEmail";
+ 
+/**
+ * API handler for report a problem functionality. This will take form submissions
+ * and call GC Notify service with the appropriate template and data
+ */
+async function handler(req, res) {
+  if (req.method === "POST") {
+    // if there is no data specified we don't want to call notify
+    if (
+      Object.keys(req.body).length <= 1 ||
+      !process.env.REPORT_A_PROBLEM_ENABLED
+    ) {
+      res.status(200).end("OK");
+    } else {
+      try {
+        const notifyResponse = await submitEmail(
+          {
+            ...req.body,
+            page_name: req.headers.referer || "unknown",
+          },
+          {
+            page_name: "unknown",
+            language: "unknown",
+            incorrect_information: "no",
+            incorrect_information_details: "",
+            unclear_information: "no",
+            unclear_information_details: "",
+            info_not_found: "no",
+            info_not_found_details: "",
+            adaptive_technology: "no",
+            adaptive_technology_details: "",
+            privacy_issues: "no",
+            privacy_issues_details: "",
+            no_where_else_to_go: "no",
+            no_where_else_to_go_details: "",
+            other: "no",
+            other_details: "",
+          },
+          process.env.NOTIFY_REPORT_A_PROBLEM_TEMPLATE_ID,
+          process.env.NEXT_PUBLIC_NOTIFY_REPORT_A_PROBLEM_EMAIL,
+          process.env.NOTIFY_BASE_API_URL + "/v2/notifications/email",
+          process.env.NOTIFY_API_KEY
+        );
+ 
+        if (notifyResponse[0] === 201) {
+          res.status(200).end("OK");
+        } else {
+          console.error(notifyResponse[1]);
+          res.status(500).end("ERROR");
+        }
+      } catch (e) {
+        console.error(e);
+        res.status(500).end("ERROR");
+      }
+    }
+  } else E{
+    res.setHeader("Allow", ["POST"]);
+    res.status(405).end(`Method ${req.method} Not Allowed`);
+  }
+}
+ 
+export default handler;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/api/robots.js.html b/refs/pull/858/merge/coverage/lcov-report/pages/api/robots.js.html new file mode 100644 index 0000000000..89e1930b50 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/api/robots.js.html @@ -0,0 +1,139 @@ + + + + + + Code coverage report for pages/api/robots.js + + + + + + + + + +
+
+

All files / pages/api robots.js

+
+ +
+ 100% + Statements + 8/8 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 8/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19  +  +  +  +  +  +  +2x +1x +1x +1x +1x +  +1x +1x +  +2x +  + 
/**
+ * Disallow web crawlers to scrape our dev site, while only blocking crawlers from scraping the api routes in production
+ * @param req
+ * @param res
+ * @returns {Promise<void>}
+ */
+export default async function handler(req, res) {
+  if (process.env.NODE_ENV === "production") {
+    res.write("User-agent: *\n");
+    res.write("Disallow: /api\n");
+    res.write("Disallow: /projects/*\n");
+    res.write("Disallow: /notsupported.js\n");
+  } else {
+    res.write("User-agent: *\n");
+    res.write("Disallow: /\n");
+  }
+  res.end();
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/error.js.html b/refs/pull/858/merge/coverage/lcov-report/pages/error.js.html new file mode 100644 index 0000000000..0536a17231 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/error.js.html @@ -0,0 +1,1486 @@ + + + + + + Code coverage report for pages/error.js + + + + + + + + + +
+
+

All files / pages error.js

+
+ +
+ 0% + Statements + 0/16 +
+ + +
+ 0% + Branches + 0/48 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/16 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import Link from "next/link";
+import { ReportAProblem } from "../components/organisms/ReportAProblem";
+import { ActionButton } from "../components/atoms/ActionButton";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { useTranslation } from "next-i18next";
+import { useRouter } from "next/router";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../services/aemServiceInstance";
+ 
+export default function ErrorPage(props) {
+  const { t } = useTranslation("common");
+  const { query } = useRouter();
+  const [pageData] = useState(props.pageData.item);
+ 
+  const statusCode = query.statusCode || "";
+  const errorTitle =
+    query.errorTitle || pageData.scContentEn.json[0].content[0].value;
+  const errorTitleFr =
+    query.errorTitleFr || pageData.scContentFr.json[0].content[0].value;
+  const errorMessage =
+    query.errorMessage || pageData.scContentEn.json[1].content[0].value;
+  const errorMessageFr =
+    query.errorMessageFr || pageData.scContentFr.json[1].content[0].value;
+ 
+  useEffect(() => {
+    if (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <div className="min-h-screen relative">
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* Primary HTML Meta Tags */}
+          <title data-gc-analytics-error={props.statusCode}>
+            {pageData.scContentEn.json[0].content[0].value} |{" "}
+            {pageData.scContentFr.json[0].content[0].value}
+          </title>
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta content="width=device-width, initial-scale=1" name="viewport" />
+          <meta
+            name="description"
+            content={
+              props.locale === "en"
+                ? `${errorTitle}` + `${errorMessage}`
+                : `${errorTitleFr}` + `${errorMessageFr}`
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <meta name="robots" content="noindex, nofollow" />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            property="dcterms:title"
+            lang="en"
+            content="The web site has reported an error"
+          />
+          <meta
+            property="dcterms:title"
+            lang="fr"
+            content="Le site Web a signalé une erreur"
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2"
+          />
+          <meta property="dcterms:creator" lang="en" content="Service Canada" />
+          <meta property="dcterms:creator" lang="fr" content="Service Canada" />
+ 
+          <meta
+            property="dcterms:subject"
+            lang="en"
+            title="gccore"
+            content="GV Government and Politics;Government services"
+          />
+          <meta
+            property="dcterms:subject"
+            lang="fr"
+            title="gccore"
+            content="GV Gouvernement et vie politique;Services gouvernementaux"
+          />
+          <meta
+            property="dcterms:description"
+            lang="en"
+            content="Error message stating that the site has reported an error."
+          />
+          <meta
+            property="dcterms:description"
+            lang="fr"
+            content="Message d’erreur indiquant que le site a signalé une erreur."
+          />
+          <meta name="dcterms.creator" content={t("creator")} />
+ 
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-06-28" />
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta property="dcterms:modified" content="2021-12-16" />
+          <meta property="dcterms:issued" content="2021-06-28" />
+          <meta
+            name="dcterms.subject"
+            content="GV Government and Politics;Government services"
+          />
+          <meta name="dcterms.language" title="ISO639-2" content="eng" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca/" + `${props.locale}` + "/error"
+            }
+          />
+          <meta
+            property="og:title"
+            content="The web site has reported an error | Le site Web a signalé une erreur"
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? `${errorTitle}` + `${errorMessage}`
+                : `${errorTitleFr}` + `${errorMessageFr}`
+            }
+          />
+          <meta property="og:image" content={`${t("metaImage")}`} />
+          <meta property="og:image:alt" content={`${t("siteTitle")}`} />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca/" + `${props.locale}` + "/error"
+            }
+          />
+          <meta
+            property="twitter:title"
+            content="The web site has reported an error | Le site Web a signalé une erreur"
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? `${errorTitle}` + `${errorMessage}`
+                : `${errorTitleFr}` + `${errorMessageFr}`
+            }
+          />
+          <meta property="twitter:image" content={`${t("metaImage")}`} />
+          <meta property="twitter:image:alt" content={`${t("siteTitle")}`} />
+        </Head>
+        <main>
+          <section className="layout-container pb-44">
+            <div className="pt-6">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scGcImages[0].scImageEn._path
+                    : pageData.scGcImages[0].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scGcImages[0].scImageAltTextEn
+                    : pageData.scGcImages[0].scImageAltTextFr
+                }
+                width={575}
+                height={59}
+              />
+            </div>
+            <div className="flex flex-col lg:flex-row justify-between items-center lg:items-start mt-8">
+              {/* Left Side (English section) */}
+              <div>
+                <div className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 lg:h-500px mb-8 lg:mb-0">
+                  <h1
+                    className="font-bold font-display mb-4"
+                    data-testid="heading-en"
+                  >
+                    {errorTitle}
+                  </h1>
+                  {statusCode ? (
+                    <p
+                      className="font-bold font-body mb-8"
+                      data-testid="statuscode-en"
+                    >
+                      {pageData.scContentEn.json[2].content[0].value}{" "}
+                      {statusCode}
+                    </p>
+                  ) : (
+                    ""
+                  )}
+                  <p
+                    className="font-body text-p font-bold mb-4 leading-30px"
+                    data-testid="errormessage-en"
+                  >
+                    {errorMessage}
+                  </p>
+                  {errorMessage === "Wrong URL" ? (
+                    <>
+                      {/* Wrong URL English Section */}
+                      <p className="font-body text-sm leading-30px mb-5">
+                        {pageData.scContentEn.json[3].content[0].value}
+                      </p>
+                      <ul>
+                        <li className="flex">
+                          <span className="error404-link" />
+                          <p className="font-body text-sm leading-30px">
+                            {pageData.scContentEn.json[4].content[0].value}
+                          </p>
+                        </li>
+                        <li className="flex">
+                          <span className="error404-link" />
+                          <p className="font-body text-sm leading-30px">
+                            {pageData.scContentEn.json[5].content[0].value}
+                            <a
+                              href={`mailto:${process.env.NEXT_PUBLIC_NOTIFY_REPORT_A_PROBLEM_EMAIL}`}
+                              className="text-custom-blue-link underline"
+                            >
+                              {
+                                process.env
+                                  .NEXT_PUBLIC_NOTIFY_REPORT_A_PROBLEM_EMAIL
+                              }
+                            </a>{" "}
+                            {pageData.scContentEn.json[6].content[0].value}
+                          </p>
+                        </li>
+                      </ul>
+                      <p className="font-body text-sm leading-30px mt-5">
+                        {pageData.scContentEn.json[7].content[0].value}
+                      </p>
+                    </>
+                  ) : errorMessage === "Expired URL" ? (
+                    <>
+                      {/* Expired URL English Section */}
+                      <p className="font-body text-sm leading-30px mb-5">
+                        {pageData.scContentEn.json[8].content[0].value}
+                      </p>
+                      <ul>
+                        <li className="flex">
+                          <span className="error404-link" />
+                          <p className="font-body text-sm leading-30px">
+                            <Link
+                              href={
+                                pageData.scContentEn.json[9].content[0].data
+                                  .href
+                              }
+                              className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                            >
+                              {pageData.scContentEn.json[9].content[0].value}
+                            </Link>{" "}
+                            {pageData.scContentEn.json[9].content[1].value}
+                          </p>
+                        </li>
+                      </ul>
+                      <p className="font-body text-sm leading-30px mt-5">
+                        {pageData.scContentEn.json[7].content[0].value}
+                      </p>
+                    </>
+                  ) : (
+                    /* General Error English Section */
+                    <div className="flex">
+                      <span className="error404-link" />
+                      <p className="font-body text-sm leading-30px">
+                        {pageData.scContentEn.json[10].content[0].value}
+                        <Link
+                          href={
+                            pageData.scContentEn.json[10].content[1].data.href
+                          }
+                          className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                        >
+                          {pageData.scContentEn.json[10].content[1].value}
+                        </Link>
+                      </p>
+                    </div>
+                  )}
+                </div>
+                <ReportAProblem language="en" />
+              </div>
+              <div className="flex items-center justify-center circle-background my-8 lg:mt-0 lightbulb-bg">
+                <span className="relative lightbulb">
+                  <img
+                    src={`https://www.canada.ca${
+                      props.locale === "en"
+                        ? pageData.scImageList[0].scImageEn._path
+                        : pageData.scImageList[0].scImageFr._path
+                    }`}
+                    alt=""
+                  />
+                </span>
+              </div>
+              {/* Right Side (French section) */}
+              <div>
+                <div
+                  className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 lg:h-500px mb-8 lg:mb-0"
+                  lang="fr"
+                >
+                  <h1
+                    className="font-bold font-display mb-4"
+                    data-testid="heading-fr"
+                  >
+                    {errorTitleFr}
+                  </h1>
+                  {statusCode ? (
+                    <p
+                      className="font-bold font-body mb-8"
+                      data-testid="statuscode-fr"
+                    >
+                      {pageData.scContentFr.json[2].content[0].value}{" "}
+                      {statusCode}
+                    </p>
+                  ) : (
+                    ""
+                  )}
+                  <p
+                    className="font-body text-p font-bold mb-4 leading-30px"
+                    data-testid="errormessage-fr"
+                  >
+                    {errorMessageFr}
+                  </p>
+                  {errorMessageFr === "URL erronée" ? (
+                    <>
+                      {/* Wrong URL French Section */}
+                      <p className="font-body text-sm leading-30px mb-5">
+                        {pageData.scContentFr.json[3].content[0].value}
+                      </p>
+                      <ul>
+                        <li className="flex">
+                          <span className="error404-link" />
+                          <p className="font-body text-sm leading-30px">
+                            {pageData.scContentFr.json[4].content[0].value}
+                          </p>
+                        </li>
+                        <li className="flex">
+                          <span className="error404-link" />
+                          <p className="font-body text-sm leading-30px">
+                            {pageData.scContentFr.json[5].content[0].value}
+                            <a
+                              href={`mailto:${process.env.NEXT_PUBLIC_NOTIFY_REPORT_A_PROBLEM_EMAIL}`}
+                              className="text-custom-blue-link underline"
+                            >
+                              {
+                                process.env
+                                  .NEXT_PUBLIC_NOTIFY_REPORT_A_PROBLEM_EMAIL
+                              }
+                            </a>{" "}
+                            {pageData.scContentFr.json[6].content[0].value}
+                          </p>
+                        </li>
+                      </ul>
+                      <p className="font-body text-sm leading-30px mt-5">
+                        {pageData.scContentFr.json[7].content[0].value}
+                      </p>
+                    </>
+                  ) : errorMessageFr === "URL expirée" ? (
+                    <>
+                      {/* Expired URL French Section */}
+                      <p className="font-body text-sm leading-30px mb-5">
+                        {pageData.scContentFr.json[8].content[0].value}
+                      </p>
+                      <ul>
+                        <li className="flex">
+                          <span className="error404-link" />
+                          <p className="font-body text-sm leading-30px">
+                            <Link
+                              href={
+                                pageData.scContentFr.json[9].content[0].data
+                                  .href
+                              }
+                              className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                            >
+                              {pageData.scContentFr.json[9].content[0].value}
+                            </Link>{" "}
+                            {pageData.scContentFr.json[9].content[1].value}
+                          </p>
+                        </li>
+                      </ul>
+                      <p className="font-body text-sm leading-30px mt-5">
+                        {pageData.scContentFr.json[7].content[0].value}
+                      </p>
+                    </>
+                  ) : (
+                    /* General Error French Section */
+                    <div className="flex">
+                      <span className="error404-link" />
+                      <p className="font-body text-sm leading-30px">
+                        {pageData.scContentFr.json[10].content[0].value}
+                        <Link
+                          href={
+                            pageData.scContentFr.json[10].content[1].data.href
+                          }
+                          className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                        >
+                          {pageData.scContentFr.json[10].content[1].value}
+                        </Link>
+                      </p>
+                    </div>
+                  )}
+                </div>
+                <ReportAProblem language="fr" />
+              </div>
+            </div>
+          </section>
+        </main>
+        <footer className="h-100px w-screen bg-footer-background-color absolute bottom-0">
+          <div className="layout-container flex justify-between lg:flex-row-reverse pt-4 lg:pt-0 lg:mt-8">
+            <ActionButton
+              id="errorTopOfPageButton"
+              href="#"
+              custom="text-left w-32 flex flex-col lg:hidden"
+              text="Top of page / Haut de la page"
+              icon="icon-up-caret"
+              iconEnd
+            />
+            <span className="relative footer-logo">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scGcImages[1].scImageEn._path
+                    : pageData.scGcImages[1].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scGcImages[1].scImageAltTextEn
+                    : pageData.scGcImages[1].scImageAltTextFr
+                }
+              />
+            </span>
+          </div>
+        </footer>
+      </div>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data } = await aemServiceInstance.getFragment("customErrorQuery");
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      ...(await serverSideTranslations("en", ["common"])),
+      ...(await serverSideTranslations("fr", ["common"])),
+      pageData: data.scLabsErrorPagev1ByPath,
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/home.js.html b/refs/pull/858/merge/coverage/lcov-report/pages/home.js.html new file mode 100644 index 0000000000..1044b1f48d --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/home.js.html @@ -0,0 +1,1297 @@ + + + + + + Code coverage report for pages/home.js + + + + + + + + + +
+
+

All files / pages home.js

+
+ +
+ 66.66% + Statements + 10/15 +
+ + +
+ 47.43% + Branches + 37/78 +
+ + +
+ 80% + Functions + 4/5 +
+ + +
+ 66.66% + Lines + 10/15 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405  +  +  +  +  +  +  +  +  +  +1x +1x +  +1x +4x +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import Card from "../components/molecules/Card";
+import { ContextualAlert } from "@dts-stn/service-canada-design-system";
+import aemServiceInstance from "../services/aemServiceInstance";
+import { Heading } from "@dts-stn/service-canada-design-system";
+ 
+export default function Home(props) {
+  const [pageData] = useState(props.pageData.item);
+  const [experimentsData] = useState(props.experimentsData);
+ 
+  const currentProjects = experimentsData.filter((project) => {
+    return (
+      project.scLabProjectStatus[0] ===
+      "gc:custom/decd-endc/project-status/current"
+    );
+  });
+ 
+  const displayCurrentProjects = currentProjects.map((project) => (
+    <li key={project.scId} className="list-none ml-0">
+      <Card
+        showImage
+        showTag={
+          project.scTitleEn === "Old Age Security Benefits Estimator"
+            ? true
+            : false
+        }
+        tagLabel={props.locale === "en" ? "New update" : "Nouvelle mise à jour"}
+        tag="current_projects"
+        imgSrc={
+          // TODO images should always be fetched from the same place in the response data i.e. using the socialMediaImage field
+          project.scId === "BENEFITS-NAVIGATOR-OVERVIEW"
+            ? props.locale === "en"
+              ? `${project.scFragments[0].scImageEn._publishUrl}`
+              : `${project.scFragments[0].scImageFr._publishUrl}`
+            : props.locale === "en"
+            ? `https://www.canada.ca${project.scSocialMediaImageEn._path}`
+            : `https://www.canada.ca${project.scSocialMediaImageFr._path}`
+        }
+        imgAlt={
+          props.locale === "en"
+            ? project.scSocialMediaImageAltTextEn
+            : project.scSocialMediaImageAltTextFr
+        }
+        title={props.locale === "en" ? project.scTitleEn : project.scTitleFr}
+        href={
+          props.locale === "en" ? project.scPageNameEn : project.scPageNameFr
+        }
+        description={
+          props.locale === "en"
+            ? project.scDescriptionEn.json[0].content[0].value
+            : project.scDescriptionFr.json[0].content[0].value
+        }
+      />
+    </li>
+  ));
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+      >
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? pageData.scShortTitleEn
+              : pageData.scShortTitleFr}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en"
+                ? pageData.scShortTitleEn
+                : pageData.scShortTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta name="dcterms.creator" content="Service Canada" />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-03-18" />
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="og:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="twitter:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+        </Head>
+        <section className="layout-container">
+          <div className="grid grid-cols-4">
+            <div className="col-span-4">
+              <Heading
+                tabIndex="-1"
+                id="pageMainTitle"
+                title={
+                  props.locale === "en"
+                    ? pageData.scFragments[0].scContentEn.json[0].content[0]
+                        .value
+                    : pageData.scFragments[0].scContentFr.json[0].content[0]
+                        .value
+                }
+              />
+            </div>
+            <p className="font-body col-span-4 xl:col-span-2 row-start-2">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                : pageData.scFragments[0].scContentFr.json[1].content[0].value}
+            </p>
+            <p className="font-body col-span-4 xl:col-span-2 row-start-3 pt-4 xxl:pt-0">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[2].content[0].value
+                : pageData.scFragments[0].scContentFr.json[2].content[0].value}
+            </p>
+            <div className="hidden xl:grid col-span-2 col-start-3 row-start-2 row-span-2">
+              <div className="flex justify-center">
+                <span
+                  className="w-full"
+                  style={{ height: "260px", width: "380px", minWidth: "380px" }}
+                  role="presentation"
+                >
+                  <img
+                    src={
+                      props.locale === "en"
+                        ? pageData.scFragments[1].scImageEn._publishUrl
+                        : pageData.scFragments[1].scImageFr._publishUrl
+                    }
+                    alt=""
+                  />
+                </span>
+              </div>
+            </div>
+          </div>
+          <div className="lg:flex">
+            <span className="w-full">
+              <h2>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[3].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[3].content[0]
+                      .value}{" "}
+              </h2>
+              <p className="font-body">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[4].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[4].content[0]
+                      .value}{" "}
+              </p>
+              <ul>
+                <li>
+                  <p className="font-body">
+                    {props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[5].content[0]
+                          .content[0].value
+                      : pageData.scFragments[0].scContentFr.json[5].content[0]
+                          .content[0].value}{" "}
+                  </p>
+                </li>
+                <li>
+                  <p className="font-body">
+                    {props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[5].content[1]
+                          .content[0].value
+                      : pageData.scFragments[0].scContentFr.json[5].content[1]
+                          .content[0].value}{" "}
+                  </p>
+                </li>
+              </ul>
+            </span>
+          </div>
+          <h2>
+            {props.locale === "en"
+              ? pageData.scFragments[0].scContentEn.json[6].content[0].value
+              : pageData.scFragments[0].scContentFr.json[6].content[0]
+                  .value}{" "}
+          </h2>
+          <div className="mb-8">
+            <ContextualAlert
+              id="info-alert"
+              type="info"
+              alert_icon_alt_text="info icon"
+              alert_icon_id="info icon"
+              message_heading={
+                props.locale === "en"
+                  ? pageData.scFragments[2].scTitleEn
+                  : pageData.scFragments[2].scTitleFr
+              }
+              message_body={
+                props.locale === "en" ? (
+                  <>
+                    {
+                      pageData.scFragments[2].scContentEn.json[0].content[0]
+                        .value
+                    }
+                    <a
+                      className="underline text-canada-footer-font hover:text-canada-footer-hover-font-blue"
+                      href={
+                        pageData.scFragments[2].scContentEn.json[0].content[1]
+                          .data.href
+                      }
+                    >
+                      {
+                        pageData.scFragments[2].scContentEn.json[0].content[1]
+                          .value
+                      }
+                    </a>
+                    {
+                      pageData.scFragments[2].scContentEn.json[0].content[2]
+                        .value
+                    }
+                  </>
+                ) : (
+                  <>
+                    {
+                      pageData.scFragments[2].scContentFr.json[0].content[0]
+                        .value
+                    }
+                    <a
+                      className="underline text-canada-footer-font hover:text-canada-footer-hover-font-blue"
+                      href={
+                        pageData.scFragments[2].scContentFr.json[0].content[1]
+                          .data.href
+                      }
+                    >
+                      {
+                        pageData.scFragments[2].scContentFr.json[0].content[1]
+                          .value
+                      }
+                    </a>
+                    {
+                      pageData.scFragments[2].scContentEn.json[0].content[2]
+                        .value
+                    }
+                  </>
+                )
+              }
+            />
+          </div>
+          <ul className="grid lg:grid-cols-2 gap-x-4 gap-y-4 list-none ml-0">
+            {displayCurrentProjects}
+          </ul>
+        </section>
+      </Layout>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data: pageData } = await aemServiceInstance.getFragment(
+    "homePageQuery"
+  );
+  const { data: experimentsData } = await aemServiceInstance.getFragment(
+    "projectQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      pageData: pageData.scLabsPagev1ByPath,
+      experimentsData: experimentsData.scLabsPagev1List.items,
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    revalidate: 10,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/index.html b/refs/pull/858/merge/coverage/lcov-report/pages/index.html new file mode 100644 index 0000000000..6cef609a69 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/index.html @@ -0,0 +1,206 @@ + + + + + + Code coverage report for pages + + + + + + + + + +
+
+

All files pages

+
+ +
+ 51.06% + Statements + 48/94 +
+ + +
+ 36.75% + Branches + 86/234 +
+ + +
+ 52.17% + Functions + 12/23 +
+ + +
+ 51.61% + Lines + 48/93 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
404.js +
+
70.58%12/1750%12/2466.66%2/370.58%12/17
500.js +
+
70.58%12/1750%12/2466.66%2/370.58%12/17
_app.js +
+
0%0/40%0/20%0/10%0/4
error.js +
+
0%0/160%0/480%0/30%0/16
home.js +
+
66.66%10/1547.43%37/7880%4/566.66%10/15
index.js +
+
66.66%6/928.57%4/1466.66%2/375%6/8
notsupported.js +
+
50%8/1647.72%21/4440%2/550%8/16
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/index.js.html b/refs/pull/858/merge/coverage/lcov-report/pages/index.js.html new file mode 100644 index 0000000000..58cb3803db --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/index.js.html @@ -0,0 +1,694 @@ + + + + + + Code coverage report for pages/index.js + + + + + + + + + +
+
+

All files / pages index.js

+
+ +
+ 66.66% + Statements + 6/9 +
+ + +
+ 28.57% + Branches + 4/14 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 75% + Lines + 6/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204  +  +  +  +  +  +  +  +1x +  +1x +1x +  +  +  +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { useTranslation } from "next-i18next";
+import { ActionButton } from "../components/atoms/ActionButton";
+import Link from "next/link";
+import { useEffect } from "react";
+ 
+export default function Index(props) {
+  const { t } = useTranslation("common");
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+    document.documentElement.lang = "en";
+  }, []);
+ 
+  return (
+    <>
+      <div className="splash-bg splash-image bg-splash-img-mobile xs:bg-splash-img bg-no-repeat fixed left-0 top-0 w-full h-full -z-1" />
+      <Head>
+        {props.adobeAnalyticsUrl ? (
+          <script src={props.adobeAnalyticsUrl} />
+        ) : (
+          ""
+        )}
+ 
+        {/* Primary HTML Meta Tags */}
+        <title>Service Canada Labs | Laboratoires de Service Canada</title>
+        <meta
+          name="description"
+          content="Explore the Service Canada Labs in English or French."
+        />
+        <meta name="author" content="Service Canada" />
+        <link rel="icon" href="/favicon.ico" />
+        <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+        <meta content="width=device-width, initial-scale=1" name="viewport" />
+        <meta name="robots" content="noindex, follow" />
+ 
+        {/* DCMI Meta Tags */}
+        <meta
+          property="dcterms:title"
+          lang="en"
+          content="Service Canada Labs"
+        />
+        <meta
+          property="dcterms:title"
+          lang="fr"
+          content="Laboratoires de Service Canada"
+        />
+        <meta
+          name="dcterms.language"
+          content={props.locale === "en" ? "eng" : "fra"}
+          title="ISO639-2"
+        />
+        <meta property="dcterms:creator" lang="en" content="Service Canada" />
+        <meta property="dcterms:creator" lang="fr" content="Service Canada" />
+        <meta name="dcterms.accessRights" content="2" />
+        <meta name="dcterms.service" content="ESDC-EDSC_SCLabs-LaboratoireSC" />
+        <meta name="dcterms.issued" content="2021-05-06" />
+        <meta property="dcterms:modified" content="2021-12-16" />
+        <meta name="dcterms.issued" title="W3CDTF" content="2021-05-06" />
+        <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+        <meta
+          property="dcterms:description"
+          lang="en"
+          content="Explore the Service Canada Labs in English or French."
+        />
+        <meta
+          property="dcterms:description"
+          lang="fr"
+          content="Explorez les laboratoires de Service Canda en français ou en anglais."
+        />
+        <meta
+          property="dcterms:subject"
+          lang="en"
+          title="gccore"
+          content="GV Government and Politics;Government services"
+        />
+        <meta
+          property="dcterms:subject"
+          lang="fr"
+          title="gccore"
+          content="GV Gouvernement et vie politique;Services gouvernementaux"
+        />
+ 
+        {/* Open Graph / Facebook */}
+        <meta property="og:type" content="website" />
+        <meta property="og:locale" content={props.locale} />
+        <meta property="og:url" content={"https://alpha.service.canada.ca/"} />
+        <meta
+          property="og:title"
+          content="Service Canada Labs | Laboratoires de Service Canada"
+        />
+        <meta
+          property="og:description"
+          content="Explore the Service Canada Labs in English or French."
+        />
+        <meta property="og:image" content={`${t("metaImage")}`} />
+        <meta property="og:image:alt" content={`${t("siteTitle")}`} />
+ 
+        {/* Twitter */}
+        <meta property="twitter:card" content="summary_large_image" />
+        <meta
+          property="twitter:url"
+          content={"https://alpha.service.canada.ca/"}
+        />
+        <meta
+          property="twitter:title"
+          content="Service Canada Labs | Laboratoires de Service Canada"
+        />
+        <meta name="twitter:creator" content="Service Canada" />
+        <meta
+          property="twitter:description"
+          content="Explore the Service Canada Labs in English or French."
+        />
+        <meta property="twitter:image" content={`${t("metaImage")}`} />
+        <meta property="twitter:image:alt" content={`${t("siteTitle")}`} />
+      </Head>
+      <main className="h-full flex justify-center">
+        <div className="splash-cta fixed flex flex-col sm:justify-center sm:items-center">
+          <div className="z-10 bg-white h-auto min-w-300px w-300px xl:w-500px">
+            <h1 className="sr-only">alpha.service.canada.ca</h1>
+            <div className="p-4">
+              <img
+                src={"/sig-blk-en.svg"}
+                alt={"Government of Canada / Gouvernement du Canada"}
+                width="300"
+                height="35"
+              />
+            </div>
+            <div className="flex w-max container mx-auto py-6 font-display">
+              <h2
+                className="text-p text-right xl:text-h4 mr-6 w-32 xl:w-40"
+                lang="en"
+              >
+                Service Canada Labs
+              </h2>
+              <h2 className="text-p xl:text-h4 w-32 xl:w-40" lang="fr">
+                Laboratoires de Service Canada
+              </h2>
+            </div>
+            <div className="flex w-max container pb-6 mx-auto font-display">
+              <ActionButton
+                id="english-button"
+                style="primary"
+                text="English"
+                lang="en"
+                custom="justify-center w-7.5rem xl:w-138px mr-6 text-lg"
+                href="/en/home"
+              />
+              <ActionButton
+                id="french-button"
+                style="primary"
+                text="Français"
+                href="/fr/accueil"
+                lang="fr"
+                custom="justify-center w-7.5rem xl:w-138px text-lg"
+              />
+            </div>
+          </div>
+          <div className="relative py-7 bg-splash-page-bottom text-p h-auto min-w-300px w-300px flex justify-between container p-6 xl:w-500px xl:items-center">
+            <div className="w-28 text-base xl:text-p xl:w-max font-body">
+              <Link
+                href="https://www.canada.ca/en/transparency/terms.html"
+                className="inline-block w-28 xl:w-max mr-0 hover:text-canada-footer-hover-font-blue text-canada-footer-font splash-link"
+              >
+                Terms & conditions
+              </Link>
+              <Link
+                href="https://www.canada.ca/fr/transparence/avis.html"
+                className="inline-block hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                lang="fr"
+              >
+                Avis
+              </Link>
+            </div>
+            <img
+              src="/wmms-blk.svg"
+              alt="Symbol of the Government of Canada / Symbole du gouvernement du Canada"
+              width="150"
+              height="25"
+            />
+          </div>
+        </div>
+      </main>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getServerSideProps = async ({ locale }) => ({
+  props: {
+    locale: locale ?? "en",
+    adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? "",
+    ...(await serverSideTranslations(locale, ["common"])),
+  },
+});
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/notsupported.js.html b/refs/pull/858/merge/coverage/lcov-report/pages/notsupported.js.html new file mode 100644 index 0000000000..cea61437d0 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/notsupported.js.html @@ -0,0 +1,1552 @@ + + + + + + Code coverage report for pages/notsupported.js + + + + + + + + + +
+
+

All files / pages notsupported.js

+
+ +
+ 50% + Statements + 8/16 +
+ + +
+ 47.72% + Branches + 21/44 +
+ + +
+ 40% + Functions + 2/5 +
+ + +
+ 50% + Lines + 8/16 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490  +  +  +  +  +  +  +  +  +  +1x +1x +1x +1x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { useTranslation } from "next-i18next";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { ActionButton } from "../components/atoms/ActionButton";
+import { useEffect } from "react";
+import { CopyToClipboard } from "../components/molecules/CopyToClipboard";
+import { useState } from "react";
+import aemServiceInstance from "../services/aemServiceInstance";
+ 
+export default function notSupported(props) {
+  const { t } = useTranslation("common");
+  const [enCopied, setEnCopied] = useState(false);
+  const [frCopied, setFrCopied] = useState(false);
+  const [pageData] = useState(props.pageData.item);
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  function onClickEn() {
+    setEnCopied(true);
+    setFrCopied(false);
+  }
+ 
+  function onClickFr() {
+    setFrCopied(true);
+    setEnCopied(false);
+  }
+  return (
+    <>
+      <div className="min-h-screen relative">
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* Primary HTML Meta Tags */}
+          <title data-gc-analytics-error="notSupported">
+            {pageData.scContentEn.json[0].content[0].value} |{" "}
+            {pageData.scContentFr.json[0].content[0].value}
+          </title>
+          <meta
+            name="description"
+            content="Error message stating that the site will not work with Internet Explorer."
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta content="width=device-width, initial-scale=1" name="viewport" />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            property="dcterms:title"
+            lang="en"
+            content="Sorry, this site will not work with Internet Explorer"
+          />
+          <meta
+            property="dcterms:title"
+            lang="fr"
+            content="Désolé, ce site ne fonctionne pas avec Internet Explorer"
+          />
+          <meta
+            property="dcterms:description"
+            lang="en"
+            content="Error message stating that the site will not work with Internet Explorer."
+          />
+          <meta
+            property="dcterms:description"
+            lang="fr"
+            content="Message d’erreur indiquant que le site ne fonctionne pas avec Internet Explorer."
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2"
+          />
+          <meta name="dcterms.creator" content="Service Canada" />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta
+            property="dcterms:subject"
+            lang="fr"
+            title="gccore"
+            content="GV Gouvernement et vie politique;Services gouvernementaux"
+          />
+          <meta
+            property="dcterms:subject"
+            lang="en"
+            title="gccore"
+            content="GV Government and Politics;Government services"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-11-25" />
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta property="dcterms:issued" content="2021-11-25" />
+          <meta property="dcterms:modified" content="2021-12-16" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca/" +
+              `${props.locale}` +
+              "/notsupported"
+            }
+          />
+          <meta
+            property="og:title"
+            content={`Browser not supported — ${t("siteTitle")}`}
+          />
+          <meta
+            property="og:description"
+            content="Sorry, this site will not work with Internet Explorer | Désolé, ce
+            site ne fonctionne pas avec Internet Explorer"
+          />
+          <meta property="og:image" content={`${t("metaImage")}`} />
+          <meta property="og:image:alt" content={`${t("siteTitle")}`} />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca/" +
+              `${props.locale}` +
+              "/notsupported"
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={`Browser not supported — ${t("siteTitle")}`}
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content="Sorry, this site will not work with Internet Explorer | Désolé, ce
+            site ne fonctionne pas avec Internet Explorer"
+          />
+          <meta property="twitter:image" content={`${t("metaImage")}`} />
+          <meta property="twitter:image:alt" content={`${t("siteTitle")}`} />
+        </Head>
+        <section className="xs:px-0 lg:mx-auto lg:px-6 container">
+          <div className="pt-6">
+            <img
+              src={`https://www.canada.ca${
+                props.locale === "en"
+                  ? pageData.scGcImages[0].scImageEn._path
+                  : pageData.scGcImages[0].scImageFr._path
+              }`}
+              alt={
+                props.locale === "en"
+                  ? pageData.scGcImages[0].scImageAltTextEn
+                  : pageData.scGcImages[0].scImageAltTextFr
+              }
+              width={575}
+              height={59}
+            />
+          </div>
+          <div className="flex flex-col lg:flex-row justify-between items-center lg:items-start mt-8">
+            <div>
+              <div className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 xl:h-400px lg:h-500px mb-8 lg:mb-0">
+                <h1 className="font-bold font-display mb-4">
+                  {pageData.scContentEn.json[0].content[0].value}
+                </h1>
+                <p className="font-body text-sm mb-4 leading-normal">
+                  {pageData.scContentEn.json[1].content[0].value}
+                </p>
+              </div>
+            </div>
+            <div className="flex items-center justify-center circle-background my-8 lg:mt-0 lightbulb-bg">
+              <span className="relative lightbulb">
+                <img
+                  src={`https://www.canada.ca${
+                    props.locale === "en"
+                      ? pageData.scImageList[0].scImageEn._path
+                      : pageData.scImageList[0].scImageFr._path
+                  }`}
+                  alt=""
+                />
+              </span>
+            </div>
+            <div>
+              <div
+                className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 xl:h-400px lg:h-500px mb-8 lg:mb-0"
+                lang="fr"
+              >
+                <h1 className="font-bold font-display mb-4">
+                  {pageData.scContentFr.json[0].content[0].value}
+                </h1>
+                <p className="font-body text-sm mb-4 leading-normal">
+                  {pageData.scContentFr.json[1].content[0].value}
+                </p>
+              </div>
+            </div>
+          </div>
+        </section>
+        <section className="-mt-0 lg:-mt-36 sm:-mt-4 pb-5">
+          <div className="flex items-center justify-center">
+            <figure className="mx-4">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scImageList[1].scImageEn._path
+                    : pageData.scImageList[1].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scImageList[1].scImageAltTextEn
+                    : pageData.scImageList[1].scImageAltTextFr
+                }
+                width="98"
+                height="98"
+              />
+              <figcaption className="flex items-center justify-center">
+                Chrome
+              </figcaption>
+            </figure>
+            <figure className="mx-4">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scImageList[2].scImageEn._path
+                    : pageData.scImageList[2].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scImageList[2].scImageAltTextEn
+                    : pageData.scImageList[2].scImageAltTextFr
+                }
+                width="98"
+                height="98"
+              />
+              <figcaption className="flex items-center justify-center">
+                Safari
+              </figcaption>
+            </figure>
+            <figure className="mx-4">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scImageList[3].scImageEn._path
+                    : pageData.scImageList[3].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scImageList[3].scImageAltTextEn
+                    : pageData.scImageList[3].scImageAltTextFr
+                }
+                width="94"
+                height="94"
+              />
+              <figcaption className="pt-1.5 flex items-center justify-center">
+                Edge
+              </figcaption>
+            </figure>
+            <figure className="mx-4">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scImageList[4].scImageEn._path
+                    : pageData.scImageList[4].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scImageList[4].scImageAltTextEn
+                    : pageData.scImageList[4].scImageAltTextFr
+                }
+                width="98"
+                height="98"
+              />
+              <figcaption className="flex items-center justify-center">
+                Firefox
+              </figcaption>
+            </figure>
+          </div>
+        </section>
+        <section className="xs:px-0 lg:mx-auto lg:px-6 container pb-44">
+          <div className="flex flex-col lg:flex-row justify-between items-center lg:items-start mt-8">
+            <div className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 mb-8 lg:mb-0">
+              <p className="font-body text-sm mb-4 leading-normal">
+                {pageData.scCopyToClipboardLabelEn}
+              </p>
+              <CopyToClipboard
+                buttonId="enClipboardButton"
+                buttonText={enCopied ? "Copied!" : "Copy link"}
+                buttonStyle={enCopied ? "ieButtonCopied" : "ieButton"}
+                value="http://alpha.service.canada.ca/home"
+                onClick={onClickEn}
+                id="enClipboard"
+                name="clipboard_en"
+                textFieldStyle="ieTextField"
+                aria_label="Copy the link below and paste in that browser."
+              />
+              <p className="font-body text-sm pt-6 leading-normal">
+                {pageData.scBrowserDownloadLinksEn.json[0].content[0].value}
+              </p>
+              <ul className="underline pt-4 font-body text-sm ieLinksList">
+                <li className="browser-item">
+                  <a
+                    href={
+                      pageData.scBrowserDownloadLinksEn.json[1].content[0]
+                        .content[0].data.href
+                    }
+                  >
+                    {
+                      pageData.scBrowserDownloadLinksEn.json[1].content[0]
+                        .content[0].value
+                    }
+                  </a>
+                </li>
+                <li className="browser-item">
+                  <a
+                    href={
+                      pageData.scBrowserDownloadLinksEn.json[1].content[1]
+                        .content[0].data.href
+                    }
+                  >
+                    {
+                      pageData.scBrowserDownloadLinksEn.json[1].content[1]
+                        .content[0].value
+                    }
+                  </a>
+                </li>
+                <li className="browser-item">
+                  <a
+                    href={
+                      pageData.scBrowserDownloadLinksEn.json[1].content[2]
+                        .content[0].data.href
+                    }
+                  >
+                    {
+                      pageData.scBrowserDownloadLinksEn.json[1].content[2]
+                        .content[0].value
+                    }
+                  </a>
+                </li>
+                <li className="browser-item">
+                  <a
+                    href={
+                      pageData.scBrowserDownloadLinksEn.json[1].content[3]
+                        .content[0].data.href
+                    }
+                  >
+                    {
+                      pageData.scBrowserDownloadLinksEn.json[1].content[3]
+                        .content[0].value
+                    }
+                  </a>
+                </li>
+              </ul>
+            </div>
+            <div>
+              <div
+                className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 mb-8 lg:mb-0"
+                lang="fr"
+              >
+                <p className="font-body text-sm mb-4 leading-normal">
+                  {pageData.scCopyToClipboardLabelFr}
+                </p>
+                <CopyToClipboard
+                  buttonText={frCopied ? "Copié!" : "Copier lien"}
+                  buttonId="frClipboardButton"
+                  buttonStyle={frCopied ? "ieButtonCopied" : "ieButton"}
+                  value="http://alpha.service.canada.ca/fr/home"
+                  onClick={onClickFr}
+                  id="frClipboard"
+                  name="clipboard_fr"
+                  textFieldStyle="ieTextField"
+                  aria_label="Vous n'avez qu'à copier le lien ci-dessous et le coller dans ce navigateur."
+                />
+                <p className="font-body text-sm pt-6 leading-normal">
+                  {pageData.scBrowserDownloadLinksFr.json[0].content[0].value}
+                </p>
+                <ul className="underline pt-4 font-body text-sm ieLinksList">
+                  <li className="browser-item">
+                    <a
+                      href={
+                        pageData.scBrowserDownloadLinksFr.json[1].content[0]
+                          .content[0].data.href
+                      }
+                    >
+                      {
+                        pageData.scBrowserDownloadLinksFr.json[1].content[0]
+                          .content[0].value
+                      }
+                    </a>
+                  </li>
+                  <li className="browser-item">
+                    <a
+                      href={
+                        pageData.scBrowserDownloadLinksFr.json[1].content[1]
+                          .content[0].data.href
+                      }
+                    >
+                      {
+                        pageData.scBrowserDownloadLinksFr.json[1].content[1]
+                          .content[0].value
+                      }
+                    </a>
+                  </li>
+                  <li className="browser-item">
+                    <a
+                      href={
+                        pageData.scBrowserDownloadLinksFr.json[1].content[2]
+                          .content[0].data.href
+                      }
+                    >
+                      {
+                        pageData.scBrowserDownloadLinksFr.json[1].content[2]
+                          .content[0].value
+                      }
+                    </a>
+                  </li>
+                  <li className="browser-item">
+                    <a
+                      href={
+                        pageData.scBrowserDownloadLinksFr.json[1].content[3]
+                          .content[0].data.href
+                      }
+                    >
+                      {
+                        pageData.scBrowserDownloadLinksFr.json[1].content[3]
+                          .content[0].value
+                      }
+                    </a>
+                  </li>
+                </ul>
+              </div>
+            </div>
+          </div>
+        </section>
+        <footer className="h-100px w-screen bgGray absolute bottom-0">
+          <div className="layout-container flex justify-between lg:flex-row-reverse pt-4 lg:pt-0 lg:mt-8">
+            <ActionButton
+              id="404TopOfPageButton"
+              href="#"
+              custom="text-left w-32 flex flex-col lg:hidden"
+              text="Top of page / Haut de la page"
+              icon="icon-up-caret"
+              iconEnd
+            />
+            <span className="relative footer-logo">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scGcImages[1].scImageEn._path
+                    : pageData.scGcImages[1].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scGcImages[1].scImageAltTextEn
+                    : pageData.scGcImages[1].scImageAltTextFr
+                }
+              />
+            </span>
+          </div>
+        </footer>
+      </div>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data } = await aemServiceInstance.getFragment("notsupportedQuery");
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      ...(await serverSideTranslations("en", ["common"])),
+      ...(await serverSideTranslations("fr", ["common"])),
+      pageData: data.scLabsErrorPagev1ByPath,
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/projects/benefits-navigator/[id].js.html b/refs/pull/858/merge/coverage/lcov-report/pages/projects/benefits-navigator/[id].js.html new file mode 100644 index 0000000000..3573dd9052 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/projects/benefits-navigator/[id].js.html @@ -0,0 +1,1471 @@ + + + + + + Code coverage report for pages/projects/benefits-navigator/[id].js + + + + + + + + + +
+
+

All files / pages/projects/benefits-navigator [id].js

+
+ +
+ 0% + Statements + 0/19 +
+ + +
+ 0% + Branches + 0/98 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/19 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { useTranslation } from "next-i18next";
+import { Layout } from "../../../components/organisms/Layout";
+import { ActionButton } from "../../../components/atoms/ActionButton";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { getAllUpdateIds } from "../../../lib/utils/getAllUpdateIds";
+import { CTA, Heading } from "@dts-stn/service-canada-design-system";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+ 
+export default function DynamicBenefitNavigatorPage(props) {
+  const [pageData] = useState(props.pageData);
+  const [dictionary] = useState(props.dictionary.items);
+ 
+  useEffect(() => {
+    if (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? `${pageData.scTitleEn} - Service Canada Labs`
+              : `${pageData.scTitleFr} - Laboratoires de Service Canada`}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en"
+                ? pageData.scShortTitleEn
+                : pageData.scShortTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta name="dcterms.creator" content="Service Canada" />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2023-07-07" />
+ 
+          <meta name="dcterms.modified" title="W3CDTF" content="2023-07-07" />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          {/* <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[1].content[0].value
+                : pageData.scFragments[1].scContentFr.json[1].content[0].value
+            }
+          /> */}
+          <meta
+            property="og:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          {/* <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[1].content[0].value
+                : pageData.scFragments[1].scContentFr.json[1].content[0].value
+            }
+          /> */}
+          <meta
+            property="twitter:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+        </Head>
+        <section className="layout-container mb-12">
+          <Heading
+            tabIndex="-1"
+            id="pageMainTitle"
+            title={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <div id="postedOnUpdatedOnSection" className="grid grid-cols-12">
+            <p
+              className={`col-span-6 sm:col-span-4 ${
+                props.locale === "en" ? "lg:col-span-2" : "lg:col-span-3"
+              } font-bold`}
+            >
+              {props.locale === "en"
+                ? dictionary[9].scTermEn
+                : dictionary[9].scTermFr}
+            </p>
+            <p className="col-span-6 col-start-7 sm:col-start-5 lg:col-span-2 md:col-start-5 mt-0">
+              {pageData.scDateModifiedOverwrite}
+            </p>
+            <p
+              className={`row-start-2 col-span-6 sm:col-span-4 mt-0 ${
+                props.locale === "en" ? "lg:col-span-2" : "lg:col-span-3"
+              } font-bold`}
+            >
+              {props.locale === "en"
+                ? dictionary[4].scTermEn
+                : dictionary[4].scTermFr}
+            </p>
+            <p className="row-start-2 col-span-6 col-start-7 sm:col-start-5 lg:col-span-2 md:col-start-5 mt-auto">
+              {pageData.scDateModifiedOverwrite}
+            </p>
+          </div>
+ 
+          {/* Main */}
+          <div id="mainContentSection" className="flex flex-row-reverse mt-12">
+            <div className="hidden md:block">
+              <img
+                src={pageData.scFragments[1].scImageEn._publishUrl}
+                alt=""
+                height={pageData.scFragments[1].scImageEn.height}
+                width={pageData.scFragments[1].scImageEn.width}
+              />
+            </div>
+            <div className="w-[750px] grow">
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[2].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[2].content[0]
+                      .value}
+                <a
+                  className="underline underline-offset-4"
+                  href={
+                    props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[2].content[1]
+                          .data.href
+                      : pageData.scFragments[0].scContentFr.json[2].content[1]
+                          .data.href
+                  }
+                >
+                  {props.locale === "en"
+                    ? pageData.scFragments[0].scContentEn.json[2].content[1]
+                        .value
+                    : pageData.scFragments[0].scContentFr.json[2].content[1]
+                        .value}
+                </a>
+                <span className="text-lg pl-1">
+                  {props.locale === "en"
+                    ? pageData.scFragments[0].scContentEn.json[2].content[2]
+                        .value
+                    : pageData.scFragments[0].scContentFr.json[2].content[2]
+                        .value}
+                </span>
+              </p>
+ 
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[3].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[3].content[0]
+                      .value}
+              </p>
+ 
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[4].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[4].content[0]
+                      .value}
+              </p>
+ 
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[5].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[5].content[0]
+                      .value}
+              </p>
+ 
+              <h2>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[6].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[6].content[0]
+                      .value}
+              </h2>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[7].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[7].content[0]
+                      .value}
+              </p>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[8].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[8].content[0]
+                      .value}
+              </p>
+ 
+              <h2>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[9].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[9].content[0]
+                      .value}
+              </h2>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[10].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[10].content[0]
+                      .value}
+              </p>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[11].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[11].content[0]
+                      .value}
+              </p>
+ 
+              <h2>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[12].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[12].content[0]
+                      .value}
+              </h2>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[13].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[13].content[0]
+                      .value}
+              </p>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[14].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[14].content[0]
+                      .value}
+              </p>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[15].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[15].content[0]
+                      .value}
+              </p>
+ 
+              <h2>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[16].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[16].content[0]
+                      .value}
+              </h2>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[17].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[17].content[0]
+                      .value}
+              </p>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[18].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[18].content[0]
+                      .value}
+              </p>
+              <ul>
+                <li>
+                  {props.locale === "en"
+                    ? pageData.scFragments[0].scContentEn.json[19].content[0]
+                        .content[0].value
+                    : pageData.scFragments[0].scContentFr.json[19].content[0]
+                        .content[0].value}
+                </li>
+                <li>
+                  {props.locale === "en"
+                    ? pageData.scFragments[0].scContentEn.json[19].content[1]
+                        .content[0].value
+                    : pageData.scFragments[0].scContentFr.json[19].content[1]
+                        .content[0].value}
+                </li>
+                <li>
+                  {props.locale === "en"
+                    ? pageData.scFragments[0].scContentEn.json[19].content[2]
+                        .content[0].value
+                    : pageData.scFragments[0].scContentFr.json[19].content[2]
+                        .content[0].value}
+                </li>
+              </ul>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[20].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[20].content[0]
+                      .value}
+              </p>
+            </div>
+          </div>
+        </section>
+      </Layout>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export async function getStaticPaths() {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "benefitsNavigatorArticlesQuery"
+  );
+  // Get paths for dynamic routes from the page name data
+  const paths = getAllUpdateIds(data.scLabsPagev1List.items);
+  paths.map((path) => {
+    path.locale === "en"
+      ? (path.params.id = path.params.id.slice(32))
+      : (path.params.id = path.params.id.slice(35));
+  });
+  return {
+    paths,
+    fallback: false,
+  };
+}
+ 
+export const getStaticProps = async ({ locale, params }) => {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "benefitsNavigatorArticlesQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  const pages = data.scLabsPagev1List.items;
+  // Return page data that matches the current page being built
+  const pageData = pages.filter((page) => {
+    return (
+      page.scPageNameEn.slice(32) === params.id ||
+      page.scPageNameFr.slice(35) === params.id
+    );
+  });
+ 
+  return {
+    props: {
+      locale: locale,
+      pageData: pageData[0],
+      dictionary: dictionary.dictionaryV1List,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      ...(await serverSideTranslations(locale, ["common", "vc"])),
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.html b/refs/pull/858/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.html new file mode 100644 index 0000000000..c630ffcd84 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for pages/projects/benefits-navigator + + + + + + + + + +
+
+

All files pages/projects/benefits-navigator

+
+ +
+ 0% + Statements + 0/52 +
+ + +
+ 0% + Branches + 0/270 +
+ + +
+ 0% + Functions + 0/14 +
+ + +
+ 0% + Lines + 0/52 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
[id].js +
+
0%0/190%0/980%0/60%0/19
index.js +
+
0%0/330%0/1720%0/80%0/33
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.js.html b/refs/pull/858/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.js.html new file mode 100644 index 0000000000..322d4e6d90 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.js.html @@ -0,0 +1,2491 @@ + + + + + + Code coverage report for pages/projects/benefits-navigator/index.js + + + + + + + + + +
+
+

All files / pages/projects/benefits-navigator index.js

+
+ +
+ 0% + Statements + 0/33 +
+ + +
+ 0% + Branches + 0/172 +
+ + +
+ 0% + Functions + 0/8 +
+ + +
+ 0% + Lines + 0/33 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656 +657 +658 +659 +660 +661 +662 +663 +664 +665 +666 +667 +668 +669 +670 +671 +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684 +685 +686 +687 +688 +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733 +734 +735 +736 +737 +738 +739 +740 +741 +742 +743 +744 +745 +746 +747 +748 +749 +750 +751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767 +768 +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790 +791 +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { ActionButton } from "../../../components//atoms/ActionButton";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { ProjectInfo } from "../../../components/atoms/ProjectInfo";
+import { CTA, Collapse } from "@dts-stn/service-canada-design-system";
+import { Heading } from "@dts-stn/service-canada-design-system";
+import Card from "../../../components/molecules/Card";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+ 
+export default function OasBenefitsEstimator(props) {
+  const [pageData] = useState(props.pageData.item);
+  const [updatesData] = useState(props.updatesData);
+  const [filteredDictionary] = useState(
+    props.dictionary.items.filter(
+      (item) =>
+        item.scId === "STARTED" ||
+        item.scId === "ENDED" ||
+        item.scId === "PROJECT-STAGE" ||
+        item.scId === "SUMMARY"
+    )
+  );
+  const stageDictionary = {
+    en: {
+      "gc:custom/decd-endc/project-stage/alpha": "Alpha",
+      "gc:custom/decd-endc/project-stage/beta": "Beta",
+    },
+    fr: {
+      "gc:custom/decd-endc/project-stage/alpha": "Alpha",
+      "gc:custom/decd-endc/project-stage/beta": "Bêta",
+    },
+  };
+ 
+  function generateReactElements(json) {
+    const elements = [];
+ 
+    for (const item of json) {
+      if (item.nodeType === "paragraph") {
+        elements.push(
+          <p key={elements.length}>{generateReactElements(item.content)}</p>
+        );
+      } else if (item.nodeType === "unordered-list") {
+        const listItems = item.content.map((listItem, index) => (
+          <li key={index} className="my-0">
+            {generateReactElements(listItem.content)}
+          </li>
+        ));
+        elements.push(
+          <ul key={elements.length} className="mb-0">
+            {listItems}
+          </ul>
+        );
+      } else if (item.nodeType === "ordered-list") {
+        const listItems = item.content.map((listItem, index) => (
+          <li key={index} className="my-0">
+            {generateReactElements(listItem.content)}
+          </li>
+        ));
+        elements.push(
+          <ol key={elements.length} className="mb-0">
+            {listItems}
+          </ol>
+        );
+      } else if (item.nodeType === "list-item") {
+        elements.push(
+          <li key={elements.length} className="my-0">
+            {generateReactElements(item.content)}
+          </li>
+        );
+      } else if (item.nodeType === "text") {
+        elements.push(item.value);
+      }
+    }
+ 
+    return elements;
+  }
+ 
+  const displayProjectUpdates = updatesData.map((update) => (
+    <li key={update.scId} className="list-none ml-0 col-span-12 lg:col-span-4">
+      <Card
+        showImage
+        imgSrc={
+          props.locale === "en"
+            ? `https://www.canada.ca${update.scSocialMediaImageEn._path}`
+            : `https://www.canada.ca${update.scSocialMediaImageFr._path}`
+        }
+        imgAlt={
+          props.locale === "en"
+            ? update.scSocialMediaImageAltTextEn
+            : update.scSocialMediaImageAltTextFr
+        }
+        title={props.locale === "en" ? update.scTitleEn : update.scTitleFr}
+        href={props.locale === "en" ? update.scPageNameEn : update.scPageNameFr}
+        description={`${
+          props.locale === "en"
+            ? props.dictionary.items[9].scTermEn
+            : props.dictionary.items[9].scTermFr
+        } ${update.scDateModifiedOverwrite}`}
+      />
+    </li>
+  ));
+ 
+  useEffect(() => {
+    if (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? `${pageData.scTitleEn} - Service Canada Labs`
+              : `${pageData.scTitleFr} - Laboratoires de Service Canada`}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link
+            rel="canonical"
+            href={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en"
+                ? pageData.scShortTitleEn
+                : pageData.scShortTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta name="dcterms.creator" content="Service Canada" />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-07-20" />
+ 
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="og:image"
+            content={pageData.scFragments[0].scImageEn._publishUrl}
+          />
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scImageAltTextEn
+                : pageData.scFragments[0].scImageAltTextFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="twitter:image"
+            content={pageData.scFragments[0].scImageEn._publishUrl}
+          />
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scImageAltTextEn
+                : pageData.scFragments[0].scImageAltTextFr
+            }
+          />
+        </Head>
+ 
+        <div className="layout-container">
+          <section aria-labelledby="pageMainTitle">
+            <div className="flex flex-col break-words lg:grid lg:grid-cols-2">
+              <div className="col-span-2">
+                <Heading
+                  tabIndex="-1"
+                  id="pageMainTitle"
+                  title={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scContentEn.json[0].content[0]
+                          .value
+                      : pageData.scFragments[2].scContentFr.json[0].content[0]
+                          .value
+                  }
+                />
+              </div>
+              <div className="hidden lg:grid row-span-2 row-start-2 col-start-2 p-0 mx-4">
+                <div className="flex justify-center">
+                  <div className="object-fill max-w-350px">
+                    <img
+                      src={
+                        props.locale === "en"
+                          ? pageData.scFragments[0].scImageEn._publishUrl
+                          : pageData.scFragments[0].scImageFr._publishUrl
+                      }
+                      alt={
+                        props.locale === "en"
+                          ? pageData.scFragments[0].scImageAltTextEn
+                          : pageData.scFragments[0].scImageAltTextFr
+                      }
+                      width={468}
+                      height={462}
+                    />
+                  </div>
+                </div>
+              </div>
+              <p className="row-start-2 font-body text-lg mb-4">
+                {props.locale === "en"
+                  ? pageData.scFragments[2].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[2].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <div className="row-start-3">
+                <ProjectInfo
+                  locale={props.locale}
+                  termStarted={
+                    props.locale === "en"
+                      ? filteredDictionary[2].scTermEn
+                      : filteredDictionary[2].scTermFr
+                  }
+                  termStage={
+                    props.locale === "en"
+                      ? filteredDictionary[1].scTermEn
+                      : filteredDictionary[1].scTermFr
+                  }
+                  termSummary={
+                    props.locale === "en"
+                      ? filteredDictionary[3].scTermEn
+                      : filteredDictionary[3].scTermFr
+                  }
+                  dateStarted={
+                    pageData.scFragments[2].scContentEn.json[2].content[0].value
+                  }
+                  term={
+                    props.locale === "en"
+                      ? pageData.scFragments[1].scContentEn.json[0].content[0]
+                          .value + " "
+                      : pageData.scFragments[1].scContentFr.json[0].content[0]
+                          .value + " "
+                  }
+                  definition={
+                    props.locale === "en"
+                      ? pageData.scFragments[1].scContentEn.json[0].content[1]
+                          .value
+                      : pageData.scFragments[1].scContentFr.json[0].content[1]
+                          .value
+                  }
+                  information={
+                    props.locale === "en"
+                      ? pageData.scFragments[1].scTitleEn
+                      : pageData.scFragments[1].scTitleFr
+                  }
+                  stage={
+                    props.locale === "en"
+                      ? stageDictionary.en[pageData.scLabProjectStage]
+                      : stageDictionary.fr[pageData.scLabProjectStage]
+                  }
+                  summary={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scContentEn.json[4].content[0]
+                          .value
+                      : pageData.scFragments[2].scContentFr.json[4].content[0]
+                          .value
+                  }
+                />
+              </div>
+            </div>
+          </section>
+          <div className="grid grid-cols-12">
+            <h2 className="col-span-12">
+              {props.locale === "en"
+                ? pageData.scFragments[3].scContentEn.json[0].content[0].value
+                : pageData.scFragments[3].scContentFr.json[0].content[0].value}
+            </h2>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[3].scContentEn.json[1].content[0].value
+                : pageData.scFragments[3].scContentFr.json[1].content[0].value}
+            </p>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[3].scContentEn.json[2].content[0].value
+                : pageData.scFragments[3].scContentFr.json[2].content[0].value}
+            </p>
+            <ul className="col-span-12 xl:col-span-8">
+              <li>
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[3].content[0]
+                      .content[0].value
+                  : pageData.scFragments[3].scContentFr.json[3].content[0]
+                      .content[0].value}
+              </li>
+              <li>
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[3].content[1]
+                      .content[0].value
+                  : pageData.scFragments[3].scContentFr.json[3].content[1]
+                      .content[0].value}
+              </li>
+              <li>
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[3].content[2]
+                      .content[0].value
+                  : pageData.scFragments[3].scContentFr.json[3].content[2]
+                      .content[0].value}
+              </li>
+            </ul>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[3].scContentEn.json[4].content[0].value
+                : pageData.scFragments[3].scContentFr.json[4].content[0].value}
+            </p>
+            <div id="feature-section" className="col-span-12">
+              <h2 className="col-span-12">
+                {props.locale === "en"
+                  ? pageData.scFragments[4].scContentEn.json[0].content[0].value
+                  : pageData.scFragments[4].scContentFr.json[0].content[0]
+                      .value}
+              </h2>
+              <div id="feature-1" className="grid grid-cols-12 gap-x-6 mb-9">
+                <div className="mb-6 object-fill col-span-12 row-start-1 xl:row-start-1 xl:col-span-8">
+                  <img
+                    src={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scImageEn._publishUrl
+                        : pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scImageFr._publishUrl
+                    }
+                    alt={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scImageAltTextEn
+                        : pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scImageAltTextFr
+                    }
+                    className="w-full"
+                  />
+                </div>
+                <div className="col-span-12 row-start-3 xl:col-span-4 xl:row-start-1">
+                  <div className="py-4 pl-4 border-l-4 border-multi-blue-blue60f">
+                    <h3 className="mb-2">
+                      {props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[0].scContentEn
+                            .json[0].content[0].value
+                        : pageData.scFragments[4].scFragments[0].scContentFr
+                            .json[0].content[0].value}
+                    </h3>
+                    <p>
+                      {props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[0].scContentEn
+                            .json[1].content[0].value
+                        : pageData.scFragments[4].scFragments[0].scContentFr
+                            .json[1].content[0].value}
+                    </p>
+                    <ul>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[0].scContentEn
+                              .json[2].content[0].content[0].value
+                          : pageData.scFragments[4].scFragments[0].scContentFr
+                              .json[2].content[0].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[0].scContentEn
+                              .json[2].content[1].content[0].value
+                          : pageData.scFragments[4].scFragments[0].scContentFr
+                              .json[2].content[1].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[0].scContentEn
+                              .json[2].content[2].content[0].value
+                          : pageData.scFragments[4].scFragments[0].scContentFr
+                              .json[2].content[2].content[0].value}
+                      </li>
+                    </ul>
+                  </div>
+                </div>
+                <div className="mb-6 col-span-12 xl:col-span-8 row-start-2 xl:row-start-2">
+                  <Collapse
+                    id="image-text-collapse-1"
+                    title={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scLongDescHeadingEn
+                        : pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scLongDescHeadingFr
+                    }
+                    children={generateReactElements(
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scLongDescEn.json
+                        : pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scLongDescFr.json
+                    )}
+                  />
+                </div>
+              </div>
+              <div id="feature-2" className="grid grid-cols-12 gap-x-6 mb-9">
+                <div className="mb-6 object-fill col-span-12 row-start-1 xl:row-start-1 xl:col-span-8">
+                  <img
+                    src={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scImageEn._publishUrl
+                        : pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scImageFr._publishUrl
+                    }
+                    alt={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scImageAltTextEn
+                        : pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scImageAltTextFr
+                    }
+                    className="w-full"
+                  />
+                </div>
+                <div className="col-span-12 row-start-3 xl:col-span-4 xl:row-start-1">
+                  <div className="p-4 border-l-4 border-multi-blue-blue60f">
+                    <h3 className="mb-2">
+                      {props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[1].scContentEn
+                            .json[0].content[0].value
+                        : pageData.scFragments[4].scFragments[1].scContentFr
+                            .json[0].content[0].value}
+                    </h3>
+                    <p>
+                      {props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[1].scContentEn
+                            .json[1].content[0].value
+                        : pageData.scFragments[4].scFragments[1].scContentFr
+                            .json[1].content[0].value}
+                    </p>
+                    <ul>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[1].scContentEn
+                              .json[2].content[0].content[0].value
+                          : pageData.scFragments[4].scFragments[1].scContentFr
+                              .json[2].content[0].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[1].scContentEn
+                              .json[2].content[1].content[0].value
+                          : pageData.scFragments[4].scFragments[1].scContentFr
+                              .json[2].content[1].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[1].scContentEn
+                              .json[2].content[2].content[0].value
+                          : pageData.scFragments[4].scFragments[1].scContentFr
+                              .json[2].content[2].content[0].value}
+                      </li>
+                    </ul>
+                  </div>
+                </div>
+                <div className="mb-6 col-span-12 xl:col-span-8 row-start-2 xl:row-start-2">
+                  <Collapse
+                    id="image-text-collapse-2"
+                    title={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scLongDescHeadingEn
+                        : pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scLongDescHeadingFr
+                    }
+                    children={generateReactElements(
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scLongDescEn.json
+                        : pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scLongDescFr.json
+                    )}
+                  />
+                </div>
+              </div>
+              <div id="feature-3" className="grid grid-cols-12 gap-x-6">
+                <div className="mb-6 object-fill col-span-12 row-start-1 xl:row-start-1 xl:col-span-8">
+                  <img
+                    src={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scImageEn._publishUrl
+                        : pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scImageFr._publishUrl
+                    }
+                    alt={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scImageAltTextEn
+                        : pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scImageAltTextFr
+                    }
+                    className="w-full"
+                  />
+                </div>
+                <div className="col-span-12 row-start-3 xl:col-span-4 xl:row-start-1">
+                  <div className="p-4 border-l-4 border-multi-blue-blue60f">
+                    <h3 className="mb-2">
+                      {props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[2].scContentEn
+                            .json[0].content[0].value
+                        : pageData.scFragments[4].scFragments[2].scContentFr
+                            .json[0].content[0].value}
+                    </h3>
+                    <p>
+                      {props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[2].scContentEn
+                            .json[1].content[0].value
+                        : pageData.scFragments[4].scFragments[2].scContentFr
+                            .json[1].content[0].value}
+                    </p>
+                    <ul>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[2].scContentEn
+                              .json[2].content[0].content[0].value
+                          : pageData.scFragments[4].scFragments[2].scContentFr
+                              .json[2].content[0].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[2].scContentEn
+                              .json[2].content[1].content[0].value
+                          : pageData.scFragments[4].scFragments[2].scContentFr
+                              .json[2].content[1].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[2].scContentEn
+                              .json[2].content[2].content[0].value
+                          : pageData.scFragments[4].scFragments[2].scContentFr
+                              .json[2].content[2].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[2].scContentEn
+                              .json[2].content[3].content[0].value
+                          : pageData.scFragments[4].scFragments[2].scContentFr
+                              .json[2].content[3].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[2].scContentEn
+                              .json[2].content[4].content[0].value
+                          : pageData.scFragments[4].scFragments[2].scContentFr
+                              .json[2].content[4].content[0].value}
+                      </li>
+                    </ul>
+                  </div>
+                </div>
+                <div className="mb-6 col-span-12 xl:col-span-8 row-start-2 xl:row-start-2">
+                  <Collapse
+                    id="image-text-collapse-3"
+                    title={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scLongDescHeadingEn
+                        : pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scLongDescHeadingFr
+                    }
+                    children={generateReactElements(
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scLongDescEn.json
+                        : pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scLongDescFr.json
+                    )}
+                  />
+                </div>
+              </div>
+            </div>
+            <section
+              id="BENEFITS-NAVIGATOR-HELP-DESIGN"
+              className="grid grid-cols-12 col-span-12"
+            >
+              <h2 className="col-span-12">
+                {props.locale === "en"
+                  ? pageData.scFragments[5].scContentEn.json[0].content[0].value
+                  : pageData.scFragments[5].scContentFr.json[0].content[0]
+                      .value}
+              </h2>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[5].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[5].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[5].scContentEn.json[2].content[0].value
+                  : pageData.scFragments[5].scContentFr.json[2].content[0]
+                      .value}
+                <a
+                  className="underline underline-offset-4"
+                  href={`mailto:${pageData.scFragments[5].scContentEn.json[2].content[1].value}`}
+                >
+                  {pageData.scFragments[5].scContentEn.json[2].content[1].value}
+                </a>
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[5].scContentEn.json[3].content[0].value
+                  : pageData.scFragments[5].scContentFr.json[3].content[0]
+                      .value}
+              </p>
+            </section>
+          </div>
+ 
+          {/* Todo: add locale files and use i18next for translations */}
+          <h2>
+            {props.locale === "en"
+              ? "Project updates"
+              : "Mises à jour du projet"}
+          </h2>
+          <ul className="grid lg:grid-cols-12 gap-x-4 lg:gap-y-12 list-none ml-0">
+            {displayProjectUpdates}
+          </ul>
+        </div>
+ 
+        {/* <CTA
+          heading={
+            props.locale === "en"
+              ? pageData.scFragments[6].scTitleEn
+              : pageData.scFragments[6].scTitleFr
+          }
+          body={
+            props.locale === "en"
+              ? pageData.scFragments[6].scContentEn.json[0].content[0].value
+              : pageData.scFragments[6].scContentFr.json[0].content[0].value
+          }
+          ButtonProps={{
+            id: "cta-btn",
+            text:
+              props.locale === "en"
+                ? pageData.scFragments[6].scLabsButton[0].scTitleEn
+                : pageData.scFragments[6].scLabsButton[0].scTitleFr,
+            href:
+              props.locale === "en"
+                ? pageData.scFragments[6].scLabsButton[0].scDestinationURLEn
+                : pageData.scFragments[6].scLabsButton[0].scDestinationURLFr,
+            className:
+              "w-fit bg-[#26374A] mt-4 text-white visited:text-white hover:bg-[#1C578A] hover:no-underline hover:text-white active:bg-[#16446C]",
+          }}
+          containerClass="layout-container my-4"
+        /> */}
+      </Layout>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  // get page data from AEM
+  const { data: pageData } = await aemServiceInstance.getFragment(
+    "benefitsNavigatorQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      pageData: pageData.scLabsPagev1ByPath,
+      updatesData: pageData.scLabsPagev1ByPath.item.scLabProjectUpdates,
+      dictionary: dictionary.dictionaryV1List,
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    // revalidate: 10,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/projects/dashboard/index.html b/refs/pull/858/merge/coverage/lcov-report/pages/projects/dashboard/index.html new file mode 100644 index 0000000000..5a40f3604d --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/projects/dashboard/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for pages/projects/dashboard + + + + + + + + + +
+
+

All files pages/projects/dashboard

+
+ +
+ 0% + Statements + 0/13 +
+ + +
+ 0% + Branches + 0/92 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/13 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.js +
+
0%0/130%0/920%0/40%0/13
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/projects/dashboard/index.js.html b/refs/pull/858/merge/coverage/lcov-report/pages/projects/dashboard/index.js.html new file mode 100644 index 0000000000..eaca2da9de --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/projects/dashboard/index.js.html @@ -0,0 +1,1402 @@ + + + + + + Code coverage report for pages/projects/dashboard/index.js + + + + + + + + + +
+
+

All files / pages/projects/dashboard index.js

+
+ +
+ 0% + Statements + 0/13 +
+ + +
+ 0% + Branches + 0/92 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/13 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { ActionButton } from "../../../components//atoms/ActionButton";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { ProjectInfo } from "../../../components/atoms/ProjectInfo";
+import { CTA } from "@dts-stn/service-canada-design-system";
+import { Heading } from "@dts-stn/service-canada-design-system";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+ 
+export default function MscaDashboard(props) {
+  const [pageData] = useState(props.pageData.item);
+  const [filteredDictionary] = useState(
+    props.dictionary.items.filter(
+      (item) =>
+        item.scId === "STARTED" ||
+        item.scId === "ENDED" ||
+        item.scId === "PROJECT-STAGE" ||
+        item.scId === "SUMMARY"
+    )
+  );
+  const stageDictionary = {
+    en: {
+      "gc:custom/decd-endc/project-stage/alpha": "Alpha",
+      "gc:custom/decd-endc/project-stage/beta": "Beta",
+    },
+    fr: {
+      "gc:custom/decd-endc/project-stage/alpha": "Alpha",
+      "gc:custom/decd-endc/project-stage/beta": "Bêta",
+    },
+  };
+ 
+  useEffect(() => {
+    if (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? `${pageData.scTitleEn} - Service Canada Labs`
+              : `${pageData.scTitleFr} - Laboratoires de Service Canada`}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link
+            rel="canonical"
+            href={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en"
+                ? pageData.scShortTitleEn
+                : pageData.scShortTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta name="dcterms.creator" content="Service Canada" />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-07-20" />
+ 
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[0].content[0].value
+                : pageData.scFragments[0].scContentFr.json[0].content[0].value
+            }
+          />
+          {/* <meta
+            property="og:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          /> */}
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                : pageData.scFragments[0].scContentFr.json[1].content[0].value
+            }
+          />
+          {/* <meta
+            property="twitter:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          /> */}
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+        </Head>
+ 
+        <div className="layout-container">
+          <section aria-labelledby="pageMainTitle">
+            <div className="flex flex-col break-words lg:grid lg:grid-cols-2">
+              <div className="col-span-2">
+                <Heading
+                  tabIndex="-1"
+                  id="pageMainTitle"
+                  title={
+                    props.locale === "en"
+                      ? pageData.scTitleEn
+                      : pageData.scTitleFr
+                  }
+                />
+              </div>
+              <div className="hidden lg:grid row-span-2 row-start-2 col-start-2 p-0 mx-4">
+                <div className="flex justify-center">
+                  <div className="object-fill h-auto w-auto max-w-450px">
+                    <img
+                      src={
+                        props.locale === "en"
+                          ? pageData.scFragments[1].scImageEn._publishUrl
+                          : pageData.scFragments[1].scImageFr._publishUrl
+                      }
+                      alt={
+                        (props.locale === "en"
+                          ? pageData.scFragments[1].scImageAltTextEn
+                          : pageData.scFragments[1].scImageAltTextFr) ?? ""
+                      }
+                      width={468}
+                      height={462}
+                    />
+                  </div>
+                </div>
+              </div>
+              <p className="row-start-2 font-body text-lg mb-4">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <div className="row-start-3">
+                <ProjectInfo
+                  locale={props.locale}
+                  termStarted={
+                    props.locale === "en"
+                      ? filteredDictionary[2].scTermEn
+                      : filteredDictionary[2].scTermFr
+                  }
+                  termStage={
+                    props.locale === "en"
+                      ? filteredDictionary[1].scTermEn
+                      : filteredDictionary[1].scTermFr
+                  }
+                  termSummary={
+                    props.locale === "en"
+                      ? filteredDictionary[3].scTermEn
+                      : filteredDictionary[3].scTermFr
+                  }
+                  dateStarted={
+                    pageData.scFragments[0].scContentEn.json[2].content[0].value
+                  }
+                  term={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scContentEn.json[0].content[0]
+                          .value
+                      : pageData.scFragments[2].scContentFr.json[0].content[0]
+                          .value
+                  }
+                  definition={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scContentEn.json[0].content[1]
+                          .value
+                      : pageData.scFragments[2].scContentFr.json[0].content[1]
+                          .value
+                  }
+                  information={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scTitleEn
+                      : pageData.scFragments[2].scTitleFr
+                  }
+                  stage={
+                    props.locale === "en"
+                      ? stageDictionary.en[pageData.scLabProjectStage]
+                      : stageDictionary.fr[pageData.scLabProjectStage]
+                  }
+                  summary={
+                    props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[4].content[0]
+                          .value
+                      : pageData.scFragments[0].scContentFr.json[4].content[0]
+                          .value
+                  }
+                />
+              </div>
+            </div>
+          </section>
+          <section id="pageMainContent">
+            <div className="grid grid-cols-12">
+              <h2 className="col-span-12">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[0].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[0].content[0]
+                      .value}
+              </h2>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <h2 className="col-span-12">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[2].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[2].content[0]
+                      .value}
+              </h2>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[3].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[3].content[0]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[4].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[4].content[0]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[5].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[5].content[0]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[6].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[6].content[0]
+                      .value}
+              </p>
+              <h2 className="col-span-12">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[7].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[7].content[0]
+                      .value}
+              </h2>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[8].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[8].content[0]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[9].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[9].content[0]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[10].content[0]
+                      .value
+                  : pageData.scFragments[3].scContentFr.json[10].content[0]
+                      .value}
+              </p>
+            </div>
+          </section>
+        </div>
+        {/* <CTA
+          heading={
+            props.locale === "en"
+              ? pageData.scFragments[6].scTitleEn
+              : pageData.scFragments[6].scTitleFr
+          }
+          body={
+            props.locale === "en"
+              ? pageData.scFragments[6].scContentEn.json[0].content[0].value
+              : pageData.scFragments[6].scContentFr.json[0].content[0].value
+          }
+          ButtonProps={{
+            id: "cta-btn",
+            text:
+              props.locale === "en"
+                ? pageData.scFragments[6].scLabsButton[0].scTitleEn
+                : pageData.scFragments[6].scLabsButton[0].scTitleFr,
+            href:
+              props.locale === "en"
+                ? pageData.scFragments[6].scLabsButton[0].scDestinationURLEn
+                : pageData.scFragments[6].scLabsButton[0].scDestinationURLFr,
+            className:
+              "w-fit bg-[#26374A] mt-4 text-white visited:text-white hover:bg-[#1C578A] hover:no-underline hover:text-white active:bg-[#16446C]",
+          }}
+          containerClass="layout-container my-4"
+        /> */}
+      </Layout>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  // get page data from AEM
+  const { data: pageData } = await aemServiceInstance.getFragment(
+    "mscadPageQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      pageData: pageData.scLabsPagev1ByPath,
+      dictionary: dictionary.dictionaryV1List,
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    // revalidate: 10,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/[id].js.html b/refs/pull/858/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/[id].js.html new file mode 100644 index 0000000000..ac107a62be --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/[id].js.html @@ -0,0 +1,1564 @@ + + + + + + Code coverage report for pages/projects/oas-benefits-estimator/[id].js + + + + + + + + + +
+
+

All files / pages/projects/oas-benefits-estimator [id].js

+
+ +
+ 0% + Statements + 0/20 +
+ + +
+ 0% + Branches + 0/120 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/20 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { useTranslation } from "next-i18next";
+import { Layout } from "../../../components/organisms/Layout";
+import { ActionButton } from "../../../components/atoms/ActionButton";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { getAllUpdateIds } from "../../../lib/utils/getAllUpdateIds";
+import { CTA, Heading } from "@dts-stn/service-canada-design-system";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+ 
+export default function OASUpdatePage(props) {
+  const { t } = useTranslation("common");
+  const [pageData] = useState(props.pageData);
+  const [dictionary] = useState(props.dictionary.items);
+ 
+  useEffect(() => {
+    if (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? `${pageData.scTitleEn} - Service Canada Labs`
+              : `${pageData.scTitleFr} - Laboratoires de Service Canada`}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en"
+                ? pageData.scShortTitleEn
+                : pageData.scShortTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta name="dcterms.creator" content="Service Canada" />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2023-07-07" />
+ 
+          <meta name="dcterms.modified" title="W3CDTF" content="2023-07-07" />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[1].content[0].value
+                : pageData.scFragments[1].scContentFr.json[1].content[0].value
+            }
+          />
+          <meta
+            property="og:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[1].content[0].value
+                : pageData.scFragments[1].scContentFr.json[1].content[0].value
+            }
+          />
+          <meta
+            property="twitter:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+        </Head>
+        <section className="layout-container mb-12">
+          <Heading
+            tabIndex="-1"
+            id="pageMainTitle"
+            title={
+              props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[0].content[0].value
+                : pageData.scFragments[1].scContentFr.json[0].content[0].value
+            }
+          />
+          <div id="postedOnUpdatedOnSection" className="grid grid-cols-12">
+            <p
+              className={`col-span-6 sm:col-span-4 ${
+                props.locale === "en" ? "lg:col-span-2" : "lg:col-span-3"
+              } font-bold`}
+            >
+              {props.locale === "en"
+                ? dictionary[9].scTermEn
+                : dictionary[9].scTermFr}
+            </p>
+            <p className="col-span-6 col-start-7 sm:col-start-5 lg:col-span-2 md:col-start-5 mt-0">
+              {pageData.scDateModifiedOverwrite}
+            </p>
+            <p
+              className={`row-start-2 col-span-6 sm:col-span-4 mt-0 ${
+                props.locale === "en" ? "lg:col-span-2" : "lg:col-span-3"
+              } font-bold`}
+            >
+              {props.locale === "en"
+                ? dictionary[4].scTermEn
+                : dictionary[4].scTermFr}
+            </p>
+            <p className="row-start-2 col-span-6 col-start-7 sm:col-start-5 lg:col-span-2 md:col-start-5 mt-auto">
+              {pageData.scDateModifiedOverwrite}
+            </p>
+          </div>
+          <div
+            id="mainContentSection"
+            className="grid grid-cols-12 pt-16 gap-x-2"
+          >
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[1].content[0].value
+                : pageData.scFragments[1].scContentFr.json[1].content[0].value}
+            </p>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[2].content[0].value
+                : pageData.scFragments[1].scContentFr.json[2].content[0].value}
+            </p>
+            <div className="hidden lg:grid col-start-9 col-span-4 row-start-1 row-span-2">
+              <div className="flex justify-center">
+                <div className="h-auto max-w-xs">
+                  <img
+                    src={
+                      props.locale === "en"
+                        ? pageData.scFragments[0].scImageEn._publishUrl
+                        : pageData.scFragments[0].scImageFr._publishUrl
+                    }
+                    alt={
+                      props.locale === "en"
+                        ? pageData.scFragments[0].scImageAltTextEn
+                        : pageData.scFragments[0].scImageAltTextFr
+                    }
+                    width={468}
+                    height={462}
+                  />
+                </div>
+              </div>
+            </div>
+            <h2 className="col-span-12">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[3].content[0].value
+                : pageData.scFragments[1].scContentFr.json[3].content[0].value}
+            </h2>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[4].content[0].value
+                : pageData.scFragments[1].scContentFr.json[4].content[0].value}
+            </p>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[5].content[0].value
+                : pageData.scFragments[1].scContentFr.json[5].content[0].value}
+            </p>
+            <ul className="col-span-12 lg:col-span-8">
+              <li>
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[6].content[0]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[6].content[0]
+                      .content[0].value}
+              </li>
+              <li>
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[6].content[1]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[6].content[1]
+                      .content[0].value}
+              </li>
+              <li>
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[6].content[2]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[6].content[2]
+                      .content[0].value}
+              </li>
+            </ul>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[7].content[0].value
+                : pageData.scFragments[1].scContentFr.json[7].content[0].value}
+            </p>
+            <h2 className="col-span-12">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[8].content[0].value
+                : pageData.scFragments[1].scContentFr.json[8].content[0].value}
+            </h2>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[9].content[0].value
+                : pageData.scFragments[1].scContentFr.json[9].content[0].value}
+            </p>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[10].content[0].value
+                : pageData.scFragments[1].scContentFr.json[10].content[0].value}
+            </p>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[11].content[0].value
+                : pageData.scFragments[1].scContentFr.json[11].content[0].value}
+            </p>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[12].content[0].value
+                : pageData.scFragments[1].scContentFr.json[12].content[0].value}
+            </p>
+            <h2 className="col-span-12">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[13].content[0].value
+                : pageData.scFragments[1].scContentFr.json[13].content[0].value}
+            </h2>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[14].content[0].value
+                : pageData.scFragments[1].scContentFr.json[14].content[0].value}
+            </p>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[15].content[0].value
+                : pageData.scFragments[1].scContentFr.json[15].content[0].value}
+            </p>
+            <ul className="col-span-12 lg:col-span-8">
+              <li className="text-[20px]">
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[16].content[0]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[16].content[0]
+                      .content[0].value}
+              </li>
+              <li className="text-[20px]">
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[16].content[1]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[16].content[1]
+                      .content[0].value}
+              </li>
+            </ul>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[17].content[0].value
+                : pageData.scFragments[1].scContentFr.json[17].content[0].value}
+            </p>
+            <ul className="col-span-12 lg:col-span-8">
+              <li className="text-[20px]">
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[18].content[0]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[18].content[0]
+                      .content[0].value}
+              </li>
+              <li className="text-[20px]">
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[18].content[1]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[18].content[1]
+                      .content[0].value}
+              </li>
+              <li className="text-[20px]">
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[18].content[2]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[18].content[2]
+                      .content[0].value}
+              </li>
+            </ul>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[19].content[0].value
+                : pageData.scFragments[1].scContentFr.json[19].content[0].value}
+            </p>
+            <h2 className="col-span-12">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[20].content[0].value
+                : pageData.scFragments[1].scContentFr.json[20].content[0].value}
+            </h2>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[21].content[0].value
+                : pageData.scFragments[1].scContentFr.json[21].content[0].value}
+            </p>
+            <ActionButton
+              id="feedback-btn"
+              style="secondary"
+              custom="col-span-12 mt-8"
+              href={
+                props.locale === "en"
+                  ? pageData.scFragments[2].scDestinationURLEn
+                  : pageData.scFragments[2].scDestinationURLFr
+              }
+              text={
+                props.locale === "en"
+                  ? pageData.scFragments[2].scTitleEn
+                  : pageData.scFragments[2].scTitleFr
+              }
+              ariaExpanded={props.ariaExpanded}
+            />
+          </div>
+        </section>
+        <CTA
+          heading={
+            props.locale === "en"
+              ? pageData.scFragments[3].scTitleEn
+              : pageData.scFragments[3].scTitleFr
+          }
+          body={
+            props.locale === "en"
+              ? pageData.scFragments[3].scContentEn.json[0].content[0].value
+              : pageData.scFragments[3].scContentFr.json[0].content[0].value
+          }
+          ButtonProps={{
+            id: "cta-btn",
+            text:
+              props.locale === "en"
+                ? pageData.scFragments[3].scLabsButton[0].scTitleEn
+                : pageData.scFragments[3].scLabsButton[0].scTitleFr,
+            href:
+              props.locale === "en"
+                ? pageData.scFragments[3].scLabsButton[0].scDestinationURLEn
+                : pageData.scFragments[3].scLabsButton[0].scDestinationURLFr,
+            className:
+              "w-fit bg-[#26374A] mt-4 text-white visited:text-white hover:bg-[#1C578A] hover:no-underline hover:text-white active:bg-[#16446C]",
+          }}
+          containerClass="layout-container my-4"
+        />
+      </Layout>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export async function getStaticPaths() {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "oasBenefitsEstimatorArticlesQuery"
+  );
+  // Get paths for dynamic routes from the page name data
+  const paths = getAllUpdateIds(data.scLabsPagev1List.items);
+  // Remove characters preceding the page name itself i.e. change "/en/projects/oas-benefits-estimator/what-we-learned" to "what-we-learned"
+  paths.map((path) => {
+    path.locale === "en"
+      ? (path.params.id = path.params.id.slice(36))
+      : (path.params.id = path.params.id.slice(38));
+  });
+  return {
+    paths,
+    fallback: false,
+  };
+}
+ 
+export const getStaticProps = async ({ locale, params }) => {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "oasBenefitsEstimatorArticlesQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  const pages = data.scLabsPagev1List.items;
+  // Return page data that matches the current page being built
+  const pageData = pages.filter((page) => {
+    return (
+      page.scPageNameEn.slice(36) === params.id ||
+      page.scPageNameFr.slice(38) === params.id
+    );
+  });
+  return {
+    props: {
+      locale: locale,
+      pageData: pageData[0],
+      dictionary: dictionary.dictionaryV1List,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      ...(await serverSideTranslations(locale, ["common", "vc"])),
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.html b/refs/pull/858/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.html new file mode 100644 index 0000000000..cba3449033 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for pages/projects/oas-benefits-estimator + + + + + + + + + +
+
+

All files pages/projects/oas-benefits-estimator

+
+ +
+ 30.55% + Statements + 11/36 +
+ + +
+ 25.43% + Branches + 59/232 +
+ + +
+ 36.36% + Functions + 4/11 +
+ + +
+ 30.55% + Lines + 11/36 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
[id].js +
+
0%0/200%0/1200%0/60%0/20
index.js +
+
68.75%11/1652.67%59/11280%4/568.75%11/16
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.js.html b/refs/pull/858/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.js.html new file mode 100644 index 0000000000..3e5077248b --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.js.html @@ -0,0 +1,1501 @@ + + + + + + Code coverage report for pages/projects/oas-benefits-estimator/index.js + + + + + + + + + +
+
+

All files / pages/projects/oas-benefits-estimator index.js

+
+ +
+ 68.75% + Statements + 11/16 +
+ + +
+ 52.67% + Branches + 59/112 +
+ + +
+ 80% + Functions + 4/5 +
+ + +
+ 68.75% + Lines + 11/16 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +  +  +12x +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { ActionButton } from "../../../components//atoms/ActionButton";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { ProjectInfo } from "../../../components/atoms/ProjectInfo";
+import { CTA } from "@dts-stn/service-canada-design-system";
+import { Heading } from "@dts-stn/service-canada-design-system";
+import Card from "../../../components/molecules/Card";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+ 
+export default function OasBenefitsEstimator(props) {
+  const [pageData] = useState(props.pageData.item);
+  const [updatesData] = useState(props.updatesData);
+  const [filteredDictionary] = useState(
+    props.dictionary.items.filter(
+      (item) =>
+        item.scId === "STARTED" ||
+        item.scId === "ENDED" ||
+        item.scId === "PROJECT-STAGE" ||
+        item.scId === "SUMMARY"
+    )
+  );
+  const stageDictionary = {
+    en: {
+      "gc:custom/decd-endc/project-stage/alpha": "Alpha",
+      "gc:custom/decd-endc/project-stage/beta": "Beta",
+    },
+    fr: {
+      "gc:custom/decd-endc/project-stage/alpha": "Alpha",
+      "gc:custom/decd-endc/project-stage/beta": "Bêta",
+    },
+  };
+ 
+  const displayProjectUpdates = updatesData.map((update) => (
+    <li key={update.scId} className="list-none ml-0 col-span-12 lg:col-span-4">
+      <Card
+        showImage
+        imgSrc={
+          props.locale === "en"
+            ? `https://www.canada.ca${update.scSocialMediaImageEn._path}`
+            : `https://www.canada.ca${update.scSocialMediaImageFr._path}`
+        }
+        imgAlt={
+          (props.locale === "en"
+            ? update.scSocialMediaImageAltTextEn
+            : update.scSocialMediaImageAltTextFr) ?? ""
+        }
+        title={props.locale === "en" ? update.scTitleEn : update.scTitleFr}
+        href={props.locale === "en" ? update.scPageNameEn : update.scPageNameFr}
+        description={`${
+          props.locale === "en"
+            ? props.dictionary.items[9].scTermEn
+            : props.dictionary.items[9].scTermFr
+        } ${update.scDateModifiedOverwrite}`}
+      />
+    </li>
+  ));
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? `${pageData.scTitleEn} - Service Canada Labs`
+              : `${pageData.scTitleFr} - Laboratoires de Service Canada`}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link
+            rel="canonical"
+            href={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en"
+                ? pageData.scShortTitleEn
+                : pageData.scShortTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta name="dcterms.creator" content="Service Canada" />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-07-20" />
+ 
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[0].content[0].value
+                : pageData.scFragments[0].scContentFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="og:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                : pageData.scFragments[0].scContentFr.json[1].content[0].value
+            }
+          />
+          <meta
+            property="twitter:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+        </Head>
+ 
+        <div className="layout-container">
+          <section aria-labelledby="pageMainTitle">
+            <div className="flex flex-col break-words lg:grid lg:grid-cols-2">
+              <div className="col-span-2">
+                <Heading
+                  tabIndex="-1"
+                  id="pageMainTitle"
+                  title={
+                    props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[0].content[0]
+                          .value
+                      : pageData.scFragments[0].scContentFr.json[0].content[0]
+                          .value
+                  }
+                />
+              </div>
+              <div className="hidden lg:grid row-span-2 row-start-2 col-start-2 p-0 mx-4">
+                <div className="flex justify-center">
+                  <div className="object-fill h-auto w-auto max-w-450px">
+                    <img
+                      src={
+                        props.locale === "en"
+                          ? pageData.scFragments[1].scImageEn._publishUrl
+                          : pageData.scFragments[1].scImageFr._publishUrl
+                      }
+                      alt={
+                        (props.locale === "en"
+                          ? pageData.scFragments[1].scImageAltTextEn
+                          : pageData.scFragments[1].scImageAltTextFr) ?? ""
+                      }
+                      width={468}
+                      height={462}
+                    />
+                  </div>
+                </div>
+              </div>
+              <p className="row-start-2 font-body text-lg mb-4">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <div className="row-start-3">
+                <ProjectInfo
+                  locale={props.locale}
+                  termStarted={
+                    props.locale === "en"
+                      ? filteredDictionary[2].scTermEn
+                      : filteredDictionary[2].scTermFr
+                  }
+                  termStage={
+                    props.locale === "en"
+                      ? filteredDictionary[1].scTermEn
+                      : filteredDictionary[1].scTermFr
+                  }
+                  termSummary={
+                    props.locale === "en"
+                      ? filteredDictionary[3].scTermEn
+                      : filteredDictionary[3].scTermFr
+                  }
+                  dateStarted={
+                    pageData.scFragments[0].scContentEn.json[2].content[0].value
+                  }
+                  term={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scContentEn.json[0].content[0]
+                          .value
+                      : pageData.scFragments[2].scContentFr.json[0].content[0]
+                          .value
+                  }
+                  definition={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scContentEn.json[0].content[1]
+                          .value
+                      : pageData.scFragments[2].scContentFr.json[0].content[1]
+                          .value
+                  }
+                  information={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scTitleEn
+                      : pageData.scFragments[2].scTitleFr
+                  }
+                  stage={
+                    props.locale === "en"
+                      ? stageDictionary.en[pageData.scLabProjectStage]
+                      : stageDictionary.fr[pageData.scLabProjectStage]
+                  }
+                  summary={
+                    props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[4].content[0]
+                          .value
+                      : pageData.scFragments[0].scContentFr.json[4].content[0]
+                          .value
+                  }
+                />
+              </div>
+            </div>
+          </section>
+          <div className="grid grid-cols-12">
+            <h2 className="col-span-12 text-[20px]">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[5].content[0].value
+                : pageData.scFragments[0].scContentFr.json[5].content[0].value}
+            </h2>
+            <ActionButton
+              id="try-btn"
+              style="primary"
+              custom="col-span-12"
+              href={
+                props.locale === "en"
+                  ? pageData.scFragments[4].scDestinationURLEn
+                  : pageData.scFragments[4].scDestinationURLFr
+              }
+              text={
+                props.locale === "en"
+                  ? pageData.scFragments[4].scTitleEn
+                  : pageData.scFragments[4].scTitleFr
+              }
+              ariaExpanded={props.ariaExpanded}
+            />
+            <h2 className="col-span-12">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[6].content[0].value
+                : pageData.scFragments[0].scContentFr.json[6].content[0].value}
+            </h2>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[7].content[0].value
+                : pageData.scFragments[0].scContentFr.json[7].content[0].value}
+            </p>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[8].content[0].value
+                : pageData.scFragments[0].scContentFr.json[8].content[0].value}
+            </p>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[9].content[0].value
+                : pageData.scFragments[0].scContentFr.json[9].content[0].value}
+            </p>
+          </div>
+          <h2 className="text-[20px]">
+            {props.locale === "en"
+              ? pageData.scFragments[0].scContentEn.json[10].content[0].value
+              : pageData.scFragments[0].scContentFr.json[10].content[0].value}
+          </h2>
+          <div className="grid md:flex">
+            <ActionButton
+              id="feedback-btn-2"
+              style="secondary"
+              href={
+                props.locale === "en"
+                  ? pageData.scFragments[5].scDestinationURLEn
+                  : pageData.scFragments[5].scDestinationURLFr
+              }
+              text={
+                props.locale === "en"
+                  ? pageData.scFragments[5].scTitleEn
+                  : pageData.scFragments[5].scTitleFr
+              }
+              ariaExpanded={props.ariaExpanded}
+            />
+          </div>
+          <h2>
+            {props.locale === "en"
+              ? props.dictionary.items[11].scTermEn
+              : props.dictionary.items[11].scTermFr}
+          </h2>
+          <ul className="grid lg:grid-cols-12 gap-x-4 lg:gap-y-12 list-none ml-0 mb-12">
+            {displayProjectUpdates}
+          </ul>
+        </div>
+ 
+        <CTA
+          heading={
+            props.locale === "en"
+              ? pageData.scFragments[6].scTitleEn
+              : pageData.scFragments[6].scTitleFr
+          }
+          body={
+            props.locale === "en"
+              ? pageData.scFragments[6].scContentEn.json[0].content[0].value
+              : pageData.scFragments[6].scContentFr.json[0].content[0].value
+          }
+          ButtonProps={{
+            id: "cta-btn",
+            text:
+              props.locale === "en"
+                ? pageData.scFragments[6].scLabsButton[0].scTitleEn
+                : pageData.scFragments[6].scLabsButton[0].scTitleFr,
+            href:
+              props.locale === "en"
+                ? pageData.scFragments[6].scLabsButton[0].scDestinationURLEn
+                : pageData.scFragments[6].scLabsButton[0].scDestinationURLFr,
+            className:
+              "w-fit bg-[#26374A] mt-4 text-white visited:text-white hover:bg-[#1C578A] hover:no-underline hover:text-white active:bg-[#16446C]",
+          }}
+          containerClass="layout-container my-4"
+        />
+      </Layout>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  // get page data from AEM
+  const { data: pageData } = await aemServiceInstance.getFragment(
+    "oasBenefitsEstimatorQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      pageData: pageData.scLabsPagev1ByPath,
+      updatesData: pageData.scLabsPagev1ByPath.item.scLabProjectUpdates,
+      dictionary: dictionary.dictionaryV1List,
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    // revalidate: 10,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/858/merge/coverage/lcov-report/prettify.css b/refs/pull/858/merge/coverage/lcov-report/prettify.css new file mode 100644 index 0000000000..b317a7cda3 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/refs/pull/858/merge/coverage/lcov-report/prettify.js b/refs/pull/858/merge/coverage/lcov-report/prettify.js new file mode 100644 index 0000000000..b3225238f2 --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/refs/pull/858/merge/coverage/lcov-report/sort-arrow-sprite.png b/refs/pull/858/merge/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed68316eb3f65dec9063332d2f69bf3093bbfab GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qh}Z>jv*C{$p!i!8j}?a+@3A= zIAGwzjijN=FBi!|L1t?LM;Q;gkwn>2cAy-KV{dn nf0J1DIvEHQu*n~6U}x}qyky7vi4|9XhBJ7&`njxgN@xNA8m%nc literal 0 HcmV?d00001 diff --git a/refs/pull/858/merge/coverage/lcov-report/sorter.js b/refs/pull/858/merge/coverage/lcov-report/sorter.js new file mode 100644 index 0000000000..2bb296a8ca --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov-report/sorter.js @@ -0,0 +1,196 @@ +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if ( + row.textContent + .toLowerCase() + .includes(searchValue.toLowerCase()) + ) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = + colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/refs/pull/858/merge/coverage/lcov.info b/refs/pull/858/merge/coverage/lcov.info new file mode 100644 index 0000000000..e63c14636e --- /dev/null +++ b/refs/pull/858/merge/coverage/lcov.info @@ -0,0 +1,3071 @@ +TN: +SF:components/index.js +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/ActionButton.js +FN:8,ActionButton +FN:35,(anonymous_1) +FN:38,(anonymous_2) +FNF:3 +FNH:3 +FNDA:75,ActionButton +FNDA:75,(anonymous_1) +FNDA:1,(anonymous_2) +DA:11,75 +DA:13,75 +DA:15,75 +DA:17,75 +DA:19,75 +DA:22,75 +DA:35,75 +DA:36,75 +DA:37,75 +DA:38,67 +DA:39,1 +DA:40,1 +DA:41,1 +DA:47,75 +DA:108,17 +LF:15 +LH:15 +BRDA:22,0,0,5 +BRDA:22,0,1,70 +BRDA:24,1,0,2 +BRDA:24,1,1,68 +BRDA:26,2,0,1 +BRDA:26,2,1,67 +BRDA:28,3,0,1 +BRDA:28,3,1,66 +BRDA:30,4,0,2 +BRDA:30,4,1,64 +BRDA:37,5,0,67 +BRDA:37,5,1,8 +BRDA:39,6,0,1 +BRDA:39,6,1,0 +BRDA:39,7,0,1 +BRDA:39,7,1,0 +BRDA:47,8,0,19 +BRDA:47,8,1,56 +BRDA:50,9,0,6 +BRDA:50,9,1,13 +BRDA:55,10,0,19 +BRDA:55,10,1,11 +BRDA:62,11,0,0 +BRDA:62,11,1,19 +BRDA:62,12,0,19 +BRDA:62,12,1,4 +BRDA:67,13,0,4 +BRDA:67,13,1,15 +BRDA:67,14,0,19 +BRDA:67,14,1,4 +BRDA:73,15,0,0 +BRDA:73,15,1,56 +BRDA:74,16,0,12 +BRDA:74,16,1,44 +BRDA:80,17,0,56 +BRDA:80,17,1,17 +BRDA:83,18,0,24 +BRDA:83,18,1,32 +BRDA:85,19,0,0 +BRDA:85,19,1,56 +BRDA:85,20,0,56 +BRDA:85,20,1,0 +BRDA:88,21,0,6 +BRDA:88,21,1,50 +BRDA:88,22,0,56 +BRDA:88,22,1,6 +BRDA:101,23,0,0 +BRDA:101,23,1,56 +BRDA:101,24,0,56 +BRDA:101,24,1,0 +BRF:50 +BRH:42 +end_of_record +TN: +SF:components/atoms/ActionButton.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:7,(anonymous_0) +DA:8,7 +DA:10,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:16,1 +DA:22,1 +DA:29,1 +DA:36,1 +DA:43,1 +LF:11 +LH:11 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/Alert.js +FN:11,Alert +FNF:1 +FNH:1 +FNDA:2,Alert +DA:12,2 +DA:41,1 +LF:2 +LH:2 +BRDA:16,0,0,0 +BRDA:16,0,1,2 +BRDA:20,1,0,0 +BRDA:20,1,1,2 +BRF:4 +BRH:2 +end_of_record +TN: +SF:components/atoms/Alert.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:8,2 +DA:10,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/Banner.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:4,(anonymous_0) +DA:8,4 +DA:9,4 +DA:28,4 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/Banner.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/Breadcrumb.js +FN:7,Breadcrumb +FN:21,(anonymous_1) +FNF:2 +FNH:2 +FNDA:11,Breadcrumb +FNDA:4,(anonymous_1) +DA:8,11 +DA:22,4 +DA:43,4 +LF:3 +LH:3 +BRDA:20,0,0,2 +BRDA:20,0,1,8 +BRF:2 +BRH:2 +end_of_record +TN: +SF:components/atoms/Breadcrumb.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:3,(anonymous_0) +DA:8,3 +DA:10,1 +DA:11,1 +DA:13,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/CheckBox.js +FN:6,CheckBox +FN:24,(anonymous_1) +FNF:2 +FNH:2 +FNDA:145,CheckBox +FNDA:6,(anonymous_1) +DA:7,145 +DA:12,145 +DA:25,6 +DA:54,9 +DA:60,9 +LF:5 +LH:5 +BRDA:7,0,0,12 +BRDA:7,0,1,133 +BRDA:15,1,0,127 +BRDA:15,1,1,18 +BRDA:26,2,0,4 +BRDA:26,2,1,2 +BRDA:32,3,0,0 +BRDA:32,3,1,145 +BRDA:39,4,0,0 +BRDA:39,4,1,145 +BRDA:40,5,0,0 +BRDA:40,5,1,145 +BRDA:43,6,0,0 +BRDA:43,6,1,145 +BRF:14 +BRH:10 +end_of_record +TN: +SF:components/atoms/CheckBox.stories.js +FN:8,(anonymous_0) +FN:18,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:4,(anonymous_1) +DA:9,0 +DA:18,4 +DA:20,1 +DA:21,1 +DA:29,1 +DA:30,1 +DA:39,1 +DA:40,1 +DA:49,1 +DA:50,1 +LF:10 +LH:9 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/DateModified.js +FN:4,DateModified +FNF:1 +FNH:1 +FNDA:10,DateModified +DA:5,10 +DA:7,10 +DA:8,10 +DA:9,4 +DA:10,2 +DA:11,2 +DA:14,10 +DA:28,4 +DA:32,4 +LF:9 +LH:9 +BRDA:8,0,0,4 +BRDA:8,0,1,6 +BRDA:9,1,0,2 +BRDA:9,1,1,2 +BRDA:18,2,0,6 +BRDA:18,2,1,4 +BRF:6 +BRH:6 +end_of_record +TN: +SF:components/atoms/DateModified.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:3,(anonymous_0) +DA:8,3 +DA:10,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/ErrorLabel.js +FN:6,ErrorLabel +FNF:1 +FNH:1 +FNDA:5,ErrorLabel +DA:7,5 +DA:16,13 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/ErrorLabel.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/HTMList.js +FN:3,HTMList +FN:4,(anonymous_1) +FN:7,(anonymous_2) +FN:8,(anonymous_3) +FNF:4 +FNH:4 +FNDA:7,HTMList +FNDA:7,(anonymous_1) +FNDA:18,(anonymous_2) +FNDA:13,(anonymous_3) +DA:4,7 +DA:5,7 +DA:7,18 +DA:9,13 +DA:14,7 +DA:21,1 +LF:6 +LH:6 +BRDA:3,0,0,5 +BRDA:14,1,0,6 +BRDA:14,1,1,1 +BRF:3 +BRH:3 +end_of_record +TN: +SF:components/atoms/MultiTextField.js +FN:8,MultiTextField +FN:41,(anonymous_1) +FNF:2 +FNH:2 +FNDA:4,MultiTextField +FNDA:1,(anonymous_1) +DA:9,4 +DA:11,4 +DA:41,1 +DA:57,8 +DA:62,8 +LF:5 +LH:5 +BRDA:14,0,0,0 +BRDA:14,0,1,4 +BRDA:19,1,0,1 +BRDA:19,1,1,3 +BRDA:23,2,0,0 +BRDA:23,2,1,4 +BRDA:33,3,0,0 +BRDA:33,3,1,4 +BRDA:36,4,0,0 +BRDA:36,4,1,4 +BRF:10 +BRH:6 +end_of_record +TN: +SF:components/atoms/MultiTextField.stories.js +FN:8,(anonymous_0) +FN:18,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:2,(anonymous_1) +DA:9,0 +DA:18,2 +DA:20,1 +DA:21,1 +DA:29,1 +DA:30,1 +DA:39,1 +DA:40,1 +LF:8 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/ProjectInfo.js +FN:6,ProjectInfo +FNF:1 +FNH:1 +FNDA:3,ProjectInfo +DA:7,3 +DA:8,3 +DA:10,3 +DA:45,2 +LF:4 +LH:4 +BRDA:15,0,0,0 +BRDA:15,0,1,3 +BRDA:19,1,0,1 +BRDA:19,1,1,2 +BRF:4 +BRH:3 +end_of_record +TN: +SF:components/atoms/ProjectInfo.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:8,2 +DA:10,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/RadioButton.js +FN:6,RadioButton +FN:22,(anonymous_1) +FN:25,(anonymous_2) +FNF:3 +FNH:3 +FNDA:16,RadioButton +FNDA:3,(anonymous_1) +FNDA:1,(anonymous_2) +DA:7,16 +DA:14,16 +DA:23,3 +DA:26,1 +DA:27,1 +DA:28,1 +DA:29,0 +DA:31,1 +DA:51,2 +DA:55,2 +LF:10 +LH:9 +BRDA:7,0,0,15 +BRDA:7,0,1,1 +BRDA:12,1,0,1 +BRDA:12,1,1,1 +BRDA:26,2,0,1 +BRDA:26,2,1,0 +BRDA:28,3,0,0 +BRDA:28,3,1,1 +BRDA:41,4,0,4 +BRDA:41,4,1,12 +BRDA:42,5,0,4 +BRDA:42,5,1,12 +BRF:12 +BRH:10 +end_of_record +TN: +SF:components/atoms/RadioButton.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:7,(anonymous_0) +DA:9,7 +DA:11,1 +DA:12,1 +DA:20,1 +DA:21,1 +DA:30,1 +DA:31,1 +DA:40,1 +DA:41,1 +DA:50,1 +DA:51,1 +LF:11 +LH:11 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/RadioField.js +FN:6,RadioField +FN:24,(anonymous_1) +FN:42,(anonymous_2) +FNF:3 +FNH:2 +FNDA:8,RadioField +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +DA:7,8 +DA:12,8 +DA:25,1 +DA:42,0 +DA:50,9 +DA:55,9 +LF:6 +LH:5 +BRDA:7,0,0,8 +BRDA:7,0,1,0 +BRDA:15,1,0,0 +BRDA:15,1,1,8 +BRDA:26,2,0,0 +BRDA:26,2,1,1 +BRDA:32,3,0,0 +BRDA:32,3,1,8 +BRDA:39,4,0,0 +BRDA:39,4,1,8 +BRF:10 +BRH:5 +end_of_record +TN: +SF:components/atoms/RadioField.stories.js +FN:8,(anonymous_0) +FN:18,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:4,(anonymous_1) +DA:9,0 +DA:18,4 +DA:20,1 +DA:21,1 +DA:29,1 +DA:30,1 +DA:39,1 +DA:40,1 +LF:8 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/SearchBar.js +FN:6,SearchBar +FNF:1 +FNH:1 +FNDA:2,SearchBar +DA:7,2 +DA:33,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/SearchBar.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:8,2 +DA:10,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/SelectField.js +FN:5,SelectField +FN:15,(anonymous_1) +FN:49,(anonymous_2) +FN:60,(anonymous_3) +FNF:4 +FNH:3 +FNDA:2,SelectField +FNDA:6,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:8,(anonymous_3) +DA:6,2 +DA:8,2 +DA:14,2 +DA:15,2 +DA:16,6 +DA:17,6 +DA:21,2 +DA:49,0 +DA:61,8 +DA:84,1 +DA:88,1 +LF:11 +LH:10 +BRDA:8,0,0,0 +BRDA:8,0,1,2 +BRDA:14,1,0,2 +BRDA:14,1,1,0 +BRDA:24,2,0,0 +BRDA:24,2,1,2 +BRDA:29,3,0,0 +BRDA:29,3,1,2 +BRDA:33,4,0,0 +BRDA:33,4,1,2 +BRDA:40,5,0,0 +BRDA:40,5,1,2 +BRDA:43,6,0,0 +BRDA:43,6,1,2 +BRDA:48,7,0,0 +BRDA:48,7,1,2 +BRDA:67,8,0,0 +BRDA:67,8,1,2 +BRF:18 +BRH:9 +end_of_record +TN: +SF:components/atoms/SelectField.stories.js +FN:8,(anonymous_0) +FN:18,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:2,(anonymous_1) +DA:9,0 +DA:18,2 +DA:20,1 +DA:21,1 +LF:4 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/TableOfContents.js +FN:3,TableOfContents +FN:9,(anonymous_1) +FNF:2 +FNH:2 +FNDA:2,TableOfContents +FNDA:2,(anonymous_1) +DA:4,2 +DA:10,2 +DA:25,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/TableOfContents.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:8,2 +DA:10,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/TextField.js +FN:8,TextField +FN:61,(anonymous_1) +FNF:2 +FNH:2 +FNDA:6,TextField +FNDA:2,(anonymous_1) +DA:9,6 +DA:11,6 +DA:16,6 +DA:61,2 +DA:71,8 +DA:76,8 +LF:6 +LH:6 +BRDA:11,0,0,3 +BRDA:11,0,1,3 +BRDA:19,1,0,0 +BRDA:19,1,1,6 +BRDA:24,2,0,1 +BRDA:24,2,1,5 +BRDA:28,3,0,0 +BRDA:28,3,1,6 +BRDA:35,4,0,0 +BRDA:35,4,1,6 +BRDA:46,5,0,0 +BRDA:46,5,1,6 +BRDA:49,6,0,0 +BRDA:49,6,1,6 +BRDA:50,7,0,0 +BRDA:50,7,1,6 +BRDA:60,8,0,0 +BRDA:60,8,1,6 +BRF:18 +BRH:11 +end_of_record +TN: +SF:components/atoms/TextField.stories.js +FN:8,(anonymous_0) +FN:18,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:4,(anonymous_1) +DA:9,0 +DA:18,4 +DA:20,1 +DA:21,1 +DA:29,1 +DA:30,1 +DA:39,1 +DA:40,1 +LF:8 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/CallToAction.js +FN:9,CallToAction +FNF:1 +FNH:1 +FNDA:3,CallToAction +DA:10,3 +DA:11,3 +DA:81,1 +LF:3 +LH:3 +BRDA:29,0,0,2 +BRDA:29,0,1,1 +BRDA:53,1,0,0 +BRDA:53,1,1,3 +BRDA:61,2,0,0 +BRDA:61,2,1,3 +BRDA:65,3,0,3 +BRDA:65,3,1,0 +BRF:8 +BRH:5 +end_of_record +TN: +SF:components/molecules/CallToAction.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:3,(anonymous_0) +DA:9,3 +DA:11,1 +DA:12,1 +DA:13,1 +DA:20,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Card.js +FN:10,(anonymous_0) +FNF:1 +FNH:1 +FNDA:5,(anonymous_0) +DA:10,3 +DA:11,5 +DA:17,5 +DA:96,3 +LF:4 +LH:4 +BRDA:26,0,0,2 +BRDA:26,0,1,3 +BRDA:40,1,0,0 +BRDA:40,1,1,5 +BRDA:41,2,0,0 +BRDA:41,2,1,0 +BRDA:52,3,0,2 +BRDA:52,3,1,3 +BRDA:56,4,0,2 +BRDA:56,4,1,1 +BRDA:60,5,0,2 +BRDA:60,5,1,1 +BRDA:70,6,0,0 +BRDA:70,6,1,5 +BRDA:80,7,0,0 +BRDA:80,7,1,5 +BRF:16 +BRH:11 +end_of_record +TN: +SF:components/molecules/Card.stories.js +FN:10,(anonymous_0) +FNF:1 +FNH:1 +FNDA:3,(anonymous_0) +DA:10,3 +DA:12,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:16,1 +DA:18,1 +DA:26,1 +DA:35,1 +DA:44,1 +DA:52,1 +LF:11 +LH:11 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/CopyToClipboard.js +FN:5,CopyToClipboard +FN:20,(anonymous_1) +FNF:2 +FNH:2 +FNDA:4,CopyToClipboard +FNDA:1,(anonymous_1) +DA:6,4 +DA:11,4 +DA:20,1 +DA:39,2 +DA:44,2 +LF:5 +LH:5 +BRDA:6,0,0,4 +BRDA:6,0,1,0 +BRF:2 +BRH:1 +end_of_record +TN: +SF:components/molecules/CopyToClipboard.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Details.js +FN:6,Details +FNF:1 +FNH:1 +FNDA:22,Details +DA:7,22 +DA:19,7 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Details.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/ErrorBox.js +FN:7,ErrorBox +FN:23,(anonymous_1) +FN:29,(anonymous_2) +FNF:3 +FNH:3 +FNDA:3,ErrorBox +FNDA:9,(anonymous_1) +FNDA:1,(anonymous_2) +DA:8,3 +DA:24,9 +DA:29,1 +DA:43,1 +DA:47,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/ErrorBox.stories.js +FN:8,(anonymous_0) +FN:21,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:3,(anonymous_1) +DA:9,0 +DA:21,3 +DA:23,1 +DA:25,1 +LF:4 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/FeedbackWidget.js +FN:15,(anonymous_0) +FN:31,(anonymous_1) +FN:42,(anonymous_2) +FN:43,(anonymous_3) +FN:57,setFocusAfterSubmit +FN:71,(anonymous_5) +FN:176,(anonymous_6) +FN:201,(anonymous_7) +FN:272,(anonymous_8) +FN:273,(anonymous_9) +FNF:10 +FNH:5 +FNDA:10,(anonymous_0) +FNDA:7,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:1,(anonymous_3) +FNDA:0,setFocusAfterSubmit +FNDA:1,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +DA:15,5 +DA:21,10 +DA:22,10 +DA:23,10 +DA:24,10 +DA:25,10 +DA:26,10 +DA:27,10 +DA:29,10 +DA:31,10 +DA:32,7 +DA:33,2 +DA:34,2 +DA:39,10 +DA:43,1 +DA:44,1 +DA:46,0 +DA:47,0 +DA:49,1 +DA:50,1 +DA:53,1 +DA:58,0 +DA:61,10 +DA:62,10 +DA:63,10 +DA:71,10 +DA:73,1 +DA:75,1 +DA:77,1 +DA:79,1 +DA:81,1 +DA:88,1 +DA:92,1 +DA:94,1 +DA:96,0 +DA:105,0 +DA:106,0 +DA:107,0 +DA:108,0 +DA:110,0 +DA:113,0 +DA:114,0 +DA:115,0 +DA:117,1 +DA:121,10 +DA:176,0 +DA:202,0 +DA:203,0 +DA:272,0 +DA:274,0 +DA:300,5 +LF:51 +LH:34 +BRDA:32,0,0,2 +BRDA:32,0,1,5 +BRDA:44,1,0,0 +BRDA:44,1,1,1 +BRDA:94,2,0,0 +BRDA:94,2,1,1 +BRDA:105,3,0,0 +BRDA:105,3,1,0 +BRDA:105,4,0,0 +BRDA:105,4,1,0 +BRDA:123,5,0,8 +BRDA:123,5,1,2 +BRDA:138,6,0,0 +BRDA:138,6,1,8 +BRDA:140,7,0,0 +BRDA:140,7,1,0 +BRDA:143,8,0,0 +BRDA:143,8,1,0 +BRDA:151,9,0,0 +BRDA:151,9,1,0 +BRDA:256,10,0,2 +BRDA:256,10,1,6 +BRF:22 +BRH:9 +end_of_record +TN: +SF:components/molecules/FeedbackWidget.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:4,(anonymous_0) +DA:9,4 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Filter.js +FN:7,Filter +FN:19,(anonymous_1) +FNF:2 +FNH:2 +FNDA:3,Filter +FNDA:9,(anonymous_1) +DA:8,3 +DA:20,9 +DA:40,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Filter.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:3,(anonymous_0) +DA:9,3 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/List.js +FN:6,List +FN:10,(anonymous_1) +FNF:2 +FNH:2 +FNDA:2,List +FNDA:8,(anonymous_1) +DA:7,2 +DA:8,2 +DA:12,8 +DA:15,8 +DA:16,8 +DA:31,1 +LF:6 +LH:6 +BRDA:15,0,0,6 +BRDA:15,0,1,2 +BRF:2 +BRH:2 +end_of_record +TN: +SF:components/molecules/List.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Menu.js +FN:9,Menu +FN:29,(anonymous_1) +FN:44,(anonymous_2) +FN:63,(anonymous_3) +FNF:4 +FNH:3 +FNDA:4,Menu +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:12,(anonymous_3) +DA:11,4 +DA:12,4 +DA:13,4 +DA:15,4 +DA:29,1 +DA:44,0 +DA:64,12 +DA:65,12 +DA:67,12 +DA:94,1 +LF:10 +LH:9 +BRDA:46,0,0,1 +BRDA:46,0,1,3 +BRDA:59,1,0,1 +BRDA:59,1,1,3 +BRDA:72,2,0,0 +BRDA:72,2,1,12 +BRDA:77,3,0,0 +BRDA:77,3,1,12 +BRDA:78,4,0,0 +BRDA:78,4,1,0 +BRF:10 +BRH:6 +end_of_record +TN: +SF:components/molecules/Menu.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:3,(anonymous_0) +DA:9,3 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/OptionalListField.js +FN:9,OptionalListField +FN:11,(anonymous_1) +FN:22,(anonymous_2) +FNF:3 +FNH:3 +FNDA:5,OptionalListField +FNDA:1,(anonymous_1) +FNDA:5,(anonymous_2) +DA:10,5 +DA:11,5 +DA:12,1 +DA:13,0 +DA:15,1 +DA:18,1 +DA:19,0 +DA:22,5 +DA:23,5 +DA:24,0 +DA:26,5 +DA:27,5 +DA:29,0 +DA:31,5 +DA:79,1 +DA:83,1 +LF:16 +LH:12 +BRDA:10,0,0,5 +BRDA:10,0,1,2 +BRDA:12,1,0,0 +BRDA:12,1,1,1 +BRDA:18,2,0,0 +BRDA:18,2,1,1 +BRDA:23,3,0,0 +BRDA:23,3,1,5 +BRDA:26,4,0,5 +BRDA:26,4,1,0 +BRDA:33,5,0,4 +BRDA:33,5,1,1 +BRDA:60,6,0,4 +BRDA:60,6,1,1 +BRDA:60,7,0,5 +BRDA:60,7,1,2 +BRDA:60,7,2,4 +BRDA:63,8,0,0 +BRDA:63,8,1,4 +BRF:19 +BRH:14 +end_of_record +TN: +SF:components/molecules/OptionalListField.stories.js +FN:10,(anonymous_0) +FN:20,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:4,(anonymous_1) +DA:11,0 +DA:20,4 +DA:22,1 +DA:23,1 +DA:48,1 +DA:49,1 +DA:76,1 +DA:77,1 +DA:104,1 +DA:105,1 +DA:133,1 +DA:134,1 +LF:12 +LH:11 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/OptionalTextField.js +FN:12,OptionalTextField +FN:16,(anonymous_1) +FN:76,(anonymous_2) +FN:94,(anonymous_3) +FNF:4 +FNH:2 +FNDA:132,OptionalTextField +FNDA:3,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:13,132 +DA:14,132 +DA:15,132 +DA:16,132 +DA:17,3 +DA:18,0 +DA:19,0 +DA:21,3 +DA:22,3 +DA:25,3 +DA:26,0 +DA:29,132 +DA:106,7 +DA:110,7 +LF:14 +LH:11 +BRDA:13,0,0,132 +BRDA:13,0,1,131 +BRDA:17,1,0,0 +BRDA:17,1,1,3 +BRDA:25,2,0,0 +BRDA:25,2,1,3 +BRDA:31,3,0,132 +BRDA:31,3,1,131 +BRDA:47,4,0,132 +BRDA:47,4,1,1 +BRDA:61,5,0,4 +BRDA:61,5,1,128 +BRDA:61,6,0,132 +BRDA:61,6,1,131 +BRDA:61,6,2,129 +BRDA:62,7,0,2 +BRDA:62,7,1,2 +BRDA:76,8,0,0 +BRDA:76,8,1,2 +BRDA:94,9,0,0 +BRDA:94,9,1,2 +BRF:21 +BRH:17 +end_of_record +TN: +SF:components/molecules/OptionalTextField.stories.js +FN:8,(anonymous_0) +FN:18,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:3,(anonymous_1) +DA:9,0 +DA:18,3 +DA:20,1 +DA:21,1 +DA:32,1 +DA:33,1 +DA:45,1 +DA:46,1 +DA:59,1 +DA:60,1 +DA:72,1 +DA:73,1 +LF:12 +LH:11 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Quote.js +FN:6,Quote +FNF:1 +FNH:1 +FNDA:2,Quote +DA:7,2 +DA:21,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Quote.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/TextButtonField.js +FN:7,TextButtonField +FNF:1 +FNH:1 +FNDA:6,TextButtonField +DA:10,6 +DA:11,5 +DA:15,6 +DA:44,1 +LF:4 +LH:4 +BRDA:10,0,0,5 +BRDA:10,0,1,1 +BRDA:11,1,0,2 +BRDA:11,1,1,3 +BRDA:17,2,0,0 +BRDA:17,2,1,6 +BRDA:26,3,0,6 +BRDA:26,3,1,0 +BRF:8 +BRH:6 +end_of_record +TN: +SF:components/molecules/TextButtonField.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:6,(anonymous_0) +DA:9,6 +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:16,1 +DA:24,1 +DA:31,1 +DA:39,1 +LF:9 +LH:9 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/Footer.js +FN:8,Footer +FN:22,(anonymous_1) +FN:48,(anonymous_2) +FNF:3 +FNH:3 +FNDA:1,Footer +FNDA:8,(anonymous_1) +FNDA:8,(anonymous_2) +DA:9,1 +DA:23,8 +DA:49,8 +DA:89,1 +LF:4 +LH:4 +BRDA:53,0,0,1 +BRDA:53,0,1,7 +BRF:2 +BRH:2 +end_of_record +TN: +SF:components/organisms/Footer.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:1,(anonymous_0) +DA:9,1 +DA:11,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/Layout.js +FN:14,(anonymous_0) +FNF:1 +FNH:1 +FNDA:7,(anonymous_0) +DA:14,3 +DA:27,7 +DA:28,7 +DA:29,7 +DA:34,7 +DA:158,3 +LF:6 +LH:6 +BRDA:28,0,0,0 +BRDA:28,0,1,7 +BRDA:30,1,0,7 +BRDA:30,1,1,0 +BRDA:30,2,0,7 +BRDA:30,2,1,7 +BRDA:50,3,0,0 +BRDA:50,3,1,7 +BRDA:72,4,0,7 +BRDA:72,4,1,0 +BRDA:86,5,0,7 +BRDA:86,5,1,0 +BRDA:99,6,0,7 +BRDA:99,6,1,0 +BRDA:112,7,0,2 +BRDA:112,7,1,5 +BRDA:112,8,0,7 +BRDA:112,8,1,2 +BRF:18 +BRH:12 +end_of_record +TN: +SF:components/organisms/Layout.stories.js +FN:9,(anonymous_0) +FN:23,(anonymous_1) +FNF:2 +FNH:2 +FNDA:7,(anonymous_0) +FNDA:7,(anonymous_1) +DA:9,1 +DA:10,7 +DA:23,7 +DA:25,1 +DA:26,1 +DA:28,1 +DA:33,1 +LF:7 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/PhaseBanner.js +FN:12,(anonymous_0) +FN:24,(anonymous_1) +FNF:2 +FNH:2 +FNDA:3,(anonymous_0) +FNDA:1,(anonymous_1) +DA:12,4 +DA:20,3 +DA:21,3 +DA:22,3 +DA:24,3 +DA:25,1 +DA:26,0 +DA:28,1 +DA:31,1 +DA:34,3 +DA:112,4 +LF:11 +LH:10 +BRDA:25,0,0,0 +BRDA:25,0,1,1 +BRDA:40,1,0,2 +BRDA:40,1,1,1 +BRDA:49,2,0,2 +BRDA:49,2,1,1 +BRDA:68,3,0,2 +BRDA:68,3,1,1 +BRF:8 +BRH:7 +end_of_record +TN: +SF:components/organisms/PhaseBanner.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:12,1 +DA:14,1 +DA:19,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/ReportAProblem.js +FN:14,ReportAProblem +FN:20,(anonymous_1) +FN:84,(anonymous_2) +FNF:3 +FNH:2 +FNDA:20,ReportAProblem +FNDA:3,(anonymous_1) +FNDA:0,(anonymous_2) +DA:15,20 +DA:16,19 +DA:18,19 +DA:20,19 +DA:22,3 +DA:25,3 +DA:26,3 +DA:27,24 +DA:28,21 +DA:29,1 +DA:35,3 +DA:37,3 +DA:40,3 +DA:41,5 +DA:42,5 +DA:46,3 +DA:47,3 +DA:51,3 +DA:52,0 +DA:62,3 +DA:73,3 +DA:74,21 +DA:78,3 +DA:88,0 +DA:91,3 +DA:92,1 +DA:95,3 +DA:98,19 +DA:373,6 +LF:29 +LH:27 +BRDA:27,0,0,21 +BRDA:27,0,1,3 +BRDA:28,1,0,1 +BRDA:28,1,1,20 +BRDA:51,2,0,0 +BRDA:51,2,1,3 +BRDA:91,3,0,1 +BRDA:91,3,1,2 +BRDA:105,4,0,1 +BRDA:105,4,1,18 +BRDA:124,5,0,1 +BRDA:124,5,1,18 +BRDA:350,6,0,2 +BRDA:350,6,1,16 +BRF:14 +BRH:13 +end_of_record +TN: +SF:components/organisms/ReportAProblem.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:5,(anonymous_0) +DA:9,5 +DA:11,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:lib/mongodb/connect.js +FN:20,connectToDatabase +FN:33,(anonymous_1) +FN:63,closeConnection +FNF:3 +FNH:2 +FNDA:1,connectToDatabase +FNDA:1,(anonymous_1) +FNDA:0,closeConnection +DA:8,1 +DA:10,1 +DA:11,1 +DA:22,1 +DA:23,0 +DA:27,1 +DA:28,1 +DA:33,1 +DA:35,1 +DA:37,1 +DA:44,1 +DA:45,1 +DA:60,1 +DA:64,0 +DA:65,0 +DA:66,0 +DA:67,0 +DA:68,0 +LF:18 +LH:12 +BRDA:10,0,0,1 +BRDA:10,0,1,0 +BRDA:22,1,0,0 +BRDA:22,1,1,1 +BRDA:27,2,0,1 +BRDA:27,2,1,0 +BRDA:54,3,0,0 +BRDA:54,3,1,1 +BRDA:54,4,0,1 +BRDA:54,4,1,1 +BRDA:64,5,0,0 +BRDA:64,5,1,0 +BRF:12 +BRH:6 +end_of_record +TN: +SF:lib/notify/submitEmail.js +FN:3,(anonymous_0) +FN:32,(anonymous_1) +FNF:2 +FNH:1 +FNDA:1,(anonymous_0) +FNDA:0,(anonymous_1) +DA:3,2 +DA:11,1 +DA:29,1 +DA:32,2 +DA:42,0 +DA:64,0 +LF:6 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:lib/utils/createBreadcrumbs.js +FN:1,(anonymous_0) +FN:2,(anonymous_1) +FNF:2 +FNH:2 +FNDA:1,(anonymous_0) +FNDA:1,(anonymous_1) +DA:1,1 +DA:2,1 +DA:3,1 +LF:3 +LH:3 +BRDA:5,0,0,0 +BRDA:5,0,1,1 +BRDA:7,1,0,0 +BRDA:7,1,1,1 +BRF:4 +BRH:2 +end_of_record +TN: +SF:lib/utils/getAllUpdateIds.js +FN:1,getAllUpdateIds +FN:2,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,getAllUpdateIds +FNDA:0,(anonymous_1) +DA:2,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:lib/utils/maskEmail.js +FN:2,maskEmail +FNF:1 +FNH:1 +FNDA:1,maskEmail +DA:3,1 +DA:4,1 +DA:6,1 +DA:7,14 +DA:8,1 +DA:9,13 +DA:10,10 +DA:11,10 +DA:13,3 +DA:14,3 +DA:18,1 +LF:11 +LH:11 +BRDA:7,0,0,1 +BRDA:7,0,1,13 +BRDA:9,1,0,10 +BRDA:9,1,1,3 +BRDA:9,2,0,13 +BRDA:9,2,1,12 +BRDA:9,2,2,11 +BRF:7 +BRH:7 +end_of_record +TN: +SF:lib/utils/stripFeedback.js +FN:1,stripFeedback +FNF:1 +FNH:1 +FNDA:7,stripFeedback +DA:3,7 +DA:9,7 +DA:15,7 +DA:21,7 +DA:25,7 +DA:30,7 +LF:6 +LH:6 +BRF:0 +BRH:0 +end_of_record +TN: +SF:middlewares/initMiddleware.js +FN:3,initMiddleware +FN:4,(anonymous_1) +FN:5,(anonymous_2) +FN:6,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,initMiddleware +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:10,0 +LF:6 +LH:0 +BRDA:7,0,0,0 +BRDA:7,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:middlewares/joi.js +FN:11,validate +FN:12,(anonymous_1) +FN:19,(anonymous_2) +FNF:3 +FNH:3 +FNDA:1,validate +FNDA:1,(anonymous_1) +FNDA:2,(anonymous_2) +DA:12,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:16,0 +DA:18,1 +DA:19,1 +DA:20,2 +DA:22,1 +LF:9 +LH:8 +BRDA:11,0,0,0 +BRDA:15,1,0,0 +BRDA:15,1,1,1 +BRF:3 +BRH:1 +end_of_record +TN: +SF:pages/404.js +FN:11,error404 +FN:17,(anonymous_1) +FN:242,(anonymous_2) +FNF:3 +FNH:2 +FNDA:2,error404 +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +DA:12,2 +DA:13,2 +DA:14,2 +DA:15,2 +DA:17,2 +DA:18,1 +DA:19,0 +DA:20,0 +DA:24,1 +DA:25,0 +DA:27,1 +DA:32,2 +DA:33,1 +DA:36,1 +DA:242,1 +DA:243,0 +DA:245,0 +LF:17 +LH:12 +BRDA:18,0,0,0 +BRDA:18,0,1,1 +BRDA:19,1,0,0 +BRDA:19,1,1,0 +BRDA:24,2,0,0 +BRDA:24,2,1,1 +BRDA:32,3,0,1 +BRDA:32,3,1,1 +BRDA:40,4,0,0 +BRDA:40,4,1,1 +BRDA:63,5,0,0 +BRDA:63,5,1,1 +BRDA:123,6,0,0 +BRDA:123,6,1,1 +BRDA:128,7,0,0 +BRDA:128,7,1,1 +BRDA:167,8,0,0 +BRDA:167,8,1,1 +BRDA:219,9,0,0 +BRDA:219,9,1,1 +BRDA:224,10,0,0 +BRDA:224,10,1,1 +BRDA:233,11,0,0 +BRDA:233,11,1,1 +BRF:24 +BRH:12 +end_of_record +TN: +SF:pages/500.js +FN:11,error500 +FN:17,(anonymous_1) +FN:275,(anonymous_2) +FNF:3 +FNH:2 +FNDA:2,error500 +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +DA:12,2 +DA:13,2 +DA:14,2 +DA:15,2 +DA:17,2 +DA:18,1 +DA:19,0 +DA:20,0 +DA:24,1 +DA:25,0 +DA:27,1 +DA:32,2 +DA:33,1 +DA:36,1 +DA:275,1 +DA:276,0 +DA:278,0 +LF:17 +LH:12 +BRDA:18,0,0,0 +BRDA:18,0,1,1 +BRDA:19,1,0,0 +BRDA:19,1,1,0 +BRDA:24,2,0,0 +BRDA:24,2,1,1 +BRDA:32,3,0,1 +BRDA:32,3,1,1 +BRDA:40,4,0,0 +BRDA:40,4,1,1 +BRDA:74,5,0,0 +BRDA:74,5,1,1 +BRDA:156,6,0,0 +BRDA:156,6,1,1 +BRDA:161,7,0,0 +BRDA:161,7,1,1 +BRDA:200,8,0,0 +BRDA:200,8,1,1 +BRDA:252,9,0,0 +BRDA:252,9,1,1 +BRDA:257,10,0,0 +BRDA:257,10,1,1 +BRDA:266,11,0,0 +BRDA:266,11,1,1 +BRF:24 +BRH:12 +end_of_record +TN: +SF:pages/_app.js +FN:15,MyApp +FNF:1 +FNH:0 +FNDA:0,MyApp +DA:9,0 +DA:11,0 +DA:12,0 +DA:16,0 +LF:4 +LH:0 +BRDA:11,0,0,0 +BRDA:11,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:pages/error.js +FN:11,ErrorPage +FN:26,(anonymous_1) +FN:455,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,ErrorPage +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:12,0 +DA:13,0 +DA:14,0 +DA:16,0 +DA:18,0 +DA:20,0 +DA:22,0 +DA:24,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:33,0 +DA:455,0 +DA:456,0 +DA:458,0 +LF:16 +LH:0 +BRDA:16,0,0,0 +BRDA:16,0,1,0 +BRDA:18,1,0,0 +BRDA:18,1,1,0 +BRDA:20,2,0,0 +BRDA:20,2,1,0 +BRDA:22,3,0,0 +BRDA:22,3,1,0 +BRDA:24,4,0,0 +BRDA:24,4,1,0 +BRDA:27,5,0,0 +BRDA:27,5,1,0 +BRDA:28,6,0,0 +BRDA:28,6,1,0 +BRDA:37,7,0,0 +BRDA:37,7,1,0 +BRDA:53,8,0,0 +BRDA:53,8,1,0 +BRDA:75,9,0,0 +BRDA:75,9,1,0 +BRDA:136,10,0,0 +BRDA:136,10,1,0 +BRDA:160,11,0,0 +BRDA:160,11,1,0 +BRDA:173,12,0,0 +BRDA:173,12,1,0 +BRDA:178,13,0,0 +BRDA:178,13,1,0 +BRDA:196,14,0,0 +BRDA:196,14,1,0 +BRDA:213,15,0,0 +BRDA:213,15,1,0 +BRDA:247,16,0,0 +BRDA:247,16,1,0 +BRDA:298,17,0,0 +BRDA:298,17,1,0 +BRDA:318,18,0,0 +BRDA:318,18,1,0 +BRDA:335,19,0,0 +BRDA:335,19,1,0 +BRDA:369,20,0,0 +BRDA:369,20,1,0 +BRDA:432,21,0,0 +BRDA:432,21,1,0 +BRDA:437,22,0,0 +BRDA:437,22,1,0 +BRDA:446,23,0,0 +BRDA:446,23,1,0 +BRF:48 +BRH:0 +end_of_record +TN: +SF:pages/home.js +FN:10,Home +FN:14,(anonymous_1) +FN:21,(anonymous_2) +FN:60,(anonymous_3) +FN:386,(anonymous_4) +FNF:5 +FNH:4 +FNDA:1,Home +FNDA:4,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:1,(anonymous_3) +FNDA:0,(anonymous_4) +DA:11,1 +DA:12,1 +DA:14,1 +DA:15,4 +DA:21,1 +DA:22,1 +DA:60,1 +DA:61,1 +DA:62,0 +DA:63,0 +DA:67,1 +DA:386,1 +DA:387,0 +DA:390,0 +DA:394,0 +LF:15 +LH:10 +BRDA:26,0,0,1 +BRDA:26,0,1,0 +BRDA:30,1,0,0 +BRDA:30,1,1,1 +BRDA:34,2,0,0 +BRDA:34,2,1,1 +BRDA:35,3,0,0 +BRDA:35,3,1,0 +BRDA:38,4,0,0 +BRDA:38,4,1,1 +BRDA:43,5,0,0 +BRDA:43,5,1,1 +BRDA:47,6,0,0 +BRDA:47,6,1,1 +BRDA:49,7,0,0 +BRDA:49,7,1,1 +BRDA:52,8,0,0 +BRDA:52,8,1,1 +BRDA:61,9,0,0 +BRDA:61,9,1,1 +BRDA:62,10,0,0 +BRDA:62,10,1,0 +BRDA:72,11,0,0 +BRDA:72,11,1,1 +BRDA:77,12,0,0 +BRDA:77,12,1,1 +BRDA:85,13,0,0 +BRDA:85,13,1,1 +BRDA:92,14,0,0 +BRDA:92,14,1,1 +BRDA:103,15,0,0 +BRDA:103,15,1,1 +BRDA:113,16,0,0 +BRDA:113,16,1,1 +BRDA:120,17,0,0 +BRDA:120,17,1,1 +BRDA:126,18,0,0 +BRDA:126,18,1,1 +BRDA:154,19,0,0 +BRDA:154,19,1,1 +BRDA:163,20,0,0 +BRDA:163,20,1,1 +BRDA:169,21,0,0 +BRDA:169,21,1,1 +BRDA:181,22,0,0 +BRDA:181,22,1,1 +BRDA:192,23,0,0 +BRDA:192,23,1,1 +BRDA:201,24,0,0 +BRDA:201,24,1,1 +BRDA:208,25,0,0 +BRDA:208,25,1,1 +BRDA:220,26,0,0 +BRDA:220,26,1,1 +BRDA:231,27,0,0 +BRDA:231,27,1,1 +BRDA:240,28,0,0 +BRDA:240,28,1,1 +BRDA:245,29,0,0 +BRDA:245,29,1,1 +BRDA:258,30,0,0 +BRDA:258,30,1,1 +BRDA:271,31,0,0 +BRDA:271,31,1,1 +BRDA:277,32,0,0 +BRDA:277,32,1,1 +BRDA:285,33,0,0 +BRDA:285,33,1,1 +BRDA:294,34,0,0 +BRDA:294,34,1,1 +BRDA:305,35,0,0 +BRDA:305,35,1,1 +BRDA:317,36,0,0 +BRDA:317,36,1,1 +BRDA:322,37,0,0 +BRDA:322,37,1,1 +BRDA:377,38,0,0 +BRDA:377,38,1,1 +BRF:78 +BRH:37 +end_of_record +TN: +SF:pages/index.js +FN:8,Index +FN:11,(anonymous_1) +FN:197,(anonymous_2) +FNF:3 +FNH:2 +FNDA:1,Index +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +DA:9,1 +DA:11,1 +DA:12,1 +DA:13,0 +DA:14,0 +DA:16,1 +DA:19,1 +DA:197,1 +LF:8 +LH:6 +BRDA:12,0,0,0 +BRDA:12,0,1,1 +BRDA:13,1,0,0 +BRDA:13,1,1,0 +BRDA:23,2,0,0 +BRDA:23,2,1,1 +BRDA:54,3,0,0 +BRDA:54,3,1,1 +BRDA:188,4,0,0 +BRDA:188,4,1,1 +BRDA:199,5,0,0 +BRDA:199,5,1,0 +BRDA:200,6,0,0 +BRDA:200,6,1,0 +BRF:14 +BRH:4 +end_of_record +TN: +SF:pages/notsupported.js +FN:10,notSupported +FN:16,(anonymous_1) +FN:23,onClickEn +FN:28,onClickFr +FN:477,(anonymous_4) +FNF:5 +FNH:2 +FNDA:1,notSupported +FNDA:1,(anonymous_1) +FNDA:0,onClickEn +FNDA:0,onClickFr +FNDA:0,(anonymous_4) +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:16,1 +DA:17,1 +DA:18,0 +DA:19,0 +DA:24,0 +DA:25,0 +DA:29,0 +DA:30,0 +DA:32,1 +DA:477,1 +DA:478,0 +DA:480,0 +LF:16 +LH:8 +BRDA:17,0,0,0 +BRDA:17,0,1,1 +BRDA:18,1,0,0 +BRDA:18,1,1,0 +BRDA:36,2,0,0 +BRDA:36,2,1,1 +BRDA:79,3,0,0 +BRDA:79,3,1,1 +BRDA:155,4,0,0 +BRDA:155,4,1,1 +BRDA:160,5,0,0 +BRDA:160,5,1,1 +BRDA:183,6,0,0 +BRDA:183,6,1,1 +BRDA:211,7,0,0 +BRDA:211,7,1,1 +BRDA:216,8,0,0 +BRDA:216,8,1,1 +BRDA:230,9,0,0 +BRDA:230,9,1,1 +BRDA:235,10,0,0 +BRDA:235,10,1,1 +BRDA:249,11,0,0 +BRDA:249,11,1,1 +BRDA:254,12,0,0 +BRDA:254,12,1,1 +BRDA:268,13,0,0 +BRDA:268,13,1,1 +BRDA:273,14,0,0 +BRDA:273,14,1,1 +BRDA:294,15,0,0 +BRDA:294,15,1,1 +BRDA:295,16,0,0 +BRDA:295,16,1,1 +BRDA:370,17,0,0 +BRDA:370,17,1,1 +BRDA:372,18,0,0 +BRDA:372,18,1,1 +BRDA:454,19,0,0 +BRDA:454,19,1,1 +BRDA:459,20,0,0 +BRDA:459,20,1,1 +BRDA:468,21,0,0 +BRDA:468,21,1,1 +BRF:44 +BRH:21 +end_of_record +TN: +SF:pages/api/healthcheck.js +FN:2,handler +FNF:1 +FNH:0 +FNDA:0,handler +DA:3,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:pages/api/report-a-problem.js +FN:7,handler +FNF:1 +FNH:1 +FNDA:5,handler +DA:8,5 +DA:10,5 +DA:14,2 +DA:16,3 +DA:17,3 +DA:46,2 +DA:47,1 +DA:49,1 +DA:50,1 +DA:53,1 +DA:54,1 +DA:58,0 +DA:59,0 +LF:13 +LH:11 +BRDA:8,0,0,5 +BRDA:8,0,1,0 +BRDA:10,1,0,2 +BRDA:10,1,1,3 +BRDA:11,2,0,5 +BRDA:11,2,1,4 +BRDA:20,3,0,3 +BRDA:20,3,1,0 +BRDA:46,4,0,1 +BRDA:46,4,1,1 +BRF:10 +BRH:8 +end_of_record +TN: +SF:pages/api/robots.js +FN:7,handler +FNF:1 +FNH:1 +FNDA:2,handler +DA:8,2 +DA:9,1 +DA:10,1 +DA:11,1 +DA:12,1 +DA:14,1 +DA:15,1 +DA:17,2 +LF:8 +LH:8 +BRDA:8,0,0,1 +BRDA:8,0,1,1 +BRF:2 +BRH:2 +end_of_record +TN: +SF:pages/projects/benefits-navigator/[id].js +FN:12,DynamicBenefitNavigatorPage +FN:16,(anonymous_1) +FN:417,getStaticPaths +FN:424,(anonymous_3) +FN:435,(anonymous_4) +FN:446,(anonymous_5) +FNF:6 +FNH:0 +FNDA:0,DynamicBenefitNavigatorPage +FNDA:0,(anonymous_1) +FNDA:0,getStaticPaths +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:13,0 +DA:14,0 +DA:16,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:23,0 +DA:419,0 +DA:423,0 +DA:424,0 +DA:425,0 +DA:429,0 +DA:435,0 +DA:437,0 +DA:441,0 +DA:444,0 +DA:446,0 +DA:447,0 +DA:453,0 +LF:19 +LH:0 +BRDA:17,0,0,0 +BRDA:17,0,1,0 +BRDA:18,1,0,0 +BRDA:18,1,1,0 +BRDA:28,2,0,0 +BRDA:28,2,1,0 +BRDA:37,3,0,0 +BRDA:37,3,1,0 +BRDA:45,4,0,0 +BRDA:45,4,1,0 +BRDA:52,5,0,0 +BRDA:52,5,1,0 +BRDA:61,6,0,0 +BRDA:61,6,1,0 +BRDA:71,7,0,0 +BRDA:71,7,1,0 +BRDA:78,8,0,0 +BRDA:78,8,1,0 +BRDA:93,9,0,0 +BRDA:93,9,1,0 +BRDA:111,10,0,0 +BRDA:111,10,1,0 +BRDA:120,11,0,0 +BRDA:120,11,1,0 +BRDA:138,12,0,0 +BRDA:138,12,1,0 +BRDA:149,13,0,0 +BRDA:149,13,1,0 +BRDA:158,14,0,0 +BRDA:158,14,1,0 +BRDA:177,15,0,0 +BRDA:177,15,1,0 +BRDA:186,16,0,0 +BRDA:186,16,1,0 +BRDA:192,17,0,0 +BRDA:192,17,1,0 +BRDA:195,18,0,0 +BRDA:195,18,1,0 +BRDA:204,19,0,0 +BRDA:204,19,1,0 +BRDA:207,20,0,0 +BRDA:207,20,1,0 +BRDA:228,21,0,0 +BRDA:228,21,1,0 +BRDA:234,22,0,0 +BRDA:234,22,1,0 +BRDA:241,23,0,0 +BRDA:241,23,1,0 +BRDA:248,24,0,0 +BRDA:248,24,1,0 +BRDA:255,25,0,0 +BRDA:255,25,1,0 +BRDA:264,26,0,0 +BRDA:264,26,1,0 +BRDA:271,27,0,0 +BRDA:271,27,1,0 +BRDA:278,28,0,0 +BRDA:278,28,1,0 +BRDA:285,29,0,0 +BRDA:285,29,1,0 +BRDA:291,30,0,0 +BRDA:291,30,1,0 +BRDA:297,31,0,0 +BRDA:297,31,1,0 +BRDA:304,32,0,0 +BRDA:304,32,1,0 +BRDA:310,33,0,0 +BRDA:310,33,1,0 +BRDA:317,34,0,0 +BRDA:317,34,1,0 +BRDA:325,35,0,0 +BRDA:325,35,1,0 +BRDA:332,36,0,0 +BRDA:332,36,1,0 +BRDA:339,37,0,0 +BRDA:339,37,1,0 +BRDA:346,38,0,0 +BRDA:346,38,1,0 +BRDA:354,39,0,0 +BRDA:354,39,1,0 +BRDA:361,40,0,0 +BRDA:361,40,1,0 +BRDA:368,41,0,0 +BRDA:368,41,1,0 +BRDA:376,42,0,0 +BRDA:376,42,1,0 +BRDA:383,43,0,0 +BRDA:383,43,1,0 +BRDA:390,44,0,0 +BRDA:390,44,1,0 +BRDA:398,45,0,0 +BRDA:398,45,1,0 +BRDA:408,46,0,0 +BRDA:408,46,1,0 +BRDA:425,47,0,0 +BRDA:425,47,1,0 +BRDA:448,48,0,0 +BRDA:448,48,1,0 +BRF:98 +BRH:0 +end_of_record +TN: +SF:pages/projects/benefits-navigator/index.js +FN:13,OasBenefitsEstimator +FN:18,(anonymous_1) +FN:36,generateReactElements +FN:45,(anonymous_3) +FN:56,(anonymous_4) +FN:80,(anonymous_5) +FN:105,(anonymous_6) +FN:781,(anonymous_7) +FNF:8 +FNH:0 +FNDA:0,OasBenefitsEstimator +FNDA:0,(anonymous_1) +FNDA:0,generateReactElements +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +DA:14,0 +DA:15,0 +DA:16,0 +DA:19,0 +DA:25,0 +DA:37,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:44,0 +DA:45,0 +DA:46,0 +DA:50,0 +DA:55,0 +DA:56,0 +DA:57,0 +DA:61,0 +DA:66,0 +DA:67,0 +DA:72,0 +DA:73,0 +DA:77,0 +DA:80,0 +DA:81,0 +DA:105,0 +DA:106,0 +DA:107,0 +DA:108,0 +DA:112,0 +DA:781,0 +DA:783,0 +DA:787,0 +DA:791,0 +LF:33 +LH:0 +BRDA:19,0,0,0 +BRDA:19,0,1,0 +BRDA:19,0,2,0 +BRDA:19,0,3,0 +BRDA:40,1,0,0 +BRDA:40,1,1,0 +BRDA:44,2,0,0 +BRDA:44,2,1,0 +BRDA:55,3,0,0 +BRDA:55,3,1,0 +BRDA:66,4,0,0 +BRDA:66,4,1,0 +BRDA:72,5,0,0 +BRDA:72,5,1,0 +BRDA:85,6,0,0 +BRDA:85,6,1,0 +BRDA:90,7,0,0 +BRDA:90,7,1,0 +BRDA:94,8,0,0 +BRDA:94,8,1,0 +BRDA:95,9,0,0 +BRDA:95,9,1,0 +BRDA:97,10,0,0 +BRDA:97,10,1,0 +BRDA:106,11,0,0 +BRDA:106,11,1,0 +BRDA:107,12,0,0 +BRDA:107,12,1,0 +BRDA:117,13,0,0 +BRDA:117,13,1,0 +BRDA:126,14,0,0 +BRDA:126,14,1,0 +BRDA:134,15,0,0 +BRDA:134,15,1,0 +BRDA:141,16,0,0 +BRDA:141,16,1,0 +BRDA:153,17,0,0 +BRDA:153,17,1,0 +BRDA:163,18,0,0 +BRDA:163,18,1,0 +BRDA:173,19,0,0 +BRDA:173,19,1,0 +BRDA:180,20,0,0 +BRDA:180,20,1,0 +BRDA:195,21,0,0 +BRDA:195,21,1,0 +BRDA:215,22,0,0 +BRDA:215,22,1,0 +BRDA:224,23,0,0 +BRDA:224,23,1,0 +BRDA:230,24,0,0 +BRDA:230,24,1,0 +BRDA:242,25,0,0 +BRDA:242,25,1,0 +BRDA:255,26,0,0 +BRDA:255,26,1,0 +BRDA:264,27,0,0 +BRDA:264,27,1,0 +BRDA:271,28,0,0 +BRDA:271,28,1,0 +BRDA:283,29,0,0 +BRDA:283,29,1,0 +BRDA:298,30,0,0 +BRDA:298,30,1,0 +BRDA:311,31,0,0 +BRDA:311,31,1,0 +BRDA:316,32,0,0 +BRDA:316,32,1,0 +BRDA:327,33,0,0 +BRDA:327,33,1,0 +BRDA:336,34,0,0 +BRDA:336,34,1,0 +BRDA:341,35,0,0 +BRDA:341,35,1,0 +BRDA:346,36,0,0 +BRDA:346,36,1,0 +BRDA:354,37,0,0 +BRDA:354,37,1,0 +BRDA:361,38,0,0 +BRDA:361,38,1,0 +BRDA:368,39,0,0 +BRDA:368,39,1,0 +BRDA:373,40,0,0 +BRDA:373,40,1,0 +BRDA:378,41,0,0 +BRDA:378,41,1,0 +BRDA:390,42,0,0 +BRDA:390,42,1,0 +BRDA:395,43,0,0 +BRDA:395,43,1,0 +BRDA:400,44,0,0 +BRDA:400,44,1,0 +BRDA:406,45,0,0 +BRDA:406,45,1,0 +BRDA:413,46,0,0 +BRDA:413,46,1,0 +BRDA:420,47,0,0 +BRDA:420,47,1,0 +BRDA:428,48,0,0 +BRDA:428,48,1,0 +BRDA:434,49,0,0 +BRDA:434,49,1,0 +BRDA:443,50,0,0 +BRDA:443,50,1,0 +BRDA:450,51,0,0 +BRDA:450,51,1,0 +BRDA:462,52,0,0 +BRDA:462,52,1,0 +BRDA:469,53,0,0 +BRDA:469,53,1,0 +BRDA:477,54,0,0 +BRDA:477,54,1,0 +BRDA:484,55,0,0 +BRDA:484,55,1,0 +BRDA:491,56,0,0 +BRDA:491,56,1,0 +BRDA:504,57,0,0 +BRDA:504,57,1,0 +BRDA:511,58,0,0 +BRDA:511,58,1,0 +BRDA:524,59,0,0 +BRDA:524,59,1,0 +BRDA:531,60,0,0 +BRDA:531,60,1,0 +BRDA:543,61,0,0 +BRDA:543,61,1,0 +BRDA:550,62,0,0 +BRDA:550,62,1,0 +BRDA:558,63,0,0 +BRDA:558,63,1,0 +BRDA:565,64,0,0 +BRDA:565,64,1,0 +BRDA:572,65,0,0 +BRDA:572,65,1,0 +BRDA:585,66,0,0 +BRDA:585,66,1,0 +BRDA:592,67,0,0 +BRDA:592,67,1,0 +BRDA:605,68,0,0 +BRDA:605,68,1,0 +BRDA:612,69,0,0 +BRDA:612,69,1,0 +BRDA:624,70,0,0 +BRDA:624,70,1,0 +BRDA:631,71,0,0 +BRDA:631,71,1,0 +BRDA:639,72,0,0 +BRDA:639,72,1,0 +BRDA:646,73,0,0 +BRDA:646,73,1,0 +BRDA:653,74,0,0 +BRDA:653,74,1,0 +BRDA:660,75,0,0 +BRDA:660,75,1,0 +BRDA:667,76,0,0 +BRDA:667,76,1,0 +BRDA:680,77,0,0 +BRDA:680,77,1,0 +BRDA:687,78,0,0 +BRDA:687,78,1,0 +BRDA:702,79,0,0 +BRDA:702,79,1,0 +BRDA:708,80,0,0 +BRDA:708,80,1,0 +BRDA:714,81,0,0 +BRDA:714,81,1,0 +BRDA:726,82,0,0 +BRDA:726,82,1,0 +BRDA:736,83,0,0 +BRDA:736,83,1,0 +BRDA:772,84,0,0 +BRDA:772,84,1,0 +BRF:172 +BRH:0 +end_of_record +TN: +SF:pages/projects/dashboard/index.js +FN:12,MscaDashboard +FN:16,(anonymous_1) +FN:34,(anonymous_2) +FN:419,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,MscaDashboard +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:13,0 +DA:14,0 +DA:17,0 +DA:23,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:41,0 +DA:419,0 +DA:421,0 +DA:425,0 +DA:429,0 +LF:13 +LH:0 +BRDA:17,0,0,0 +BRDA:17,0,1,0 +BRDA:17,0,2,0 +BRDA:17,0,3,0 +BRDA:35,1,0,0 +BRDA:35,1,1,0 +BRDA:36,2,0,0 +BRDA:36,2,1,0 +BRDA:46,3,0,0 +BRDA:46,3,1,0 +BRDA:55,4,0,0 +BRDA:55,4,1,0 +BRDA:63,5,0,0 +BRDA:63,5,1,0 +BRDA:70,6,0,0 +BRDA:70,6,1,0 +BRDA:82,7,0,0 +BRDA:82,7,1,0 +BRDA:92,8,0,0 +BRDA:92,8,1,0 +BRDA:102,9,0,0 +BRDA:102,9,1,0 +BRDA:109,10,0,0 +BRDA:109,10,1,0 +BRDA:124,11,0,0 +BRDA:124,11,1,0 +BRDA:144,12,0,0 +BRDA:144,12,1,0 +BRDA:153,13,0,0 +BRDA:153,13,1,0 +BRDA:159,14,0,0 +BRDA:159,14,1,0 +BRDA:171,15,0,0 +BRDA:171,15,1,0 +BRDA:182,16,0,0 +BRDA:182,16,1,0 +BRDA:191,17,0,0 +BRDA:191,17,1,0 +BRDA:198,18,0,0 +BRDA:198,18,1,0 +BRDA:210,19,0,0 +BRDA:210,19,1,0 +BRDA:223,20,0,0 +BRDA:223,20,1,0 +BRDA:234,21,0,0 +BRDA:234,21,1,0 +BRDA:239,22,0,0 +BRDA:239,22,1,0 +BRDA:239,23,0,0 +BRDA:239,23,1,0 +BRDA:250,24,0,0 +BRDA:250,24,1,0 +BRDA:259,25,0,0 +BRDA:259,25,1,0 +BRDA:264,26,0,0 +BRDA:264,26,1,0 +BRDA:269,27,0,0 +BRDA:269,27,1,0 +BRDA:277,28,0,0 +BRDA:277,28,1,0 +BRDA:284,29,0,0 +BRDA:284,29,1,0 +BRDA:291,30,0,0 +BRDA:291,30,1,0 +BRDA:296,31,0,0 +BRDA:296,31,1,0 +BRDA:301,32,0,0 +BRDA:301,32,1,0 +BRDA:314,33,0,0 +BRDA:314,33,1,0 +BRDA:320,34,0,0 +BRDA:320,34,1,0 +BRDA:326,35,0,0 +BRDA:326,35,1,0 +BRDA:332,36,0,0 +BRDA:332,36,1,0 +BRDA:338,37,0,0 +BRDA:338,37,1,0 +BRDA:344,38,0,0 +BRDA:344,38,1,0 +BRDA:350,39,0,0 +BRDA:350,39,1,0 +BRDA:356,40,0,0 +BRDA:356,40,1,0 +BRDA:362,41,0,0 +BRDA:362,41,1,0 +BRDA:368,42,0,0 +BRDA:368,42,1,0 +BRDA:374,43,0,0 +BRDA:374,43,1,0 +BRDA:410,44,0,0 +BRDA:410,44,1,0 +BRF:92 +BRH:0 +end_of_record +TN: +SF:pages/projects/oas-benefits-estimator/[id].js +FN:12,OASUpdatePage +FN:17,(anonymous_1) +FN:448,getStaticPaths +FN:456,(anonymous_3) +FN:467,(anonymous_4) +FN:478,(anonymous_5) +FNF:6 +FNH:0 +FNDA:0,OASUpdatePage +FNDA:0,(anonymous_1) +FNDA:0,getStaticPaths +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:13,0 +DA:14,0 +DA:15,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:24,0 +DA:450,0 +DA:454,0 +DA:456,0 +DA:457,0 +DA:461,0 +DA:467,0 +DA:469,0 +DA:473,0 +DA:476,0 +DA:478,0 +DA:479,0 +DA:484,0 +LF:20 +LH:0 +BRDA:18,0,0,0 +BRDA:18,0,1,0 +BRDA:19,1,0,0 +BRDA:19,1,1,0 +BRDA:29,2,0,0 +BRDA:29,2,1,0 +BRDA:38,3,0,0 +BRDA:38,3,1,0 +BRDA:46,4,0,0 +BRDA:46,4,1,0 +BRDA:53,5,0,0 +BRDA:53,5,1,0 +BRDA:62,6,0,0 +BRDA:62,6,1,0 +BRDA:72,7,0,0 +BRDA:72,7,1,0 +BRDA:79,8,0,0 +BRDA:79,8,1,0 +BRDA:94,9,0,0 +BRDA:94,9,1,0 +BRDA:112,10,0,0 +BRDA:112,10,1,0 +BRDA:121,11,0,0 +BRDA:121,11,1,0 +BRDA:127,12,0,0 +BRDA:127,12,1,0 +BRDA:139,13,0,0 +BRDA:139,13,1,0 +BRDA:150,14,0,0 +BRDA:150,14,1,0 +BRDA:159,15,0,0 +BRDA:159,15,1,0 +BRDA:166,16,0,0 +BRDA:166,16,1,0 +BRDA:178,17,0,0 +BRDA:178,17,1,0 +BRDA:187,18,0,0 +BRDA:187,18,1,0 +BRDA:195,19,0,0 +BRDA:195,19,1,0 +BRDA:198,20,0,0 +BRDA:198,20,1,0 +BRDA:207,21,0,0 +BRDA:207,21,1,0 +BRDA:210,22,0,0 +BRDA:210,22,1,0 +BRDA:223,23,0,0 +BRDA:223,23,1,0 +BRDA:228,24,0,0 +BRDA:228,24,1,0 +BRDA:237,25,0,0 +BRDA:237,25,1,0 +BRDA:242,26,0,0 +BRDA:242,26,1,0 +BRDA:253,27,0,0 +BRDA:253,27,1,0 +BRDA:258,28,0,0 +BRDA:258,28,1,0 +BRDA:263,29,0,0 +BRDA:263,29,1,0 +BRDA:269,30,0,0 +BRDA:269,30,1,0 +BRDA:276,31,0,0 +BRDA:276,31,1,0 +BRDA:283,32,0,0 +BRDA:283,32,1,0 +BRDA:291,33,0,0 +BRDA:291,33,1,0 +BRDA:296,34,0,0 +BRDA:296,34,1,0 +BRDA:301,35,0,0 +BRDA:301,35,1,0 +BRDA:306,36,0,0 +BRDA:306,36,1,0 +BRDA:311,37,0,0 +BRDA:311,37,1,0 +BRDA:316,38,0,0 +BRDA:316,38,1,0 +BRDA:321,39,0,0 +BRDA:321,39,1,0 +BRDA:326,40,0,0 +BRDA:326,40,1,0 +BRDA:331,41,0,0 +BRDA:331,41,1,0 +BRDA:337,42,0,0 +BRDA:337,42,1,0 +BRDA:344,43,0,0 +BRDA:344,43,1,0 +BRDA:352,44,0,0 +BRDA:352,44,1,0 +BRDA:358,45,0,0 +BRDA:358,45,1,0 +BRDA:365,46,0,0 +BRDA:365,46,1,0 +BRDA:372,47,0,0 +BRDA:372,47,1,0 +BRDA:380,48,0,0 +BRDA:380,48,1,0 +BRDA:385,49,0,0 +BRDA:385,49,1,0 +BRDA:390,50,0,0 +BRDA:390,50,1,0 +BRDA:399,51,0,0 +BRDA:399,51,1,0 +BRDA:404,52,0,0 +BRDA:404,52,1,0 +BRDA:414,53,0,0 +BRDA:414,53,1,0 +BRDA:419,54,0,0 +BRDA:419,54,1,0 +BRDA:426,55,0,0 +BRDA:426,55,1,0 +BRDA:430,56,0,0 +BRDA:430,56,1,0 +BRDA:439,57,0,0 +BRDA:439,57,1,0 +BRDA:457,58,0,0 +BRDA:457,58,1,0 +BRDA:480,59,0,0 +BRDA:480,59,1,0 +BRF:120 +BRH:0 +end_of_record +TN: +SF:pages/projects/oas-benefits-estimator/index.js +FN:13,OasBenefitsEstimator +FN:18,(anonymous_1) +FN:36,(anonymous_2) +FN:61,(anonymous_3) +FN:451,(anonymous_4) +FNF:5 +FNH:4 +FNDA:1,OasBenefitsEstimator +FNDA:12,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:1,(anonymous_3) +FNDA:0,(anonymous_4) +DA:14,1 +DA:15,1 +DA:16,1 +DA:19,12 +DA:25,1 +DA:36,1 +DA:37,1 +DA:61,1 +DA:62,1 +DA:63,0 +DA:64,0 +DA:68,1 +DA:451,1 +DA:453,0 +DA:457,0 +DA:461,0 +LF:16 +LH:11 +BRDA:19,0,0,12 +BRDA:19,0,1,11 +BRDA:19,0,2,10 +BRDA:19,0,3,9 +BRDA:41,1,0,0 +BRDA:41,1,1,1 +BRDA:46,2,0,1 +BRDA:46,2,1,1 +BRDA:46,3,0,0 +BRDA:46,3,1,1 +BRDA:50,4,0,0 +BRDA:50,4,1,1 +BRDA:51,5,0,0 +BRDA:51,5,1,1 +BRDA:53,6,0,0 +BRDA:53,6,1,1 +BRDA:62,7,0,0 +BRDA:62,7,1,1 +BRDA:63,8,0,0 +BRDA:63,8,1,0 +BRDA:73,9,0,0 +BRDA:73,9,1,1 +BRDA:82,10,0,0 +BRDA:82,10,1,1 +BRDA:90,11,0,0 +BRDA:90,11,1,1 +BRDA:97,12,0,0 +BRDA:97,12,1,1 +BRDA:109,13,0,0 +BRDA:109,13,1,1 +BRDA:119,14,0,0 +BRDA:119,14,1,1 +BRDA:129,15,0,0 +BRDA:129,15,1,1 +BRDA:136,16,0,0 +BRDA:136,16,1,1 +BRDA:151,17,0,0 +BRDA:151,17,1,1 +BRDA:171,18,0,0 +BRDA:171,18,1,1 +BRDA:180,19,0,0 +BRDA:180,19,1,1 +BRDA:186,20,0,0 +BRDA:186,20,1,1 +BRDA:198,21,0,0 +BRDA:198,21,1,1 +BRDA:209,22,0,0 +BRDA:209,22,1,1 +BRDA:218,23,0,0 +BRDA:218,23,1,1 +BRDA:225,24,0,0 +BRDA:225,24,1,1 +BRDA:237,25,0,0 +BRDA:237,25,1,1 +BRDA:250,26,0,0 +BRDA:250,26,1,1 +BRDA:263,27,0,0 +BRDA:263,27,1,1 +BRDA:268,28,0,1 +BRDA:268,28,1,1 +BRDA:268,29,0,0 +BRDA:268,29,1,1 +BRDA:279,30,0,0 +BRDA:279,30,1,1 +BRDA:288,31,0,0 +BRDA:288,31,1,1 +BRDA:293,32,0,0 +BRDA:293,32,1,1 +BRDA:298,33,0,0 +BRDA:298,33,1,1 +BRDA:306,34,0,0 +BRDA:306,34,1,1 +BRDA:313,35,0,0 +BRDA:313,35,1,1 +BRDA:320,36,0,0 +BRDA:320,36,1,1 +BRDA:325,37,0,0 +BRDA:325,37,1,1 +BRDA:330,38,0,0 +BRDA:330,38,1,1 +BRDA:342,39,0,0 +BRDA:342,39,1,1 +BRDA:351,40,0,0 +BRDA:351,40,1,1 +BRDA:356,41,0,0 +BRDA:356,41,1,1 +BRDA:363,42,0,0 +BRDA:363,42,1,1 +BRDA:368,43,0,0 +BRDA:368,43,1,1 +BRDA:373,44,0,0 +BRDA:373,44,1,1 +BRDA:378,45,0,0 +BRDA:378,45,1,1 +BRDA:384,46,0,0 +BRDA:384,46,1,1 +BRDA:393,47,0,0 +BRDA:393,47,1,1 +BRDA:398,48,0,0 +BRDA:398,48,1,1 +BRDA:406,49,0,0 +BRDA:406,49,1,1 +BRDA:417,50,0,0 +BRDA:417,50,1,1 +BRDA:422,51,0,0 +BRDA:422,51,1,1 +BRDA:429,52,0,0 +BRDA:429,52,1,1 +BRDA:433,53,0,0 +BRDA:433,53,1,1 +BRDA:442,54,0,0 +BRDA:442,54,1,1 +BRF:112 +BRH:59 +end_of_record