Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/route/Route",["module","exports","require","frontend-js-metal-web$metal","frontend-js-metal-web$metal-path-parser"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});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 _metal=require("frontend-js-metal-web$metal");var _metalPathParser=require("frontend-js-metal-web$metal-path-parser");function _classCallCheck(instance,Constructor){if(!(instance instanceof
Constructor))throw new TypeError("Cannot call a class as a function");}var Route=function(){function Route(path,handler){_classCallCheck(this,Route);if(!(0,_metal.isDefAndNotNull)(path))throw new Error("Route path not specified.");if(!(0,_metal.isFunction)(handler))throw new Error("Route handler is not a function.");this.handler=handler;this.path=path}_createClass(Route,[{key:"buildParsedData_",value:function buildParsedData_(){if(!this.parsedData_){var tokens=(0,_metalPathParser.parse)(this.path);
var regex=(0,_metalPathParser.toRegex)(tokens);this.parsedData_={regex:regex,tokens:tokens}}return this.parsedData_}},{key:"extractParams",value:function extractParams(path){if((0,_metal.isString)(this.path))return(0,_metalPathParser.extractData)(this.buildParsedData_().tokens,path);return{}}},{key:"getHandler",value:function getHandler(){return this.handler}},{key:"getPath",value:function getPath(){return this.path}},{key:"matchesPath",value:function matchesPath(value){var path=this.path;if((0,_metal.isFunction)(path))return path(value);
if((0,_metal.isString)(path))path=this.buildParsedData_().regex;if(path instanceof RegExp)return value.search(path)>-1;return false}}]);return Route}();exports.default=Route}});
Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/cacheable/Cacheable",["module","exports","require","frontend-js-metal-web$metal"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});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 _metal=require("frontend-js-metal-web$metal");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function");}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=
superClass}var Cacheable=function(_Disposable){_inherits(Cacheable,_Disposable);function Cacheable(){_classCallCheck(this,Cacheable);var _this=_possibleConstructorReturn(this,(Cacheable.__proto__||Object.getPrototypeOf(Cacheable)).call(this));_this.cache=null;_this.cacheable=false;return _this}_createClass(Cacheable,[{key:"addCache",value:function addCache(content){if(this.cacheable)this.cache=content;return this}},{key:"clearCache",value:function clearCache(){this.cache=null;return this}},{key:"disposeInternal",
value:function disposeInternal(){this.clearCache()}},{key:"getCache",value:function getCache(){return this.cache}},{key:"isCacheable",value:function isCacheable(){return this.cacheable}},{key:"setCacheable",value:function setCacheable(cacheable){if(!cacheable)this.clearCache();this.cacheable=cacheable}}]);return Cacheable}(_metal.Disposable);exports.default=Cacheable}});
Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/screen/Screen",["module","exports","require","frontend-js-metal-web$metal","frontend-js-metal-web$metal-dom","../cacheable/Cacheable","frontend-js-metal-web$metal-promise"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});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 _get=function get(object,property,receiver){if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);
if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null)return undefined;else return get(parent,property,receiver)}else if("value"in desc)return desc.value;else{var getter=desc.get;if(getter===undefined)return undefined;return getter.call(receiver)}};var _metal=require("frontend-js-metal-web$metal");var _metalDom=require("frontend-js-metal-web$metal-dom");var _Cacheable2=require("../cacheable/Cacheable");var _Cacheable3=_interopRequireDefault(_Cacheable2);var _metalPromise=
require("frontend-js-metal-web$metal-promise");var _metalPromise2=_interopRequireDefault(_metalPromise);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function");}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return call&&(typeof call==="object"||
typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var Screen=function(_Cacheable){_inherits(Screen,
_Cacheable);function Screen(){_classCallCheck(this,Screen);var _this=_possibleConstructorReturn(this,(Screen.__proto__||Object.getPrototypeOf(Screen)).call(this));_this.id=_this.makeId_((0,_metal.getUid)());_this.metas=null;_this.title=null;return _this}_createClass(Screen,[{key:"activate",value:function activate(){}},{key:"beforeActivate",value:function beforeActivate(){}},{key:"beforeDeactivate",value:function beforeDeactivate(){}},{key:"beforeUpdateHistoryPath",value:function beforeUpdateHistoryPath(path){return path}},
{key:"beforeUpdateHistoryState",value:function beforeUpdateHistoryState(state){return state}},{key:"deactivate",value:function deactivate(){}},{key:"disposeInternal",value:function disposeInternal(){_get(Screen.prototype.__proto__||Object.getPrototypeOf(Screen.prototype),"disposeInternal",this).call(this)}},{key:"evaluateScripts",value:function evaluateScripts(surfaces){Object.keys(surfaces).forEach(function(sId){if(surfaces[sId].activeChild)_metalDom.globalEval.runScriptsInElement(surfaces[sId].activeChild)});
return _metalPromise2.default.resolve()}},{key:"evaluateStyles",value:function evaluateStyles(){return _metalPromise2.default.resolve()}},{key:"flip",value:function flip(surfaces){var _this2=this;var transitions=[];Object.keys(surfaces).forEach(function(sId){var surface=surfaces[sId];var deferred=surface.show(_this2.id);transitions.push(deferred)});return _metalPromise2.default.all(transitions)}},{key:"getId",value:function getId(){return this.id}},{key:"getMetas",value:function getMetas(){return this.metas}},
{key:"getSurfaceContent",value:function getSurfaceContent(){}},{key:"getTitle",value:function getTitle(){return this.title}},{key:"load",value:function load(){return _metalPromise2.default.resolve()}},{key:"makeId_",value:function makeId_(id){return"screen_"+id}},{key:"setId",value:function setId(id){this.id=id}},{key:"setMetas",value:function setMetas(metas){this.metas=metas}},{key:"setTitle",value:function setTitle(title){this.title=title}},{key:"toString",value:function toString(){return this.id}}]);
return Screen}(_Cacheable3.default);Screen.isImplementedBy=function(object){return object instanceof Screen};exports.default=Screen}});
Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/surface/Surface",["module","exports","require","../globals/globals","frontend-js-metal-web$metal","frontend-js-metal-web$metal-dom","frontend-js-metal-web$metal-promise"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});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 _globals=require("../globals/globals");var _globals2=_interopRequireDefault(_globals);var _metal=require("frontend-js-metal-web$metal");
var _metalDom=require("frontend-js-metal-web$metal-dom");var _metalPromise=require("frontend-js-metal-web$metal-promise");var _metalPromise2=_interopRequireDefault(_metalPromise);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function");}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=
superClass}var Surface=function(_Disposable){_inherits(Surface,_Disposable);function Surface(id){_classCallCheck(this,Surface);var _this=_possibleConstructorReturn(this,(Surface.__proto__||Object.getPrototypeOf(Surface)).call(this));if(!id)throw new Error("Surface element id not specified. A surface element requires a valid id.");_this.activeChild=null;_this.defaultChild=null;_this.element=null;_this.id=id;_this.transitionFn=null;_this.defaultChild=_this.getChild(Surface.DEFAULT);_this.maybeWrapContentAsDefault_();
_this.activeChild=_this.defaultChild;return _this}_createClass(Surface,[{key:"addContent",value:function addContent(screenId,opt_content){var child=this.defaultChild;if((0,_metal.isDefAndNotNull)(opt_content)){child=this.getChild(screenId);if(child)(0,_metalDom.removeChildren)(child);else{child=this.createChild(screenId);this.transition(child,null)}(0,_metalDom.append)(child,opt_content)}var element=this.getElement();if(element&&child)(0,_metalDom.append)(element,child);return child}},{key:"createChild",
value:function createChild(screenId){var child=_globals2.default.document.createElement("div");child.setAttribute("id",this.makeId_(screenId));return child}},{key:"getChild",value:function getChild(screenId){return _globals2.default.document.getElementById(this.makeId_(screenId))}},{key:"getElement",value:function getElement(){if(this.element)return this.element;this.element=_globals2.default.document.getElementById(this.id);return this.element}},{key:"getId",value:function getId(){return this.id}},
{key:"getTransitionFn",value:function getTransitionFn(){return this.transitionFn}},{key:"makeId_",value:function makeId_(screenId){return this.id+"-"+screenId}},{key:"maybeWrapContentAsDefault_",value:function maybeWrapContentAsDefault_(){var element=this.getElement();if(element&&!this.defaultChild){var fragment=_globals2.default.document.createDocumentFragment();while(element.firstChild)fragment.appendChild(element.firstChild);this.defaultChild=this.addContent(Surface.DEFAULT,fragment);this.transition(null,
this.defaultChild)}}},{key:"setId",value:function setId(id){this.id=id}},{key:"setTransitionFn",value:function setTransitionFn(transitionFn){this.transitionFn=transitionFn}},{key:"show",value:function show(screenId){var from=this.activeChild;var to=this.getChild(screenId);if(!to)to=this.defaultChild;this.activeChild=to;return this.transition(from,to).thenAlways(function(){if(from&&from!==to)(0,_metalDom.exitDocument)(from)})}},{key:"remove",value:function remove(screenId){var child=this.getChild(screenId);
if(child)(0,_metalDom.exitDocument)(child)}},{key:"toString",value:function toString(){return this.id}},{key:"transition",value:function transition(from,to){var transitionFn=this.transitionFn||Surface.defaultTransition;return _metalPromise2.default.resolve(transitionFn.call(this,from,to))}}]);return Surface}(_metal.Disposable);Surface.DEFAULT="default";Surface.defaultTransition=function(from,to){if(from){from.style.display="none";from.classList.remove("flipped")}if(to){to.style.display="block";to.classList.add("flipped")}};
exports.default=Surface}});
Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/app/App",["module","exports","require","frontend-js-metal-web$metal-dom","frontend-js-metal-web$metal","frontend-js-metal-web$metal-events","frontend-js-metal-web$metal-promise","frontend-js-metal-web$metal-debounce","../globals/globals","../route/Route","../screen/Screen","../surface/Surface","frontend-js-metal-web$metal-uri","../utils/utils"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,
"__esModule",{value:true});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 _get=function get(object,property,receiver){if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null)return undefined;else return get(parent,property,receiver)}else if("value"in desc)return desc.value;else{var getter=desc.get;if(getter===undefined)return undefined;return getter.call(receiver)}};var _metalDom=require("frontend-js-metal-web$metal-dom");
var _metal=require("frontend-js-metal-web$metal");var _metalEvents=require("frontend-js-metal-web$metal-events");var _metalPromise=require("frontend-js-metal-web$metal-promise");var _metalPromise2=_interopRequireDefault(_metalPromise);var _metalDebounce=require("frontend-js-metal-web$metal-debounce");var _metalDebounce2=_interopRequireDefault(_metalDebounce);var _globals=require("../globals/globals");var _globals2=_interopRequireDefault(_globals);var _Route=require("../route/Route");var _Route2=_interopRequireDefault(_Route);
var _Screen=require("../screen/Screen");var _Screen2=_interopRequireDefault(_Screen);var _Surface=require("../surface/Surface");var _Surface2=_interopRequireDefault(_Surface);var _metalUri=require("frontend-js-metal-web$metal-uri");var _metalUri2=_interopRequireDefault(_metalUri);var _utils=require("../utils/utils");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof
Constructor))throw new TypeError("Cannot call a class as a function");}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&
superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var NavigationStrategy={IMMEDIATE:"immediate",SCHEDULE_LAST:"scheduleLast"};var App=function(_EventEmitter){_inherits(App,_EventEmitter);function App(){_classCallCheck(this,App);var _this=_possibleConstructorReturn(this,(App.__proto__||Object.getPrototypeOf(App)).call(this));_this.activeScreen=
null;_this.activePath=null;_this.allowPreventNavigate=true;_this.basePath="";_this.browserPathBeforeNavigate=_utils2.default.getCurrentBrowserPathWithoutHash();_this.captureScrollPositionFromScrollEvent=true;_this.defaultTitle=_globals2.default.document.title;_this.formSelector='form[enctype\x3d"multipart/form-data"]:not([data-senna-off])';_this.ignoreQueryStringFromRoutePath=false;_this.linkSelector='a:not([data-senna-off]):not([target\x3d"_blank"])';_this.loadingCssClass="senna-loading";_this.nativeScrollRestorationSupported=
"scrollRestoration"in _globals2.default.window.history;_this.navigationStrategy=NavigationStrategy.IMMEDIATE;_this.isNavigationPending=false;_this.pendingNavigate=null;_this.popstateScrollLeft=0;_this.popstateScrollTop=0;_this.redirectPath=null;_this.routes=[];_this.scheduledNavigationQueue=[];_this.screens={};_this.skipLoadPopstate=false;_this.surfaces={};_this.updateScrollPosition=true;_this.appEventHandlers_=new _metalEvents.EventHandler;_this.appEventHandlers_.add((0,_metalDom.on)(_globals2.default.window,
"scroll",(0,_metalDebounce2.default)(_this.onScroll_.bind(_this),100)),(0,_metalDom.on)(_globals2.default.window,"load",_this.onLoad_.bind(_this)),(0,_metalDom.on)(_globals2.default.window,"popstate",_this.onPopstate_.bind(_this)));_this.on("startNavigate",_this.onStartNavigate_);_this.on("beforeNavigate",_this.onBeforeNavigate_);_this.on("beforeNavigate",_this.onBeforeNavigateDefault_,true);_this.on("beforeUnload",_this.onBeforeUnloadDefault_);_this.setLinkSelector(_this.linkSelector);_this.setFormSelector(_this.formSelector);
_this.maybeOverloadBeforeUnload_();return _this}_createClass(App,[{key:"addRoutes",value:function addRoutes(routes){var _this2=this;if(!Array.isArray(routes))routes=[routes];routes.forEach(function(route){if(!(route instanceof _Route2.default))route=new _Route2.default(route.path,route.handler);_this2.routes.push(route)});return this}},{key:"addSurfaces",value:function addSurfaces(surfaces){var _this3=this;if(!Array.isArray(surfaces))surfaces=[surfaces];surfaces.forEach(function(surface){if((0,_metal.isString)(surface))surface=
new _Surface2.default(surface);_this3.surfaces[surface.getId()]=surface});return this}},{key:"canNavigate",value:function canNavigate(url){var uri=_utils2.default.isWebUri(url);if(!uri)return false;var path=_utils2.default.getUrlPath(url);if(!this.isLinkSameOrigin_(uri.getHost()))return false;if(!this.isSameBasePath_(path))return false;if(uri.getHash()&&_utils2.default.isCurrentBrowserPath(path))return false;if(!this.findRoute(path))return false;return true}},{key:"clearScreensCache",value:function clearScreensCache(){var _this4=
this;Object.keys(this.screens).forEach(function(path){if(path===_this4.activePath)_this4.activeScreen.clearCache();else if(!(_this4.isNavigationPending&&_this4.pendingNavigate.path===path))_this4.removeScreen(path)})}},{key:"createScreenInstance",value:function createScreenInstance(path,route){if(!this.pendingNavigate&&path===this.activePath)return this.activeScreen;var screen=this.screens[path];if(!screen){var handler=route.getHandler();if(handler===_Screen2.default||_Screen2.default.isImplementedBy(handler.prototype))screen=
new handler;else screen=handler(route)||new _Screen2.default}return screen}},{key:"disposeInternal",value:function disposeInternal(){if(this.activeScreen)this.removeScreen(this.activePath);this.clearScreensCache();this.formEventHandler_.removeListener();this.linkEventHandler_.removeListener();this.appEventHandlers_.removeAllListeners();_get(App.prototype.__proto__||Object.getPrototypeOf(App.prototype),"disposeInternal",this).call(this)}},{key:"dispatch",value:function dispatch(){return this.navigate(_utils2.default.getCurrentBrowserPath(),
true)}},{key:"doNavigate_",value:function doNavigate_(path,opt_replaceHistory){var _this5=this;var route=this.findRoute(path);if(!route){this.pendingNavigate=_metalPromise2.default.reject(new _metalPromise2.default.CancellationError("No route for "+path));return this.pendingNavigate}this.stopPendingNavigate_();this.isNavigationPending=true;var nextScreen=this.createScreenInstance(path,route);return this.maybePreventDeactivate_().then(function(){return _this5.maybePreventActivate_(nextScreen)}).then(function(){return nextScreen.load(path)}).then(function(){_this5.navigationStrategy=
NavigationStrategy.SCHEDULE_LAST;if(_this5.activeScreen)_this5.activeScreen.deactivate();_this5.prepareNavigateHistory_(path,nextScreen,opt_replaceHistory);_this5.prepareNavigateSurfaces_(nextScreen,_this5.surfaces,_this5.extractParams(route,path))}).then(function(){return nextScreen.evaluateStyles(_this5.surfaces)}).then(function(){return nextScreen.flip(_this5.surfaces)}).then(function(){return nextScreen.evaluateScripts(_this5.surfaces)}).then(function(){return _this5.maybeUpdateScrollPositionState_()}).then(function(){return _this5.syncScrollPositionSyncThenAsync_()}).then(function(){return _this5.finalizeNavigate_(path,
nextScreen)}).then(function(){return _this5.maybeOverloadBeforeUnload_()}).catch(function(reason){_this5.isNavigationPending=false;_this5.handleNavigateError_(path,nextScreen,reason);throw reason;}).thenAlways(function(){_this5.navigationStrategy=NavigationStrategy.IMMEDIATE;if(_this5.scheduledNavigationQueue.length){var scheduledNavigation=_this5.scheduledNavigationQueue.shift();_this5.maybeNavigate_(scheduledNavigation.href,scheduledNavigation)}})}},{key:"extractParams",value:function extractParams(route,
path){return route.extractParams(this.getRoutePath(path))}},{key:"finalizeNavigate_",value:function finalizeNavigate_(path,nextScreen){nextScreen.activate();if(this.activeScreen&&!this.activeScreen.isCacheable())if(this.activeScreen!==nextScreen)this.removeScreen(this.activePath);this.activePath=path;this.activeScreen=nextScreen;this.browserPathBeforeNavigate=_utils2.default.getCurrentBrowserPathWithoutHash();this.screens[path]=nextScreen;this.isNavigationPending=false;this.pendingNavigate=null;_globals2.default.capturedFormElement=
null;_globals2.default.capturedFormButtonElement=null}},{key:"findRoute",value:function findRoute(path){path=this.getRoutePath(path);for(var i=0;i<this.routes.length;i++){var route=this.routes[i];if(route.matchesPath(path))return route}return null}},{key:"getAllowPreventNavigate",value:function getAllowPreventNavigate(){return this.allowPreventNavigate}},{key:"getBasePath",value:function getBasePath(){return this.basePath}},{key:"getDefaultTitle",value:function getDefaultTitle(){return this.defaultTitle}},
{key:"getFormSelector",value:function getFormSelector(){return this.formSelector}},{key:"getIgnoreQueryStringFromRoutePath",value:function getIgnoreQueryStringFromRoutePath(){return this.ignoreQueryStringFromRoutePath}},{key:"getLinkSelector",value:function getLinkSelector(){return this.linkSelector}},{key:"getLoadingCssClass",value:function getLoadingCssClass(){return this.loadingCssClass}},{key:"getRoutePath",value:function getRoutePath(path){if(this.getIgnoreQueryStringFromRoutePath()){path=_utils2.default.getUrlPathWithoutHashAndSearch(path);
return _utils2.default.getUrlPathWithoutHashAndSearch(path.substr(this.basePath.length))}path=_utils2.default.getUrlPathWithoutHash(path);return _utils2.default.getUrlPathWithoutHash(path.substr(this.basePath.length))}},{key:"getUpdateScrollPosition",value:function getUpdateScrollPosition(){return this.updateScrollPosition}},{key:"handleNavigateError_",value:function handleNavigateError_(path,nextScreen,error){var _this6=this;this.emit("navigationError",{error:error,nextScreen:nextScreen,path:path});
if(!_utils2.default.isCurrentBrowserPath(path))if(this.isNavigationPending&&this.pendingNavigate)this.pendingNavigate.thenAlways(function(){return _this6.removeScreen(path)},this);else this.removeScreen(path)}},{key:"hasRoutes",value:function hasRoutes(){return this.routes.length>0}},{key:"isLinkSameOrigin_",value:function isLinkSameOrigin_(host){var hostUri=new _metalUri2.default(host);var locationHostUri=new _metalUri2.default(_globals2.default.window.location.host);return hostUri.getPort()===locationHostUri.getPort()&&
hostUri.getHostname()===locationHostUri.getHostname()}},{key:"isSameBasePath_",value:function isSameBasePath_(path){return path.indexOf(this.basePath)===0}},{key:"lockHistoryScrollPosition_",value:function lockHistoryScrollPosition_(){var state=_globals2.default.window.history.state;if(!state)return;var winner=false;var switchScrollPositionRace=function switchScrollPositionRace(){_globals2.default.document.removeEventListener("scroll",switchScrollPositionRace,false);if(!winner){_globals2.default.window.scrollTo(state.scrollLeft,
state.scrollTop);winner=true}};_metal.async.nextTick(switchScrollPositionRace);_globals2.default.document.addEventListener("scroll",switchScrollPositionRace,false)}},{key:"maybeDisableNativeScrollRestoration",value:function maybeDisableNativeScrollRestoration(){if(this.nativeScrollRestorationSupported){this.nativeScrollRestoration_=_globals2.default.window.history.scrollRestoration;_globals2.default.window.history.scrollRestoration="manual"}}},{key:"maybeScheduleNavigation_",value:function maybeScheduleNavigation_(href,
event){if(this.isNavigationPending&&this.navigationStrategy===NavigationStrategy.SCHEDULE_LAST){this.scheduledNavigationQueue=[_metal.object.mixin({href:href,isScheduledNavigation:true},event)];return true}return false}},{key:"maybeNavigate_",value:function maybeNavigate_(href,event){if(!this.canNavigate(href))return;var isNavigationScheduled=this.maybeScheduleNavigation_(href,event);if(isNavigationScheduled){event.preventDefault();return}var navigateFailed=false;try{this.navigate(_utils2.default.getUrlPath(href),
false,event)}catch(err){navigateFailed=true}if(!navigateFailed&&!event.isScheduledNavigation)event.preventDefault()}},{key:"maybeOverloadBeforeUnload_",value:function maybeOverloadBeforeUnload_(){var _this7=this;if("function"===typeof window.onbeforeunload){window._onbeforeunload=window.onbeforeunload;window.onbeforeunload=function(event){_this7.emit("beforeUnload",event);if(event&&event.defaultPrevented)return true};window.onbeforeunload._overloaded=true}}},{key:"maybePreventActivate_",value:function maybePreventActivate_(nextScreen){var _this8=
this;return _metalPromise2.default.resolve().then(function(){return nextScreen.beforeActivate()}).then(function(prevent){if(prevent){_this8.pendingNavigate=_metalPromise2.default.reject(new _metalPromise2.default.CancellationError("Cancelled by next screen"));return _this8.pendingNavigate}})}},{key:"maybePreventDeactivate_",value:function maybePreventDeactivate_(){var _this9=this;return _metalPromise2.default.resolve().then(function(){if(_this9.activeScreen)return _this9.activeScreen.beforeDeactivate()}).then(function(prevent){if(prevent){_this9.pendingNavigate=
_metalPromise2.default.reject(new _metalPromise2.default.CancellationError("Cancelled by active screen"));return _this9.pendingNavigate}})}},{key:"maybeRepositionScrollToHashedAnchor",value:function maybeRepositionScrollToHashedAnchor(){var hash=_globals2.default.window.location.hash;if(hash){var anchorElement=_globals2.default.document.getElementById(hash.substring(1));if(anchorElement){var _utils$getNodeOffset=_utils2.default.getNodeOffset(anchorElement),offsetLeft=_utils$getNodeOffset.offsetLeft,
offsetTop=_utils$getNodeOffset.offsetTop;_globals2.default.window.scrollTo(offsetLeft,offsetTop)}}}},{key:"maybeRestoreNativeScrollRestoration",value:function maybeRestoreNativeScrollRestoration(){if(this.nativeScrollRestorationSupported&&this.nativeScrollRestoration_)_globals2.default.window.history.scrollRestoration=this.nativeScrollRestoration_}},{key:"maybeRestoreRedirectPathHash_",value:function maybeRestoreRedirectPathHash_(path,redirectPath,hash){if(redirectPath===_utils2.default.getUrlPathWithoutHash(path))return redirectPath+
hash;return redirectPath}},{key:"maybeUpdateScrollPositionState_",value:function maybeUpdateScrollPositionState_(){var hash=_globals2.default.window.location.hash;var anchorElement=_globals2.default.document.getElementById(hash.substring(1));if(anchorElement){var _utils$getNodeOffset2=_utils2.default.getNodeOffset(anchorElement),offsetLeft=_utils$getNodeOffset2.offsetLeft,offsetTop=_utils$getNodeOffset2.offsetTop;this.saveHistoryCurrentPageScrollPosition_(offsetTop,offsetLeft)}}},{key:"navigate",
value:function navigate(path,opt_replaceHistory,opt_event){if(!_utils2.default.isHtml5HistorySupported())throw new Error("HTML5 History is not supported. Senna will not intercept navigation.");if(opt_event){_globals2.default.capturedFormElement=opt_event.capturedFormElement;_globals2.default.capturedFormButtonElement=opt_event.capturedFormButtonElement}if(path===this.activePath)opt_replaceHistory=true;this.emit("beforeNavigate",{event:opt_event,path:path,replaceHistory:!!opt_replaceHistory});return this.pendingNavigate}},
{key:"onBeforeNavigate_",value:function onBeforeNavigate_(event){if(_globals2.default.capturedFormElement)event.form=_globals2.default.capturedFormElement}},{key:"onBeforeNavigateDefault_",value:function onBeforeNavigateDefault_(event){if(this.pendingNavigate)if(this.pendingNavigate.path===event.path||this.navigationStrategy===NavigationStrategy.SCHEDULE_LAST)return;this.emit("beforeUnload",event);this.emit("startNavigate",{form:event.form,path:event.path,replaceHistory:event.replaceHistory})}},{key:"onBeforeUnloadDefault_",
value:function onBeforeUnloadDefault_(event){var func=window._onbeforeunload;if(func&&!func._overloaded&&func())event.preventDefault()}},{key:"onDocClickDelegate_",value:function onDocClickDelegate_(event){if(event.altKey||event.ctrlKey||event.metaKey||event.shiftKey||event.button)return;this.maybeNavigate_(event.delegateTarget.href,event)}},{key:"onDocSubmitDelegate_",value:function onDocSubmitDelegate_(event){var form=event.delegateTarget;if(form.method==="get")return;event.capturedFormElement=
form;var buttonSelector="button:not([type]),button[type\x3dsubmit],input[type\x3dsubmit]";if((0,_metalDom.match)(_globals2.default.document.activeElement,buttonSelector))event.capturedFormButtonElement=_globals2.default.document.activeElement;else event.capturedFormButtonElement=form.querySelector(buttonSelector);this.maybeNavigate_(form.action,event)}},{key:"onLoad_",value:function onLoad_(){var _this10=this;this.skipLoadPopstate=true;setTimeout(function(){_this10.skipLoadPopstate=false},0);this.maybeRepositionScrollToHashedAnchor()}},
{key:"onPopstate_",value:function onPopstate_(event){if(this.skipLoadPopstate)return;if(_utils2.default.isCurrentBrowserPath(this.browserPathBeforeNavigate)){this.maybeRepositionScrollToHashedAnchor();return}var state=event.state;if(!state){if(_globals2.default.window.location.hash){if(this.redirectPath&&!_utils2.default.isCurrentBrowserPath(this.redirectPath))this.reloadPage();this.maybeRepositionScrollToHashedAnchor()}else this.reloadPage();return}if(state.senna){this.popstateScrollTop=state.scrollTop;
this.popstateScrollLeft=state.scrollLeft;if(!this.nativeScrollRestorationSupported)this.lockHistoryScrollPosition_();this.once("endNavigate",function(){if(state.referrer)_utils2.default.setReferrer(state.referrer)});var uri=new _metalUri2.default(state.path);uri.setHostname(_globals2.default.window.location.hostname);uri.setPort(_globals2.default.window.location.port);var isNavigationScheduled=this.maybeScheduleNavigation_(uri.toString(),{});if(isNavigationScheduled)return;this.navigate(state.path,
true)}}},{key:"onScroll_",value:function onScroll_(){if(this.captureScrollPositionFromScrollEvent)this.saveHistoryCurrentPageScrollPosition_(_globals2.default.window.pageYOffset,_globals2.default.window.pageXOffset)}},{key:"onStartNavigate_",value:function onStartNavigate_(event){var _this11=this;this.maybeDisableNativeScrollRestoration();this.captureScrollPositionFromScrollEvent=false;(0,_metalDom.addClasses)(_globals2.default.document.documentElement,this.loadingCssClass);var endNavigatePayload=
{form:event.form,path:event.path};this.pendingNavigate=this.doNavigate_(event.path,event.replaceHistory).catch(function(reason){endNavigatePayload.error=reason;throw reason;}).thenAlways(function(){if(!_this11.pendingNavigate&&!_this11.scheduledNavigationQueue.length){(0,_metalDom.removeClasses)(_globals2.default.document.documentElement,_this11.loadingCssClass);_this11.maybeRestoreNativeScrollRestoration();_this11.captureScrollPositionFromScrollEvent=true}_this11.emit("endNavigate",endNavigatePayload)});
this.pendingNavigate.path=event.path}},{key:"prefetch",value:function prefetch(path){var _this12=this;var route=this.findRoute(path);if(!route)return _metalPromise2.default.reject(new _metalPromise2.default.CancellationError("No route for "+path));var nextScreen=this.createScreenInstance(path,route);return nextScreen.load(path).then(function(){return _this12.screens[path]=nextScreen}).catch(function(reason){_this12.handleNavigateError_(path,nextScreen,reason);throw reason;})}},{key:"prepareNavigateHistory_",
value:function prepareNavigateHistory_(path,nextScreen,opt_replaceHistory){var title=nextScreen.getTitle();if(!(0,_metal.isString)(title))title=this.getDefaultTitle();var redirectPath=nextScreen.beforeUpdateHistoryPath(path);var hash=(new _metalUri2.default(path)).getHash();redirectPath=this.maybeRestoreRedirectPathHash_(path,redirectPath,hash);var historyState={form:(0,_metal.isDefAndNotNull)(_globals2.default.capturedFormElement),path:path,redirectPath:redirectPath,scrollLeft:0,scrollTop:0,senna:true};
if(opt_replaceHistory){historyState.scrollTop=this.popstateScrollTop;historyState.scrollLeft=this.popstateScrollLeft}this.updateHistory_(title,redirectPath,nextScreen.beforeUpdateHistoryState(historyState),opt_replaceHistory);this.redirectPath=redirectPath}},{key:"prepareNavigateSurfaces_",value:function prepareNavigateSurfaces_(nextScreen,surfaces,params){Object.keys(surfaces).forEach(function(id){var surfaceContent=nextScreen.getSurfaceContent(id,params);surfaces[id].addContent(nextScreen.getId(),
surfaceContent)})}},{key:"reloadPage",value:function reloadPage(){_globals2.default.window.location.reload()}},{key:"removeRoute",value:function removeRoute(route){return _metal.array.remove(this.routes,route)}},{key:"removeScreen",value:function removeScreen(path){var _this13=this;var screen=this.screens[path];if(screen){Object.keys(this.surfaces).forEach(function(surfaceId){return _this13.surfaces[surfaceId].remove(screen.getId())});screen.dispose();delete this.screens[path]}}},{key:"saveHistoryCurrentPageScrollPosition_",
value:function saveHistoryCurrentPageScrollPosition_(scrollTop,scrollLeft){var state=_globals2.default.window.history.state;if(state&&state.senna){var _ref=[scrollTop,scrollLeft];state.scrollTop=_ref[0];state.scrollLeft=_ref[1];_globals2.default.window.history.replaceState(state,null,null)}}},{key:"setAllowPreventNavigate",value:function setAllowPreventNavigate(allowPreventNavigate){this.allowPreventNavigate=allowPreventNavigate}},{key:"setBasePath",value:function setBasePath(basePath){this.basePath=
_utils2.default.removePathTrailingSlash(basePath)}},{key:"setDefaultTitle",value:function setDefaultTitle(defaultTitle){this.defaultTitle=defaultTitle}},{key:"setFormSelector",value:function setFormSelector(formSelector){this.formSelector=formSelector;if(this.formEventHandler_)this.formEventHandler_.removeListener();this.formEventHandler_=(0,_metalDom.delegate)(document,"submit",this.formSelector,this.onDocSubmitDelegate_.bind(this),this.allowPreventNavigate)}},{key:"setIgnoreQueryStringFromRoutePath",
value:function setIgnoreQueryStringFromRoutePath(ignoreQueryStringFromRoutePath){this.ignoreQueryStringFromRoutePath=ignoreQueryStringFromRoutePath}},{key:"setLinkSelector",value:function setLinkSelector(linkSelector){this.linkSelector=linkSelector;if(this.linkEventHandler_)this.linkEventHandler_.removeListener();this.linkEventHandler_=(0,_metalDom.delegate)(document,"click",this.linkSelector,this.onDocClickDelegate_.bind(this),this.allowPreventNavigate)}},{key:"setLoadingCssClass",value:function setLoadingCssClass(loadingCssClass){this.loadingCssClass=
loadingCssClass}},{key:"setUpdateScrollPosition",value:function setUpdateScrollPosition(updateScrollPosition){this.updateScrollPosition=updateScrollPosition}},{key:"stopPendingNavigate_",value:function stopPendingNavigate_(){if(this.pendingNavigate)this.pendingNavigate.cancel("Cancel pending navigation");this.pendingNavigate=null}},{key:"syncScrollPositionSyncThenAsync_",value:function syncScrollPositionSyncThenAsync_(){var _this14=this;var state=_globals2.default.window.history.state;if(!state)return;
var scrollTop=state.scrollTop;var scrollLeft=state.scrollLeft;var sync=function sync(){if(_this14.updateScrollPosition)_globals2.default.window.scrollTo(scrollLeft,scrollTop)};return new _metalPromise2.default(function(resolve){return sync()&_metal.async.nextTick(function(){return sync()&resolve()})})}},{key:"updateHistory_",value:function updateHistory_(title,path,state,opt_replaceHistory){var referrer=_globals2.default.window.location.href;if(state)state.referrer=referrer;if(opt_replaceHistory)_globals2.default.window.history.replaceState(state,
title,path);else _globals2.default.window.history.pushState(state,title,path);_utils2.default.setReferrer(referrer);var titleNode=_globals2.default.document.querySelector("title");if(titleNode)titleNode.innerHTML=title;else _globals2.default.document.title=title}}]);return App}(_metalEvents.EventEmitter);exports.default=App}});
/*
 Promises polyfill from Google's Closure Library.

      Copyright 2013 The Closure Library Authors. All Rights Reserved.

 NOTE(eduardo): Promise support is not ready on all supported browsers,
 therefore metal-promise is temporarily using Google's promises as polyfill.
 It supports cancellable promises and has clean and fast implementation.
*/
Liferay.Loader.define("frontend-js-metal-web$metal-promise@2.0.1/lib/promise/Promise",["module","exports","require","frontend-js-metal-web$metal"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});exports.CancellablePromise=undefined;var _metal=require("frontend-js-metal-web$metal");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function");
}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,
enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var Thenable=function Thenable(){};Thenable.prototype.then=function(){};Thenable.IMPLEMENTED_BY_PROP="$goog_Thenable";Thenable.addImplementation=function(ctor){ctor.prototype.then=ctor.prototype.then;ctor.prototype.$goog_Thenable=true};Thenable.isImplementedBy=function(object){if(!object)return false;try{return!!object.$goog_Thenable}catch(e){return false}};
var partial=function partial(fn){var args=Array.prototype.slice.call(arguments,1);return function(){var newArgs=args.slice();newArgs.push.apply(newArgs,arguments);return fn.apply(this,newArgs)}};var CancellablePromise=function CancellablePromise(resolver,opt_context){this.state_=CancellablePromise.State_.PENDING;this.result_=undefined;this.parent_=null;this.callbackEntries_=null;this.executing_=false;if(CancellablePromise.UNHANDLED_REJECTION_DELAY>0)this.unhandledRejectionId_=0;else if(CancellablePromise.UNHANDLED_REJECTION_DELAY===
0)this.hadUnhandledRejection_=false;try{var self=this;resolver.call(opt_context,function(value){self.resolve_(CancellablePromise.State_.FULFILLED,value)},function(reason){self.resolve_(CancellablePromise.State_.REJECTED,reason)})}catch(e){this.resolve_(CancellablePromise.State_.REJECTED,e)}};CancellablePromise.UNHANDLED_REJECTION_DELAY=0;CancellablePromise.State_={PENDING:0,BLOCKED:1,FULFILLED:2,REJECTED:3};CancellablePromise.CallbackEntry_=null;CancellablePromise.resolve=function(opt_value){return new CancellablePromise(function(resolve){resolve(opt_value)})};
CancellablePromise.reject=function(opt_reason){return new CancellablePromise(function(resolve,reject){reject(opt_reason)})};CancellablePromise.race=function(promises){return new CancellablePromise(function(resolve,reject){if(!promises.length)resolve(undefined);for(var i=0,promise;promise=promises[i];i++)promise.then(resolve,reject)})};CancellablePromise.all=function(promises){return new CancellablePromise(function(resolve,reject){var toFulfill=promises.length;var values=[];if(!toFulfill){resolve(values);
return}var onFulfill=function onFulfill(index,value){toFulfill--;values[index]=value;if(toFulfill===0)resolve(values)};var onReject=function onReject(reason){reject(reason)};for(var i=0,promise;promise=promises[i];i++)promise.then(partial(onFulfill,i),onReject)})};CancellablePromise.firstFulfilled=function(promises){return new CancellablePromise(function(resolve,reject){var toReject=promises.length;var reasons=[];if(!toReject){resolve(undefined);return}var onFulfill=function onFulfill(value){resolve(value)};
var onReject=function onReject(index,reason){toReject--;reasons[index]=reason;if(toReject===0)reject(reasons)};for(var i=0,promise;promise=promises[i];i++)promise.then(onFulfill,partial(onReject,i))})};CancellablePromise.prototype.then=function(opt_onFulfilled,opt_onRejected,opt_context){return this.addChildPromise_((0,_metal.isFunction)(opt_onFulfilled)?opt_onFulfilled:null,(0,_metal.isFunction)(opt_onRejected)?opt_onRejected:null,opt_context)};Thenable.addImplementation(CancellablePromise);CancellablePromise.prototype.thenAlways=
function(onResolved,opt_context){var callback=function callback(){try{onResolved.call(opt_context)}catch(err){CancellablePromise.handleRejection_.call(null,err)}};this.addCallbackEntry_({child:null,onRejected:callback,onFulfilled:callback});return this};CancellablePromise.prototype.thenCatch=function(onRejected,opt_context){return this.addChildPromise_(null,onRejected,opt_context)};CancellablePromise.prototype.catch=CancellablePromise.prototype.thenCatch;CancellablePromise.prototype.cancel=function(opt_message){if(this.state_===
CancellablePromise.State_.PENDING)_metal.async.run(function(){var err=new CancellablePromise.CancellationError(opt_message);err.IS_CANCELLATION_ERROR=true;this.cancelInternal_(err)},this)};CancellablePromise.prototype.cancelInternal_=function(err){if(this.state_===CancellablePromise.State_.PENDING)if(this.parent_)this.parent_.cancelChild_(this,err);else this.resolve_(CancellablePromise.State_.REJECTED,err)};CancellablePromise.prototype.cancelChild_=function(childPromise,err){if(!this.callbackEntries_)return;
var childCount=0;var childIndex=-1;for(var i=0,entry;entry=this.callbackEntries_[i];i++){var child=entry.child;if(child){childCount++;if(child===childPromise)childIndex=i;if(childIndex>=0&&childCount>1)break}}if(childIndex>=0)if(this.state_===CancellablePromise.State_.PENDING&&childCount===1)this.cancelInternal_(err);else{var callbackEntry=this.callbackEntries_.splice(childIndex,1)[0];this.executeCallback_(callbackEntry,CancellablePromise.State_.REJECTED,err)}};CancellablePromise.prototype.addCallbackEntry_=
function(callbackEntry){if((!this.callbackEntries_||!this.callbackEntries_.length)&&(this.state_===CancellablePromise.State_.FULFILLED||this.state_===CancellablePromise.State_.REJECTED))this.scheduleCallbacks_();if(!this.callbackEntries_)this.callbackEntries_=[];this.callbackEntries_.push(callbackEntry)};CancellablePromise.prototype.addChildPromise_=function(onFulfilled,onRejected,opt_context){var callbackEntry={child:null,onFulfilled:null,onRejected:null};callbackEntry.child=new CancellablePromise(function(resolve,
reject){callbackEntry.onFulfilled=onFulfilled?function(value){try{var result=onFulfilled.call(opt_context,value);resolve(result)}catch(err){reject(err)}}:resolve;callbackEntry.onRejected=onRejected?function(reason){try{var result=onRejected.call(opt_context,reason);if(!(0,_metal.isDef)(result)&&reason.IS_CANCELLATION_ERROR)reject(reason);else resolve(result)}catch(err){reject(err)}}:reject});callbackEntry.child.parent_=this;this.addCallbackEntry_(callbackEntry);return callbackEntry.child};CancellablePromise.prototype.unblockAndFulfill_=
function(value){if(this.state_!==CancellablePromise.State_.BLOCKED)throw new Error("CancellablePromise is not blocked.");this.state_=CancellablePromise.State_.PENDING;this.resolve_(CancellablePromise.State_.FULFILLED,value)};CancellablePromise.prototype.unblockAndReject_=function(reason){if(this.state_!==CancellablePromise.State_.BLOCKED)throw new Error("CancellablePromise is not blocked.");this.state_=CancellablePromise.State_.PENDING;this.resolve_(CancellablePromise.State_.REJECTED,reason)};CancellablePromise.prototype.resolve_=
function(state,x){if(this.state_!==CancellablePromise.State_.PENDING)return;if(this===x){state=CancellablePromise.State_.REJECTED;x=new TypeError("CancellablePromise cannot resolve to itself")}else if(Thenable.isImplementedBy(x)){x=x;this.state_=CancellablePromise.State_.BLOCKED;x.then(this.unblockAndFulfill_,this.unblockAndReject_,this);return}else if((0,_metal.isObject)(x))try{var then=x.then;if((0,_metal.isFunction)(then)){this.tryThen_(x,then);return}}catch(e){state=CancellablePromise.State_.REJECTED;
x=e}this.result_=x;this.state_=state;this.scheduleCallbacks_();if(state===CancellablePromise.State_.REJECTED&&!x.IS_CANCELLATION_ERROR)CancellablePromise.addUnhandledRejection_(this,x)};CancellablePromise.prototype.tryThen_=function(thenable,then){this.state_=CancellablePromise.State_.BLOCKED;var promise=this;var called=false;var resolve=function resolve(value){if(!called){called=true;promise.unblockAndFulfill_(value)}};var reject=function reject(reason){if(!called){called=true;promise.unblockAndReject_(reason)}};
try{then.call(thenable,resolve,reject)}catch(e){reject(e)}};CancellablePromise.prototype.scheduleCallbacks_=function(){if(!this.executing_){this.executing_=true;_metal.async.run(this.executeCallbacks_,this)}};CancellablePromise.prototype.executeCallbacks_=function(){while(this.callbackEntries_&&this.callbackEntries_.length){var entries=this.callbackEntries_;this.callbackEntries_=[];for(var i=0;i<entries.length;i++)this.executeCallback_(entries[i],this.state_,this.result_)}this.executing_=false};CancellablePromise.prototype.executeCallback_=
function(callbackEntry,state,result){if(state===CancellablePromise.State_.FULFILLED)callbackEntry.onFulfilled(result);else{this.removeUnhandledRejection_();callbackEntry.onRejected(result)}};CancellablePromise.prototype.removeUnhandledRejection_=function(){var p;if(CancellablePromise.UNHANDLED_REJECTION_DELAY>0)for(p=this;p&&p.unhandledRejectionId_;p=p.parent_){clearTimeout(p.unhandledRejectionId_);p.unhandledRejectionId_=0}else if(CancellablePromise.UNHANDLED_REJECTION_DELAY===0)for(p=this;p&&p.hadUnhandledRejection_;p=
p.parent_)p.hadUnhandledRejection_=false};CancellablePromise.addUnhandledRejection_=function(promise,reason){if(CancellablePromise.UNHANDLED_REJECTION_DELAY>0)promise.unhandledRejectionId_=setTimeout(function(){CancellablePromise.handleRejection_.call(null,reason)},CancellablePromise.UNHANDLED_REJECTION_DELAY);else if(CancellablePromise.UNHANDLED_REJECTION_DELAY===0){promise.hadUnhandledRejection_=true;_metal.async.run(function(){if(promise.hadUnhandledRejection_)CancellablePromise.handleRejection_.call(null,
reason)})}};CancellablePromise.handleRejection_=_metal.async.throwException;CancellablePromise.setUnhandledRejectionHandler=function(handler){CancellablePromise.handleRejection_=handler};CancellablePromise.CancellationError=function(_Error){_inherits(_class,_Error);function _class(opt_message){_classCallCheck(this,_class);var _this=_possibleConstructorReturn(this,_Error.call(this,opt_message));if(opt_message)_this.message=opt_message;return _this}return _class}(Error);CancellablePromise.CancellationError.prototype.name=
"cancel";exports.CancellablePromise=CancellablePromise;exports.default=CancellablePromise}});
Liferay.Loader.define("frontend-js-metal-web$metal-ajax@2.1.1/lib/Ajax",["module","exports","require","frontend-js-metal-web$metal","frontend-js-metal-web$metal-uri","frontend-js-metal-web$metal-promise"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});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 _metal=require("frontend-js-metal-web$metal");var _metalUri=require("frontend-js-metal-web$metal-uri");var _metalUri2=_interopRequireDefault(_metalUri);var _metalPromise=
require("frontend-js-metal-web$metal-promise");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function");}var Ajax=function(){function Ajax(){_classCallCheck(this,Ajax)}_createClass(Ajax,null,[{key:"parseResponseHeaders",value:function parseResponseHeaders(allHeaders){var headers=[];if(!allHeaders)return headers;var pairs=allHeaders.split("\r\n");
for(var i=0;i<pairs.length;i++){var index=pairs[i].indexOf(": ");if(index>0){var name=pairs[i].substring(0,index);var value=pairs[i].substring(index+2);headers.push({name:name,value:value})}}return headers}},{key:"request",value:function request(url,method,body,opt_headers,opt_params,opt_timeout,opt_sync,opt_withCredentials){url=url||"";method=method||"GET";var request=new XMLHttpRequest;var previousReadyState=0;var promise=(new _metalPromise.CancellablePromise(function(resolve,reject){request.onload=
function(){if(request.aborted){request.onerror();return}resolve(request)};request.onreadystatechange=function(){if(previousReadyState&&previousReadyState<3&&4===request.readyState)request.terminatedPrematurely=true;previousReadyState=request.readyState};request.onerror=function(){var message="Request error";if(request.terminatedPrematurely)message="Request terminated prematurely";var error=new Error(message);error.request=request;reject(error)}})).thenCatch(function(reason){request.abort();throw reason;
}).thenAlways(function(){clearTimeout(timeout)});url=new _metalUri2.default(url);if(opt_params)url.addParametersFromMultiMap(opt_params).toString();url=url.toString();request.open(method,url,!opt_sync);if(opt_withCredentials)request.withCredentials=true;if(opt_headers)opt_headers.names().forEach(function(name){request.setRequestHeader(name,opt_headers.getAll(name).join(", "))});request.send((0,_metal.isDef)(body)?body:null);if((0,_metal.isDefAndNotNull)(opt_timeout))var timeout=setTimeout(function(){promise.cancel("Request timeout")},
opt_timeout);return promise}}]);return Ajax}();exports.default=Ajax}});
Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/errors/errors",["module","exports","require"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function");}var errors=function errors(){_classCallCheck(this,errors)};errors.INVALID_STATUS="Invalid status code";errors.REQUEST_ERROR=
"Request error";errors.REQUEST_TIMEOUT="Request timeout";errors.REQUEST_PREMATURE_TERMINATION="Request terminated prematurely";exports.default=errors}});
Liferay.Loader.define("frontend-js-metal-web$metal-useragent@3.0.1/lib/UA",["module","exports","require","frontend-js-metal-web$metal"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});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 _metal=require("frontend-js-metal-web$metal");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function");}var UA=function(){function UA(){_classCallCheck(this,
UA)}_createClass(UA,null,[{key:"getNativeUserAgent",value:function getNativeUserAgent(){var navigator=UA.globals.window&&UA.globals.window.navigator;if(navigator){var userAgent=navigator.userAgent;if(userAgent)return userAgent}return""}},{key:"getNativePlatform",value:function getNativePlatform(){var navigator=UA.globals.window&&UA.globals.window.navigator;if(navigator){var platform=navigator.platform;if(platform)return platform}return""}},{key:"matchPlatform",value:function matchPlatform(str){return UA.platform.indexOf(str)!==
-1}},{key:"matchUserAgent",value:function matchUserAgent(str){return UA.userAgent.indexOf(str)!==-1}},{key:"testUserAgent",value:function testUserAgent(){var userAgent=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"";var platform=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";UA.userAgent=userAgent;UA.platform=platform;UA.isMac=UA.matchPlatform("Mac");UA.isWin=UA.matchPlatform("Win");UA.isOpera=UA.matchUserAgent("Opera")||UA.matchUserAgent("OPR");UA.isIe=UA.matchUserAgent("Trident")||
UA.matchUserAgent("MSIE");UA.isEdge=UA.matchUserAgent("Edge");UA.isIeOrEdge=UA.isIe||UA.isEdge;UA.isChrome=(UA.matchUserAgent("Chrome")||UA.matchUserAgent("CriOS"))&&!UA.isOpera&&!UA.isEdge;UA.isSafari=UA.matchUserAgent("Safari")&&!(UA.isChrome||UA.isOpera||UA.isEdge);UA.isFirefox=UA.matchUserAgent("Firefox")}}]);return UA}();Object.defineProperty(UA,"globals",{writable:true,value:{window:(0,_metal.isServerSide)()?null:window}});UA.testUserAgent(UA.getNativeUserAgent(),UA.getNativePlatform());exports.default=
UA}});
Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/screen/RequestScreen",["module","exports","require","frontend-js-metal-web$metal","frontend-js-metal-web$metal-ajax","frontend-js-metal-web$metal-structs","frontend-js-metal-web$metal-promise","../errors/errors","../utils/utils","../globals/globals","./Screen","frontend-js-metal-web$metal-uri","frontend-js-metal-web$metal-useragent"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",
{value:true});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 _metal=require("frontend-js-metal-web$metal");var _metalAjax=require("frontend-js-metal-web$metal-ajax");var _metalAjax2=_interopRequireDefault(_metalAjax);var _metalStructs=require("frontend-js-metal-web$metal-structs");var _metalPromise=require("frontend-js-metal-web$metal-promise");var _metalPromise2=_interopRequireDefault(_metalPromise);var _errors=require("../errors/errors");var _errors2=_interopRequireDefault(_errors);var _utils=require("../utils/utils");var _utils2=_interopRequireDefault(_utils);
var _globals=require("../globals/globals");var _globals2=_interopRequireDefault(_globals);var _Screen2=require("./Screen");var _Screen3=_interopRequireDefault(_Screen2);var _metalUri=require("frontend-js-metal-web$metal-uri");var _metalUri2=_interopRequireDefault(_metalUri);var _metalUseragent=require("frontend-js-metal-web$metal-useragent");var _metalUseragent2=_interopRequireDefault(_metalUseragent);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,
Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function");}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);
subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var RequestScreen=function(_Screen){_inherits(RequestScreen,_Screen);function RequestScreen(){_classCallCheck(this,RequestScreen);var _this=_possibleConstructorReturn(this,(RequestScreen.__proto__||Object.getPrototypeOf(RequestScreen)).call(this));
_this.cacheable=true;_this.httpHeaders={"X-PJAX":"true","X-Requested-With":"XMLHttpRequest"};_this.httpMethod=RequestScreen.GET;_this.request=null;_this.timeout=3E4;return _this}_createClass(RequestScreen,[{key:"assertValidResponseStatusCode",value:function assertValidResponseStatusCode(status){if(!this.isValidResponseStatusCode(status)){var error=new Error(_errors2.default.INVALID_STATUS);error.invalidStatus=true;error.statusCode=status;throw error;}}},{key:"beforeUpdateHistoryPath",value:function beforeUpdateHistoryPath(path){var redirectPath=
this.getRequestPath();if(redirectPath&&redirectPath!==path)return redirectPath;return path}},{key:"beforeUpdateHistoryState",value:function beforeUpdateHistoryState(state){if(state.senna&&state.form&&state.redirectPath===state.path)return null;return state}},{key:"formatLoadPath",value:function formatLoadPath(path){var uri=new _metalUri2.default(path);uri.setHostname(_globals2.default.window.location.hostname);uri.setProtocol(_globals2.default.window.location.protocol);if(_globals2.default.window.location.port)uri.setPort(_globals2.default.window.location.port);
if(_metalUseragent2.default.isIeOrEdge&&this.httpMethod===RequestScreen.GET)return uri.makeUnique().toString();return uri.toString()}},{key:"getHttpHeaders",value:function getHttpHeaders(){return this.httpHeaders}},{key:"getHttpMethod",value:function getHttpMethod(){return this.httpMethod}},{key:"getRequestPath",value:function getRequestPath(){var request=this.getRequest();if(request){var requestPath=request.requestPath;var responseUrl=this.maybeExtractResponseUrlFromRequest(request);if(responseUrl)requestPath=
responseUrl;if(_metalUseragent2.default.isIeOrEdge&&this.httpMethod===RequestScreen.GET)requestPath=(new _metalUri2.default(requestPath)).removeUnique().toString();return _utils2.default.getUrlPath(requestPath)}return null}},{key:"getRequest",value:function getRequest(){return this.request}},{key:"getTimeout",value:function getTimeout(){return this.timeout}},{key:"isValidResponseStatusCode",value:function isValidResponseStatusCode(statusCode){return statusCode>=200&&statusCode<=399}},{key:"getFormData",
value:function getFormData(formElement,submittedButtonElement){var formData=new FormData(formElement);this.maybeAppendSubmitButtonValue_(formData,submittedButtonElement);return formData}},{key:"load",value:function load(path){var _this2=this;var cache=this.getCache();if((0,_metal.isDefAndNotNull)(cache))return _metalPromise2.default.resolve(cache);var body=null;var httpMethod=this.httpMethod;var headers=new _metalStructs.MultiMap;Object.keys(this.httpHeaders).forEach(function(header){return headers.add(header,
_this2.httpHeaders[header])});if(_globals2.default.capturedFormElement){this.addSafariXHRPolyfill();body=this.getFormData(_globals2.default.capturedFormElement,_globals2.default.capturedFormButtonElement);httpMethod=RequestScreen.POST;if(_metalUseragent2.default.isIeOrEdge)headers.add("If-None-Match",'"0"')}var requestPath=this.formatLoadPath(path);return _metalAjax2.default.request(requestPath,httpMethod,body,headers,null,this.timeout).then(function(xhr){_this2.removeSafariXHRPolyfill();_this2.setRequest(xhr);
_this2.assertValidResponseStatusCode(xhr.status);if(httpMethod===RequestScreen.GET&&_this2.isCacheable())_this2.addCache(xhr.responseText);xhr.requestPath=requestPath;return xhr.responseText}).catch(function(reason){_this2.removeSafariXHRPolyfill();switch(reason.message){case _errors2.default.REQUEST_TIMEOUT:reason.timeout=true;break;case _errors2.default.REQUEST_ERROR:reason.requestError=true;break;case _errors2.default.REQUEST_PREMATURE_TERMINATION:reason.requestError=true;reason.requestPrematureTermination=
true;break}throw reason;})}},{key:"maybeAppendSubmitButtonValue_",value:function maybeAppendSubmitButtonValue_(formData,submittedButtonElement){if(submittedButtonElement&&submittedButtonElement.name)formData.append(submittedButtonElement.name,submittedButtonElement.value)}},{key:"maybeExtractResponseUrlFromRequest",value:function maybeExtractResponseUrlFromRequest(request){var responseUrl=request.responseURL;if(responseUrl)return responseUrl;return request.getResponseHeader(RequestScreen.X_REQUEST_URL_HEADER)}},
{key:"addSafariXHRPolyfill",value:function addSafariXHRPolyfill(){if(_globals2.default.capturedFormElement&&_metalUseragent2.default.isSafari){var inputs=_globals2.default.capturedFormElement.querySelectorAll('input[type\x3d"file"]:not([disabled])');for(var index=0;index<inputs.length;index++){var input=inputs[index];if(input.files.length>0)return;input.setAttribute("data-safari-temp-disabled","true");input.setAttribute("disabled","")}}}},{key:"removeSafariXHRPolyfill",value:function removeSafariXHRPolyfill(){if(_globals2.default.capturedFormElement&&
_metalUseragent2.default.isSafari){var inputs=_globals2.default.capturedFormElement.querySelectorAll('input[type\x3d"file"][data-safari-temp-disabled]');for(var index=0;index<inputs.length;index++){var input=inputs[index];input.removeAttribute("data-safari-temp-disabled");input.removeAttribute("disabled")}}}},{key:"setHttpHeaders",value:function setHttpHeaders(httpHeaders){this.httpHeaders=httpHeaders}},{key:"setHttpMethod",value:function setHttpMethod(httpMethod){this.httpMethod=httpMethod.toLowerCase()}},
{key:"setRequest",value:function setRequest(request){this.request=request}},{key:"setTimeout",value:function setTimeout(timeout){this.timeout=timeout}}]);return RequestScreen}(_Screen3.default);RequestScreen.GET="get";RequestScreen.POST="post";RequestScreen.X_REQUEST_URL_HEADER="X-Request-URL";exports.default=RequestScreen}});
Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/screen/HtmlScreen",["module","exports","require","frontend-js-metal-web$metal","frontend-js-metal-web$metal-dom","frontend-js-metal-web$metal-promise","../globals/globals","./RequestScreen","../surface/Surface","frontend-js-metal-web$metal-useragent","frontend-js-metal-web$metal-uri","../utils/utils"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});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 _get=function get(object,
property,receiver){if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null)return undefined;else return get(parent,property,receiver)}else if("value"in desc)return desc.value;else{var getter=desc.get;if(getter===undefined)return undefined;return getter.call(receiver)}};var _metal=require("frontend-js-metal-web$metal");var _metalDom=require("frontend-js-metal-web$metal-dom");
var _metalPromise=require("frontend-js-metal-web$metal-promise");var _metalPromise2=_interopRequireDefault(_metalPromise);var _globals=require("../globals/globals");var _globals2=_interopRequireDefault(_globals);var _RequestScreen2=require("./RequestScreen");var _RequestScreen3=_interopRequireDefault(_RequestScreen2);var _Surface=require("../surface/Surface");var _Surface2=_interopRequireDefault(_Surface);var _metalUseragent=require("frontend-js-metal-web$metal-useragent");var _metalUseragent2=_interopRequireDefault(_metalUseragent);
var _metalUri=require("frontend-js-metal-web$metal-uri");var _metalUri2=_interopRequireDefault(_metalUri);var _utils=require("../utils/utils");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function");}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=
superClass}var HtmlScreen=function(_RequestScreen){_inherits(HtmlScreen,_RequestScreen);function HtmlScreen(){_classCallCheck(this,HtmlScreen);var _this=_possibleConstructorReturn(this,(HtmlScreen.__proto__||Object.getPrototypeOf(HtmlScreen)).call(this));_this.metaTagsSelector="meta";_this.titleSelector="title";return _this}_createClass(HtmlScreen,[{key:"activate",value:function activate(){_get(HtmlScreen.prototype.__proto__||Object.getPrototypeOf(HtmlScreen.prototype),"activate",this).call(this);
this.releaseVirtualDocument();this.pendingStyles=null}},{key:"allocateVirtualDocumentForContent",value:function allocateVirtualDocumentForContent(htmlString){if(!this.virtualDocument)this.virtualDocument=_globals2.default.document.createElement("html");this.copyNodeAttributesFromContent_(htmlString,this.virtualDocument);this.virtualDocument.innerHTML=htmlString}},{key:"appendStyleIntoDocument_",value:function appendStyleIntoDocument_(newStyle){var isTemporaryStyle=(0,_metalDom.match)(newStyle,HtmlScreen.selectors.stylesTemporary);
if(isTemporaryStyle)this.pendingStyles.push(newStyle);if(newStyle.id){var styleInDoc=_globals2.default.document.getElementById(newStyle.id);if(styleInDoc){styleInDoc.parentNode.insertBefore(newStyle,styleInDoc.nextSibling);return}}_globals2.default.document.head.appendChild(newStyle)}},{key:"assertSameBodyIdInVirtualDocument",value:function assertSameBodyIdInVirtualDocument(){var bodySurface=this.virtualDocument.querySelector("body");if(!_globals2.default.document.body.id)_globals2.default.document.body.id=
"senna_surface_"+(0,_metal.getUid)();if(bodySurface)bodySurface.id=_globals2.default.document.body.id}},{key:"copyNodeAttributesFromContent_",value:function copyNodeAttributesFromContent_(content,node){content=content.replace(/[<]\s*html/ig,"\x3csenna");content=content.replace(/\/html\s*>/ig,"/senna\x3e");var placeholder=void 0;if(_metalUseragent2.default.isIe){var tempNode=_globals2.default.document.createRange().createContextualFragment(content);placeholder=tempNode.querySelector("senna")}else{node.innerHTML=
content;placeholder=node.querySelector("senna")}if(placeholder){_utils2.default.clearNodeAttributes(node);_utils2.default.copyNodeAttributes(placeholder,node)}}},{key:"disposeInternal",value:function disposeInternal(){this.disposePendingStyles();_get(HtmlScreen.prototype.__proto__||Object.getPrototypeOf(HtmlScreen.prototype),"disposeInternal",this).call(this)}},{key:"disposePendingStyles",value:function disposePendingStyles(){if(this.pendingStyles)_utils2.default.removeElementsFromDocument(this.pendingStyles)}},
{key:"evaluateScripts",value:function evaluateScripts(surfaces){var _this2=this;var evaluateTrackedScripts=this.evaluateTrackedResources_(_metalDom.globalEval.runScriptsInElement,HtmlScreen.selectors.scripts,HtmlScreen.selectors.scriptsTemporary,HtmlScreen.selectors.scriptsPermanent);return evaluateTrackedScripts.then(function(){return _get(HtmlScreen.prototype.__proto__||Object.getPrototypeOf(HtmlScreen.prototype),"evaluateScripts",_this2).call(_this2,surfaces)})}},{key:"evaluateStyles",value:function evaluateStyles(surfaces){var _this3=
this;this.pendingStyles=[];var evaluateTrackedStyles=this.evaluateTrackedResources_(_metalDom.globalEvalStyles.runStylesInElement,HtmlScreen.selectors.styles,HtmlScreen.selectors.stylesTemporary,HtmlScreen.selectors.stylesPermanent,this.appendStyleIntoDocument_.bind(this));return evaluateTrackedStyles.then(function(){return _get(HtmlScreen.prototype.__proto__||Object.getPrototypeOf(HtmlScreen.prototype),"evaluateStyles",_this3).call(_this3,surfaces)})}},{key:"evaluateFavicon_",value:function evaluateFavicon_(){var _this4=
this;var resourcesInVirtual=this.virtualQuerySelectorAll_(HtmlScreen.selectors.favicon);var resourcesInDocument=this.querySelectorAll_(HtmlScreen.selectors.favicon);return new _metalPromise2.default(function(resolve){_utils2.default.removeElementsFromDocument(resourcesInDocument);_this4.runFaviconInElement_(resourcesInVirtual).then(function(){return resolve()})})}},{key:"evaluateTrackedResources_",value:function evaluateTrackedResources_(evaluatorFn,selector,selectorTemporary,selectorPermanent,opt_appendResourceFn){var _this5=
this;var tracked=this.virtualQuerySelectorAll_(selector);var temporariesInDoc=this.querySelectorAll_(selectorTemporary);var permanentsInDoc=this.querySelectorAll_(selectorPermanent);permanentsInDoc.forEach(function(resource){var resourceKey=_this5.getResourceKey_(resource);if(resourceKey)HtmlScreen.permanentResourcesInDoc[resourceKey]=true});var frag=(0,_metalDom.buildFragment)();tracked.forEach(function(resource){var resourceKey=_this5.getResourceKey_(resource);if(!HtmlScreen.permanentResourcesInDoc[resourceKey])frag.appendChild(resource);
if(resourceKey&&(0,_metalDom.match)(resource,selectorPermanent))HtmlScreen.permanentResourcesInDoc[resourceKey]=true});return new _metalPromise2.default(function(resolve){evaluatorFn(frag,function(){_utils2.default.removeElementsFromDocument(temporariesInDoc);resolve()},opt_appendResourceFn)})}},{key:"flip",value:function flip(surfaces){var _this6=this;return _get(HtmlScreen.prototype.__proto__||Object.getPrototypeOf(HtmlScreen.prototype),"flip",this).call(this,surfaces).then(function(){_utils2.default.clearNodeAttributes(_globals2.default.document.documentElement);
_utils2.default.copyNodeAttributes(_this6.virtualDocument,_globals2.default.document.documentElement);_this6.evaluateFavicon_();_this6.updateMetaTags_()})}},{key:"updateMetaTags_",value:function updateMetaTags_(){var currentMetaNodes=this.querySelectorAll_("meta");var metasFromVirtualDocument=this.metas;if(currentMetaNodes){_utils2.default.removeElementsFromDocument(currentMetaNodes);if(metasFromVirtualDocument)metasFromVirtualDocument.forEach(function(meta){return _globals2.default.document.head.appendChild(meta)})}}},
{key:"getResourceKey_",value:function getResourceKey_(resource){return resource.id||resource.href||resource.src||""}},{key:"getSurfaceContent",value:function getSurfaceContent(surfaceId){var surface=this.virtualDocument.querySelector("#"+surfaceId);if(surface){var defaultChild=surface.querySelector("#"+surfaceId+"-"+_Surface2.default.DEFAULT);if(defaultChild)return defaultChild.innerHTML;return surface.innerHTML}}},{key:"getTitleSelector",value:function getTitleSelector(){return this.titleSelector}},
{key:"load",value:function load(path){var _this7=this;return _get(HtmlScreen.prototype.__proto__||Object.getPrototypeOf(HtmlScreen.prototype),"load",this).call(this,path).then(function(content){_this7.allocateVirtualDocumentForContent(content);_this7.resolveTitleFromVirtualDocument();_this7.resolveMetaTagsFromVirtualDocument();_this7.assertSameBodyIdInVirtualDocument();if(_metalUseragent2.default.isIe)_this7.makeTemporaryStylesHrefsUnique_();return content})}},{key:"makeTemporaryStylesHrefsUnique_",
value:function makeTemporaryStylesHrefsUnique_(){var _this8=this;var temporariesInDoc=this.virtualQuerySelectorAll_(HtmlScreen.selectors.stylesTemporary);temporariesInDoc.forEach(function(style){return _this8.replaceStyleAndMakeUnique_(style)})}},{key:"replaceStyleAndMakeUnique_",value:function replaceStyleAndMakeUnique_(style){if(style.href){var newStyle=_globals2.default.document.createElement(style.tagName);style.href=(new _metalUri2.default(style.href)).makeUnique().toString();_utils2.default.copyNodeAttributes(style,
newStyle);style.parentNode.replaceChild(newStyle,style);style.disabled=true}}},{key:"runFaviconInElement_",value:function runFaviconInElement_(elements){return new _metalPromise2.default(function(resolve){elements.forEach(function(element){return document.head.appendChild(_metalUseragent2.default.isIe?element:_utils2.default.setElementWithRandomHref(element))});resolve()})}},{key:"virtualQuerySelectorAll_",value:function virtualQuerySelectorAll_(selector){return Array.prototype.slice.call(this.virtualDocument.querySelectorAll(selector))}},
{key:"querySelectorAll_",value:function querySelectorAll_(selector){return Array.prototype.slice.call(_globals2.default.document.querySelectorAll(selector))}},{key:"releaseVirtualDocument",value:function releaseVirtualDocument(){this.virtualDocument=null}},{key:"resolveTitleFromVirtualDocument",value:function resolveTitleFromVirtualDocument(){var title=this.virtualDocument.querySelector(this.titleSelector);if(title)this.setTitle(title.textContent.trim())}},{key:"resolveMetaTagsFromVirtualDocument",
value:function resolveMetaTagsFromVirtualDocument(){var metas=this.virtualQuerySelectorAll_(this.metaTagsSelector);if(metas)this.setMetas(metas)}},{key:"setTitleSelector",value:function setTitleSelector(titleSelector){this.titleSelector=titleSelector}}]);return HtmlScreen}(_RequestScreen3.default);var ignoreFavicon=':not([rel\x3d"Shortcut Icon"]):not([rel\x3d"shortcut icon"]):not([rel\x3d"icon"]):not([href$\x3d"favicon.icon"])';HtmlScreen.selectors={favicon:'link[rel\x3d"Shortcut Icon"],link[rel\x3d"shortcut icon"],link[rel\x3d"icon"],link[href$\x3d"favicon.icon"]',
scripts:"script[data-senna-track]",scriptsPermanent:'script[data-senna-track\x3d"permanent"]',scriptsTemporary:'script[data-senna-track\x3d"temporary"]',styles:"style[data-senna-track],link[data-senna-track]"+ignoreFavicon,stylesPermanent:'style[data-senna-track\x3d"permanent"],link[data-senna-track\x3d"permanent"]'+ignoreFavicon,stylesTemporary:'style[data-senna-track\x3d"temporary"],link[data-senna-track\x3d"temporary"]'+ignoreFavicon};HtmlScreen.permanentResourcesInDoc={};exports.default=HtmlScreen}});
Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/app/AppDataAttributeHandler",["module","exports","require","frontend-js-metal-web$metal","./dataAttributes","../globals/globals","./App","../screen/HtmlScreen","../route/Route"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});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 _metal=require("frontend-js-metal-web$metal");var _dataAttributes=require("./dataAttributes");var _dataAttributes2=_interopRequireDefault(_dataAttributes);
var _globals=require("../globals/globals");var _globals2=_interopRequireDefault(_globals);var _App=require("./App");var _App2=_interopRequireDefault(_App);var _HtmlScreen=require("../screen/HtmlScreen");var _HtmlScreen2=_interopRequireDefault(_HtmlScreen);var _Route=require("../route/Route");var _Route2=_interopRequireDefault(_Route);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function");
}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,
enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var AppDataAttributeHandler=function(_Disposable){_inherits(AppDataAttributeHandler,_Disposable);function AppDataAttributeHandler(){_classCallCheck(this,AppDataAttributeHandler);var _this=_possibleConstructorReturn(this,(AppDataAttributeHandler.__proto__||Object.getPrototypeOf(AppDataAttributeHandler)).call(this));_this.app=null;_this.baseElement=
null;return _this}_createClass(AppDataAttributeHandler,[{key:"handle",value:function handle(){if(!(0,_metal.isElement)(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(_dataAttributes2.default.senna))return;if(this.app)throw new Error("Senna app was already initialized.");this.app=new _App2.default;this.maybeAddRoutes_();this.maybeAddSurfaces_();
this.maybeSetBasePath_();this.maybeSetLinkSelector_();this.maybeSetLoadingCssClass_();this.maybeSetUpdateScrollPosition_();this.maybeDispatch_()}},{key:"disposeInternal",value:function disposeInternal(){if(this.app)this.app.dispose()}},{key:"getApp",value:function getApp(){return this.app}},{key:"getBaseElement",value:function getBaseElement(){return this.baseElement}},{key:"maybeAddRoutes_",value:function maybeAddRoutes_(){var _this2=this;this.querySelectorAllAsArray_('link[rel\x3d"senna-route"]').forEach(function(link){return _this2.maybeParseLinkRoute_(link)});
if(!this.app.hasRoutes())this.app.addRoutes(new _Route2.default(/.*/,_HtmlScreen2.default))}},{key:"maybeAddSurfaces_",value:function maybeAddSurfaces_(){var _this3=this;var surfacesSelector="["+_dataAttributes2.default.surface+"]";this.querySelectorAllAsArray_(surfacesSelector).forEach(function(surfaceElement){_this3.updateElementIdIfSpecialSurface_(surfaceElement);_this3.app.addSurfaces(surfaceElement.id)})}},{key:"maybeDispatch_",value:function maybeDispatch_(){if(this.baseElement.hasAttribute(_dataAttributes2.default.dispatch))this.app.dispatch()}},
{key:"maybeParseLinkRoute_",value:function maybeParseLinkRoute_(link){var route=new _Route2.default(this.maybeParseLinkRoutePath_(link),this.maybeParseLinkRouteHandler_(link));this.app.addRoutes(route)}},{key:"maybeParseLinkRouteHandler_",value:function maybeParseLinkRouteHandler_(link){var handler=link.getAttribute("type");if((0,_metal.isDefAndNotNull)(handler))handler=_metal.object.getObjectByName(handler);return handler}},{key:"maybeParseLinkRoutePath_",value:function maybeParseLinkRoutePath_(link){var path=
link.getAttribute("href");if((0,_metal.isDefAndNotNull)(path))if(path.indexOf("regex:")===0)path=new RegExp(path.substring(6));return path}},{key:"maybeSetBasePath_",value:function maybeSetBasePath_(){var basePath=this.baseElement.getAttribute(_dataAttributes2.default.basePath);if((0,_metal.isDefAndNotNull)(basePath))this.app.setBasePath(basePath)}},{key:"maybeSetLinkSelector_",value:function maybeSetLinkSelector_(){var linkSelector=this.baseElement.getAttribute(_dataAttributes2.default.linkSelector);
if((0,_metal.isDefAndNotNull)(linkSelector))this.app.setLinkSelector(linkSelector)}},{key:"maybeSetLoadingCssClass_",value:function maybeSetLoadingCssClass_(){var loadingCssClass=this.baseElement.getAttribute(_dataAttributes2.default.loadingCssClass);if((0,_metal.isDefAndNotNull)(loadingCssClass))this.app.setLoadingCssClass(loadingCssClass)}},{key:"maybeSetUpdateScrollPosition_",value:function maybeSetUpdateScrollPosition_(){var updateScrollPosition=this.baseElement.getAttribute(_dataAttributes2.default.updateScrollPosition);
if((0,_metal.isDefAndNotNull)(updateScrollPosition))if(updateScrollPosition==="false")this.app.setUpdateScrollPosition(false);else this.app.setUpdateScrollPosition(true)}},{key:"querySelectorAllAsArray_",value:function querySelectorAllAsArray_(selector){return Array.prototype.slice.call(_globals2.default.document.querySelectorAll(selector))}},{key:"updateElementIdIfSpecialSurface_",value:function updateElementIdIfSpecialSurface_(element){if(!element.id&&element===_globals2.default.document.body)element.id=
"senna_surface_"+(0,_metal.getUid)()}},{key:"setBaseElement",value:function setBaseElement(baseElement){this.baseElement=baseElement}}]);return AppDataAttributeHandler}(_metal.Disposable);exports.default=AppDataAttributeHandler}});
Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/app/dataAttributeHandler",["module","exports","require","../globals/globals","./AppDataAttributeHandler"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});var _globals=require("../globals/globals");var _globals2=_interopRequireDefault(_globals);var _AppDataAttributeHandler=require("./AppDataAttributeHandler");var _AppDataAttributeHandler2=_interopRequireDefault(_AppDataAttributeHandler);
function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var dataAttributeHandler=new _AppDataAttributeHandler2.default;_globals2.default.document.addEventListener("DOMContentLoaded",function(){dataAttributeHandler.setBaseElement(_globals2.default.document.body);dataAttributeHandler.handle()});exports.default=dataAttributeHandler}});
Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/app/version",["module","exports","require"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});var version="2.7.9";exports.default=version}});
Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/senna",["module","exports","require","./utils/utils","./app/dataAttributeHandler","./app/App","./screen/HtmlScreen","./screen/RequestScreen","./route/Route","./screen/Screen","./app/version"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});exports.version=exports.Screen=exports.RequestScreen=exports.Route=exports.HtmlScreen=exports.App=exports.utils=exports.dataAttributeHandler=
undefined;var _utils=require("./utils/utils");var _utils2=_interopRequireDefault(_utils);var _dataAttributeHandler=require("./app/dataAttributeHandler");var _dataAttributeHandler2=_interopRequireDefault(_dataAttributeHandler);var _App=require("./app/App");var _App2=_interopRequireDefault(_App);var _HtmlScreen=require("./screen/HtmlScreen");var _HtmlScreen2=_interopRequireDefault(_HtmlScreen);var _RequestScreen=require("./screen/RequestScreen");var _RequestScreen2=_interopRequireDefault(_RequestScreen);
var _Route=require("./route/Route");var _Route2=_interopRequireDefault(_Route);var _Screen=require("./screen/Screen");var _Screen2=_interopRequireDefault(_Screen);var _version=require("./app/version");var _version2=_interopRequireDefault(_version);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=_App2.default;exports.dataAttributeHandler=_dataAttributeHandler2.default;exports.utils=_utils2.default;exports.App=_App2.default;exports.HtmlScreen=_HtmlScreen2.default;
exports.Route=_Route2.default;exports.RequestScreen=_RequestScreen2.default;exports.Screen=_Screen2.default;exports.version=_version2.default}});
Liferay.Loader.define("frontend-js-web@4.0.29/liferay/aop/AOP.es",["module","exports","require"],function(module,exports,require){var define=undefined;Object.defineProperty(exports,"__esModule",{value:true});exports.AOP=exports["default"]=void 0;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a 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)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}var ALTER_RETURN="alterReturn";var HALT="halt";var METAL_AOP="__METAL_AOP__";var PREVENT="prevent";var AOP=function(){function AOP(obj,fnName){_classCallCheck(this,
AOP);this.after_=[];this.before_=[];this.fnName_=fnName;this.fn_=obj[fnName];this.obj_=obj}_createClass(AOP,[{key:"createHandle",value:function createHandle(fn,before){return{detach:this.detach_.bind(this,fn,before)}}},{key:"detach_",value:function detach_(fn,before){var listenerArray=before?this.before_:this.after_;listenerArray.splice(listenerArray.indexOf(fn),1)}},{key:"exec",value:function exec(){var listenerRetVal;var prevented=false;var retVal;for(var _len=arguments.length,args=new Array(_len),
_key=0;_key<_len;_key++)args[_key]=arguments[_key];for(var i=0;i<this.before_.length;i++){listenerRetVal=this.before_[i].apply(this.obj_,args);if(listenerRetVal&&listenerRetVal.type)if(listenerRetVal.type===HALT)return listenerRetVal.value;else if(listenerRetVal.type===PREVENT)prevented=true}if(!prevented)retVal=this.fn_.apply(this.obj_,args);AOP.currentRetVal=retVal;AOP.originalRetVal=retVal;for(var _i=0;_i<this.after_.length;_i++){listenerRetVal=this.after_[_i].apply(this.obj_,args);if(listenerRetVal&&
listenerRetVal.type)if(listenerRetVal.type===HALT)return listenerRetVal.value;else if(listenerRetVal.type===ALTER_RETURN){retVal=listenerRetVal.value;AOP.currentRetVal=retVal}}return retVal}},{key:"register",value:function register(fn,before){if(before)this.before_.push(fn);else this.after_.push(fn);return this.createHandle(fn,before)}}],[{key:"after",value:function after(fn,obj,fnName){return AOP.inject(false,fn,obj,fnName)}},{key:"alterReturn",value:function alterReturn(value){return AOP.modify_(ALTER_RETURN,
value)}},{key:"before",value:function before(fn,obj,fnName){return AOP.inject(true,fn,obj,fnName)}},{key:"halt",value:function halt(value){return AOP.modify_(HALT,value)}},{key:"inject",value:function inject(before,fn,obj,fnName){var aopObj=obj[METAL_AOP];if(!aopObj)aopObj=obj[METAL_AOP]={};if(!aopObj[fnName]){aopObj[fnName]=new AOP(obj,fnName);obj[fnName]=function(){var _aopObj$fnName;return(_aopObj$fnName=aopObj[fnName]).exec.apply(_aopObj$fnName,arguments)}}return aopObj[fnName].register(fn,before)}},
{key:"modify_",value:function modify_(type,value){return{type:type,value:value}}},{key:"prevent",value:function prevent(){return AOP.modify_(PREVENT)}}]);return AOP}();exports.AOP=AOP;var _default=AOP;exports["default"]=_default});
Liferay.Loader.define("frontend-js-web@4.0.29/liferay/autosize/autosize.es",["module","exports","require"],function(module,exports,require){var define=undefined;Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a 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)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _defineProperty(obj,key,value){if(key in obj)Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});
else obj[key]=value;return obj}var DEFAULT_APPEND_CONTENT="\x26nbsp;\x26nbsp;";var AutoSize=function(){function AutoSize(inputElement){var _this=this;_classCallCheck(this,AutoSize);_defineProperty(this,"handleInput",function(event){requestAnimationFrame(function(){_this._resizeInput(event.target)})});this.inputElement=inputElement;this.computedStyle=getComputedStyle(this.inputElement);this.minHeight=parseInt(this.computedStyle.height.replace("px",""),10);this.template=this.createTemplate(this.computedStyle);
document.body.appendChild(this.template);this.inputElement.addEventListener("input",this.handleInput);this._resizeInput(this.inputElement)}_createClass(AutoSize,[{key:"createTemplate",value:function createTemplate(computedStyle){var template=document.createElement("pre");template.style.clip="rect(0, 0, 0, 0) !important";template.style.left="0";template.style.overflowWrap="break-word";template.style.position="absolute";template.style.top="0";template.style.transform="scale(0)";template.style.whiteSpace=
"pre-wrap";template.style.wordBreak="break-word";template.style.fontFamily=computedStyle.fontFamily;template.style.fontSize=computedStyle.fontSize;template.style.fontStyle=computedStyle.fontStyle;template.style.fontWeight=computedStyle.fontWeight;template.style.lineHeight=computedStyle.lineHeight;template.style.letterSpacing=computedStyle.letterSpacing;template.style.textTransform=computedStyle.textTransform;template.style.width=computedStyle.width;template.textContent=DEFAULT_APPEND_CONTENT;return template}},
{key:"_resizeInput",value:function _resizeInput(inputElement){if(this.template.style.width!==this.computedStyle.width)this.template.style.width=this.computedStyle.width;this.template.innerHTML=inputElement.value+DEFAULT_APPEND_CONTENT;inputElement.style.height="".concat(this.template.scrollHeight<this.minHeight?this.minHeight:this.template.scrollHeight,"px")}}]);return AutoSize}();var _default=AutoSize;exports["default"]=_default});
Liferay.Loader.define("frontend-js-web@4.0.29/liferay/debounce/debounce.es",["module","exports","require"],function(module,exports,require){var define=undefined;Object.defineProperty(exports,"__esModule",{value:true});exports.cancelDebounce=cancelDebounce;exports.debounce=debounce;exports["default"]=void 0;function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance");
}function _iterableToArray(iter){if(Symbol.iterator in Object(iter)||Object.prototype.toString.call(iter)==="[object Arguments]")return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr)){for(var i=0,arr2=new Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}}function debounce(fn,delay){return function debounced(){var args=arguments;cancelDebounce(debounced);debounced.id=setTimeout(function(){fn.apply(void 0,_toConsumableArray(args))},delay)}}function cancelDebounce(debounced){clearTimeout(debounced.id)}
var _default=debounce;exports["default"]=_default});
Liferay.Loader.define("frontend-js-web@4.0.29/liferay/util/form/object_to_form_data.es",["module","exports","require","frontend-js-metal-web$metal"],function(module,exports,require){var define=undefined;Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=objectToFormData;var _metal=require("frontend-js-metal-web$metal");function _defineProperty(obj,key,value){if(key in obj)Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});else obj[key]=
value;return obj}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){if(!(Symbol.iterator in Object(arr)||Object.prototype.toString.call(arr)==="[object Arguments]"))return;var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);
if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e;}}return _arr}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function objectToFormData(){var obj=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var formData=arguments.length>1&&arguments[1]!==undefined?arguments[1]:new FormData;var namespace=arguments.length>2?arguments[2]:undefined;Object.entries(obj).forEach(function(_ref){var _ref2=_slicedToArray(_ref,
2),key=_ref2[0],value=_ref2[1];var formKey=namespace?"".concat(namespace,"[").concat(key,"]"):key;if(Array.isArray(value))value.forEach(function(item){objectToFormData(_defineProperty({},formKey,item),formData)});else if((0,_metal.isObject)(value)&&!(value instanceof File))objectToFormData(value,formData,formKey);else formData.append(formKey,value)});return formData}});
Liferay.Loader.define("frontend-js-web@4.0.29/liferay/breakpoints",["module","exports","require"],function(module,exports,require){var define=undefined;Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _default={PHONE:768,TABLET:980};exports["default"]=_default});
Liferay.Loader.define("frontend-js-metal-web$metal-state@2.16.8/lib/validators",["module","exports","require","frontend-js-metal-web$metal"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};
var _metal=require("frontend-js-metal-web$metal");var ERROR_OBJECT_OF_TYPE="Expected object of one type.";var ERROR_ONE_OF="Expected one of the following values:";var ERROR_ONE_OF_TYPE="Expected one of given types.";var validators={any:function any(){return function(){return true}},array:buildTypeValidator("array"),bool:buildTypeValidator("boolean"),func:buildTypeValidator("function"),number:buildTypeValidator("number"),object:buildTypeValidator("object"),string:buildTypeValidator("string"),arrayOf:function arrayOf(validator){if(isInvalid(validators.func(validator)))throwConfigError("function",
validator,"arrayOf");return maybe(function(value,name,context){var result=validators.array(value,name,context);if(isInvalid(result))return result;return validateArrayItems(validator,value,name,context)})},inRange:function inRange(min,max){var minResult=validators.number(min);var maxResult=validators.number(max);if(isInvalid(minResult))return minResult;if(isInvalid(maxResult))return maxResult;return maybe(function(value){var valueResult=validators.number(value);if(isInvalid(valueResult))return valueResult;
return value>=min&&value<=max})},instanceOf:function instanceOf(expectedClass){return maybe(function(value,name,context){if(value instanceof expectedClass)return true;return composeError("Expected instance of "+expectedClass,name,context)})},objectOf:function objectOf(validator){if(isInvalid(validators.func(validator)))throwConfigError("function",validator,"objectOf");return maybe(function(value,name,context){for(var key in value)if(isInvalid(validator(value[key])))return composeError(ERROR_OBJECT_OF_TYPE,
name,context);return true})},oneOf:function oneOf(arrayOfValues){return maybe(function(value,name,context){var result=validators.array(arrayOfValues,name,context);if(isInvalid(result))return result;return arrayOfValues.indexOf(value)===-1?composeError(composeOneOfErrorMessage(arrayOfValues),name,context):true})},oneOfType:function oneOfType(arrayOfTypeValidators){return maybe(function(value,name,context){var result=validators.array(arrayOfTypeValidators,name,context);if(isInvalid(result))return result;
for(var i=0;i<arrayOfTypeValidators.length;i++)if(!isInvalid(arrayOfTypeValidators[i](value,name,context)))return true;return composeError(ERROR_ONE_OF_TYPE,name,context)})},shapeOf:function shapeOf(shape){if(isInvalid(validators.object(shape)))throwConfigError("object",shape,"shapeOf");return maybe(function(value,name,context){var valueResult=validators.object(value,name,context);if(isInvalid(valueResult))return valueResult;for(var key in shape)if(Object.prototype.hasOwnProperty.call(shape,key)){var validator=
shape[key];var required=false;if(validator.config){required=validator.config.required;validator=validator.config.validator}if(required&&!(0,_metal.isDefAndNotNull)(value[key])||isInvalid(validator(value[key])))return validator(value[key],name+"."+key,context)}return true})}};function buildTypeValidator(expectedType){var validatorFn=maybe(validateType.bind(null,expectedType));return function(){if(arguments.length===0)return validatorFn;else return validatorFn.apply(undefined,arguments)}}function composeError(error,
name,context){var compName=context?(0,_metal.getFunctionName)(context.constructor):null;var renderer=context&&context.getRenderer&&context.getRenderer();var parent=renderer&&renderer.getParent&&renderer.getParent();var parentName=parent?(0,_metal.getFunctionName)(parent.constructor):null;var location=parentName?"Check render method of '"+parentName+"'.":"";return new Error("Invalid state passed to '"+name+"'."+(" "+error+" Passed to '"+compName+"'. "+location))}function composeOneOfErrorMessage(arrayOfValues){return ERROR_ONE_OF+
" "+JSON.stringify(arrayOfValues)+"."}function getType(value){return Array.isArray(value)?"array":typeof value==="undefined"?"undefined":_typeof(value)}function isInvalid(result){return result instanceof Error}function maybe(typeValidator){return function(value,name,context){return(0,_metal.isDefAndNotNull)(value)?typeValidator(value,name,context):true}}function throwConfigError(expectedType,value,name){var type=getType(value);throw new Error("Expected type "+expectedType+", but received type "+type+
". passed to "+name+".");}function validateArrayItems(validator,value,name,context){for(var i=0;i<value.length;i++)if(isInvalid(validator(value[i],name,context))){var itemValidatorError=validator(value[i],name,context);var errorMessage="Validator for "+name+"["+i+'] says: "'+itemValidatorError+'"';return composeError(errorMessage,name,context)}return true}function validateType(expectedType,value,name,context){var type=getType(value);if(type!==expectedType)return composeError("Expected type '"+expectedType+
"', but received type '"+type+"'.",name,context);return true}exports.default=validators}});
Liferay.Loader.define("frontend-js-metal-web$metal-state@2.16.8/lib/Config",["module","exports","require","./validators"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});var _validators=require("./validators");var _validators2=_interopRequireDefault(_validators);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Config={any:setPrimitiveValidators("any"),array:setPrimitiveValidators("array"),
arrayOf:setNestedValidators("arrayOf"),bool:setPrimitiveValidators("bool"),func:setPrimitiveValidators("func"),inRange:function inRange(min,max){return this.validator(_validators2.default.inRange(min,max))},instanceOf:setExplicitValueValidators("instanceOf"),number:setPrimitiveValidators("number"),object:setPrimitiveValidators("object"),objectOf:setNestedValidators("objectOf"),oneOf:setExplicitValueValidators("oneOf"),oneOfType:function oneOfType(validatorArray){validatorArray=validatorArray.map(function(configObj){return configObj.config.validator});
return this.validator(_validators2.default.oneOfType(validatorArray))},shapeOf:function shapeOf(shapeObj){shapeObj=destructShapeOfConfigs(shapeObj);return this.validator(_validators2.default.shapeOf(shapeObj))},string:setPrimitiveValidators("string"),internal:function internal(){var internal=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;return mergeConfig(this,{internal:internal})},required:function required(){var required=arguments.length>0&&arguments[0]!==undefined?arguments[0]:
true;return mergeConfig(this,{required:required})},setter:function setter(_setter){return mergeConfig(this,{setter:_setter})},validator:function validator(_validator){return mergeConfig(this,{validator:_validator})},value:function value(_value){return mergeConfig(this,{value:_value})},valueFn:function valueFn(_valueFn){return mergeConfig(this,{valueFn:_valueFn})},writeOnce:function writeOnce(){var writeOnce=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;return mergeConfig(this,{writeOnce:writeOnce})}};
function destructShapeOfConfigs(shape){var keys=Object.keys(shape);var retShape={};keys.forEach(function(key){var value=shape[key];retShape[key]=value.config&&value.config.validator?value.config.validator:destructShapeOfConfigs(value)});return retShape}function mergeConfig(context,config){var obj=context;var objConfig=obj.config||{};obj=Object.create(Config);obj.config={};Object.assign(obj.config,objConfig,config);return obj}function setExplicitValueValidators(name){return function(arg){return this.validator(_validators2.default[name](arg))}}
function setNestedValidators(name){return function(arg){return this.validator(_validators2.default[name](arg.config.validator))}}function setPrimitiveValidators(name){return function(){return this.validator(_validators2.default[name])}}exports.default=Config}});
Liferay.Loader.define("frontend-js-metal-web$metal-state@2.16.8/lib/State",["module","exports","require","frontend-js-metal-web$metal","frontend-js-metal-web$metal-events"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});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 _get=function get(object,property,receiver){if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);
if(parent===null)return undefined;else return get(parent,property,receiver)}else if("value"in desc)return desc.value;else{var getter=desc.get;if(getter===undefined)return undefined;return getter.call(receiver)}};var _metal=require("frontend-js-metal-web$metal");var _metalEvents=require("frontend-js-metal-web$metal-events");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function");}function _possibleConstructorReturn(self,
call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});
if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var State=function(_EventEmitter){_inherits(State,_EventEmitter);function State(config,obj,context){_classCallCheck(this,State);var _this=_possibleConstructorReturn(this,(State.__proto__||Object.getPrototypeOf(State)).call(this));_this.context_=context||_this;_this.keysBlacklist_=null;_this.obj_=obj||_this;_this.eventData_=null;_this.scheduledBatchData_=null;_this.stateInfo_={};_this.stateConfigs_=
{};_this.initialValues_=_metal.object.mixin({},config);_this.setShouldUseFacade(true);_this.configStateFromStaticHint_();Object.defineProperty(_this.obj_,State.STATE_REF_KEY,{configurable:true,enumerable:false,value:_this});return _this}_createClass(State,[{key:"assertGivenIfRequired_",value:function assertGivenIfRequired_(name){var config=this.stateConfigs_[name];if(config.required){var info=this.getStateInfo(name);var value=info.state===State.KeyStates.INITIALIZED?this.get(name):this.initialValues_[name];
if(!(0,_metal.isDefAndNotNull)(value)){var errorMessage='The property called "'+name+"\" is required but didn't receive a value.";if(this.shouldThrowValidationError())throw new Error(errorMessage);else console.error(errorMessage)}}}},{key:"assertValidatorReturnInstanceOfError_",value:function assertValidatorReturnInstanceOfError_(validatorReturn){if(validatorReturn instanceof Error)if(this.shouldThrowValidationError())throw validatorReturn;else console.error("Warning: "+validatorReturn)}},{key:"assertValidStateKeyName_",
value:function assertValidStateKeyName_(name){if(this.keysBlacklist_&&this.keysBlacklist_[name])throw new Error("It's not allowed to create a state key with the name \""+name+'".');}},{key:"buildKeyPropertyDef_",value:function buildKeyPropertyDef_(name){return{configurable:true,enumerable:true,get:function get(){return this[State.STATE_REF_KEY].getStateKeyValue_(name)},set:function set(val){this[State.STATE_REF_KEY].setStateKeyValue_(name,val)}}}},{key:"callFunction_",value:function callFunction_(fn,
args){if((0,_metal.isString)(fn))return this.context_[fn].apply(this.context_,args);else if((0,_metal.isFunction)(fn))return fn.apply(this.context_,args)}},{key:"callSetter_",value:function callSetter_(name,value,currentValue){var config=this.stateConfigs_[name];if(config.setter)value=this.callFunction_(config.setter,[value,currentValue]);return value}},{key:"callValidator_",value:function callValidator_(name,value){var config=this.stateConfigs_[name];if(config.validator){var validatorReturn=this.callFunction_(config.validator,
[value,name,this.context_]);this.assertValidatorReturnInstanceOfError_(validatorReturn);return validatorReturn}return true}},{key:"canSetState",value:function canSetState(name){var info=this.getStateInfo(name);return!this.stateConfigs_[name].writeOnce||!info.written}},{key:"configState",value:function configState(configs,context){var names=Object.keys(configs);if(names.length===0)return;if(context!==false){var props={};for(var i=0;i<names.length;i++){var name=names[i];this.assertValidStateKeyName_(name);
props[name]=this.buildKeyPropertyDef_(name)}Object.defineProperties(context||this.obj_,props)}this.stateConfigs_=configs;for(var _i=0;_i<names.length;_i++){var _name=names[_i];configs[_name]=configs[_name].config?configs[_name].config:configs[_name];this.assertGivenIfRequired_(names[_i]);this.validateInitialValue_(names[_i])}}},{key:"configStateFromStaticHint_",value:function configStateFromStaticHint_(){var ctor=this.constructor;if(ctor!==State){var defineContext=void 0;if(this.obj_===this){var staticKey=
State.STATE_STATIC_HINT_CONFIGURED;ctor[staticKey]=ctor[staticKey]||{};defineContext=ctor[staticKey][ctor.name]?false:ctor.prototype;ctor[staticKey][ctor.name]=true}this.configState(State.getStateStatic(ctor),defineContext)}}},{key:"disposeInternal",value:function disposeInternal(){_get(State.prototype.__proto__||Object.getPrototypeOf(State.prototype),"disposeInternal",this).call(this);this.initialValues_=null;this.stateInfo_=null;this.stateConfigs_=null;this.scheduledBatchData_=null}},{key:"emitBatchEvent_",
value:function emitBatchEvent_(){if(!this.isDisposed()){this.context_.emit("stateWillChange",this.scheduledBatchData_);var data=this.scheduledBatchData_;this.scheduledBatchData_=null;this.context_.emit("stateChanged",data)}}},{key:"get",value:function get(name){return this.obj_[name]}},{key:"getState",value:function getState(){var names=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.getStateKeys();var state={};for(var i=0;i<names.length;i++)state[names[i]]=this.get(names[i]);return state}},
{key:"getStateInfo",value:function getStateInfo(name){if(!this.stateInfo_[name])this.stateInfo_[name]={};return this.stateInfo_[name]}},{key:"getStateKeyConfig",value:function getStateKeyConfig(name){return this.stateConfigs_?this.stateConfigs_[name]:null}},{key:"getStateKeys",value:function getStateKeys(){return this.stateConfigs_?Object.keys(this.stateConfigs_):[]}},{key:"getStateKeyValue_",value:function getStateKeyValue_(name){if(!this.warnIfDisposed_(name)){this.initStateKey_(name);return this.getStateInfo(name).value}}},
{key:"hasBeenSet",value:function hasBeenSet(name){var info=this.getStateInfo(name);return info.state===State.KeyStates.INITIALIZED||this.hasInitialValue_(name)}},{key:"hasInitialValue_",value:function hasInitialValue_(name){return this.initialValues_.hasOwnProperty(name)&&(0,_metal.isDef)(this.initialValues_[name])}},{key:"hasStateKey",value:function hasStateKey(key){if(!this.warnIfDisposed_(key))return!!this.stateConfigs_[key]}},{key:"informChange_",value:function informChange_(name,prevVal){if(this.shouldInformChange_(name,
prevVal)){var data=_metal.object.mixin({key:name,newVal:this.get(name),prevVal:prevVal},this.eventData_);this.context_.emit(name+"Changed",data);this.context_.emit("stateKeyChanged",data);this.scheduleBatchEvent_(data)}}},{key:"initStateKey_",value:function initStateKey_(name){var info=this.getStateInfo(name);if(info.state!==State.KeyStates.UNINITIALIZED)return;info.state=State.KeyStates.INITIALIZING;this.setInitialValue_(name);if(!info.written)this.setDefaultValue(name);info.state=State.KeyStates.INITIALIZED}},
{key:"removeStateKey",value:function removeStateKey(name){this.stateInfo_[name]=null;this.stateConfigs_[name]=null;delete this.obj_[name]}},{key:"scheduleBatchEvent_",value:function scheduleBatchEvent_(changeData){if(!this.scheduledBatchData_){_metal.async.nextTick(this.emitBatchEvent_,this);this.scheduledBatchData_=_metal.object.mixin({changes:{}},this.eventData_)}var name=changeData.key;var changes=this.scheduledBatchData_.changes;if(changes[name])changes[name].newVal=changeData.newVal;else changes[name]=
changeData}},{key:"set",value:function set(name,value){if(this.hasStateKey(name))this.obj_[name]=value}},{key:"setDefaultValue",value:function setDefaultValue(name){var config=this.stateConfigs_[name];if(config.value!==undefined)this.set(name,config.value);else this.set(name,this.callFunction_(config.valueFn))}},{key:"setEventData",value:function setEventData(data){this.eventData_=data}},{key:"setInitialValue_",value:function setInitialValue_(name){if(this.hasInitialValue_(name)){this.set(name,this.initialValues_[name]);
this.initialValues_[name]=undefined}}},{key:"setKeysBlacklist",value:function setKeysBlacklist(blacklist){this.keysBlacklist_=blacklist}},{key:"setState",value:function setState(values,callback){var _this2=this;Object.keys(values).forEach(function(name){return _this2.set(name,values[name])});if(callback&&this.scheduledBatchData_)this.context_.once("stateChanged",callback)}},{key:"setStateKeyValue_",value:function setStateKeyValue_(name,value){if(this.warnIfDisposed_(name)||!this.canSetState(name)||
!this.validateKeyValue_(name,value))return;var prevVal=this.get(name);var info=this.getStateInfo(name);info.value=this.callSetter_(name,value,prevVal);this.assertGivenIfRequired_(name);info.written=true;this.informChange_(name,prevVal)}},{key:"shouldInformChange_",value:function shouldInformChange_(name,prevVal){var info=this.getStateInfo(name);return info.state===State.KeyStates.INITIALIZED&&((0,_metal.isObject)(prevVal)||prevVal!==this.get(name))}},{key:"shouldThrowValidationError",value:function shouldThrowValidationError(){return false}},
{key:"validateInitialValue_",value:function validateInitialValue_(name){if(this.initialValues_.hasOwnProperty(name)&&!this.callValidator_(name,this.initialValues_[name]))delete this.initialValues_[name]}},{key:"validateKeyValue_",value:function validateKeyValue_(name,value){var info=this.getStateInfo(name);return info.state===State.KeyStates.INITIALIZING||this.callValidator_(name,value)}},{key:"warnIfDisposed_",value:function warnIfDisposed_(name){var disposed=this.isDisposed();if(disposed)console.warn('Error. Trying to access property "'+
name+'" on disposed instance');return disposed}}],[{key:"getStateStatic",value:function getStateStatic(ctor){return(0,_metal.getStaticProperty)(ctor,"STATE",State.mergeState)}},{key:"mergeState",value:function mergeState(mergedVal,currVal){return _metal.object.mixin({},currVal,mergedVal)}}]);return State}(_metalEvents.EventEmitter);State.STATE_REF_KEY="__METAL_STATE_REF_KEY__";State.STATE_STATIC_HINT_CONFIGURED="__METAL_STATE_STATIC_HINT_CONFIGURED__";State.KeyStates={UNINITIALIZED:undefined,INITIALIZING:1,
INITIALIZED:2};exports.default=State}});
Liferay.Loader.define("frontend-js-metal-web$metal-state@2.16.8/lib/all/state",["module","exports","require","../validators","../Config","../State"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});exports.State=exports.Config=exports.validators=undefined;var _validators=require("../validators");var _validators2=_interopRequireDefault(_validators);var _Config=require("../Config");var _Config2=_interopRequireDefault(_Config);
var _State=require("../State");var _State2=_interopRequireDefault(_State);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=_State2.default;exports.validators=_validators2.default;exports.Config=_Config2.default;exports.State=_State2.default}});
