You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iot/projects/IoTNode/wwwroot/lib/senna/globals/senna-min.js

10 lines
87 KiB

/**
* Senna.js - A blazing-fast Single Page Application engine
* @author Liferay, Inc.
* @version v2.7.9
* @link http://sennajs.com
* @license BSD-3-Clause
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.senna={})}(this,function(e){"use strict";function t(e){return void 0!==e}function n(e){return t(e)&&!a(e)}function r(e){return e&&"object"===("undefined"==typeof e?"undefined":Te(e))&&9===e.nodeType}function i(e){return"function"==typeof e}function a(e){return null===e}function o(e){var t="undefined"==typeof e?"undefined":Te(e);return"object"===t&&null!==e||"function"===t}function s(e){return"string"==typeof e||e instanceof String}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{checkEnv:!0},t="undefined"!=typeof process&&!process.browser;return t&&e.checkEnv&&(t="undefined"!=typeof process.env&&"test"!==process.env.NODE_ENV),t}function l(e){return e=e||[],Array.isArray(e)?e:[e]}function c(e,t){if(o(e)&&s(t)){e.length||(e=[e]);for(var n=0;n<e.length;n++)"classList"in e[n]?h(e[n],t):f(e[n],t)}}function h(e,t){t.split(" ").forEach(function(t){t&&e.classList.add(t)})}function f(e,t){var n=" "+e.className+" ",r="";t=t.split(" ");for(var i=0;i<t.length;i++){var a=t[i];n.indexOf(" "+a+" ")===-1&&(r+=" "+a)}r&&(e.className=e.className+r)}function d(e,t,n){p(qe.get(e,"listeners",{}),t,n)}function v(e,t,n,r){var i=qe.get(e,"delegating",{});p(i[t].selectors,n,r)}function p(e,t,n){e[t]||(e[t]=[]),e[t].push(n)}function y(e,t){var n=qe.get(e,"delegating",{});n[t]||(n[t]={handle:T(e,t,P,!!Xe[t]),selectors:{}})}function m(e,t){for(;e&&!L(e,t);)e=e.parentNode;return e}function _(e,t){if(s(t)&&(t=g(t)),S(t))for(var n=Array.prototype.slice.call(t),r=0;r<n.length;r++)e.appendChild(n[r]);else e.appendChild(t);return t}function g(e){var t=document.createElement("div");t.innerHTML="<br>"+e,t.removeChild(t.firstChild);for(var n=document.createDocumentFragment();t.firstChild;)n.appendChild(t.firstChild);return n}function k(e,t){return r(e)?e.documentElement.contains(t):e.contains(t)}function E(e,t,n,r,i){var a=ze[t];return a&&a.delegate&&(t=a.originalEvent,r=a.handler.bind(a,r)),i&&(r=r.bind(),r.defaultListener_=!0),y(e,t),s(n)?v(e,t,n,r):d(n,t,r),new We(s(n)?e:n,t,r,s(n)?n:null)}function b(e,t,n){if(n&&"click"===t&&2===n.button)return!1;var r=["BUTTON","INPUT","SELECT","TEXTAREA","FIELDSET"];return!("click"===t&&r.indexOf(e.tagName)>-1)||!(e.disabled||O(e,"fieldset[disabled]"))}function S(e){return n(e)&&"number"==typeof e.length&&"function"==typeof e.item}function w(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function P(e){A(e);var t=!0,n=e.currentTarget,r=[];return t&=q(n,e,r),t&=M(r,e),e.delegateTarget=null,e[Ge]=n,t}function L(e,t){if(!e||1!==e.nodeType)return!1;var n=Element.prototype,r=n.matches||n.webkitMatchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector;return r?r.call(e,t):C(e,t)}function C(e,t){var n=e.parentNode;if(n)for(var r=n.querySelectorAll(t),i=0;i<r.length;++i)if(r[i]===e)return!0;return!1}function A(e){e.stopPropagation=F,e.stopImmediatePropagation=U}function T(e,t,n,r){if(s(e))return E(document,t,e,n);var i=ze[t];return i&&i.event&&(t=i.originalEvent,n=i.handler.bind(i,n)),e.addEventListener(t,n,r),new Je(e,t,n,r)}function R(e,t,n){var r=T(e,t,function(){return r.removeListener(),n.apply(this,arguments)});return r}function O(e,t){return m(e.parentNode,t)}function N(e,t){ze[e]=t}function I(e){for(var t=void 0;t=e.firstChild;)e.removeChild(t)}function D(e,t){if(o(e)&&s(t)){e.length||(e=[e]);for(var n=0;n<e.length;n++)"classList"in e[n]?H(e[n],t):x(e[n],t)}}function H(e,t){t.split(" ").forEach(function(t){t&&e.classList.remove(t)})}function x(e,t){var n=" "+e.className+" ";t=t.split(" ");for(var r=0;r<t.length;r++)n=n.replace(" "+t[r]+" "," ");e.className=n.trim()}function U(){var e=this;e.stopped=!0,e.stoppedImmediate=!0,Event.prototype.stopImmediatePropagation.call(e)}function F(){var e=this;e.stopped=!0,Event.prototype.stopPropagation.call(e)}function j(e,t){if(ze[t])return!0;s(e)&&(Ye[e]||(Ye[e]=document.createElement(e)),e=Ye[e]);var n=e.tagName;return $e[n]&&$e[n].hasOwnProperty(t)||($e[n]=$e[n]||{},$e[n][t]="on"+t in e),$e[n][t]}function M(e,t){for(var n=!0,r=0;r<e.length&&!t.defaultPrevented;r++)t.delegateTarget=e[r].element,n&=e[r].fn(t);return n}function q(e,t,n){for(var r=!0,i=t.target,a=e.parentNode;i&&i!==a&&!t.stopped;)b(i,t.type,t)&&(t.delegateTarget=i,r&=B(i,t,n),r&=V(e,i,t,n)),i=i.parentNode;return r}function B(e,n,r){var i=n[Ge];if(!t(i)||!k(i,e)){var a=qe.get(e,"listeners",{})[n.type];return Q(a,n,e,r)}return!0}function Q(e,t,n,r){var i=!0;e=e||[];for(var a=0;a<e.length&&!t.stoppedImmediate;a++)e[a].defaultListener_?r.push({element:n,fn:e[a]}):i&=e[a](t);return i}function V(e,t,n,r){for(var i=!0,a=qe.get(e,"delegating",{}),o=a[n.type].selectors,s=Object.keys(o),u=0;u<s.length&&!n.stoppedImmediate;u++)if(L(t,s[u])){var l=o[s[u]];i&=Q(l,n,t,r)}return i}function W(){var e={mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"};Object.keys(e).forEach(function(t){N(t,{delegate:!0,handler:function(e,n){var r=n.relatedTarget,i=n.delegateTarget;if(!r||r!==i&&!k(i,r))return n.customType=t,e(n)},originalEvent:e[t]})});var t={animation:"animationend",transition:"transitionend"};Object.keys(t).forEach(function(e){var n=t[e];N(n,{event:!0,delegate:!0,handler:function(e,t){return t.customType=n,e(t)},originalEvent:Ke.checkAnimationEventName()[e]})})}function J(){throw Error("Unimplemented abstract method")}function Y(){nt=void 0}function $(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};nt=e}function z(){return"undefined"!=typeof window&&window.__METAL_COMPATIBILITY__&&$(window.__METAL_COMPATIBILITY__),nt}function G(e,t){return e||t}function X(e){if(!e.name){var t=e.toString();e.name=t.substring(9,t.indexOf("("))}return e.name}function K(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:G,r=t+"_MERGED";if(!e.hasOwnProperty(r)){var i=e.hasOwnProperty(t)?e[t]:null;e.__proto__&&!e.__proto__.isPrototypeOf(Function)&&(i=n(i,K(e.__proto__,t,n))),e[r]=i}return e[r]}function Z(e,t){if(e){var n=e[it];return t&&!e.hasOwnProperty(it)&&(n=null),n||(e[it]=rt++)}return rt++}function ee(e){return e}function te(e){return"boolean"==typeof e}function ne(e){return void 0!==e}function re(e){return ne(e)&&!ue(e)}function ie(e){return e&&"object"===("undefined"==typeof e?"undefined":Te(e))&&9===e.nodeType}function ae(e){return e&&"object"===("undefined"==typeof e?"undefined":Te(e))&&11===e.nodeType}function oe(e){return e&&"object"===("undefined"==typeof e?"undefined":Te(e))&&1===e.nodeType}function se(e){return"function"==typeof e}function ue(e){return null===e}function le(e){return"number"==typeof e}function ce(e){return null!==e&&e===e.window}function he(e){var t="undefined"==typeof e?"undefined":Te(e);return"object"===t&&null!==e||"function"===t}function fe(e){return e&&"object"===("undefined"==typeof e?"undefined":Te(e))&&"function"==typeof e.then}function de(e){return"string"==typeof e||e instanceof String}function ve(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{checkEnv:!0},t="undefined"!=typeof process&&!process.browser;return t&&e.checkEnv&&(t="undefined"!=typeof process.env&&"test"!==process.env.NODE_ENV),t}function pe(){}function ye(e){var t=document.createElement("a");if(t.href=e,":"===t.protocol||!/:/.test(t.href))throw new TypeError(e+" is not a valid URL");return{hash:t.hash,hostname:t.hostname,password:t.password,pathname:"/"===t.pathname[0]?t.pathname:"/"+t.pathname,port:t.port,protocol:t.protocol,search:t.search,username:t.username}}function me(e){if(se(URL)&&URL.length){var t=new URL(e);if(t.port&&t.href.indexOf(t.port)===-1)throw new TypeError(e+" is not a valid URL");return t}return ye(e)}function _e(e){return e=e||[],Array.isArray(e)?e:[e]}function ge(e,t){return function n(){var r=arguments;ke(n),n.id=setTimeout(function(){e.apply(null,r)},t)}}function ke(e){clearTimeout(e.id)}function Ee(e){return{match:e[0],prefix:e[1],name:e[2],paramPattern:e[3],unnamedPattern:e[4],modifier:e[5]}}function be(e){for(var t="",n=0;n<e.length;n++)if(at.isString(e[n]))t+=we(e[n]);else{var r=Se(e[n].pattern);e[n].repeat&&(r+=Se("\\/"+r)+"*"),r=we(e[n].prefix)+("("+r+")"),e[n].optional&&(e[n].partial||(r=Se(r)),r+="?"),t+=r}return new RegExp("^"+Pe(t)+"$")}function Se(e){return"(?:"+e+")"}function we(e){return e.replace(/([.+*?=^!:()[\]|\/\\])/g,"\\$1")}function Pe(e){return e+=/\/$/.test(e)?"?":"\\/?"}function Le(e){if(!at.isString(e))return e;for(var t=e,n=0,r=[],i="",a=0,o=Ct.exec(t);o;){var s=Ee(o);i=t.slice(a,o.index),a=o.index+s.match.length,r.push(i),r.push({name:s.name?s.name:""+n++,partial:t[a]&&t[a]!==s.prefix,prefix:s.prefix||"",pattern:s.paramPattern||s.unnamedPattern||"[^\\/]+",repeat:"*"===s.modifier||"+"===s.modifier,optional:"*"===s.modifier||"?"===s.modifier}),o=Ct.exec(t)}return a<t.length&&r.push(t.substr(a)),r}function Ce(e){return be(Le(e))}function Ae(e,t){var n={},r=Le(e),i=t.match(be(r));if(!i)return null;for(var a=1,o=0;o<r.length;o++)if(!at.isString(r[o])){var s=i[a++];at.isDef(s)&&(r[o].repeat&&(s=s.split("/")),n[r[o].name]=s)}return n}var Te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Re=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},Oe=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),Ne=function Qt(e,t,n){null===e&&(e=Function.prototype);var r=Object.getOwnPropertyDescriptor(e,t);if(void 0===r){var i=Object.getPrototypeOf(e);return null===i?void 0:Qt(i,t,n)}if("value"in r)return r.value;var a=r.get;if(void 0!==a)return a.call(n)},Ie=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},De=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},He=function(){function e(e,t){var n=[],r=!0,i=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(u){i=!0,a=u}finally{try{!r&&s["return"]&&s["return"]()}finally{if(i)throw a}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),xe=function(){function e(){Re(this,e)}return Oe(e,null,[{key:"equal",value:function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}},{key:"firstDefinedValue",value:function(e){for(var t=0;t<e.length;t++)if(void 0!==e[t])return e[t]}},{key:"flatten",value:function(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=0;r<t.length;r++)Array.isArray(t[r])?e.flatten(t[r],n):n.push(t[r]);return n}},{key:"remove",value:function(t,n){var r=t.indexOf(n),i=void 0;return(i=r>=0)&&e.removeAt(t,r),i}},{key:"removeAt",value:function(e,t){return 1===Array.prototype.splice.call(e,t,1).length}},{key:"slice",value:function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=[],i=t;i<n;i++)r.push(e[i]);return r}}]),e}(),Ue={};Ue.throwException=function(e){Ue.nextTick(function(){throw e})},Ue.run=function(e,t){Ue.run.workQueueScheduled_||(Ue.nextTick(Ue.run.processWorkQueue),Ue.run.workQueueScheduled_=!0),Ue.run.workQueue_.push(new Ue.run.WorkItem_(e,t))},Ue.run.workQueueScheduled_=!1,Ue.run.workQueue_=[],Ue.run.processWorkQueue=function(){for(;Ue.run.workQueue_.length;){var e=Ue.run.workQueue_;Ue.run.workQueue_=[];for(var t=0;t<e.length;t++){var n=e[t];try{n.fn.call(n.scope)}catch(r){Ue.throwException(r)}}}Ue.run.workQueueScheduled_=!1},Ue.run.WorkItem_=function(e,t){this.fn=e,this.scope=t},Ue.nextTick=function(e,t){var n=e;t&&(n=e.bind(t)),n=Ue.nextTick.wrapCallback_(n),Ue.nextTick.setImmediate_||("function"==typeof setImmediate&&u({checkEnv:!1})?Ue.nextTick.setImmediate_=setImmediate:Ue.nextTick.setImmediate_=Ue.nextTick.getSetImmediateEmulator_()),Ue.nextTick.setImmediate_(n)},Ue.nextTick.setImmediate_=null,Ue.nextTick.getSetImmediateEmulator_=function(){var e=void 0;if("function"==typeof MessageChannel&&(e=MessageChannel),"undefined"==typeof e&&"undefined"!=typeof window&&window.postMessage&&window.addEventListener&&(e=function(){var e=document.createElement("iframe");e.style.display="none",e.src="",e.title="",document.documentElement.appendChild(e);var t=e.contentWindow,n=t.document;n.open(),n.write(""),n.close();var r="callImmediate"+Math.random(),i=t.location.protocol+"//"+t.location.host,a=function(e){e.origin!==i&&e.data!==r||this.port1.onmessage()}.bind(this);t.addEventListener("message",a,!1),this.port1={},this.port2={postMessage:function(){t.postMessage(r,i)}}}),"undefined"!=typeof e){var t=new e,n={},r=n;return t.port1.onmessage=function(){n=n.next;var e=n.cb;n.cb=null,e()},function(e){r.next={cb:e},r=r.next,t.port2.postMessage(0)}}return"undefined"!=typeof document&&"onreadystatechange"in document.createElement("script")?function(e){var t=document.createElement("script");t.onreadystatechange=function(){t.onreadystatechange=null,t.parentNode.removeChild(t),t=null,e(),e=null},document.documentElement.appendChild(t)}:function(e){setTimeout(e,0)}},Ue.nextTick.wrapCallback_=function(e){return e};var Fe=function(){function e(){Re(this,e),this.disposed_=!1}return Oe(e,[{key:"dispose",value:function(){this.disposed_||(this.disposeInternal(),this.disposed_=!0)}},{key:"disposeInternal",value:function(){}},{key:"isDisposed",value:function(){return this.disposed_}}]),e}(),je=(function(){function e(){Re(this,e)}return Oe(e,null,[{key:"mixin",value:function(e){for(var t=void 0,n=void 0,r=arguments.length,i=Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];for(var o=0;o<i.length;o++){n=i[o];for(t in n)e[t]=n[t]}return e}},{key:"getObjectByName",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window,n=e.split(".");return n.reduce(function(e,t){return e[t]},t)}},{key:"map",value:function(e,t){for(var n={},r=Object.keys(e),i=0;i<r.length;i++)n[r[i]]=t(r[i],e[r[i]]);return n}},{key:"shallowEqual",value:function(e,t){if(e===t)return!0;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=0;i<n.length;i++)if(e[n[i]]!==t[n[i]])return!1;return!0}}]),e}(),function(){function e(){Re(this,e)}return Oe(e,null,[{key:"caseInsensitiveCompare",value:function(e,t){var n=String(e).toLowerCase(),r=String(t).toLowerCase();return n<r?-1:n===r?0:1}},{key:"collapseBreakingSpaces",value:function(e){return e.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")}},{key:"escapeRegex",value:function(e){return String(e).replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")}},{key:"getRandomString",value:function(){var e=2147483648;return Math.floor(Math.random()*e).toString(36)+Math.abs(Math.floor(Math.random()*e)^Date.now()).toString(36)}},{key:"hashCode",value:function(e){for(var t=0,n=0,r=e.length;n<r;n++)t=31*t+e.charCodeAt(n),t%=4294967296;return t}},{key:"replaceInterval",value:function(e,t,n,r){return e.substring(0,t)+r+e.substring(n)}}]),e}()),Me="__metal_data__",qe=function(){function e(){Re(this,e)}return Oe(e,null,[{key:"get",value:function(e,n,r){return e[Me]||(e[Me]={}),n?(!t(e[Me][n])&&t(r)&&(e[Me][n]=r),e[Me][n]):e[Me]}},{key:"has",value:function(e){return!!e[Me]}},{key:"set",value:function(e,n,r){return e[Me]||(e[Me]={}),n&&t(r)?(e[Me][n]=r,e[Me][n]):e[Me]}}]),e}(),Be=function(e){function t(e,n,r){Re(this,t);var i=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return i.emitter_=e,i.event_=n,i.listener_=r,i}return Ie(t,e),Oe(t,[{key:"disposeInternal",value:function(){this.removeListener(),this.emitter_=null,this.listener_=null}},{key:"removeListener",value:function(){this.emitter_.isDisposed()||this.emitter_.removeListener(this.event_,this.listener_)}}]),t}(Fe),Qe=[0],Ve=(function(e){function t(){Re(this,t);var e=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.events_=null,e.listenerHandlers_=null,e.shouldUseFacade_=!1,e}return Ie(t,e),Oe(t,[{key:"addHandler_",value:function(e,t){return e?(Array.isArray(e)||(e=[e]),e.push(t)):e=t,e}},{key:"addListener",value:function(e,t,n){this.validateListener_(t);for(var r=this.toEventsArray_(e),i=0;i<r.length;i++)this.addSingleListener_(r[i],t,n);return new Be(this,e,t)}},{key:"addSingleListener_",value:function(e,t,n,r){this.runListenerHandlers_(e),(n||r)&&(t={"default":n,fn:t,origin:r}),this.events_=this.events_||{},this.events_[e]=this.addHandler_(this.events_[e],t)}},{key:"buildFacade_",value:function(e){if(this.getShouldUseFacade()){var t={preventDefault:function(){t.preventedDefault=!0},target:this,type:e};return t}}},{key:"disposeInternal",value:function(){this.events_=null}},{key:"emit",value:function(e){var t=this.getRawListeners_(e);if(0===t.length)return!1;var n=xe.slice(arguments,1);return this.runListeners_(t,n,this.buildFacade_(e)),!0}},{key:"getRawListeners_",value:function(e){var t=l(this.events_&&this.events_[e]);return t.concat(l(this.events_&&this.events_["*"]))}},{key:"getShouldUseFacade",value:function(){return this.shouldUseFacade_}},{key:"listeners",value:function(e){return this.getRawListeners_(e).map(function(e){return e.fn?e.fn:e})}},{key:"many",value:function(e,t,n){for(var r=this.toEventsArray_(e),i=0;i<r.length;i++)this.many_(r[i],t,n);return new Be(this,e,n)}},{key:"many_",value:function(e,t,n){function r(){0===--t&&i.removeListener(e,r),n.apply(i,arguments)}var i=this;t<=0||i.addSingleListener_(e,r,!1,n)}},{key:"matchesListener_",value:function(e,t){var n=e.fn||e;return n===t||e.origin&&e.origin===t}},{key:"off",value:function(e,t){if(this.validateListener_(t),!this.events_)return this;for(var n=this.toEventsArray_(e),r=0;r<n.length;r++)this.events_[n[r]]=this.removeMatchingListenerObjs_(l(this.events_[n[r]]),t);return this}},{key:"on",value:function(){return this.addListener.apply(this,arguments)}},{key:"onListener",value:function(e){this.listenerHandlers_=this.addHandler_(this.listenerHandlers_,e)}},{key:"once",value:function(e,t){return this.many(e,1,t)}},{key:"removeAllListeners",value:function(e){if(this.events_)if(e)for(var t=this.toEventsArray_(e),n=0;n<t.length;n++)this.events_[t[n]]=null;else this.events_=null;return this}},{key:"removeMatchingListenerObjs_",value:function(e,t){for(var n=[],r=0;r<e.length;r++)this.matchesListener_(e[r],t)||n.push(e[r]);return n.length>0?n:null}},{key:"removeListener",value:function(){return this.off.apply(this,arguments)}},{key:"runListenerHandlers_",value:function(e){var t=this.listenerHandlers_;if(t){t=l(t);for(var n=0;n<t.length;n++)t[n](e)}}},{key:"runListeners_",value:function(e,t,n){n&&t.push(n);for(var r=[],i=0;i<e.length;i++){var a=e[i].fn||e[i];e[i]["default"]?r.push(a):a.apply(this,t)}if(!n||!n.preventedDefault)for(var o=0;o<r.length;o++)r[o].apply(this,t)}},{key:"setShouldUseFacade",value:function(e){return this.shouldUseFacade_=e,this}},{key:"toEventsArray_",value:function(e){return s(e)&&(Qe[0]=e,e=Qe),e}},{key:"validateListener_",value:function(e){if(!i(e))throw new TypeError("Listener must be a function")}}]),t}(Fe),function(e){function t(e,n,r,i){Re(this,t);var a=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return a.blacklist_=r,a.originEmitter_=e,a.pendingEvents_=null,a.proxiedEvents_=null,a.targetEmitter_=n,a.whitelist_=i,a.startProxy_(),a}return Ie(t,e),Oe(t,[{key:"addListener_",value:function(e,t){return this.originEmitter_.on(e,t)}},{key:"disposeInternal",value:function(){this.removeListeners_(),this.proxiedEvents_=null,this.originEmitter_=null,this.targetEmitter_=null}},{key:"emitOnTarget_",value:function(){var e;(e=this.targetEmitter_).emit.apply(e,arguments)}},{key:"proxyEvent",value:function(e){this.shouldProxyEvent_(e)&&this.tryToAddListener_(e)}},{key:"removeListeners_",value:function(){if(this.proxiedEvents_){for(var e=Object.keys(this.proxiedEvents_),t=0;t<e.length;t++)this.proxiedEvents_[e[t]].removeListener();this.proxiedEvents_=null}this.pendingEvents_=null}},{key:"setOriginEmitter",value:function(e){var t=this,n=this.originEmitter_&&this.proxiedEvents_?Object.keys(this.proxiedEvents_):this.pendingEvents_;this.originEmitter_=e,n&&(this.removeListeners_(),n.forEach(function(e){return t.proxyEvent(e)}))}},{key:"shouldProxyEvent_",value:function(e){return!(this.whitelist_&&!this.whitelist_[e])&&((!this.blacklist_||!this.blacklist_[e])&&(!this.proxiedEvents_||!this.proxiedEvents_[e]))}},{key:"startProxy_",value:function(){this.targetEmitter_.onListener(this.proxyEvent.bind(this))}},{key:"tryToAddListener_",value:function(e){this.originEmitter_?(this.proxiedEvents_=this.proxiedEvents_||{},this.proxiedEvents_[e]=this.addListener_(e,this.emitOnTarget_.bind(this,e))):(this.pendingEvents_=this.pendingEvents_||[],this.pendingEvents_.push(e))}}]),t}(Fe)),We=(function(e){function t(){Re(this,t);var e=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.eventHandles_=[],e}return Ie(t,e),Oe(t,[{key:"add",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=0;r<arguments.length;r++)this.eventHandles_.push(t[r])}},{key:"disposeInternal",value:function(){this.eventHandles_=null}},{key:"removeAllListeners",value:function(){for(var e=0;e<this.eventHandles_.length;e++)this.eventHandles_[e].removeListener();this.eventHandles_=[]}}]),t}(Fe),function(e){function t(e,n,r,i){Re(this,t);var a=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n,r));return a.selector_=i,a}return Ie(t,e),Oe(t,[{key:"removeListener",value:function(){var e=qe.get(this.emitter_,"delegating",{}),t=qe.get(this.emitter_,"listeners",{}),n=this.selector_,r=s(n)?e[this.event_].selectors:t,i=s(n)?n:this.event_;xe.remove(r[i]||[],this.listener_),r[i]&&0===r[i].length&&delete r[i]}}]),t}(Be)),Je=function(e){function t(e,n,r,i){Re(this,t);var a=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n,r));return a.capture_=i,a}return Ie(t,e),Oe(t,[{key:"removeListener",value:function(){this.emitter_.removeEventListener(this.event_,this.listener_,this.capture_)}}]),t}(Be),Ye={},$e={},ze={},Ge="__metal_last_container__",Xe={blur:!0,error:!0,focus:!0,invalid:!0,load:!0,scroll:!0},Ke=(function(e){function t(){return Re(this,t),De(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return Ie(t,e),Oe(t,[{key:"addListener_",value:function(e,n){if(this.originEmitter_.addEventListener){if(this.isDelegateEvent_(e)){var r=e.indexOf(":",9),i=e.substring(9,r),a=e.substring(r+1);return E(this.originEmitter_,i,a,n)}return T(this.originEmitter_,e,n)}return Ne(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"addListener_",this).call(this,e,n)}},{key:"isDelegateEvent_",value:function(e){return"delegate:"===e.substr(0,9)}},{key:"isSupportedDomEvent_",value:function(e){return!this.originEmitter_||!this.originEmitter_.addEventListener||(this.isDelegateEvent_(e)&&e.indexOf(":",9)!==-1||j(this.originEmitter_,e))}},{key:"shouldProxyEvent_",value:function(e){return Ne(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"shouldProxyEvent_",this).call(this,e)&&this.isSupportedDomEvent_(e)}}]),t}(Ve),function(){function e(){Re(this,e)}return Oe(e,null,[{key:"checkAnimationEventName",value:function(){return void 0===e.animationEventName_&&(e.animationEventName_={animation:e.checkAnimationEventName_("animation"),transition:e.checkAnimationEventName_("transition")}),e.animationEventName_}},{key:"checkAnimationEventName_",value:function(t){var n=["Webkit","MS","O",""],r=je.replaceInterval(t,0,1,t.substring(0,1).toUpperCase()),i=[r+"End",r+"End",r+"End",t+"end"];e.animationElement_||(e.animationElement_=document.createElement("div"));for(var a=0;a<n.length;a++)if(void 0!==e.animationElement_.style[n[a]+r])return n[a].toLowerCase()+i[a];return t+"end"}},{key:"checkAttrOrderChange",value:function(){if(void 0===e.attrOrderChange_){var t='<div data-component="" data-ref=""></div>',n=document.createElement("div");_(n,t),e.attrOrderChange_=t!==n.innerHTML}return e.attrOrderChange_}}]),e}());Ke.animationElement_=void 0,Ke.animationEventName_=void 0,Ke.attrOrderChange_=void 0;var Ze=function(){function e(){Re(this,e)}return Oe(e,null,[{key:"run",value:function(e,t){var n=document.createElement("script");return n.text=e,t?t(n):document.head.appendChild(n),w(n),n}},{key:"runFile",value:function(e,t,n){var r=document.createElement("script");r.src=e;var i=function(){w(r),t&&t()};return R(r,"load",i),R(r,"error",i),n?n(r):document.head.appendChild(r),r}},{key:"runScript",value:function(t,n,r){var i=function(){n&&n()};return t.type&&"text/javascript"!==t.type?void Ue.nextTick(i):(w(t),t.src?e.runFile(t.src,n,r):(Ue.nextTick(i),e.run(t.text,r)))}},{key:"runScriptsInElement",value:function(t,n,r){var i=t.querySelectorAll("script");i.length?e.runScriptsInOrder(i,0,n,r):n&&Ue.nextTick(n)}},{key:"runScriptsInOrder",value:function(t,n,r,i){e.runScript(t.item(n),function(){n<t.length-1?e.runScriptsInOrder(t,n+1,r,i):r&&Ue.nextTick(r)},i)}}]),e}(),et=function(){function e(){Re(this,e)}return Oe(e,null,[{key:"run",value:function(e,t){var n=document.createElement("style");return n.innerHTML=e,t?t(n):document.head.appendChild(n),n}},{key:"runFile",value:function(t,n,r){var i=document.createElement("link");return i.rel="stylesheet",i.href=t,e.runStyle(i,n,r),i}},{key:"runStyle",value:function(e,t,n){var r=function(){t&&t()};return e.rel&&"stylesheet"!==e.rel&&"canonical"!==e.rel&&"alternate"!==e.rel?void Ue.nextTick(r):("STYLE"===e.tagName||"canonical"===e.rel||"alternate"===e.rel?Ue.nextTick(r):(R(e,"load",r),R(e,"error",r)),n?n(e):document.head.appendChild(e),e)}},{key:"runStylesInElement",value:function(t,n,r){var i=t.querySelectorAll("style,link");if(0===i.length&&n)return void Ue.nextTick(n);for(var a=0,o=function(){n&&++a===i.length&&Ue.nextTick(n)},s=0;s<i.length;s++)e.runStyle(i[s],o,r)}}]),e}();u()||W();var tt=tt||{};"undefined"!=typeof window&&(tt.window=window),"undefined"!=typeof document&&(tt.document=document);var nt=void 0,rt=1,it="core_"+(1e9*Math.random()>>>0),at=Object.freeze({UID_PROPERTY:it,abstractMethod:J,disableCompatibilityMode:Y,enableCompatibilityMode:$,getCompatibilityModeData:z,getFunctionName:X,getStaticProperty:K,getUid:Z,identityFunction:ee,isBoolean:te,isDef:ne,isDefAndNotNull:re,isDocument:ie,isDocumentFragment:ae,isElement:oe,isFunction:se,isNull:ue,isNumber:le,isWindow:ce,isObject:he,isPromise:fe,isString:de,isServerSide:ve,nullFunction:pe}),ot=function(){function e(){Re(this,e)}return Oe(e,null,[{key:"equal",value:function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}},{key:"firstDefinedValue",value:function(e){for(var t=0;t<e.length;t++)if(void 0!==e[t])return e[t]}},{key:"flatten",value:function(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=0;r<t.length;r++)Array.isArray(t[r])?e.flatten(t[r],n):n.push(t[r]);return n}},{key:"remove",value:function(t,n){var r=t.indexOf(n),i=void 0;return(i=r>=0)&&e.removeAt(t,r),i}},{key:"removeAt",value:function(e,t){return 1===Array.prototype.splice.call(e,t,1).length}},{key:"slice",value:function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=[],i=t;i<n;i++)r.push(e[i]);return r}}]),e}(),st={};st.throwException=function(e){st.nextTick(function(){throw e})},st.run=function(e,t){st.run.workQueueScheduled_||(st.nextTick(st.run.processWorkQueue),st.run.workQueueScheduled_=!0),st.run.workQueue_.push(new st.run.WorkItem_(e,t))},st.run.workQueueScheduled_=!1,st.run.workQueue_=[],st.run.processWorkQueue=function(){for(;st.run.workQueue_.length;){var e=st.run.workQueue_;st.run.workQueue_=[];for(var t=0;t<e.length;t++){var n=e[t];try{n.fn.call(n.scope)}catch(r){st.throwException(r)}}}st.run.workQueueScheduled_=!1},st.run.WorkItem_=function(e,t){this.fn=e,this.scope=t},st.nextTick=function(e,t){var n=e;t&&(n=e.bind(t)),n=st.nextTick.wrapCallback_(n),st.nextTick.setImmediate_||("function"==typeof setImmediate&&ve({checkEnv:!1})?st.nextTick.setImmediate_=setImmediate:st.nextTick.setImmediate_=st.nextTick.getSetImmediateEmulator_()),st.nextTick.setImmediate_(n)},st.nextTick.setImmediate_=null,st.nextTick.getSetImmediateEmulator_=function(){var e=void 0;if("function"==typeof MessageChannel&&(e=MessageChannel),"undefined"==typeof e&&"undefined"!=typeof window&&window.postMessage&&window.addEventListener&&(e=function(){var e=document.createElement("iframe");e.style.display="none",e.src="",e.title="",document.documentElement.appendChild(e);var t=e.contentWindow,n=t.document;n.open(),n.write(""),n.close();var r="callImmediate"+Math.random(),i=t.location.protocol+"//"+t.location.host,a=function(e){e.origin!==i&&e.data!==r||this.port1.onmessage()}.bind(this);t.addEventListener("message",a,!1),this.port1={},this.port2={postMessage:function(){t.postMessage(r,i)}}}),"undefined"!=typeof e){var t=new e,n={},r=n;return t.port1.onmessage=function(){n=n.next;var e=n.cb;n.cb=null,e()},function(e){r.next={cb:e},r=r.next,t.port2.postMessage(0)}}return"undefined"!=typeof document&&"onreadystatechange"in document.createElement("script")?function(e){var t=document.createElement("script");t.onreadystatechange=function(){t.onreadystatechange=null,t.parentNode.removeChild(t),t=null,e(),e=null},document.documentElement.appendChild(t)}:function(e){setTimeout(e,0)}},st.nextTick.wrapCallback_=function(e){return e};var ut=function(){function e(){Re(this,e),this.disposed_=!1}return Oe(e,[{key:"dispose",value:function(){this.disposed_||(this.disposeInternal(),this.disposed_=!0)}},{key:"disposeInternal",value:function(){}},{key:"isDisposed",value:function(){return this.disposed_}}]),e}(),lt=function(){function e(){Re(this,e)}return Oe(e,null,[{key:"mixin",value:function(e){for(var t=void 0,n=void 0,r=arguments.length,i=Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];for(var o=0;o<i.length;o++){n=i[o];for(t in n)e[t]=n[t]}return e}},{key:"getObjectByName",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window,n=e.split(".");return n.reduce(function(e,t){return e[t]},t)}},{key:"map",value:function(e,t){for(var n={},r=Object.keys(e),i=0;i<r.length;i++)n[r[i]]=t(r[i],e[r[i]]);return n}},{key:"shallowEqual",value:function(e,t){if(e===t)return!0;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=0;i<n.length;i++)if(e[n[i]]!==t[n[i]])return!1;return!0}}]),e}(),ct=function(){function e(){Re(this,e)}return Oe(e,null,[{key:"caseInsensitiveCompare",value:function(e,t){var n=String(e).toLowerCase(),r=String(t).toLowerCase();return n<r?-1:n===r?0:1}},{key:"collapseBreakingSpaces",value:function(e){return e.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")}},{key:"escapeRegex",value:function(e){return String(e).replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")}},{key:"getRandomString",value:function(){var e=2147483648;return Math.floor(Math.random()*e).toString(36)+Math.abs(Math.floor(Math.random()*e)^Date.now()).toString(36)}},{key:"hashCode",value:function(e){for(var t=0,n=0,r=e.length;n<r;n++)t=31*t+e.charCodeAt(n),t%=4294967296;return t}},{key:"replaceInterval",value:function(e,t,n,r){return e.substring(0,t)+r+e.substring(n)}}]),e}(),ht=Object.create,ft=function(e){function t(){Re(this,t);var e=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.keys=ht(null),e.values=ht(null),e}return Ie(t,e),Oe(t,[{key:"add",value:function(e,t){return this.keys[e.toLowerCase()]=e,this.values[e.toLowerCase()]=this.values[e.toLowerCase()]||[],
this.values[e.toLowerCase()].push(t),this}},{key:"clear",value:function(){return this.keys=ht(null),this.values=ht(null),this}},{key:"contains",value:function(e){return e.toLowerCase()in this.values}},{key:"disposeInternal",value:function(){this.values=null}},{key:"get",value:function(e){var t=this.values[e.toLowerCase()];if(t)return t[0]}},{key:"getAll",value:function(e){return this.values[e.toLowerCase()]}},{key:"isEmpty",value:function(){return 0===this.size()}},{key:"names",value:function(){var e=this;return Object.keys(this.values).map(function(t){return e.keys[t]})}},{key:"remove",value:function(e){return delete this.keys[e.toLowerCase()],delete this.values[e.toLowerCase()],this}},{key:"set",value:function(e,t){return this.keys[e.toLowerCase()]=e,this.values[e.toLowerCase()]=[t],this}},{key:"size",value:function(){return this.names().length}},{key:"toString",value:function(){return JSON.stringify(this.values)}}],[{key:"fromObject",value:function(e){for(var n=new t,r=Object.keys(e),i=0;i<r.length;i++)n.set(r[i],e[r[i]]);return n}}]),t}(ut),dt=function(){function e(t){Re(this,e),this.value_=t,this.parent_=null,this.children_=null}return Oe(e,[{key:"addChild",value:function(e){vt(e),e.setParent(this),this.children_=this.children_||[],this.children_.push(e)}},{key:"contains",value:function(e){for(var t=e.getParent();t;){if(t===this)return!0;t=t.getParent()}return!1}},{key:"getAncestors",value:function(){for(var e=[],t=this.getParent();t;)e.push(t),t=t.getParent();return e}},{key:"getChildAt",value:function(e){return this.getChildren()[e]||null}},{key:"getChildren",value:function(){return this.children_||e.EMPTY_ARRAY}},{key:"getChildCount",value:function(){return this.getChildren().length}},{key:"getDepth",value:function(){for(var e=0,t=this;t.getParent();)e++,t=t.getParent();return e}},{key:"getParent",value:function(){return this.parent_}},{key:"getRoot",value:function(){for(var e=this;e.getParent();)e=e.getParent();return e}},{key:"getValue",value:function(){return this.value_}},{key:"isLeaf",value:function(){return!this.getChildCount()}},{key:"removeChild",value:function(e){return ot.remove(this.getChildren(),e)?e:null}},{key:"setParent",value:function(e){this.parent_=e}},{key:"traverse",value:function(e,t){e&&e(this),this.getChildren().forEach(function(n){return n.traverse(e,t)}),t&&t(this)}}]),e}();dt.EMPTY_ARRAY=[];var vt=function(e){if(e.getParent())throw new Error("Cannot add child with parent.")},pt=me,yt=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";Re(this,e),this.url=e.parse(this.maybeAddProtocolAndHostname_(t))}return Oe(e,[{key:"addParametersFromMultiMap",value:function(e){var t=this;return e.names().forEach(function(n){e.getAll(n).forEach(function(e){t.addParameterValue(n,e)})}),this}},{key:"addParameterValue",value:function(e,t){return this.ensureQueryInitialized_(),ne(t)&&(t=String(t)),this.query.add(e,t),this}},{key:"addParameterValues",value:function(e,t){var n=this;return t.forEach(function(t){return n.addParameterValue(e,t)}),this}},{key:"ensureQueryInitialized_",value:function(){var t=this;if(!this.query){this.query=new ft;var n=this.url.search;n&&n.substring(1).split("&").forEach(function(n){var r=n.split("="),i=He(r,2),a=i[0],o=i[1];ne(o)&&(o=e.urlDecode(o)),t.addParameterValue(a,o)})}}},{key:"getHash",value:function(){return this.url.hash||""}},{key:"getHost",value:function(){var e=this.getHostname();if(e){var t=this.getPort();t&&"80"!==t&&(e+=":"+t)}return e}},{key:"getHostname",value:function(){var t=this.url.hostname;return t===e.HOSTNAME_PLACEHOLDER?"":t}},{key:"getOrigin",value:function(){var e=this.getHost();return e?this.getProtocol()+"//"+e:""}},{key:"getParameterValue",value:function(e){return this.ensureQueryInitialized_(),this.query.get(e)}},{key:"getParameterValues",value:function(e){return this.ensureQueryInitialized_(),this.query.getAll(e)}},{key:"getParameterNames",value:function(){return this.ensureQueryInitialized_(),this.query.names()}},{key:"getPathname",value:function(){return this.url.pathname}},{key:"getPort",value:function(){return this.url.port}},{key:"getProtocol",value:function(){return this.url.protocol}},{key:"getSearch",value:function(){var e=this,t="",n="";return this.getParameterNames().forEach(function(t){e.getParameterValues(t).forEach(function(e){n+=t,ne(e)&&(n+="="+encodeURIComponent(e)),n+="&"})}),n=n.slice(0,-1),n&&(t+="?"+n),t}},{key:"hasParameter",value:function(e){return this.ensureQueryInitialized_(),this.query.contains(e)}},{key:"makeUnique",value:function(){return this.setParameterValue(e.RANDOM_PARAM,ct.getRandomString()),this}},{key:"maybeAddProtocolAndHostname_",value:function(t){var n=t;if(t.indexOf("://")===-1&&0!==t.indexOf("javascript:"))switch(n=e.DEFAULT_PROTOCOL,"/"===t[0]&&"/"===t[1]||(n+="//"),t.charAt(0)){case".":case"?":case"#":n+=e.HOSTNAME_PLACEHOLDER,n+="/",n+=t;break;case"":case"/":"/"!==t[1]&&(n+=e.HOSTNAME_PLACEHOLDER),n+=t;break;default:n+=t}return n}},{key:"removeParameter",value:function(e){return this.ensureQueryInitialized_(),this.query.remove(e),this}},{key:"removeUnique",value:function(){return this.removeParameter(e.RANDOM_PARAM),this}},{key:"setHash",value:function(e){return this.url.hash=e,this}},{key:"setHostname",value:function(e){return this.url.hostname=e,this}},{key:"setParameterValue",value:function(e,t){return this.removeParameter(e),this.addParameterValue(e,t),this}},{key:"setParameterValues",value:function(e,t){var n=this;return this.removeParameter(e),t.forEach(function(t){return n.addParameterValue(e,t)}),this}},{key:"setPathname",value:function(e){return this.url.pathname=e,this}},{key:"setPort",value:function(e){return this.url.port=e,this}},{key:"setProtocol",value:function(e){return this.url.protocol=e,":"!==this.url.protocol[this.url.protocol.length-1]&&(this.url.protocol+=":"),this}},{key:"toString",value:function(){var e="",t=this.getHost();return t&&(e+=this.getProtocol()+"//"),e+=t+this.getPathname()+this.getSearch()+this.getHash()}}],[{key:"getParseFn",value:function(){return pt}},{key:"parse",value:function(e){return pt(e)}},{key:"setParseFn",value:function(e){pt=e}},{key:"joinPaths",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return"/"===e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),n=n.map(function(e){return"/"===e.charAt(0)?e.substring(1):e}),[e].concat(n).join("/").replace(/\/$/,"")}},{key:"urlDecode",value:function(e){return decodeURIComponent(e.replace(/\+/g," "))}}]),e}(),mt=function(){return"undefined"!=typeof window&&window.location&&window.location.protocol&&0===window.location.protocol.indexOf("https")};yt.DEFAULT_PROTOCOL=mt()?"https:":"http:",yt.HOSTNAME_PLACEHOLDER="hostname"+Date.now(),yt.RANDOM_PARAM="zx";var _t=function(){function e(){Re(this,e)}return Oe(e,null,[{key:"copyNodeAttributes",value:function(e,t){Array.prototype.slice.call(e.attributes).forEach(function(e){return t.setAttribute(e.name,e.value)})}},{key:"getCurrentBrowserPath",value:function(){return this.getCurrentBrowserPathWithoutHash()+tt.window.location.hash}},{key:"getCurrentBrowserPathWithoutHash",value:function(){return tt.window.location.pathname+tt.window.location.search}},{key:"getNodeOffset",value:function(e){var t=0,n=0;do t+=e.offsetLeft,n+=e.offsetTop,e=e.offsetParent;while(e);return{offsetLeft:t,offsetTop:n}}},{key:"getUrlPath",value:function(e){var t=new yt(e);return t.getPathname()+t.getSearch()+t.getHash()}},{key:"getUrlPathWithoutHash",value:function(e){var t=new yt(e);return t.getPathname()+t.getSearch()}},{key:"getUrlPathWithoutHashAndSearch",value:function(e){var t=new yt(e);return t.getPathname()}},{key:"isCurrentBrowserPath",value:function(t){if(t){var n=this.getCurrentBrowserPathWithoutHash();return e.getUrlPathWithoutHash(t)===this.getUrlPath(n)}return!1}},{key:"isHtml5HistorySupported",value:function(){return!(!tt.window.history||!tt.window.history.pushState)}},{key:"isWebUri",value:function(e){try{return new yt(e)}catch(t){return!1}}},{key:"clearNodeAttributes",value:function(e){Array.prototype.slice.call(e.attributes).forEach(function(t){return e.removeAttribute(t.name)})}},{key:"removeElementsFromDocument",value:function(e){e.forEach(function(e){return w(e)})}},{key:"removePathTrailingSlash",value:function(e){var t=e?e.length:0;return t>1&&"/"===e[t-1]&&(e=e.substr(0,t-1)),e}},{key:"setElementWithRandomHref",value:function(e){return e.href=e.href+"?q="+Math.random(),e}},{key:"setReferrer",value:function(e){Object.defineProperty(tt.document,"referrer",{configurable:!0,get:function(){return e}})}}]),e}(),gt={basePath:"data-senna-base-path",linkSelector:"data-senna-link-selector",loadingCssClass:"data-senna-loading-css-class",senna:"data-senna",dispatch:"data-senna-dispatch",surface:"data-senna-surface",updateScrollPosition:"data-senna-update-scroll-position"},kt=function(e){function t(e,n,r){Re(this,t);var i=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return i.emitter_=e,i.event_=n,i.listener_=r,i}return Ie(t,e),Oe(t,[{key:"disposeInternal",value:function(){this.removeListener(),this.emitter_=null,this.listener_=null}},{key:"removeListener",value:function(){this.emitter_.isDisposed()||this.emitter_.removeListener(this.event_,this.listener_)}}]),t}(ut),Et=[0],bt=function(e){function t(){Re(this,t);var e=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.events_=null,e.listenerHandlers_=null,e.shouldUseFacade_=!1,e}return Ie(t,e),Oe(t,[{key:"addHandler_",value:function(e,t){return e?(Array.isArray(e)||(e=[e]),e.push(t)):e=t,e}},{key:"addListener",value:function(e,t,n){this.validateListener_(t);for(var r=this.toEventsArray_(e),i=0;i<r.length;i++)this.addSingleListener_(r[i],t,n);return new kt(this,e,t)}},{key:"addSingleListener_",value:function(e,t,n,r){this.runListenerHandlers_(e),(n||r)&&(t={"default":n,fn:t,origin:r}),this.events_=this.events_||{},this.events_[e]=this.addHandler_(this.events_[e],t)}},{key:"buildFacade_",value:function(e){if(this.getShouldUseFacade()){var t={preventDefault:function(){t.preventedDefault=!0},target:this,type:e};return t}}},{key:"disposeInternal",value:function(){this.events_=null}},{key:"emit",value:function(e){var t=this.getRawListeners_(e);if(0===t.length)return!1;var n=ot.slice(arguments,1);return this.runListeners_(t,n,this.buildFacade_(e)),!0}},{key:"getRawListeners_",value:function(e){var t=_e(this.events_&&this.events_[e]);return t.concat(_e(this.events_&&this.events_["*"]))}},{key:"getShouldUseFacade",value:function(){return this.shouldUseFacade_}},{key:"listeners",value:function(e){return this.getRawListeners_(e).map(function(e){return e.fn?e.fn:e})}},{key:"many",value:function(e,t,n){for(var r=this.toEventsArray_(e),i=0;i<r.length;i++)this.many_(r[i],t,n);return new kt(this,e,n)}},{key:"many_",value:function(e,t,n){function r(){0===--t&&i.removeListener(e,r),n.apply(i,arguments)}var i=this;t<=0||i.addSingleListener_(e,r,!1,n)}},{key:"matchesListener_",value:function(e,t){var n=e.fn||e;return n===t||e.origin&&e.origin===t}},{key:"off",value:function(e,t){if(this.validateListener_(t),!this.events_)return this;for(var n=this.toEventsArray_(e),r=0;r<n.length;r++)this.events_[n[r]]=this.removeMatchingListenerObjs_(_e(this.events_[n[r]]),t);return this}},{key:"on",value:function(){return this.addListener.apply(this,arguments)}},{key:"onListener",value:function(e){this.listenerHandlers_=this.addHandler_(this.listenerHandlers_,e)}},{key:"once",value:function(e,t){return this.many(e,1,t)}},{key:"removeAllListeners",value:function(e){if(this.events_)if(e)for(var t=this.toEventsArray_(e),n=0;n<t.length;n++)this.events_[t[n]]=null;else this.events_=null;return this}},{key:"removeMatchingListenerObjs_",value:function(e,t){for(var n=[],r=0;r<e.length;r++)this.matchesListener_(e[r],t)||n.push(e[r]);return n.length>0?n:null}},{key:"removeListener",value:function(){return this.off.apply(this,arguments)}},{key:"runListenerHandlers_",value:function(e){var t=this.listenerHandlers_;if(t){t=_e(t);for(var n=0;n<t.length;n++)t[n](e)}}},{key:"runListeners_",value:function(e,t,n){n&&t.push(n);for(var r=[],i=0;i<e.length;i++){var a=e[i].fn||e[i];e[i]["default"]?r.push(a):a.apply(this,t)}if(!n||!n.preventedDefault)for(var o=0;o<r.length;o++)r[o].apply(this,t)}},{key:"setShouldUseFacade",value:function(e){return this.shouldUseFacade_=e,this}},{key:"toEventsArray_",value:function(e){return de(e)&&(Et[0]=e,e=Et),e}},{key:"validateListener_",value:function(e){if(!se(e))throw new TypeError("Listener must be a function")}}]),t}(ut),St=(function(e){function t(e,n,r,i){Re(this,t);var a=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return a.blacklist_=r,a.originEmitter_=e,a.pendingEvents_=null,a.proxiedEvents_=null,a.targetEmitter_=n,a.whitelist_=i,a.startProxy_(),a}return Ie(t,e),Oe(t,[{key:"addListener_",value:function(e,t){return this.originEmitter_.on(e,t)}},{key:"disposeInternal",value:function(){this.removeListeners_(),this.proxiedEvents_=null,this.originEmitter_=null,this.targetEmitter_=null}},{key:"emitOnTarget_",value:function(){var e;(e=this.targetEmitter_).emit.apply(e,arguments)}},{key:"proxyEvent",value:function(e){this.shouldProxyEvent_(e)&&this.tryToAddListener_(e)}},{key:"removeListeners_",value:function(){if(this.proxiedEvents_){for(var e=Object.keys(this.proxiedEvents_),t=0;t<e.length;t++)this.proxiedEvents_[e[t]].removeListener();this.proxiedEvents_=null}this.pendingEvents_=null}},{key:"setOriginEmitter",value:function(e){var t=this,n=this.originEmitter_&&this.proxiedEvents_?Object.keys(this.proxiedEvents_):this.pendingEvents_;this.originEmitter_=e,n&&(this.removeListeners_(),n.forEach(function(e){return t.proxyEvent(e)}))}},{key:"shouldProxyEvent_",value:function(e){return!(this.whitelist_&&!this.whitelist_[e])&&((!this.blacklist_||!this.blacklist_[e])&&(!this.proxiedEvents_||!this.proxiedEvents_[e]))}},{key:"startProxy_",value:function(){this.targetEmitter_.onListener(this.proxyEvent.bind(this))}},{key:"tryToAddListener_",value:function(e){this.originEmitter_?(this.proxiedEvents_=this.proxiedEvents_||{},this.proxiedEvents_[e]=this.addListener_(e,this.emitOnTarget_.bind(this,e))):(this.pendingEvents_=this.pendingEvents_||[],this.pendingEvents_.push(e))}}]),t}(ut),function(e){function t(){Re(this,t);var e=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.eventHandles_=[],e}return Ie(t,e),Oe(t,[{key:"add",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=0;r<arguments.length;r++)this.eventHandles_.push(t[r])}},{key:"disposeInternal",value:function(){this.eventHandles_=null}},{key:"removeAllListeners",value:function(){for(var e=0;e<this.eventHandles_.length;e++)this.eventHandles_[e].removeListener();this.eventHandles_=[]}}]),t}(ut)),wt=function(){};wt.prototype.then=function(){},wt.IMPLEMENTED_BY_PROP="$goog_Thenable",wt.addImplementation=function(e){e.prototype.then=e.prototype.then,e.prototype.$goog_Thenable=!0},wt.isImplementedBy=function(e){if(!e)return!1;try{return!!e.$goog_Thenable}catch(t){return!1}};var Pt=function(e){var t=Array.prototype.slice.call(arguments,1);return function(){var n=t.slice();return n.push.apply(n,arguments),e.apply(this,n)}},Lt=function Vt(e,t){this.state_=Vt.State_.PENDING,this.result_=void 0,this.parent_=null,this.callbackEntries_=null,this.executing_=!1,Vt.UNHANDLED_REJECTION_DELAY>0?this.unhandledRejectionId_=0:0===Vt.UNHANDLED_REJECTION_DELAY&&(this.hadUnhandledRejection_=!1);try{var n=this;e.call(t,function(e){n.resolve_(Vt.State_.FULFILLED,e)},function(e){n.resolve_(Vt.State_.REJECTED,e)})}catch(r){this.resolve_(Vt.State_.REJECTED,r)}};Lt.UNHANDLED_REJECTION_DELAY=0,Lt.State_={PENDING:0,BLOCKED:1,FULFILLED:2,REJECTED:3},Lt.CallbackEntry_=null,Lt.resolve=function(e){return new Lt(function(t){t(e)})},Lt.reject=function(e){return new Lt(function(t,n){n(e)})},Lt.race=function(e){return new Lt(function(t,n){e.length||t(void 0);for(var r,i=0;r=e[i];i++)r.then(t,n)})},Lt.all=function(e){return new Lt(function(t,n){var r=e.length,i=[];if(!r)return void t(i);for(var a,o=function(e,n){r--,i[e]=n,0===r&&t(i)},s=function(e){n(e)},u=0;a=e[u];u++)a.then(Pt(o,u),s)})},Lt.firstFulfilled=function(e){return new Lt(function(t,n){var r=e.length,i=[];if(!r)return void t(void 0);for(var a,o=function(e){t(e)},s=function(e,t){r--,i[e]=t,0===r&&n(i)},u=0;a=e[u];u++)a.then(o,Pt(s,u))})},Lt.prototype.then=function(e,t,n){return this.addChildPromise_(se(e)?e:null,se(t)?t:null,n)},wt.addImplementation(Lt),Lt.prototype.thenAlways=function(e,t){var n=function(){try{e.call(t)}catch(n){Lt.handleRejection_.call(null,n)}};return this.addCallbackEntry_({child:null,onRejected:n,onFulfilled:n}),this},Lt.prototype.thenCatch=function(e,t){return this.addChildPromise_(null,e,t)},Lt.prototype["catch"]=Lt.prototype.thenCatch,Lt.prototype.cancel=function(e){this.state_===Lt.State_.PENDING&&st.run(function(){var t=new Lt.CancellationError(e);t.IS_CANCELLATION_ERROR=!0,this.cancelInternal_(t)},this)},Lt.prototype.cancelInternal_=function(e){this.state_===Lt.State_.PENDING&&(this.parent_?this.parent_.cancelChild_(this,e):this.resolve_(Lt.State_.REJECTED,e))},Lt.prototype.cancelChild_=function(e,t){if(this.callbackEntries_){for(var n,r=0,i=-1,a=0;n=this.callbackEntries_[a];a++){var o=n.child;if(o&&(r++,o===e&&(i=a),i>=0&&r>1))break}if(i>=0)if(this.state_===Lt.State_.PENDING&&1===r)this.cancelInternal_(t);else{var s=this.callbackEntries_.splice(i,1)[0];this.executeCallback_(s,Lt.State_.REJECTED,t)}}},Lt.prototype.addCallbackEntry_=function(e){this.callbackEntries_&&this.callbackEntries_.length||this.state_!==Lt.State_.FULFILLED&&this.state_!==Lt.State_.REJECTED||this.scheduleCallbacks_(),this.callbackEntries_||(this.callbackEntries_=[]),this.callbackEntries_.push(e)},Lt.prototype.addChildPromise_=function(e,t,n){var r={child:null,onFulfilled:null,onRejected:null};return r.child=new Lt(function(i,a){r.onFulfilled=e?function(t){try{var r=e.call(n,t);i(r)}catch(o){a(o)}}:i,r.onRejected=t?function(e){try{var r=t.call(n,e);!ne(r)&&e.IS_CANCELLATION_ERROR?a(e):i(r)}catch(o){a(o)}}:a}),r.child.parent_=this,this.addCallbackEntry_(r),r.child},Lt.prototype.unblockAndFulfill_=function(e){if(this.state_!==Lt.State_.BLOCKED)throw new Error("CancellablePromise is not blocked.");this.state_=Lt.State_.PENDING,this.resolve_(Lt.State_.FULFILLED,e)},Lt.prototype.unblockAndReject_=function(e){if(this.state_!==Lt.State_.BLOCKED)throw new Error("CancellablePromise is not blocked.");this.state_=Lt.State_.PENDING,this.resolve_(Lt.State_.REJECTED,e)},Lt.prototype.resolve_=function(e,t){if(this.state_===Lt.State_.PENDING){if(this===t)e=Lt.State_.REJECTED,t=new TypeError("CancellablePromise cannot resolve to itself");else{if(wt.isImplementedBy(t))return t=t,this.state_=Lt.State_.BLOCKED,void t.then(this.unblockAndFulfill_,this.unblockAndReject_,this);if(he(t))try{var n=t.then;if(se(n))return void this.tryThen_(t,n)}catch(r){e=Lt.State_.REJECTED,t=r}}this.result_=t,this.state_=e,this.scheduleCallbacks_(),e!==Lt.State_.REJECTED||t.IS_CANCELLATION_ERROR||Lt.addUnhandledRejection_(this,t)}},Lt.prototype.tryThen_=function(e,t){this.state_=Lt.State_.BLOCKED;var n=this,r=!1,i=function(e){r||(r=!0,n.unblockAndFulfill_(e))},a=function(e){r||(r=!0,n.unblockAndReject_(e))};try{t.call(e,i,a)}catch(o){a(o)}},Lt.prototype.scheduleCallbacks_=function(){this.executing_||(this.executing_=!0,st.run(this.executeCallbacks_,this))},Lt.prototype.executeCallbacks_=function(){for(;this.callbackEntries_&&this.callbackEntries_.length;){var e=this.callbackEntries_;this.callbackEntries_=[];for(var t=0;t<e.length;t++)this.executeCallback_(e[t],this.state_,this.result_)}this.executing_=!1},Lt.prototype.executeCallback_=function(e,t,n){t===Lt.State_.FULFILLED?e.onFulfilled(n):(this.removeUnhandledRejection_(),e.onRejected(n))},Lt.prototype.removeUnhandledRejection_=function(){var e;if(Lt.UNHANDLED_REJECTION_DELAY>0)for(e=this;e&&e.unhandledRejectionId_;e=e.parent_)clearTimeout(e.unhandledRejectionId_),e.unhandledRejectionId_=0;else if(0===Lt.UNHANDLED_REJECTION_DELAY)for(e=this;e&&e.hadUnhandledRejection_;e=e.parent_)e.hadUnhandledRejection_=!1},Lt.addUnhandledRejection_=function(e,t){Lt.UNHANDLED_REJECTION_DELAY>0?e.unhandledRejectionId_=setTimeout(function(){Lt.handleRejection_.call(null,t)},Lt.UNHANDLED_REJECTION_DELAY):0===Lt.UNHANDLED_REJECTION_DELAY&&(e.hadUnhandledRejection_=!0,st.run(function(){e.hadUnhandledRejection_&&Lt.handleRejection_.call(null,t)}))},Lt.handleRejection_=st.throwException,Lt.setUnhandledRejectionHandler=function(e){Lt.handleRejection_=e},Lt.CancellationError=function(e){function t(e){Re(this,t);var n=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return e&&(n.message=e),n}return Ie(t,e),t}(Error),Lt.CancellationError.prototype.name="cancel";var Ct=/([\/])?(?:(?:\:(\w+)(?:\(((?:\\.|[^\\()])*)\))?|\(((?:\\.|[^\\()])+)\))([+*?])?)/g,At=function(){function e(t,n){if(Re(this,e),!re(t))throw new Error("Route path not specified.");if(!se(n))throw new Error("Route handler is not a function.");this.handler=n,this.path=t}return Oe(e,[{key:"buildParsedData_",value:function(){if(!this.parsedData_){var e=Le(this.path),t=Ce(e);this.parsedData_={regex:t,tokens:e}}return this.parsedData_}},{key:"extractParams",value:function(e){return de(this.path)?Ae(this.buildParsedData_().tokens,e):{}}},{key:"getHandler",value:function(){return this.handler}},{key:"getPath",value:function(){return this.path}},{key:"matchesPath",value:function(e){var t=this.path;return se(t)?t(e):(de(t)&&(t=this.buildParsedData_().regex),t instanceof RegExp&&e.search(t)>-1)}}]),e}(),Tt=function(e){function t(){Re(this,t);var e=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.cache=null,e.cacheable=!1,e}return Ie(t,e),Oe(t,[{key:"addCache",value:function(e){return this.cacheable&&(this.cache=e),this}},{key:"clearCache",value:function(){return this.cache=null,this}},{key:"disposeInternal",value:function(){this.clearCache()}},{key:"getCache",value:function(){return this.cache}},{key:"isCacheable",value:function(){return this.cacheable}},{key:"setCacheable",value:function(e){e||this.clearCache(),this.cacheable=e}}]),t}(ut),Rt=function(e){function t(){Re(this,t);var e=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.id=e.makeId_(Z()),e.metas=null,e.title=null,e}return Ie(t,e),Oe(t,[{key:"activate",value:function(){}},{key:"beforeActivate",value:function(){}},{key:"beforeDeactivate",value:function(){}},{key:"beforeUpdateHistoryPath",value:function(e){return e}},{key:"beforeUpdateHistoryState",value:function(e){return e}},{key:"deactivate",value:function(){}},{key:"disposeInternal",value:function(){Ne(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"disposeInternal",this).call(this)}},{key:"evaluateScripts",value:function(e){return Object.keys(e).forEach(function(t){e[t].activeChild&&Ze.runScriptsInElement(e[t].activeChild)}),Lt.resolve()}},{key:"evaluateStyles",value:function(){return Lt.resolve()}},{key:"flip",value:function(e){var t=this,n=[];return Object.keys(e).forEach(function(r){var i=e[r],a=i.show(t.id);n.push(a)}),Lt.all(n)}},{key:"getId",value:function(){return this.id}},{key:"getMetas",value:function(){return this.metas}},{key:"getSurfaceContent",value:function(){}},{key:"getTitle",value:function(){return this.title}},{key:"load",value:function(){return Lt.resolve()}},{key:"makeId_",value:function(e){return"screen_"+e}},{key:"setId",value:function(e){this.id=e}},{key:"setMetas",value:function(e){this.metas=e}},{key:"setTitle",value:function(e){this.title=e}},{key:"toString",value:function(){return this.id}}]),t}(Tt);Rt.isImplementedBy=function(e){return e instanceof Rt};var Ot=function(e){function t(e){Re(this,t);var n=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));if(!e)throw new Error("Surface element id not specified. A surface element requires a valid id.");return n.activeChild=null,n.defaultChild=null,n.element=null,n.id=e,n.transitionFn=null,n.defaultChild=n.getChild(t.DEFAULT),n.maybeWrapContentAsDefault_(),n.activeChild=n.defaultChild,n}return Ie(t,e),Oe(t,[{key:"addContent",value:function(e,t){var n=this.defaultChild;re(t)&&(n=this.getChild(e),n?I(n):(n=this.createChild(e),this.transition(n,null)),_(n,t));var r=this.getElement();return r&&n&&_(r,n),n}},{key:"createChild",value:function(e){var t=tt.document.createElement("div");return t.setAttribute("id",this.makeId_(e)),t}},{key:"getChild",value:function(e){return tt.document.getElementById(this.makeId_(e))}},{key:"getElement",value:function(){return this.element?this.element:(this.element=tt.document.getElementById(this.id),this.element)}},{key:"getId",value:function(){return this.id}},{key:"getTransitionFn",value:function(){return this.transitionFn}},{key:"makeId_",value:function(e){return this.id+"-"+e}},{key:"maybeWrapContentAsDefault_",value:function(){var e=this.getElement();if(e&&!this.defaultChild){for(var n=tt.document.createDocumentFragment();e.firstChild;)n.appendChild(e.firstChild);this.defaultChild=this.addContent(t.DEFAULT,n),this.transition(null,this.defaultChild)}}},{key:"setId",value:function(e){this.id=e}},{key:"setTransitionFn",value:function(e){this.transitionFn=e}},{key:"show",value:function(e){var t=this.activeChild,n=this.getChild(e);return n||(n=this.defaultChild),this.activeChild=n,this.transition(t,n).thenAlways(function(){t&&t!==n&&w(t)})}},{key:"remove",value:function(e){var t=this.getChild(e);t&&w(t)}},{key:"toString",value:function(){return this.id}},{key:"transition",value:function(e,n){var r=this.transitionFn||t.defaultTransition;return Lt.resolve(r.call(this,e,n))}}]),t}(ut);Ot.DEFAULT="default",Ot.defaultTransition=function(e,t){e&&(e.style.display="none",e.classList.remove("flipped")),t&&(t.style.display="block",t.classList.add("flipped"))};var Nt={IMMEDIATE:"immediate",SCHEDULE_LAST:"scheduleLast"},It=function(e){function t(){Re(this,t);var e=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.activeScreen=null,e.activePath=null,e.allowPreventNavigate=!0,e.basePath="",e.browserPathBeforeNavigate=_t.getCurrentBrowserPathWithoutHash(),e.captureScrollPositionFromScrollEvent=!0,e.defaultTitle=tt.document.title,e.formSelector='form[enctype="multipart/form-data"]:not([data-senna-off])',e.ignoreQueryStringFromRoutePath=!1,e.linkSelector='a:not([data-senna-off]):not([target="_blank"])',e.loadingCssClass="senna-loading",e.nativeScrollRestorationSupported="scrollRestoration"in tt.window.history,e.navigationStrategy=Nt.IMMEDIATE,e.isNavigationPending=!1,e.pendingNavigate=null,e.popstateScrollLeft=0,e.popstateScrollTop=0,e.redirectPath=null,e.routes=[],e.scheduledNavigationQueue=[],e.screens={},e.skipLoadPopstate=!1,e.surfaces={},e.updateScrollPosition=!0,e.appEventHandlers_=new St,e.appEventHandlers_.add(T(tt.window,"scroll",ge(e.onScroll_.bind(e),100)),T(tt.window,"load",e.onLoad_.bind(e)),T(tt.window,"popstate",e.onPopstate_.bind(e))),e.on("startNavigate",e.onStartNavigate_),e.on("beforeNavigate",e.onBeforeNavigate_),e.on("beforeNavigate",e.onBeforeNavigateDefault_,!0),e.on("beforeUnload",e.onBeforeUnloadDefault_),e.setLinkSelector(e.linkSelector),e.setFormSelector(e.formSelector),e.maybeOverloadBeforeUnload_(),e}return Ie(t,e),Oe(t,[{key:"addRoutes",value:function(e){var t=this;return Array.isArray(e)||(e=[e]),e.forEach(function(e){e instanceof At||(e=new At(e.path,e.handler)),t.routes.push(e)}),this}},{key:"addSurfaces",value:function(e){var t=this;return Array.isArray(e)||(e=[e]),e.forEach(function(e){de(e)&&(e=new Ot(e)),t.surfaces[e.getId()]=e}),this}},{key:"canNavigate",value:function(e){var t=_t.isWebUri(e);if(!t)return!1;var n=_t.getUrlPath(e);return!!this.isLinkSameOrigin_(t.getHost())&&(!!this.isSameBasePath_(n)&&((!t.getHash()||!_t.isCurrentBrowserPath(n))&&!!this.findRoute(n)))}},{key:"clearScreensCache",value:function(){var e=this;Object.keys(this.screens).forEach(function(t){t===e.activePath?e.activeScreen.clearCache():e.isNavigationPending&&e.pendingNavigate.path===t||e.removeScreen(t)})}},{key:"createScreenInstance",value:function(e,t){if(!this.pendingNavigate&&e===this.activePath)return this.activeScreen;var n=this.screens[e];if(!n){var r=t.getHandler();n=r===Rt||Rt.isImplementedBy(r.prototype)?new r:r(t)||new Rt}return n}},{key:"disposeInternal",value:function(){this.activeScreen&&this.removeScreen(this.activePath),this.clearScreensCache(),this.formEventHandler_.removeListener(),this.linkEventHandler_.removeListener(),this.appEventHandlers_.removeAllListeners(),Ne(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"disposeInternal",this).call(this)}},{key:"dispatch",value:function(){return this.navigate(_t.getCurrentBrowserPath(),!0)}},{key:"doNavigate_",value:function(e,t){var n=this,r=this.findRoute(e);if(!r)return this.pendingNavigate=Lt.reject(new Lt.CancellationError("No route for "+e)),this.pendingNavigate;this.stopPendingNavigate_(),this.isNavigationPending=!0;var i=this.createScreenInstance(e,r);return this.maybePreventDeactivate_().then(function(){return n.maybePreventActivate_(i)}).then(function(){return i.load(e)}).then(function(){n.navigationStrategy=Nt.SCHEDULE_LAST,n.activeScreen&&n.activeScreen.deactivate(),n.prepareNavigateHistory_(e,i,t),n.prepareNavigateSurfaces_(i,n.surfaces,n.extractParams(r,e))}).then(function(){return i.evaluateStyles(n.surfaces)}).then(function(){return i.flip(n.surfaces)}).then(function(){return i.evaluateScripts(n.surfaces)}).then(function(){return n.maybeUpdateScrollPositionState_()}).then(function(){return n.syncScrollPositionSyncThenAsync_()}).then(function(){return n.finalizeNavigate_(e,i)}).then(function(){return n.maybeOverloadBeforeUnload_()})["catch"](function(t){throw n.isNavigationPending=!1,n.handleNavigateError_(e,i,t),t}).thenAlways(function(){if(n.navigationStrategy=Nt.IMMEDIATE,n.scheduledNavigationQueue.length){var e=n.scheduledNavigationQueue.shift();n.maybeNavigate_(e.href,e)}})}},{key:"extractParams",value:function(e,t){return e.extractParams(this.getRoutePath(t))}},{key:"finalizeNavigate_",value:function(e,t){t.activate(),this.activeScreen&&!this.activeScreen.isCacheable()&&this.activeScreen!==t&&this.removeScreen(this.activePath),this.activePath=e,this.activeScreen=t,this.browserPathBeforeNavigate=_t.getCurrentBrowserPathWithoutHash(),this.screens[e]=t,this.isNavigationPending=!1,this.pendingNavigate=null,tt.capturedFormElement=null,tt.capturedFormButtonElement=null}},{key:"findRoute",value:function(e){e=this.getRoutePath(e);for(var t=0;t<this.routes.length;t++){var n=this.routes[t];if(n.matchesPath(e))return n}return null}},{key:"getAllowPreventNavigate",value:function(){return this.allowPreventNavigate}},{key:"getBasePath",value:function(){return this.basePath}},{key:"getDefaultTitle",value:function(){return this.defaultTitle}},{key:"getFormSelector",value:function(){return this.formSelector}},{key:"getIgnoreQueryStringFromRoutePath",value:function(){return this.ignoreQueryStringFromRoutePath}},{key:"getLinkSelector",value:function(){return this.linkSelector}},{key:"getLoadingCssClass",value:function(){return this.loadingCssClass}},{key:"getRoutePath",value:function(e){return this.getIgnoreQueryStringFromRoutePath()?(e=_t.getUrlPathWithoutHashAndSearch(e),_t.getUrlPathWithoutHashAndSearch(e.substr(this.basePath.length))):(e=_t.getUrlPathWithoutHash(e),_t.getUrlPathWithoutHash(e.substr(this.basePath.length)))}},{key:"getUpdateScrollPosition",value:function(){return this.updateScrollPosition}},{key:"handleNavigateError_",value:function(e,t,n){var r=this;this.emit("navigationError",{error:n,nextScreen:t,path:e}),_t.isCurrentBrowserPath(e)||(this.isNavigationPending&&this.pendingNavigate?this.pendingNavigate.thenAlways(function(){return r.removeScreen(e)},this):this.removeScreen(e))}},{key:"hasRoutes",value:function(){return this.routes.length>0}},{key:"isLinkSameOrigin_",value:function(e){var t=new yt(e),n=new yt(tt.window.location.host);return t.getPort()===n.getPort()&&t.getHostname()===n.getHostname()}},{key:"isSameBasePath_",value:function(e){
return 0===e.indexOf(this.basePath)}},{key:"lockHistoryScrollPosition_",value:function(){var e=tt.window.history.state;if(e){var t=!1,n=function r(){tt.document.removeEventListener("scroll",r,!1),t||(tt.window.scrollTo(e.scrollLeft,e.scrollTop),t=!0)};st.nextTick(n),tt.document.addEventListener("scroll",n,!1)}}},{key:"maybeDisableNativeScrollRestoration",value:function(){this.nativeScrollRestorationSupported&&(this.nativeScrollRestoration_=tt.window.history.scrollRestoration,tt.window.history.scrollRestoration="manual")}},{key:"maybeScheduleNavigation_",value:function(e,t){return!(!this.isNavigationPending||this.navigationStrategy!==Nt.SCHEDULE_LAST)&&(this.scheduledNavigationQueue=[lt.mixin({href:e,isScheduledNavigation:!0},t)],!0)}},{key:"maybeNavigate_",value:function(e,t){if(this.canNavigate(e)){var n=this.maybeScheduleNavigation_(e,t);if(n)return void t.preventDefault();var r=!1;try{this.navigate(_t.getUrlPath(e),!1,t)}catch(i){r=!0}r||t.isScheduledNavigation||t.preventDefault()}}},{key:"maybeOverloadBeforeUnload_",value:function(){var e=this;"function"==typeof window.onbeforeunload&&(window._onbeforeunload=window.onbeforeunload,window.onbeforeunload=function(t){if(e.emit("beforeUnload",t),t&&t.defaultPrevented)return!0},window.onbeforeunload._overloaded=!0)}},{key:"maybePreventActivate_",value:function(e){var t=this;return Lt.resolve().then(function(){return e.beforeActivate()}).then(function(e){if(e)return t.pendingNavigate=Lt.reject(new Lt.CancellationError("Cancelled by next screen")),t.pendingNavigate})}},{key:"maybePreventDeactivate_",value:function(){var e=this;return Lt.resolve().then(function(){if(e.activeScreen)return e.activeScreen.beforeDeactivate()}).then(function(t){if(t)return e.pendingNavigate=Lt.reject(new Lt.CancellationError("Cancelled by active screen")),e.pendingNavigate})}},{key:"maybeRepositionScrollToHashedAnchor",value:function(){var e=tt.window.location.hash;if(e){var t=tt.document.getElementById(e.substring(1));if(t){var n=_t.getNodeOffset(t),r=n.offsetLeft,i=n.offsetTop;tt.window.scrollTo(r,i)}}}},{key:"maybeRestoreNativeScrollRestoration",value:function(){this.nativeScrollRestorationSupported&&this.nativeScrollRestoration_&&(tt.window.history.scrollRestoration=this.nativeScrollRestoration_)}},{key:"maybeRestoreRedirectPathHash_",value:function(e,t,n){return t===_t.getUrlPathWithoutHash(e)?t+n:t}},{key:"maybeUpdateScrollPositionState_",value:function(){var e=tt.window.location.hash,t=tt.document.getElementById(e.substring(1));if(t){var n=_t.getNodeOffset(t),r=n.offsetLeft,i=n.offsetTop;this.saveHistoryCurrentPageScrollPosition_(i,r)}}},{key:"navigate",value:function(e,t,n){if(!_t.isHtml5HistorySupported())throw new Error("HTML5 History is not supported. Senna will not intercept navigation.");return n&&(tt.capturedFormElement=n.capturedFormElement,tt.capturedFormButtonElement=n.capturedFormButtonElement),e===this.activePath&&(t=!0),this.emit("beforeNavigate",{event:n,path:e,replaceHistory:!!t}),this.pendingNavigate}},{key:"onBeforeNavigate_",value:function(e){tt.capturedFormElement&&(e.form=tt.capturedFormElement)}},{key:"onBeforeNavigateDefault_",value:function(e){(!this.pendingNavigate||this.pendingNavigate.path!==e.path&&this.navigationStrategy!==Nt.SCHEDULE_LAST)&&(this.emit("beforeUnload",e),this.emit("startNavigate",{form:e.form,path:e.path,replaceHistory:e.replaceHistory}))}},{key:"onBeforeUnloadDefault_",value:function(e){var t=window._onbeforeunload;t&&!t._overloaded&&t()&&e.preventDefault()}},{key:"onDocClickDelegate_",value:function(e){e.altKey||e.ctrlKey||e.metaKey||e.shiftKey||e.button||this.maybeNavigate_(e.delegateTarget.href,e)}},{key:"onDocSubmitDelegate_",value:function(e){var t=e.delegateTarget;if("get"!==t.method){e.capturedFormElement=t;var n="button:not([type]),button[type=submit],input[type=submit]";L(tt.document.activeElement,n)?e.capturedFormButtonElement=tt.document.activeElement:e.capturedFormButtonElement=t.querySelector(n),this.maybeNavigate_(t.action,e)}}},{key:"onLoad_",value:function(){var e=this;this.skipLoadPopstate=!0,setTimeout(function(){e.skipLoadPopstate=!1},0),this.maybeRepositionScrollToHashedAnchor()}},{key:"onPopstate_",value:function(e){if(!this.skipLoadPopstate){if(_t.isCurrentBrowserPath(this.browserPathBeforeNavigate))return void this.maybeRepositionScrollToHashedAnchor();var t=e.state;if(!t)return void(tt.window.location.hash?(this.redirectPath&&!_t.isCurrentBrowserPath(this.redirectPath)&&this.reloadPage(),this.maybeRepositionScrollToHashedAnchor()):this.reloadPage());if(t.senna){this.popstateScrollTop=t.scrollTop,this.popstateScrollLeft=t.scrollLeft,this.nativeScrollRestorationSupported||this.lockHistoryScrollPosition_(),this.once("endNavigate",function(){t.referrer&&_t.setReferrer(t.referrer)});var n=new yt(t.path);n.setHostname(tt.window.location.hostname),n.setPort(tt.window.location.port);var r=this.maybeScheduleNavigation_(n.toString(),{});if(r)return;this.navigate(t.path,!0)}}}},{key:"onScroll_",value:function(){this.captureScrollPositionFromScrollEvent&&this.saveHistoryCurrentPageScrollPosition_(tt.window.pageYOffset,tt.window.pageXOffset)}},{key:"onStartNavigate_",value:function(e){var t=this;this.maybeDisableNativeScrollRestoration(),this.captureScrollPositionFromScrollEvent=!1,c(tt.document.documentElement,this.loadingCssClass);var n={form:e.form,path:e.path};this.pendingNavigate=this.doNavigate_(e.path,e.replaceHistory)["catch"](function(e){throw n.error=e,e}).thenAlways(function(){t.pendingNavigate||t.scheduledNavigationQueue.length||(D(tt.document.documentElement,t.loadingCssClass),t.maybeRestoreNativeScrollRestoration(),t.captureScrollPositionFromScrollEvent=!0),t.emit("endNavigate",n)}),this.pendingNavigate.path=e.path}},{key:"prefetch",value:function(e){var t=this,n=this.findRoute(e);if(!n)return Lt.reject(new Lt.CancellationError("No route for "+e));var r=this.createScreenInstance(e,n);return r.load(e).then(function(){return t.screens[e]=r})["catch"](function(n){throw t.handleNavigateError_(e,r,n),n})}},{key:"prepareNavigateHistory_",value:function(e,t,n){var r=t.getTitle();de(r)||(r=this.getDefaultTitle());var i=t.beforeUpdateHistoryPath(e),a=new yt(e).getHash();i=this.maybeRestoreRedirectPathHash_(e,i,a);var o={form:re(tt.capturedFormElement),path:e,redirectPath:i,scrollLeft:0,scrollTop:0,senna:!0};n&&(o.scrollTop=this.popstateScrollTop,o.scrollLeft=this.popstateScrollLeft),this.updateHistory_(r,i,t.beforeUpdateHistoryState(o),n),this.redirectPath=i}},{key:"prepareNavigateSurfaces_",value:function(e,t,n){Object.keys(t).forEach(function(r){var i=e.getSurfaceContent(r,n);t[r].addContent(e.getId(),i)})}},{key:"reloadPage",value:function(){tt.window.location.reload()}},{key:"removeRoute",value:function(e){return ot.remove(this.routes,e)}},{key:"removeScreen",value:function(e){var t=this,n=this.screens[e];n&&(Object.keys(this.surfaces).forEach(function(e){return t.surfaces[e].remove(n.getId())}),n.dispose(),delete this.screens[e])}},{key:"saveHistoryCurrentPageScrollPosition_",value:function(e,t){var n=tt.window.history.state;if(n&&n.senna){var r=[e,t];n.scrollTop=r[0],n.scrollLeft=r[1],tt.window.history.replaceState(n,null,null)}}},{key:"setAllowPreventNavigate",value:function(e){this.allowPreventNavigate=e}},{key:"setBasePath",value:function(e){this.basePath=_t.removePathTrailingSlash(e)}},{key:"setDefaultTitle",value:function(e){this.defaultTitle=e}},{key:"setFormSelector",value:function(e){this.formSelector=e,this.formEventHandler_&&this.formEventHandler_.removeListener(),this.formEventHandler_=E(document,"submit",this.formSelector,this.onDocSubmitDelegate_.bind(this),this.allowPreventNavigate)}},{key:"setIgnoreQueryStringFromRoutePath",value:function(e){this.ignoreQueryStringFromRoutePath=e}},{key:"setLinkSelector",value:function(e){this.linkSelector=e,this.linkEventHandler_&&this.linkEventHandler_.removeListener(),this.linkEventHandler_=E(document,"click",this.linkSelector,this.onDocClickDelegate_.bind(this),this.allowPreventNavigate)}},{key:"setLoadingCssClass",value:function(e){this.loadingCssClass=e}},{key:"setUpdateScrollPosition",value:function(e){this.updateScrollPosition=e}},{key:"stopPendingNavigate_",value:function(){this.pendingNavigate&&this.pendingNavigate.cancel("Cancel pending navigation"),this.pendingNavigate=null}},{key:"syncScrollPositionSyncThenAsync_",value:function(){var e=this,t=tt.window.history.state;if(t){var n=t.scrollTop,r=t.scrollLeft,i=function(){e.updateScrollPosition&&tt.window.scrollTo(r,n)};return new Lt(function(e){return i()&st.nextTick(function(){return i()&e()})})}}},{key:"updateHistory_",value:function(e,t,n,r){var i=tt.window.location.href;n&&(n.referrer=i),r?tt.window.history.replaceState(n,e,t):tt.window.history.pushState(n,e,t),_t.setReferrer(i);var a=tt.document.querySelector("title");a?a.innerHTML=e:tt.document.title=e}}]),t}(bt),Dt=function(){function e(){Re(this,e)}return Oe(e,null,[{key:"parseResponseHeaders",value:function(e){var t=[];if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;r++){var i=n[r].indexOf(": ");if(i>0){var a=n[r].substring(0,i),o=n[r].substring(i+2);t.push({name:a,value:o})}}return t}},{key:"request",value:function t(e,n,r,i,a,o,s,u){e=e||"",n=n||"GET";var t=new XMLHttpRequest,l=0,c=new Lt(function(e,n){t.onload=function(){return t.aborted?void t.onerror():void e(t)},t.onreadystatechange=function(){l&&l<3&&4===t.readyState&&(t.terminatedPrematurely=!0),l=t.readyState},t.onerror=function(){var e="Request error";t.terminatedPrematurely&&(e="Request terminated prematurely");var r=new Error(e);r.request=t,n(r)}}).thenCatch(function(e){throw t.abort(),e}).thenAlways(function(){clearTimeout(h)});if(e=new yt(e),a&&e.addParametersFromMultiMap(a).toString(),e=e.toString(),t.open(n,e,!s),u&&(t.withCredentials=!0),i&&i.names().forEach(function(e){t.setRequestHeader(e,i.getAll(e).join(", "))}),t.send(ne(r)?r:null),re(o))var h=setTimeout(function(){c.cancel("Request timeout")},o);return c}}]),e}(),Ht=function Wt(){Re(this,Wt)};Ht.INVALID_STATUS="Invalid status code",Ht.REQUEST_ERROR="Request error",Ht.REQUEST_TIMEOUT="Request timeout",Ht.REQUEST_PREMATURE_TERMINATION="Request terminated prematurely";var xt=function(){function e(){Re(this,e)}return Oe(e,null,[{key:"getNativeUserAgent",value:function(){var t=e.globals.window&&e.globals.window.navigator;if(t){var n=t.userAgent;if(n)return n}return""}},{key:"getNativePlatform",value:function(){var t=e.globals.window&&e.globals.window.navigator;if(t){var n=t.platform;if(n)return n}return""}},{key:"matchPlatform",value:function(t){return e.platform.indexOf(t)!==-1}},{key:"matchUserAgent",value:function(t){return e.userAgent.indexOf(t)!==-1}},{key:"testUserAgent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";e.userAgent=t,e.platform=n,e.isMac=e.matchPlatform("Mac"),e.isWin=e.matchPlatform("Win"),e.isOpera=e.matchUserAgent("Opera")||e.matchUserAgent("OPR"),e.isIe=e.matchUserAgent("Trident")||e.matchUserAgent("MSIE"),e.isEdge=e.matchUserAgent("Edge"),e.isIeOrEdge=e.isIe||e.isEdge,e.isChrome=(e.matchUserAgent("Chrome")||e.matchUserAgent("CriOS"))&&!e.isOpera&&!e.isEdge,e.isSafari=e.matchUserAgent("Safari")&&!(e.isChrome||e.isOpera||e.isEdge),e.isFirefox=e.matchUserAgent("Firefox")}}]),e}();Object.defineProperty(xt,"globals",{writable:!0,value:{window:ve()?null:window}}),xt.testUserAgent(xt.getNativeUserAgent(),xt.getNativePlatform());var Ut=function(e){function t(){Re(this,t);var e=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.cacheable=!0,e.httpHeaders={"X-PJAX":"true","X-Requested-With":"XMLHttpRequest"},e.httpMethod=t.GET,e.request=null,e.timeout=3e4,e}return Ie(t,e),Oe(t,[{key:"assertValidResponseStatusCode",value:function(e){if(!this.isValidResponseStatusCode(e)){var t=new Error(Ht.INVALID_STATUS);throw t.invalidStatus=!0,t.statusCode=e,t}}},{key:"beforeUpdateHistoryPath",value:function(e){var t=this.getRequestPath();return t&&t!==e?t:e}},{key:"beforeUpdateHistoryState",value:function(e){return e.senna&&e.form&&e.redirectPath===e.path?null:e}},{key:"formatLoadPath",value:function(e){var n=new yt(e);return n.setHostname(tt.window.location.hostname),n.setProtocol(tt.window.location.protocol),tt.window.location.port&&n.setPort(tt.window.location.port),xt.isIeOrEdge&&this.httpMethod===t.GET?n.makeUnique().toString():n.toString()}},{key:"getHttpHeaders",value:function(){return this.httpHeaders}},{key:"getHttpMethod",value:function(){return this.httpMethod}},{key:"getRequestPath",value:function(){var e=this.getRequest();if(e){var n=e.requestPath,r=this.maybeExtractResponseUrlFromRequest(e);return r&&(n=r),xt.isIeOrEdge&&this.httpMethod===t.GET&&(n=new yt(n).removeUnique().toString()),_t.getUrlPath(n)}return null}},{key:"getRequest",value:function(){return this.request}},{key:"getTimeout",value:function(){return this.timeout}},{key:"isValidResponseStatusCode",value:function(e){return e>=200&&e<=399}},{key:"getFormData",value:function(e,t){var n=new FormData(e);return this.maybeAppendSubmitButtonValue_(n,t),n}},{key:"load",value:function(e){var n=this,r=this.getCache();if(re(r))return Lt.resolve(r);var i=null,a=this.httpMethod,o=new ft;Object.keys(this.httpHeaders).forEach(function(e){return o.add(e,n.httpHeaders[e])}),tt.capturedFormElement&&(this.addSafariXHRPolyfill(),i=this.getFormData(tt.capturedFormElement,tt.capturedFormButtonElement),a=t.POST,xt.isIeOrEdge&&o.add("If-None-Match",'"0"'));var s=this.formatLoadPath(e);return Dt.request(s,a,i,o,null,this.timeout).then(function(e){return n.removeSafariXHRPolyfill(),n.setRequest(e),n.assertValidResponseStatusCode(e.status),a===t.GET&&n.isCacheable()&&n.addCache(e.responseText),e.requestPath=s,e.responseText})["catch"](function(e){switch(n.removeSafariXHRPolyfill(),e.message){case Ht.REQUEST_TIMEOUT:e.timeout=!0;break;case Ht.REQUEST_ERROR:e.requestError=!0;break;case Ht.REQUEST_PREMATURE_TERMINATION:e.requestError=!0,e.requestPrematureTermination=!0}throw e})}},{key:"maybeAppendSubmitButtonValue_",value:function(e,t){t&&t.name&&e.append(t.name,t.value)}},{key:"maybeExtractResponseUrlFromRequest",value:function(e){var n=e.responseURL;return n?n:e.getResponseHeader(t.X_REQUEST_URL_HEADER)}},{key:"addSafariXHRPolyfill",value:function(){if(tt.capturedFormElement&&xt.isSafari)for(var e=tt.capturedFormElement.querySelectorAll('input[type="file"]:not([disabled])'),t=0;t<e.length;t++){var n=e[t];if(n.files.length>0)return;n.setAttribute("data-safari-temp-disabled","true"),n.setAttribute("disabled","")}}},{key:"removeSafariXHRPolyfill",value:function(){if(tt.capturedFormElement&&xt.isSafari)for(var e=tt.capturedFormElement.querySelectorAll('input[type="file"][data-safari-temp-disabled]'),t=0;t<e.length;t++){var n=e[t];n.removeAttribute("data-safari-temp-disabled"),n.removeAttribute("disabled")}}},{key:"setHttpHeaders",value:function(e){this.httpHeaders=e}},{key:"setHttpMethod",value:function(e){this.httpMethod=e.toLowerCase()}},{key:"setRequest",value:function(e){this.request=e}},{key:"setTimeout",value:function(e){this.timeout=e}}]),t}(Rt);Ut.GET="get",Ut.POST="post",Ut.X_REQUEST_URL_HEADER="X-Request-URL";var Ft=function(e){function t(){Re(this,t);var e=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.metaTagsSelector="meta",e.titleSelector="title",e}return Ie(t,e),Oe(t,[{key:"activate",value:function(){Ne(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"activate",this).call(this),this.releaseVirtualDocument(),this.pendingStyles=null}},{key:"allocateVirtualDocumentForContent",value:function(e){this.virtualDocument||(this.virtualDocument=tt.document.createElement("html")),this.copyNodeAttributesFromContent_(e,this.virtualDocument),this.virtualDocument.innerHTML=e}},{key:"appendStyleIntoDocument_",value:function(e){var n=L(e,t.selectors.stylesTemporary);if(n&&this.pendingStyles.push(e),e.id){var r=tt.document.getElementById(e.id);if(r)return void r.parentNode.insertBefore(e,r.nextSibling)}tt.document.head.appendChild(e)}},{key:"assertSameBodyIdInVirtualDocument",value:function(){var e=this.virtualDocument.querySelector("body");tt.document.body.id||(tt.document.body.id="senna_surface_"+Z()),e&&(e.id=tt.document.body.id)}},{key:"copyNodeAttributesFromContent_",value:function(e,t){e=e.replace(/[<]\s*html/gi,"<senna"),e=e.replace(/\/html\s*\>/gi,"/senna>");var n=void 0;if(xt.isIe){var r=tt.document.createRange().createContextualFragment(e);n=r.querySelector("senna")}else t.innerHTML=e,n=t.querySelector("senna");n&&(_t.clearNodeAttributes(t),_t.copyNodeAttributes(n,t))}},{key:"disposeInternal",value:function(){this.disposePendingStyles(),Ne(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"disposeInternal",this).call(this)}},{key:"disposePendingStyles",value:function(){this.pendingStyles&&_t.removeElementsFromDocument(this.pendingStyles)}},{key:"evaluateScripts",value:function(e){var n=this,r=this.evaluateTrackedResources_(Ze.runScriptsInElement,t.selectors.scripts,t.selectors.scriptsTemporary,t.selectors.scriptsPermanent);return r.then(function(){return Ne(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"evaluateScripts",n).call(n,e)})}},{key:"evaluateStyles",value:function(e){var n=this;this.pendingStyles=[];var r=this.evaluateTrackedResources_(et.runStylesInElement,t.selectors.styles,t.selectors.stylesTemporary,t.selectors.stylesPermanent,this.appendStyleIntoDocument_.bind(this));return r.then(function(){return Ne(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"evaluateStyles",n).call(n,e)})}},{key:"evaluateFavicon_",value:function(){var e=this,n=this.virtualQuerySelectorAll_(t.selectors.favicon),r=this.querySelectorAll_(t.selectors.favicon);return new Lt(function(t){_t.removeElementsFromDocument(r),e.runFaviconInElement_(n).then(function(){return t()})})}},{key:"evaluateTrackedResources_",value:function(e,n,r,i,a){var o=this,s=this.virtualQuerySelectorAll_(n),u=this.querySelectorAll_(r),l=this.querySelectorAll_(i);l.forEach(function(e){var n=o.getResourceKey_(e);n&&(t.permanentResourcesInDoc[n]=!0)});var c=g();return s.forEach(function(e){var n=o.getResourceKey_(e);t.permanentResourcesInDoc[n]||c.appendChild(e),n&&L(e,i)&&(t.permanentResourcesInDoc[n]=!0)}),new Lt(function(t){e(c,function(){_t.removeElementsFromDocument(u),t()},a)})}},{key:"flip",value:function(e){var n=this;return Ne(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"flip",this).call(this,e).then(function(){_t.clearNodeAttributes(tt.document.documentElement),_t.copyNodeAttributes(n.virtualDocument,tt.document.documentElement),n.evaluateFavicon_(),n.updateMetaTags_()})}},{key:"updateMetaTags_",value:function(){var e=this.querySelectorAll_("meta"),t=this.metas;e&&(_t.removeElementsFromDocument(e),t&&t.forEach(function(e){return tt.document.head.appendChild(e)}))}},{key:"getResourceKey_",value:function(e){return e.id||e.href||e.src||""}},{key:"getSurfaceContent",value:function(e){var t=this.virtualDocument.querySelector("#"+e);if(t){var n=t.querySelector("#"+e+"-"+Ot.DEFAULT);return n?n.innerHTML:t.innerHTML}}},{key:"getTitleSelector",value:function(){return this.titleSelector}},{key:"load",value:function(e){var n=this;return Ne(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"load",this).call(this,e).then(function(e){return n.allocateVirtualDocumentForContent(e),n.resolveTitleFromVirtualDocument(),n.resolveMetaTagsFromVirtualDocument(),n.assertSameBodyIdInVirtualDocument(),xt.isIe&&n.makeTemporaryStylesHrefsUnique_(),e})}},{key:"makeTemporaryStylesHrefsUnique_",value:function(){var e=this,n=this.virtualQuerySelectorAll_(t.selectors.stylesTemporary);n.forEach(function(t){return e.replaceStyleAndMakeUnique_(t)})}},{key:"replaceStyleAndMakeUnique_",value:function(e){if(e.href){var t=tt.document.createElement(e.tagName);e.href=new yt(e.href).makeUnique().toString(),_t.copyNodeAttributes(e,t),e.parentNode.replaceChild(t,e),e.disabled=!0}}},{key:"runFaviconInElement_",value:function(e){return new Lt(function(t){e.forEach(function(e){return document.head.appendChild(xt.isIe?e:_t.setElementWithRandomHref(e))}),t()})}},{key:"virtualQuerySelectorAll_",value:function(e){return Array.prototype.slice.call(this.virtualDocument.querySelectorAll(e))}},{key:"querySelectorAll_",value:function(e){return Array.prototype.slice.call(tt.document.querySelectorAll(e))}},{key:"releaseVirtualDocument",value:function(){this.virtualDocument=null}},{key:"resolveTitleFromVirtualDocument",value:function(){var e=this.virtualDocument.querySelector(this.titleSelector);e&&this.setTitle(e.textContent.trim())}},{key:"resolveMetaTagsFromVirtualDocument",value:function(){var e=this.virtualQuerySelectorAll_(this.metaTagsSelector);e&&this.setMetas(e)}},{key:"setTitleSelector",value:function(e){this.titleSelector=e}}]),t}(Ut),jt=':not([rel="Shortcut Icon"]):not([rel="shortcut icon"]):not([rel="icon"]):not([href$="favicon.icon"])';Ft.selectors={favicon:'link[rel="Shortcut Icon"],link[rel="shortcut icon"],link[rel="icon"],link[href$="favicon.icon"]',scripts:"script[data-senna-track]",scriptsPermanent:'script[data-senna-track="permanent"]',scriptsTemporary:'script[data-senna-track="temporary"]',styles:"style[data-senna-track],link[data-senna-track]"+jt,stylesPermanent:'style[data-senna-track="permanent"],link[data-senna-track="permanent"]'+jt,stylesTemporary:'style[data-senna-track="temporary"],link[data-senna-track="temporary"]'+jt},Ft.permanentResourcesInDoc={};var Mt=function(e){function t(){Re(this,t);var e=De(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.app=null,e.baseElement=null,e}return Ie(t,e),Oe(t,[{key:"handle",value:function(){if(!oe(this.baseElement))throw new Error("Senna data attribute handler base element not set or invalid, try setting a valid element that contains a `data-senna` attribute.");if(this.baseElement.hasAttribute(gt.senna)){if(this.app)throw new Error("Senna app was already initialized.");this.app=new It,this.maybeAddRoutes_(),this.maybeAddSurfaces_(),this.maybeSetBasePath_(),this.maybeSetLinkSelector_(),this.maybeSetLoadingCssClass_(),this.maybeSetUpdateScrollPosition_(),this.maybeDispatch_()}}},{key:"disposeInternal",value:function(){this.app&&this.app.dispose()}},{key:"getApp",value:function(){return this.app}},{key:"getBaseElement",value:function(){return this.baseElement}},{key:"maybeAddRoutes_",value:function(){var e=this,t='link[rel="senna-route"]';this.querySelectorAllAsArray_(t).forEach(function(t){return e.maybeParseLinkRoute_(t)}),this.app.hasRoutes()||this.app.addRoutes(new At(/.*/,Ft))}},{key:"maybeAddSurfaces_",value:function(){var e=this,t="["+gt.surface+"]";this.querySelectorAllAsArray_(t).forEach(function(t){e.updateElementIdIfSpecialSurface_(t),e.app.addSurfaces(t.id)})}},{key:"maybeDispatch_",value:function(){this.baseElement.hasAttribute(gt.dispatch)&&this.app.dispatch()}},{key:"maybeParseLinkRoute_",value:function(e){var t=new At(this.maybeParseLinkRoutePath_(e),this.maybeParseLinkRouteHandler_(e));this.app.addRoutes(t)}},{key:"maybeParseLinkRouteHandler_",value:function(e){var t=e.getAttribute("type");return re(t)&&(t=lt.getObjectByName(t)),t}},{key:"maybeParseLinkRoutePath_",value:function(e){var t=e.getAttribute("href");return re(t)&&0===t.indexOf("regex:")&&(t=new RegExp(t.substring(6))),t}},{key:"maybeSetBasePath_",value:function(){var e=this.baseElement.getAttribute(gt.basePath);re(e)&&this.app.setBasePath(e)}},{key:"maybeSetLinkSelector_",value:function(){var e=this.baseElement.getAttribute(gt.linkSelector);re(e)&&this.app.setLinkSelector(e)}},{key:"maybeSetLoadingCssClass_",value:function(){var e=this.baseElement.getAttribute(gt.loadingCssClass);re(e)&&this.app.setLoadingCssClass(e)}},{key:"maybeSetUpdateScrollPosition_",value:function(){var e=this.baseElement.getAttribute(gt.updateScrollPosition);re(e)&&("false"===e?this.app.setUpdateScrollPosition(!1):this.app.setUpdateScrollPosition(!0))}},{key:"querySelectorAllAsArray_",value:function(e){return Array.prototype.slice.call(tt.document.querySelectorAll(e))}},{key:"updateElementIdIfSpecialSurface_",value:function(e){e.id||e!==tt.document.body||(e.id="senna_surface_"+Z())}},{key:"setBaseElement",value:function(e){this.baseElement=e}}]),t}(ut),qt=new Mt;tt.document.addEventListener("DOMContentLoaded",function(){qt.setBaseElement(tt.document.body),qt.handle()});var Bt="2.7.9";e["default"]=It,e.dataAttributeHandler=qt,e.utils=_t,e.App=It,e.HtmlScreen=Ft,e.Route=At,e.RequestScreen=Ut,e.Screen=Rt,e.version=Bt,Object.defineProperty(e,"__esModule",{value:!0})});