`. The background div contains the full-screen map, chart or media that you are animating/manipulating, and the foreground slot contains a series of `
` elements, which contain the text captions.
83 |
84 | The essential thing to understand is that each section is automatically tracked and bound to an `index` value (in Javascript), starting from zero. In the demo, these indices are bound to an array, and each Scroller has an associated array of Javascript functions (there are two in the demo, `chartActions` and `mapActions`) that control the interactions for each caption. If there is no interaction for a particular caption, then it needs a `null` value in this array, or a repetion of the previous function (depending what interaction you need).
85 |
86 | The Scroller component has other features not used in the demo, including tracking the exact progress between captions, or within a whole Scroller section, which can be used for more complex continuous interactions (rather than step-based). All of the features are [documented here](https://github.com/sveltejs/svelte-scroller).
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@onsvisual/svelte-scrolly",
3 | "homepage": "http://onsvisual.github.io/svelte-scrolly",
4 | "version": "0.1.1",
5 | "scripts": {
6 | "build": "rollup -c",
7 | "dev": "rollup -c -w",
8 | "start": "sirv public",
9 | "deploy": "gh-pages -d public"
10 | },
11 | "author": "Ahmad Barclay",
12 | "license": "MIT",
13 | "devDependencies": {
14 | "@babel/core": "^7.12.3",
15 | "@babel/plugin-syntax-dynamic-import": "^7.8.3",
16 | "@babel/plugin-transform-runtime": "^7.12.1",
17 | "@babel/preset-env": "^7.12.1",
18 | "@babel/runtime": "^7.12.1",
19 | "@onsvisual/svelte-charts": "latest",
20 | "@onsvisual/svelte-maps": "latest",
21 | "@rollup/plugin-commonjs": "^14.0.0",
22 | "@rollup/plugin-node-resolve": "^8.0.0",
23 | "@turf/bbox": "^6.5.0",
24 | "core-js": "3",
25 | "d3-dsv": "latest",
26 | "debounce": "^1.2.0",
27 | "gh-pages": "^3.1.0",
28 | "mapbox-gl": "1.13.1",
29 | "parse-color": "^1.0.0",
30 | "rollup": "^2.3.4",
31 | "rollup-plugin-babel": "^4.3.3",
32 | "rollup-plugin-livereload": "^2.0.0",
33 | "rollup-plugin-svelte": "^6.0.0",
34 | "rollup-plugin-terser": "^7.0.0",
35 | "svelte": "^3.0.0",
36 | "topojson-client": "^3.1.0"
37 | },
38 | "dependencies": {
39 | "sirv-cli": "^1.0.0"
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/public/data/.~lock.data_district.csv#:
--------------------------------------------------------------------------------
1 | ,ahmadbarclay,ahmads-mbp.home,23.11.2021 13:51,file:///Users/ahmadbarclay/Library/Application%20Support/LibreOffice/4;
--------------------------------------------------------------------------------
/public/data/data_district.csv:
--------------------------------------------------------------------------------
1 | code,name,parent,area,density,age_med,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020
2 | E06000001,Hartlepool,E12000001,94,1001,41.6,90152,89993,90134,90317,90457,90781,90969,91379,91530,91773,92088,92261,92662,92606,92498,92845,93019,93242,93663,93836
3 | E06000002,Middlesbrough,E12000001,54,2622,36.2,141233,140090,139050,138451,138517,138169,138190,137885,137273,137667,138368,138726,138911,138991,139310,140326,140639,140545,140980,141285
4 | E06000003,Redcar and Cleveland,E12000001,245,560,45.3,139159,138520,138565,138643,138177,137621,136940,136512,135867,135383,135164,134976,134960,135102,135324,135496,136005,136718,137150,137228
5 | E06000004,Stockton-on-Tees,E12000001,205,963,41,183795,184940,185699,185687,186350,187270,187937,189039,189978,190902,191824,192487,193433,194423,195128,195958,196487,197213,197348,197419
6 | E06000005,Darlington,E12000001,197,544,43.2,97894,98474,98911,99343,100287,101509,102632,103694,104355,105028,105584,105503,105726,105877,105998,106327,106347,106566,106803,107402
7 | E06000006,Halton,E12000002,79,1641,41,118559,118788,119178,119960,120396,121275,122040,122907,123636,124802,125722,125781,126074,126501,126719,127306,127595,128432,129410,129759
8 | E06000007,Warrington,E12000002,181,1159,42.6,191202,191615,191987,191837,192992,194603,196559,198187,200057,201309,202709,203795,205165,206681,207781,208973,209704,209547,210014,209397
9 | E06000008,Blackburn with Darwen,E12000002,137,1095,36.6,138453,139538,140429,141418,142145,143110,143942,144902,146197,146966,147657,147854,147763,147416,147856,148462,148772,148942,149696,150030
10 | E06000009,Blackpool,E12000002,35,3968,43.5,142270,142164,142658,143143,143688,143733,143644,142921,142578,142753,142080,142037,141603,140898,140162,139983,139870,139305,139446,138381
11 | E06000010,"Kingston upon Hull, City of",E12000003,72,3620,35.9,249913,249463,250604,253049,255159,255497,255761,256746,256079,256174,256123,257012,257188,257414,258587,260035,260673,260645,259778,259126
12 | E06000011,East Riding of Yorkshire,E12000003,2404,143,49.5,314854,318633,321869,325117,327268,328587,330865,332464,332748,333599,334673,335901,336072,337242,336756,337804,338061,339614,341173,343201
13 | E06000012,North East Lincolnshire,E12000003,193,827,42.7,157951,158003,158373,158542,158725,158610,158589,158708,158689,158951,159735,159788,159963,160019,159971,159828,159826,159821,159563,159364
14 | E06000013,North Lincolnshire,E12000003,847,204,44.5,152964,154240,156196,158211,159679,161163,162801,164519,165572,166539,167516,168351,168716,169213,169843,170807,171294,172005,172292,172748
15 | E06000014,York,E12000003,272,776,37.6,181291,182088,183960,186643,188214,188977,189770,190768,192398,195070,197783,199567,202113,203654,205784,206920,208163,209893,210618,211012
16 | E06000015,Derby,E12000004,78,3291,37.2,230726,231979,232827,234501,236470,238110,239917,241865,243980,247035,248943,250582,251312,252313,253875,256203,257034,257174,257302,256814
17 | E06000016,Leicester,E12000004,73,4827,31.7,282757,285295,288648,294127,301543,306548,311303,315473,319708,324912,329627,332067,334631,338491,344036,349513,353540,355218,354224,354036
18 | E06000017,Rutland,E12000004,382,106,47.9,34598,35295,35559,35623,36115,36510,37110,37478,37417,37670,37581,37096,37791,38263,38352,38949,39474,39697,39927,40476
19 | E06000018,Nottingham,E12000004,75,4518,29.7,268939,271769,275547,279624,284834,286459,288164,290783,294808,299753,303899,308463,310657,314385,318936,324779,329209,331069,332900,337098
20 | E06000019,"Herefordshire, County of",E12000005,2180,89,47.7,174885,175258,175648,176033,176587,178103,179930,181791,182367,182865,183619,185197,186389,187737,188522,189532,191041,192107,192801,193615
21 | E06000020,Telford and Wrekin,E12000005,290,625,39.6,158573,159401,159848,160603,161535,162710,163368,164089,164889,165641,166831,167811,168642,169768,171677,173727,175768,177799,179854,181322
22 | E06000021,Stoke-on-Trent,E12000005,93,2746,37.9,240422,239955,240031,241078,241481,243069,243697,245509,245869,247381,248719,249792,250194,250956,251746,253659,255378,255833,256375,256622
23 | E06000022,Bath and North East Somerset,E12000009,346,568,37.7,169158,169819,170361,170585,171274,171204,172635,173565,173360,174267,175538,177196,179460,181241,184287,186946,188678,192106,193282,196357
24 | E06000023,"Bristol, City of",E12000009,110,4248,32.4,390049,389735,391454,395743,405407,408428,411901,414822,418990,423044,428074,433043,438386,443791,450640,455966,459252,463405,463377,465866
25 | E06000024,North Somerset,E12000009,374,577,46.1,188840,189718,191323,192776,194745,197028,199498,200853,201711,202967,203091,204454,206182,208185,209941,211747,212834,213919,215052,215574
26 | E06000025,South Gloucestershire,E12000009,497,579,40.7,245985,247755,249176,251226,253178,255258,256640,257970,259730,261471,263417,266193,268951,270994,273952,276677,279027,282644,285093,287816
27 | E06000026,Plymouth,E12000009,80,3292,38.8,240954,242550,243390,244037,247516,249178,251237,252488,253116,254227,256589,257744,258592,260512,261386,262355,263070,263100,262100,262839
28 | E06000027,Torbay,E12000009,63,2166,49.6,129965,130521,131238,131937,132178,131857,132172,132070,131641,131443,131193,131480,132201,133264,133791,134406,135247,135780,136264,136218
29 | E06000030,Swindon,E12000009,230,969,40.5,180129,182110,184368,186390,189684,192345,196942,201521,204371,206939,209709,211918,214028,215991,217584,218580,220363,221996,222193,222881
30 | E06000031,Peterborough,E12000006,343,590,37.1,157439,158794,160778,163485,167220,169887,172443,176027,178963,181762,184457,186596,188371,190493,193657,196735,198914,201041,202259,202626
31 | E06000032,Luton,E12000006,43,4925,34.8,185889,185631,185016,183563,185392,187312,189742,192084,195449,199583,203641,205498,207404,210173,213581,215914,214658,214109,213052,213528
32 | E06000033,Southend-on-Sea,E12000006,42,4386,42.1,160362,161159,161437,161488,162645,163776,165429,168150,170013,172122,174274,175091,176236,178367,179234,180606,181808,182463,183125,182773
33 | E06000034,Thurrock,E12000006,164,1071,36.9,143297,144728,145977,147056,148556,150206,151741,153633,155003,156585,158268,159837,161305,163822,166040,168428,170394,172525,174341,175531
34 | E06000035,Medway,E12000008,194,1441,38.4,249704,250262,251159,251459,252098,253478,255824,258224,260230,262738,264885,268130,270689,273212,275176,276957,277616,277855,278556,279142
35 | E06000036,Bracknell Forest,E12000008,109,1135,39.6,109650,109490,109475,109189,109487,109896,110702,111455,111916,112893,113696,115089,116543,117997,119205,119730,120377,121676,122549,124165
36 | E06000037,West Berkshire,E12000008,704,225,43.8,144494,143913,144297,145147,146492,148107,150056,152024,153039,153943,154148,154704,156031,156633,157460,158576,158473,158527,158450,158465
37 | E06000038,Reading,E12000008,40,3969,35.1,144684,143915,144070,144590,146940,148321,149678,151460,152326,154296,155339,156795,158621,160268,161701,162701,163075,163203,161780,160337
38 | E06000039,Slough,E12000008,33,4596,35.3,120577,120927,120869,120833,122874,125200,127991,131453,134742,137800,140713,141820,142672,144340,146038,147736,148768,149112,149539,149577
39 | E06000040,Windsor and Maidenhead,E12000008,197,770,42.6,133541,133631,134201,135066,136446,138012,139743,141345,142424,143988,145098,145742,146278,147476,148277,149689,150140,150906,151422,151273
40 | E06000041,Wokingham,E12000008,179,972,41.6,150334,149445,148794,149008,149598,150548,152144,153191,154165,154650,154943,156658,158065,159414,161200,163087,164980,167979,171119,173945
41 | E06000042,Milton Keynes,E12000008,309,876,38.3,212707,215061,217597,219521,223462,227225,231033,235625,240178,245450,249895,252773,256376,260225,263181,266240,267521,268607,269457,270203
42 | E06000043,Brighton and Hove,E12000008,83,3522,35.3,249949,249743,249846,249847,252863,255564,258161,262019,265584,269495,272952,275724,277991,280650,284073,287173,288155,290395,290885,291738
43 | E06000044,Portsmouth,E12000008,40,5315,34.2,188043,188476,190283,193483,196318,195964,194907,196036,198983,202700,205433,206517,206670,208037,210538,213335,214718,215133,214905,214692
44 | E06000045,Southampton,E12000008,50,5070,32.3,219539,220459,221989,223589,226655,226698,227223,228447,230017,233085,235870,238519,239858,242106,246054,250377,252359,252796,252520,252872
45 | E06000046,Isle of Wight,E12000008,380,375,51,132925,133908,134783,135891,137179,137727,138289,138675,138361,138364,138392,138826,138555,139332,139763,140264,140984,141538,141771,142296
46 | E06000047,County Durham,E12000001,2226,240,43.1,493678,493538,493931,495147,497218,499348,502960,505617,507311,510628,512994,514261,515923,517573,519347,521776,523662,526980,530094,533149
47 | E06000049,Cheshire East,E12000002,1166,332,46.6,352104,353348,355529,357354,359807,362049,365003,367160,368023,369051,370736,372383,373006,374606,375722,377303,378846,380790,384152,386667
48 | E06000050,Cheshire West and Chester,E12000002,920,374,44.6,322154,322657,324378,325496,327169,328358,329364,329353,329116,329553,329526,330224,331069,332272,333949,335724,337986,340502,343071,343823
49 | E06000051,Shropshire,E12000005,3197,102,48.2,283254,284901,286913,288810,291523,294531,297633,300473,302069,304523,307108,308416,309085,310774,312227,314392,317459,320274,323136,325415
50 | E06000052,Cornwall,E12000009,3545,162,47.9,499937,504644,508579,511810,515098,517984,521957,524973,526365,529794,533760,538249,541734,545961,550283,555057,561349,565968,569578,573299
51 | E06000053,Isles of Scilly,E12000009,16,136,48.8,2140,2170,2155,2210,2210,2264,2293,2333,2251,2228,2224,2279,2265,2292,2335,2331,2259,2242,2224,2226
52 | E06000054,Wiltshire,E12000009,3255,155,45.1,433508,438386,442633,445632,448670,453041,458840,464007,466711,470199,474319,476914,479911,484560,488487,492240,496043,498064,500024,504070
53 | E06000055,Bedford,E12000006,476,367,40.7,148113,149589,150684,151308,151747,152346,153107,154164,154808,156535,157840,159369,161553,163999,166376,168814,169912,171623,173292,174687
54 | E06000056,Central Bedfordshire,E12000006,716,411,40.9,234006,236297,238547,240444,242062,244351,246803,249035,250329,252460,255644,259591,263793,267846,272421,276731,280030,283606,288648,294096
55 | E06000057,Northumberland,E12000001,5020,65,48.8,307363,308499,309448,310140,310752,311375,312960,314057,314489,315463,316278,316489,316389,316832,316453,317444,319030,320274,322434,323820
56 | E06000058,"Bournemouth, Christchurch and Poole",E12000009,162,2449,42.8,346829,348717,348483,348506,351616,353901,359462,363158,366948,373760,379441,382788,385178,388358,390889,394009,395638,395784,395331,396989
57 | E06000059,Dorset,E12000009,2491,152,51.4,346596,350487,353367,355305,357679,359806,363069,364085,363567,364317,365897,366966,368555,369485,371636,373288,375051,376484,378508,379791
58 | E06000060,Buckinghamshire,E12000008,1565,350,42.3,479131,478768,480164,482126,485526,489348,493501,496371,498813,502820,506550,510983,515533,520900,527114,533056,535918,540059,543973,547060
59 | E06000061,North Northamptonshire,E12000004,987,355,41.5,285093,287657,290977,293506,297012,301168,306155,309747,312196,314555,317959,321483,324009,327856,331763,336991,341841,345477,348228,350448
60 | E06000062,West Northamptonshire,E12000004,1377,295,40.7,345893,349123,351689,353110,357438,362435,365907,368454,371268,373456,376008,378848,381646,385495,390404,395461,399368,402145,405050,406733
61 | E07000008,Cambridge,E12000006,41,3073,29.8,109941,109543,111317,112167,117217,116654,115454,116183,116746,120219,122725,122601,123024,123735,125105,124635,124919,125758,124798,125063
62 | E07000009,East Cambridgeshire,E12000006,651,138,43.8,73411,74328,77447,75996,77224,78429,79923,81035,82357,83303,84245,85220,85942,87045,87783,88189,88858,89362,89840,90172
63 | E07000010,Fenland,E12000006,546,187,45.1,83687,84676,86296,87983,88968,90647,92713,93653,94404,95135,95461,95975,96617,97591,98814,99636,100776,101491,101850,102080
64 | E07000011,Huntingdonshire,E12000006,906,198,43.6,157189,158476,159626,162654,162822,163896,164764,166346,167052,168352,170039,171206,172147,173883,175334,176095,176979,177352,177963,178985
65 | E07000012,South Cambridgeshire,E12000006,902,178,43.3,130476,131893,134057,135645,137420,139264,141484,143591,145679,147890,149842,150906,151188,152932,154488,156020,156705,157519,159086,160904
66 | E07000026,Allerdale,E12000002,1242,79,48.6,93544,93816,94559,94846,95035,95279,95880,96186,96377,96301,96444,96269,96269,96532,96756,97099,97213,97527,97761,97831
67 | E07000027,Barrow-in-Furness,E12000002,78,857,45,71960,71340,70914,70845,70545,70267,70034,69844,69776,69429,69056,68471,67936,67769,67676,67532,67099,67137,67049,66726
68 | E07000028,Carlisle,E12000002,1038,105,45.3,100764,101721,102777,104412,105562,106707,107293,107178,106966,106985,107475,107925,107992,108059,108109,108388,108274,108387,108678,108524
69 | E07000029,Copeland,E12000002,732,93,47.3,69251,69095,69273,69750,69899,70329,70677,70789,70662,70629,70627,70309,70052,69866,69688,69306,68689,68424,68183,68041
70 | E07000030,Eden,E12000002,2142,25,51.3,49879,50276,50878,51393,51698,51891,52211,52427,52595,52678,52502,52687,52657,52649,52576,52642,52779,52881,53253,53754
71 | E07000031,South Lakeland,E12000002,1535,68,51.6,102397,102433,102928,103672,104301,104340,104684,104492,104410,104143,103713,103544,103593,103501,103776,103826,104321,104532,105088,104905
72 | E07000032,Amber Valley,E12000004,265,485,46.2,116560,117265,117898,118421,119152,120038,120436,121170,121532,122081,122521,122798,123592,124050,124188,124802,125898,126678,128147,128829
73 | E07000033,Bolsover,E12000004,160,507,43.9,71887,72527,73343,73601,73844,74347,74822,75058,75224,75691,76029,76480,76774,77231,77917,78225,79098,79530,80562,81305
74 | E07000034,Chesterfield,E12000004,66,1589,44.7,98832,99256,99929,100545,101277,101674,102027,102609,103037,103417,103788,103788,104066,104331,104463,104527,104579,104628,104900,104930
75 | E07000035,Derbyshire Dales,E12000004,792,91,51.5,69418,69392,69368,69536,69509,69526,69850,70450,70705,71030,71104,71386,71372,71420,71301,71477,71849,71977,72325,72422
76 | E07000036,Erewash,E12000004,110,1052,43.9,110126,110250,110080,110068,110102,109979,110184,110809,111283,111739,112249,112833,113246,114155,114684,115112,115314,115490,115371,115332
77 | E07000037,High Peak,E12000004,539,172,46.4,89400,89323,89185,89261,89627,90050,90553,90858,91047,91063,90982,91160,91172,91417,91523,91720,92063,92221,92666,92633
78 | E07000038,North East Derbyshire,E12000004,276,371,47.9,96927,96916,97127,97532,97666,97740,98067,98261,98474,98832,99100,99347,99306,99383,99661,100450,100780,101125,101462,102216
79 | E07000039,South Derbyshire,E12000004,338,324,41.9,81738,83480,85312,86506,87832,89295,90655,92023,93015,94095,94915,95934,97111,98395,99345,100421,102385,104493,107261,109516
80 | E07000040,East Devon,E12000009,814,182,51.3,125713,126562,127170,128444,129797,130641,132023,132594,132378,132666,133272,134430,135046,136518,138380,140271,142265,144317,146284,148080
81 | E07000041,Exeter,E12000009,47,2835,33.4,111180,110636,111064,110697,112970,113128,114109,114167,114419,115712,117063,119040,121030,123018,125679,127522,128916,130428,131405,133333
82 | E07000042,Mid Devon,E12000009,913,91,46.8,69887,70651,71472,72607,73323,74138,75599,76406,76981,77391,77936,78382,78706,79272,79582,79880,80623,81695,82311,83290
83 | E07000043,North Devon,E12000009,1086,90,48.4,87674,88477,89570,90433,91146,91744,92355,92775,93046,93293,93976,93845,93839,94027,94162,94643,95440,96110,97145,98170
84 | E07000044,South Hams,E12000009,887,99,51.7,81929,82058,81994,82085,82489,82985,83363,83516,83368,83516,83563,83703,84112,84435,84886,84834,85340,86221,87004,87946
85 | E07000045,Teignbridge,E12000009,674,200,49.6,121167,121810,122424,122964,123460,123508,124066,124396,124451,124359,124271,125047,126088,127432,128903,129917,131437,132844,134163,135039
86 | E07000046,Torridge,E12000009,984,70,51.1,59129,59774,60663,61479,61954,62615,63100,63501,63477,63686,63973,64769,65127,65657,66312,67022,67821,68143,68267,68719
87 | E07000047,West Devon,E12000009,1160,48,51.7,48889,49972,49698,50118,50481,50833,51711,52566,52868,53285,53655,53886,53982,54343,54502,54742,55329,55528,55796,56139
88 | E07000061,Eastbourne,E12000008,44,2340,46.3,89836,90829,92163,93772,95500,96532,97616,98361,98228,98510,99308,99901,100363,101340,102204,103003,103251,103160,103745,103324
89 | E07000062,Hastings,E12000008,30,3106,43.7,85392,85873,86596,86854,87419,87516,88024,88722,89293,89623,90173,90377,90906,91360,91937,92903,92813,92855,92661,92554
90 | E07000063,Lewes,E12000008,292,354,48.2,92247,92901,93227,93794,93832,94162,94782,95455,96114,97079,97584,98695,99626,100428,100898,101631,102257,102744,103268,103525
91 | E07000064,Rother,E12000008,509,190,53.4,85471,86174,86718,87183,87684,88221,89262,90120,90123,90578,90729,91065,91232,92370,93192,93966,94997,95656,96080,96716
92 | E07000065,Wealden,E12000008,833,195,49.2,140184,141150,142444,143404,144084,145094,146207,146539,146612,147861,149415,151050,152777,155005,156790,158054,158941,160175,161475,162733
93 | E07000066,Basildon,E12000006,110,1705,39.3,165895,166743,167089,167825,168927,169951,170908,172423,173084,173788,174971,176538,178498,180676,181951,183768,184479,185862,187199,187558
94 | E07000067,Braintree,E12000006,612,250,43.6,132482,134272,135767,137426,139160,140921,142344,143894,144589,145972,147514,148375,149150,150076,150530,151233,151677,151561,152604,153091
95 | E07000068,Brentwood,E12000006,153,504,43.2,68483,68779,69234,69895,70542,71040,71346,71941,72663,73301,73841,74142,74734,75914,76403,76769,76575,76550,77021,77242
96 | E07000069,Castle Point,E12000006,45,2026,46.9,86673,86866,87237,87207,87462,87576,87776,88020,88122,88115,87964,88219,88594,88912,89184,89752,89814,90070,90376,90524
97 | E07000070,Chelmsford,E12000006,339,530,41.8,157269,158686,160360,162505,163570,163879,164381,165047,166208,167441,168491,169379,170311,171590,172719,174197,176194,177079,178388,179549
98 | E07000071,Colchester,E12000006,328,601,37.8,156016,156055,157164,158652,162038,163847,165674,167927,169027,171679,173614,176185,177993,180973,184916,187633,190098,192523,194706,197200
99 | E07000072,Epping Forest,E12000006,339,390,42.6,120972,121482,121404,121495,121735,122530,122877,123365,123820,124189,124880,125997,126989,128451,129274,129923,130576,131137,131689,132175
100 | E07000073,Harlow,E12000006,31,2858,37.7,78799,78340,78128,78019,78354,78722,79165,79913,80710,81490,82177,82814,83438,84619,85335,85867,86191,86594,87067,87280
101 | E07000074,Maldon,E12000006,358,183,49.4,59589,59750,59996,60303,60662,60993,61398,61660,61815,61845,61720,61946,62217,62801,62824,63418,63975,64425,64926,65401
102 | E07000075,Rochford,E12000006,167,524,46.2,78650,79325,79513,80100,80815,81490,82264,83056,83094,83415,83333,83895,83955,84809,85192,85708,86209,86981,87368,87627
103 | E07000076,Tendring,E12000006,336,438,51.1,138802,139318,139909,140340,140325,140423,140523,140421,139593,139058,138062,138395,139037,140395,141790,143353,144705,145803,146561,147353
104 | E07000077,Uttlesford,E12000006,641,145,43.8,68969,69529,70278,70865,71580,72929,74232,75505,76778,78620,80032,81199,82680,84066,85205,86289,87684,89179,91284,92759
105 | E07000078,Cheltenham,E12000009,47,2490,41,110024,109775,109282,109763,110948,111637,112511,112971,113967,114901,115645,116058,115788,116379,116592,117217,117128,117090,116306,116043
106 | E07000079,Cotswold,E12000009,1165,78,49.4,80387,80475,81212,81795,82205,82597,83202,83016,82765,82614,83180,83624,84266,84920,85548,86121,87509,89022,89862,90264
107 | E07000080,Forest of Dean,E12000009,526,166,48.5,80057,80125,80729,81091,81482,81733,82004,82099,81994,81896,82200,82716,82953,83682,84576,85411,85957,86543,86791,87107
108 | E07000081,Gloucester,E12000009,41,3199,39.4,109947,110593,111545,112583,113876,115296,117225,118394,119348,120660,121921,123405,124535,125686,127169,128355,129083,129285,129128,129709
109 | E07000082,Stroud,E12000009,461,263,46.8,108060,108229,108840,109477,110122,110509,111069,111375,111853,112491,113074,113407,114094,115274,116774,117472,118130,119019,119964,120903
110 | E07000083,Tewkesbury,E12000009,414,233,44.4,76524,77248,77673,77932,78275,78930,79404,79755,80553,81535,82269,83006,84323,85798,86868,88518,90332,92599,95019,96624
111 | E07000084,Basingstoke and Deane,E12000008,634,280,41.4,152874,153641,154833,155737,157499,158765,160183,162036,164135,166364,168550,170691,172050,173374,174340,175226,175337,175729,176582,177760
112 | E07000085,East Hampshire,E12000008,514,241,47.4,109369,109606,109561,109960,110482,111131,112296,113172,114261,115350,116010,116574,117401,117985,118694,118705,119392,120681,122308,123838
113 | E07000086,Eastleigh,E12000008,80,1701,42,116257,116430,116696,117066,118089,119436,120596,121312,122377,124240,125852,126759,127759,128867,128977,129546,130498,131819,133584,135520
114 | E07000087,Fareham,E12000008,74,1567,47,108152,108451,108545,108473,108077,108397,109399,110205,110832,111382,111931,112888,113873,114663,115182,115818,116219,116339,116233,116338
115 | E07000088,Gosport,E12000008,25,3337,42.8,76676,76831,77585,78099,78646,79579,80627,81730,81961,82307,82669,83272,83542,84346,84757,85492,85509,85283,84838,84679
116 | E07000089,Hart,E12000008,215,453,43.9,83590,84238,85180,86367,87519,88874,89866,90566,90986,91276,91662,92224,92959,93680,94395,94882,95465,96293,97073,97608
117 | E07000090,Havant,E12000008,56,2267,46,116886,117173,117346,117362,117542,117824,118282,119039,119394,120105,120783,121285,121671,122345,123122,123891,125065,125813,126220,126339
118 | E07000091,New Forest,E12000008,752,239,51.2,169506,170595,171256,171769,172423,173269,174048,174548,175432,176323,176789,177480,178186,179014,179275,179529,179590,179753,180086,179649
119 | E07000092,Rushmoor,E12000008,39,2417,39.2,90892,89877,89727,89358,90040,91065,91891,92589,92572,93397,94354,94806,94897,95228,95166,96091,95817,95142,94599,94387
120 | E07000093,Test Valley,E12000008,628,203,45.1,109965,110387,111271,112049,112811,113530,114433,115101,115251,115814,116698,117341,118805,119835,121352,122823,123957,125169,126160,127163
121 | E07000094,Winchester,E12000008,661,191,43.7,107264,107844,108515,109179,109947,110628,111820,113267,114505,115789,116820,118074,119037,120290,121734,123100,123879,124295,124859,125925
122 | E07000095,Broxbourne,E12000006,51,1897,40.3,87203,87700,87817,87805,88800,89684,90833,91630,92395,93085,93702,94595,95107,95837,96311,96881,96762,96876,97279,97592
123 | E07000096,Dacorum,E12000006,212,732,40.9,137843,138118,138413,138403,138633,138973,139527,140802,142205,143651,145298,146728,148075,149515,151069,152445,153316,154280,154763,155457
124 | E07000098,Hertsmere,E12000006,101,1043,40.9,94466,94295,94419,93788,94302,95225,96252,97642,98637,99402,100379,100895,101449,102540,103157,103705,104031,104205,104919,105471
125 | E07000099,North Hertfordshire,E12000006,375,356,42.5,117051,117959,119148,120092,120757,121890,122974,124391,125269,126286,127494,128302,129231,130902,131611,132655,133321,133214,133570,133463
126 | E07000102,Three Rivers,E12000006,89,1058,42,82905,83448,83946,83963,84305,84466,85282,86205,87096,87573,87921,88804,89566,90525,91797,92676,92641,93045,93323,93966
127 | E07000103,Watford,E12000006,21,4509,37.3,80398,80185,80644,81097,82138,82145,82899,84776,86472,88574,90653,91940,93905,95553,96348,96577,96675,96767,96577,96623
128 | E07000105,Ashford,E12000008,581,226,42.3,103024,104377,105636,107264,109409,111459,113286,114556,115694,116975,118405,120128,121684,123159,124047,125871,127527,129281,130032,131018
129 | E07000106,Canterbury,E12000008,309,540,38.1,135381,136483,138608,140578,141918,143490,145197,146073,146396,148653,150600,153223,154941,157044,159663,162502,164100,164553,165394,166762
130 | E07000107,Dartford,E12000008,73,1568,37.4,85956,86403,87011,88277,89990,91174,92242,93946,95266,96337,97604,98851,100399,102010,103531,105117,107516,109709,112606,114051
131 | E07000108,Dover,E12000008,315,376,46.7,104646,104883,105784,106878,107475,107904,109041,109848,110061,111072,111718,111798,112490,113292,113446,114572,115803,116969,118131,118514
132 | E07000109,Gravesham,E12000008,99,1080,39.8,95791,95448,95569,95907,96884,97574,98496,99394,100188,101076,101766,102559,103383,104802,105715,106215,106121,106385,106939,106890
133 | E07000110,Maidstone,E12000008,393,440,41.5,139116,140338,141246,142242,143353,145307,147741,149723,151594,153739,155764,157368,159230,161510,164019,165719,167730,169955,171826,173132
134 | E07000111,Sevenoaks,E12000008,369,329,44.3,109242,109105,109280,110045,111266,112500,113132,113298,113754,114509,115351,116306,116889,117625,118165,119011,119429,120293,120750,121387
135 | E07000112,Folkestone and Hythe,E12000008,357,317,47.6,96345,97205,98540,99949,101509,102469,103902,104782,105716,106962,108199,108611,108767,109324,109838,111024,111427,112578,112996,113320
136 | E07000113,Swale,E12000008,373,404,41.1,123123,124172,125348,125890,126516,127568,129721,131720,133030,134980,136324,137794,139274,140901,142465,144917,146694,148519,150082,151015
137 | E07000114,Thanet,E12000008,104,1365,45.3,126750,127675,128140,128782,129301,129601,130637,131750,132337,133508,134402,135687,136792,138526,139822,140828,141337,141819,141922,141458
138 | E07000115,Tonbridge and Malling,E12000008,240,552,42.4,107771,108673,109494,110441,111719,113536,115469,116967,118459,120054,121087,122030,123171,124583,125779,127305,128891,130508,132153,132571
139 | E07000116,Tunbridge Wells,E12000008,331,359,43.5,104049,104206,104390,105131,105877,107052,108927,111251,112774,114040,115246,115796,116094,116525,116610,117357,118061,118054,118724,118939
140 | E07000117,Burnley,E12000002,111,807,39.9,89521,88842,88282,87923,87624,87646,87256,87328,87027,86902,87032,87091,86829,87194,87262,87496,87705,88527,88920,89344
141 | E07000118,Chorley,E12000002,203,586,43.5,100559,101142,102003,102778,103279,103807,104362,105396,105682,106443,107591,109075,110531,111623,112963,114266,115772,116821,118216,118870
142 | E07000119,Fylde,E12000002,166,490,50.9,73340,73658,74212,74667,74841,74824,75305,75230,75441,75610,76098,76073,76548,77140,77490,78153,78863,79770,80780,81211
143 | E07000120,Hyndburn,E12000002,73,1111,39.9,81495,81233,81408,81280,81311,81491,81453,81176,81003,80876,80549,80160,79953,80150,80113,80392,80410,80815,81043,81133
144 | E07000121,Lancaster,E12000002,567,261,39.1,134049,133628,134635,135472,136764,136682,136235,135812,136013,137120,137823,139317,139835,140172,140787,141723,142487,144246,146038,148119
145 | E07000122,Pendle,E12000002,169,544,39.9,89277,88830,88559,88330,88312,88788,88819,89005,89287,89234,89576,89541,89973,89655,89925,90515,90696,91405,92112,92145
146 | E07000123,Preston,E12000002,142,1013,35.3,130372,131110,132685,134410,136200,137784,138470,138443,137956,138831,140054,140456,140002,139907,140685,141023,141346,141818,143135,144147
147 | E07000124,Ribble Valley,E12000002,583,106,48.2,54053,54659,55400,56054,56358,56664,56986,57158,57004,57218,57292,57606,57878,58105,58519,58864,59504,60057,60888,62026
148 | E07000125,Rossendale,E12000002,138,517,42.5,65647,65556,65729,65623,65872,66199,66623,67063,67479,67824,68053,68332,68698,69104,69418,69787,70365,70895,71482,71432
149 | E07000126,South Ribble,E12000002,113,982,44.7,103949,104522,105149,105578,105753,106512,107128,107830,108609,108846,109181,108999,108964,109116,109685,110136,110400,110527,110788,111086
150 | E07000127,West Lancashire,E12000002,347,330,44.6,108480,108750,109273,109588,109806,110308,110720,110666,110583,110763,110617,110911,111216,111845,112482,113061,113881,113949,114306,114496
151 | E07000128,Wyre,E12000002,282,401,50.1,105800,106444,107246,107760,108188,108435,108475,108245,108057,107912,107692,107809,108167,108594,109546,110002,110426,111223,112091,113067
152 | E07000129,Blaby,E12000004,130,781,42.8,90361,91225,91592,91664,91721,92266,92741,93341,93511,93935,94132,94608,95105,95836,96458,97562,98977,100421,101526,101950
153 | E07000130,Charnwood,E12000004,279,675,38.3,153554,153431,153664,154740,155768,157153,158667,160509,162330,164346,165876,168370,169993,172548,175167,177378,180387,182643,185851,188416
154 | E07000131,Harborough,E12000004,592,161,46.3,76818,78226,79118,79860,80486,81492,82593,83417,84132,84849,85699,86368,87426,87935,89144,90251,91461,92499,93807,95537
155 | E07000132,Hinckley and Bosworth,E12000004,297,382,45.1,100202,100482,101210,101953,102431,102996,103450,104179,104473,104734,105328,105956,106527,107560,108603,109881,111370,112423,113136,113666
156 | E07000133,Melton,E12000004,481,107,48,47875,48080,48429,48618,48605,48724,49153,49287,49481,50077,50495,50785,50868,51012,50956,50967,50873,51100,51209,51394
157 | E07000134,North West Leicestershire,E12000004,279,375,43.9,85678,86842,87794,88845,89623,90406,91476,92283,92728,93165,93670,93985,94716,95731,97098,98436,100109,102126,103611,104809
158 | E07000135,Oadby and Wigston,E12000004,24,2436,42.4,55791,55779,56161,56454,56218,56519,56475,56220,55600,55186,55979,56110,56282,56060,55984,55991,57035,57056,57015,57313
159 | E07000136,Boston,E12000004,364,195,41.8,55802,56391,56975,58090,58551,59770,61036,62176,63399,64475,64615,64855,65831,66454,66876,67709,68488,69366,70173,70837
160 | E07000137,East Lindsey,E12000004,1767,80,52.8,130654,132144,133218,134889,135473,135960,136939,137466,137140,137251,136683,136651,136799,137722,138068,138743,139718,140741,141727,142030
161 | E07000138,Lincoln,E12000004,36,2803,33.1,85584,85669,86405,87746,88603,89433,89873,90207,90813,92188,93085,94535,95371,95910,96641,97385,98438,99039,99299,100049
162 | E07000139,North Kesteven,E12000004,922,128,46.3,94378,96898,98593,99943,100710,102275,103844,105495,106456,107478,108518,109311,109935,111197,112186,113644,115230,115985,116915,118149
163 | E07000140,South Holland,E12000004,750,128,46.5,76714,77918,79299,80832,81696,83158,84506,85957,86987,87905,88390,88546,89184,90382,91245,92527,93295,93980,95019,95857
164 | E07000141,South Kesteven,E12000004,943,152,46.8,124877,125485,126209,127129,127665,128966,130196,131218,132188,133144,134125,135212,136612,138339,139376,140900,141662,141853,142424,143225
165 | E07000142,West Lindsey,E12000004,1156,83,48.5,79631,81075,82498,83786,84626,85852,87345,88261,88616,89364,89352,90074,90791,91882,92958,93903,94340,94869,95667,96186
166 | E07000143,Breckland,E12000006,1305,108,47.1,121585,122222,123247,123944,125493,126551,127797,128938,129431,129932,131009,131857,132995,134287,135698,137123,138602,139329,139968,141255
167 | E07000144,Broadland,E12000006,552,239,48.2,118814,119391,120333,121039,121637,122412,123242,123387,123819,124483,124740,125173,125499,125956,126626,127402,128535,129464,130783,131931
168 | E07000145,Great Yarmouth,E12000006,174,569,46.2,90945,91437,92526,93316,94113,94545,95211,95924,96414,97063,97424,97555,97736,98127,98615,98992,99417,99370,99336,99198
169 | E07000146,King's Lynn and West Norfolk,E12000006,1440,105,48.2,135565,136831,138272,139621,140959,142790,144274,145551,146428,147134,147936,148579,149187,150214,151261,151797,151945,151811,151383,151245
170 | E07000147,North Norfolk,E12000006,966,109,54.7,98495,98723,99121,99374,99638,99907,100338,100887,100556,100780,101664,101829,102079,102872,103252,103587,104067,104552,104837,105167
171 | E07000148,Norwich,E12000006,39,3644,33.3,122366,122376,122963,123857,125630,126805,126949,128034,129219,130923,132158,133867,135118,136587,138097,139865,140353,141137,140573,142177
172 | E07000149,South Norfolk,E12000006,908,158,46.3,110848,112483,113665,114539,115420,116052,117134,118774,120488,122611,124495,125987,127682,129345,131199,132965,135471,138017,140880,143066
173 | E07000163,Craven,E12000003,1177,49,51,53706,53770,54060,54412,54888,55086,55395,55586,55326,55398,55459,55492,55594,55750,55826,56343,56604,56832,57142,57338
174 | E07000164,Hambleton,E12000003,1311,70,50.3,84168,84844,85336,85598,85972,86995,87748,88482,88645,89096,89602,89794,89997,89915,90074,90591,90718,91134,91594,91932
175 | E07000165,Harrogate,E12000003,1308,124,47.8,151467,151549,151821,152518,153673,154270,155068,155843,156511,157531,158683,159396,159679,159631,159916,159768,160044,160533,160831,161545
176 | E07000166,Richmondshire,E12000003,1319,41,44.5,47067,47798,48465,49399,50351,51003,51626,52125,52440,52877,53287,53808,53897,52812,52565,53876,53699,53244,53730,53732
177 | E07000167,Ryedale,E12000003,1507,37,50.8,50910,50847,51196,51613,51948,51851,52078,52100,52157,51949,51893,52157,52334,52848,53332,53861,54311,54920,55380,55629
178 | E07000168,Scarborough,E12000003,816,133,50.4,106221,107246,107862,108548,108753,108728,108813,109015,108943,109014,108735,108662,108330,108152,108089,108157,108370,108736,108757,108737
179 | E07000169,Selby,E12000003,599,153,44.5,76555,77132,77390,77871,78416,79366,80519,81828,82374,83163,83547,84199,84893,85622,86215,86942,87887,89106,90620,91697
180 | E07000170,Ashfield,E12000004,110,1171,41.9,111477,112488,113048,114105,115020,115704,116301,116971,117875,118566,119522,120120,121546,122490,123577,124513,126164,127151,127918,128337
181 | E07000171,Bassetlaw,E12000004,638,185,45.8,107843,108451,109276,110017,110488,110876,111314,112106,112563,112924,113003,113235,113704,114256,114689,115212,116304,116839,117459,118280
182 | E07000172,Broxtowe,E12000004,80,1431,42.9,107481,107832,107822,108085,108290,108254,108272,108730,109217,109252,109749,110568,111077,111534,111837,112116,112718,113272,114033,114627
183 | E07000173,Gedling,E12000004,120,985,43.9,111812,111943,111684,111847,111919,111699,111924,112293,112688,113066,113741,114061,114974,115815,116142,116746,117128,117786,117896,118239
184 | E07000174,Mansfield,E12000004,77,1426,42.1,98065,98367,99250,99706,100413,101347,102139,103269,103711,104120,104551,104812,105334,105972,106780,107880,108576,108841,109313,109351
185 | E07000175,Newark and Sherwood,E12000004,651,189,45.5,106351,106954,108359,109776,110553,111534,112471,113309,113914,114596,114982,115851,116878,117859,118695,119848,120965,121566,122421,123127
186 | E07000176,Rushcliffe,E12000004,409,297,43.6,105780,106546,106987,107430,107832,108413,108909,109393,110137,111121,111248,111520,112910,113690,114497,115168,115996,117671,119184,121416
187 | E07000177,Cherwell,E12000008,589,258,41.5,131988,132586,133977,134947,135876,137159,138120,139440,140301,141337,142252,142936,143822,144520,145554,146635,147602,149161,150503,151846
188 | E07000178,Oxford,E12000008,46,3324,28.6,135509,136625,139917,141593,145383,144513,144188,144433,145478,147907,150245,151477,152406,154664,154716,155292,154582,154327,152457,151584
189 | E07000179,South Oxfordshire,E12000008,679,212,44.4,128307,128754,128920,129359,130050,130676,131626,132611,133466,133915,134961,135722,136328,137477,138177,139156,139767,140504,142057,143782
190 | E07000180,Vale of White Horse,E12000008,578,239,42.5,115772,115565,116134,116475,117390,118209,118994,119284,120026,120823,121891,122710,123497,124621,126534,128653,131227,133732,136007,137910
191 | E07000181,West Oxfordshire,E12000008,714,156,44.7,95701,95961,97083,98038,98869,100316,102166,103016,103824,104706,105442,107164,107945,108095,108609,108748,109266,109800,110643,111758
192 | E07000187,Mendip,E12000009,739,157,47.3,103964,104634,105158,105798,106339,106833,107755,108567,108604,109006,109406,110050,110326,111091,112056,113131,113513,114881,115587,116288
193 | E07000188,Sedgemoor,E12000009,564,219,47,106030,107051,107785,108765,109698,110712,112102,112885,112934,113786,114919,116067,117441,118959,120141,121345,122178,122791,123178,123446
194 | E07000189,South Somerset,E12000009,959,176,48.1,151059,152165,153463,154967,156485,157420,158956,160171,160678,160871,162113,163038,164006,164834,165510,166526,167216,167861,168345,168696
195 | E07000192,Cannock Chase,E12000005,79,1287,42.4,92165,93000,93751,94179,94772,94991,95391,95999,96514,96898,97582,97932,98106,98508,98490,98513,99126,100109,100762,101484
196 | E07000193,East Staffordshire,E12000005,387,312,41.8,103938,104487,106065,106800,107609,108466,109776,111191,112033,112979,113858,114487,114940,115720,116196,116937,117552,118574,119754,120923
197 | E07000194,Lichfield,E12000005,331,319,46.6,93229,93679,94467,95580,96307,97432,98528,99490,100012,100424,100911,101175,101716,102062,102566,102831,103507,103965,104756,105637
198 | E07000195,Newcastle-under-Lyme,E12000005,211,614,41.8,122015,122165,122657,123076,123170,123191,123526,123213,123073,123351,123878,124104,125184,125978,126863,128126,128963,129490,129441,129610
199 | E07000196,South Staffordshire,E12000005,407,276,48.1,105942,106013,106300,106300,106428,106655,107144,107501,107561,108050,108318,108443,110323,110688,110712,111173,111890,112126,112436,112369
200 | E07000197,Stafford,E12000005,598,230,45.5,120712,121409,122447,123224,124361,125620,127055,128320,129041,130001,130895,131554,131984,132044,132220,133664,134764,135880,137280,137858
201 | E07000198,Staffordshire Moorlands,E12000005,576,171,49,94555,94927,94997,94980,95342,95888,96295,96604,96781,96987,97209,97239,97488,97838,98011,98176,98496,98397,98435,98427
202 | E07000199,Tamworth,E12000005,31,2491,41.3,74596,74519,74544,74424,74724,75078,75407,75824,76255,76582,76895,77105,77096,77032,77108,77010,76527,76678,76696,76864
203 | E07000200,Babergh,E12000006,594,156,49.1,83538,84112,85066,85622,85957,86698,86916,87260,87411,87467,87901,88088,88704,89413,89900,90250,90794,91401,92036,92735
204 | E07000202,Ipswich,E12000006,40,3442,38.5,117156,117818,119210,121175,124028,124753,125471,127387,129320,131729,133729,135065,135604,136429,137694,138515,138480,137532,136913,135979
205 | E07000203,Mid Suffolk,E12000006,871,120,48,87015,87684,88274,89492,90795,92070,93817,94603,95250,96244,97076,97789,98431,99596,100251,100720,101543,102493,103895,104857
206 | E07000207,Elmbridge,E12000008,95,1444,43.4,122709,123784,124990,125677,127286,128763,129756,129908,129991,130937,131428,132184,133499,134833,135398,136085,136379,136626,136795,137215
207 | E07000208,Epsom and Ewell,E12000008,34,2377,41.7,67077,67554,67738,68386,69172,70028,71337,72514,73106,74278,75191,75839,76906,77988,78459,78999,79451,79928,80627,81003
208 | E07000209,Guildford,E12000008,271,555,37.1,129774,129297,128763,128575,129043,130673,131656,132401,133584,135547,137580,139338,140657,142551,145056,146845,147777,147889,148998,150352
209 | E07000210,Mole Valley,E12000008,258,339,47.6,80283,80498,81233,81498,81808,82319,83219,84256,84732,85413,85637,86096,86761,86871,86978,87258,87128,87253,87245,87547
210 | E07000211,Reigate and Banstead,E12000008,129,1156,41.8,126661,126272,126665,127222,127760,129190,131224,132857,134934,136741,138375,139772,140928,142858,143794,145284,146383,147757,148748,149243
211 | E07000212,Runnymede,E12000008,78,1157,37.4,78053,77649,77550,76948,77018,77169,78330,78694,79373,80283,80501,81878,83094,83906,84992,86370,86882,88000,89424,90327
212 | E07000213,Spelthorne,E12000008,45,2225,42,90404,90292,90225,90127,90571,91512,92425,93182,94001,94848,95852,96737,97371,97941,98419,98869,99120,99334,99844,99873
213 | E07000214,Surrey Heath,E12000008,95,938,44.1,80309,80358,80938,81631,82321,83284,84214,84345,85142,85843,86378,86700,87134,87814,88385,88705,88765,88874,89305,89204
214 | E07000215,Tandridge,E12000008,248,357,44.2,79332,78906,79002,79050,79373,80027,80983,81543,82099,82756,83178,83642,84616,85340,85914,86527,87297,87496,88129,88542
215 | E07000216,Waverley,E12000008,345,367,45.3,115668,115573,116024,116230,116357,117038,118098,119012,120106,120957,121754,122081,122783,123359,124011,124593,125010,125610,126328,126556
216 | E07000217,Woking,E12000008,64,1572,41.5,89893,89289,89646,89798,91072,92838,94397,95530,96597,98201,99493,99779,100387,100634,100976,101421,101129,101167,100793,100008
217 | E07000218,North Warwickshire,E12000005,284,230,45.6,61788,61825,61749,61769,61894,61920,61839,61968,62124,62066,62089,62206,62119,62448,62765,63193,64069,64850,65264,65452
218 | E07000219,Nuneaton and Bedworth,E12000005,79,1651,41.2,119239,119625,120541,120668,121048,121787,122661,123868,124330,124759,125409,125867,126118,126309,126603,127674,128659,128902,129883,130373
219 | E07000220,Rugby,E12000005,351,315,41,87520,88653,89050,89998,91321,93051,94748,96434,97662,99035,100496,101030,101819,103189,104455,105291,106350,107194,108935,110650
220 | E07000221,Stratford-on-Avon,E12000005,978,135,48.2,111551,112258,112992,113483,114823,116708,118478,119666,119826,120191,120824,120794,121253,121779,122438,123345,125202,127580,130098,132402
221 | E07000222,Warwick,E12000005,283,512,39.7,126095,128330,130724,132719,134567,135593,136655,137448,138189,138115,137736,138423,138208,138725,138893,139488,140282,142484,143753,144909
222 | E07000223,Adur,E12000008,42,1526,45.8,59714,60050,59993,59961,59821,60337,60564,60721,61023,61216,61334,61970,62605,63266,63526,63621,63721,63869,64301,64187
223 | E07000224,Arun,E12000008,221,729,50,140998,142385,143458,145149,145985,146750,147725,148458,148891,149467,149811,151556,153013,154653,155798,157287,158657,159827,160758,161123
224 | E07000225,Chichester,E12000008,786,155,49.6,106494,106990,107512,108157,108773,109686,110603,111796,112474,113411,113995,114899,115800,116261,117784,119125,120192,120750,121129,121508
225 | E07000226,Crawley,E12000008,45,2501,37.8,100440,99195,98712,98887,99703,100746,101610,102827,103843,105478,107053,108234,108953,109874,110887,111546,111664,112448,112409,112474
226 | E07000227,Horsham,E12000008,530,274,46.4,122272,122694,123798,124920,125949,127190,128294,129073,129790,130916,131540,132267,133173,134507,136258,138523,140142,142217,143791,145474
227 | E07000228,Mid Sussex,E12000008,334,455,43.9,127397,127713,128623,129461,130503,132061,133976,135734,137209,138897,140188,141260,142983,144664,145969,147540,148345,149716,151022,152142
228 | E07000229,Worthing,E12000008,33,3405,45.4,97661,98236,98787,99452,100064,100632,101511,102369,102809,103769,104998,105774,106413,107287,108303,109246,109632,110025,110570,110727
229 | E07000234,Bromsgrove,E12000005,217,464,45.5,87904,89021,89984,90516,91046,91734,92563,93097,93444,93507,93732,94281,94806,95519,95800,96770,97594,98662,99881,100569
230 | E07000235,Malvern Hills,E12000005,577,138,50.9,72171,72655,72885,73166,73425,73748,74020,74192,74141,74542,74706,75090,75560,76224,76136,76555,77165,78113,78698,79445
231 | E07000236,Redditch,E12000005,54,1577,40.3,78779,79069,79466,79654,80110,81077,81762,82713,83102,83570,84318,84444,84505,84505,84821,85088,85204,84989,85261,85568
232 | E07000237,Worcester,E12000005,33,3013,39.1,93369,93446,93873,93843,94470,95024,95532,96416,97117,97655,98679,99622,100363,100739,100985,101927,102314,101891,101222,100265
233 | E07000238,Wychavon,E12000005,664,198,48.4,113081,113453,113914,114258,114696,115451,116141,116229,116499,116863,117074,117777,118906,120007,121709,123144,125378,127340,129433,131084
234 | E07000239,Wyre Forest,E12000005,195,518,47,96929,96830,97149,97223,97585,97666,98017,98143,97993,97943,98048,98087,98473,98999,99599,100007,100715,101062,101291,101139
235 | E07000240,St Albans,E12000006,161,926,41.2,129168,130407,131180,131284,131951,133293,134338,136088,137858,139511,141248,142137,143458,145208,146188,147025,147095,147373,148452,149317
236 | E07000241,Welwyn Hatfield,E12000006,130,956,35.8,97550,98136,99198,100470,103202,105096,106694,107442,108434,109630,110727,111661,113375,115341,117784,121007,122274,122746,123043,123893
237 | E07000242,East Hertfordshire,E12000006,476,319,42.7,129145,130029,130264,130456,131065,132078,133421,134843,135980,136922,138155,139405,140932,142781,144488,146130,147080,148105,149748,151786
238 | E07000243,Stevenage,E12000006,26,3393,38.4,79794,80110,80308,80008,80330,80352,80734,81615,82253,83007,84247,84824,85520,85993,86579,87285,87739,87754,87845,88104
239 | E07000244,East Suffolk,E12000006,1261,199,49.6,227736,228974,230868,233329,235651,237032,239249,240139,239877,239932,239946,240392,241426,242179,243264,245003,246913,248249,249461,250373
240 | E07000245,West Suffolk,E12000006,1035,171,41.9,154468,155991,157990,159469,161406,162408,163691,164959,166325,168604,171481,171468,171679,174882,176625,176687,179248,178881,179045,177302
241 | E07000246,Somerset West and Taunton,E12000006,1188,131,48.2,137654,139282,140384,141129,141816,142287,143337,144045,144376,144946,145143,146042,146597,147319,148759,150444,152288,153866,155115,155421
242 | E08000001,Bolton,E12000002,140,2062,38.9,261302,262367,263814,264511,265016,266816,268319,270497,273049,275168,277296,279084,280271,280788,281828,283536,284813,285372,287550,288248
243 | E08000002,Bury,E12000002,99,1917,40.4,180655,181084,181405,180999,181028,181809,182713,183000,183885,184755,185422,186150,186468,187287,187788,188503,189628,190108,190990,190708
244 | E08000003,Manchester,E12000002,116,4805,30.3,422915,428221,436727,444925,455745,463749,470538,477408,483784,492598,502902,510501,513665,518834,529809,541319,545501,547627,552858,555741
245 | E08000004,Oldham,E12000002,142,1669,37.3,218537,218455,218490,218988,219288,220033,220723,221907,222811,223807,225157,225734,226966,228182,230197,232349,233759,235623,237110,237628
246 | E08000005,Rochdale,E12000002,158,1414,38.2,206440,206697,207528,207286,207200,207845,208393,209666,210248,210758,211929,211947,212137,212976,214314,216350,218459,220001,222412,223659
247 | E08000006,Salford,E12000002,97,2703,34.7,216978,216310,217312,217921,219536,221931,223468,226782,228948,231837,234487,236946,238674,241539,245186,248121,251332,254408,258834,262697
248 | E08000007,Stockport,E12000002,126,2334,42.3,284557,283502,282932,282368,281195,280498,280953,281477,282263,282614,283253,283766,284890,286388,288169,289821,291045,291775,293423,294197
249 | E08000008,Tameside,E12000002,103,2202,40.1,213087,213211,213470,213667,213474,214187,214750,216360,217417,218774,219727,220201,220545,220696,221507,223109,224119,225197,226493,227117
250 | E08000009,Trafford,E12000002,106,2240,40.9,210172,211062,213031,214129,215430,217369,219359,220939,223065,225234,227091,228308,230146,232319,232975,234210,235493,236370,237354,237579
251 | E08000010,Wigan,E12000002,188,1758,42,301453,302305,303846,304958,306143,308023,309403,311971,314363,316296,318122,318740,319810,321114,322244,323526,324650,326088,328662,330712
252 | E08000011,Knowsley,E12000002,87,1762,39.2,151238,150506,149795,149216,148900,148788,148188,147822,147070,146398,145903,145942,146091,146429,147262,148001,148560,149571,150862,152452
253 | E08000012,Liverpool,E12000002,112,4475,34.8,441858,443784,444960,448091,452278,453055,453582,454468,457523,461403,465656,470191,471789,474569,480873,487605,491549,494814,498042,500474
254 | E08000013,St. Helens,E12000002,136,1328,42.8,176826,176295,175997,175738,175361,175199,174970,175106,175272,175203,175405,176124,176221,177191,177592,178480,179331,180049,180585,181095
255 | E08000014,Sefton,E12000002,157,1762,46.5,282884,280866,279913,278853,276957,275852,275085,274735,274153,273820,273969,273798,273372,273856,274089,274853,274589,275396,276410,275899
256 | E08000015,Wirral,E12000002,161,2015,44.4,315004,315050,315371,315130,314925,315350,315670,316711,317771,319078,319837,320389,320670,321503,321700,322216,322796,323235,324011,324336
257 | E08000016,Barnsley,E12000003,329,754,42.3,218124,218851,220165,221227,222618,224419,225989,227754,228973,230066,231865,233762,235811,237971,239855,241847,243341,245199,246866,248071
258 | E08000017,Doncaster,E12000003,568,551,41.2,286900,288647,290111,290850,292174,293990,296215,298388,300184,301299,302468,302920,303693,304398,305496,307374,308940,310542,311890,312785
259 | E08000018,Rotherham,E12000003,287,925,41.8,248349,249610,250886,251722,252675,253638,254180,255271,256313,256893,257716,258424,258817,260256,260929,262142,263375,264671,265411,264984
260 | E08000019,Sheffield,E12000003,368,1601,35.3,513102,514201,515339,519640,525721,527629,529905,534035,538385,544613,551756,557276,560199,563463,569177,574050,577789,582506,584853,589214
261 | E08000021,Newcastle upon Tyne,E12000001,113,2704,32.1,266241,267001,266862,266884,269608,270258,271577,271649,273422,276681,279092,281893,285821,288340,290764,293713,295842,300196,302820,306824
262 | E08000022,North Tyneside,E12000001,82,2537,43.3,192003,192739,193037,193195,194120,195365,196470,197964,199017,200164,201206,201444,202167,202857,202725,203575,204473,205985,207913,208871
263 | E08000023,South Tyneside,E12000001,64,2346,43.2,152793,152210,151181,150265,149585,148887,148642,148626,148509,148468,148164,148311,148384,148572,148495,149194,149555,150265,150976,151133
264 | E08000024,Sunderland,E12000001,137,2022,42.1,284601,283037,281528,280113,279199,278370,277834,276812,276209,275980,275330,275764,276089,276782,276813,277307,277249,277417,277705,277846
265 | E08000025,Birmingham,E12000005,268,4259,32.7,984642,990384,996356,1002376,1014650,1020843,1029021,1038980,1050072,1061074,1074283,1085198,1092190,1101521,1112950,1128077,1137123,1141374,1141816,1140525
266 | E08000026,Coventry,E12000005,99,3846,32,302804,301295,300665,298174,298386,300129,301429,305186,307393,311674,316915,322504,328423,335018,344288,353215,360149,366785,371521,379387
267 | E08000027,Dudley,E12000005,98,3291,41.9,305052,305645,305585,306171,307004,307846,308686,310377,311088,312206,313261,313570,314357,315653,316331,317558,319419,320626,321596,322363
268 | E08000028,Sandwell,E12000005,86,3846,36.8,284594,285637,287135,288849,290447,292516,294603,298358,302303,306181,309042,311245,313980,316289,319101,322631,325460,327378,328450,329042
269 | E08000029,Solihull,E12000005,178,1220,42.9,199574,200028,200536,201153,201557,202351,203170,204778,205470,206329,206856,207450,209140,210227,210834,212166,213933,214909,216374,217487
270 | E08000030,Walsall,E12000005,104,2758,38.3,253333,254287,255352,256702,258172,259454,260939,263034,264774,266834,269524,270844,271955,273933,275880,278887,281293,283378,285478,286716
271 | E08000031,Wolverhampton,E12000005,69,3808,37.8,238016,239088,239851,240567,241647,242889,243910,245349,246016,247640,249852,251076,251708,253250,255106,258017,259926,262008,263357,264407
272 | E08000032,Bradford,E12000003,366,1480,36.7,470753,475184,479166,484650,491361,495658,501357,507323,512392,518002,523115,524386,525936,527567,529879,532539,534800,537173,539776,542128
273 | E08000033,Calderdale,E12000003,364,581,42.4,192379,193201,193968,194980,196270,197761,199275,200960,202078,203049,204170,205200,206136,207042,207832,209069,209454,210082,211455,211439
274 | E08000034,Kirklees,E12000003,409,1080,39.9,388980,392118,394486,397530,400724,404266,407974,411807,414785,418339,422970,425346,427831,429998,432855,435236,437145,438727,439787,441290
275 | E08000035,Leeds,E12000003,552,1448,35.1,715609,716380,717592,723042,735054,736204,738560,741665,743885,747571,750683,757566,760894,765430,773213,781087,784846,789194,793139,798786
276 | E08000036,Wakefield,E12000003,339,1038,41.4,315380,316306,317469,318037,318765,320318,321650,323288,324467,325595,326433,327890,329847,331720,334017,337094,340790,345038,348312,351592
277 | E08000037,Gateshead,E12000001,142,1419,41.5,191178,191559,192115,192317,192857,193615,194934,196078,197481,198731,200349,200272,200098,200781,201724,202628,202419,202508,202055,201950
278 | E09000001,City of London,E12000007,3,3785,36.1,7359,7280,7115,7118,7131,7254,7607,7429,7472,7338,7412,6612,6031,6139,6687,7246,7654,8706,9721,10938
279 | E09000002,Barking and Dagenham,E12000007,36,5931,32.7,165654,166357,166210,165610,166275,167157,169031,172452,177580,182838,187029,190663,194576,198650,203101,208182,210711,211998,212906,214107
280 | E09000003,Barnet,E12000007,87,4599,37.7,319481,320552,321802,323723,327541,330801,334837,339212,345829,351438,357538,363777,368301,373745,378778,384774,387803,392140,395869,399007
281 | E09000004,Bexley,E12000007,61,4115,39,218757,219123,220016,220917,222391,223280,224625,226652,228146,230711,232774,234308,236816,240016,242387,245095,246124,247258,248287,249301
282 | E09000005,Brent,E12000007,43,7580,36,269620,269871,268323,268335,270939,276504,283273,290901,298118,304785,312245,314593,317112,320101,323443,326427,329102,330795,329771,327753
283 | E09000006,Bromley,E12000007,150,2216,41.1,296218,296668,297253,297307,299421,300963,302625,304968,306924,308560,310554,314039,318167,321602,325303,327580,329391,331096,332336,332752
284 | E09000007,Camden,E12000007,22,12834,34,202567,203972,204254,207341,211088,211032,211520,210273,212924,214725,220087,224809,230486,236022,243837,249162,253361,262226,270029,279516
285 | E09000008,Croydon,E12000007,86,4493,37.9,335112,335415,335919,337134,339052,340449,344029,349308,352763,357951,364815,369189,373628,377073,380070,383301,384837,385346,386710,388563
286 | E09000009,Ealing,E12000007,56,6128,37.4,307276,309242,308108,310073,312774,315329,318671,324022,329966,334073,339314,340332,342108,342997,344285,344802,342736,341982,341806,340341
287 | E09000010,Enfield,E12000007,81,4127,36.7,277266,280745,281835,282217,284779,287429,291534,297443,301971,307648,313935,317257,320317,324409,328738,332127,332705,333869,333794,333587
288 | E09000011,Greenwich,E12000007,47,6109,35.3,217460,221476,224303,227190,230494,233990,236535,239748,243672,249171,255483,259986,264097,268853,274542,279139,282849,286186,287942,289034
289 | E09000012,Hackney,E12000007,19,14752,33.7,207246,210961,212405,213581,216512,220193,224480,231041,236622,241739,247182,252212,257436,263112,268626,273239,275929,279665,281120,280941
290 | E09000013,Hammersmith and Fulham,E12000007,16,11189,35.4,169374,171989,171510,172083,173292,174675,176472,177088,180116,180842,182445,182117,181421,181679,182183,181783,182998,185426,185143,183544
291 | E09000014,Haringey,E12000007,30,8997,36.4,221251,224474,225027,226472,229271,233174,236793,244459,249805,252742,255540,257898,261033,264398,268251,272078,271224,270624,268647,266357
292 | E09000015,Harrow,E12000007,50,5000,38.4,210044,212336,213728,216267,221109,223632,226355,229567,233495,237451,240499,241978,243004,245149,246818,248697,248880,250149,251160,252338
293 | E09000016,Havering,E12000007,112,2320,39.2,224717,225054,225248,225769,226990,228198,229789,231793,234127,236234,237927,239742,242142,246030,249375,253371,256039,257810,259552,260651
294 | E09000017,Hillingdon,E12000007,116,2671,36.5,245616,247063,248054,248691,251430,254387,256981,261051,265665,269465,275499,281179,285996,291368,296056,299899,302343,304824,306870,309014
295 | E09000018,Hounslow,E12000007,56,4856,36.8,215976,216888,216498,219440,223776,228126,233454,237907,243366,249236,254927,258518,261275,264030,266412,268270,269100,270782,271523,271767
296 | E09000019,Islington,E12000007,15,16699,31.9,179387,180118,180899,180831,183477,185283,188636,192089,196704,200129,206285,211273,215855,221405,227507,232055,235000,239142,242467,248115
297 | E09000020,Kensington and Chelsea,E12000007,12,12939,40.3,162199,163827,165268,165752,168375,165245,162883,162579,161893,160463,158251,156912,157141,157830,158589,156773,155741,156197,156129,156864
298 | E09000021,Kingston upon Thames,E12000007,37,4808,37.7,149045,149642,149683,151055,152489,153667,154485,156027,157307,158648,160436,163200,165657,168433,171609,173703,174609,175470,177507,179142
299 | E09000022,Lambeth,E12000007,27,12005,33.7,273372,273041,272195,274262,277620,280524,284964,289126,294050,297650,304481,309366,312700,316637,320736,323063,324048,325917,326034,321813
300 | E09000023,Lewisham,E12000007,35,8687,35.6,254336,253662,251936,252455,254930,257976,261188,266508,270418,272525,276938,280705,284956,290284,294999,298903,301307,303536,305842,305309
301 | E09000024,Merton,E12000007,38,5487,37.7,191106,190561,189298,188908,190583,192520,194260,195859,198136,199136,200543,202047,203637,204598,205965,206706,206052,206186,206548,206453
302 | E09000025,Newham,E12000007,36,9815,32.7,249411,255282,256224,254434,253798,257994,266285,276478,286447,299171,310460,316295,321465,328066,336254,344533,347996,352005,353134,355266
303 | E09000026,Redbridge,E12000007,56,5420,36.1,241893,244273,247412,248774,251560,255590,259965,265452,270435,275088,281395,284625,288850,293853,297928,301328,301785,303858,305222,305658
304 | E09000027,Richmond upon Thames,E12000007,57,3452,41.6,174311,175441,177182,179312,181508,182520,182421,182927,184394,186304,187527,188971,191138,193315,194124,195187,195680,196904,198019,198141
305 | E09000028,Southwark,E12000007,29,11082,33.9,256712,256269,255242,257257,261811,267553,272626,276973,281120,283777,288717,293440,298663,302818,308434,311655,314232,317256,318830,320017
306 | E09000029,Sutton,E12000007,44,4737,39.8,181461,181265,181267,181094,182103,182882,184174,185860,188167,189321,191123,193476,195787,197954,199870,201945,203243,204525,206349,207707
307 | E09000030,Tower Hamlets,E12000007,20,16791,31.9,201090,207031,208651,211154,213382,218400,225251,231893,240495,248520,256012,263624,273616,284596,293828,300943,307964,317705,324745,331969
308 | E09000031,Waltham Forest,E12000007,39,7136,35.6,222015,223776,224115,225002,226747,230731,235665,242098,248140,254009,259742,262456,265650,267801,270671,274222,275505,276700,276983,276940
309 | E09000032,Wandsworth,E12000007,34,9624,34.3,271742,274917,276828,278615,283229,287538,291440,294305,299347,302620,307710,309497,313091,316536,319477,321497,323257,326474,329677,329735
310 | E09000033,Westminster,E12000007,21,12561,36.3,203329,208100,211009,214557,223132,222829,220619,218673,216980,217187,219582,223737,225306,229899,238047,241974,244796,255324,261317,269848
311 | N09000001,Antrim and Newtownabbey,N92000002,571,252,39.8,128760,129502,130356,131067,132350,133216,134756,136122,137422,138044,138651,139157,139536,139966,140467,141032,141697,142492,143504,143756
312 | N09000002,"Armagh City, Banbridge and Craigavon",N92000002,1338,162,38.3,176014,177357,178954,180828,183933,187196,190505,193603,196203,198202,200298,202398,203757,205711,207797,210260,211898,214090,216205,217232
313 | N09000003,Belfast,N92000002,138,2487,36.2,328695,328471,327176,326268,325483,325985,327383,330052,331763,333489,333895,333962,335133,336830,338907,339579,340220,341877,343542,342560
314 | N09000004,Causeway Coast and Glens,N92000002,1986,73,41.5,131374,132827,134152,135209,136340,137438,138375,139004,139616,140107,140907,141434,141699,142303,143148,143525,143920,144246,144838,144943
315 | N09000005,Derry City and Strabane,N92000002,1251,121,38.3,143810,144280,144629,145041,145447,145855,146742,147496,148053,148148,148191,148619,148632,149198,149473,150142,150497,150679,151284,151109
316 | N09000006,Fermanagh and Omagh,N92000002,2864,41,40.1,105751,106663,107332,107923,108586,109344,110345,111494,111998,112919,113501,114230,114365,114992,115311,115799,116289,116835,117397,117337
317 | N09000007,Lisburn and Castlereagh,N92000002,506,290,40.6,124585,124757,125001,125764,127043,128185,129179,130584,132386,133909,135280,136311,136808,138627,140205,141181,142640,144381,146002,146452
318 | N09000008,Mid and East Antrim,N92000002,1059,132,42.4,127452,128281,129181,129925,130980,132021,133270,134169,134774,135157,135365,135838,135997,136642,137145,137821,138152,138773,139274,139443
319 | N09000009,Mid Ulster,N92000002,1831,81,37,119112,120214,121324,122645,124885,127662,131088,133595,135408,137221,139011,140357,141329,142895,144002,145389,146427,147392,148528,148953
320 | N09000010,"Newry, Mourne and Down",N92000002,1682,108,38.4,153726,154984,156395,158460,160453,162723,165634,168019,169652,171119,172276,173691,174829,175403,176369,177816,178996,180012,181368,181669
321 | N09000011,Ards and North Down,N92000002,566,286,44.4,149559,150198,150424,150912,152233,153488,154406,155014,156058,156518,156943,157637,157640,157931,158797,159593,160098,160864,161725,162056
322 | S12000005,Clackmannanshire,S92000003,159,322,45.2,48070,48140,48140,48670,49160,49540,50600,51190,51290,51330,51500,51280,51280,51190,51360,51350,51450,51400,51540,51290
323 | S12000006,Dumfries and Galloway,S92000003,6426,23,50,147780,147670,147860,148690,149620,149780,150370,151010,151160,151100,151410,150840,150280,149960,149670,149520,149200,148790,148860,148290
324 | S12000008,East Ayrshire,S92000003,1262,96,44.9,120310,119920,119860,120210,120280,120450,120950,121590,122110,122410,122690,122730,122430,122130,122060,122200,121940,121840,122010,121600
325 | S12000010,East Lothian,S92000003,679,159,44.8,90180,91050,91640,92170,92730,93850,95560,97470,98340,99140,99920,100860,101390,102090,103050,104090,104840,105790,107090,107900
326 | S12000011,East Renfrewshire,S92000003,174,551,43.7,89410,89930,89870,89790,89880,89750,89840,89870,89980,90410,90810,91040,91530,92410,92940,93810,94760,95170,95530,96060
327 | S12000013,Na h-Eileanan Siar,S92000003,3056,9,49.9,26450,26350,26430,26650,26930,27060,27210,27280,27420,27600,27690,27560,27400,27250,27070,26900,26950,26830,26720,26500
328 | S12000014,Falkirk,S92000003,297,540,43.6,145270,145930,146800,148300,150130,151090,152320,153290,154210,155140,156250,156800,157160,157690,158460,159380,160130,160340,160890,160560
329 | S12000017,Highland,S92000003,25653,9,47,208920,209760,211640,214560,218060,220780,224000,226980,228750,230730,232730,232890,232930,233080,234110,234770,235180,235540,235830,235430
330 | S12000018,Inverclyde,S92000003,160,480,46.3,84150,83730,83300,82690,82680,82320,82110,82000,81670,81510,81220,80690,80340,79890,79500,79160,78760,78150,77800,77060
331 | S12000019,Midlothian,S92000003,354,263,41.6,80950,80870,80280,80230,80050,80000,80370,81540,81900,82360,83450,84240,84710,86220,87390,88610,90090,91340,92460,93150
332 | S12000020,Moray,S92000003,2238,43,45.7,87000,87690,88830,89380,90100,90780,91440,92830,93170,93690,93470,92930,94360,94770,95510,96070,95780,95520,95820,95710
333 | S12000021,North Ayrshire,S92000003,885,152,46.9,135820,135890,136310,136500,136690,136790,137420,137910,137830,137790,138090,137570,136940,136480,136130,135890,135790,135280,134740,134250
334 | S12000023,Orkney Islands,S92000003,991,23,48.3,19220,19340,19540,19830,20070,20340,20580,20740,20940,21220,21420,21530,21560,21580,21670,21850,22000,22190,22270,22400
335 | S12000026,Scottish Borders,S92000003,4732,24,49.4,106950,107530,108400,109460,110250,110860,112200,113360,113590,113690,113880,113720,113880,114040,114030,114530,115020,115270,115510,115240
336 | S12000027,Shetland Islands,S92000003,1467,16,44.5,21960,22000,21960,22090,22250,22210,22350,22480,22790,23060,23240,23210,23200,23220,23200,23200,23080,22990,22920,22870
337 | S12000028,South Ayrshire,S92000003,1222,92,49.3,112160,111690,111550,111840,112030,112100,112380,112610,112490,112600,112980,112920,112870,112530,112400,112470,112680,112550,112610,112140
338 | S12000029,South Lanarkshire,S92000003,1772,181,44.2,302340,302780,303480,305670,306850,308450,310380,311320,312180,313180,313900,314330,314810,315300,316230,317100,318170,319020,320530,320820
339 | S12000030,Stirling,S92000003,2186,43,42.5,86200,86630,87090,86910,87510,88090,88430,88540,88690,89550,90330,91010,91230,91520,92830,93750,94000,94330,94210,94080
340 | S12000033,Aberdeen City,S92000003,186,1234,37.6,211910,210680,209280,207820,208690,209620,212460,214020,217020,219730,222460,224910,227070,228920,230350,229840,228800,227560,228670,229060
341 | S12000034,Aberdeenshire,S92000003,6313,41,44.4,226940,228830,231250,234690,237570,241180,244390,246840,249020,251430,253650,255560,257770,260530,261960,262190,261800,261470,261210,260780
342 | S12000035,Argyll and Bute,S92000003,6907,12,50,91300,91020,90930,90580,90350,90870,90790,89910,89450,88620,88930,86910,88050,87650,86890,87130,86810,86260,85870,85430
343 | S12000036,City of Edinburgh,S92000003,263,2003,36.7,449020,447490,445290,445870,449480,452060,456040,458520,463240,469940,477940,482630,487460,492610,498810,507170,513210,518500,524930,527620
344 | S12000038,Renfrewshire,S92000003,261,686,42.7,172850,172300,171560,171470,171430,171270,171860,172640,173020,173700,174700,174300,173890,174230,174560,175930,176830,177790,179100,179390
345 | S12000039,West Dunbartonshire,S92000003,159,556,43.3,93320,93040,92470,91970,91530,91420,91370,91190,91080,90800,90610,90340,89800,89710,89590,89860,89610,89130,88930,88340
346 | S12000040,West Lothian,S92000003,428,430,41.2,159030,160370,161690,163540,165010,167110,169470,171380,173040,174090,175300,176010,176160,177200,178550,180130,181310,182140,183100,183820
347 | S12000041,Angus,S92000003,2181,53,47.4,108370,108810,108710,110170,111340,112500,113540,114490,114830,115410,116200,116220,116290,116740,116900,116520,116280,116040,116200,115820
348 | S12000042,Dundee City,S92000003,60,2489,37.1,145460,144370,144070,143100,143600,143370,143700,144290,145170,146060,147200,147780,148100,148130,148210,148270,148710,148750,149320,148820
349 | S12000045,East Dunbartonshire,S92000003,174,623,46.3,108250,107350,107000,106540,106040,105590,105050,104940,104960,104920,105000,105880,105840,106710,106960,107540,108130,108330,108640,108750
350 | S12000047,Fife,S92000003,1325,282,43.9,349770,350740,351350,353050,355450,357260,358750,360050,361410,362610,365300,366210,366900,367250,368080,370330,371410,371910,373550,374130
351 | S12000048,Perth and Kinross,S92000003,5286,29,47.3,134950,135130,135960,136900,138060,139390,141140,143130,144370,145600,146850,147740,147770,148930,149930,150680,151100,151290,151950,151910
352 | S12000049,Glasgow City,S92000003,175,3640,35.7,578710,576450,572260,569560,569240,568480,571760,576200,581620,586500,593060,595070,596520,599640,606340,615070,621020,626410,633120,635640
353 | S12000050,North Lanarkshire,S92000003,470,726,41.6,321180,322520,323700,325400,327140,328740,331170,333290,335160,336280,337720,337890,337780,338000,338260,339390,339960,340180,341370,341140
354 | W06000001,Isle of Anglesey,W92000004,712,99,48.6,67806,67879,68140,68753,69095,69388,69700,69916,69884,69833,69913,70037,70073,70141,69936,69665,69794,69961,70043,70440
355 | W06000002,Gwynedd,W92000004,2535,49,43.0,116844,117344,118022,118721,118641,119070,119398,119746,120344,121155,121523,122007,121653,121897,122635,123323,123742,124178,124560,125171
356 | W06000003,Conwy,W92000004,1126,105,50.0,109674,110624,111248,112272,112374,113004,113778,114371,114623,114682,115326,115553,115912,116420,116450,116820,116863,117181,117203,118184
357 | W06000004,Denbighshire,W92000004,837,116,46.6,93070,93478,93872,94010,93978,93983,94530,94739,94444,94152,93919,94053,94518,94837,94836,94984,95159,95330,95696,96664
358 | W06000005,Flintshire,W92000004,440,357,43.8,148629,148947,149176,149681,149890,150125,150816,151501,151985,152080,152666,152776,153223,153819,154085,154626,155155,155593,156100,156847
359 | W06000006,Wrexham,W92000004,504,270,42.5,128540,128595,128914,129005,129249,130311,131263,132371,133295,134009,135070,135498,135801,135953,135418,135408,135571,136126,135957,136055
360 | W06000008,Ceredigion,W92000004,1785,41,46.8,75417,75500,75581,75775,75485,75342,75326,74971,74642,75217,75293,75932,75789,75133,74211,73665,73076,72992,72695,72895
361 | W06000009,Pembrokeshire,W92000004,1618,78,48.5,113058,114146,115147,116428,117204,118278,119640,121134,121563,121974,122613,123135,123375,123826,123671,124237,124711,125055,125818,126751
362 | W06000010,Carmarthenshire,W92000004,2370,80,46.6,173652,174628,176133,177487,178229,179504,181314,182517,182846,183004,183961,184332,184669,184968,185247,185754,186452,187568,188771,190073
363 | W06000011,Swansea,W92000004,378,653,39.9,223463,224755,226350,228176,229347,230793,232460,234139,235601,237311,238691,239460,240108,240966,242316,244462,245480,246466,246993,246563
364 | W06000012,Neath Port Talbot,W92000004,441,327,43.2,134380,134931,136233,137144,137670,138323,138957,139481,139537,139638,139880,140081,139867,140453,140946,141678,142090,142906,143315,144386
365 | W06000013,Bridgend,W92000004,251,588,42.9,128735,129741,131032,131947,132893,134164,135949,137175,137783,138471,139410,139769,140536,141287,142259,143408,144288,144876,147049,147539
366 | W06000014,Vale of Glamorgan,W92000004,331,409,43.7,119277,120279,120980,122101,122877,123642,124732,125713,126162,126435,126679,126998,127436,128009,127980,128891,130690,132165,133587,135295
367 | W06000015,Cardiff,W92000004,141,2620,33.6,310088,312021,313246,317099,321001,323766,328196,332790,337656,341402,345442,348724,352146,354829,357496,361168,362756,364248,366903,369202
368 | W06000016,Rhondda Cynon Taf,W92000004,424,570,40.6,231910,231795,232361,233971,234070,234493,234471,234724,234743,234459,234373,235612,236166,236871,237378,238179,239127,240131,241264,241873
369 | W06000018,Caerphilly,W92000004,277,655,41.7,169546,170776,171363,172361,172777,173741,174987,176259,177159,178101,178782,179014,179230,179933,180168,180453,180795,181019,181075,181731
370 | W06000019,Blaenau Gwent,W92000004,109,644,42.8,70000,69452,69228,69242,69188,69610,69685,69820,69850,69798,69812,69806,69764,69653,69547,69630,69609,69713,69862,70020
371 | W06000020,Torfaen,W92000004,126,754,41.9,90912,90700,90719,90516,90644,90820,90974,91094,91199,91060,91190,91346,91362,91549,91767,91994,92264,93049,93961,94832
372 | W06000021,Monmouthshire,W92000004,849,112,49.2,84984,85417,86605,87829,88611,89090,89592,90109,90557,91016,91508,91737,92249,92540,92805,93276,93590,94142,94590,95164
373 | W06000022,Newport,W92000004,190,822,38.7,137642,138727,139121,139316,139617,140557,141376,142744,143753,144803,145785,146275,146741,147119,147958,149478,151485,153302,154676,156447
374 | W06000023,Powys,W92000004,5181,26,50.6,126398,127145,128295,129568,130210,131037,131982,132865,133090,132878,133071,133015,132786,132777,132730,132337,132515,132447,132435,133030
375 | W06000024,Merthyr Tydfil,W92000004,111,542,40.4,56207,55996,55955,56020,56259,56627,57173,57688,58156,58493,58851,58907,59008,59056,59247,59714,59953,60183,60326,60424
376 |
--------------------------------------------------------------------------------
/public/data/data_region.csv:
--------------------------------------------------------------------------------
1 | "code","name","area","density","age_med",2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020
2 | "E12000001","North East",8581,312,41.7,2540090,2540600,2540461,2540502,2547127,2552568,2562045,2569312,2575441,2586868,2596441,2602387,2610563,2618736,2624579,2636589,2644727,2657909,2669941,2680763
3 | "E12000002","North West",14108,522,40.3,6772985,6784880,6814660,6840369,6870021,6901585,6929277,6958547,6986156,7019921,7055961,7084470,7103488,7133026,7175178,7223961,7258627,7292093,7341196,7367456
4 | "E12000003","Yorkshire-Humber",15404,359,40.2,4976643,5000111,5026314,5063199,5108408,5134016,5164138,5198675,5223344,5254788,5288212,5316897,5337940,5360117,5390211,5425370,5450130,5479615,5502967,5526350
5 | "E12000004","East Midlands",15624,311,41.4,4189622,4221753,4255080,4291476,4329112,4366676,4404774,4441125,4471653,4507071,4537448,4567798,4598548,4637369,4677425,4725390,4771666,4804149,4835928,4865583
6 | "E12000005","West Midlands",12998,459,39.6,5280727,5301243,5325475,5346376,5380687,5415521,5451924,5496240,5528007,5565866,5608667,5642763,5675030,5713439,5755032,5810773,5860706,5900757,5934037,5961929
7 | "E12000006","East",19116,328,41.8,5400463,5432688,5474133,5508564,5562653,5606294,5653534,5708350,5751443,5807402,5862418,5905914,5951934,6017250,6075970,6129005,6168432,6201214,6236072,6269161
8 | "E12000007","London",1572,5727,35.8,7322403,7376671,7394817,7432730,7519009,7597825,7693473,7812161,7942594,8061495,8204407,8308833,8417458,8539398,8666930,8769659,8825001,8908081,8961989,9002488
9 | "E12000008","South East",19072,483,41.9,8023449,8045192,8087924,8133100,8202896,8270861,8351391,8426399,8490922,8577771,8652784,8724928,8793154,8874005,8949392,9030347,9080825,9133625,9180135,9217265
10 | "E12000009","South West",23836,237,44.1,4943364,4976129,5006653,5038284,5086121,5119840,5170537,5205044,5226821,5261270,5300831,5339739,5377702,5423278,5471610,5516973,5559316,5599735,5624696,5659143
11 | "N92000002","Northern Ireland",13793,137,39.2,1688838,1697534,1704924,1714042,1727733,1743113,1761683,1779152,1793333,1804833,1814318,1823634,1829725,1840498,1851621,1862137,1870834,1881641,1893667,1895510
12 | "S92000003","Scotland",77901,70,42.1,5064200,5066000,5068500,5084300,5110200,5133100,5170000,5202900,5231900,5262200,5299900,5313600,5327700,5347600,5373000,5404700,5424800,5438100,5463300,5466000
13 | "W92000004","Wales",20737,153,42.4,2910232,2922876,2937721,2957422,2969309,2985668,3006299,3025867,3038872,3049971,3063758,3074067,3082412,3092036,3099086,3113150,3125165,3138631,3152879,3169586
14 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ONSvisual/svelte-scrolly/89552ebdd901c899799f8960d52e730a0fa65882/public/favicon.ico
--------------------------------------------------------------------------------
/public/global.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap');
2 |
3 | /* GLOBALS */
4 |
5 | html, body {
6 | position: relative;
7 | width: 100%;
8 | height: 100%;
9 | }
10 |
11 | body {
12 | color: #222;
13 | background-color: #fff;
14 | margin: 0;
15 | padding: 0;
16 | -webkit-box-sizing: border-box;
17 | box-sizing: border-box;
18 | font-family: "Open Sans", "Helvetica Neue", "Arial", sans-serif;
19 | font-size: 21px;
20 | line-height: 1.5;
21 | word-wrap: break-word;
22 | }
23 |
24 | /* COMPONENTS */
25 |
26 | a {
27 | color: #206095;
28 | }
29 |
30 | a:hover {
31 | color: #323132;
32 | }
33 |
34 | label {
35 | display: block;
36 | }
37 |
38 | input, button, select, textarea {
39 | font-family: inherit;
40 | font-size: inherit;
41 | -webkit-padding: 0.4em 0;
42 | padding: 0.4em;
43 | margin: 0 0 0.5em 0;
44 | -webkit-box-sizing: border-box;
45 | box-sizing: border-box;
46 | border: 1px solid #ccc;
47 | border-radius: 2px;
48 | }
49 |
50 | input:disabled {
51 | color: #ccc;
52 | }
53 |
54 | button {
55 | color: #333;
56 | background-color: #f4f4f4;
57 | outline: none;
58 | }
59 |
60 | button:disabled {
61 | color: #999;
62 | }
63 |
64 | button:not(:disabled):active {
65 | background-color: #ddd;
66 | }
67 |
68 | button:focus {
69 | border-color: #666;
70 | }
71 |
72 | header, section, nav, footer, figure, caption {
73 | display: -webkit-box;
74 | display: -ms-flexbox;
75 | display: flex;
76 | -webkit-box-pack: center;
77 | -ms-flex-pack: center;
78 | justify-content: center;
79 | background-position: center;
80 | background-repeat: no-repeat;
81 | background-size: cover;
82 | margin: 0;
83 | padding: 0;
84 | }
85 |
86 | footer {
87 | margin: 60px 0 0 0;
88 | }
89 |
90 | h1 {
91 | font-size: 54px;
92 | line-height: 1.3;
93 | margin: 30px 0 0 0;
94 | }
95 |
96 | h2 {
97 | font-size: 30px;
98 | margin: 40px 0 -20px 0;
99 | }
100 |
101 | h3 {
102 | font-size: 22px;
103 | margin: 40px 0 -10px 0;
104 | }
105 |
106 | p {
107 | margin: 30px 0 0 0;
108 | }
109 |
110 | img {
111 | max-width: 100%;
112 | height: auto;
113 | vertical-align: middle;
114 | }
115 |
116 | blockquote {
117 | margin: 30px 0 6px 0;
118 | font-size: 30px;
119 | color: #777;
120 | }
121 |
122 | small {
123 | font-size: 14px;
124 | }
125 |
126 | /* CLASSES */
127 |
128 | .col-full {
129 | width: 100%;
130 | }
131 |
132 | .col-wide {
133 | width: 100%;
134 | max-width: 980px;
135 | margin: 0 24px;
136 | }
137 |
138 | .col-medium {
139 | width: 100%;
140 | max-width: 680px;
141 | margin: 0 24px;
142 | }
143 |
144 | .col-narrow {
145 | width: 100%;
146 | max-width: 540px;
147 | margin: 0 24px;
148 | }
149 |
150 | .height-full {
151 | min-height: 100vh;
152 | }
153 |
154 | .center {
155 | text-align: center;
156 | }
157 |
158 | .middle {
159 | height: 100%;
160 | display: -webkit-box;
161 | display: -ms-flexbox;
162 | display: flex;
163 | -webkit-box-orient: vertical;
164 | -webkit-box-direction: normal;
165 | -ms-flex-direction: column;
166 | flex-direction: column;
167 | -webkit-box-pack: center;
168 | -ms-flex-pack: center;
169 | justify-content: center;
170 | }
171 |
172 | .caption {
173 | margin-top: 8px;
174 | text-align: left;
175 | font-size: 14px;
176 | color: #777;
177 | }
178 |
179 | .inset-medium {
180 | max-width: 680px;
181 | margin-left: auto !important;
182 | margin-right: auto !important;
183 | }
184 |
185 | .inset-narrow {
186 | max-width: 480px;
187 | margin-left: auto !important;
188 | margin-right: auto !important;
189 | }
190 |
191 | .text-big {
192 | font-size: 30px;
193 | margin: 20px 0;
194 | }
195 |
196 | .text-small {
197 | font-size: 14px;
198 | }
199 |
200 | .text-indent {
201 | margin-left: 30px;
202 | }
203 |
204 | .text-shadow {
205 | text-shadow: 0 0 8px #000;
206 | }
207 |
208 | .text-bold {
209 | font-weight: bold;
210 | }
211 |
212 | .text-muted {
213 | color: #777;
214 | }
215 |
216 | .mt {
217 | margin-top: 72px;
218 | }
219 |
220 | .mb {
221 | margin-bottom: 40px;
222 | }
223 |
224 | .em {
225 | padding: 1px 4px 1px 4px;
226 | /* border-radius: 5px; */
227 | font-weight: bold;
228 | white-space: nowrap;
229 | }
230 |
231 | .em-muted {
232 | background-color: #777;
233 | color: #fff;
234 | }
235 |
236 | /* SCROLL-SPECIFIC ELEMENTS */
237 |
238 | svelte-scroller-background-container {
239 | pointer-events: all !important;
240 | }
241 |
242 | [slot="foreground"] section {
243 | padding: 100vh 0 100vh 0;
244 | }
245 |
246 | [slot="foreground"] section + section {
247 | padding: 0 0 100vh 0;
248 | }
249 |
250 | [slot="foreground"] section div {
251 | padding: 12px;
252 | position: relative;
253 | }
254 |
255 | [slot="foreground"] section div::before {
256 | content: "";
257 | position: absolute;
258 | top: 0;
259 | left: 0;
260 | width: 100%;
261 | height: 100%;
262 | background-color: #fff;
263 | opacity: 0.8;
264 | z-index: -1;
265 | }
266 |
267 | [slot="foreground"] section div p {
268 | margin: 0;
269 | }
270 |
271 | [slot="foreground"] section div p + p {
272 | margin-top: 30px;
273 | }
274 |
275 | [slot="foreground"] section div h2,
276 | [slot="foreground"] section div h3 {
277 | margin: 10px 0 20px 0;
278 | }
279 |
280 | @media (min-width: 992px) {
281 | .splitscreen svelte-scroller-background {
282 | width: calc(100% - 480px) !important;
283 | min-width: 65%;
284 | margin: 0 0 0 auto;
285 | }
286 | .splitscreen [slot="foreground"] section div::before {
287 | opacity: 0;
288 | }
289 | .splitscreen [slot="foreground"] section {
290 | width: 480px;
291 | max-width: 35%;
292 | margin: 0 auto 0 0;
293 | background-color: #fff;
294 | }
295 | .splitscreen [slot="foreground"] .col-medium {
296 | width: 100%;
297 | margin: 0;
298 | padding: 0 30px;
299 | }
300 | }
--------------------------------------------------------------------------------
/public/img/bg-dark.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ONSvisual/svelte-scrolly/89552ebdd901c899799f8960d52e730a0fa65882/public/img/bg-dark.jpg
--------------------------------------------------------------------------------
/public/img/ons-logo-black-en.svg:
--------------------------------------------------------------------------------
1 |
2 | Office for National Statistics
3 |
4 |
--------------------------------------------------------------------------------
/public/img/ons-logo-neg-en.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/img/ons-logo-pos-en.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/img/scroll-down-black.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
8 |
9 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/public/img/scroll-down-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
8 |
9 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
ONS Scrollytelling Template
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | import svelte from 'rollup-plugin-svelte';
2 | import resolve from '@rollup/plugin-node-resolve';
3 | import commonjs from '@rollup/plugin-commonjs';
4 | import livereload from 'rollup-plugin-livereload';
5 | import { terser } from 'rollup-plugin-terser';
6 | import babel from 'rollup-plugin-babel';
7 |
8 | const production = !process.env.ROLLUP_WATCH;
9 |
10 | function serve() {
11 | let server;
12 |
13 | function toExit() {
14 | if (server) server.kill(0);
15 | }
16 |
17 | return {
18 | writeBundle() {
19 | if (server) return;
20 | server = require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], {
21 | stdio: ['ignore', 'inherit', 'inherit'],
22 | shell: true
23 | });
24 |
25 | process.on('SIGTERM', toExit);
26 | process.on('exit', toExit);
27 | }
28 | };
29 | }
30 |
31 | export default [
32 | {
33 | input: 'src/main.js',
34 | output: {
35 | sourcemap: true,
36 | format: 'iife',
37 | name: 'app',
38 | file: 'public/build/bundle.js'
39 | },
40 | plugins: [
41 | svelte({
42 | // enable run-time checks when not in production
43 | dev: !production,
44 | // we'll extract any component CSS out into
45 | // a separate file - better for performance
46 | css: css => {
47 | css.write('bundle.css');
48 | }
49 | }),
50 | resolve({
51 | browser: true,
52 | dedupe: ['svelte']
53 | }),
54 | commonjs(),
55 |
56 | // In dev mode, call `npm run start` once
57 | // the bundle has been generated
58 | !production && serve(),
59 |
60 | // Watch the `public` directory and refresh the
61 | // browser on changes when not in production
62 | !production && livereload('public'),
63 |
64 | // If we're building for production (npm run build
65 | // instead of npm run dev), minify
66 | production && terser()
67 | ],
68 | watch: {
69 | clearScreen: false
70 | }
71 | },
72 | {
73 | // Output legacy code bundle for ES5 / IE11 / Chromium 59 support
74 | input: 'src/main.js',
75 | output: {
76 | sourcemap: true,
77 | format: 'iife',
78 | name: 'app',
79 | file: 'public/build/bundle.legacy.js'
80 | },
81 | plugins: [
82 | svelte({
83 | dev: false,
84 | //output in legacy mode ES5 compatible) to support IE11
85 | legacy: true
86 | }),
87 | resolve({
88 | browser: true,
89 | dedupe: ['svelte']
90 | }),
91 | commonjs(),
92 |
93 | // compile to ES 2015 in oder to support IE11 & Chromium 59+
94 | babel({
95 | extensions: ['.js', '.mjs', '.html', '.svelte'],
96 | runtimeHelpers: true,
97 | exclude: [
98 | 'node_modules/@babel/**',
99 | 'node_modules/core-js/**',
100 | 'node_modules/mapbox-gl/**'
101 | ],
102 | presets: [
103 | [
104 | '@babel/preset-env',
105 | {
106 | targets: {
107 | ie: '11',
108 | chrome: '59',
109 | },
110 | useBuiltIns: 'usage',
111 | corejs: 3
112 | }
113 | ]
114 | ],
115 | plugins: [
116 | '@babel/plugin-syntax-dynamic-import',
117 | [
118 | '@babel/plugin-transform-runtime',
119 | {
120 | useESModules: true
121 | }
122 | ]
123 | ]
124 | }),
125 | terser()
126 | ],
127 | watch: {
128 | clearScreen: false
129 | }
130 | }
131 | ].slice(0, production ? 2 : 1);
--------------------------------------------------------------------------------
/scripts/setupTypeScript.js:
--------------------------------------------------------------------------------
1 | // @ts-check
2 |
3 | /** This script modifies the project to support TS code in .svelte files like:
4 |
5 |
8 |
9 | As well as validating the code for CI.
10 | */
11 |
12 | /** To work on this script:
13 | rm -rf test-template template && git clone sveltejs/template test-template && node scripts/setupTypeScript.js test-template
14 | */
15 |
16 | const fs = require("fs")
17 | const path = require("path")
18 | const { argv } = require("process")
19 |
20 | const projectRoot = argv[2] || path.join(__dirname, "..")
21 |
22 | // Add deps to pkg.json
23 | const packageJSON = JSON.parse(fs.readFileSync(path.join(projectRoot, "package.json"), "utf8"))
24 | packageJSON.devDependencies = Object.assign(packageJSON.devDependencies, {
25 | "svelte-check": "^1.0.0",
26 | "svelte-preprocess": "^4.0.0",
27 | "@rollup/plugin-typescript": "^6.0.0",
28 | "typescript": "^3.9.3",
29 | "tslib": "^2.0.0",
30 | "@tsconfig/svelte": "^1.0.0"
31 | })
32 |
33 | // Add script for checking
34 | packageJSON.scripts = Object.assign(packageJSON.scripts, {
35 | "validate": "svelte-check"
36 | })
37 |
38 | // Write the package JSON
39 | fs.writeFileSync(path.join(projectRoot, "package.json"), JSON.stringify(packageJSON, null, " "))
40 |
41 | // mv src/main.js to main.ts - note, we need to edit rollup.config.js for this too
42 | const beforeMainJSPath = path.join(projectRoot, "src", "main.js")
43 | const afterMainTSPath = path.join(projectRoot, "src", "main.ts")
44 | fs.renameSync(beforeMainJSPath, afterMainTSPath)
45 |
46 | // Switch the app.svelte file to use TS
47 | const appSveltePath = path.join(projectRoot, "src", "App.svelte")
48 | let appFile = fs.readFileSync(appSveltePath, "utf8")
49 | appFile = appFile.replace("
243 |
244 |
245 |
246 |
261 |
262 |
263 |
264 | This is a large, left-aligned text caption
265 |
266 |
267 |
268 |
269 | This is a section title
270 |
271 | This is a short paragraph of text to demonstrate the standard "medium" column width, font size and line spacing of the template.
272 |
273 |
274 | This is a second short paragraph of text to demonstrate the size of the paragraph spacing in the template.
275 |
276 |
277 | "This is an example of a large embedded quotation."—A. Person
278 |
279 |
280 |
281 |
282 |
283 |
284 | Embedded charts or media
285 |
286 | Below is an embedded chart. It is set to the same width as the column, "medium" (680px), but could also be "narrow" (540px), "wide" (980px) or "full" width. All options are responsive to fit the width of narrow screens.
287 |
288 |
289 |
290 | {#if data.region.indicators}
291 |
295 |
296 | a.pop - b.pop)}
298 | xKey="pop" yKey="name"
299 | snapTicks={false}
300 | xFormatTick={d => (d / 1e6)} xSuffix="m"
301 | height={350} padding={{top: 0, bottom: 15, left: 140, right: 0}}
302 | area={false} title="Population by region/nation, 2020"/>
303 |
304 |
305 | {/if}
306 |
307 |
308 |
309 |
310 | Gridded charts or media
311 |
312 | Below is a grid that can contain charts or any other kind of visual media. The grid can fit in a medium, wide or full-width column, and the media width itself can be narrow (min 200px), medium (min 300px), wide (min 500px) or full-width. The grid is responsive, and will re-flow on smaller screens.
313 |
314 |
315 |
316 | {#if data.region.timeseries && data.region.indicators}
317 |
322 | {#each [...data.region.indicators].sort((a, b) => b.pop - a.pop) as region}
323 |
324 | (d / 1e6)} ySuffix="m"
330 | height={200} padding={{top: 0, bottom: 20, left: 30, right: 15}}
331 | selected={region.code}
332 | area={false} title={region.name}/>
333 |
334 | {/each}
335 |
336 | {/if}
337 |
338 |
339 |
340 |
341 | This is a dynamic chart section
342 |
343 | The chart below will respond to the captions as you scroll down. The "Scroller" component is
344 | set to "splitscreen" mode, which means the captions will be on the left side on larger screens.
345 |
346 |
347 | The interactions are via Javascript functions that are called when each caption scrolls into view.
348 |
349 |
350 |
351 |
352 |
353 |
354 |
355 | {#if data.district.indicators && metadata.region.lookup}
356 |
357 | ({...d, parent_name: metadata.region.lookup[d.parent].name}))}
360 | colors={explore ? ['lightgrey'] : colors.cat}
361 | {xKey} {yKey} {zKey} {rKey} idKey="code" labelKey="name"
362 | r={[3,10]}
363 | xScale="log"
364 | xTicks={[10, 100, 1000, 10000]} xFormatTick={d => d.toLocaleString()}
365 | xSuffix=" sq.km"
366 | yFormatTick={d => d.toLocaleString()}
367 | legend={zKey != null} labels
368 | select={explore} selected={explore ? selected : null} on:select={doSelect}
369 | hover {hovered} on:hover={doHover}
370 | highlighted={explore ? chartHighlighted : []}
371 | colorSelect="#206095" colorHighlight="#999" overlayFill
372 | {animation}/>
373 |
374 | {/if}
375 |
376 |
377 |
378 |
379 |
380 |
381 |
382 |
383 | This chart shows the area in square kilometres of each local authority district in the UK. Each circle represents one district. The scale is logarithmic.
384 |
385 |
386 |
387 |
388 |
389 |
390 | The radius of each circle shows the total population of the district.
391 |
392 |
393 |
394 |
395 |
396 |
397 | The vertical axis shows the density of the district in people per hectare.
398 |
399 |
400 |
401 |
402 |
403 |
404 | The colour of each circle shows the part of the country that the district is within.
405 |
406 |
407 |
408 |
409 |
410 |
Select a district
411 |
Use the selection box below or click on the chart to select a district. The chart will also highlight the other districts in the same part of the country.
412 | {#if geojson}
413 |
414 |
415 |
416 | Select one
417 | {#each geojson.features as place}
418 |
419 | {place.properties.AREANM}
420 |
421 | {/each}
422 |
423 |
424 | {/if}
425 |
426 |
427 |
428 |
429 |
430 |
431 |
432 |
433 | This is a full-width chart demo
434 |
435 | Below is an example of a media grid where the column with is set to "full". This allows for full width images and charts.
436 |
437 |
438 |
439 |
440 |
441 |
442 |
447 |
448 | {#if data.district.timeseries}
449 | (d/1e6).toFixed(1)} ySuffix="m"
456 | select {selected} on:select={doSelect}
457 | hover {hovered} on:hover={doHover}
458 | highlighted={chartHighlighted}
459 | colorSelect="#206095" colorHighlight="#999"
460 | area={false} title="Mid-year population by district, 2001 to 2020"
461 | labels labelKey="name"/>
462 | {/if}
463 |
464 |
465 |
466 |
467 |
468 |
469 | This is a dynamic map section
470 |
471 | The map below will respond to the captions as you scroll down. The scroller is not set to splitscreen, so captions are placed over the map on any screen size.
472 |
473 |
474 |
475 | {#if geojson && data.district.indicators}
476 |
477 |
478 |
479 |
480 |
481 |
487 |
503 | ${data.district.indicators.find(d => d.code == hovered)[mapKey].toLocaleString()} ${units[mapKey]} ` : ''
505 | }/>
506 |
507 |
520 |
521 |
522 |
523 |
524 |
525 |
526 |
527 |
528 |
529 |
530 | This map shows population density by district. Districts are coloured from least dense to most dense . You can hover to see the district name and density.
531 |
532 |
533 |
534 |
535 |
536 |
537 | The map now shows median age , from youngest to oldest .
538 |
539 |
540 |
541 |
542 |
543 |
544 | {#each [[...data.district.indicators].sort((a, b) => b.age_med - a.age_med)[0]] as district}
545 |
546 | The map is now zoomed on {district.name} , the district with the oldest median age, {district.age_med} years.
547 |
548 | {/each}
549 |
550 |
551 |
552 |
553 |
Select a district
554 |
Use the selection box below or click on the map to select and zoom to a district.
555 | {#if geojson}
556 |
557 |
558 | fitById(selected)}>
559 | Select one
560 | {#each geojson.features as place}
561 |
562 | {place.properties.AREANM}
563 |
564 | {/each}
565 |
566 |
567 | {/if}
568 |
569 |
570 |
571 |
572 | {/if}
573 |
574 |
575 |
576 |
577 | How to use this template
578 |
579 | You can find the source code and documentation on how to use this template in this Github repo .
580 |
581 |
582 |
583 |
584 |
585 |
623 |
--------------------------------------------------------------------------------
/src/config.js:
--------------------------------------------------------------------------------
1 | // CORE CONFIG
2 | export const themes = {
3 | 'light': {
4 | 'text': '#222',
5 | 'muted': '#777',
6 | 'pale': '#f0f0f0',
7 | 'background': '#fff'
8 | },
9 | 'dark': {
10 | 'text': '#fff',
11 | 'muted': '#bbb',
12 | 'pale': '#333',
13 | 'background': '#222'
14 | },
15 | 'lightblue': {
16 | 'text': '#206095',
17 | 'muted': '#707070',
18 | 'pale': '#f0f0f0',
19 | 'background': 'rgb(188, 207, 222)'
20 | }
21 | }
22 |
23 | // DEMO-SPECIFIC CONFIG
24 |
25 | export const colors = {
26 | seq: ['rgb(234, 236, 177)', 'rgb(169, 216, 145)', 'rgb(0, 167, 186)', 'rgb(0, 78, 166)', 'rgb(0, 13, 84)'],
27 | cat: ['#206095', '#A8BD3A', '#003C57', '#27A0CC', '#118C7B', '#F66068', '#746CB1', '#22D0B6', 'lightgrey']
28 | }
29 |
30 | export const units = {
31 | 'density': 'sq.km',
32 | 'age_med': 'years'
33 | }
--------------------------------------------------------------------------------
/src/layout/Divider.svelte:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 | {#if hr}
12 |
13 | {:else}
14 |
15 | {/if}
16 |
17 |
18 |
19 |
27 |
28 |
--------------------------------------------------------------------------------
/src/layout/Filler.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
19 |
20 |
--------------------------------------------------------------------------------
/src/layout/Header.svelte:
--------------------------------------------------------------------------------
1 |
24 |
25 |
34 |
35 |
--------------------------------------------------------------------------------
/src/layout/Media.svelte:
--------------------------------------------------------------------------------
1 |
86 |
87 | {#if nogrid}
88 |
89 |
94 |
95 | {:else}
96 |
97 |
102 |
103 | {/if}
104 | {#if caption}
105 |
106 |
107 |
{@html caption}
108 |
109 |
110 | {/if}
111 |
112 |
139 |
--------------------------------------------------------------------------------
/src/layout/ONSFooter.svelte:
--------------------------------------------------------------------------------
1 |
7 |
8 |
44 |
45 |
--------------------------------------------------------------------------------
/src/layout/ONSHeader.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/layout/Scroller.svelte:
--------------------------------------------------------------------------------
1 |
66 |
67 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
--------------------------------------------------------------------------------
/src/layout/Section.svelte:
--------------------------------------------------------------------------------
1 |
7 |
8 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import App from './App.svelte';
2 |
3 | var app = new App({
4 | target: document.body
5 | });
6 |
7 | export default app;
8 |
--------------------------------------------------------------------------------
/src/ui/Arrow.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 | {#if center}
12 |
13 |
14 | {:else}
15 |
16 | {/if}
17 |
18 |
--------------------------------------------------------------------------------
/src/ui/Em.svelte:
--------------------------------------------------------------------------------
1 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/ui/Toggle.svelte:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 | {label}
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/utils.js:
--------------------------------------------------------------------------------
1 | import { csvParse, autoType } from 'd3-dsv';
2 | import { feature } from 'topojson-client';
3 |
4 | // CORE FUNCTIONS
5 | export function setColors(themes, theme) {
6 | for (let color in themes[theme]) {
7 | document.documentElement.style.setProperty('--' + color, themes[theme][color]);
8 | }
9 | }
10 |
11 | export function getMotion() {
12 | let mediaQuery = window.matchMedia("(prefers-reduced-motion: reduce)"); // Check if browser prefers reduced motion
13 | return !mediaQuery || mediaQuery.matches ? false : true; // return true for motion, false for no motion
14 | }
15 |
16 | // DEMO-SPECIFIC FUNCTIONS
17 | export async function getData(url) {
18 | let response = await fetch(url);
19 | let string = await response.text();
20 | let data = await csvParse(string, autoType);
21 | return data;
22 | }
23 |
24 | export async function getTopo(url, layer) {
25 | let response = await fetch(url);
26 | let json = await response.json();
27 | let geojson = await feature(json, layer);
28 | return geojson;
29 | }
30 |
31 | export function getColor(value, breaks, colors) {
32 | let color;
33 | let found = false;
34 | let i = 1;
35 | while (found == false) {
36 | if (value <= breaks[i]) {
37 | color = colors[i - 1];
38 | found = true;
39 | } else {
40 | i ++;
41 | }
42 | }
43 | return color ? color : 'lightgrey';
44 | }
45 |
46 | export function getBreaks(vals) {
47 | let len = vals.length;
48 | let breaks = [
49 | vals[0],
50 | vals[Math.floor(len * 0.2)],
51 | vals[Math.floor(len * 0.4)],
52 | vals[Math.floor(len * 0.6)],
53 | vals[Math.floor(len * 0.8)],
54 | vals[len - 1]
55 | ];
56 | return breaks;
57 | }
--------------------------------------------------------------------------------