{"version":3,"sources":["main.js"],"names":["FRAMEWORK","window","extend","requireConfig","context","baseBlocksUrl","waitSeconds","paths","jquery.validate.wrapper","jquery.validate.unobtrusive","jquery.validate.unobtrusive.wrapper","jquery.validate.unobtrusive-ajax","b","moduleAttributes","blocks/","crossorigin","utilities/","validation/","vendor/","wrappers/","main","locale","utility","jquery","onNodeCreated","node","config","module","moduleAttributesKey","n","startsBool","endsBool","moduleAttributesKeys","Object","keys","indexCheck","indexOf","i","length","lastIndexOf","packages","name","location","shim","vendor/pikaday","map","*","jquery.validate","jquery-validation","callback","Event","event","document","createEvent","initEvent","dispatchEvent","default","aContextHelp","formText","closeText","aDate","format","previousMonth","nextMonth","weekdays","weekdaysShort","interactionInstruction","clearLabel","yearLabel","monthLabel","triggerLabelSingle","totalSelectedSingular","totalSelectedPlural","startDateTitle","startDateEditTitle","endDateTitle","endDateEditTitle","multipleCaption","backToContent","aPlusMinus","plus","minus","aTextarea","limitMessage","limitMetMessage","mChapterIndex","previousText","nextText","mCardNotification","mCheckboxGroupMultiselect","pleaseSelect","allSelected","selected","selectAll","mCookiePolicy","successfullySaved","failed","mCreditCard","noMatch","amex","aFootnote","mFormRowHelp","showMore","showLess","mNotificationBadge","mMediaPlayer","progress","progressTime","restart","rewind","play","playVideo","playAudio","pause","forward","mute","volume","captions","subtitles","fullscreen","seconds","on","off","mPredictiveSearch","instruction","resultsFound","noResults","mShowHide","expand","contract","about","mShowMore","description","mStickyCtaBar","mobileText","mTabs","loadingText","oAccessibilitySettings","error","reduced","success","oCardSelect","maxMessage","oCarousel","carouselLabel","previousPageLong","previousPage","page","nextPageLong","nextPage","slide","oFaqPanel","oMasthead","menuText","closeMenu","switcherInitial","switcherSelection","primaryNavigationLabel","oModal","contentLabel","oWallet","nextButton","previousButton","t100ms","t150ms","t200ms","t250ms","t300ms","t350ms","t500ms","t1s","mDoughnutChart","color","multiSegmentColors","accentSegmentColors","accent-dark-1","accent-dark-2","accent-dark-3","accent-dark-4","accent-dark-5","accent-dark-6","accent-dark-7","accent-dark-8","accent-light-3","accent-light-5","aviva-blue","defining-grey","segment1","segment2","segment3","timings","basecolor","animation","standalone","functions","setupInitital","baseUrl","requireInitConfig","requireBasicConfig","appUrl","app","forEach","key","extendRequire","segment4","requireExtend","objs","arrs","blocked","origCallback","assign","defineProperty","value","target","varArgs","to","index","nextSource","nextKey","prototype","hasOwnProperty","call","writable","configurable","require","deepMerge","source","result","toString","prop","x","y","Error","concat","apply","this","arguments","setLocalisation","lang","settings","setComponentSettings","componentSettings","setAnimation","cookie","current","get","animationOff","testEnv","matchMedia","matches","documentElement","className","replace","jQuery","fx","moduleScan","elements","querySelectorAll","instantLoadModulesRegex","RegExp","Array","elm","loadModules","classList","remove","moduleIntersectionObserver","unobserve","eventListenerFn","getAttribute","modules","instantLoadModules","test","instantLoad","entries","rootMargin","entry","add","observe","addEventListener","IntersectionObserver","mod","split","setupPage","requiredPolyfills","requiredScripts","CSS","supports","push","localeUrl","settingsUrl","setupPagePart2","moduleMutationObserver","MutationObserver","querySelector","childList","subtree","listener","thisHref","targetElm","tempElm","element","hasAttribute","closest","match","urlAnchorRegExp","isArray","escape","substr","parentNode","customRequireConfigUrl"],"mappings":"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","file":"main.js","sourcesContent":["// Setup global namespace\r\nvar FRAMEWORK = window.FRAMEWORK || {};\r\nFRAMEWORK.extend = FRAMEWORK.extend || {};\r\n\r\n// Configure RequireJS\r\nFRAMEWORK.requireConfig = {\r\n\tcontext : 'framework',\r\n\tbaseUrl : '/js',\r\n\tbaseBlocksUrl : 'blocks',\r\n\twaitSeconds : 15,\r\n\tpaths : {\r\n\t\tjquery : 'vendor/jquery/jquery',\r\n\t\t'jquery.validate' : 'vendor/jquery/jquery.validate',\r\n\t\t'jquery.validate.wrapper' : 'wrappers/jquery.validate.wrapper',\r\n\t\t'jquery.validate.unobtrusive' : 'vendor/jquery/jquery.validate.unobtrusive',\r\n\t\t'jquery.validate.unobtrusive.wrapper' : 'wrappers/jquery.validate.unobtrusive.wrapper',\r\n\t\t'jquery.validate.unobtrusive-ajax' : 'vendor/jquery/jquery.validate.unobtrusive-ajax',\r\n\t\tb : 'block',\r\n\t},\r\n\t// Contains the attributes that a module or modules in a path should have which is used in onNodeCreated\r\n\tmoduleAttributes : {\r\n\t\t'blocks/' : { crossorigin : 'anonymous' },\r\n\t\t'stand-alone/' : { crossorigin : 'anonymous' },\r\n\t\t'utilities/' : { crossorigin : 'anonymous' },\r\n\t\t'validation/' : { crossorigin : 'anonymous' },\r\n\t\t'vendor/' : { crossorigin : 'anonymous' },\r\n\t\t'wrappers/' : { crossorigin : 'anonymous' },\r\n\t\tmain : { crossorigin : 'anonymous' },\r\n\t\tb : { crossorigin : 'anonymous' },\r\n\t\tlocale : { crossorigin : 'anonymous' },\r\n\t\tutility : { crossorigin : 'anonymous' },\r\n\t\tjquery : { crossorigin : 'anonymous' },\r\n\t},\r\n\t// Callback after a node is created using require\r\n\tonNodeCreated : function( node, config, module ) {\r\n\t\t'use strict';\r\n\r\n\t\t// Set the keys of moduleAttributes into an array\r\n\t\tvar moduleAttributesKeys = Object.keys( config.moduleAttributes ),\r\n\t\t\tmoduleAttributesKey,\r\n\t\t\tmoduleAttributes,\r\n\t\t\t// Get the index of the module in the moduleAttributesKeys array\r\n\t\t\tindexCheck = moduleAttributesKeys.indexOf( module ),\r\n\t\t\t// If module is found then set the start index to it else start at 0 for the loop\r\n\t\t\ti = ( indexCheck === -1 ) ? 0 : indexCheck,\r\n\t\t\tn,\r\n\t\t\t// Bools used for checking if module is in directory e.g vendor/\r\n\t\t\tstartsBool,\r\n\t\t\tendsBool;\r\n\r\n\t\t// Remove default crossorigin\r\n\r\n\t\t// Loop through the keys\r\n\t\tfor ( i; i < moduleAttributesKeys.length; i += 1 ) {\r\n\t\t\t// Checks if module name starts with with the key name\r\n\t\t\tstartsBool = module.indexOf( moduleAttributesKeys[ i ] ) === 0;\r\n\t\t\t// Checks to see if key name ends with '/' to ensure it's a directory\r\n\t\t\tendsBool = moduleAttributesKeys[ i ].lastIndexOf( '/' ) === ( moduleAttributesKeys[ i ].length - '/'.length );\r\n\r\n\t\t\t// If the key matches the module enter if statement or if module starts with the key and the key ends with a '/' then enter if statement (for module in directory)\r\n\t\t\tif ( ( module === moduleAttributesKeys[ i ] ) || ( startsBool && endsBool ) ) {\r\n\t\t\t\tmoduleAttributesKey = moduleAttributesKeys[ i ];\r\n\t\t\t\t// Make array with the attribute keys of the module\r\n\t\t\t\tmoduleAttributes = Object.keys( config.moduleAttributes[ moduleAttributesKey ] );\r\n\t\t\t\t// Loop through the attributes and set the attribute with the value\r\n\t\t\t\tfor ( n = 0; n < moduleAttributes.length; n += 1 ) {\r\n\t\t\t\t\tnode.setAttribute( moduleAttributes[ n ], config.moduleAttributes[ moduleAttributesKey ][ moduleAttributes[ n ] ] );\r\n\t\t\t\t}\r\n\t\t\t\t// Break out of for loop as all attributes have already been set\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tpackages : [\r\n\t\t{\r\n\t\t\tname : 'dayjs',\r\n\t\t\tlocation : 'vendor/day',\r\n\t\t\tmain : 'dayjs',\r\n\t\t},\r\n\t\t{\r\n\t\t\tname : 'highcharts',\r\n\t\t\tlocation : 'vendor/highcharts11',\r\n\t\t\tmain : 'highcharts',\r\n\t\t},\r\n\t\t{\r\n\t\t\tname : 'htmx',\r\n\t\t\tlocation : 'vendor/htmx',\r\n\t\t\tmain : 'htmx',\r\n\t\t},\r\n\t],\r\n\tshim : {\r\n\t\t'vendor/pikaday' : [ 'dayjs' ],\r\n\t\t'jquery.validate.unobtrusive-ajax' : [ 'jquery', 'jquery.validate', 'jquery.validate.unobtrusive' ],\r\n\t},\r\n\tmap : {\r\n\t\t'*' : {\r\n\t\t\tjquery : 'jquery',\r\n\t\t\t'jquery.validate' : 'jquery.validate.wrapper',\r\n\t\t\t'jquery.validate.unobtrusive' : 'jquery.validate.unobtrusive.wrapper',\r\n\t\t},\r\n\t\t'jquery.validate.wrapper' : { 'jquery.validate' : 'jquery.validate' },\r\n\t\t'jquery.validate.unobtrusive.wrapper' : { 'jquery.validate.unobtrusive' : 'jquery.validate.unobtrusive' },\r\n\t\t'jquery.validate.unobtrusive' : { 'jquery-validation' : 'jquery.validate.wrapper' },\r\n\t},\r\n\tcallback : function() {\r\n\t\t'use strict';\r\n\r\n\t\tvar event;\r\n\t\tif ( typeof Event === 'function' ) {\r\n\t\t\tevent = new Event( 'requireready' );\r\n\t\t} else {\r\n\t\t\tevent = document.createEvent( 'Event' );\r\n\t\t\tevent.initEvent( 'requireready', true, true );\r\n\t\t}\r\n\t\tdocument.dispatchEvent( event );\r\n\t},\r\n};\r\n\r\n// Set localisation setting\r\nFRAMEWORK.locale = {\r\n\tdefault : {\r\n\t\taContextHelp : {\r\n\t\t\tformText : 'Help',\r\n\t\t\tcloseText : 'Close',\r\n\t\t},\r\n\t\taDate : {\r\n\t\t\tlocale : 'en-gb',\r\n\t\t\tformat : 'DD/MM/YYYY',\r\n\t\t\tpreviousMonth : 'Previous month',\r\n\t\t\tnextMonth : 'Next month',\r\n\t\t\tmonths : [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ],\r\n\t\t\tweekdays : [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ],\r\n\t\t\tweekdaysShort : [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ],\r\n\t\t\tinteractionInstruction : 'Use the arrow keys to pick a date',\r\n\t\t\tclearLabel : 'Clear',\r\n\t\t\tyearLabel : 'Year',\r\n\t\t\tmonthLabel : 'Month',\r\n\t\t\ttriggerLabelSingle : 'Select date',\r\n\t\t\ttotalSelectedSingular : '{days} day selected',\r\n\t\t\ttotalSelectedPlural : '{days} days selected',\r\n\t\t\tstartDateTitle : 'Select start date',\r\n\t\t\tstartDateEditTitle : 'Edit start date',\r\n\t\t\tendDateTitle : 'Select end date',\r\n\t\t\tendDateEditTitle : 'Edit end date',\r\n\t\t},\r\n\t\taFileUpload : { multipleCaption : '{count} files selected' },\r\n\t\taFootnote : { backToContent : 'Back to content' },\r\n\t\taPlusMinus : {\r\n\t\t\tplus : 'plus',\r\n\t\t\tminus : 'minus',\r\n\t\t},\r\n\t\taTextarea : {\r\n\t\t\tmultipleCaption : '{count} characters left',\r\n\t\t\tlimitMessage : 'There is a character limit of {count}',\r\n\t\t\tlimitMetMessage : 'Character limit of {count} met',\r\n\t\t},\r\n\t\tmChapterIndex : {\r\n\t\t\tpreviousText : 'Previous',\r\n\t\t\tnextText : 'Next',\r\n\t\t},\r\n\t\tmCardNotification : { closeText : 'Close' },\r\n\t\tmCheckboxGroupMultiselect : {\r\n\t\t\tpleaseSelect : 'Please select\\u2026',\r\n\t\t\tallSelected : 'All selected',\r\n\t\t\tselected : ' selected',\r\n\t\t\tselectAll : 'Select all',\r\n\t\t},\r\n\t\tmCookiePolicy : {\r\n\t\t\tsuccessfullySaved : 'The cookie setting has been successfully saved.',\r\n\t\t\tfailed : 'Cookies are not enabled so your preference could not be saved.',\r\n\t\t},\r\n\t\tmCreditCard : {\r\n\t\t\tdefault : 'For %s, look for the three digits on the back',\r\n\t\t\tnoMatch : 'Look for the three digits on the back',\r\n\t\t\tamex : 'For American Express, look for the four digits on the front',\r\n\t\t},\r\n\t\tmFormRowHelp : {\r\n\t\t\tshowMore : 'Show more',\r\n\t\t\tshowLess : 'Show less',\r\n\t\t},\r\n\t\tmNotificationBadge : {\r\n\t\t\tcloseText : 'Close',\r\n\t\t\tfailed : 'Cookies are not enabled so your preference could not be saved.',\r\n\t\t},\r\n\t\tmMediaPlayer : {\r\n\t\t\tprogress : 'played',\r\n\t\t\tprogressTime : 'time',\r\n\t\t\trestart : 'Restart',\r\n\t\t\trewind : 'Rewind',\r\n\t\t\tplay : 'Play',\r\n\t\t\tplayVideo : 'Play video',\r\n\t\t\tplayAudio : 'Play audio',\r\n\t\t\tpause : 'Pause',\r\n\t\t\tforward : 'Forward',\r\n\t\t\tmute : 'Mute',\r\n\t\t\tvolume : 'Volume',\r\n\t\t\tcaptions : 'Captions',\r\n\t\t\tsubtitles : 'Subtitles',\r\n\t\t\tfullscreen : 'Fullscreen',\r\n\t\t\tseconds : 'seconds',\r\n\t\t\ton : 'on',\r\n\t\t\toff : 'off',\r\n\t\t},\r\n\t\tmPredictiveSearch : {\r\n\t\t\tinstruction : 'When auto-complete results are available use up and down arrows to review and enter to select. Touch device users, explore by touch or with swipe gestures.',\r\n\t\t\tresultsFound : 'results are available.',\r\n\t\t\tnoResults : 'No search results.',\r\n\t\t},\r\n\t\tmShowHide : {\r\n\t\t\texpand : 'Show',\r\n\t\t\tcontract : 'Hide',\r\n\t\t\tabout : ' detail about ',\r\n\t\t},\r\n\t\tmShowMore : {\r\n\t\t\texpand : 'Show more',\r\n\t\t\tcontract : 'Show less',\r\n\t\t\tabout : ' about ',\r\n\t\t\tdescription : 'this topic',\r\n\t\t},\r\n\t\tmStickyCtaBar : { mobileText : 'Ready to get going?' },\r\n\t\tmTabs : {\r\n\t\t\tpreviousText : 'Previous',\r\n\t\t\tnextText : 'Next',\r\n\t\t\tloadingText : 'Please wait',\r\n\t\t},\r\n\t\toAccessibilitySettings : {\r\n\t\t\t// eslint-disable-next-line max-len\r\n\t\t\terror : 'The ability to store your accessibility preferences for this website requires the use of cookies. Please enable cookies for this site so that we can save your preference, or use the prefer reduced motion setting on your device.',\r\n\t\t\treduced : 'Animations and transitions have been automatically disabled for this website in accordance with your device settings.',\r\n\t\t\tsuccess : 'Your preferences have been updated successfully.',\r\n\t\t},\r\n\t\toCardSelect : {\r\n\t\t\tmaxMessage : 'Maximum reached - Please deselect an option to proceed',\r\n\t\t},\r\n\t\toCarousel : {\r\n\t\t\tcarouselLabel : 'Carousel',\r\n\t\t\tpreviousPageLong : 'Previous, {x} of {y}',\r\n\t\t\tpreviousPage : 'Previous',\r\n\t\t\tpage : '{x} of {y}',\r\n\t\t\tnextPageLong : 'Next, {x} of {y}',\r\n\t\t\tnextPage : 'Next',\r\n\t\t\tslide : 'slide',\r\n\t\t},\r\n\t\toFaqPanel : { showMore : 'Show more' },\r\n\t\toMasthead : {\r\n\t\t\tmenuText : 'Menu',\r\n\t\t\tcloseMenu : 'Close menu',\r\n\t\t\tcloseText : 'Close',\r\n\t\t\tloadingText : 'Please wait',\r\n\t\t\tswitcherInitial : 'Select your preferred option',\r\n\t\t\tswitcherSelection : 'You are on {option}',\r\n\t\t\tprimaryNavigationLabel : 'Primary navigation',\r\n\t\t},\r\n\t\toModal : {\r\n\t\t\tcloseText : 'Close',\r\n\t\t\tloadingText : 'Please wait',\r\n\t\t\tcontentLabel : 'Modal content',\r\n\t\t},\r\n\t\toWallet : {\r\n\t\t\tnextButton : 'Next',\r\n\t\t\tpreviousButton : 'Back',\r\n\t\t},\r\n\t},\r\n};\r\n\r\nFRAMEWORK.timings = {\r\n\tdefault : {\r\n\t\tt100ms : 100,\r\n\t\tt150ms : 150,\r\n\t\tt200ms : 200,\r\n\t\tt250ms : 250,\r\n\t\tt300ms : 300,\r\n\t\tt350ms : 350,\r\n\t\tt500ms : 500,\r\n\t\tt1s : 1000,\r\n\t},\r\n};\r\n\r\nFRAMEWORK.componentSettings = {\r\n\tmDoughnutChart : {\r\n\t\tcolor : 'accent-dark-1', // Accent dark 1 default (Aviva Blue)\r\n\t\tmultiSegmentColors : [ '#1a61bd', '#a9b2c6', '#5a8ccc', '#c2c8d5', '#7988a9' ], // Default colours for multisegment\r\n\t\taccentSegmentColors : {\r\n\t\t\t// Standard accent colours\r\n\t\t\t'accent-dark-1' : '#004fb6', // Aviva Blue\r\n\t\t\t'accent-dark-2' : '#004fb6', // Aviva Blue\r\n\t\t\t'accent-dark-3' : '#002f14', // Bottle Green\r\n\t\t\t'accent-dark-4' : '#5c596d', // Warm Grey\r\n\t\t\t'accent-dark-5' : '#4e1758', // Plum\r\n\t\t\t'accent-dark-6' : '#4e1758', // Plum\r\n\t\t\t'accent-dark-7' : '#005a6c', // Dark Teal\r\n\t\t\t'accent-dark-8' : '#444', // Dark Grey\r\n\t\t\t// Aviva specific accent colours\r\n\t\t\t'accent-light-3' : '#eee',\r\n\t\t\t'accent-light-5' : '#ffd900',\r\n\t\t\t'aviva-blue' : '#004fb6',\r\n\t\t\t'defining-grey' : '#ccc',\r\n\t\t\tsegment1 : '#1a61bd',\r\n\t\t\tsegment2 : '#a9b2c6',\r\n\t\t\tsegment3 : '#5a8ccc',\r\n\t\t\tsegment4 : '#c2c8d5',\r\n\t\t\tsegment5 : '#7988a9',\r\n\t\t},\r\n\t\tbasecolor : 'defining-grey', // Defining grey\r\n\t},\r\n};\r\n\r\nFRAMEWORK.animation = true; // Setup global animation variable\r\n\r\nFRAMEWORK.standalone = false;\r\n\r\nFRAMEWORK.functions = {\r\n\r\n\tsetupInitital : function() {\r\n\t\t'use strict';\r\n\r\n\t\tFRAMEWORK.requireBasicConfig = {\r\n\t\t\tcontext : 'framework',\r\n\t\t\tbaseUrl : FRAMEWORK.requireConfig.baseUrl,\r\n\t\t\tmoduleAttributes : {},\r\n\t\t\twaitSeconds : 15,\r\n\t\t};\r\n\r\n\t\tif ( FRAMEWORK.requireInitConfig && typeof FRAMEWORK.requireInitConfig === 'object' ) {\r\n\t\t\tif ( FRAMEWORK.requireInitConfig.baseUrl !== null ) {\r\n\t\t\t\tFRAMEWORK.requireBasicConfig.baseUrl = FRAMEWORK.requireInitConfig.baseUrl;\r\n\t\t\t\tFRAMEWORK.requireConfig.baseUrl = FRAMEWORK.requireInitConfig.baseUrl;\r\n\t\t\t}\r\n\r\n\t\t\tif ( FRAMEWORK.requireInitConfig.appUrl !== null ) {\r\n\t\t\t\tFRAMEWORK.requireConfig.paths.app = FRAMEWORK.requireInitConfig.appUrl;\r\n\t\t\t}\r\n\r\n\t\t\tObject.keys( FRAMEWORK.requireInitConfig.moduleAttributes ).forEach( function loop( key ) {\r\n\t\t\t\tFRAMEWORK.requireBasicConfig.moduleAttributes[ key ] = FRAMEWORK.requireInitConfig.moduleAttributes[ key ];\r\n\t\t\t\tFRAMEWORK.requireConfig.moduleAttributes[ key ] = FRAMEWORK.requireInitConfig.moduleAttributes[ key ];\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t// Extend require config\r\n\textendRequire : function() {\r\n\t\t'use strict';\r\n\r\n\t\tvar require,\r\n\t\t\trequireExtend,\r\n\t\t\tobjs,\r\n\t\t\tarrs,\r\n\t\t\tblocked,\r\n\t\t\torigCallback,\r\n\t\t\tdeepMerge;\r\n\r\n\t\t// Object.assign polyfill\r\n\t\tif ( typeof Object.assign !== 'function' ) {\r\n\t\t\t// Must be writable: true, enumerable: false, configurable: true\r\n\t\t\tObject.defineProperty( Object, 'assign', {\r\n\t\t\t\tvalue : function assign( target, varArgs ) { // eslint-disable-line no-unused-vars\r\n\t\t\t\t\tvar to,\r\n\t\t\t\t\t\tindex,\r\n\t\t\t\t\t\tnextSource;\r\n\r\n\t\t\t\t\t// .length of function is 2\r\n\t\t\t\t\tif ( target === null ) { // TypeError if undefined or null\r\n\t\t\t\t\t\tthrow new TypeError( 'Cannot convert undefined or null to object' );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tto = Object( target );\r\n\r\n\t\t\t\t\tfor ( index = 1; index < arguments.length; index++ ) {\r\n\t\t\t\t\t\tnextSource = arguments[ index ];\r\n\r\n\t\t\t\t\t\tif ( nextSource !== null ) { // Skip over if undefined or null\r\n\t\t\t\t\t\t\tObject.keys( nextSource ).forEach( function loop( nextKey ) { // eslint-disable-line no-loop-func\r\n\t\t\t\t\t\t\t\t// Avoid bugs when hasOwnProperty is shadowed\r\n\t\t\t\t\t\t\t\tif ( Object.prototype.hasOwnProperty.call( nextSource, nextKey ) ) {\r\n\t\t\t\t\t\t\t\t\tto[ nextKey ] = nextSource[ nextKey ];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn to;\r\n\t\t\t\t},\r\n\t\t\t\twritable : true,\r\n\t\t\t\tconfigurable : true,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\trequire = FRAMEWORK.requireConfig;\r\n\t\trequireExtend = FRAMEWORK.extend.requireConfig;\r\n\t\tobjs = [ 'paths', 'bundles', 'shim', 'map', 'config', 'moduleAttributes' ];\r\n\t\tarrs = [ 'packages', 'deps' ];\r\n\t\tblocked = [ 'baseUrl', 'skipDataMain', 'baseBlocksUrl' ];\r\n\r\n\t\tdeepMerge = function( target, source ) {\r\n\t\t\tvar result = target;\r\n\r\n\t\t\tif ( !source ) {\r\n\t\t\t\treturn target; // Null, undefined values check\r\n\t\t\t}\r\n\r\n\t\t\tif ( Object.prototype.toString.call( source ) === '[object Array]' ) {\r\n\t\t\t\tif ( Object.prototype.toString.call( result ) !== '[object Array]' ) {\r\n\t\t\t\t\tresult = [];\r\n\t\t\t\t}\r\n\t\t\t\tsource.forEach( function loop( child, index ) {\r\n\t\t\t\t\tif ( result[ index ] ) {\r\n\t\t\t\t\t\tresult[ index ] = deepMerge( result[ index ], source[ index ] );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresult[ index ] = source[ index ];\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else if ( typeof source === 'object' ) {\r\n\t\t\t\t// It is an object literal\r\n\t\t\t\tif ( typeof result !== 'object' ) {\r\n\t\t\t\t\tresult = {};\r\n\t\t\t\t}\r\n\t\t\t\tObject.keys( source ).forEach( function loop( key ) {\r\n\t\t\t\t\tif ( result[ key ] ) {\r\n\t\t\t\t\t\tresult[ key ] = deepMerge( result[ key ], source[ key ] );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresult[ key ] = source[ key ];\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else if ( result ) {\r\n\t\t\t\t// Do nothing\r\n\t\t\t} else {\r\n\t\t\t\tresult = source; // Dont overwrite any original values\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t};\r\n\r\n\t\tif ( requireExtend && typeof requireExtend === 'object' ) {\r\n\t\t\tObject.keys( requireExtend ).forEach( function loop( prop ) {\r\n\t\t\t\tvar x,\r\n\t\t\t\t\ty;\r\n\t\t\t\tif ( blocked.indexOf( prop ) > -1 ) {\r\n\t\t\t\t\tthrow new Error( 'You are not permitted to override `' + prop + '` in your config' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( objs.indexOf( prop ) > -1 ) {\r\n\t\t\t\t\trequire[ prop ] = deepMerge( require[ prop ], requireExtend[ prop ] );\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( arrs.indexOf( prop ) > -1 ) {\r\n\t\t\t\t\tx = require[ prop ] || [];\r\n\t\t\t\t\ty = requireExtend[ prop ] || [];\r\n\t\t\t\t\trequire[ prop ] = [].concat( x, y );\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( prop === 'callback' && requireExtend.callback === 'function' ) {\r\n\t\t\t\t\t// Callback already exists on config, wrap and call both\r\n\t\t\t\t\tif ( require.callback ) {\r\n\t\t\t\t\t\torigCallback = require.callback;\r\n\t\t\t\t\t\trequire.callback = function callback() {\r\n\t\t\t\t\t\t\torigCallback.apply( this, arguments );\r\n\t\t\t\t\t\t\trequireExtend.callback.apply( this, arguments );\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\trequire.callback = requireExtend.callback;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\trequire[ prop ] = requireExtend[ prop ];\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t// Function to merge locale settings with defaults\r\n\tsetLocalisation : function( utility ) {\r\n\t\t'use strict';\r\n\r\n\t\tvar lang = document.documentElement.lang;\r\n\r\n\t\tif ( typeof FRAMEWORK.extend.locale !== 'undefined' && FRAMEWORK.extend.locale[ lang ] ) {\r\n\t\t\tFRAMEWORK.locale.settings = utility.extend({}, FRAMEWORK.locale.default, FRAMEWORK.extend.locale[ lang ] );\r\n\t\t} else {\r\n\t\t\tFRAMEWORK.locale.settings = utility.extend({}, FRAMEWORK.locale.default, null );\r\n\t\t}\r\n\t},\r\n\r\n\t// Function to merge component settings with defaults\r\n\tsetComponentSettings : function( utility ) {\r\n\t\t'use strict';\r\n\r\n\t\tif ( FRAMEWORK.extend.componentSettings && typeof FRAMEWORK.extend.componentSettings === 'object' ) {\r\n\t\t\tFRAMEWORK.componentSettings = utility.extend( FRAMEWORK.componentSettings, FRAMEWORK.extend.componentSettings );\r\n\t\t} else {\r\n\t\t\t// Do nothing\r\n\t\t}\r\n\t},\r\n\r\n\t// Setup global variable for animation setting and set global class for css animation\r\n\tsetAnimation : function( utility, cookie ) {\r\n\t\t'use strict';\r\n\r\n\t\tif ( FRAMEWORK.extend.timings && typeof FRAMEWORK.extend.timings === 'object' ) {\r\n\t\t\t// Do nothing\r\n\t\t} else {\r\n\t\t\tFRAMEWORK.extend.timings = {};\r\n\t\t}\r\n\r\n\t\t// Loop through any additional timing values and add them to the default list\r\n\t\tObject.keys( FRAMEWORK.extend.timings ).forEach( function loop( key ) {\r\n\t\t\tif ( Object.prototype.hasOwnProperty.call( FRAMEWORK.timings.default, key ) ) {\r\n\t\t\t\t// Do not overwrite default time values\r\n\t\t\t} else {\r\n\t\t\t\t// Add new timing value\r\n\t\t\t\tFRAMEWORK.timings.default[ key ] = FRAMEWORK.extend.timings[ key ];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Setup current timings to match default\r\n\t\tFRAMEWORK.timings.current = utility.extend({}, FRAMEWORK.timings.default );\r\n\r\n\t\tif ( cookie.cookie.get( 'animation_disable_decision' ) === 'true' || FRAMEWORK.animationOff || FRAMEWORK.testEnv || window.matchMedia( '(prefers-reduced-motion: reduce)' ).matches ) {\r\n\t\t\tFRAMEWORK.animation = false; // Setup global animation variable\r\n\t\t\twindow.document.documentElement.className = window.document.documentElement.className.replace( 'u-animation', '' ); // Remove class if there\r\n\r\n\t\t\tObject.keys( FRAMEWORK.timings.current ).forEach( function loop( key ) {\r\n\t\t\t\tif ( Object.prototype.hasOwnProperty.call( FRAMEWORK.timings.current, key ) ) {\r\n\t\t\t\t\tFRAMEWORK.timings.current[ key ] = 0;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif ( typeof jQuery === 'function' ) {\r\n\t\t\t\tjQuery.fx.off = true;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tFRAMEWORK.animation = true; // Setup global animation variable\r\n\t\t\twindow.document.documentElement.className += ' u-animation'; // Turn on animation for CSS\r\n\t\t}\r\n\t},\r\n\r\n\t// Function to scan all modules for a data attribute to link to required JS and run\r\n\tmoduleScan : function() {\r\n\t\t'use strict';\r\n\r\n\t\t// Get all elements with data-module attribute but not got an intersection observer or not had their modules loaded already\r\n\t\tvar elements = document.querySelectorAll( '[data-module]:not(.has-module-observer):not(.has-modules-loaded)' ),\r\n\t\t\tinstantLoadModulesRegex = new RegExp( '(m-tabs)|(m-showhide)+', 'g' );\r\n\t\tArray.prototype.forEach.call( elements, function loop( elm ) {\r\n\t\t\tvar instantLoad = elm.getAttribute( 'data-module-load' ),\r\n\t\t\t\tmodules = elm.getAttribute( 'data-module' ),\r\n\t\t\t\tinstantLoadModules = instantLoadModulesRegex.test( modules ),\r\n\t\t\t\trootMargin = '256px',\r\n\t\t\t\tmoduleIntersectionObserver,\r\n\t\t\t\teventListenerFn = function() {\r\n\t\t\t\t\tFRAMEWORK.functions.loadModules( elm );\r\n\t\t\t\t\telm.classList.remove( 'has-module-observer' );\r\n\t\t\t\t\tmoduleIntersectionObserver.unobserve( elm );\r\n\t\t\t\t\telm.removeEventListener( 'loadModule', eventListenerFn );\r\n\t\t\t\t};\r\n\r\n\t\t\t// If intersection observers are supported and the module shouldn't be loaded instantly then add an intersection observer\r\n\t\t\tif ( 'IntersectionObserver' in window && ( instantLoad !== 'true' && instantLoadModules === false && !FRAMEWORK.testEnv ) ) {\r\n\t\t\t\tmoduleIntersectionObserver = new IntersectionObserver( function listener( entries ) {\r\n\t\t\t\t\tentries.forEach( function innerLoop( entry ) {\r\n\t\t\t\t\t\tif ( entry.isIntersecting ) {\r\n\t\t\t\t\t\t\teventListenerFn();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}, { rootMargin : rootMargin });\r\n\r\n\t\t\t\telm.classList.add( 'has-module-observer' );\r\n\t\t\t\tmoduleIntersectionObserver.observe( elm );\r\n\t\t\t\telm.addEventListener( 'loadModule', eventListenerFn );\r\n\t\t\t} else {\r\n\t\t\t\tFRAMEWORK.functions.loadModules( elm );\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t// Function to take the date-module attribute and load all the modules listed within it\r\n\tloadModules : function( elm ) {\r\n\t\t'use strict';\r\n\t\tvar modules = elm.getAttribute( 'data-module' );\r\n\r\n\t\tif ( modules && !elm.classList.contains( 'has-modules-loaded' ) ) {\r\n\t\t\tmodules = modules.split( ', ' );\r\n\r\n\t\t\tif ( typeof modules === 'string' ) {\r\n\t\t\t\tmodules = [ modules ];\r\n\t\t\t}\r\n\r\n\t\t\tArray.prototype.forEach.call( modules, function innerLoop( module ) {\r\n\t\t\t\tif ( module !== '' ) {\r\n\t\t\t\t\tFRAMEWORK.require( [ 'b!' + module ], function innerFn( mod ) {\r\n\t\t\t\t\t\tif ( mod && Object.prototype.hasOwnProperty.call( mod, 'initInstance' ) ) {\r\n\t\t\t\t\t\t\tmod.initInstance( elm );\r\n\t\t\t\t\t\t\t// Add a class to say modules have been loaded to try and prevent over processing of elements\r\n\t\t\t\t\t\t\telm.classList.add( 'has-modules-loaded' );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/*\r\n\t * Load any block modules that are on the page, and run their\r\n\t * initInstances function if one exists. We also pass in the\r\n\t * element that the module was referenced on as their may be\r\n\t * more than one copy of the block on the page.\r\n\t */\r\n\tsetupPage : function() {\r\n\t\t'use strict';\r\n\r\n\t\t// Set base URL based on where init.js is being loaded from\r\n\t\tvar requiredPolyfills = [],\r\n\t\t\trequiredScripts = [ 'utility', 'vendor/cookie' ];\r\n\r\n\t\tif ( window.CSS && window.CSS.supports && window.CSS.supports( 'object-fit', 'cover' ) ) {\r\n\t\t\t// Not IE11 or below so do nothing\r\n\t\t} else {\r\n\t\t\t// Load the polyfills for IE11 and below\r\n\t\t\trequiredPolyfills.push( 'vendor/polyfills-IE11' );\r\n\t\t}\r\n\r\n\t\tif ( 'IntersectionObserver' in window ) {\r\n\t\t\t// Intersection observer is supported so do nothing\r\n\t\t} else {\r\n\t\t\t// Load the intersection observer polyfill\r\n\t\t\trequiredPolyfills.push( 'vendor/core/intersection-observer' );\r\n\t\t}\r\n\r\n\t\tif ( FRAMEWORK.requireInitConfig.localeUrl !== null ) {\r\n\t\t\t// If a custom locale file has been supplied then load it as a dependancy\r\n\t\t\trequiredScripts.push( FRAMEWORK.requireInitConfig.localeUrl );\r\n\t\t}\r\n\t\tif ( FRAMEWORK.requireInitConfig.settingsUrl !== null ) {\r\n\t\t\t// If a custom component settings file has been supplied then load it as a dependancy\r\n\t\t\trequiredScripts.push( FRAMEWORK.requireInitConfig.settingsUrl );\r\n\t\t}\r\n\r\n\t\tif ( requiredPolyfills.length === 0 ) {\r\n\t\t\t// No polyfills are required so just move onto loading the other files\r\n\t\t\tFRAMEWORK.functions.setupPagePart2( requiredScripts );\r\n\t\t} else {\r\n\t\t\t// Polyfills are required so load these first\r\n\t\t\tFRAMEWORK.require( requiredPolyfills, function run() {\r\n\t\t\t\tFRAMEWORK.functions.setupPagePart2( requiredScripts );\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tsetupPagePart2 : function( requiredScripts ) {\r\n\t\t'use strict';\r\n\r\n\t\tFRAMEWORK.require( requiredScripts, function run( utility, cookie ) {\r\n\t\t\tvar moduleMutationObserver = new MutationObserver( function listener() {\r\n\t\t\t\tFRAMEWORK.functions.moduleScan();\r\n\t\t\t});\r\n\r\n\t\t\tFRAMEWORK.functions.setLocalisation( utility );\r\n\t\t\tFRAMEWORK.functions.setComponentSettings( utility );\r\n\t\t\tFRAMEWORK.functions.setAnimation( utility, cookie );\r\n\r\n\t\t\tutility.trigger( document, 'frameworkready' );\r\n\r\n\t\t\tFRAMEWORK.functions.moduleScan(); // Run initial moduleScan and then observe\r\n\r\n\t\t\tmoduleMutationObserver.observe( document.querySelector( 'body' ), {\r\n\t\t\t\tchildList : true,\r\n\t\t\t\tsubtree : true,\r\n\t\t\t});\r\n\r\n\t\t\tdocument.addEventListener( 'click', function listener( e ) {\r\n\t\t\t\tvar element = e.target,\r\n\t\t\t\t\tthisHref,\r\n\t\t\t\t\ttargetElm,\r\n\t\t\t\t\ttempElm;\r\n\r\n\t\t\t\t// Get the href of the clicked element if there is one\r\n\t\t\t\tif ( element.hasAttribute( 'href' ) ) {\r\n\t\t\t\t\tthisHref = element.getAttribute( 'href' ).match( utility.urlAnchorRegExp );\r\n\t\t\t\t} else {\r\n\t\t\t\t\telement = element.closest( 'a[href], button[href]' );\r\n\t\t\t\t\tif ( element ) {\r\n\t\t\t\t\t\tthisHref = element.getAttribute( 'href' ).match( utility.urlAnchorRegExp );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Only try and process if the link is not blank\r\n\t\t\t\tif ( Array.isArray( thisHref ) && thisHref[ 0 ] !== '' ) {\r\n\t\t\t\t\tthisHref = thisHref[ 0 ];\r\n\t\t\t\t\tif ( thisHref.indexOf( '#' ) === 0 ) {\r\n\t\t\t\t\t\tthisHref = '#' + CSS.escape( thisHref.substr( 1 ) );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ttargetElm = document.querySelector( thisHref );\r\n\r\n\t\t\t\t\t// If target element exists makes sure parentJS modules are all loaded\r\n\t\t\t\t\tif ( targetElm ) {\r\n\t\t\t\t\t\t// Loop through all parents loading their modules\r\n\t\t\t\t\t\ttempElm = targetElm.closest( '.has-module-observer' );\r\n\r\n\t\t\t\t\t\twhile ( tempElm ) {\r\n\t\t\t\t\t\t\tFRAMEWORK.functions.loadModules( tempElm );\r\n\t\t\t\t\t\t\ttempElm = tempElm.parentNode.closest( '.has-module-observer' );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n};\r\n\r\n( function fn() {\r\n\t'use strict';\r\n\r\n\t/*\r\n\t * Check browser has minimum level of feature support\r\n\t * Bar set at IE11 using techniques covered https://walterebert.com/blog/gracefully-ignoring-old-browsers/\r\n\t */\r\n\r\n\tif ( 'Intl' in window ) {\r\n\t\tFRAMEWORK.functions.setupInitital();\r\n\r\n\t\t// If a custom require extend file has been supplied then load it as a dependancy otherwise just run as normal\r\n\t\tif ( FRAMEWORK.requireInitConfig.customRequireConfigUrl === null ) {\r\n\t\t\t// If no custom require config has been specified just setup require for Framework straight away\r\n\t\t\tFRAMEWORK.functions.extendRequire();\r\n\t\t\tFRAMEWORK.require = require.config( FRAMEWORK.requireConfig ); // Setup Framework specific instance of require\r\n\t\t\tFRAMEWORK.functions.setupPage();\r\n\t\t} else {\r\n\t\t\t// If a custom require extend file has been supplied then load it as a dependancy\r\n\t\t\tFRAMEWORK.require = require.config( FRAMEWORK.requireBasicConfig );\r\n\t\t\tFRAMEWORK.require( [ FRAMEWORK.requireInitConfig.customRequireConfigUrl ], function run() {\r\n\t\t\t\tFRAMEWORK.functions.extendRequire();\r\n\t\t\t\tFRAMEWORK.require = require.config( FRAMEWORK.requireConfig ); // Setup Framework specific instance of require\r\n\t\t\t\tFRAMEWORK.functions.setupPage();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n})();\r\n"]}