{"version":3,"sources":["blocks/u-scrollable.js"],"names":["define","utility","uScrollableFn","elm","init","scrollAreaContentWrapper","scrollAreaContentInner","checkScrollable","contains","classList","uScrollable","removeAttribute","elmData","document","wrapInner","append","axisType","axis","debounce","isOverflown","add","firstChild","setAttribute","window","ResizeObserver","entries","forEach","observe","addResizeListener","addEventListener","initInstance"],"mappings":"aAAAA,OAAQ,CAAE,UAAW,gCAAkC,SAAcC,GAGpE,IAFAC,EAGQ,SAAUC,GADlB,IACCC,EAGEC,EACAC,EACAC,EANCL,EAAAA,KAgEH,OA1DEK,EAAAA,UAAeC,SAAA,iBAAA,IAGfL,EADDM,UAAUA,IAAAA,iBAAoB,EAG7BN,EAAAA,YAAIO,GACJP,EAAAA,gBAAIQ,UAAiB,EAErBC,EACAP,EAAAA,QAAAA,CAA2BQ,EAA3BR,EACsBQ,SAAGA,cAAsB,KAAQ,EAAvDP,EACsBO,SAAER,cAAAA,KAA0B,EAAlDJ,EACAA,UAAQa,EAAWT,EAA0BC,4BAAwB,EAArEL,EACIc,UAAQd,EAA6BK,EAAA,mCAA0C,EAAnFH,EAEAY,OAASN,EAAAA,oBAA+B,sCAAG,CAAA,EAE1CN,EAAAM,UAAeA,SAAUD,SAAU,EADnCQ,EAEAA,IACMb,EAAKM,UAAOG,SAAY,yBAAgB,EAD9CI,EAEAA,IACM,UAAA,OAAAJ,EAAAK,OADND,EAEAJ,EAAAK,MAGDV,EAGKE,EAAgBS,SAAE,WAFtBf,EAAIM,UAICR,OAAQkB,eAAkBH,EAH/Bb,EAAIM,UAICA,OAAUW,kBAAsB,EAHrCjB,EAAIM,UAIEO,OAAQ,kBAAW,EAFpBf,EAIHkB,YAAmBhB,EAAKa,CAAM,GAH/Bb,EAAIM,UAICA,IAAAA,eAAe,EACpB,MAJKO,EACJb,EAAIM,UAIDY,IAAU,kBAAe,EACvB,MAAAL,GAHLb,EAAIM,UAIDY,IAAU,kBAAkB,EAFhClB,EAIDkB,WAAMC,aAAA,WAAA,CAAA,GAFLnB,EAIFkB,WAAAV,gBAAA,UAAA,CAFA,EAAG,EAIF,EADI,mBACgFY,OAAE,IAAAC,eAAA,SAAAC,GAAA,OAAAA,EAAAC,QAAA,WAAA,OAAAnB,EAAA,CAAA,CAAA,CAAA,CAAA,EACnFoB,QAAAA,CAASxB,EAGZoB,OAAAA,kBAAOK,EAAmBtB,CAAwBC,EAEnDgB,OAAAA,iBAAOM,UAAkBtB,CAAWA,EAEpCA,EACD,GAIDJ,EAAAO,WAED,EAAA,MAGC,CACDoB,aAAC,SAAA3B,GACA,OAAAD,EAAAC,CAAA,CAFA,CACD,CACD,CAAC","file":"blocks/u-scrollable.js","sourcesContent":["define( [ 'utility', 'vendor/detect-element-resize' ], function run( utility ) {\r\n\t'use strict';\r\n\r\n\tvar uScrollableFn = {\r\n\t\tinit : function( elm ) {\r\n\t\t\tvar axisType = 'yx',\r\n\t\t\t\telmData,\r\n\t\t\t\tscrollAreaContentWrapper,\r\n\t\t\t\tscrollAreaContentInner,\r\n\t\t\t\tcheckScrollable;\r\n\r\n\t\t\tif ( !elm.classList.contains( 'js-u-scrollable' ) ) {\r\n\t\t\t\telm.classList.add( 'js-u-scrollable' );\r\n\r\n\t\t\t\telm.uScrollable = {}; // Setup uScrollable object\r\n\t\t\t\telm.removeAttribute( 'tabindex' );\r\n\r\n\t\t\t\telmData = utility.getData( elm );\r\n\t\t\t\tscrollAreaContentWrapper = document.createElement( 'div' );\r\n\t\t\t\tscrollAreaContentInner = document.createElement( 'div' );\r\n\t\t\t\tutility.wrapInner( elm, scrollAreaContentWrapper, 'scrollable-content-wrapper' );\r\n\t\t\t\tutility.wrapInner( scrollAreaContentWrapper, scrollAreaContentInner, 'scrollable-content-wrapper__inner' );\r\n\t\t\t\telm.append( utility.htmlStringToElement( '
' ) );\r\n\r\n\t\t\t\tif ( elm.classList.contains( 'm-table' ) ) {\r\n\t\t\t\t\taxisType = 'x';\r\n\t\t\t\t} else if ( elm.classList.contains( 'o-modal__content-holder' ) ) {\r\n\t\t\t\t\taxisType = 'y';\r\n\t\t\t\t} else if ( typeof elmData.axis === 'string' ) {\r\n\t\t\t\t\taxisType = elmData.axis;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Do nothing\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcheckScrollable = utility.debounce( function debounceFunc() {\r\n\t\t\t\t\telm.classList.remove( 'is-scrollable' );\r\n\t\t\t\t\telm.classList.remove( 'is-scrollable--x' );\r\n\t\t\t\t\telm.classList.remove( 'is-scrollable--y' );\r\n\r\n\t\t\t\t\tif ( utility.isOverflown( elm, axisType ) ) {\r\n\t\t\t\t\t\telm.classList.add( 'is-scrollable' );\r\n\t\t\t\t\t\tif ( axisType === 'x' ) {\r\n\t\t\t\t\t\t\telm.classList.add( 'is-scrollable--x' );\r\n\t\t\t\t\t\t} else if ( axisType === 'y' ) {\r\n\t\t\t\t\t\t\telm.classList.add( 'is-scrollable--y' );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telm.firstChild.setAttribute( 'tabindex', 0 );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\telm.firstChild.removeAttribute( 'tabindex' );\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 10 );\r\n\r\n\t\t\t\t// Use native resizeObserver when available\r\n\t\t\t\tif ( 'ResizeObserver' in window ) {\r\n\t\t\t\t\tconst ro = new ResizeObserver( entries => entries.forEach( () => checkScrollable() ) );\r\n\t\t\t\t\tro.observe( elm );\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Legacy IE11 version (REMOVE V6 and detect-element-resize)\r\n\t\t\t\t\twindow.addResizeListener( scrollAreaContentInner, checkScrollable );\r\n\t\t\t\t}\r\n\t\t\t\twindow.addEventListener( 'refresh', checkScrollable );\r\n\r\n\t\t\t\tcheckScrollable();\r\n\t\t\t}\r\n\r\n\t\t\treturn elm.uScrollable;\r\n\t\t},\r\n\t};\r\n\r\n\treturn {\r\n\t\tinitInstance : function( elm ) {\r\n\t\t\treturn uScrollableFn.init( elm );\r\n\t\t},\r\n\t};\r\n});\r\n"]}