From 67ee5f203f7fe7dbe689171cb699a1fb1dd43e09 Mon Sep 17 00:00:00 2001 From: Mat Johnson Date: Thu, 12 Mar 2026 17:59:38 +0000 Subject: [PATCH 1/3] Adding first flat sketches for viewing details about a BSO org --- .../components/_secondary-navigation.scss | 96 +++++++ app/assets/sass/main.scss | 12 +- app/config.js | 2 +- app/filters.js | 89 +++--- app/lib/utils/arrays.js | 180 ++++++++++++ .../secondary-navigation/macro.njk | 3 + .../secondary-navigation/template.njk | 28 ++ app/views/layout.html | 7 + .../bso/bso-internal-details.html | 258 +++++++++++++++++ .../bso/bso-public-details.html | 260 ++++++++++++++++++ .../pre-alpha-flats/bso/geo-bso-west-berks.js | 8 + app/views/pre-alpha-flats/index.html | 51 ++++ 12 files changed, 948 insertions(+), 46 deletions(-) create mode 100644 app/assets/sass/components/_secondary-navigation.scss create mode 100644 app/lib/utils/arrays.js create mode 100644 app/views/_components/secondary-navigation/macro.njk create mode 100644 app/views/_components/secondary-navigation/template.njk create mode 100644 app/views/pre-alpha-flats/bso/bso-internal-details.html create mode 100644 app/views/pre-alpha-flats/bso/bso-public-details.html create mode 100644 app/views/pre-alpha-flats/bso/geo-bso-west-berks.js create mode 100755 app/views/pre-alpha-flats/index.html diff --git a/app/assets/sass/components/_secondary-navigation.scss b/app/assets/sass/components/_secondary-navigation.scss new file mode 100644 index 0000000..345b6c0 --- /dev/null +++ b/app/assets/sass/components/_secondary-navigation.scss @@ -0,0 +1,96 @@ +@use "nhsuk-frontend/dist/nhsuk/core" as *; + +.app-secondary-navigation { + margin-right: #{$nhsuk-gutter-half * -1}; + margin-left: #{$nhsuk-gutter-half * -1}; + + @include nhsuk-responsive-margin(5, "bottom"); + + @include nhsuk-media-query($from: tablet) { + margin-right: auto; + margin-left: auto; + } +} + +.app-secondary-navigation__link { + display: flex; + align-items: center; + gap: 6px; + padding: nhsuk-spacing(2) $nhsuk-gutter-half; + + &:link { + text-decoration: none; + } + + @include nhsuk-link-style-default; + @include nhsuk-link-style-no-visited-state; + + @include nhsuk-media-query($from: tablet) { + padding: nhsuk-spacing(3) 2px; + } + + &[aria-current] { + color: $nhsuk-text-colour; + box-shadow: inset $nhsuk-border-width 0 nhsuk-colour("blue"); + text-decoration: none; + + @include nhsuk-media-query($from: tablet) { + box-shadow: inset 0 ($nhsuk-border-width * -1) nhsuk-colour("blue"); + } + } + + &:focus { + box-shadow: inset $nhsuk-focus-width 0 $nhsuk-focus-text-colour; + + @include nhsuk-media-query($from: tablet) { + box-shadow: inset 0 ($nhsuk-focus-width * -1) $nhsuk-focus-text-colour; + } + } + + .nhsuk-icon { + width: 1.5rem; + height: 1.5rem; + } +} + +.app-secondary-navigation__link--disabled { + color: $nhsuk-secondary-text-colour; + cursor: not-allowed; + pointer-events: none; + text-decoration: none; + + &:hover, + &:focus { + text-decoration: none; + } +} + +.app-secondary-navigation__current { + font-weight: inherit; +} + +.app-secondary-navigation__list { + display: flex; + + flex-flow: column; + + width: 100%; + margin: 0; + padding: 0; + + list-style: none; + // The list uses box-shadow rather than a border to set a 1px grey line at the + // bottom, so that the current item appears on top of the grey line. + box-shadow: inset 0 -1px 0 $nhsuk-border-colour; + + @include nhsuk-font(19); + + @include nhsuk-media-query($from: tablet) { + flex-flow: row wrap; + gap: nhsuk-spacing(2) nhsuk-spacing(5); + } +} + +.app-secondary-navigation__list-item { + margin-bottom: 0; +} diff --git a/app/assets/sass/main.scss b/app/assets/sass/main.scss index 697b813..ad807ef 100755 --- a/app/assets/sass/main.scss +++ b/app/assets/sass/main.scss @@ -1,4 +1,14 @@ // Import NHS.UK frontend library -@import "nhsuk-frontend/dist/nhsuk"; +@forward "nhsuk-frontend/dist/nhsuk/nhsuk"; + +// Stolen Manage prototype components :P +// https://github.com/NHSDigital/manage-breast-screening-prototype + +@forward "components/secondary-navigation"; // Add your custom CSS/Sass styles below. +.app-card-editable { + display: flex; + justify-content: space-between; + align-items: baseline; +} diff --git a/app/config.js b/app/config.js index 535ee66..8fd8d1d 100644 --- a/app/config.js +++ b/app/config.js @@ -2,7 +2,7 @@ module.exports = { // Service name - serviceName: 'Service name goes here', + serviceName: 'Cohort to clinic service name', // Port to run the prototype on locally port: 3000 diff --git a/app/filters.js b/app/filters.js index b562ced..25d59a9 100644 --- a/app/filters.js +++ b/app/filters.js @@ -1,44 +1,45 @@ -/** - * @param {Environment} env - */ -module.exports = function (env) { - const filters = {} - - /* ------------------------------------------------------------------ - add your methods to the filters obj below this comment block: - @example: - - filters.sayHi = function(name) { - return 'Hi ' + name + '!' - } - - Which in your templates would be used as: - - {{ 'Paul' | sayHi }} => 'Hi Paul' - - Notice the first argument of your filters method is whatever - gets 'piped' via '|' to the filter. - - Filters can take additional arguments, for example: - - filters.sayHi = function(name,tone) { - return (tone == 'formal' ? 'Greetings' : 'Hi') + ' ' + name + '!' - } - - Which would be used like this: - - {{ 'Joel' | sayHi('formal') }} => 'Greetings Joel!' - {{ 'Gemma' | sayHi }} => 'Hi Gemma!' - - For more on filters and how to write them see the Nunjucks - documentation. - - ------------------------------------------------------------------ */ - - /* keep the following line to return your filters to the app */ - return filters -} - -/** - * @import { Environment } from 'nunjucks' - */ +// app/filters.js + + const fs = require('fs') + const path = require('path') + + module.exports = function (env) { + /* eslint-disable-line func-names,no-unused-vars */ + /** + * Instantiate object used to store the methods registered as a + * 'filter' (of the same name) within nunjucks. You can override + * gov.uk core filters by creating filter methods of the same name. + * + * @type {object} + */ + const filters = {} + + // Get all files from utils directory + const utilsPath = path.join(__dirname, 'lib/utils') + //const filtersPath = path.join(__dirname, 'filters') + + //const folderPaths = [utilsPath, filtersPath] + const folderPaths = [utilsPath] + + try { + folderPaths.forEach((folderPath) => { + const files = fs.readdirSync(folderPath) + + files.forEach((file) => { + if (path.extname(file) === '.js') { + const module = require(path.join(folderPath, file)) + + Object.entries(module).forEach(([name, func]) => { + if (typeof func === 'function') { + filters[name] = func + } + }) + } + }) + }) + } catch (err) { + console.warn('Error loading filters:', err) + } + + return filters + } diff --git a/app/lib/utils/arrays.js b/app/lib/utils/arrays.js new file mode 100644 index 0000000..0a7a70b --- /dev/null +++ b/app/lib/utils/arrays.js @@ -0,0 +1,180 @@ +// app/lib/utils/arrays.js + +const _ = require('lodash') + +/** + * Find an object by ID in an array + * + * @param {Array} array - Array to search + * @param {string} id - ID to find + * @returns {object} Found object or undefined + */ +const findById = (array, id) => { + if (!array || !Array.isArray(array)) return undefined + return array.find((item) => item.id === id) +} + +const push = (array, item) => { + const newArray = [...array] + newArray.push(_.cloneDeep(item)) // clone needed to stop this mutating original + return newArray +} + +/** + * Check if an array includes a value + * + * @param {Array} array - Array to check + * @param {*} value - Value to look for + * @returns {boolean} True if array includes value, false otherwise + */ +const includes = (array, value) => { + if (!array || !Array.isArray(array)) return false + return array.includes(value) +} + +/** + * Find first array item where the specified key matches the value + * + * @param {Array} array - Array to search + * @param {string} key - Object key to match against + * @param {any} value - Value to find + * @returns {any} First matching item or undefined + * @example + * const users = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}] + * find(users, 'name', 'Bob') // Returns {id: 2, name: 'Bob'} + */ +const find = (array, key, value) => { + if (!array || !Array.isArray(array)) return undefined + return array.find((item) => item[key] === value) +} + +/** + * Remove empty items from arrays or strings + * + * @param {Array|string} items - Items to filter + * @returns {Array|string|undefined} Filtered items or undefined if empty + */ +const removeEmpty = (items) => { + if (!items) return + + if (_.isString(items)) { + return items.trim() || undefined + } + + if (_.isArray(items)) { + const filtered = items.filter((item) => { + // Filter out falsy values and empty strings + if (!item || item === '') return false + + // Filter out empty objects + if ( + _.isObject(item) && + !_.isArray(item) && + Object.keys(item).length === 0 + ) + return false + + // Filter out empty arrays + if (_.isArray(item) && item.length === 0) return false + + return true + }) + return filtered.length ? filtered : undefined + } +} + +/** + * Filter array to items where the specified property matches one of the comparison values + * + * @param {Array} array - Array to filter + * @param {string} key - Object property path to match against (supports dot notation) + * @param {*|Array} compare - Value or array of values to match + * @returns {Array} Filtered array containing only matching items + * @example + * where([{type: 'dog'}, {type: 'cat'}], 'type', 'dog') // Returns [{type: 'dog'}] + * where(users, 'address.postcode', ['OX1', 'OX2']) // Returns users with matching postcodes + */ +const where = (array, key, compare) => { + if (!array || !Array.isArray(array)) return [] + + // Force comparison value to array + const compareValues = Array.isArray(compare) ? compare : [compare] + + return array.filter((item) => { + const value = _.get(item, key) + return compareValues.includes(value) + }) +} + +/** + * Filter array to remove items where the specified property matches one of the comparison values + * + * @param {Array} array - Array to filter + * @param {string} key - Object property path to match against (supports dot notation) + * @param {*|Array} compare - Value or array of values to exclude + * @returns {Array} Filtered array with matching items removed + * @example + * removeWhere([{type: 'dog'}, {type: 'cat'}], 'type', 'dog') // Returns [{type: 'cat'}] + * removeWhere(users, 'status', ['inactive', 'suspended']) // Returns only active users + */ +const removeWhere = (array, key, compare) => { + if (!array || !Array.isArray(array)) return [] + + // Force comparison value to array + const compareValues = Array.isArray(compare) ? compare : [compare] + + return array.filter((item) => { + const value = _.get(item, key) + return !compareValues.includes(value) + }) +} + +/** + * Apply a filter to each element in an array + * + * @param {Array} array - Array to map over + * @param {string} filterName - Name of the filter to apply to each element + * @returns {Array} New array with filter applied to each element + */ +const map = function (array, filterName) { + if (!array || !Array.isArray(array)) return [] + + // In Nunjucks filter context, 'this' gives us access to the environment + // and we can access other filters through the environment + const env = this.env + + if (!env || !env.filters || !env.filters[filterName]) { + console.warn(`Filter '${filterName}' not found`) + return array + } + + const filterFunction = env.filters[filterName] + + return array.map((item) => filterFunction.call(this, item)) +} + +/** + * Check if a value is an array + * + * @param {*} value - Value to check + * @returns {boolean} True if value is an array, false otherwise + * @example + * isArray([1, 2, 3]) // Returns true + * isArray('hello') // Returns false + * isArray(null) // Returns false + */ +const isArray = (value) => { + return Array.isArray(value) +} + +module.exports = { + push, + includes, + find, + removeEmpty, + findById, + where, + removeWhere, + map, + isArray +} diff --git a/app/views/_components/secondary-navigation/macro.njk b/app/views/_components/secondary-navigation/macro.njk new file mode 100644 index 0000000..0f1480e --- /dev/null +++ b/app/views/_components/secondary-navigation/macro.njk @@ -0,0 +1,3 @@ +{% macro appSecondaryNavigation(params) %} + {%- include "./template.njk" -%} +{% endmacro %} diff --git a/app/views/_components/secondary-navigation/template.njk b/app/views/_components/secondary-navigation/template.njk new file mode 100644 index 0000000..0428b4b --- /dev/null +++ b/app/views/_components/secondary-navigation/template.njk @@ -0,0 +1,28 @@ +{%- from "nhsuk/macros/attributes.njk" import nhsukAttributes -%} + diff --git a/app/views/layout.html b/app/views/layout.html index f3e81b9..81f4e31 100755 --- a/app/views/layout.html +++ b/app/views/layout.html @@ -7,9 +7,16 @@ {% extends "prototype-kit-template.njk" %} + +{%- from '_components/secondary-navigation/macro.njk' import appSecondaryNavigation %} + {% block head %} + {% block customStyles %}{% endblock %} {% endblock %} diff --git a/app/views/pre-alpha-flats/bso/bso-internal-details.html b/app/views/pre-alpha-flats/bso/bso-internal-details.html new file mode 100644 index 0000000..f7b1326 --- /dev/null +++ b/app/views/pre-alpha-flats/bso/bso-internal-details.html @@ -0,0 +1,258 @@ + + + + + +{% extends 'layout.html' %} + + + +{% set pageName = "West Berkshire Screening Service" %} + +{% block customStyles %} + + + +{% endblock %} + +{% block header %} + {{ header({ + account: { + items: [ + { + text: "West Berkshire BSO" + }, + { + href: "#", + text: "Thomas Pynchon", + icon: true + }, + { + href: "/", + text: "Log out" + } + ] + }, + service: { + text: serviceName, + href: "/" + }, + navigation: { + items: [ + { + href: "#", + text: "Dashboard" + }, + { + href: "#", + text: "Manage batches" + }, + { + href: "#", + text: "Manage clinics" + }, + { + href: "#", + text: "Manage other stuff" + }, + { + href: "#", + text: "Reports" + } + ] + } + }) }} +{% endblock %} + + + +{% block beforeContent %} + +{{ breadcrumb({ + items: [ + { + href: "#", + text: "Home" + }, + { + href: "#", + text: "Manage other stuff" + }, + { + href: "#", + text: "Organisation" + } + ] +}) }} + +{% endblock %} + + + +{% block content %} +
+
+ BSO ID: WBBSS-p33ps +

+ West Berkshire Screening Service +

+
+

Change

+
+ + {% set secondaryNavItems = [] %} + + {% for item in [ + { href: 'bso-public-details', label: 'Public details' }, + { href: 'bso-internal-details', label: 'Internal details', selected: 'true' } + ] %} + {% set secondaryNavItems = secondaryNavItems | push({ + text: item.label | safe, + href: item.href | trim, + current: true if item.selected == 'true' + }) %} + {% endfor %} + + {{ appSecondaryNavigation({ + visuallyHiddenTitle: "Secondary menu", + items: secondaryNavItems + }) }} + + +
+

Office contacts

+

Add new contacts

+
+ + {{ summaryList({ + card: { + headingHtml: ' +
+

Angela Carter

+

Change

+
+ ' + }, + rows: [ + { + key: { + text: "Role" + }, + value: { + text: "Office administrator" + } + }, + { + classes: "nhsuk-summary-list__row--no-border", + key: { + text: "Contact details" + }, + value: { + html: " +

angela.carter@nhs.net

+

1234 567 890 ext 99

" + } + } + ] + }) }} + +

BSO area

+ + + + {% call card({ + headingHtml: ' ' + }) %} +
+ {% endcall %} + +{% endblock %} + +{% block bodyEnd %} + + + + + + + + +{% endblock %} diff --git a/app/views/pre-alpha-flats/bso/bso-public-details.html b/app/views/pre-alpha-flats/bso/bso-public-details.html new file mode 100644 index 0000000..be7710a --- /dev/null +++ b/app/views/pre-alpha-flats/bso/bso-public-details.html @@ -0,0 +1,260 @@ + + + + + +{% extends 'layout.html' %} + + + +{% set pageName = "West Berkshire Screening Service" %} + +{% block header %} + {{ header({ + account: { + items: [ + { + text: "West Berkshire BSO" + }, + { + href: "#", + text: "Thomas Pynchon", + icon: true + }, + { + href: "/", + text: "Log out" + } + ] + }, + service: { + text: serviceName, + href: "/" + }, + navigation: { + items: [ + { + href: "#", + text: "Dashboard" + }, + { + href: "#", + text: "Manage batches" + }, + { + href: "#", + text: "Manage clinics" + }, + { + href: "#", + text: "Manage other stuff" + }, + { + href: "#", + text: "Reports" + } + ] + } + }) }} +{% endblock %} + + + +{% block beforeContent %} + +{{ breadcrumb({ + items: [ + { + href: "#", + text: "Home" + }, + { + href: "#", + text: "Manage other stuff" + }, + { + href: "#", + text: "Organisation" + } + ] +}) }} + +{% endblock %} + + + +{% block content %} +
+
+
+ BSO ID: WBBSS-p33ps +

+ West Berkshire Screening Service +

+
+

Change

+
+
+ + {% set secondaryNavItems = [] %} + + {% for item in [ + { href: 'bso-public-details', label: 'Public details', selected: 'true' }, + { href: 'bso-internal-details', label: 'Internal details' } + ] %} + {% set secondaryNavItems = secondaryNavItems | push({ + text: item.label | safe, + href: item.href | trim, + current: true if item.selected == 'true' + }) %} + {% endfor %} + + {{ appSecondaryNavigation({ + visuallyHiddenTitle: "Secondary menu", + items: secondaryNavItems + }) }} + + + + {% set insetTextHtml %} +

Note: these details appear verbatim in public communications

+ {% endset %} +
+
+ {{ insetText({ + html: insetTextHtml, + classes: "nhsuk-u-margin-top-0" + }) }} +
+
+ + {% set contactHtml %} + {{ summaryList({ + rows: [ + { + key: { + text: "Address" + }, + value: { + html: "Royal Berkshire Hospital
+ 21a Craven Road
+ Reading
+ Berkshire
+ RG1 5LE" + }, + actions: { + items: [ + { + href: "#", + text: "Change", + visuallyHiddenText: "address" + } + ] + } + }, + { + key: { + text: "Telephone" + }, + value: { + text: "0118 322 8282" + }, + actions: { + items: [ + { + href: "#", + text: "Change", + visuallyHiddenText: "telephone" + } + ] + } + }, + { + key: { + text: "Web address" + }, + value: { + html: "https://www.royalberkshire.nhs.uk/services-and-departments/radiology/breast-screening", + classes: "nhsuk-u-text-break-word" + }, + actions: { + items: [ + { + href: "#", + text: "Change", + visuallyHiddenText: "web address" + } + ] + } + } + ] + }) }} + {% endset %} + {% call card({ + headingHtml: ' +

Contact details

+ ' + }) %} + {{ contactHtml | safe }} + {% endcall %} + + {% set hoursHtml %} + {{ summaryList({ + rows: [ + { + key: { + text: "Monday to Friday" + }, + value: { + text: "8.30am to 4.30pm" + } + }, + { + key: { + text: "Saturday and Sunday" + }, + value: { + text: "Closed" + } + } + ] + }) }} + {% endset %} + {% call card({ + headingHtml: ' +
+

Office hours

+

Change

+
+ ' + }) %} + {{ hoursHtml | safe }} + {% endcall %} + + {% set facilitiesHtml %} + + {% endset %} + {% call card({ + headingHtml: ' +
+

Office facilities

+

Change

+
+ ' + }) %} + {{ facilitiesHtml | safe }} + {% endcall %} +{% endblock %} diff --git a/app/views/pre-alpha-flats/bso/geo-bso-west-berks.js b/app/views/pre-alpha-flats/bso/geo-bso-west-berks.js new file mode 100644 index 0000000..28657ec --- /dev/null +++ b/app/views/pre-alpha-flats/bso/geo-bso-west-berks.js @@ -0,0 +1,8 @@ +const geojsonData = { + "type": "FeatureCollection", + "name": "bso-west-berks", + "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, + "features": [ + { "type": "Feature", "properties": { "bso_organisation_code": "KRG", "bso_organisation_name": "Reading (W. Berkshire)", "num_lads": 3, "lad_names": "Reading, West Berkshire, Wokingham", "lad_codes": "E06000037, E06000038, E06000041" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -1.31081398672337, 51.556954038665602 ], [ -1.30938258423996, 51.557178541994503 ], [ -1.30786368186495, 51.556795568276897 ], [ -1.30608365432372, 51.556896533982801 ], [ -1.30337504718475, 51.5565891697021 ], [ -1.30274559859781, 51.556250951614402 ], [ -1.30213222571462, 51.555141288943503 ], [ -1.29745226355353, 51.553406813746399 ], [ -1.29713882120621, 51.5528788957619 ], [ -1.29419163946323, 51.553846706654902 ], [ -1.28950471007969, 51.552312417087897 ], [ -1.28756085320867, 51.552846376524698 ], [ -1.28653647607573, 51.551574130013599 ], [ -1.28552135777383, 51.548330981006302 ], [ -1.28375727786446, 51.548623262381398 ], [ -1.28032471948851, 51.546755384043301 ], [ -1.27019965326774, 51.544620385257602 ], [ -1.26789270497183, 51.542168354189798 ], [ -1.26065559107578, 51.537789905153801 ], [ -1.25645653089934, 51.537018018887103 ], [ -1.24531645154543, 51.537749878874202 ], [ -1.24016469054173, 51.537658237469103 ], [ -1.23383774264704, 51.536294473689303 ], [ -1.22994143157423, 51.534613639491198 ], [ -1.22679203559485, 51.535158462088503 ], [ -1.22143760125056, 51.536151822939701 ], [ -1.21885925037003, 51.536937624206899 ], [ -1.2165773974549, 51.5362282804521 ], [ -1.21494483979583, 51.5360906326883 ], [ -1.21013468972345, 51.536442317526102 ], [ -1.2061290801442, 51.537530250141401 ], [ -1.20464416143085, 51.537603894896002 ], [ -1.20323210595679, 51.5367238981528 ], [ -1.20420189703124, 51.534275689229098 ], [ -1.20538946474753, 51.533385438658001 ], [ -1.2059743570265, 51.531836518448799 ], [ -1.20500409480825, 51.530344499436403 ], [ -1.20465030082425, 51.528394515437299 ], [ -1.19056969897233, 51.529987924919197 ], [ -1.18033653559716, 51.5319508415133 ], [ -1.17518079060128, 51.533407396699403 ], [ -1.17276091669664, 51.533763517342202 ], [ -1.16599152324502, 51.533946757963299 ], [ -1.16079819884198, 51.534589541025703 ], [ -1.15937468211047, 51.534925540516397 ], [ -1.16015707945145, 51.5366017989395 ], [ -1.15603748223797, 51.537867092062399 ], [ -1.15465184168908, 51.538724865111497 ], [ -1.15267417897897, 51.539392186024799 ], [ -1.14693699916662, 51.540612218811603 ], [ -1.14037476539537, 51.542911301794703 ], [ -1.13631468328933, 51.5399780651396 ], [ -1.13467871614724, 51.536518533464204 ], [ -1.13444628545696, 51.5337221327432 ], [ -1.13466414639632, 51.532801175755402 ], [ -1.13773232673435, 51.528893389130999 ], [ -1.13854626327192, 51.5268573730228 ], [ -1.1388955665409, 51.526983986328801 ], [ -1.14353568436213, 51.523454512281504 ], [ -1.14403798794985, 51.522029344418399 ], [ -1.14301626713138, 51.521404156584602 ], [ -1.14324812925642, 51.5209536026045 ], [ -1.14253557173773, 51.520827047404801 ], [ -1.14326446407328, 51.5197712841127 ], [ -1.14205314180795, 51.516195440367703 ], [ -1.14106335045663, 51.515188337413299 ], [ -1.13867424240267, 51.514175374428604 ], [ -1.13369703171058, 51.511286565634698 ], [ -1.12764652217171, 51.511896686376801 ], [ -1.1194642201889, 51.511856832016797 ], [ -1.11794758921934, 51.511629825658297 ], [ -1.11478444104064, 51.510481776944097 ], [ -1.11289467192633, 51.509400997613099 ], [ -1.11138342035965, 51.507911048359198 ], [ -1.10902636505114, 51.504854135802098 ], [ -1.10696906919337, 51.5010965122665 ], [ -1.10803102519774, 51.500718767195998 ], [ -1.10436465671838, 51.492331213761702 ], [ -1.10277657673746, 51.490170924629197 ], [ -1.10022811515158, 51.488876382472498 ], [ -1.08990100634329, 51.486205345816003 ], [ -1.0896716859649, 51.485788982471398 ], [ -1.08836180760873, 51.485752747896001 ], [ -1.08264345443135, 51.487078613758598 ], [ -1.07726982246763, 51.487865487122299 ], [ -1.07304520372568, 51.4895119386616 ], [ -1.07114806131569, 51.489740551321702 ], [ -1.05970848406243, 51.491788659934102 ], [ -1.0554224440951, 51.492037505154897 ], [ -1.05134983656427, 51.491859938597798 ], [ -1.04867717737407, 51.490783509718199 ], [ -1.04359339744857, 51.489380766410001 ], [ -1.04074394958481, 51.487599068948498 ], [ -1.03968199439328, 51.486559289055201 ], [ -1.03950913818168, 51.485176273264599 ], [ -1.0373965566499, 51.483821752299697 ], [ -1.03732845323422, 51.482137499961198 ], [ -1.038684062753, 51.479690766423701 ], [ -1.03897871057036, 51.476867612735802 ], [ -1.03849341922517, 51.4761845264971 ], [ -1.03655747902791, 51.475226753798601 ], [ -1.02659436999687, 51.470724146963498 ], [ -1.02177193135195, 51.467996331739997 ], [ -1.01820453413265, 51.466584523453797 ], [ -1.0135636993656, 51.466292018911901 ], [ -1.01120705047066, 51.4671624093654 ], [ -1.00749984195973, 51.467829773661101 ], [ -1.00731612095274, 51.468248741155797 ], [ -1.00785630853855, 51.469580856366299 ], [ -1.00793836104285, 51.471572333785602 ], [ -1.00681351282678, 51.471394719365897 ], [ -1.00709872463243, 51.471982427561002 ], [ -1.00673897441119, 51.472307586634201 ], [ -1.00596243802407, 51.4725932590095 ], [ -1.00483707280275, 51.4724335980898 ], [ -1.00480636673377, 51.472721087594401 ], [ -1.00692929892472, 51.4734215412713 ], [ -1.0038072016536, 51.473313281373898 ], [ -1.00326450661688, 51.4744326127297 ], [ -1.00244189135313, 51.474253931365602 ], [ -1.00080257020251, 51.474621227506098 ], [ -0.999815838662166, 51.475232369137501 ], [ -0.998181103275749, 51.477549995750302 ], [ -0.998711335723572, 51.480298871091698 ], [ -0.999675799527925, 51.4803151855129 ], [ -1.00042516099552, 51.479895386585902 ], [ -1.0006190760023, 51.480839389342997 ], [ -1.00000674312523, 51.480856646396802 ], [ -0.999976116261576, 51.4814642463583 ], [ -0.998050882662748, 51.481721193666701 ], [ -0.997833477498641, 51.482376638025102 ], [ -0.998349410087883, 51.4832811408438 ], [ -0.99752726502344, 51.483470091603103 ], [ -0.998398933904973, 51.484304821068697 ], [ -0.997379072911558, 51.48464499176 ], [ -0.997084269913282, 51.484361917299502 ], [ -0.99383715404408, 51.4851910797071 ], [ -0.994331148631826, 51.4859730721844 ], [ -0.993375010463992, 51.486295772650301 ], [ -0.991489190950061, 51.485207788604598 ], [ -0.98902929388117, 51.485732462880797 ], [ -0.98693646909028, 51.485739589885 ], [ -0.984120921514066, 51.484962575066902 ], [ -0.982262772002649, 51.485039139464199 ], [ -0.980083372371689, 51.485703569063702 ], [ -0.978613260512643, 51.485626047808601 ], [ -0.978631720999245, 51.487313938895397 ], [ -0.979375403922958, 51.487549754843101 ], [ -0.97764944041989, 51.488406965430102 ], [ -0.976083693852054, 51.488348264961402 ], [ -0.975346652461808, 51.487434620395 ], [ -0.974320664554833, 51.486751172889498 ], [ -0.971749858590421, 51.4875811241496 ], [ -0.969935317745964, 51.489300698369398 ], [ -0.970356072125265, 51.490508347753099 ], [ -0.969590370803526, 51.490864072896898 ], [ -0.969187574260421, 51.490204127482201 ], [ -0.967522827426066, 51.490893536146899 ], [ -0.967145139054576, 51.490653691440599 ], [ -0.966161046081883, 51.490923775562301 ], [ -0.964600159968614, 51.491471115950198 ], [ -0.965094927547574, 51.492078859230098 ], [ -0.961805026869276, 51.493091908290303 ], [ -0.957481198497003, 51.493077803796702 ], [ -0.956647144892984, 51.492069587932797 ], [ -0.955470043514705, 51.491391001834302 ], [ -0.955996836474174, 51.491043450704602 ], [ -0.95390326923702, 51.488608341693599 ], [ -0.949809849686958, 51.4864680747378 ], [ -0.949174353037359, 51.486994202499403 ], [ -0.947011082887946, 51.486062079335497 ], [ -0.948035830280062, 51.485211611805902 ], [ -0.946064953228012, 51.483433296699303 ], [ -0.945490975161663, 51.483592641309897 ], [ -0.944500570074113, 51.481952576045501 ], [ -0.945567907878057, 51.481694204881897 ], [ -0.9449120490258, 51.4792235591976 ], [ -0.941136941423418, 51.474977651884501 ], [ -0.947323206215865, 51.472941787333603 ], [ -0.94676254091457, 51.471722013008502 ], [ -0.946529699356067, 51.471516652768102 ], [ -0.949222079843732, 51.470131712991098 ], [ -0.947181536078121, 51.4666532485288 ], [ -0.949246104344738, 51.4661403086753 ], [ -0.948880475093919, 51.465512079520401 ], [ -0.949440846834799, 51.464930894908903 ], [ -0.951560891144438, 51.465701577505698 ], [ -0.955183900010933, 51.4653338428556 ], [ -0.954805837821202, 51.4645552946454 ], [ -0.954363080158819, 51.464526171234802 ], [ -0.954393414731438, 51.4626309053399 ], [ -0.954545771155635, 51.462200673605501 ], [ -0.955162050087192, 51.462191793626197 ], [ -0.955452550255554, 51.461256503984799 ], [ -0.949167813983683, 51.459513324054697 ], [ -0.94598869196454, 51.459503682430601 ], [ -0.942347910210261, 51.460594063249097 ], [ -0.932660502455735, 51.465793635592497 ], [ -0.930642245437748, 51.46764019994 ], [ -0.929806897772913, 51.467780008409797 ], [ -0.926867203070439, 51.467284703401702 ], [ -0.923667814400085, 51.467189763775103 ], [ -0.921698113854484, 51.467931457244603 ], [ -0.920450927694191, 51.471306400423003 ], [ -0.919277246601897, 51.472718977383003 ], [ -0.916869612610089, 51.474374736796896 ], [ -0.914573335687005, 51.474786892709297 ], [ -0.913340146331466, 51.475963339982101 ], [ -0.910608236181327, 51.476830922531597 ], [ -0.910079263258688, 51.477754889616897 ], [ -0.910585503240153, 51.4794743306444 ], [ -0.910210703903168, 51.4821478163894 ], [ -0.908185942742069, 51.483960585420398 ], [ -0.905809187147622, 51.485063375300101 ], [ -0.901867987379037, 51.485339461034798 ], [ -0.897651733807532, 51.487045309083399 ], [ -0.898262069125501, 51.488313521794304 ], [ -0.896626918743092, 51.489938275839201 ], [ -0.89638432494404, 51.491816225098702 ], [ -0.894267099856588, 51.492043587541097 ], [ -0.893447077040818, 51.492537555757899 ], [ -0.895283350826381, 51.493920721175897 ], [ -0.893859481597823, 51.494841575845797 ], [ -0.894001516366689, 51.496471445090201 ], [ -0.889739033585301, 51.498780747363398 ], [ -0.887249087890162, 51.499958494908903 ], [ -0.885686022575905, 51.500169535153297 ], [ -0.881907884143531, 51.501469171472003 ], [ -0.871486087259868, 51.502561275237603 ], [ -0.870605212309806, 51.503161737458598 ], [ -0.870025174755948, 51.504390844901799 ], [ -0.871066574560141, 51.505587636304 ], [ -0.871113312534119, 51.507020602647898 ], [ -0.87225324816402, 51.5080932526186 ], [ -0.874469152710532, 51.509325487715898 ], [ -0.879477479060387, 51.511088301925199 ], [ -0.880209071729495, 51.511611699786698 ], [ -0.880796194631032, 51.5132735437411 ], [ -0.88026324833084, 51.515126029165401 ], [ -0.880523495092844, 51.516367073789802 ], [ -0.878496409275226, 51.518136224393601 ], [ -0.87821821879587, 51.523017982443498 ], [ -0.878796045971289, 51.523728462167497 ], [ -0.883906962801385, 51.527158250600003 ], [ -0.88799760707002, 51.530131197490398 ], [ -0.892618794834513, 51.532708879074299 ], [ -0.895793062807525, 51.533798934009802 ], [ -0.899805113789272, 51.5361988578886 ], [ -0.900294093903427, 51.537149390396202 ], [ -0.900126788657081, 51.5402635223858 ], [ -0.896882190115767, 51.544863013387797 ], [ -0.893636413979365, 51.549312189172802 ], [ -0.890381981073405, 51.554858238782103 ], [ -0.889580499879355, 51.556969970716302 ], [ -0.887370264358319, 51.559471252023997 ], [ -0.88347918296736, 51.561439545848302 ], [ -0.881399260911936, 51.562015016682402 ], [ -0.879723063740375, 51.562127579271603 ], [ -0.875599419113369, 51.561739280516498 ], [ -0.872748076470877, 51.560311043917999 ], [ -0.87115468588721, 51.557666451543099 ], [ -0.867929523763961, 51.556202131512997 ], [ -0.864965471454251, 51.553180939510298 ], [ -0.863634244946462, 51.549940863934403 ], [ -0.862525039114666, 51.549020110981601 ], [ -0.859760731263104, 51.548368321691299 ], [ -0.857530033197815, 51.548813253733201 ], [ -0.856260729119528, 51.548706492618599 ], [ -0.847047139320998, 51.545201109330698 ], [ -0.842743668055121, 51.544758619733898 ], [ -0.843116441839106, 51.5418318308216 ], [ -0.84619285854856, 51.535989423804502 ], [ -0.845954487612858, 51.534579784887796 ], [ -0.846286231630477, 51.533664058387899 ], [ -0.846924491900019, 51.533050871144802 ], [ -0.849534606285383, 51.531826601794201 ], [ -0.850465621177857, 51.530691912327804 ], [ -0.852292459508355, 51.529476088683502 ], [ -0.853907491772685, 51.526073108511802 ], [ -0.850072661845424, 51.524484462502301 ], [ -0.847641193916682, 51.522248582012601 ], [ -0.839264331242079, 51.515875208145403 ], [ -0.836186202718656, 51.512750550247397 ], [ -0.833951910983922, 51.512942405944401 ], [ -0.828318762528162, 51.512379106744 ], [ -0.824056327909973, 51.512479487906504 ], [ -0.822021259479429, 51.510648061582003 ], [ -0.818823682534371, 51.5089137648202 ], [ -0.817390197616722, 51.507237546821898 ], [ -0.817659383630802, 51.506747549287901 ], [ -0.817091816479131, 51.5028473518041 ], [ -0.818741086420179, 51.498019132560898 ], [ -0.818280080759769, 51.497965050220699 ], [ -0.817614201900247, 51.497140042115902 ], [ -0.817273961911611, 51.497206730526202 ], [ -0.817066457377209, 51.496432272645002 ], [ -0.818604728777769, 51.495775181754396 ], [ -0.818542734439231, 51.495219733944197 ], [ -0.820441536513132, 51.494989737164097 ], [ -0.820680244012422, 51.4956710137633 ], [ -0.819728539457457, 51.495766712805199 ], [ -0.819989036131674, 51.497111804621397 ], [ -0.820939579696167, 51.497177092787702 ], [ -0.821542999953953, 51.495565514534903 ], [ -0.822138100754813, 51.495558903325602 ], [ -0.822460551363503, 51.494564947778102 ], [ -0.822145499812096, 51.4942686424898 ], [ -0.82529573897882, 51.491978437064603 ], [ -0.827158935478641, 51.489480224760797 ], [ -0.829148655807479, 51.4878285157085 ], [ -0.829356379818715, 51.487197555089203 ], [ -0.82816939057211, 51.484230089715602 ], [ -0.826399084679362, 51.482505674712101 ], [ -0.826702939279156, 51.481498036133303 ], [ -0.826206668723354, 51.479796325765797 ], [ -0.825077457043235, 51.478405603044003 ], [ -0.824154449759404, 51.477903649593301 ], [ -0.823687726035929, 51.475949441355297 ], [ -0.821989854084941, 51.4741187967741 ], [ -0.821784170089364, 51.472602466139001 ], [ -0.824625364335869, 51.470067359400801 ], [ -0.825178919955604, 51.465671326969002 ], [ -0.830052791938017, 51.464510587385597 ], [ -0.833754365368195, 51.464098684030702 ], [ -0.828290694642909, 51.4620435694763 ], [ -0.826610377373036, 51.455446435229597 ], [ -0.818085732865223, 51.4431909950858 ], [ -0.812833483713472, 51.442423985267503 ], [ -0.808529365936017, 51.4425521208994 ], [ -0.806069326611408, 51.441377856566099 ], [ -0.800019761547891, 51.441182149675797 ], [ -0.799709964593184, 51.438947014624901 ], [ -0.798050747401421, 51.435726079517799 ], [ -0.798532435879443, 51.432828329692903 ], [ -0.797884417089261, 51.424690844093597 ], [ -0.798712295836496, 51.421420744490298 ], [ -0.79869144202299, 51.419529433571199 ], [ -0.796675981788752, 51.414458696095103 ], [ -0.795739114083106, 51.413226127350498 ], [ -0.793230751327313, 51.411393798028897 ], [ -0.792505466831662, 51.408849630563402 ], [ -0.794613865695861, 51.408554770328799 ], [ -0.79808248012398, 51.409184721296903 ], [ -0.801521574713465, 51.409133573061901 ], [ -0.801972102840033, 51.409063467982001 ], [ -0.801801966817938, 51.407540239956901 ], [ -0.801474829147745, 51.405094699740403 ], [ -0.800754177789556, 51.403846419944799 ], [ -0.798955097119332, 51.400134932373703 ], [ -0.797831994888646, 51.395653464581798 ], [ -0.796830248913774, 51.394007551708597 ], [ -0.795765503137323, 51.3923537018429 ], [ -0.793124866392451, 51.384607784427303 ], [ -0.788839993914029, 51.371750706819199 ], [ -0.809589698057002, 51.370907567691198 ], [ -0.813571306715724, 51.370318486980104 ], [ -0.81453266323237, 51.369533275936 ], [ -0.819715311448264, 51.367205344181599 ], [ -0.822091892948763, 51.366172718873301 ], [ -0.826982081205196, 51.364016014860503 ], [ -0.828276742130898, 51.362815928701998 ], [ -0.829132513168154, 51.360973017402898 ], [ -0.83247231825159, 51.357848341171099 ], [ -0.834209386937614, 51.355390121238003 ], [ -0.834375628224477, 51.354499843776303 ], [ -0.837349302933734, 51.352871221349801 ], [ -0.841123059295143, 51.352733798980601 ], [ -0.841845341870724, 51.352082292091403 ], [ -0.842861529527882, 51.3522712312989 ], [ -0.844578398917902, 51.352239648237102 ], [ -0.845848881224734, 51.352708034352197 ], [ -0.847701567649537, 51.352530318165101 ], [ -0.848580883492906, 51.352966057769002 ], [ -0.850089362024265, 51.353053700489099 ], [ -0.850358375868557, 51.353554535541299 ], [ -0.85140609389568, 51.354033348735001 ], [ -0.853596385196639, 51.354253488992001 ], [ -0.854208452577672, 51.353896220049101 ], [ -0.857439378365262, 51.3538460017107 ], [ -0.859115307655337, 51.354191453270701 ], [ -0.864765670688567, 51.354267070989401 ], [ -0.865808465946052, 51.353854499445397 ], [ -0.86810285111369, 51.354743559684302 ], [ -0.871718799978282, 51.352703169059701 ], [ -0.873233579162874, 51.352299569874297 ], [ -0.877856218050537, 51.352591269479497 ], [ -0.87917059018386, 51.353157789409501 ], [ -0.879331672914307, 51.353916422334898 ], [ -0.881782303650743, 51.353827488659 ], [ -0.882390881451552, 51.354605673661503 ], [ -0.881986138979959, 51.3550685414992 ], [ -0.883000735422051, 51.3555655454199 ], [ -0.884526419212748, 51.355545933156499 ], [ -0.885129625259476, 51.354716378030503 ], [ -0.885852598212826, 51.354692693914402 ], [ -0.888147423829285, 51.356289907318001 ], [ -0.889652040660649, 51.356902072388401 ], [ -0.892753280967878, 51.356341636004302 ], [ -0.893731969245935, 51.356733028626799 ], [ -0.894940087228729, 51.356778595260899 ], [ -0.895374259952765, 51.357178320555199 ], [ -0.897174106715534, 51.3572824828452 ], [ -0.897700420614989, 51.357554516930499 ], [ -0.897454716978554, 51.357913672252998 ], [ -0.899767097269419, 51.358989352375502 ], [ -0.901492083057847, 51.358983973882303 ], [ -0.903612327814254, 51.358128886628599 ], [ -0.906879176127388, 51.359414709025501 ], [ -0.907255837149488, 51.359818344635499 ], [ -0.908933874231872, 51.360160393342198 ], [ -0.910061747431878, 51.360930773407503 ], [ -0.915122282389206, 51.360786184976902 ], [ -0.917809894986867, 51.362229140122402 ], [ -0.918328408402703, 51.362899333591898 ], [ -0.917622966820456, 51.363579794774601 ], [ -0.917747809949221, 51.364556579117803 ], [ -0.918302558693866, 51.364906990635198 ], [ -0.923766570749385, 51.366011154560503 ], [ -0.925057390758084, 51.365910637217297 ], [ -0.926966603927261, 51.365171043649802 ], [ -0.928511610990346, 51.365255302307702 ], [ -0.930695253161981, 51.3644452531856 ], [ -0.931905226785579, 51.364543578943298 ], [ -0.93573638984247, 51.365460495676103 ], [ -0.936339300425969, 51.365783390445102 ], [ -0.935989361556512, 51.3663170663636 ], [ -0.936675241866908, 51.365979803783702 ], [ -0.937049927802841, 51.363884423500203 ], [ -0.939153417482029, 51.363171562629603 ], [ -0.941380242310523, 51.363898459954598 ], [ -0.952241456824604, 51.362734505917302 ], [ -0.972364110244077, 51.359938195108803 ], [ -0.975503031623104, 51.360167944406903 ], [ -0.977422779558396, 51.360638861308701 ], [ -0.982707752046259, 51.359821601458201 ], [ -0.986740059567131, 51.359855624824199 ], [ -0.987538684948464, 51.360113418016397 ], [ -0.987921818885381, 51.360717401641402 ], [ -0.986684562481314, 51.361390098671201 ], [ -0.985713102777237, 51.361481484396897 ], [ -0.985482660552978, 51.362026231197198 ], [ -0.986123750530059, 51.362848288565601 ], [ -0.987144153416324, 51.362563957853297 ], [ -0.986875496845147, 51.362047260188803 ], [ -0.987568040807763, 51.361967840213403 ], [ -0.988845691695056, 51.362914935373503 ], [ -0.990170308545331, 51.363227584310202 ], [ -0.990767988638186, 51.362568227853799 ], [ -0.992905389530586, 51.361453567669102 ], [ -0.99286649204701, 51.3625682873353 ], [ -0.994218975543038, 51.362267868580901 ], [ -0.996317268820639, 51.362279550599503 ], [ -0.999261735511546, 51.361559215014097 ], [ -1.00022284298636, 51.362668079989199 ], [ -1.00230561809447, 51.360288506314497 ], [ -1.00468620280933, 51.360527257093104 ], [ -1.00856787476384, 51.359429786430603 ], [ -1.01112286862309, 51.3591698876915 ], [ -1.0226465685125, 51.359073170340302 ], [ -1.05001598396462, 51.358147936166297 ], [ -1.05024539067, 51.359972475605801 ], [ -1.05152467892907, 51.362632708973898 ], [ -1.05308228716327, 51.3623251861546 ], [ -1.05539631162351, 51.363574850726202 ], [ -1.055798564076, 51.365040205535202 ], [ -1.0585276649051, 51.365741921638197 ], [ -1.05915701492338, 51.366297299661298 ], [ -1.05915060220936, 51.367517460982498 ], [ -1.06015114843927, 51.368183686178597 ], [ -1.06211830486054, 51.367663488320503 ], [ -1.06306215004281, 51.369067441296899 ], [ -1.06259416945628, 51.369821773992498 ], [ -1.06576690975676, 51.372327074686702 ], [ -1.06893548875777, 51.373490593574203 ], [ -1.06921097395748, 51.373223908611998 ], [ -1.07251974535403, 51.375283245115497 ], [ -1.07786305463452, 51.374567402112199 ], [ -1.07999086111679, 51.374635354210703 ], [ -1.07534710377379, 51.379495805991397 ], [ -1.08278005320367, 51.381726637655397 ], [ -1.08661908661563, 51.383915577962902 ], [ -1.0975173845647, 51.381725904257401 ], [ -1.09744102674248, 51.381367450339198 ], [ -1.09879917808027, 51.380109136757902 ], [ -1.10021931657958, 51.379425793307497 ], [ -1.1154571911925, 51.374214909415002 ], [ -1.11751442227817, 51.368089877529698 ], [ -1.11613810406452, 51.366454688940699 ], [ -1.11641749548497, 51.364774351286599 ], [ -1.11539030051166, 51.362550107643301 ], [ -1.11579091152374, 51.3604661648818 ], [ -1.11735953971654, 51.360003165592801 ], [ -1.11924315960353, 51.359896872687301 ], [ -1.11927782340431, 51.360256796001202 ], [ -1.12017055467265, 51.360215854540201 ], [ -1.12014419241139, 51.360541161182198 ], [ -1.12374429557928, 51.361256883094597 ], [ -1.12465990566861, 51.359711712773802 ], [ -1.124766755454, 51.358100275285601 ], [ -1.13131565474712, 51.358028518503197 ], [ -1.13858996979348, 51.357191072483502 ], [ -1.14413070856775, 51.357263106917799 ], [ -1.14685774556472, 51.359368145937601 ], [ -1.16962183241197, 51.360725687526902 ], [ -1.17689427560879, 51.3573240538202 ], [ -1.18606718419686, 51.362106121281997 ], [ -1.18928167836112, 51.363322528303001 ], [ -1.19479710398187, 51.363741760850097 ], [ -1.1999299804521, 51.364691369890998 ], [ -1.20097466469069, 51.365821617506398 ], [ -1.20208285573504, 51.366189722913902 ], [ -1.20494840785162, 51.366449286386 ], [ -1.20636005983034, 51.366222337247699 ], [ -1.20669636261018, 51.366959218863599 ], [ -1.20988008946004, 51.366683072106703 ], [ -1.21081869238673, 51.367145328852601 ], [ -1.21254354768699, 51.366078743009297 ], [ -1.21356016896049, 51.366349939353 ], [ -1.21393541395345, 51.365745496239498 ], [ -1.21482677133722, 51.3661183198667 ], [ -1.21605132337299, 51.365907171535497 ], [ -1.21672975522186, 51.366217430526603 ], [ -1.21830872873505, 51.365862907773703 ], [ -1.2196565134309, 51.366343910687299 ], [ -1.22000854401026, 51.366850731590603 ], [ -1.22075688140799, 51.366938407287002 ], [ -1.22062353965295, 51.367516612008899 ], [ -1.22102594300088, 51.367589401946901 ], [ -1.22179544017465, 51.367785172596598 ], [ -1.22101615053746, 51.368585622141701 ], [ -1.22220524017076, 51.368694193201001 ], [ -1.22198702851208, 51.369451712921197 ], [ -1.22258810103158, 51.369754233051502 ], [ -1.22389493012491, 51.369184694679298 ], [ -1.22507326768595, 51.369503605147301 ], [ -1.22703040905399, 51.368783710797103 ], [ -1.22692027294318, 51.368497933350199 ], [ -1.2273976087308, 51.3683068195147 ], [ -1.22855295478174, 51.3682811635137 ], [ -1.22892803902005, 51.367844860944203 ], [ -1.22973395607919, 51.368011064710203 ], [ -1.23145524776457, 51.3674729286152 ], [ -1.23215432208076, 51.367675361515197 ], [ -1.23331259740561, 51.3671326121192 ], [ -1.23443172595412, 51.367597208161598 ], [ -1.23482643732282, 51.367056200128303 ], [ -1.23591246127013, 51.367571355591799 ], [ -1.23638129645097, 51.367019589176799 ], [ -1.23687698218461, 51.367189117309799 ], [ -1.23803920243115, 51.366832516839999 ], [ -1.23868516429395, 51.3672107563536 ], [ -1.23870851398462, 51.3667523628041 ], [ -1.24003460869313, 51.366561310572401 ], [ -1.24014060743161, 51.366232000041002 ], [ -1.24157870021568, 51.366221531067502 ], [ -1.24203286963777, 51.366905137420403 ], [ -1.24317565961165, 51.367113967240698 ], [ -1.24318679407557, 51.367832464768398 ], [ -1.24393030541054, 51.367432651021403 ], [ -1.24475072827307, 51.3674181599416 ], [ -1.24521349310036, 51.368108102048403 ], [ -1.24614662296201, 51.368407245088299 ], [ -1.24644843441989, 51.3695314107676 ], [ -1.24724239256514, 51.369471695546601 ], [ -1.2478359499592, 51.369809097111101 ], [ -1.24708169029581, 51.370206709324002 ], [ -1.24698873836125, 51.371100369083003 ], [ -1.24782634313713, 51.370742396012702 ], [ -1.24855564369289, 51.371826148292598 ], [ -1.25037042360515, 51.371629119057197 ], [ -1.25113955136333, 51.372040529430301 ], [ -1.25128093223634, 51.371825598009401 ], [ -1.25297725740794, 51.372021592185298 ], [ -1.25387308467244, 51.371439302122397 ], [ -1.25452354515318, 51.372077364373297 ], [ -1.25657051443725, 51.371826877554199 ], [ -1.2573804398981, 51.372114361515102 ], [ -1.25919171252275, 51.371421680391698 ], [ -1.25907112937492, 51.370167449135202 ], [ -1.26057603126644, 51.369583559708403 ], [ -1.26218705219924, 51.368378886341702 ], [ -1.26280310856554, 51.3685751308359 ], [ -1.26299489524186, 51.370136431793 ], [ -1.26379472776609, 51.370160331450599 ], [ -1.26423996137475, 51.370610971786803 ], [ -1.26544343577428, 51.370814480756103 ], [ -1.26780733753241, 51.370321271729502 ], [ -1.2698032587297, 51.370376859905498 ], [ -1.26966315074954, 51.369430940893501 ], [ -1.27067695079464, 51.368826693703603 ], [ -1.27092882560899, 51.368435336223101 ], [ -1.2734099090937, 51.367520962883503 ], [ -1.27601706719905, 51.367347314894097 ], [ -1.27666663150965, 51.368148942736298 ], [ -1.27733473499545, 51.368045996952098 ], [ -1.27824210798242, 51.368815044260799 ], [ -1.27998905230775, 51.368347367309298 ], [ -1.28143413208934, 51.368350832115397 ], [ -1.28219158738701, 51.367964344243703 ], [ -1.28275844755829, 51.368093661205101 ], [ -1.28294074721079, 51.3676380284004 ], [ -1.28395774106782, 51.367642441857598 ], [ -1.28459437567945, 51.367998796284397 ], [ -1.28681077187418, 51.367825221035801 ], [ -1.28712357799706, 51.367939577959099 ], [ -1.28681998041034, 51.368246156305403 ], [ -1.28758501274295, 51.368192373637697 ], [ -1.28990428845152, 51.369544400439899 ], [ -1.29000244090172, 51.370067363079301 ], [ -1.29164213228726, 51.3700359223552 ], [ -1.29204254483145, 51.370431351358597 ], [ -1.29264293702129, 51.370348584661002 ], [ -1.29328708108253, 51.371054800742201 ], [ -1.2960312653024, 51.370574008130603 ], [ -1.29606988326743, 51.370303571770897 ], [ -1.29677333493821, 51.370428336660801 ], [ -1.29674454136399, 51.370714922189499 ], [ -1.29819559462174, 51.370518654538003 ], [ -1.30087050545643, 51.370994964418102 ], [ -1.30333971558293, 51.370831668479099 ], [ -1.30392345018035, 51.371182211367298 ], [ -1.30720501285698, 51.371252882274497 ], [ -1.30932284791388, 51.371714031372598 ], [ -1.3109445124911, 51.372215467918998 ], [ -1.31133796221182, 51.372803164023203 ], [ -1.31205863215385, 51.373033116263301 ], [ -1.3145759158236, 51.372724960350297 ], [ -1.31514083278501, 51.373089812652204 ], [ -1.31671949065269, 51.372912599681399 ], [ -1.32062677171713, 51.3726558765769 ], [ -1.3223987413118, 51.371643758089697 ], [ -1.32421085806803, 51.372099264105898 ], [ -1.32472426022117, 51.372556359686698 ], [ -1.32644817624529, 51.371680541721098 ], [ -1.32760090576907, 51.371440751913603 ], [ -1.32823371024941, 51.371786058248901 ], [ -1.32924850506924, 51.371160629769498 ], [ -1.33001084487997, 51.3712990129494 ], [ -1.33270507561793, 51.370462798858298 ], [ -1.33334051934433, 51.370530233192099 ], [ -1.33428629745273, 51.369413464481198 ], [ -1.33653326028789, 51.369293885071897 ], [ -1.33675653079092, 51.369055933898899 ], [ -1.3373187657857, 51.369417939252401 ], [ -1.33831199473811, 51.368574646681402 ], [ -1.34080439087917, 51.369026890472099 ], [ -1.34120122485138, 51.368553032281 ], [ -1.34292695410455, 51.369121859947199 ], [ -1.34392838513191, 51.369105847579299 ], [ -1.34540023628263, 51.368851522627502 ], [ -1.34582628567816, 51.368285582660299 ], [ -1.34711275865277, 51.368129901494498 ], [ -1.34874593118914, 51.367228934039403 ], [ -1.35045268487172, 51.367216753210499 ], [ -1.35183320975292, 51.367820508242502 ], [ -1.3528796861532, 51.367262473441698 ], [ -1.35476131972769, 51.367474267564504 ], [ -1.35552319037402, 51.3679505604795 ], [ -1.35739912055882, 51.367963529895697 ], [ -1.35826701225608, 51.3675348138309 ], [ -1.35912594872162, 51.367746342107203 ], [ -1.35958657894295, 51.367473693615104 ], [ -1.36056210188197, 51.367878215477901 ], [ -1.36175496558509, 51.367832562961901 ], [ -1.36266835328261, 51.368363567642199 ], [ -1.36327327510754, 51.368249897113401 ], [ -1.3637850263599, 51.368645676062201 ], [ -1.36520471979858, 51.368403363288202 ], [ -1.36627251657239, 51.368580820233703 ], [ -1.36863849409136, 51.367955145879399 ], [ -1.37190162279867, 51.3684177987775 ], [ -1.37357769776251, 51.367810816314901 ], [ -1.37614661740161, 51.368312703075503 ], [ -1.37786901729046, 51.367778807519898 ], [ -1.3787660927352, 51.368154902689199 ], [ -1.38046365580101, 51.368291522937 ], [ -1.38082526575799, 51.368642302618397 ], [ -1.38273646116717, 51.369127180142598 ], [ -1.38524803069852, 51.369413725053903 ], [ -1.38783538849911, 51.370272418992698 ], [ -1.39078915262453, 51.370581829647698 ], [ -1.39351445472003, 51.370470997630001 ], [ -1.39660846229427, 51.371262002056298 ], [ -1.39956474985964, 51.371614355233397 ], [ -1.40142333318457, 51.371534857779899 ], [ -1.40193986843905, 51.372137256570497 ], [ -1.40611498849655, 51.3722357808429 ], [ -1.40710293953711, 51.372708403061203 ], [ -1.40946698642173, 51.372316621470802 ], [ -1.41106775678437, 51.372852433001299 ], [ -1.41563002994336, 51.371883464169002 ], [ -1.41756742175858, 51.370688170827798 ], [ -1.41907210601048, 51.366668146291602 ], [ -1.42158566473427, 51.364406561465202 ], [ -1.42234927294329, 51.3628565336913 ], [ -1.42672870670474, 51.360089636940103 ], [ -1.42726675952679, 51.358982719160402 ], [ -1.42763320599433, 51.359082490233199 ], [ -1.4277542928233, 51.357661528416003 ], [ -1.42843862520728, 51.3566900764731 ], [ -1.43223103528454, 51.355797698490598 ], [ -1.44051199111574, 51.3555389357929 ], [ -1.44410966916138, 51.354928401504402 ], [ -1.44361276514358, 51.351972184110203 ], [ -1.4442229533235, 51.349129170846901 ], [ -1.44493594173199, 51.348118287404802 ], [ -1.44116839028194, 51.346563710352598 ], [ -1.43673186421414, 51.343157083228498 ], [ -1.43346182723197, 51.3411308171179 ], [ -1.43312078142015, 51.340144574668798 ], [ -1.42969282350092, 51.336530285249196 ], [ -1.45080405052468, 51.332674482701798 ], [ -1.45358278713082, 51.332804314218301 ], [ -1.455613274304, 51.332499038724301 ], [ -1.45820853934537, 51.332982273701099 ], [ -1.46063642372997, 51.332435044343498 ], [ -1.46552181432836, 51.3323800964206 ], [ -1.48439938327483, 51.331036743470399 ], [ -1.48844196071374, 51.330466386344703 ], [ -1.49070351009287, 51.329744331627303 ], [ -1.49539415500712, 51.328960717473798 ], [ -1.49699911912208, 51.329196936755203 ], [ -1.4980357729273, 51.329026002280003 ], [ -1.498298923396, 51.329376093215402 ], [ -1.49763752396178, 51.331190445157397 ], [ -1.49753770757014, 51.333226721237097 ], [ -1.4930237822766, 51.337990023531702 ], [ -1.49015515250044, 51.342022122753498 ], [ -1.4865548120345, 51.345320745799803 ], [ -1.48571137940255, 51.347682843318701 ], [ -1.48681183905627, 51.349426733380099 ], [ -1.48940582324964, 51.350396592806803 ], [ -1.49135759349436, 51.352051470425998 ], [ -1.4950202846408, 51.3527632662366 ], [ -1.49740841498029, 51.354593507161901 ], [ -1.50005732863633, 51.355578650287001 ], [ -1.5006084786642, 51.356267961862798 ], [ -1.49965799088611, 51.358483090382499 ], [ -1.50002309307547, 51.360698444636398 ], [ -1.49933690960156, 51.361451784062098 ], [ -1.49931272732483, 51.363277857303402 ], [ -1.49515152742191, 51.367722737626799 ], [ -1.49544914388954, 51.369664448756197 ], [ -1.49938504414129, 51.369025831146899 ], [ -1.50253865352342, 51.368857588681799 ], [ -1.50401069648979, 51.369831346137502 ], [ -1.50700567188193, 51.370521058058998 ], [ -1.50710077035316, 51.3708973897429 ], [ -1.50943467244034, 51.371087869243603 ], [ -1.5100192699643, 51.371904115125503 ], [ -1.51232176965119, 51.3718120515423 ], [ -1.51340538103072, 51.372044974758801 ], [ -1.51417846114566, 51.376099019872797 ], [ -1.51460125280769, 51.3768714219486 ], [ -1.51543580419562, 51.3775807126137 ], [ -1.5160515588882, 51.377639889604502 ], [ -1.51696050645148, 51.378780241917298 ], [ -1.52060055254714, 51.379284295203803 ], [ -1.52323554024478, 51.378617075724897 ], [ -1.52394355847212, 51.378099296632001 ], [ -1.52559649845309, 51.378046671101103 ], [ -1.52577127329037, 51.378375575830397 ], [ -1.52763458480509, 51.378821058582602 ], [ -1.52824347036937, 51.3792002510054 ], [ -1.52689009668778, 51.379948273970697 ], [ -1.52887108265333, 51.381389591463403 ], [ -1.53330124340288, 51.383360321858198 ], [ -1.53412096466906, 51.384146726731103 ], [ -1.53466805236929, 51.3843287753146 ], [ -1.53566503576501, 51.384077342920598 ], [ -1.53833184288397, 51.385537387179497 ], [ -1.53868026019489, 51.387049400737503 ], [ -1.53771747740546, 51.388322440064201 ], [ -1.54233060606671, 51.3896245561413 ], [ -1.54262411604611, 51.3904564863833 ], [ -1.54426862003279, 51.390138287079502 ], [ -1.54646930947568, 51.390540726698703 ], [ -1.54650727205125, 51.391063236903399 ], [ -1.54733117976101, 51.391174380895897 ], [ -1.54711076644789, 51.393260468256301 ], [ -1.54875447864056, 51.393017712538402 ], [ -1.54900947488832, 51.3947181947253 ], [ -1.55331702520005, 51.394738275647398 ], [ -1.55560283150743, 51.3955841256927 ], [ -1.55626211791134, 51.396526266109497 ], [ -1.55620764679722, 51.398136479906803 ], [ -1.55356120790708, 51.401543338702503 ], [ -1.55415181648208, 51.403481534410702 ], [ -1.55368933540103, 51.4066772856808 ], [ -1.55429833384686, 51.407634542160501 ], [ -1.55334842889456, 51.408474394627 ], [ -1.55298802119079, 51.410043911254498 ], [ -1.55433123571543, 51.410307922670597 ], [ -1.55562825830984, 51.409408339250298 ], [ -1.55783413217458, 51.4090848870717 ], [ -1.55993679017502, 51.408125189067498 ], [ -1.56055537639087, 51.408234574190899 ], [ -1.56054520970521, 51.408552849563698 ], [ -1.56227497202719, 51.408237415472499 ], [ -1.56247752643546, 51.411269296269602 ], [ -1.56349121018316, 51.413228893739799 ], [ -1.56541735702828, 51.413298979906401 ], [ -1.56579195486299, 51.413829122428297 ], [ -1.56685827793027, 51.413892400119998 ], [ -1.56679628634085, 51.41436689823 ], [ -1.56961586563135, 51.4147000982572 ], [ -1.56968788167968, 51.415149111439298 ], [ -1.57092016236615, 51.4153082479761 ], [ -1.57116531108078, 51.416464637392501 ], [ -1.56996668500205, 51.417836514459701 ], [ -1.56688847375766, 51.421041025775203 ], [ -1.56511865145832, 51.422043434080301 ], [ -1.56339115500228, 51.421011863450097 ], [ -1.56031795515026, 51.420394308470598 ], [ -1.55823139329725, 51.420513299214498 ], [ -1.55846183479602, 51.421676850057601 ], [ -1.55628653645764, 51.421597525325801 ], [ -1.5536626612511, 51.422405858795898 ], [ -1.55311279213499, 51.421276139408697 ], [ -1.54944174985503, 51.422380708983802 ], [ -1.54596327905594, 51.422752105858997 ], [ -1.54441518693426, 51.423539221503198 ], [ -1.54352276971214, 51.424760450884499 ], [ -1.54303379130832, 51.424610129524602 ], [ -1.54190341981472, 51.425464462052098 ], [ -1.53985419138055, 51.425713609600699 ], [ -1.53962439827352, 51.426111920934801 ], [ -1.53284483199614, 51.425620138998703 ], [ -1.53210248525191, 51.424792675858399 ], [ -1.53168624821782, 51.425129098674397 ], [ -1.52661860733259, 51.423929863842602 ], [ -1.52528850207046, 51.425017934972701 ], [ -1.52695469088709, 51.425785351752502 ], [ -1.52732642153566, 51.426561101394398 ], [ -1.52789201785148, 51.426811488038503 ], [ -1.52826558140903, 51.427964881404897 ], [ -1.53206255062256, 51.429555493328799 ], [ -1.52398565610524, 51.441338258810198 ], [ -1.52443865671882, 51.442886703718202 ], [ -1.52399091949678, 51.447480554628797 ], [ -1.52490320582149, 51.450271738845103 ], [ -1.52884968505138, 51.453992334618697 ], [ -1.52902843752282, 51.455511787146001 ], [ -1.53459775837381, 51.456125728482903 ], [ -1.53874054484917, 51.457355937319001 ], [ -1.5421809305857, 51.457749863658499 ], [ -1.54575538121912, 51.458991174747602 ], [ -1.54839018913458, 51.460655835721496 ], [ -1.54961125441059, 51.4622287097583 ], [ -1.55094100445813, 51.465484322931601 ], [ -1.55737876331927, 51.468014842998301 ], [ -1.55952593937496, 51.469738605291901 ], [ -1.56071441518051, 51.472210314311702 ], [ -1.56114363477899, 51.475803251364397 ], [ -1.56158295445419, 51.476378570731399 ], [ -1.56272931314913, 51.476813515221203 ], [ -1.56683051540033, 51.476930324259698 ], [ -1.56688157746218, 51.478531890481797 ], [ -1.56764242231791, 51.479843936499002 ], [ -1.56782395527219, 51.481513399337999 ], [ -1.57044904662374, 51.486274149721801 ], [ -1.57359768859775, 51.487240100589602 ], [ -1.57677520420601, 51.4893093811163 ], [ -1.57933158922265, 51.491199628222603 ], [ -1.58229087127299, 51.494111796602098 ], [ -1.58340588718327, 51.495844815916001 ], [ -1.5822671317159, 51.495776033932401 ], [ -1.58352161834309, 51.497693015818903 ], [ -1.58264478002181, 51.498112556289797 ], [ -1.58206197365305, 51.499460989182403 ], [ -1.58227104209046, 51.500240366537902 ], [ -1.58261521548015, 51.5008853899295 ], [ -1.58576494575829, 51.502117654261198 ], [ -1.585663831657, 51.502933769922002 ], [ -1.58607942095359, 51.503032322531602 ], [ -1.58701206469476, 51.507124094105102 ], [ -1.58727416248711, 51.511138884959102 ], [ -1.58806412526132, 51.513502900244198 ], [ -1.58708715780579, 51.516048564917 ], [ -1.58541858737363, 51.523642332053001 ], [ -1.58470801107569, 51.524912119257301 ], [ -1.58449034297919, 51.525232342781003 ], [ -1.58514077912704, 51.525667108339199 ], [ -1.58334078636035, 51.528315971453402 ], [ -1.58151708564124, 51.534466825444099 ], [ -1.58118687450076, 51.536994962982597 ], [ -1.57668216869317, 51.5390621370465 ], [ -1.56935939012213, 51.543283085370199 ], [ -1.5702376510196, 51.544511776637997 ], [ -1.57000733778943, 51.547380209026798 ], [ -1.5695874815065, 51.5475440638591 ], [ -1.56610330835457, 51.545561630710601 ], [ -1.56105087787855, 51.550294359675298 ], [ -1.55637048188363, 51.553005675339499 ], [ -1.55500099625547, 51.5533704629675 ], [ -1.54740130367212, 51.553082819489497 ], [ -1.54707468885076, 51.5513965693725 ], [ -1.54295495362928, 51.552324687185497 ], [ -1.54145329804827, 51.552058947483502 ], [ -1.54024278076832, 51.550951787522699 ], [ -1.54027314156231, 51.549516900137597 ], [ -1.53478404682148, 51.548384723539101 ], [ -1.53231274659297, 51.5471924807809 ], [ -1.53095864819817, 51.546069466642898 ], [ -1.53018409320756, 51.5469295844456 ], [ -1.53071860820571, 51.548096074493799 ], [ -1.5213066891833, 51.550895812679698 ], [ -1.51667980498562, 51.551185264877901 ], [ -1.51459325897529, 51.551158677150198 ], [ -1.51293889355992, 51.550759809869398 ], [ -1.50894328802909, 51.549064447207499 ], [ -1.50474091758002, 51.5466594634808 ], [ -1.50122899013972, 51.546694931517798 ], [ -1.49588867042186, 51.5456623695028 ], [ -1.48956388790708, 51.542810742882097 ], [ -1.48603172182756, 51.540566294922897 ], [ -1.48758311702513, 51.538893458306703 ], [ -1.48801645436595, 51.536243644109298 ], [ -1.48585654515027, 51.534078876733602 ], [ -1.47707122993816, 51.532647294737401 ], [ -1.47653311853502, 51.532179980286202 ], [ -1.47625207831466, 51.530780562396401 ], [ -1.47071092296769, 51.5300094365112 ], [ -1.47074436480117, 51.528606838957799 ], [ -1.46298772277674, 51.530190998077998 ], [ -1.46479934016894, 51.534787751454502 ], [ -1.46478678967361, 51.537949168906103 ], [ -1.46442254094774, 51.538516698731698 ], [ -1.4632066229324, 51.537210957461802 ], [ -1.46184113938966, 51.536478113362101 ], [ -1.45675654753808, 51.535458425891299 ], [ -1.45492791715735, 51.535378035040203 ], [ -1.44783186160006, 51.536426542932404 ], [ -1.43964852895161, 51.539565435074003 ], [ -1.43713409660938, 51.540008438059097 ], [ -1.43099260246581, 51.542584619080998 ], [ -1.42659119274702, 51.545598859866899 ], [ -1.42564713140174, 51.542010122153499 ], [ -1.42276866886813, 51.535764927651201 ], [ -1.41933675601602, 51.537724365869003 ], [ -1.41802322866042, 51.5389748987266 ], [ -1.41749023121735, 51.5388193587182 ], [ -1.4162107687505, 51.539649265494603 ], [ -1.4137874477159, 51.542080246525799 ], [ -1.40988465631176, 51.544701541440503 ], [ -1.4048577107684, 51.547235218489199 ], [ -1.40432759282506, 51.546309179731097 ], [ -1.4002868483161, 51.544765454838704 ], [ -1.39821500145024, 51.5434231507083 ], [ -1.39585044290582, 51.540344980187697 ], [ -1.39245940322813, 51.540423705261297 ], [ -1.38890343803659, 51.5398900463546 ], [ -1.38377881234937, 51.540426210955303 ], [ -1.38069852831369, 51.542258710780303 ], [ -1.37696040774848, 51.545778930520399 ], [ -1.37795127156054, 51.549686558982998 ], [ -1.37283146194223, 51.550575177422303 ], [ -1.36901495641398, 51.552207853252398 ], [ -1.3673210476583, 51.5524667176092 ], [ -1.36551057723299, 51.551143307594202 ], [ -1.36317636366103, 51.550043560339503 ], [ -1.36117163533254, 51.547983554042098 ], [ -1.35878118774787, 51.546605559939501 ], [ -1.35568713171591, 51.546751434419498 ], [ -1.35036091787922, 51.546883921607403 ], [ -1.34682983856035, 51.5440131009466 ], [ -1.34398803780228, 51.543377738649298 ], [ -1.34124993762755, 51.544056551147797 ], [ -1.33795149512824, 51.545777032762103 ], [ -1.33829984169506, 51.547510738814402 ], [ -1.33807049400511, 51.5493051011956 ], [ -1.33700185287879, 51.550892385626 ], [ -1.33644290829383, 51.552834101510399 ], [ -1.33478482532251, 51.5548721620994 ], [ -1.3331336222926, 51.560377412824103 ], [ -1.3287207966799, 51.563712413503303 ], [ -1.32629751267927, 51.559582168675703 ], [ -1.32040704151952, 51.55893950806 ], [ -1.31530694253762, 51.557265348802801 ], [ -1.31176470905448, 51.557231171990701 ], [ -1.31081398672337, 51.556954038665602 ] ] ] } } + ] +}; diff --git a/app/views/pre-alpha-flats/index.html b/app/views/pre-alpha-flats/index.html new file mode 100755 index 0000000..c86a965 --- /dev/null +++ b/app/views/pre-alpha-flats/index.html @@ -0,0 +1,51 @@ + + + + + +{% extends 'layout.html' %} + + + +{% set pageName = "C2C pre alpha flats" %} + + + +{% block beforeContent %} +{% endblock %} + + + +{% block content %} +
+
+ + + + +

+ {{ serviceName }} +

+ +

March 2026

+

Mat note: first rounds of flats based on "easy win" building blocks. Essentially sketches to prompt critique.

+ +
    +
  1. + Object: BSO organisation +
  2. +
+ +
+
+{% endblock %} From e293617fab8d36c6b1ac02a0b1d22caed01afd41 Mon Sep 17 00:00:00 2001 From: Mat Johnson Date: Fri, 13 Mar 2026 22:03:30 +0000 Subject: [PATCH 2/3] Late night full of mistakes commit :) --- app/assets/images/mobile.svg | 1 + app/assets/images/org.svg | 1 + app/assets/images/static.svg | 1 + .../_includes/primary-navigation.html | 47 ++++++ .../bso/bso-internal-details.html | 148 +++++++++--------- .../bso/bso-public-details.html | 47 +----- .../pre-alpha-flats/bso/geo-bso-west-berks.js | 19 ++- app/views/pre-alpha-flats/index.html | 5 +- .../pre-alpha-flats/unit/unit-listing.html | 78 +++++++++ 9 files changed, 223 insertions(+), 124 deletions(-) create mode 100644 app/assets/images/mobile.svg create mode 100644 app/assets/images/org.svg create mode 100644 app/assets/images/static.svg create mode 100644 app/views/pre-alpha-flats/_includes/primary-navigation.html create mode 100644 app/views/pre-alpha-flats/unit/unit-listing.html diff --git a/app/assets/images/mobile.svg b/app/assets/images/mobile.svg new file mode 100644 index 0000000..f0a3fa3 --- /dev/null +++ b/app/assets/images/mobile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/assets/images/org.svg b/app/assets/images/org.svg new file mode 100644 index 0000000..6fc2313 --- /dev/null +++ b/app/assets/images/org.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/assets/images/static.svg b/app/assets/images/static.svg new file mode 100644 index 0000000..1971eae --- /dev/null +++ b/app/assets/images/static.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/views/pre-alpha-flats/_includes/primary-navigation.html b/app/views/pre-alpha-flats/_includes/primary-navigation.html new file mode 100644 index 0000000..35021dc --- /dev/null +++ b/app/views/pre-alpha-flats/_includes/primary-navigation.html @@ -0,0 +1,47 @@ +{{ header({ + account: { + items: [ + { + text: "West Berkshire BSO" + }, + { + href: "#", + text: "Thomas Pynchon", + icon: true + }, + { + href: "/", + text: "Log out" + } + ] + }, + service: { + text: serviceName, + href: "/" + }, + navigation: { + items: [ + { + href: "#", + text: "Dashboard" + }, + { + href: "#", + text: "Manage batches" + }, + { + href: "#", + text: "Manage clinics" + }, + { + href: "#", + text: "Manage other stuff", + active: true + }, + { + href: "#", + text: "Reports" + } + ] + } +}) }} diff --git a/app/views/pre-alpha-flats/bso/bso-internal-details.html b/app/views/pre-alpha-flats/bso/bso-internal-details.html index f7b1326..719eaf7 100644 --- a/app/views/pre-alpha-flats/bso/bso-internal-details.html +++ b/app/views/pre-alpha-flats/bso/bso-internal-details.html @@ -26,75 +26,28 @@ {% endblock %} {% block header %} - {{ header({ - account: { - items: [ - { - text: "West Berkshire BSO" - }, - { - href: "#", - text: "Thomas Pynchon", - icon: true - }, - { - href: "/", - text: "Log out" - } - ] - }, - service: { - text: serviceName, - href: "/" - }, - navigation: { - items: [ - { - href: "#", - text: "Dashboard" - }, - { - href: "#", - text: "Manage batches" - }, - { - href: "#", - text: "Manage clinics" - }, - { - href: "#", - text: "Manage other stuff" - }, - { - href: "#", - text: "Reports" - } - ] - } - }) }} + {% include "pre-alpha-flats/_includes/primary-navigation.html" %} {% endblock %} {% block beforeContent %} - -{{ breadcrumb({ - items: [ - { - href: "#", - text: "Home" - }, - { - href: "#", - text: "Manage other stuff" - }, - { - href: "#", - text: "Organisation" - } - ] -}) }} - + {{ breadcrumb({ + items: [ + { + href: "#", + text: "Home" + }, + { + href: "#", + text: "Manage other stuff" + }, + { + href: "#", + text: "Organisation" + } + ] + }) }} {% endblock %} @@ -172,16 +125,25 @@

BSO area

  • {% call card({ clickable: true, - heading: "4", + heading: "1", + headingClasses: "nhsuk-u-font-size-48 nhsuk-u-margin-bottom-1" + }) %} + Static unit + {% endcall %} +
  • +
  • + {% call card({ + clickable: true, + heading: "2", headingClasses: "nhsuk-u-font-size-48 nhsuk-u-margin-bottom-1" }) %} - Breast screening units + Mobile units {% endcall %}
  • {% call card({ clickable: true, - heading: "8", + heading: "13", headingClasses: "nhsuk-u-font-size-48 nhsuk-u-margin-bottom-1" }) %} Locations @@ -206,6 +168,47 @@

    BSO area

    + + + + + + + + +{% endblock %} diff --git a/app/views/pre-alpha-flats/location/location-travel-and-transport.html b/app/views/pre-alpha-flats/location/location-travel-and-transport.html new file mode 100644 index 0000000..3cee8c7 --- /dev/null +++ b/app/views/pre-alpha-flats/location/location-travel-and-transport.html @@ -0,0 +1,206 @@ + + + + + +{% extends 'layout.html' %} + + + +{% set pageName = "Camberwell Building" %} + +{% block header %} + {% include "pre-alpha-flats/_includes/primary-navigation.html" %} +{% endblock %} + + + +{% block beforeContent %} +{{ breadcrumb({ + items: [ + { + href: "#", + text: "Home" + }, + { + href: "/pre-alpha-flats/", + text: "Manage other stuff" + }, + { + href: "/pre-alpha-flats/location/location-listing", + text: "Locations" + } + ] +}) }} +{% endblock %} + + + +{% block content %} +
    +
    +
    +

    + Camberwell building +

    +
    +

    Change

    +
    +
    + + {% set secondaryNavItems = [] %} + + {% for item in [ + { href: 'location-location-details', label: 'Location details' }, + { href: 'location-travel-and-transport', label: 'Travel and transport', selected: 'true' } + ] %} + {% set secondaryNavItems = secondaryNavItems | push({ + text: item.label | safe, + href: item.href | trim, + current: true if item.selected == 'true' + }) %} + {% endfor %} + + {{ appSecondaryNavigation({ + visuallyHiddenTitle: "Secondary menu", + items: secondaryNavItems + }) }} + + {% set insetTextHtml %} +

    Note: these details appear verbatim in public communications

    + {% endset %} +
    +
    + {{ insetText({ + html: insetTextHtml, + classes: "nhsuk-u-margin-top-0" + }) }} +
    +
    + + {% set parkingHtml %} +
    +
    +

    + Pay-and-display car park nearby with disabled spaces +

    +
    +
    +
    +
    +

    + Link to parking provider
    + Open in Google maps +

    +

    Links open a new tab or window

    +
    +
    + {% endset %} + {% call card({ + headingHtml: ' +
    +

    Car parking

    +

    Change

    +
    + ' + }) %} + {{ parkingHtml | safe }} + {% endcall %} + + {% set busHtml %} +
    +
    +

    Valmar Road

    +

    + More details on Transport for London website
    + Open in Google maps +

    +

    Links open a new tab or window

    +
    +
    +
    +
    +

    Coldharbour Lane

    +

    + More details on Transport for London website
    + Open in Google maps +

    +

    Links open a new tab or window

    +
    +
    + {% endset %} + {% call card({ + headingHtml: ' +
    +

    Bus stops nearby

    +

    Change

    +
    + ' + }) %} + {{ busHtml | safe }} + {% endcall %} + + {% set busHtml %} +
    +
    +

    Denmark Hill

    +

    + More details on National Rail website
    + Open in Google maps +

    +

    Links open a new tab or window

    +
    +
    +
    +
    +

    Loughborough Junction

    +

    + More details on National Rail website
    + Open in Google maps +

    +

    Links open a new tab or window

    +
    +
    + {% endset %} + {% call card({ + headingHtml: ' +
    +

    Rail stations nearby

    +

    Change

    +
    + ' + }) %} + {{ busHtml | safe }} + {% endcall %} + + {% set otherHtml %} +
    +
    +
      +
    • Bicycle parking with 200 meters
    • +
    • Cycle hire scheme docking stations within 500 meters
    • +
    +
    +
    + {% endset %} + {% call card({ + headingHtml: ' +
    +

    Other means

    +

    Change

    +
    + ' + }) %} + {{ otherHtml | safe }} + {% endcall %} +{% endblock %} diff --git a/app/views/pre-alpha-flats/unit/unit-internal-details.html b/app/views/pre-alpha-flats/unit/unit-internal-details.html new file mode 100644 index 0000000..72dbf9c --- /dev/null +++ b/app/views/pre-alpha-flats/unit/unit-internal-details.html @@ -0,0 +1,123 @@ + + + + + +{% extends 'layout.html' %} + + + +{% set pageName = "West Berks mobile screening unit name" %} + +{% block header %} + {% include "pre-alpha-flats/_includes/primary-navigation.html" %} +{% endblock %} + + + +{% block beforeContent %} +{{ breadcrumb({ + items: [ + { + href: "#", + text: "Home" + }, + { + href: "/pre-alpha-flats/", + text: "Manage other stuff" + }, + { + href: "/pre-alpha-flats/unit/unit-listing", + text: "Units" + } + ] +}) }} +{% endblock %} + + + +{% block content %} +
    +
    +
    + Mobile unit +

    + West Berks mobile screening unit +

    +
    +

    Change

    +
    +
    + +
    +
    +
    + Current location: +

    + Camberwell building +

    +

    + 104 Denmark Hill, London, SE5 8RX +

    +
    +

    Change

    +
    +
    + + {% set secondaryNavItems = [] %} + + {% for item in [ + { href: 'unit-public-details', label: 'Public details' }, + { href: 'unit-internal-details', label: 'Internal details', selected: 'true' } + ] %} + {% set secondaryNavItems = secondaryNavItems | push({ + text: item.label | safe, + href: item.href | trim, + current: true if item.selected == 'true' + }) %} + {% endfor %} + + {{ appSecondaryNavigation({ + visuallyHiddenTitle: "Secondary menu", + items: secondaryNavItems + }) }} + + {% set internalHtml %} +
    +
    +
    + Unit nickname: +

    + Mandy +

    +

    + ID: AN-SKIT-p33ps +

    +
    +

    Change

    +
    +
    +
    +
    +

    This unit has 2 modalities

    +

    + Short description or something to help a user identify the unit in other scenarios, for example an interface asking you to "choose a unit". +

    +
    +
    + {% endset %} + {{ card({ + headingHtml: ' ', + descriptionHtml: internalHtml + }) }} +{% endblock %} diff --git a/app/views/pre-alpha-flats/unit/unit-listing.html b/app/views/pre-alpha-flats/unit/unit-listing.html index 18d4c37..ee9a3a1 100644 --- a/app/views/pre-alpha-flats/unit/unit-listing.html +++ b/app/views/pre-alpha-flats/unit/unit-listing.html @@ -26,7 +26,6 @@ {% block beforeContent %} - {{ breadcrumb({ items: [ { @@ -34,37 +33,30 @@ text: "Home" }, { - href: "#", + href: "/pre-alpha-flats/", text: "Manage other stuff" - }, - { - href: "#", - text: "Units" } ] }) }} - {% endblock %} {% block content %}

    - WBSS units + Breast screening units

    • {% set cardHeadingHtml %} - Static -

      Unit public name

      -
      Unit 1 internal name and ID
      + Mobile unit: Mandy - AN-SKIT-p33ps +

      West Berks mobile screening unit

      {% endset %} {% set cardDescriptionHtml %} -

      Short description or something to help

      -

      2 modalities

      +

      Short description or something to help a user identify the unit in other scenarios, for example an interface asking you to "choose a unit".

      {% endset %} {{ card({ diff --git a/app/views/pre-alpha-flats/unit/unit-public-details.html b/app/views/pre-alpha-flats/unit/unit-public-details.html new file mode 100644 index 0000000..777baa1 --- /dev/null +++ b/app/views/pre-alpha-flats/unit/unit-public-details.html @@ -0,0 +1,151 @@ + + + + + +{% extends 'layout.html' %} + + + +{% set pageName = "West Berks mobile screening unit name" %} + +{% block header %} + {% include "pre-alpha-flats/_includes/primary-navigation.html" %} +{% endblock %} + + + +{% block beforeContent %} +{{ breadcrumb({ + items: [ + { + href: "#", + text: "Home" + }, + { + href: "/pre-alpha-flats/", + text: "Manage other stuff" + }, + { + href: "/pre-alpha-flats/unit/unit-listing", + text: "Units" + } + ] +}) }} +{% endblock %} + + + +{% block content %} +
      +
      +
      + Mobile unit +

      + West Berks mobile screening unit +

      +
      +

      Change

      +
      +
      + +
      +
      +
      + Current location: +

      + Camberwell building +

      +

      + 104 Denmark Hill, London, SE5 8RX +

      +
      +

      Change

      +
      +
      + + {% set secondaryNavItems = [] %} + + {% for item in [ + { href: 'unit-public-details', label: 'Public details', selected: 'true' }, + { href: 'unit-internal-details', label: 'Internal details' } + ] %} + {% set secondaryNavItems = secondaryNavItems | push({ + text: item.label | safe, + href: item.href | trim, + current: true if item.selected == 'true' + }) %} + {% endfor %} + + {{ appSecondaryNavigation({ + visuallyHiddenTitle: "Secondary menu", + items: secondaryNavItems + }) }} + + + + {% set insetTextHtml %} +

      Note: these details appear verbatim in public communications

      + {% endset %} +
      +
      + {{ insetText({ + html: insetTextHtml, + classes: "nhsuk-u-margin-top-0" + }) }} +
      +
      + + {% set facilitiesHtml %} +
        +
      • Toilets
      • +
      • Accessible toilet
      • +
      • Bring a companion or carer
      • +
      • Induction loop
      • +
      • Waiting area
      • +
      • Wheelchair access
      • +
      + {% endset %} + {% call card({ + headingHtml: ' +
      +

      Facilities available:

      +

      Change

      +
      + ' + }) %} + {{ facilitiesHtml | safe }} + {% endcall %} + + + {% set notesHtml %} +
      +
      +

      + Our waiting area has 4 chairs, space for 1 wheelchair, and is heated. +

      +

      + Please arrive no more than 10 minutes before the time on your invitation. +

      +
      + {% endset %} + {{ card({ + headingHtml: ' +
      +

      Before-you-go notes for screening participants:

      +

      Change

      +
      + ', + descriptionHtml: notesHtml + }) }} +{% endblock %}