{"version":3,"file":"SkipLink.js","names":["SkipLink","a","setters","Component","default","mix","Event","mediaQuery","Accessibility","execute","with","bindEvents","on","onHeaderStickyEnabled","onHeaderStickyDisabled","afterInit","saveOriginalTabIndex","is","setAltTabIndex","resetOriginalTabIndex","destroy","removeListener","onShow","onHide"],"sources":["components/global/SkipLink.js"],"sourcesContent":["import Component from 'core/Component';\nimport { mix } from 'core/mixwith';\nimport { Event } from 'services/EventEmitter';\nimport { mediaQuery } from 'toolbox/mediaQuery';\nimport Accessibility from 'mixins/Accessibility';\n\n/**\n * This is a description of the SkipLink constructor function.\n * @class\n * @classdesc A \"Skip to content\" component should be placed on each page to help keyboard users navigate the page.\n * This should be the first interactive element on the page.\n * This internal link will take the user directly to the main content.\n * @extends Component\n */\nexport default class SkipLink extends mix(Component).with(Accessibility) {\n /**\n * Should contain only event listeners and nothing else\n * All the event handlers should be into a separated function. No usage of anonyous function\n */\n bindEvents() {\n Event.on('header.sticky.enabled', this.onHeaderStickyEnabled, this);\n Event.on('header.sticky.disabled', this.onHeaderStickyDisabled, this);\n }\n\n /**\n * After init\n * Run any script after the component is fully initialized\n */\n afterInit() {\n super.saveOriginalTabIndex();\n }\n\n /**\n * Modify tabindex for consistent TAB navigation when the header becomes sticky\n */\n onHeaderStickyEnabled() {\n if (mediaQuery.is('xlarge')) {\n super.setAltTabIndex();\n }\n }\n\n /**\n * Restore tabindex for consistent TAB navigation when the header becomes unsticky\n */\n onHeaderStickyDisabled() {\n if (mediaQuery.is('xlarge')) {\n super.resetOriginalTabIndex(true);\n }\n }\n\n /**\n * Destroy is called automatically after the component is being removed from the DOM\n * You must always destroy the listeners attached to an element to avoid any memory leaks\n */\n destroy() {\n Event.removeListener('header.sticky.enabled', this.onShow, this);\n Event.removeListener('header.sticky.disabled', this.onHide, this);\n }\n}\n"],"mappings":"0KAcqBA,CAAQ,QAAAC,CAAA,oBAAAC,OAAA,WAAAD,CAAA,EAdtBE,CAAS,CAAAF,CAAA,CAAAG,OAAA,WAAAH,CAAA,EACPI,CAAG,CAAAJ,CAAA,CAAHI,GAAG,WAAAJ,CAAA,EACHK,CAAK,CAAAL,CAAA,CAALK,KAAK,WAAAL,CAAA,EACLM,CAAU,CAAAN,CAAA,CAAVM,UAAU,WAAAN,CAAA,EACZO,CAAa,CAAAP,CAAA,CAAAG,OAAA,GAAAK,OAAA,SAAAA,CAAA,EAAAR,CAAA,WAUCD,CAAQ,CAAd,aAAuB,CAAAK,CAAG,CAACF,CAAS,CAAC,CAACO,IAAI,CAACF,CAAa,CAAE,CAKrEG,UAAUA,CAAA,CAAG,CACTL,CAAK,CAACM,EAAE,CAAC,uBAAuB,CAAE,IAAI,CAACC,qBAAqB,CAAE,IAAI,CAAC,CACnEP,CAAK,CAACM,EAAE,CAAC,wBAAwB,CAAE,IAAI,CAACE,sBAAsB,CAAE,IAAI,CACxE,CAMAC,SAASA,CAAA,CAAG,CACR,KAAK,CAACC,oBAAoB,CAAC,CAC/B,CAKAH,qBAAqBA,CAAA,CAAG,CAChBN,CAAU,CAACU,EAAE,CAAC,QAAQ,CAAC,EACvB,KAAK,CAACC,cAAc,CAAC,CAE7B,CAKAJ,sBAAsBA,CAAA,CAAG,CACjBP,CAAU,CAACU,EAAE,CAAC,QAAQ,CAAC,EACvB,KAAK,CAACE,qBAAqB,GAAK,CAExC,CAMAC,OAAOA,CAAA,CAAG,CACNd,CAAK,CAACe,cAAc,CAAC,uBAAuB,CAAE,IAAI,CAACC,MAAM,CAAE,IAAI,CAAC,CAChEhB,CAAK,CAACe,cAAc,CAAC,wBAAwB,CAAE,IAAI,CAACE,MAAM,CAAE,IAAI,CACpE,CACJ,CAAC","ignoreList":[]}