Merged PR 333: initial commit

initial commit

Related work items: #5123, #5124, #5125
This commit is contained in:
Robert Bond
2021-06-29 12:01:48 +00:00
committed by Gary Trembath
103 changed files with 44862 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
node_modules
+39
View File
@@ -0,0 +1,39 @@
{
"polyfillFiles": [
"static/chunks/polyfills.js"
],
"devFiles": [
"static/chunks/react-refresh.js"
],
"ampDevFiles": [
"static/chunks/webpack.js",
"static/chunks/amp.js"
],
"lowPriorityFiles": [
"static/development/_buildManifest.js",
"static/development/_ssgManifest.js"
],
"pages": {
"/": [
"static/chunks/webpack.js",
"static/chunks/main.js",
"static/chunks/pages/index.js"
],
"/_app": [
"static/chunks/webpack.js",
"static/chunks/main.js",
"static/chunks/pages/_app.js"
],
"/_error": [
"static/chunks/webpack.js",
"static/chunks/main.js",
"static/chunks/pages/_error.js"
],
"/myportal": [
"static/chunks/webpack.js",
"static/chunks/main.js",
"static/chunks/pages/myportal.js"
]
},
"ampFirstPages": []
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+8
View File
@@ -0,0 +1,8 @@
{
"../node_modules/next/dist/client/next-dev.js -> ./dev/noop": {
"id": "./node_modules/next/dist/client/dev/noop.js",
"files": [
"static/chunks/node_modules_next_dist_client_dev_noop_js.js"
]
}
}
+25
View File
@@ -0,0 +1,25 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "locales_cy_common_json";
exports.ids = ["locales_cy_common_json"];
exports.modules = {
/***/ "./locales/cy/common.json":
/*!********************************!*\
!*** ./locales/cy/common.json ***!
\********************************/
/***/ (function(module) {
"use strict";
module.exports = JSON.parse('{"service-name":"Porth Gwaith Achos Apeliadau","breadcrumb-back-link":"Yn ôl","error-radio":"Dewiswch opsiwn","error-checkbox":"Enter a value","error-textbox":"Choose an option","available-in":"English","continue-button":"Parhewch","submit-and-start":"Cyflwyno a dechrau\'r cwrs","footer-terms-conditions-link":"Telerau ac amodau","footer-privacy-link":"Rhybudd Preifatrwydd","footer-cookies-link":"Chwcis","footer-accessibility-link":"Hygyrchedd","footer-feedback-link":"Adborth"}');
/***/ })
};
;
+25
View File
@@ -0,0 +1,25 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "locales_cy_home_json";
exports.ids = ["locales_cy_home_json"];
exports.modules = {
/***/ "./locales/cy/home.json":
/*!******************************!*\
!*** ./locales/cy/home.json ***!
\******************************/
/***/ (function(module) {
"use strict";
module.exports = JSON.parse('{"login-card-title":"Mewngofnodi neu cofrestru","login-card-id-label":"Dynodydd Defnyddiwr (ID) Porth y Llywodraeth","login-card-id-hint":"Gallai hyn fod hyd at 12 o gymeriadau.","login-card-password-label":"Cyfrinair","login-card-button":"Mewngofnodi","login-card-register-label":"Cwsmer newydd wyf a hoffwn","login-card-register-link":"Gofrestru","login-card-forgotten-label":"Wedi anghofio eich cyfrinair neu\'ch enw defnyddiwr?","login-card-forgotten-link":"Cliciwch yma","casesearch-card-title":"Chwilio am achos","casesearch-card-search-hint":"Chwiliwch drwy roi cyfeirnod 7 digid yr achos","casesearch-card-search-example-label":"Enghraifft","casesearch-card-button":"Cyflwyno Chwiliad","casesearch-card-advanced-link":"Fel arall, gallwch chwilio gan ddefnyddio ein meini prawf eraill gyda\'n chwiliad uwch","casescomment-card-title":"Gwneud sylw ar achos","casescomment-card-paragraph-one":"Chwiliwch am eich achos a chliciwch y botwm \'Gwneud Sylw\'. Y ffordd orau o roi sylwadau ar achos cyfredol yw trwy gofrestru gyda ni\'n gyntaf gan fod hynny\'n gwneud olrhain achosion a chyflwyno sylwadau yn haws.","casescomment-card-paragraph-two":"Yn achos apeliadau deiliaid tai ac apeliadau masnachol, nid yw partïon â buddiant yn gallu gwneud sylwadau yn y cam apelio. Caiff unrhyw sylwadau a wneir yn y cam ymgeisio eu darparu gan yr awdurdod cynllunio lleol ac fe\'u hystyrir gan yr Arolygydd.","inspectorate-card-visit-label":"Ymweld Yr Arolygiaeth Gynllunio","inspectorate-card-visit-link":"Hafan"}');
/***/ })
};
;
+25
View File
@@ -0,0 +1,25 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "locales_cy_myportal_json";
exports.ids = ["locales_cy_myportal_json"];
exports.modules = {
/***/ "./locales/cy/myportal.json":
/*!**********************************!*\
!*** ./locales/cy/myportal.json ***!
\**********************************/
/***/ (function(module) {
"use strict";
module.exports = JSON.parse('{"viewall-link":"Gweld y cyfan","makenewappeal-card-title":"Gwneud apêl newydd","makenewappeal-card-paragraph-one":"Cyn cyflwyno apêl newydd, sicrhewch eich bod wedi darllen yr holl ganllawiau sy\'n","makenewappeal-card-link":"berthnasol i\'r math o apêl sydd gennych.","makenewappeal-card-paragraph-two":"Wedi i chi glicio\'r botwm \'gwneud apêl newydd\' isod, cewch eich arwain drwy broses i\'ch helpu i ddewis y math cywir o apêl.","makenewappeal-card-button-label":"Gwneud apêl newydd","mycases-card-title":"Fy achosion","searchcases-card-title":"Chwilio am achos/cyflwyno cynrychiolaeth","searchcases-card-search-hint":"Chwiliwch drwy roi cyfeirnod 7 digid yr achos yn y blwch isod:","searchcases-card-search-example-label":"Enghraifft","searchcases-card-button":"Cyflwyno Chwiliad","searchcases-card-advanced-link":"Fel arall, gallwch chwilio gan ddefnyddio ein meini prawf eraill gyda\'n chwiliad uwch","awatitingsubmission-card-title":"Eto iw gyflwyno","myrepresentations-card-title":"Cyflwyniadau\'r achos","watchedcases-card-title":"Achosion a gwylio"}');
/***/ })
};
;
+25
View File
@@ -0,0 +1,25 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "locales_en_common_json";
exports.ids = ["locales_en_common_json"];
exports.modules = {
/***/ "./locales/en/common.json":
/*!********************************!*\
!*** ./locales/en/common.json ***!
\********************************/
/***/ (function(module) {
"use strict";
module.exports = JSON.parse('{"service-name":"Appeals Casework Portal","breadcrumb-back-link":"Back","error-radio":"Choose an option","error-checkbox":"Choose an option","error-textbox":"Choose an option","available-in":"Cymraeg","continue-button":"Continue","submit-and-start":"Submit and start course","footer-terms-conditions-link":"Terms and conditions","footer-privacy-link":"Privacy Notice","footer-cookies-link":"Cookies","footer-accessibility-link":"Accessibility","footer-feedback-link":"Feedback"}');
/***/ })
};
;
+25
View File
@@ -0,0 +1,25 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "locales_en_home_json";
exports.ids = ["locales_en_home_json"];
exports.modules = {
/***/ "./locales/en/home.json":
/*!******************************!*\
!*** ./locales/en/home.json ***!
\******************************/
/***/ (function(module) {
"use strict";
module.exports = JSON.parse('{"login-card-title":"Log in or Register","login-card-id-label":"Government Gateway user ID","login-card-id-hint":"This could be up to 12 characters.","login-card-password-label":"Password","login-card-button":"Sign in","login-card-register-label":"I am a new user and would like to","login-card-register-link":"Register","login-card-forgotten-label":"Forgotten your password or username?","login-card-forgotten-link":"Click here","casesearch-card-title":"Search for a case","casesearch-card-search-hint":"Search by entering the 7 digit case reference number:","casesearch-card-search-example-label":"Example","casesearch-card-button":"Submit Search","casesearch-card-advanced-link":"Advanced Search","casescomment-card-title":"Comment on a case","casescomment-card-paragraph-one":"Simply search for your case and click on the \'Make Representation\' button. The best way to comment on an existing case is to register with us first as that makes it easier to track cases and submit comments.","casescomment-card-paragraph-two":"For Householder and Commercial appeals, interested parties are unable to make representations at appeal stage. Any representations made at application stage will be provided by the local planning authority and considered by the Inspector.","inspectorate-card-visit-label":"Visit the Planning Inspectorate","inspectorate-card-visit-link":"Home"}');
/***/ })
};
;
+25
View File
@@ -0,0 +1,25 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "locales_en_myportal_json";
exports.ids = ["locales_en_myportal_json"];
exports.modules = {
/***/ "./locales/en/myportal.json":
/*!**********************************!*\
!*** ./locales/en/myportal.json ***!
\**********************************/
/***/ (function(module) {
"use strict";
module.exports = JSON.parse('{"viewall-link":"View all","makenewappeal-card-title":"Make a new appeal","makenewappeal-card-paragraph-one":"Before submitting a new appeal, please ensure you have read all of the guidance","makenewappeal-card-link":"relevant to your appeal type.","makenewappeal-card-paragraph-two":"Once you click the \'make a new appeal\' button below you will be guided through a process to help you select the correct appeal type","makenewappeal-card-button-label":"Make a new appeal","mycases-card-title":"My cases","searchcases-card-title":"Search for a case/submit representation","searchcases-card-search-hint":"Search by entering the 7 digit case reference number:","searchcases-card-search-example-label":"Example","searchcases-card-button":"Submit Search","searchcases-card-advanced-link":"Advanced Search","awatitingsubmission-card-title":"Awaiting submission","myrepresentations-card-title":"My representations","watchedcases-card-title":"Watched cases"}');
/***/ })
};
;
+7
View File
@@ -0,0 +1,7 @@
{
"/_app": "pages/_app.js",
"/_error": "pages/_error.js",
"/_document": "pages/_document.js",
"/myportal": "pages/myportal.js",
"/": "pages/index.js"
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+198
View File
@@ -0,0 +1,198 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
/******/ (function() { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({});
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ var threw = true;
/******/ try {
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ threw = false;
/******/ } finally {
/******/ if(threw) delete __webpack_module_cache__[moduleId];
/******/ }
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = __webpack_modules__;
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ !function() {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function() { return module['default']; } :
/******/ function() { return module; };
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/create fake namespace object */
/******/ !function() {
/******/ var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };
/******/ var leafPrototypes;
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 16: return value when it's Promise-like
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = this(value);
/******/ if(mode & 8) return value;
/******/ if(typeof value === 'object' && value) {
/******/ if((mode & 4) && value.__esModule) return value;
/******/ if((mode & 16) && typeof value.then === 'function') return value;
/******/ }
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ var def = {};
/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
/******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {
/******/ Object.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });
/******/ }
/******/ def['default'] = function() { return value; };
/******/ __webpack_require__.d(ns, def);
/******/ return ns;
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ !function() {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = function(exports, definition) {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/ensure chunk */
/******/ !function() {
/******/ __webpack_require__.f = {};
/******/ // This file contains only the entry chunk.
/******/ // The chunk loading function for additional chunks
/******/ __webpack_require__.e = function(chunkId) {
/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {
/******/ __webpack_require__.f[key](chunkId, promises);
/******/ return promises;
/******/ }, []));
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/get javascript chunk filename */
/******/ !function() {
/******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
/******/ __webpack_require__.u = function(chunkId) {
/******/ // return url for filenames based on template
/******/ return "" + chunkId + ".js";
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ !function() {
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
/******/ }();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ !function() {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/startup entrypoint */
/******/ !function() {
/******/ __webpack_require__.X = function(result, chunkIds, fn) {
/******/ // arguments: chunkIds, moduleId are deprecated
/******/ var moduleId = chunkIds;
/******/ if(!fn) chunkIds = result, fn = function() { return __webpack_require__(__webpack_require__.s = moduleId); };
/******/ chunkIds.map(__webpack_require__.e, __webpack_require__)
/******/ var r = fn();
/******/ return r === undefined ? result : r;
/******/ }
/******/ }();
/******/
/******/ /* webpack/runtime/require chunk loading */
/******/ !function() {
/******/ // no baseURI
/******/
/******/ // object to store loaded chunks
/******/ // "1" means "loaded", otherwise not loaded yet
/******/ var installedChunks = {
/******/ "webpack-runtime": 1
/******/ };
/******/
/******/ // no on chunks loaded
/******/
/******/ var installChunk = function(chunk) {
/******/ var moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;
/******/ for(var moduleId in moreModules) {
/******/ if(__webpack_require__.o(moreModules, moduleId)) {
/******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
/******/ }
/******/ }
/******/ if(runtime) runtime(__webpack_require__);
/******/ for(var i = 0; i < chunkIds.length; i++)
/******/ installedChunks[chunkIds[i]] = 1;
/******/
/******/ };
/******/
/******/ // require() chunk loading for javascript
/******/ __webpack_require__.f.require = function(chunkId, promises) {
/******/ // "1" is the signal for "already loaded"
/******/ if(!installedChunks[chunkId]) {
/******/ if("webpack-runtime" != chunkId) {
/******/ installChunk(require("./" + __webpack_require__.u(chunkId)));
/******/ } else installedChunks[chunkId] = 1;
/******/ }
/******/ };
/******/
/******/ module.exports = __webpack_require__;
/******/ __webpack_require__.C = installChunk;
/******/
/******/ // no HMR
/******/
/******/ // no HMR manifest
/******/ }();
/******/
/************************************************************************/
/******/
/******/
/******/ })()
;
File diff suppressed because one or more lines are too long
@@ -0,0 +1,22 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["locales_cy_common_json"],{
/***/ "./locales/cy/common.json":
/*!********************************!*\
!*** ./locales/cy/common.json ***!
\********************************/
/***/ (function(module) {
"use strict";
module.exports = JSON.parse('{"service-name":"Porth Gwaith Achos Apeliadau","breadcrumb-back-link":"Yn ôl","error-radio":"Dewiswch opsiwn","error-checkbox":"Enter a value","error-textbox":"Choose an option","available-in":"English","continue-button":"Parhewch","submit-and-start":"Cyflwyno a dechrau\'r cwrs","footer-terms-conditions-link":"Telerau ac amodau","footer-privacy-link":"Rhybudd Preifatrwydd","footer-cookies-link":"Chwcis","footer-accessibility-link":"Hygyrchedd","footer-feedback-link":"Adborth"}');
/***/ })
}]);
@@ -0,0 +1,22 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["locales_cy_home_json"],{
/***/ "./locales/cy/home.json":
/*!******************************!*\
!*** ./locales/cy/home.json ***!
\******************************/
/***/ (function(module) {
"use strict";
module.exports = JSON.parse('{"login-card-title":"Mewngofnodi neu cofrestru","login-card-id-label":"Dynodydd Defnyddiwr (ID) Porth y Llywodraeth","login-card-id-hint":"Gallai hyn fod hyd at 12 o gymeriadau.","login-card-password-label":"Cyfrinair","login-card-button":"Mewngofnodi","login-card-register-label":"Cwsmer newydd wyf a hoffwn","login-card-register-link":"Gofrestru","login-card-forgotten-label":"Wedi anghofio eich cyfrinair neu\'ch enw defnyddiwr?","login-card-forgotten-link":"Cliciwch yma","casesearch-card-title":"Chwilio am achos","casesearch-card-search-hint":"Chwiliwch drwy roi cyfeirnod 7 digid yr achos","casesearch-card-search-example-label":"Enghraifft","casesearch-card-button":"Cyflwyno Chwiliad","casesearch-card-advanced-link":"Fel arall, gallwch chwilio gan ddefnyddio ein meini prawf eraill gyda\'n chwiliad uwch","casescomment-card-title":"Gwneud sylw ar achos","casescomment-card-paragraph-one":"Chwiliwch am eich achos a chliciwch y botwm \'Gwneud Sylw\'. Y ffordd orau o roi sylwadau ar achos cyfredol yw trwy gofrestru gyda ni\'n gyntaf gan fod hynny\'n gwneud olrhain achosion a chyflwyno sylwadau yn haws.","casescomment-card-paragraph-two":"Yn achos apeliadau deiliaid tai ac apeliadau masnachol, nid yw partïon â buddiant yn gallu gwneud sylwadau yn y cam apelio. Caiff unrhyw sylwadau a wneir yn y cam ymgeisio eu darparu gan yr awdurdod cynllunio lleol ac fe\'u hystyrir gan yr Arolygydd.","inspectorate-card-visit-label":"Ymweld Yr Arolygiaeth Gynllunio","inspectorate-card-visit-link":"Hafan"}');
/***/ })
}]);
@@ -0,0 +1,22 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["locales_cy_myportal_json"],{
/***/ "./locales/cy/myportal.json":
/*!**********************************!*\
!*** ./locales/cy/myportal.json ***!
\**********************************/
/***/ (function(module) {
"use strict";
module.exports = JSON.parse('{"viewall-link":"Gweld y cyfan","makenewappeal-card-title":"Gwneud apêl newydd","makenewappeal-card-paragraph-one":"Cyn cyflwyno apêl newydd, sicrhewch eich bod wedi darllen yr holl ganllawiau sy\'n","makenewappeal-card-link":"berthnasol i\'r math o apêl sydd gennych.","makenewappeal-card-paragraph-two":"Wedi i chi glicio\'r botwm \'gwneud apêl newydd\' isod, cewch eich arwain drwy broses i\'ch helpu i ddewis y math cywir o apêl.","makenewappeal-card-button-label":"Gwneud apêl newydd","mycases-card-title":"Fy achosion","searchcases-card-title":"Chwilio am achos/cyflwyno cynrychiolaeth","searchcases-card-search-hint":"Chwiliwch drwy roi cyfeirnod 7 digid yr achos yn y blwch isod:","searchcases-card-search-example-label":"Enghraifft","searchcases-card-button":"Cyflwyno Chwiliad","searchcases-card-advanced-link":"Fel arall, gallwch chwilio gan ddefnyddio ein meini prawf eraill gyda\'n chwiliad uwch","awatitingsubmission-card-title":"Eto iw gyflwyno","myrepresentations-card-title":"Cyflwyniadau\'r achos","watchedcases-card-title":"Achosion a gwylio"}');
/***/ })
}]);
@@ -0,0 +1,22 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["locales_en_common_json"],{
/***/ "./locales/en/common.json":
/*!********************************!*\
!*** ./locales/en/common.json ***!
\********************************/
/***/ (function(module) {
"use strict";
module.exports = JSON.parse('{"service-name":"Appeals Casework Portal","breadcrumb-back-link":"Back","error-radio":"Choose an option","error-checkbox":"Choose an option","error-textbox":"Choose an option","available-in":"Cymraeg","continue-button":"Continue","submit-and-start":"Submit and start course","footer-terms-conditions-link":"Terms and conditions","footer-privacy-link":"Privacy Notice","footer-cookies-link":"Cookies","footer-accessibility-link":"Accessibility","footer-feedback-link":"Feedback"}');
/***/ })
}]);
@@ -0,0 +1,22 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["locales_en_home_json"],{
/***/ "./locales/en/home.json":
/*!******************************!*\
!*** ./locales/en/home.json ***!
\******************************/
/***/ (function(module) {
"use strict";
module.exports = JSON.parse('{"login-card-title":"Log in or Register","login-card-id-label":"Government Gateway user ID","login-card-id-hint":"This could be up to 12 characters.","login-card-password-label":"Password","login-card-button":"Sign in","login-card-register-label":"I am a new user and would like to","login-card-register-link":"Register","login-card-forgotten-label":"Forgotten your password or username?","login-card-forgotten-link":"Click here","casesearch-card-title":"Search for a case","casesearch-card-search-hint":"Search by entering the 7 digit case reference number:","casesearch-card-search-example-label":"Example","casesearch-card-button":"Submit Search","casesearch-card-advanced-link":"Advanced Search","casescomment-card-title":"Comment on a case","casescomment-card-paragraph-one":"Simply search for your case and click on the \'Make Representation\' button. The best way to comment on an existing case is to register with us first as that makes it easier to track cases and submit comments.","casescomment-card-paragraph-two":"For Householder and Commercial appeals, interested parties are unable to make representations at appeal stage. Any representations made at application stage will be provided by the local planning authority and considered by the Inspector.","inspectorate-card-visit-label":"Visit the Planning Inspectorate","inspectorate-card-visit-link":"Home"}');
/***/ })
}]);
@@ -0,0 +1,22 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["locales_en_myportal_json"],{
/***/ "./locales/en/myportal.json":
/*!**********************************!*\
!*** ./locales/en/myportal.json ***!
\**********************************/
/***/ (function(module) {
"use strict";
module.exports = JSON.parse('{"viewall-link":"View all","makenewappeal-card-title":"Make a new appeal","makenewappeal-card-paragraph-one":"Before submitting a new appeal, please ensure you have read all of the guidance","makenewappeal-card-link":"relevant to your appeal type.","makenewappeal-card-paragraph-two":"Once you click the \'make a new appeal\' button below you will be guided through a process to help you select the correct appeal type","makenewappeal-card-button-label":"Make a new appeal","mycases-card-title":"My cases","searchcases-card-title":"Search for a case/submit representation","searchcases-card-search-hint":"Search by entering the 7 digit case reference number:","searchcases-card-search-example-label":"Example","searchcases-card-button":"Submit Search","searchcases-card-advanced-link":"Advanced Search","awatitingsubmission-card-title":"Awaiting submission","myrepresentations-card-title":"My representations","watchedcases-card-title":"Watched cases"}');
/***/ })
}]);
File diff suppressed because one or more lines are too long
@@ -0,0 +1,22 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["node_modules_next_dist_client_dev_noop_js"],{
/***/ "./node_modules/next/dist/client/dev/noop.js":
/*!***************************************************!*\
!*** ./node_modules/next/dist/client/dev/noop.js ***!
\***************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L25vb3AuanM/NGI3OSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQWEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvbm9vcC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9vcC5qcy5tYXAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/noop.js\n");
/***/ })
}]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -0,0 +1 @@
self.__BUILD_MANIFEST = {__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":["static\u002Fchunks\u002Fpages\u002Findex.js"],"/_error":["static\u002Fchunks\u002Fpages\u002F_error.js"],"/myportal":["static\u002Fchunks\u002Fpages\u002Fmyportal.js"],sortedPages:["\u002F","\u002F_app","\u002F_error","\u002Fmyportal"]};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
+1
View File
@@ -0,0 +1 @@
self.__SSG_MANIFEST=new Set;self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
@@ -0,0 +1 @@
{"c":["webpack"],"r":[],"m":[]}
@@ -0,0 +1 @@
{"c":["webpack"],"r":[],"m":[]}
@@ -0,0 +1,30 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
self["webpackHotUpdate_N_E"]("webpack",{},
/******/ function(__webpack_require__) { // webpackRuntimeModules
/******/ "use strict";
/******/
/******/ /* webpack/runtime/getFullHash */
/******/ !function() {
/******/ __webpack_require__.h = function() { return "b77a25e70a2c865059e0"; }
/******/ }();
/******/
/******/ /* webpack/runtime/compat */
/******/
/******/
/******/ // noop fns to prevent runtime errors during initialization
/******/ if (typeof self !== "undefined") {
/******/ self.$RefreshReg$ = function () {};
/******/ self.$RefreshSig$ = function () {
/******/ return function (type) {
/******/ return type;
/******/ };
/******/ };
/******/ }}
);
@@ -0,0 +1,19 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
self["webpackHotUpdate_N_E"]("webpack",{},
/******/ function(__webpack_require__) { // webpackRuntimeModules
/******/ "use strict";
/******/
/******/ /* webpack/runtime/getFullHash */
/******/ !function() {
/******/ __webpack_require__.h = function() { return "b2de792ba221e84c255c"; }
/******/ }();
/******/
/******/ }
);
+34
View File
@@ -0,0 +1,34 @@
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
## Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.
[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
+12
View File
@@ -0,0 +1,12 @@
import Link from "next/link";
export default function Banner() {
return (
<div className="govuk-phase-banner">
<p className="govuk-phase-banner__content">
<span className="govuk-tag govuk-phase-banner__content__tag">beta</span>
<span className="govuk-phase-banner__text">This is a new service</span>
</p>
</div>
);
}
+95
View File
@@ -0,0 +1,95 @@
import Link from "next/link";
import jsonpath from "jsonpath";
import _ from "lodash";
import { useRouter } from "next/router";
const Breadcrumbs = (props) => {
const {
courseContent,
slug,
activitysub,
activity,
applicant_id,
course_id,
applicant_ref,
} = props;
const router = useRouter();
const { course, section } = router.query;
function Breadcrumb() {
if (slug) {
var coursePageURL = course + "/" + slug;
if (_.isEmpty(courseContent)) {
return null;
} else {
var sectionObj = jsonpath.query(
courseContent,
'$..sections[?(@.path=="/' + coursePageURL + '")]'
);
var breadcrumb = sectionObj[0].chapter.title; //sectionObj[0].chapter
return (
<li className="govuk-breadcrumbs__list-item" aria-current="page">
{breadcrumb}
</li>
);
}
} else {
return null;
}
}
return (
<nav
aria-label={"Breadcrumb for " + _.startCase(_.toLower(course))}
role="navigation"
data-module="track-click"
>
<div className="govuk-breadcrumbs ">
<ol className="govuk-breadcrumbs__list">
<li className="govuk-breadcrumbs__list-item">
<Link href="http://www.gov.uk">
<a className="govuk-breadcrumbs__link">GOV.UK</a>
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
<Link href="/">
<a className="govuk-breadcrumbs__link">
Understand the Prevent Duty
</a>
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
<Link href="/portal">
<a className="govuk-breadcrumbs__link">Find the right training</a>
</Link>
</li>
{!_.isEmpty(course) ? (
<li className="govuk-breadcrumbs__list-item">
<Link
href={
"/" +
course +
"?id=" +
applicant_id +
"&refno=" +
applicant_ref +
"&courseid=" +
course_id
}
>
<a className="govuk-breadcrumbs__link">
{_.startCase(_.toLower(course))}
</a>
</Link>
</li>
) : (
""
)}
<Breadcrumb />
</ol>
</div>
</nav>
);
};
export default Breadcrumbs;
+52
View File
@@ -0,0 +1,52 @@
import CookieConsent from "react-cookie-consent";
import Link from "next/link";
const CookieBanner = () => {
return (
<CookieConsent
style={{ position: "inherit", background: "#f3f2f1", display: "block" }}
containerClasses="app-cookie-banner"
buttonClasses="govuk-button"
buttonWrapperClasses="govuk-width-container consentBanner"
declineButtonClasses="govuk-button"
buttonText="Accept all cookies"
disableStyles={true}
enableDeclineButton={true}
flipButtons={true}
hideOnAccept={true}
cookieName="preventTrainingConsent"
>
<div className="app-cookie-banner">
<div
id="global-cookie-message"
className="govuk-clearfix"
data-module="cookie-banner"
role="region"
aria-label="cookie banner"
data-nosnippet=""
>
<div className="govuk-width-container">
<div className="govuk-grid-row">
<div className="govuk-grid-column-two-thirds">
<div className="">
<h2 className="govuk-heading-m">
Tell us whether you accept cookies
</h2>
<p className="govuk-body">
GOV.UK uses cookies which are essential for the site to
work. We also use non-essential cookies to help us improve
government digital services. Any data collected is
anonymised. By continuing to use this site, you agree to our
use of cookies.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</CookieConsent>
);
};
export default CookieBanner;
+58
View File
@@ -0,0 +1,58 @@
import Link from "next/link";
import Header from "./header";
import Banner from "./breadcrumbs";
import Breadcrumbs from "./banner";
import Footer from "./footer";
const Errorpage = () => {
var m = new Date();
var dateString =
m.getUTCDate() +
"/" +
(m.getUTCMonth() + 1) +
"/" +
m.getUTCFullYear() +
" " +
m.getUTCHours() +
":" +
m.getUTCMinutes() +
":" +
m.getUTCSeconds();
return (
<div className="">
<Header courseName="An error has occured" />
<div className="govuk-width-container">
<main
className="govuk-main-wrapper govuk-main-wrapper--auto-spacing"
id="main-content"
role="main"
>
<div className="govuk-grid-row">
<div className="govuk-grid-column-two-thirds">
<h1 className="govuk-heading-xl">There has been a problem</h1>
<p className="govuk-body">
Unfortunately something has gone wrong!
</p>
<p className="govuk-body govuk-!-margin-top-9">{dateString}</p>
<Link href="/">
<a
role="button"
draggable="false"
className="govuk-button govuk-button--start govuk-!-margin-top-2 govuk-!-margin-bottom-8"
data-module="govuk-button"
>
Try again
</a>
</Link>
<br />
</div>
</div>
</main>
</div>
<Footer footerLinks="" />
</div>
);
};
export default Errorpage;
+84
View File
@@ -0,0 +1,84 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function Footer(props) {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
var linksArr = props.footerLinks || [{}];
const linksBlock = Object.keys(linksArr).map((key) => (
<li className="govuk-footer__inline-list-item" key={key}>
<Link href={linksArr[key].path || "/"}>
<a className="govuk-footer__link">{linksArr[key].title}</a>
</Link>
</li>
));
return (
<footer className="govuk-footer " role="contentinfo">
<div className="govuk-width-container ">
<div className="govuk-footer__meta">
<div className="govuk-footer__meta-item govuk-footer__meta-item--grow">
<h2 className="govuk-visually-hidden">Support links</h2>
<nav role="navigation" aria-labelledby="footer_links">
<ul className="govuk-footer__inline-list" id="footer_links">
<li className="govuk-footer__inline-list-item">
<a href="http://www.gov.uk/government/publications/appeals-casework-portal-documentation" id="aTermsConds" className="govuk-footer__link" target="_blank">{t("common:footer-terms-conditions-link")}</a>
</li>
<li className="govuk-footer__inline-list-item">
<a href="https://www.gov.uk/government/publications/planning-inspectorate-privacy-notices" id="aPrivacy" className="govuk-footer__link"target="_blank">{t("common:footer-privacy-link")}</a>
</li>
<li className="govuk-footer__inline-list-item">
<a href="https://www.gov.uk/guidance/appeals-casework-portal-privacy-cookies" id="aCookies" className="govuk-footer__link" target="_blank">{t("common:footer-cookies-link")}</a>
</li>
<li className="govuk-footer__inline-list-item">
<a href="http://www.gov.uk/government/publications/appeals-casework-portal-documentation" className="govuk-footer__link" id="aAccess" target="_blank">{t("common:footer-accessibility-link")}</a>
</li>
<li className="govuk-footer__inline-list-item">
<a href="http://www.gov.uk/guidance/feedback" id="feedback" target="_blank">{t("common:footer-feedback-link")}</a>
</li>
</ul>
</nav>
<svg
aria-hidden="true"
focusable="false"
className="govuk-footer__licence-logo"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 483.2 195.7"
height="17"
width="41"
>
<path
fill="currentColor"
d="M421.5 142.8V.1l-50.7 32.3v161.1h112.4v-50.7zm-122.3-9.6A47.12 47.12 0 0 1 221 97.8c0-26 21.1-47.1 47.1-47.1 16.7 0 31.4 8.7 39.7 21.8l42.7-27.2A97.63 97.63 0 0 0 268.1 0c-36.5 0-68.3 20.1-85.1 49.7A98 98 0 0 0 97.8 0C43.9 0 0 43.9 0 97.8s43.9 97.8 97.8 97.8c36.5 0 68.3-20.1 85.1-49.7a97.76 97.76 0 0 0 149.6 25.4l19.4 22.2h3v-87.8h-80l24.3 27.5zM97.8 145c-26 0-47.1-21.1-47.1-47.1s21.1-47.1 47.1-47.1 47.2 21 47.2 47S123.8 145 97.8 145"
></path>
</svg>
<span className="govuk-footer__licence-description">
All content is available under the{" "}
<a
className="govuk-footer__link"
href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/"
rel="license"
>
Open Government Licence v3.0
</a>
, except where otherwise stated
</span>
</div>
<div className="govuk-footer__meta-item">
<a
className="govuk-footer__link govuk-footer__copyright-logo"
href="https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/"
>
© Crown copyright
</a>
</div>
</div>
</div>
</footer>
);
}
File diff suppressed because one or more lines are too long
+21
View File
@@ -0,0 +1,21 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function CaseComment() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card" id="casescomment-card">
<div className="card-body">
<h3 className="heading-small card-heading">
{t("home:casescomment-card-title")}
</h3>
<p className="govuk-body-s">{t("home:casescomment-card-paragraph-one")}</p>
<p className="govuk-body-s">{t("home:casescomment-card-paragraph-two")}</p>
</div>
</div>
);
}
+49
View File
@@ -0,0 +1,49 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function CaseSearch() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card" id="casesearch-card">
<div className="card-body">
<h3 className="heading-small card-heading">{t("home:casesearch-card-title")}</h3>
<div class="govuk-form-group">
<div id="event-name-hint" classNAme="govuk-hint ">
{t("home:casesearch-card-search-hint")}:
<br />
<span className="govuk-body-s">
{" "}
<span className="govuk-!-font-weight-bold">{t("home:casesearch-card-search-example-label")}:</span>{" "}
APP/A1234/A/99/1234567
</span>
</div>
<input
className="govuk-input"
id="event-name"
name="event-name"
type="text"
aria-describedby="event-name-hint"
/>
</div>
<div class="govuk-form-group">
<button
type="submit"
class="govuk-button"
data-module="govuk-button"
id="submit-search"
formnovalidate=""
>
{t("home:casesearch-card-button")}
</button>
</div>
<Link href="/">
<a>{t("home:casesearch-card-advanced-link")}</a>
</Link>
</div>
</div>
);
}
+23
View File
@@ -0,0 +1,23 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function Inspectorate() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card clear" id="inspectorate-card">
<div className="card-body">
<img src="assets/images/PINS_dual_logo_400.png" />
<p className="govuk-body-s">
{t("home:inspectorate-card-visit-label")}:{" "}
<Link href="/">
<a>{t("home:inspectorate-card-visit-link")}</a>
</Link>
</p>
</div>
</div>
);
}
+84
View File
@@ -0,0 +1,84 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function Login() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card" id="login-card">
<div className="card-body active">
<h3 className="heading-small card-heading">{t("home:login-card-title")}</h3>
<form action="/myportal" method="POST" id="loginForm">
<div class="govuk-form-group">
{" "}
<label
for="user_id"
class="govuk-label"
aria-describedby="user_id-hint"
>
{t("home:login-card-id-label")}
</label>
<div class="govuk-hint" id="user_id-hint">
{t("home:login-card-id-hint")}
</div>
<input
type="text"
name="user_id"
id="user_id"
class="govuk-input govuk-!-width-one-half"
value=""
maxlength="22"
aria-describedby="user_id-hint"
autocomplete="username"
/>
</div>
<div class="govuk-form-group">
{" "}
<label for="password" class="govuk-label">
{t("home:login-card-password-label")}
</label>
<input
type="password"
name="password"
id="password"
class="govuk-input govuk-!-width-three-quarters"
autocomplete="current-password"
/>
</div>
<div class="govuk-form-group">
{/* <button
type="submit"
class="govuk-button"
data-module="govuk-button"
id="continue"
formnovalidate=""
>
{t("home:login-card-button")}
</button> */}
<Link href="/myportal">
<a className="govuk-button">{t("home:login-card-button")}</a>
</Link>
</div>
</form>
<div class="govuk-form-group govuk-!-margin-top-4">
<p className="govuk-body-s">
{t("home:login-card-register-label")}{" "}
<Link href="/">
<a>{t("home:login-card-register-link")}</a>
</Link>
</p>
<p className="govuk-body-s">
{t("home:login-card-forgotten-label")}{" "}
<Link href="/">
<a>{t("home:login-card-forgotten-link")}</a>
</Link>
</p>
</div>
</div>
</div>
);
}
+36
View File
@@ -0,0 +1,36 @@
import Head from "next/head";
import Banner from "../components/banner";
import Footer from "../components/footer";
import Header from "../components/header";
export default function SkipLink(props) {
return (
<div>
<Head>
<title>Appeals Casework Portal</title>
</Head>
<div className="">
<Header courseName="Understand the Prevent Duty" />
<div className="govuk-width-container">
<Banner />
<main
className="govuk-main-wrapper govuk-main-wrapper--auto-spacing"
id="main-content"
role="main"
>
<div className="govuk-grid-row">
<div className="govuk-grid-column-two-thirds">
<noscript>
<h1 className="govuk-heading-l">Please enable javascript</h1>
</noscript>
<h1 className="govuk-heading-m">Loading...</h1>
</div>
</div>
</main>
</div>
<Footer />
</div>
</div>
);
}
+36
View File
@@ -0,0 +1,36 @@
import Link from "next/link";
import { useRouter } from "next/router";
import { useContext } from "react";
import useTranslation from "next-translate/useTranslation";
import Login from "./homepage/login";
import CaseSearch from "./homepage/casesearch";
import Inspectorate from "./homepage/inspectorate";
import CaseComment from "./homepage/casecomment";
export default function Home({ children, pages }) {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<main
className="govuk-main-wrapper govuk-main-wrapper--auto-spacing"
id="main-content"
role="main"
>
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<div className="flex-container grid-row govuk-body ">
<Login />
<CaseSearch/>
<CaseComment/>
<Inspectorate/>
</div>
</div>
</div>
</main>
);
}
+42
View File
@@ -0,0 +1,42 @@
import Link from "next/link";
import { useRouter } from "next/router";
import { useContext } from "react";
import useTranslation from "next-translate/useTranslation";
import MakeNewAppeal from "./myportal/makenewappeal";
import MyCases from "./myportal/mycases";
import SearchCases from "./myportal/searchcases";
import AwaitingSubmission from "./myportal/awaitingsubmission";
import MyRepresentations from "./myportal/myrepresentations";
import WatchedCases from "./myportal/watchedcases";
export default function MyPortal({ children, pages }) {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<main
className="govuk-main-wrapper govuk-main-wrapper--auto-spacing"
id="main-content"
role="main"
>
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<div className="flex-container grid-row govuk-body ">
<MakeNewAppeal />
<MyCases/>
<SearchCases/>
<AwaitingSubmission/>
<MyRepresentations/>
<WatchedCases/>
</div>
</div>
</div>
</main>
);
}
+24
View File
@@ -0,0 +1,24 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function AwaitingSubmission() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card card-3" id="casescomment-card">
<div className="card-body">
<h3 className="heading-small card-heading">
{t("myportal:awatitingsubmission-card-title")}
</h3>
<div className="cardVieAll">
<Link href="/">
<a>{t("myportal:viewall-link")}</a>
</Link>
</div>
</div>
</div>
);
}
+26
View File
@@ -0,0 +1,26 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function MakeNewAppeal() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card card-3" id="casescomment-card">
<div className="card-body">
<h3 className="heading-small card-heading">
{t("myportal:makenewappeal-card-title")}
</h3>
<p className="govuk-body-s">{t("myportal:makenewappeal-card-paragraph-one")}</p>
<p className="govuk-body-s">{t("myportal:makenewappeal-card-paragraph-two")}</p>
<div>
<Link href="/">
<a className="govuk-button">{t("myportal:makenewappeal-card-button-label")}</a>
</Link>
</div>
</div>
</div>
);
}
+24
View File
@@ -0,0 +1,24 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function MyCases() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card card-3" id="casescomment-card">
<div className="card-body">
<h3 className="heading-small card-heading">
{t("myportal:mycases-card-title")}
</h3>
<div className="cardVieAll">
<Link href="/">
<a>{t("myportal:viewall-link")}</a>
</Link>
</div>
</div>
</div>
);
}
+24
View File
@@ -0,0 +1,24 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function MyRepresentations() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card card-3" id="casescomment-card">
<div className="card-body">
<h3 className="heading-small card-heading">
{t("myportal:myrepresentations-card-title")}
</h3>
<div className="cardVieAll">
<Link href="/">
<a>{t("myportal:viewall-link")}</a>
</Link>
</div>
</div>
</div>
);
}
+53
View File
@@ -0,0 +1,53 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function SearchCases() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card card-3" id="casescomment-card">
<div className="card-body">
<h3 className="heading-small card-heading">
{t("myportal:searchcases-card-title")}
</h3>
<div class="govuk-form-group">
<div id="event-name-hint" classNAme="govuk-hint ">
{t("myportal:searchcases-card-search-hint")}:
<br />
<span className="govuk-body-s">
{" "}
<span className="govuk-!-font-weight-bold">
{t("myportal:searchcases-card-search-example-label")}:
</span>{" "}
APP/A1234/A/99/1234567
</span>
</div>
<input
className="govuk-input"
id="event-name"
name="event-name"
type="text"
aria-describedby="event-name-hint"
/>
</div>
<div class="govuk-form-group">
<button
type="submit"
class="govuk-button"
data-module="govuk-button"
id="submit-search"
formnovalidate=""
>
{t("myportal:searchcases-card-button")}
</button>
</div>
<Link href="/">
<a>{t("myportal:searchcases-card-advanced-link")}</a>
</Link>
</div>
</div>
);
}
+24
View File
@@ -0,0 +1,24 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function WatchedCases() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card card-3" id="casescomment-card">
<div className="card-body">
<h3 className="heading-small card-heading">
{t("myportal:watchedcases-card-title")}
</h3>
<div className="cardVieAll">
<Link href="/">
<a>{t("myportal:viewall-link")}</a>
</Link>
</div>
</div>
</div>
);
}
+18
View File
@@ -0,0 +1,18 @@
{
"locales": [
"en",
"cy"
],
"defaultLocale": "en",
"pages": {
"*": [
"common"
],
"/": [
"home"
],
"/myportal": [
"myportal"
]
}
}
+15
View File
@@ -0,0 +1,15 @@
{
"service-name": "Porth Gwaith Achos Apeliadau",
"breadcrumb-back-link": "Yn ôl",
"error-radio": "Dewiswch opsiwn",
"error-checkbox": "Enter a value",
"error-textbox": "Choose an option",
"available-in": "English",
"continue-button": "Parhewch",
"submit-and-start": "Cyflwyno a dechrau'r cwrs",
"footer-terms-conditions-link": "Telerau ac amodau",
"footer-privacy-link": "Rhybudd Preifatrwydd",
"footer-cookies-link": "Chwcis",
"footer-accessibility-link": "Hygyrchedd",
"footer-feedback-link": "Adborth"
}
+21
View File
@@ -0,0 +1,21 @@
{
"login-card-title": "Mewngofnodi neu cofrestru",
"login-card-id-label": "Dynodydd Defnyddiwr (ID) Porth y Llywodraeth",
"login-card-id-hint": "Gallai hyn fod hyd at 12 o gymeriadau.",
"login-card-password-label": "Cyfrinair",
"login-card-button": "Mewngofnodi",
"login-card-register-label": "Cwsmer newydd wyf a hoffwn",
"login-card-register-link": "Gofrestru",
"login-card-forgotten-label": "Wedi anghofio eich cyfrinair neu'ch enw defnyddiwr?",
"login-card-forgotten-link": "Cliciwch yma",
"casesearch-card-title": "Chwilio am achos",
"casesearch-card-search-hint": "Chwiliwch drwy roi cyfeirnod 7 digid yr achos",
"casesearch-card-search-example-label": "Enghraifft",
"casesearch-card-button": "Cyflwyno Chwiliad",
"casesearch-card-advanced-link": "Fel arall, gallwch chwilio gan ddefnyddio ein meini prawf eraill gyda'n chwiliad uwch",
"casescomment-card-title": "Gwneud sylw ar achos",
"casescomment-card-paragraph-one": "Chwiliwch am eich achos a chliciwch y botwm 'Gwneud Sylw'. Y ffordd orau o roi sylwadau ar achos cyfredol yw trwy gofrestru gyda ni'n gyntaf gan fod hynny'n gwneud olrhain achosion a chyflwyno sylwadau yn haws.",
"casescomment-card-paragraph-two": "Yn achos apeliadau deiliaid tai ac apeliadau masnachol, nid yw partïon â buddiant yn gallu gwneud sylwadau yn y cam apelio. Caiff unrhyw sylwadau a wneir yn y cam ymgeisio eu darparu gan yr awdurdod cynllunio lleol ac fe'u hystyrir gan yr Arolygydd.",
"inspectorate-card-visit-label" : "Ymweld Yr Arolygiaeth Gynllunio",
"inspectorate-card-visit-link": "Hafan"
}
+17
View File
@@ -0,0 +1,17 @@
{
"viewall-link": "Gweld y cyfan",
"makenewappeal-card-title": "Gwneud apêl newydd",
"makenewappeal-card-paragraph-one": "Cyn cyflwyno apêl newydd, sicrhewch eich bod wedi darllen yr holl ganllawiau sy'n",
"makenewappeal-card-link": "berthnasol i'r math o apêl sydd gennych.",
"makenewappeal-card-paragraph-two": "Wedi i chi glicio'r botwm 'gwneud apêl newydd' isod, cewch eich arwain drwy broses i'ch helpu i ddewis y math cywir o apêl.",
"makenewappeal-card-button-label": "Gwneud apêl newydd",
"mycases-card-title": "Fy achosion",
"searchcases-card-title": "Chwilio am achos/cyflwyno cynrychiolaeth",
"searchcases-card-search-hint": "Chwiliwch drwy roi cyfeirnod 7 digid yr achos yn y blwch isod:",
"searchcases-card-search-example-label": "Enghraifft",
"searchcases-card-button": "Cyflwyno Chwiliad",
"searchcases-card-advanced-link": "Fel arall, gallwch chwilio gan ddefnyddio ein meini prawf eraill gyda'n chwiliad uwch",
"awatitingsubmission-card-title": "Eto iw gyflwyno",
"myrepresentations-card-title": "Cyflwyniadau'r achos",
"watchedcases-card-title": "Achosion a gwylio"
}
+15
View File
@@ -0,0 +1,15 @@
{
"service-name": "Appeals Casework Portal",
"breadcrumb-back-link": "Back",
"error-radio": "Choose an option",
"error-checkbox": "Choose an option",
"error-textbox": "Choose an option",
"available-in": "Cymraeg",
"continue-button": "Continue",
"submit-and-start": "Submit and start course",
"footer-terms-conditions-link": "Terms and conditions",
"footer-privacy-link": "Privacy Notice",
"footer-cookies-link": "Cookies",
"footer-accessibility-link": "Accessibility",
"footer-feedback-link": "Feedback"
}
+21
View File
@@ -0,0 +1,21 @@
{
"login-card-title": "Log in or Register",
"login-card-id-label": "Government Gateway user ID",
"login-card-id-hint": "This could be up to 12 characters.",
"login-card-password-label": "Password",
"login-card-button": "Sign in",
"login-card-register-label": "I am a new user and would like to",
"login-card-register-link": "Register",
"login-card-forgotten-label": "Forgotten your password or username?",
"login-card-forgotten-link": "Click here",
"casesearch-card-title": "Search for a case",
"casesearch-card-search-hint": "Search by entering the 7 digit case reference number:",
"casesearch-card-search-example-label": "Example",
"casesearch-card-button": "Submit Search",
"casesearch-card-advanced-link": "Advanced Search",
"casescomment-card-title": "Comment on a case",
"casescomment-card-paragraph-one": "Simply search for your case and click on the 'Make Representation' button. The best way to comment on an existing case is to register with us first as that makes it easier to track cases and submit comments.",
"casescomment-card-paragraph-two": "For Householder and Commercial appeals, interested parties are unable to make representations at appeal stage. Any representations made at application stage will be provided by the local planning authority and considered by the Inspector.",
"inspectorate-card-visit-label" : "Visit the Planning Inspectorate",
"inspectorate-card-visit-link": "Home"
}
+17
View File
@@ -0,0 +1,17 @@
{
"viewall-link": "View all",
"makenewappeal-card-title": "Make a new appeal",
"makenewappeal-card-paragraph-one": "Before submitting a new appeal, please ensure you have read all of the guidance",
"makenewappeal-card-link": "relevant to your appeal type.",
"makenewappeal-card-paragraph-two": "Once you click the 'make a new appeal' button below you will be guided through a process to help you select the correct appeal type",
"makenewappeal-card-button-label": "Make a new appeal",
"mycases-card-title": "My cases",
"searchcases-card-title": "Search for a case/submit representation",
"searchcases-card-search-hint": "Search by entering the 7 digit case reference number:",
"searchcases-card-search-example-label": "Example",
"searchcases-card-button": "Submit Search",
"searchcases-card-advanced-link": "Advanced Search",
"awatitingsubmission-card-title": "Awaiting submission",
"myrepresentations-card-title": "My representations",
"watchedcases-card-title": "Watched cases"
}
+45
View File
@@ -0,0 +1,45 @@
// next.config.js
const withStyles = require("@webdeb/next-styles");
//const { nextI18NextRewrites } = require("next-i18next/rewrites");
const nextTranslate = require("next-translate");
//acp
// module.exports = {
// poweredByHeader: false,
// env: {
// API_ROOT: "http://pel-beta-backend",
// GRANT_TYPE: "password",
// USERNAME: "api",
// PASSWORD: "tJRq4o2ZBQ",
// CLIENT_ID: "2d3df41b-9b59-4bbd-85a7-9314125c1689",
// CLIENT_SECRET: "85H8qdrEvKEzbW5",
// },
// ...nextTranslate(),
// };
module.exports = withStyles({
sass: true, // use .scss files
modules: true, // style.(m|module).css & style.(m|module).scss for module files
sassLoaderOptions: {
sassOptions: {
includePaths: [
"/styles/sass",
"node_modules/govuk-frontend/govuk/all",
"/styles/sass/patterns",
"/styles/sass/prevent-training",
], // @import 'variables'; # loads (src/styles/varialbes.scss), you got it..
},
},
});
module.exports = {
poweredByHeader: false,
env:{
// GRANT_TYPE : 'password',
// USERNAME : 'api',
// API_ROOT : "https://api.dev.prevent.internal.rehab",
// PASSWORD : 'B69eQwv7rzPBNcA',
// CLIENT_ID : 'fa1f0ef2-f10f-462e-98a5-843359db6066',
// CLIENT_SECRET : 'B69eQwv7rzPBNcA',
},
...nextTranslate(),
};
+20806
View File
File diff suppressed because it is too large Load Diff
+34
View File
@@ -0,0 +1,34 @@
{
"name": "acp",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
},
"dependencies": {
"@webdeb/next-styles": "^1.1.1",
"axios": "^0.21.1",
"cookies": "^0.8.0",
"govuk-frontend": "^3.13.0",
"jsonpath": "^1.1.1",
"jsonpath-plus": "^5.1.0",
"lodash": "^4.17.21",
"next": "^11.0.1",
"next-i18next": "^8.5.1",
"next-redux-wrapper": "^7.0.2",
"next-translate": "^1.0.0-experimental.18",
"react": "17.0.2",
"react-cookie-consent": "^6.2.4",
"react-dom": "17.0.2",
"react-redux": "^7.2.4",
"redux-devtools-extension": "^2.13.9",
"redux-form": "^8.3.7",
"redux-persist": "^6.0.0",
"redux-thunk": "^2.3.0",
"sass": "^1.35.1",
"sass-loader": "^12.1.0",
"webpack": "^5.40.0"
}
}
+22
View File
@@ -0,0 +1,22 @@
//import "../styles/globals.css";
import "../styles/sass/styles.scss";
import Loading from "../components/loading";
import { wrapper } from "../store/store";
import { useStore } from "react-redux";
import { persistStore } from "redux-persist";
import { PersistGate } from "redux-persist/integration/react";
const MyApp = ({ Component, pageProps }) => {
const store = useStore((state) => state);
const persistor = persistStore(store, {}, function () {
persistor.persist();
});
return (
<PersistGate persistor={store.__persistor} loading={<Loading />}>
<Component {...pageProps} />
</PersistGate>
);
};
export default wrapper.withRedux(MyApp);
+5
View File
@@ -0,0 +1,5 @@
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
export default (req, res) => {
res.status(200).json({ name: 'John Doe' })
}
+70
View File
@@ -0,0 +1,70 @@
import _ from "lodash";
import Head from "next/head";
import Header from "../components/header";
import Banner from "../components/banner";
import CookieBanner from "../components/cookieBanner";
import Breadcrumbs from "../components/breadcrumbs";
import Main from "../components/main";
import Footer from "../components/footer";
import Errorpage from "../components/errorpage";
import styles from "../styles/Home.module.css";
import { useSelector, shallowEqual, connect } from "react-redux";
import { wrapper } from "../store/store";
import Cookies from "cookies";
const Home = (props) => {
const { footerLinks, pages } = props;
return (
<div>
<Head>
<title>Understand the Prevent Duty </title>
</Head>
<div className="">
<CookieBanner />
<Header courseName="Appeals Casework Portal" />
<div className="govuk-width-container">
<Banner />
<Main pages={pages} />
</div>
<Footer footerLinks={footerLinks} />
</div>
</div>
);
};
// export const getServerSideProps = wrapper.getServerSideProps(
// async ({ locale, store, req, res }) => {
// const token = await getToken();
// let accessToken = token.access_token;
// const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT;
// const [pages, footerLinks, courseListContent] = await Promise.all([
// await getPages(accessToken, locale),
// await getFooterLinks(accessToken, locale),
// await getCourseList(accessToken, locale),
// ]);
// //const courseID = await getCourseID
// store.dispatch(setApiRoot(apiRoot));
// store.dispatch(setPages(pages));
// store.dispatch(setFooterLinks(footerLinks));
// store.dispatch(setCourseListContent(courseListContent));
// }
// );
// const mapStateToProps = (state) => {
// //console.log(state);
// return {
// apiroot: state.apiroot,
// courseListContent: state.courseListContent.courseListContent,
// pages: state.pages.pages,
// footerLinks: state.footerLinks.footerLinks,
// regions: state.regions,
// sectors: state.sectors,
// form: state.form,
// };
// };
export default Home//connect(mapStateToProps)(Home);
+70
View File
@@ -0,0 +1,70 @@
import _ from "lodash";
import Head from "next/head";
import Header from "../components/header";
import Banner from "../components/banner";
import CookieBanner from "../components/cookieBanner";
import Breadcrumbs from "../components/breadcrumbs";
import MyPortal from "../components/myportal";
import Footer from "../components/footer";
import Errorpage from "../components/errorpage";
import styles from "../styles/Home.module.css";
import { useSelector, shallowEqual, connect } from "react-redux";
import { wrapper } from "../store/store";
import Cookies from "cookies";
const Home = (props) => {
const { footerLinks, pages } = props;
return (
<div>
<Head>
<title>Understand the Prevent Duty </title>
</Head>
<div className="">
<CookieBanner />
<Header courseName="Appeals Casework Portal" />
<div className="govuk-width-container">
<Banner />
<MyPortal/>
</div>
<Footer footerLinks={footerLinks} />
</div>
</div>
);
};
// export const getServerSideProps = wrapper.getServerSideProps(
// async ({ locale, store, req, res }) => {
// const token = await getToken();
// let accessToken = token.access_token;
// const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT;
// const [pages, footerLinks, courseListContent] = await Promise.all([
// await getPages(accessToken, locale),
// await getFooterLinks(accessToken, locale),
// await getCourseList(accessToken, locale),
// ]);
// //const courseID = await getCourseID
// store.dispatch(setApiRoot(apiRoot));
// store.dispatch(setPages(pages));
// store.dispatch(setFooterLinks(footerLinks));
// store.dispatch(setCourseListContent(courseListContent));
// }
// );
// const mapStateToProps = (state) => {
// //console.log(state);
// return {
// apiroot: state.apiroot,
// courseListContent: state.courseListContent.courseListContent,
// pages: state.pages.pages,
// footerLinks: state.footerLinks.footerLinks,
// regions: state.regions,
// sectors: state.sectors,
// form: state.form,
// };
// };
export default Home//connect(mapStateToProps)(Home);
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg width="283" height="64" viewBox="0 0 283 64" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M141.04 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM248.72 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.45 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM200.24 34c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10zm82.48-29v46h-9V5h9zM36.95 0L73.9 64H0L36.95 0zm92.38 5l-27.71 48L73.91 5H84.3l17.32 30 17.32-30h10.39zm58.91 12v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10V51h-9V17h9v9.2c0-5.08 5.91-9.2 13.2-9.2z" fill="#000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+18
View File
@@ -0,0 +1,18 @@
export const progressActionTypes = {
GETPROGRESS: "GETPROGRESS",
SETPROGRESS: "SETPROGRESS",
UPDATEPROGRESS: "UPDATEPROGRESS",
};
export const getProgressObj = () => (dispatch) => {
return dispatch({
type: progressActionTypes.GETPROGRESS,
});
};
export const setProgress = (progress) => (dispatch) => {
return dispatch({
type: progressActionTypes.SETPROGRESS,
progressObj: progress,
});
};
+16
View File
@@ -0,0 +1,16 @@
import { progressActionTypes } from "./action";
const progressInitialState = {
progress: {},
};
export default function reducer(state = progressInitialState, action) {
switch (action.type) {
case progressActionTypes.SETPROGRESS:
return {
progressObj: action.progressObj,
};
default:
return state;
}
}
+95
View File
@@ -0,0 +1,95 @@
import { createStore, applyMiddleware, combineReducers } from "redux";
import { createWrapper, HYDRATE } from "next-redux-wrapper";
import thunkMiddleware from "redux-thunk";
import progress from "./progress/reducer";
import { reducer as formReducer } from "redux-form";
import autoMergeLevel2 from "redux-persist/lib/stateReconciler/autoMergeLevel2";
//COMBINING ALL REDUCERS
const combinedReducer = combineReducers({
progress,
});
const reducer = (state = { progress: "{}" }, action) => {
switch (action.type) {
case HYDRATE:
//if (action.payload.progress === '{}') delete action.payload.progress;
return { ...state, ...action.payload };
case "SERVER_ACTION":
return {
...state,
server: {
...state.server,
progress: action.payload,
},
};
case "CLIENT_ACTION":
return {
...state,
client: {
...state.client,
progress: action.payload,
},
};
case "GET_ITEMS":
return {
...state,
items: action.payload,
loading: false,
};
case "SET_ITEMS":
return {
...state,
items: action.payload,
loading: false,
};
default:
return combinedReducer(state, action);
}
};
// BINDING MIDDLEWARE
const bindMiddleware = (middleware) => {
if (process.env.NODE_ENV !== "production") {
const { composeWithDevTools } = require("redux-devtools-extension");
return composeWithDevTools(applyMiddleware(...middleware));
}
return applyMiddleware(...middleware);
};
const makeStore = ({ isServer }) => {
if (isServer) {
//If it's on server side, create a store
return createStore(reducer, bindMiddleware([thunkMiddleware]));
} else {
//If it's on client side, create a store which will persist
const { persistStore, persistReducer } = require("redux-persist");
const storage = require("redux-persist/lib/storage").default;
const persistConfig = {
key: "nextjs",
whitelist: [
"progress"
],
storage,
stateReconciler: autoMergeLevel2, // if needed, use a safer storage
};
const persistedReducer = persistReducer(persistConfig, reducer); // Create a new reducer with our existing reducer
const store = createStore(
persistedReducer,
bindMiddleware([thunkMiddleware])
); // Creating the store again
store.__persistor = persistStore(store); // This creates a persistor object & push that persisted object to .__persistor, so that we can avail the persistability feature
return store;
}
};
export const setClientState = (clientState) => ({
type: SET_CLIENT_STATE,
payload: clientState,
});
// Export the wrapper & wrap the pages/_app.js with this wrapper only
export const wrapper = createWrapper(makeStore);
+122
View File
@@ -0,0 +1,122 @@
.container {
min-height: 100vh;
padding: 0 0.5rem;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.main {
padding: 5rem 0;
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.footer {
width: 100%;
height: 100px;
border-top: 1px solid #eaeaea;
display: flex;
justify-content: center;
align-items: center;
}
.footer img {
margin-left: 0.5rem;
}
.footer a {
display: flex;
justify-content: center;
align-items: center;
}
.title a {
color: #0070f3;
text-decoration: none;
}
.title a:hover,
.title a:focus,
.title a:active {
text-decoration: underline;
}
.title {
margin: 0;
line-height: 1.15;
font-size: 4rem;
}
.title,
.description {
text-align: center;
}
.description {
line-height: 1.5;
font-size: 1.5rem;
}
.code {
background: #fafafa;
border-radius: 5px;
padding: 0.75rem;
font-size: 1.1rem;
font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
Bitstream Vera Sans Mono, Courier New, monospace;
}
.grid {
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
max-width: 800px;
margin-top: 3rem;
}
.card {
margin: 1rem;
flex-basis: 45%;
padding: 1.5rem;
text-align: left;
color: inherit;
text-decoration: none;
border: 1px solid #eaeaea;
border-radius: 10px;
transition: color 0.15s ease, border-color 0.15s ease;
}
.card:hover,
.card:focus,
.card:active {
color: #0070f3;
border-color: #0070f3;
}
.card h3 {
margin: 0 0 1rem 0;
font-size: 1.5rem;
}
.card p {
margin: 0;
font-size: 1.25rem;
line-height: 1.5;
}
.logo {
height: 1em;
}
@media (max-width: 600px) {
.grid {
width: 100%;
flex-direction: column;
}
}
+16
View File
@@ -0,0 +1,16 @@
html,
body {
padding: 0;
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
}
a {
color: inherit;
text-decoration: none;
}
* {
box-sizing: border-box;
}
@@ -0,0 +1,27 @@
.app-cookie-banner {
@include govuk-font(16);
@include govuk-text-colour;
box-sizing: border-box;
width: 100%;
padding-top: govuk-spacing(3);
padding-right: govuk-spacing(3);
padding-bottom: govuk-spacing(3);
padding-left: govuk-spacing(3);
background-color: lighten(
desaturate(govuk-colour("light-blue"), 8.46),
42.55
);
}
.app-cookie-banner__message {
margin: 0;
@include govuk-width-container;
}
@include govuk-media-query($media-type: print) {
.app-cookie-banner {
display: none !important;
}
}
+210
View File
@@ -0,0 +1,210 @@
.flex-container {
display: flex;
flex-wrap: wrap;
}
.card {
flex-grow: 0;
flex-basis: 100%;
margin-bottom: 2em;
}
@media screen and (min-width: 600px) and (max-width: 900px) {
.card {
flex-basis: 45.99%;
// Every card in the first row needs horizontal margin
&:nth-child(2n-1) {
margin-right: 3%;
}
// Every card in the second row needs horizontal margin
&:nth-child(2n-2) {
margin-left: 3%;
}
&.card-3 {
flex-basis: 44%;
min-height: 300px;
// &:nth-child(3n-1) {
// margin-left: 3%;
// margin-right: 3%;
// }
}
}
}
@media screen and (min-width: 900px) {
.card {
flex-basis: 46%;
&:nth-child(2n-2) {
margin-left: 3%;
}
&.card-3 {
flex-basis: 31%;
min-height: 300px;
&:nth-child(2n-2) {
margin-left: 0%;
}
&:nth-child(3n-1) {
margin-left: 3%;
margin-right: 3%;
}
}
}
}
html[data-useragent*="MSIE 10.0"] .flex-container {
.card {
flex-basis: 46%;
margin: 3%;
&.card-3 {
flex-basis: 31%;
}
}
}
.card {
border: 1px solid $govuk-border-colour; //$panel-colour;
font-size: 16px;
background-color: govuk-colour("light-grey", $legacy: "grey-4");
&.inactive {
color: $govuk-secondary-text-colour;
}
.card-heading {
margin-top: 0;
}
.card-body {
//border-bottom: 1px solid $govuk-border-colour; //$panel-colour;
padding: 12px;
*:last-child {
margin-bottom: 0;
}
&.active {
background-color: govuk-colour("light-grey", $legacy: "grey-4");
transition: 0.1s ease-in-out;
.card-heading a {
color: $govuk-link-colour;
margin-top: 0;
&:focus {
color: govuk-colour("black", $legacy: "black");
outline: 3px solid transparent;
box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
}
}
}
.detail-large {
color: $govuk-secondary-text-colour;
font-size: 32px;
font-weight: 600;
margin-bottom: 8px;
}
.detail {
font-weight: 600;
margin-bottom: 8px;
}
}
.card-action {
border-top: 0;
padding: 12px;
a {
display: inline;
border-bottom: 1px solid #c7dceb;
color: $govuk-link-colour;
line-height: 1.5em;
&:link,
&:visited {
color: $govuk-link-colour;
}
&:hover {
text-decoration: none;
border-bottom: 1px solid $govuk-link-colour;
color: #2e8aca;
}
&:focus {
color: govuk-colour("black", $legacy: "black");
outline: 3px solid transparent;
box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
}
}
ul {
margin: 0;
li {
margin: 0 0 1em;
&:last-child {
margin-bottom: 0;
}
}
}
}
&.clear {
background-color: govuk-colour("white", $legacy: "white");
border: none;
}
}
.js {
.card-body.active {
&:hover {
//background-color: $govuk-link-colour;
color: $govuk-link-colour;
cursor: pointer;
transition: 0.1s ease-in-out;
transition-delay: 0.25s;
.card-heading,
p {
color: $govuk-link-colour;
transition: 0.1s ease-in-out;
transition-delay: 0.25s;
}
.card-heading a {
color: $govuk-link-colour;
transition-delay: 0.25s;
}
.detail-large {
color: $govuk-link-colour;
transition-delay: 0.25s;
}
}
a {
text-decoration: none;
}
}
}
#inspectorate-card .card-body {
padding-top: 20%;
}
.card-3 .card-body {
display: inline-flex;
flex-direction: column;
min-height: 30vh;
.cardVieAll {
margin-top: auto;
}
}
+6
View File
@@ -0,0 +1,6 @@
// This is a GOV.UK Publishing specific component that
// can be seen at http://govuk-static.herokuapp.com/component-guide/related_items
.app-inset-text-active {
border-left: 10px solid govuk-colour("light-blue");
}
+9
View File
@@ -0,0 +1,9 @@
// This is a GOV.UK Publishing specific component that
// can be seen at http://govuk-static.herokuapp.com/component-guide/related_items
.app-link-white:link {
color: white;
}
.app-link-white:visited {
color: white;
}
+11
View File
@@ -0,0 +1,11 @@
// This is a GOV.UK Publishing specific component that
// can be seen at http://govuk-static.herokuapp.com/component-guide/related_items
.app-related-items {
border-top: 2px solid govuk-colour("blue");
padding-top: govuk-spacing(2);
}
.app-related-items .govuk-list > li {
margin-bottom: govuk-spacing(2);
}
@@ -0,0 +1,31 @@
// Based on https://github.com/alphagov/govuk_publishing_components/blob/v22.0.0/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-header.scss
// Note - this code for prototype purposes only. It is not production code.
.app-step-nav-header {
@include govuk-text-colour;
position: relative;
padding: 10px;
background: govuk-colour("light-grey", $legacy: "grey-4");
border-top: solid 1px govuk-colour("mid-grey", $legacy: "grey-2");
border-bottom: solid 1px govuk-colour("mid-grey", $legacy: "grey-2");
@include govuk-media-query($from: tablet) {
padding: govuk-spacing(3);
}
}
// scss-lint:disable SelectorFormat
.app-step-nav-header__part-of {
@include govuk-font(16, $weight: bold);
display: block;
padding-bottom: 0.2em;
}
.app-step-nav-header__title {
@extend %govuk-link;
@include govuk-font(24, $weight: bold);
}
// scss-lint:enable SelectorFormat
+459
View File
@@ -0,0 +1,459 @@
// Based on https://github.com/alphagov/govuk_publishing_components/blob/v22.0.0/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss
// Note - this code for prototype purposes only. It is not production code.
$stroke-width: 2px;
$stroke-width-large: 3px;
$number-circle-size: 26px;
$number-circle-size-large: 35px;
$top-border: solid 2px govuk-colour("mid-grey", $legacy: "grey-3");
@mixin step-nav-vertical-line($line-style: solid) {
content: "";
position: absolute;
z-index: 2;
width: 0;
height: 100%;
border-left: $line-style $stroke-width
govuk-colour("mid-grey", $legacy: "grey-2");
background: govuk-colour("white");
}
@mixin step-nav-line-position {
left: 0;
margin-left: ($number-circle-size / 2) - ($stroke-width / 2);
}
@mixin step-nav-line-position-large {
left: 0;
margin-left: ($number-circle-size-large / 2) - ($stroke-width-large / 2);
border-width: $stroke-width-large;
}
// custom mixin as govuk-font does undesirable things at different breakpoints
// we want to ensure that both large and small step navs have the same size font on mobile
// this will stop text resizing if compatibility mode is turned off
@mixin step-nav-font(
$size,
$tablet-size: $size,
$weight: normal,
$line-height: 1.3,
$tablet-line-height: $line-height
) {
@include govuk-typography-common();
font-size: $size + px;
font-weight: $weight;
line-height: $line-height;
@include govuk-media-query($from: tablet) {
font-size: $tablet-size + px;
line-height: $tablet-line-height;
}
}
.app-step-nav {
margin-bottom: govuk-spacing(6);
&.app-step-nav--large {
@include govuk-media-query($from: tablet) {
margin-bottom: govuk-spacing(9);
}
}
.js-enabled &.js-hidden {
display: none;
}
}
.app-step-nav__controls {
padding: 3px 3px 0 0;
text-align: right;
}
.app-step-nav__button {
color: $govuk-link-colour;
cursor: pointer;
background: none;
border: 0;
margin: 0;
&:focus {
@include govuk-focused-text;
}
}
// removes extra dotted outline from buttons in Firefox
// on focus (standard yellow outline unaffected)
.app-step-nav__button::-moz-focus-inner {
border: 0;
}
.app-step-nav__button--title {
@include step-nav-font(19, $weight: bold, $line-height: 1.4);
display: inline-block;
padding: 0;
text-align: left;
color: govuk-colour("black");
.app-step-nav--large & {
@include step-nav-font(
19,
$tablet-size: 24,
$weight: bold,
$line-height: 1.4
);
}
}
.app-step-nav__button--controls {
@include step-nav-font(14, $line-height: 1);
position: relative;
z-index: 1; // this and relative position stops focus outline underlap with border of accordion
padding: 0.5em 0;
text-decoration: underline;
.app-step-nav--large & {
@include step-nav-font(14, $tablet-size: 16, $line-height: 1);
}
}
.app-step-nav__steps {
padding: 0;
margin: 0;
}
.app-step-nav__step {
position: relative;
padding-left: govuk-spacing(6) + govuk-spacing(3);
list-style: none;
// line down the side of a step
&:after {
@include step-nav-vertical-line;
@include step-nav-line-position;
top: govuk-spacing(3);
}
.app-step-nav--large & {
@include govuk-media-query($from: tablet) {
padding-left: govuk-spacing(9);
&:after {
@include step-nav-line-position-large;
top: govuk-spacing(6);
}
}
}
}
.app-step-nav__step:last-child {
// little dash at the bottom of the line
&:before {
content: "";
position: absolute;
z-index: 6;
bottom: 0;
left: 0;
margin-left: $number-circle-size / 4;
width: $number-circle-size / 2;
height: 0;
border-bottom: solid $stroke-width
govuk-colour("mid-grey", $legacy: "grey-2");
}
&:after {
// scss-lint:disable DuplicateProperty
// sass-lint:disable no-duplicate-properties
height: -webkit-calc(100% - #{govuk-spacing(3)}); // fallback for iphone 4
height: calc(100% - #{govuk-spacing(3)});
// sass-lint:enable no-duplicate-properties
// scss-lint:enable DuplicateProperty
}
.app-step-nav__help:after {
height: 100%;
}
.app-step-nav--large & {
@include govuk-media-query($from: tablet) {
&:before {
margin-left: $number-circle-size-large / 4;
width: $number-circle-size-large / 2;
border-width: $stroke-width-large;
}
&:after {
height: calc(100% - #{govuk-spacing(6)});
}
}
}
}
.app-step-nav__step--active {
&:last-child:before,
.app-step-nav__circle--number,
&:after,
.app-step-nav__help:after {
border-color: govuk-colour("black");
}
}
.app-step-nav__circle {
box-sizing: border-box;
position: absolute;
z-index: 5;
top: govuk-spacing(3);
left: 0;
width: $number-circle-size;
height: $number-circle-size;
color: govuk-colour("black");
background: govuk-colour("white");
border-radius: 100px;
text-align: center;
.app-step-nav--large & {
@include govuk-media-query($from: tablet) {
top: govuk-spacing(6);
width: $number-circle-size-large;
height: $number-circle-size-large;
}
}
}
.app-step-nav__circle--number {
@include step-nav-font(16, $weight: bold, $line-height: 23px);
border: solid $stroke-width govuk-colour("mid-grey", $legacy: "grey-2");
.app-step-nav--large & {
@include step-nav-font(
16,
$tablet-size: 19,
$weight: bold,
$line-height: 23px,
$tablet-line-height: 30px
);
@include govuk-media-query($from: tablet) {
border-width: $stroke-width-large;
}
}
}
.app-step-nav__circle--logic {
@include step-nav-font(16, $weight: bold, $line-height: 28px);
.app-step-nav--large & {
@include step-nav-font(
16,
$tablet-size: 19,
$weight: bold,
$line-height: 28px,
$tablet-line-height: 34px
);
}
}
// makes sure logic text expands to the left if text size is zoomed, preventing overlap
.app-step-nav__circle-inner {
float: right;
min-width: 100%;
}
.app-step-nav__circle-background {
$shadow-offset: 0.1em;
$shadow-colour: govuk-colour("white");
// to make numbers readable for users zooming text only in browsers such as Firefox
text-shadow: 0 -#{$shadow-offset} 0 $shadow-colour,
$shadow-offset 0 0 $shadow-colour, 0 $shadow-offset 0 $shadow-colour,
-#{$shadow-offset} 0 0 $shadow-colour;
}
.app-step-nav__circle-step-label,
.app-step-nav__circle-step-colon {
@include govuk-visually-hidden;
}
.app-step-nav__header {
padding: govuk-spacing(3) 0;
border-top: $top-border;
.app-step-nav--active & {
cursor: pointer;
}
.app-step-nav__button {
&:focus {
@include govuk-focused-text;
.app-step-nav__toggle-link {
@include govuk-focused-text;
}
}
}
&:hover {
.app-step-nav__button:not(:focus),
.app-step-nav__circle {
color: $govuk-link-colour;
}
.app-step-nav__toggle-link {
text-decoration: underline;
}
}
.app-step-nav--large & {
@include govuk-media-query($from: tablet) {
padding: govuk-spacing(6) 0;
}
}
}
.app-step-nav__title {
@include govuk-text-colour;
@include step-nav-font(19, $weight: bold, $line-height: 1.4);
margin: 0;
.app-step-nav--large & {
@include step-nav-font(
19,
$tablet-size: 24,
$weight: bold,
$line-height: 1.4
);
}
}
.app-step-nav__toggle-link {
@include step-nav-font(14, $line-height: 1.2);
display: block;
color: $govuk-link-colour;
text-transform: capitalize;
.app-step-nav--large & {
@include step-nav-font(14, $tablet-size: 16, $line-height: 1.2);
}
}
.app-step-nav__panel {
@include govuk-text-colour;
@include step-nav-font(16);
.app-step-nav--large & {
@include step-nav-font(16, $tablet-size: 19);
}
.js-enabled &.js-hidden {
display: none;
}
}
// contents of the steps, such as paragraphs and links
.app-step-nav__paragraph {
padding-bottom: govuk-spacing(3);
margin: 0;
font-size: inherit;
+ .app-step-nav__list {
margin-top: -5px;
.app-step-nav--large & {
@include govuk-media-query($from: tablet) {
margin-top: -govuk-spacing(3);
}
}
}
.app-step-nav--large & {
@include govuk-media-query($from: tablet) {
padding-bottom: govuk-spacing(6);
}
}
}
.app-step-nav__list {
padding: 0;
padding-bottom: 10px;
list-style: none;
.app-step-nav--large & {
@include govuk-media-query($from: tablet) {
padding-bottom: 20px;
}
}
}
.app-step-nav__list--choice {
$links-margin: 20px;
margin-left: $links-margin;
list-style: disc;
.app-step-nav__list-item--active:before {
left: -(govuk-spacing(6) + govuk-spacing(3)) - $links-margin;
}
.app-step-nav--large & {
@include govuk-media-query($from: tablet) {
.app-step-nav__list-item--active:before {
left: -(govuk-spacing(9)) - $links-margin;
}
}
}
}
.app-step-nav__list-item {
margin-bottom: 10px;
}
.app-step-nav__link {
@include govuk-link-common;
@include govuk-link-style-default;
}
.app-step-nav__link-active-context {
@include govuk-visually-hidden;
}
.app-step-nav__list-item--active {
position: relative;
&:before {
box-sizing: border-box;
content: "";
position: absolute;
z-index: 5;
top: 0.6em; // position the dot to align with the first row of text in the link
left: -(govuk-spacing(6) + govuk-spacing(3));
margin-top: -($stroke-width / 2);
margin-left: ($number-circle-size / 2);
width: $number-circle-size / 2;
height: $stroke-width;
background: govuk-colour("black");
}
.app-step-nav--large & {
@include govuk-media-query($from: tablet) {
&:before {
left: -(govuk-spacing(9));
margin-left: ($number-circle-size-large / 2);
height: $stroke-width-large;
}
}
}
.app-step-nav__link {
@include govuk-link-style-text;
}
}
.app-step-nav__context {
display: inline-block;
font-weight: normal;
color: govuk-colour("dark-grey", $legacy: "grey-1");
&:before {
content: " \2013\00a0"; // dash followed by &nbsp;
}
}
@@ -0,0 +1,62 @@
// Based on https://github.com/alphagov/govuk_publishing_components/blob/v22.0.0/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-related.scss
// Note - this code for prototype purposes only. It is not production code.
.app-step-nav-related {
@include govuk-text-colour;
border-top: 2px solid govuk-colour("blue");
margin-bottom: govuk-spacing(6);
}
.app-step-nav-related__heading {
margin-top: govuk-spacing(3);
margin-bottom: govuk-spacing(2);
@include govuk-font(19, $weight: bold);
}
.app-step-nav-related__links {
@include govuk-font(16, $weight: bold);
margin: 0;
padding: 0;
}
.app-step-nav-related--singular {
margin-bottom: govuk-spacing(2) + 3;
.app-step-nav-related__heading {
@include govuk-font(19, $weight: bold, $line-height: 1.4);
margin-top: govuk-spacing(4);
@include govuk-media-query($until: tablet) {
font-size: 19px;
}
}
.app-step-nav-related__pretitle {
margin-bottom: govuk-spacing(6) / 4;
}
}
.app-step-nav-related__pretitle {
display: block;
margin-bottom: govuk-spacing(3);
@include govuk-media-query($from: tablet) {
margin-bottom: govuk-spacing(1);
}
}
.app-step-nav-related__links {
list-style: none;
}
.app-step-nav-related__link-item {
margin-top: govuk-spacing(3);
@include govuk-media-query($from: tablet) {
margin-top: govuk-spacing(1);
}
}
.app-step-nav-related__link {
@extend %govuk-link;
}
+74
View File
@@ -0,0 +1,74 @@
// Task list pattern
.app-task-list {
list-style-type: none;
padding-left: 0;
margin-top: 0;
margin-bottom: 0;
@include govuk-media-query($from: tablet) {
min-width: 550px;
}
}
.app-task-list__section {
display: table;
@include govuk-font($size: 24, $weight: bold);
}
.app-task-list__section-number {
display: table-cell;
@include govuk-media-query($from: tablet) {
min-width: govuk-spacing(6);
padding-right: 0;
}
}
.app-task-list__items {
@include govuk-font($size: 19);
@include govuk-responsive-margin(9, "bottom");
list-style: none;
padding-left: 0;
@include govuk-media-query($from: tablet) {
padding-left: govuk-spacing(6);
}
}
.app-task-list__item {
border-bottom: 1px solid $govuk-border-colour;
margin-bottom: 0 !important;
padding-top: govuk-spacing(2);
padding-bottom: govuk-spacing(2);
@include govuk-clearfix;
}
.app-task-list__item:first-child {
border-top: 1px solid $govuk-border-colour;
}
.app-task-list__task-name {
display: block;
@include govuk-media-query($from: 450px) {
float: left;
}
}
.app-task-list__task-completed {
margin-top: govuk-spacing(2);
margin-bottom: govuk-spacing(1);
@include govuk-media-query($from: 450px) {
float: right;
margin-top: 0;
margin-bottom: 0;
}
}
.app-list--number-bold {
li {
font-weight: bold;
}
span {
font-weight: normal;
}
}
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More