Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/globals/globals",["module","exports","require"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});var globals=globals||{};if(typeof window!=="undefined")globals.window=window;if(typeof document!=="undefined")globals.document=document;exports.default=globals}});
Liferay.Loader.define("frontend-js-metal-web$metal-uri@2.4.0/lib/parseFromAnchor",["module","exports","require"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});function isPortProvidedToURL(uri){return/:\d+(?!@)/.test(uri)}function isAnchorInvalidatedByBrowser(a){try{if("javascript:"===a.protocol)return false;if(":"===a.protocol)return true;if(!/:/.test(a.href))return true;if(isPortProvidedToURL(a)&&""===a.port)return true}catch(e){throw new TypeError(e.message);
}return false}function parseFromAnchor(opt_uri){var link=document.createElement("a");link.href=opt_uri;if(isAnchorInvalidatedByBrowser(link))throw new TypeError(opt_uri+" is not a valid URL");return{hash:link.hash,hostname:link.hostname,password:link.password,pathname:link.pathname[0]==="/"?link.pathname:"/"+link.pathname,port:link.port,protocol:link.protocol,search:link.search,username:link.username}}exports.default=parseFromAnchor}});
Liferay.Loader.define("frontend-js-metal-web$metal-uri@2.4.0/lib/parse",["module","exports","require","frontend-js-metal-web$metal","./parseFromAnchor"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});var _metal=require("frontend-js-metal-web$metal");var _parseFromAnchor=require("./parseFromAnchor");var _parseFromAnchor2=_interopRequireDefault(_parseFromAnchor);function _interopRequireDefault(obj){return obj&&obj.__esModule?
obj:{default:obj}}function parse(opt_uri){if((0,_metal.isFunction)(URL)&&URL.length){var url=void 0;try{url=new URL(opt_uri)}catch(e){throw new TypeError(opt_uri+" is not a valid URL");}if(url.port&&url.href.indexOf(url.port)===-1)throw new TypeError(opt_uri+" is not a valid URL");return url}else return(0,_parseFromAnchor2.default)(opt_uri)}exports.default=parse}});
Liferay.Loader.define("frontend-js-metal-web$metal-structs@1.0.2/lib/MultiMap",["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 create=Object.create;var MultiMap=function(_Disposable){_inherits(MultiMap,_Disposable);function MultiMap(){_classCallCheck(this,MultiMap);var _this=_possibleConstructorReturn(this,(MultiMap.__proto__||Object.getPrototypeOf(MultiMap)).call(this));_this.keys=create(null);_this.values=create(null);return _this}_createClass(MultiMap,[{key:"add",value:function add(name,value){this.keys[name.toLowerCase()]=name;this.values[name.toLowerCase()]=this.values[name.toLowerCase()]||[];this.values[name.toLowerCase()].push(value);
return this}},{key:"clear",value:function clear(){this.keys=create(null);this.values=create(null);return this}},{key:"contains",value:function contains(name){return name.toLowerCase()in this.values}},{key:"disposeInternal",value:function disposeInternal(){this.values=null}},{key:"get",value:function get(name){var values=this.values[name.toLowerCase()];if(values)return values[0]}},{key:"getAll",value:function getAll(name){return this.values[name.toLowerCase()]}},{key:"isEmpty",value:function isEmpty(){return this.size()===
0}},{key:"names",value:function names(){var _this2=this;return Object.keys(this.values).map(function(key){return _this2.keys[key]})}},{key:"remove",value:function remove(name){delete this.keys[name.toLowerCase()];delete this.values[name.toLowerCase()];return this}},{key:"set",value:function set(name,value){this.keys[name.toLowerCase()]=name;this.values[name.toLowerCase()]=[value];return this}},{key:"size",value:function size(){return this.names().length}},{key:"toString",value:function toString(){return JSON.stringify(this.values)}}],
[{key:"fromObject",value:function fromObject(obj){var map=new MultiMap;var keys=Object.keys(obj);for(var i=0;i<keys.length;i++)map.set(keys[i],obj[keys[i]]);return map}}]);return MultiMap}(_metal.Disposable);exports.default=MultiMap}});
Liferay.Loader.define("frontend-js-metal-web$metal-structs@1.0.2/lib/TreeNode",["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 TreeNode=function(){function TreeNode(value){_classCallCheck(this,
TreeNode);this.value_=value;this.parent_=null;this.children_=null}_createClass(TreeNode,[{key:"addChild",value:function addChild(child){assertChildHasNoParent(child);child.setParent(this);this.children_=this.children_||[];this.children_.push(child)}},{key:"contains",value:function contains(node){var current=node.getParent();while(current){if(current===this)return true;current=current.getParent()}return false}},{key:"getAncestors",value:function getAncestors(){var ancestors=[];var node=this.getParent();
while(node){ancestors.push(node);node=node.getParent()}return ancestors}},{key:"getChildAt",value:function getChildAt(index){return this.getChildren()[index]||null}},{key:"getChildren",value:function getChildren(){return this.children_||TreeNode.EMPTY_ARRAY}},{key:"getChildCount",value:function getChildCount(){return this.getChildren().length}},{key:"getDepth",value:function getDepth(){var depth=0;var node=this;while(node.getParent()){depth++;node=node.getParent()}return depth}},{key:"getParent",
value:function getParent(){return this.parent_}},{key:"getRoot",value:function getRoot(){var root=this;while(root.getParent())root=root.getParent();return root}},{key:"getValue",value:function getValue(){return this.value_}},{key:"isLeaf",value:function isLeaf(){return!this.getChildCount()}},{key:"removeChild",value:function removeChild(child){if(_metal.array.remove(this.getChildren(),child))return child;return null}},{key:"setParent",value:function setParent(parent){this.parent_=parent}},{key:"traverse",
value:function traverse(opt_preorderFn,opt_postorderFn){if(opt_preorderFn)opt_preorderFn(this);this.getChildren().forEach(function(child){return child.traverse(opt_preorderFn,opt_postorderFn)});if(opt_postorderFn)opt_postorderFn(this)}}]);return TreeNode}();TreeNode.EMPTY_ARRAY=[];var assertChildHasNoParent=function assertChildHasNoParent(child){if(child.getParent())throw new Error("Cannot add child with parent.");};exports.default=TreeNode}});
Liferay.Loader.define("frontend-js-metal-web$metal-structs@1.0.2/lib/all/structs",["module","exports","require","../MultiMap","../TreeNode"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});exports.TreeNode=exports.MultiMap=undefined;var _MultiMap=require("../MultiMap");var _MultiMap2=_interopRequireDefault(_MultiMap);var _TreeNode=require("../TreeNode");var _TreeNode2=_interopRequireDefault(_TreeNode);function _interopRequireDefault(obj){return obj&&
obj.__esModule?obj:{default:obj}}exports.MultiMap=_MultiMap2.default;exports.TreeNode=_TreeNode2.default}});
Liferay.Loader.define("frontend-js-metal-web$metal-uri@2.4.0/lib/Uri",["module","exports","require","frontend-js-metal-web$metal","./parse","frontend-js-metal-web$metal-structs"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});var _slicedToArray=function(){function sliceIterator(arr,i){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"])_i["return"]()}finally{if(_d)throw _e;}}return _arr}return function(arr,i){if(Array.isArray(arr))return arr;else if(Symbol.iterator in Object(arr))return sliceIterator(arr,i);else throw new TypeError("Invalid attempt to destructure non-iterable instance");}}();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 _parse=require("./parse");var _parse2=_interopRequireDefault(_parse);var _metalStructs=require("frontend-js-metal-web$metal-structs");
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 parseFn_=_parse2.default;var Uri=function(){function Uri(){var opt_uri=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"";_classCallCheck(this,Uri);this.url=Uri.parse(this.maybeAddProtocolAndHostname_(opt_uri))}_createClass(Uri,[{key:"addParametersFromMultiMap",
value:function addParametersFromMultiMap(multimap){var _this=this;multimap.names().forEach(function(name){multimap.getAll(name).forEach(function(value){_this.addParameterValue(name,value)})});return this}},{key:"addParameterValue",value:function addParameterValue(name,value){this.ensureQueryInitialized_();if((0,_metal.isDef)(value))value=String(value);this.query.add(name,value);return this}},{key:"addParameterValues",value:function addParameterValues(name,values){var _this2=this;values.forEach(function(value){return _this2.addParameterValue(name,
value)});return this}},{key:"ensureQueryInitialized_",value:function ensureQueryInitialized_(){var _this3=this;if(this.query)return;this.query=new _metalStructs.MultiMap;var search=this.url.search;if(search)search.substring(1).split("\x26").forEach(function(param){var _param$split=param.split("\x3d"),_param$split2=_slicedToArray(_param$split,2),key=_param$split2[0],value=_param$split2[1];if((0,_metal.isDef)(value))value=Uri.urlDecode(value);_this3.addParameterValue(key,value)})}},{key:"getHash",value:function getHash(){return this.url.hash||
""}},{key:"getHost",value:function getHost(){var host=this.getHostname();if(host){var port=this.getPort();if(port&&port!=="80")host+=":"+port}return host}},{key:"getHostname",value:function getHostname(){var hostname=this.url.hostname;if(hostname===Uri.HOSTNAME_PLACEHOLDER)return"";return hostname}},{key:"getOrigin",value:function getOrigin(){var host=this.getHost();if(host)return this.getProtocol()+"//"+host;return""}},{key:"getParameterValue",value:function getParameterValue(name){this.ensureQueryInitialized_();
return this.query.get(name)}},{key:"getParameterValues",value:function getParameterValues(name){this.ensureQueryInitialized_();return this.query.getAll(name)}},{key:"getParameterNames",value:function getParameterNames(){this.ensureQueryInitialized_();return this.query.names()}},{key:"getPathname",value:function getPathname(){return this.url.pathname}},{key:"getPort",value:function getPort(){return this.url.port}},{key:"getProtocol",value:function getProtocol(){return this.url.protocol}},{key:"getSearch",
value:function getSearch(){var _this4=this;var search="";var querystring="";this.getParameterNames().forEach(function(name){_this4.getParameterValues(name).forEach(function(value){querystring+=name;if((0,_metal.isDef)(value))querystring+="\x3d"+encodeURIComponent(value);querystring+="\x26"})});querystring=querystring.slice(0,-1);if(querystring)search+="?"+querystring;return search}},{key:"hasParameter",value:function hasParameter(name){this.ensureQueryInitialized_();return this.query.contains(name)}},
{key:"isUsingDefaultProtocol",value:function isUsingDefaultProtocol(){return this.usingDefaultProtocol_}},{key:"makeUnique",value:function makeUnique(){this.setParameterValue(Uri.RANDOM_PARAM,_metal.string.getRandomString());return this}},{key:"maybeAddProtocolAndHostname_",value:function maybeAddProtocolAndHostname_(opt_uri){var url=opt_uri;if(opt_uri.indexOf("://")===-1&&opt_uri.indexOf("javascript:")!==0){url=Uri.DEFAULT_PROTOCOL;this.usingDefaultProtocol_=true;if(opt_uri[0]!=="/"||opt_uri[1]!==
"/")url+="//";switch(opt_uri.charAt(0)){case ".":case "?":case "#":url+=Uri.HOSTNAME_PLACEHOLDER;url+="/";url+=opt_uri;break;case "":case "/":if(opt_uri[1]!=="/")url+=Uri.HOSTNAME_PLACEHOLDER;url+=opt_uri;break;default:url+=opt_uri}}else this.usingDefaultProtocol_=false;return url}},{key:"removeParameter",value:function removeParameter(name){this.ensureQueryInitialized_();this.query.remove(name);return this}},{key:"removeUnique",value:function removeUnique(){this.removeParameter(Uri.RANDOM_PARAM);
return this}},{key:"setHash",value:function setHash(hash){this.url.hash=hash;return this}},{key:"setHostname",value:function setHostname(hostname){this.url.hostname=hostname;return this}},{key:"setParameterValue",value:function setParameterValue(name,value){this.removeParameter(name);this.addParameterValue(name,value);return this}},{key:"setParameterValues",value:function setParameterValues(name,values){var _this5=this;this.removeParameter(name);values.forEach(function(value){return _this5.addParameterValue(name,
value)});return this}},{key:"setPathname",value:function setPathname(pathname){this.url.pathname=pathname;return this}},{key:"setPort",value:function setPort(port){this.url.port=port;return this}},{key:"setProtocol",value:function setProtocol(protocol){this.url.protocol=protocol;if(this.url.protocol[this.url.protocol.length-1]!==":")this.url.protocol+=":";return this}},{key:"toString",value:function toString(){var href="";var host=this.getHost();if(host)href+=this.getProtocol()+"//";href+=host+this.getPathname()+
this.getSearch()+this.getHash();return href}}],[{key:"getParseFn",value:function getParseFn(){return parseFn_}},{key:"parse",value:function parse(opt_uri){return parseFn_(opt_uri)}},{key:"setParseFn",value:function setParseFn(parseFn){parseFn_=parseFn}},{key:"joinPaths",value:function joinPaths(basePath){for(var _len=arguments.length,paths=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)paths[_key-1]=arguments[_key];if(basePath.charAt(basePath.length-1)==="/")basePath=basePath.substring(0,basePath.length-
1);paths=paths.map(function(path){return path.charAt(0)==="/"?path.substring(1):path});return[basePath].concat(paths).join("/").replace(/\/$/,"")}},{key:"urlDecode",value:function urlDecode(str){return decodeURIComponent(str.replace(/\+/g," "))}}]);return Uri}();var isSecure=function isSecure(){return typeof window!=="undefined"&&window.location&&window.location.protocol&&window.location.protocol.indexOf("https")===0};Uri.DEFAULT_PROTOCOL=isSecure()?"https:":"http:";Uri.HOSTNAME_PLACEHOLDER="hostname"+
Date.now();Uri.RANDOM_PARAM="zx";exports.default=Uri}});
Liferay.Loader.define("frontend-js-node-shims$path-browserify@0.0.0/index",["module","exports","require"],function(module,exports,require){var define=undefined;var global=window;{function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===".")parts.splice(i,1);else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot)for(;up--;up)parts.unshift("..");return parts}var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
var splitPath=function(filename){return splitPathRe.exec(filename).slice(1)};exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string")throw new TypeError("Arguments to path.resolve must be strings");else if(!path)continue;resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),
!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute)path=".";if(path&&trailingSlash)path+="/";return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,
0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string")throw new TypeError("Arguments to path.join must be strings");return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++)if(arr[start]!=="")break;var end=arr.length-1;for(;end>=0;end--)if(arr[end]!=="")break;if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));
var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++)if(fromParts[i]!==toParts[i]){samePartsLength=i;break}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++)outputParts.push("..");outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")};exports.sep="/";exports.delimiter=":";exports.dirname=function(path){var result=splitPath(path),root=result[0],dir=result[1];if(!root&&
!dir)return".";if(dir)dir=dir.substr(0,dir.length-1);return root+dir};exports.basename=function(path,ext){var f=splitPath(path)[2];if(ext&&f.substr(-1*ext.length)===ext)f=f.substr(0,f.length-ext.length);return f};exports.extname=function(path){return splitPath(path)[3]};function filter(xs,f){if(xs.filter)return xs.filter(f);var res=[];for(var i=0;i<xs.length;i++)if(f(xs[i],i,xs))res.push(xs[i]);return res}var substr=function(str,start,len){return str.substr(start,len)}}});
Liferay.Loader.define("frontend-js-node-shims$path@0.0.0/index",["module","frontend-js-node-shims$path-browserify"],function(module,shim){module.exports=shim});
/*
 https://mths.be/punycode v1.3.2 by @mathias */
Liferay.Loader.define("frontend-js-node-shims$punycode@1.3.2/punycode",["module","exports","require"],function(module,exports,require){var define=undefined;var global=window;{(function(root){var freeExports=typeof exports=="object"&&exports&&!exports.nodeType&&exports;var freeModule=typeof module=="object"&&module&&!module.nodeType&&module;var freeGlobal=typeof global=="object"&&global;if(freeGlobal.global===freeGlobal||freeGlobal.window===freeGlobal||freeGlobal.self===freeGlobal)root=freeGlobal;
var punycode,maxInt=2147483647,base=36,tMin=1,tMax=26,initialBias=72,initialN=128,delimiter="-",regexPunycode=/^xn--/,regexNonASCII=/[^\x20-\x7E]/,regexSeparators=/[\x2E\u3002\uFF0E\uFF61]/g,errors={"overflow":"Overflow: input needs wider integers to process","not-basic":"Illegal input \x3e\x3d 0x80 (not a basic code point)","invalid-input":"Invalid input"},baseMinusTMin=base-tMin,floor=Math.floor,stringFromCharCode=String.fromCharCode,key;function error(type){throw RangeError(errors[type]);}function map(array,
fn){var length=array.length;var result=[];while(length--)result[length]=fn(array[length]);return result}function mapDomain(string,fn){var parts=string.split("@");var result="";if(parts.length>1){result=parts[0]+"@";string=parts[1]}string=string.replace(regexSeparators,".");var labels=string.split(".");var encoded=map(labels,fn).join(".");return result+encoded}function ucs2decode(string){var output=[],counter=0,length=string.length,value,extra;while(counter<length){value=string.charCodeAt(counter++);
if(value>=55296&&value<=56319&&counter<length){extra=string.charCodeAt(counter++);if((extra&64512)==56320)output.push(((value&1023)<<10)+(extra&1023)+65536);else{output.push(value);counter--}}else output.push(value)}return output}function ucs2encode(array){return map(array,function(value){var output="";if(value>65535){value-=65536;output+=stringFromCharCode(value>>>10&1023|55296);value=56320|value&1023}output+=stringFromCharCode(value);return output}).join("")}function basicToDigit(codePoint){if(codePoint-
48<10)return codePoint-22;if(codePoint-65<26)return codePoint-65;if(codePoint-97<26)return codePoint-97;return base}function digitToBasic(digit,flag){return digit+22+75*(digit<26)-((flag!=0)<<5)}function adapt(delta,numPoints,firstTime){var k=0;delta=firstTime?floor(delta/700):delta>>1;delta+=floor(delta/numPoints);for(;delta>baseMinusTMin*tMax>>1;k+=base)delta=floor(delta/baseMinusTMin);return floor(k+(baseMinusTMin+1)*delta/(delta+38))}function decode(input){var output=[],inputLength=input.length,
out,i=0,n=initialN,bias=initialBias,basic,j,index,oldi,w,k,digit,t,baseMinusT;basic=input.lastIndexOf(delimiter);if(basic<0)basic=0;for(j=0;j<basic;++j){if(input.charCodeAt(j)>=128)error("not-basic");output.push(input.charCodeAt(j))}for(index=basic>0?basic+1:0;index<inputLength;){for(oldi=i,w=1,k=base;;k+=base){if(index>=inputLength)error("invalid-input");digit=basicToDigit(input.charCodeAt(index++));if(digit>=base||digit>floor((maxInt-i)/w))error("overflow");i+=digit*w;t=k<=bias?tMin:k>=bias+tMax?
tMax:k-bias;if(digit<t)break;baseMinusT=base-t;if(w>floor(maxInt/baseMinusT))error("overflow");w*=baseMinusT}out=output.length+1;bias=adapt(i-oldi,out,oldi==0);if(floor(i/out)>maxInt-n)error("overflow");n+=floor(i/out);i%=out;output.splice(i++,0,n)}return ucs2encode(output)}function encode(input){var n,delta,handledCPCount,basicLength,bias,j,m,q,k,t,currentValue,output=[],inputLength,handledCPCountPlusOne,baseMinusT,qMinusT;input=ucs2decode(input);inputLength=input.length;n=initialN;delta=0;bias=
initialBias;for(j=0;j<inputLength;++j){currentValue=input[j];if(currentValue<128)output.push(stringFromCharCode(currentValue))}handledCPCount=basicLength=output.length;if(basicLength)output.push(delimiter);while(handledCPCount<inputLength){for(m=maxInt,j=0;j<inputLength;++j){currentValue=input[j];if(currentValue>=n&&currentValue<m)m=currentValue}handledCPCountPlusOne=handledCPCount+1;if(m-n>floor((maxInt-delta)/handledCPCountPlusOne))error("overflow");delta+=(m-n)*handledCPCountPlusOne;n=m;for(j=
0;j<inputLength;++j){currentValue=input[j];if(currentValue<n&&++delta>maxInt)error("overflow");if(currentValue==n){for(q=delta,k=base;;k+=base){t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias;if(q<t)break;qMinusT=q-t;baseMinusT=base-t;output.push(stringFromCharCode(digitToBasic(t+qMinusT%baseMinusT,0)));q=floor(qMinusT/baseMinusT)}output.push(stringFromCharCode(digitToBasic(q,0)));bias=adapt(delta,handledCPCountPlusOne,handledCPCount==basicLength);delta=0;++handledCPCount}}++delta;++n}return output.join("")}
punycode={"version":"1.3.2","ucs2":{"decode":ucs2decode,"encode":ucs2encode},"decode":decode,"encode":encode,"toASCII":function toASCII(input){return mapDomain(input,function(string){return regexNonASCII.test(string)?"xn--"+encode(string):string})},"toUnicode":function toUnicode(input){return mapDomain(input,function(string){return regexPunycode.test(string)?decode(string.slice(4).toLowerCase()):string})}};if(typeof define=="function"&&typeof define.amd=="object"&&define.amd)define("punycode",function(){return punycode});
else if(freeExports&&freeModule)if(module.exports==freeExports)freeModule.exports=punycode;else for(key in punycode)punycode.hasOwnProperty(key)&&(freeExports[key]=punycode[key]);else root.punycode=punycode})(this)}});
Liferay.Loader.define("frontend-js-node-shims$url@0.11.0/util",["module","exports","require"],function(module,exports,require){var define=undefined;var global=window;{module.exports={isString:function(arg){return typeof arg==="string"},isObject:function(arg){return typeof arg==="object"&&arg!==null},isNull:function(arg){return arg===null},isNullOrUndefined:function(arg){return arg==null}}}});
Liferay.Loader.define("frontend-js-node-shims$querystring@0.2.0/decode",["module","exports","require"],function(module,exports,require){var define=undefined;var global=window;{function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}module.exports=function(qs,sep,eq,options){sep=sep||"\x26";eq=eq||"\x3d";var obj={};if(typeof qs!=="string"||qs.length===0)return obj;var regexp=/\+/g;qs=qs.split(sep);var maxKeys=1E3;if(options&&typeof options.maxKeys==="number")maxKeys=
options.maxKeys;var len=qs.length;if(maxKeys>0&&len>maxKeys)len=maxKeys;for(var i=0;i<len;++i){var x=qs[i].replace(regexp,"%20"),idx=x.indexOf(eq),kstr,vstr,k,v;if(idx>=0){kstr=x.substr(0,idx);vstr=x.substr(idx+1)}else{kstr=x;vstr=""}k=decodeURIComponent(kstr);v=decodeURIComponent(vstr);if(!hasOwnProperty(obj,k))obj[k]=v;else if(Array.isArray(obj[k]))obj[k].push(v);else obj[k]=[obj[k],v]}return obj}}});
Liferay.Loader.define("frontend-js-node-shims$querystring@0.2.0/encode",["module","exports","require"],function(module,exports,require){var define=undefined;var global=window;{var stringifyPrimitive=function(v){switch(typeof v){case "string":return v;case "boolean":return v?"true":"false";case "number":return isFinite(v)?v:"";default:return""}};module.exports=function(obj,sep,eq,name){sep=sep||"\x26";eq=eq||"\x3d";if(obj===null)obj=undefined;if(typeof obj==="object")return Object.keys(obj).map(function(k){var ks=
encodeURIComponent(stringifyPrimitive(k))+eq;if(Array.isArray(obj[k]))return obj[k].map(function(v){return ks+encodeURIComponent(stringifyPrimitive(v))}).join(sep);else return ks+encodeURIComponent(stringifyPrimitive(obj[k]))}).join(sep);if(!name)return"";return encodeURIComponent(stringifyPrimitive(name))+eq+encodeURIComponent(stringifyPrimitive(obj))}}});
Liferay.Loader.define("frontend-js-node-shims$querystring@0.2.0/index",["module","exports","require","./decode","./encode"],function(module,exports,require){var define=undefined;var global=window;{exports.decode=exports.parse=require("./decode");exports.encode=exports.stringify=require("./encode")}});
Liferay.Loader.define("frontend-js-node-shims$url@0.11.0/url",["module","exports","require","frontend-js-node-shims$punycode","./util","frontend-js-node-shims$querystring"],function(module,exports,require){var define=undefined;var global=window;{var punycode=require("frontend-js-node-shims$punycode");var util=require("./util");exports.parse=urlParse;exports.resolve=urlResolve;exports.resolveObject=urlResolveObject;exports.format=urlFormat;exports.Url=Url;function Url(){this.protocol=null;this.slashes=
null;this.auth=null;this.host=null;this.port=null;this.hostname=null;this.hash=null;this.search=null;this.query=null;this.pathname=null;this.path=null;this.href=null}var protocolPattern=/^([a-z0-9.+-]+:)/i,portPattern=/:[0-9]*$/,simplePathPattern=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,delims=["\x3c","\x3e",'"',"`"," ","\r","\n","\t"],unwise=["{","}","|","\\","^","`"].concat(delims),autoEscape=["'"].concat(unwise),nonHostChars=["%","/","?",";","#"].concat(autoEscape),hostEndingChars=["/","?","#"],hostnameMaxLen=
255,hostnamePartPattern=/^[+a-z0-9A-Z_-]{0,63}$/,hostnamePartStart=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,unsafeProtocol={"javascript":true,"javascript:":true},hostlessProtocol={"javascript":true,"javascript:":true},slashedProtocol={"http":true,"https":true,"ftp":true,"gopher":true,"file":true,"http:":true,"https:":true,"ftp:":true,"gopher:":true,"file:":true},querystring=require("frontend-js-node-shims$querystring");function urlParse(url,parseQueryString,slashesDenoteHost){if(url&&util.isObject(url)&&url instanceof
Url)return url;var u=new Url;u.parse(url,parseQueryString,slashesDenoteHost);return u}Url.prototype.parse=function(url,parseQueryString,slashesDenoteHost){if(!util.isString(url))throw new TypeError("Parameter 'url' must be a string, not "+typeof url);var queryIndex=url.indexOf("?"),splitter=queryIndex!==-1&&queryIndex<url.indexOf("#")?"?":"#",uSplit=url.split(splitter),slashRegex=/\\/g;uSplit[0]=uSplit[0].replace(slashRegex,"/");url=uSplit.join(splitter);var rest=url;rest=rest.trim();if(!slashesDenoteHost&&
url.split("#").length===1){var simplePath=simplePathPattern.exec(rest);if(simplePath){this.path=rest;this.href=rest;this.pathname=simplePath[1];if(simplePath[2]){this.search=simplePath[2];if(parseQueryString)this.query=querystring.parse(this.search.substr(1));else this.query=this.search.substr(1)}else if(parseQueryString){this.search="";this.query={}}return this}}var proto=protocolPattern.exec(rest);if(proto){proto=proto[0];var lowerProto=proto.toLowerCase();this.protocol=lowerProto;rest=rest.substr(proto.length)}if(slashesDenoteHost||
proto||rest.match(/^\/\/[^@\/]+@[^@\/]+/)){var slashes=rest.substr(0,2)==="//";if(slashes&&!(proto&&hostlessProtocol[proto])){rest=rest.substr(2);this.slashes=true}}if(!hostlessProtocol[proto]&&(slashes||proto&&!slashedProtocol[proto])){var hostEnd=-1;for(var i=0;i<hostEndingChars.length;i++){var hec=rest.indexOf(hostEndingChars[i]);if(hec!==-1&&(hostEnd===-1||hec<hostEnd))hostEnd=hec}var auth,atSign;if(hostEnd===-1)atSign=rest.lastIndexOf("@");else atSign=rest.lastIndexOf("@",hostEnd);if(atSign!==
-1){auth=rest.slice(0,atSign);rest=rest.slice(atSign+1);this.auth=decodeURIComponent(auth)}hostEnd=-1;for(var i=0;i<nonHostChars.length;i++){var hec=rest.indexOf(nonHostChars[i]);if(hec!==-1&&(hostEnd===-1||hec<hostEnd))hostEnd=hec}if(hostEnd===-1)hostEnd=rest.length;this.host=rest.slice(0,hostEnd);rest=rest.slice(hostEnd);this.parseHost();this.hostname=this.hostname||"";var ipv6Hostname=this.hostname[0]==="["&&this.hostname[this.hostname.length-1]==="]";if(!ipv6Hostname){var hostparts=this.hostname.split(/\./);
for(var i=0,l=hostparts.length;i<l;i++){var part=hostparts[i];if(!part)continue;if(!part.match(hostnamePartPattern)){var newpart="";for(var j=0,k=part.length;j<k;j++)if(part.charCodeAt(j)>127)newpart+="x";else newpart+=part[j];if(!newpart.match(hostnamePartPattern)){var validParts=hostparts.slice(0,i);var notHost=hostparts.slice(i+1);var bit=part.match(hostnamePartStart);if(bit){validParts.push(bit[1]);notHost.unshift(bit[2])}if(notHost.length)rest="/"+notHost.join(".")+rest;this.hostname=validParts.join(".");
break}}}}if(this.hostname.length>hostnameMaxLen)this.hostname="";else this.hostname=this.hostname.toLowerCase();if(!ipv6Hostname)this.hostname=punycode.toASCII(this.hostname);var p=this.port?":"+this.port:"";var h=this.hostname||"";this.host=h+p;this.href+=this.host;if(ipv6Hostname){this.hostname=this.hostname.substr(1,this.hostname.length-2);if(rest[0]!=="/")rest="/"+rest}}if(!unsafeProtocol[lowerProto])for(var i=0,l=autoEscape.length;i<l;i++){var ae=autoEscape[i];if(rest.indexOf(ae)===-1)continue;
var esc=encodeURIComponent(ae);if(esc===ae)esc=escape(ae);rest=rest.split(ae).join(esc)}var hash=rest.indexOf("#");if(hash!==-1){this.hash=rest.substr(hash);rest=rest.slice(0,hash)}var qm=rest.indexOf("?");if(qm!==-1){this.search=rest.substr(qm);this.query=rest.substr(qm+1);if(parseQueryString)this.query=querystring.parse(this.query);rest=rest.slice(0,qm)}else if(parseQueryString){this.search="";this.query={}}if(rest)this.pathname=rest;if(slashedProtocol[lowerProto]&&this.hostname&&!this.pathname)this.pathname=
"/";if(this.pathname||this.search){var p=this.pathname||"";var s=this.search||"";this.path=p+s}this.href=this.format();return this};function urlFormat(obj){if(util.isString(obj))obj=urlParse(obj);if(!(obj instanceof Url))return Url.prototype.format.call(obj);return obj.format()}Url.prototype.format=function(){var auth=this.auth||"";if(auth){auth=encodeURIComponent(auth);auth=auth.replace(/%3A/i,":");auth+="@"}var protocol=this.protocol||"",pathname=this.pathname||"",hash=this.hash||"",host=false,
query="";if(this.host)host=auth+this.host;else if(this.hostname){host=auth+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]");if(this.port)host+=":"+this.port}if(this.query&&util.isObject(this.query)&&Object.keys(this.query).length)query=querystring.stringify(this.query);var search=this.search||query&&"?"+query||"";if(protocol&&protocol.substr(-1)!==":")protocol+=":";if(this.slashes||(!protocol||slashedProtocol[protocol])&&host!==false){host="//"+(host||"");if(pathname&&pathname.charAt(0)!==
"/")pathname="/"+pathname}else if(!host)host="";if(hash&&hash.charAt(0)!=="#")hash="#"+hash;if(search&&search.charAt(0)!=="?")search="?"+search;pathname=pathname.replace(/[?#]/g,function(match){return encodeURIComponent(match)});search=search.replace("#","%23");return protocol+host+pathname+search+hash};function urlResolve(source,relative){return urlParse(source,false,true).resolve(relative)}Url.prototype.resolve=function(relative){return this.resolveObject(urlParse(relative,false,true)).format()};
function urlResolveObject(source,relative){if(!source)return relative;return urlParse(source,false,true).resolveObject(relative)}Url.prototype.resolveObject=function(relative){if(util.isString(relative)){var rel=new Url;rel.parse(relative,false,true);relative=rel}var result=new Url;var tkeys=Object.keys(this);for(var tk=0;tk<tkeys.length;tk++){var tkey=tkeys[tk];result[tkey]=this[tkey]}result.hash=relative.hash;if(relative.href===""){result.href=result.format();return result}if(relative.slashes&&
!relative.protocol){var rkeys=Object.keys(relative);for(var rk=0;rk<rkeys.length;rk++){var rkey=rkeys[rk];if(rkey!=="protocol")result[rkey]=relative[rkey]}if(slashedProtocol[result.protocol]&&result.hostname&&!result.pathname)result.path=result.pathname="/";result.href=result.format();return result}if(relative.protocol&&relative.protocol!==result.protocol){if(!slashedProtocol[relative.protocol]){var keys=Object.keys(relative);for(var v=0;v<keys.length;v++){var k=keys[v];result[k]=relative[k]}result.href=
result.format();return result}result.protocol=relative.protocol;if(!relative.host&&!hostlessProtocol[relative.protocol]){var relPath=(relative.pathname||"").split("/");while(relPath.length&&!(relative.host=relPath.shift()));if(!relative.host)relative.host="";if(!relative.hostname)relative.hostname="";if(relPath[0]!=="")relPath.unshift("");if(relPath.length<2)relPath.unshift("");result.pathname=relPath.join("/")}else result.pathname=relative.pathname;result.search=relative.search;result.query=relative.query;
result.host=relative.host||"";result.auth=relative.auth;result.hostname=relative.hostname||relative.host;result.port=relative.port;if(result.pathname||result.search){var p=result.pathname||"";var s=result.search||"";result.path=p+s}result.slashes=result.slashes||relative.slashes;result.href=result.format();return result}var isSourceAbs=result.pathname&&result.pathname.charAt(0)==="/",isRelAbs=relative.host||relative.pathname&&relative.pathname.charAt(0)==="/",mustEndAbs=isRelAbs||isSourceAbs||result.host&&
relative.pathname,removeAllDots=mustEndAbs,srcPath=result.pathname&&result.pathname.split("/")||[],relPath=relative.pathname&&relative.pathname.split("/")||[],psychotic=result.protocol&&!slashedProtocol[result.protocol];if(psychotic){result.hostname="";result.port=null;if(result.host)if(srcPath[0]==="")srcPath[0]=result.host;else srcPath.unshift(result.host);result.host="";if(relative.protocol){relative.hostname=null;relative.port=null;if(relative.host)if(relPath[0]==="")relPath[0]=relative.host;
else relPath.unshift(relative.host);relative.host=null}mustEndAbs=mustEndAbs&&(relPath[0]===""||srcPath[0]==="")}if(isRelAbs){result.host=relative.host||relative.host===""?relative.host:result.host;result.hostname=relative.hostname||relative.hostname===""?relative.hostname:result.hostname;result.search=relative.search;result.query=relative.query;srcPath=relPath}else if(relPath.length){if(!srcPath)srcPath=[];srcPath.pop();srcPath=srcPath.concat(relPath);result.search=relative.search;result.query=relative.query}else if(!util.isNullOrUndefined(relative.search)){if(psychotic){result.hostname=
result.host=srcPath.shift();var authInHost=result.host&&result.host.indexOf("@")>0?result.host.split("@"):false;if(authInHost){result.auth=authInHost.shift();result.host=result.hostname=authInHost.shift()}}result.search=relative.search;result.query=relative.query;if(!util.isNull(result.pathname)||!util.isNull(result.search))result.path=(result.pathname?result.pathname:"")+(result.search?result.search:"");result.href=result.format();return result}if(!srcPath.length){result.pathname=null;if(result.search)result.path=
"/"+result.search;else result.path=null;result.href=result.format();return result}var last=srcPath.slice(-1)[0];var hasTrailingSlash=(result.host||relative.host||srcPath.length>1)&&(last==="."||last==="..")||last==="";var up=0;for(var i=srcPath.length;i>=0;i--){last=srcPath[i];if(last===".")srcPath.splice(i,1);else if(last===".."){srcPath.splice(i,1);up++}else if(up){srcPath.splice(i,1);up--}}if(!mustEndAbs&&!removeAllDots)for(;up--;up)srcPath.unshift("..");if(mustEndAbs&&srcPath[0]!==""&&(!srcPath[0]||
srcPath[0].charAt(0)!=="/"))srcPath.unshift("");if(hasTrailingSlash&&srcPath.join("/").substr(-1)!=="/")srcPath.push("");var isAbsolute=srcPath[0]===""||srcPath[0]&&srcPath[0].charAt(0)==="/";if(psychotic){result.hostname=result.host=isAbsolute?"":srcPath.length?srcPath.shift():"";var authInHost=result.host&&result.host.indexOf("@")>0?result.host.split("@"):false;if(authInHost){result.auth=authInHost.shift();result.host=result.hostname=authInHost.shift()}}mustEndAbs=mustEndAbs||result.host&&srcPath.length;
if(mustEndAbs&&!isAbsolute)srcPath.unshift("");if(!srcPath.length){result.pathname=null;result.path=null}else result.pathname=srcPath.join("/");if(!util.isNull(result.pathname)||!util.isNull(result.search))result.path=(result.pathname?result.pathname:"")+(result.search?result.search:"");result.auth=relative.auth||result.auth;result.slashes=result.slashes||relative.slashes;result.href=result.format();return result};Url.prototype.parseHost=function(){var host=this.host;var port=portPattern.exec(host);
if(port){port=port[0];if(port!==":")this.port=port.substr(1);host=host.substr(0,host.length-port.length)}if(host)this.hostname=host}}});
Liferay.Loader.define("frontend-js-metal-web$metal-uri@2.4.0/node",["module","exports","require","./lib/Uri","frontend-js-node-shims$path","frontend-js-node-shims$url"],function(module,exports,require){var define=undefined;var global=window;{var Uri=require("./lib/Uri").default;if(typeof URL==="undefined"&&typeof require!=="undefined"){var path=require("frontend-js-node-shims$path");var url=require("frontend-js-node-shims$url");Uri.setParseFn(function(urlStr){var parsed=url.parse(urlStr);parsed.pathname=
path.normalize(parsed.pathname);return parsed})}module.exports=Uri}});
Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/utils/utils",["module","exports","require","frontend-js-metal-web$metal-dom","../globals/globals","frontend-js-metal-web$metal-uri"],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 _metalDom=require("frontend-js-metal-web$metal-dom");var _globals=require("../globals/globals");var _globals2=_interopRequireDefault(_globals);var _metalUri=require("frontend-js-metal-web$metal-uri");
var _metalUri2=_interopRequireDefault(_metalUri);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 utils=function(){function utils(){_classCallCheck(this,utils)}_createClass(utils,null,[{key:"copyNodeAttributes",value:function copyNodeAttributes(source,target){Array.prototype.slice.call(source.attributes).forEach(function(attribute){return target.setAttribute(attribute.name,
attribute.value)})}},{key:"getCurrentBrowserPath",value:function getCurrentBrowserPath(){return this.getCurrentBrowserPathWithoutHash()+_globals2.default.window.location.hash}},{key:"getCurrentBrowserPathWithoutHash",value:function getCurrentBrowserPathWithoutHash(){return _globals2.default.window.location.pathname+_globals2.default.window.location.search}},{key:"getNodeOffset",value:function getNodeOffset(node){var offsetLeft=0,offsetTop=0;do{offsetLeft+=node.offsetLeft;offsetTop+=node.offsetTop;
node=node.offsetParent}while(node);return{offsetLeft:offsetLeft,offsetTop:offsetTop}}},{key:"getUrlPath",value:function getUrlPath(url){var uri=new _metalUri2.default(url);return uri.getPathname()+uri.getSearch()+uri.getHash()}},{key:"getUrlPathWithoutHash",value:function getUrlPathWithoutHash(url){var uri=new _metalUri2.default(url);return uri.getPathname()+uri.getSearch()}},{key:"getUrlPathWithoutHashAndSearch",value:function getUrlPathWithoutHashAndSearch(url){var uri=new _metalUri2.default(url);
return uri.getPathname()}},{key:"isCurrentBrowserPath",value:function isCurrentBrowserPath(url){if(url){var currentBrowserPath=this.getCurrentBrowserPathWithoutHash();return utils.getUrlPathWithoutHash(url)===this.getUrlPath(currentBrowserPath)}return false}},{key:"isHtml5HistorySupported",value:function isHtml5HistorySupported(){return!!(_globals2.default.window.history&&_globals2.default.window.history.pushState)}},{key:"isWebUri",value:function isWebUri(url){try{return new _metalUri2.default(url)}catch(err){return false}}},
{key:"clearNodeAttributes",value:function clearNodeAttributes(node){Array.prototype.slice.call(node.attributes).forEach(function(attribute){return node.removeAttribute(attribute.name)})}},{key:"removeElementsFromDocument",value:function removeElementsFromDocument(elements){elements.forEach(function(element){return(0,_metalDom.exitDocument)(element)})}},{key:"removePathTrailingSlash",value:function removePathTrailingSlash(path){var length=path?path.length:0;if(length>1&&path[length-1]==="/")path=path.substr(0,
length-1);return path}},{key:"setElementWithRandomHref",value:function setElementWithRandomHref(element){element.href=element.href+"?q\x3d"+Math.random();return element}},{key:"setReferrer",value:function setReferrer(referrer){Object.defineProperty(_globals2.default.document,"referrer",{configurable:true,get:function get(){return referrer}})}}]);return utils}();exports.default=utils}});
Liferay.Loader.define("frontend-js-spa-web$senna@2.7.9/lib/app/dataAttributes",["module","exports","require"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});exports.default={basePath:"data-senna-base-path",linkSelector:"data-senna-link-selector",loadingCssClass:"data-senna-loading-css-class",senna:"data-senna",dispatch:"data-senna-dispatch",surface:"data-senna-surface",updateScrollPosition:"data-senna-update-scroll-position"}}});
Liferay.Loader.define("frontend-js-metal-web$metal-promise@3.0.5/lib/FreeList",["module","exports","require"],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}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function");}var FreeList=function(){function FreeList(create,reset,limit){_classCallCheck(this,FreeList);this.limit_=limit;this.create_=create;this.reset_=
reset;this.occupants_=0;this.head_=null}_createClass(FreeList,[{key:"get",value:function get(){var item=void 0;if(this.occupants_>0){this.occupants_--;item=this.head_;this.head_=item.next;item.next=null}else item=this.create_();return item}},{key:"put",value:function put(item){this.reset_(item);if(this.occupants_<this.limit_){this.occupants_++;item.next=this.head_;this.head_=item}}},{key:"occupants",value:function occupants(){return this.occupants_}}]);return FreeList}();exports.default=FreeList}});
Liferay.Loader.define("frontend-js-metal-web$metal-promise@3.0.5/lib/Thenable",["module","exports","require"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});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}};exports.default=Thenable}});
Liferay.Loader.define("frontend-js-metal-web$metal-promise@3.0.5/lib/CancellablePromise",["module","exports","require","./FreeList","./Thenable","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 _FreeList=require("./FreeList");var _FreeList2=_interopRequireDefault(_FreeList);var _Thenable=require("./Thenable");var _Thenable2=_interopRequireDefault(_Thenable);
var _metal=require("frontend-js-metal-web$metal");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 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.callbackEntriesTail_=null;this.executing_=false;if(CancellablePromise.UNHANDLED_REJECTION_DELAY>0)this.unhandledRejectionId_=0;else if(CancellablePromise.UNHANDLED_REJECTION_DELAY==0)this.hadUnhandledRejection_=
false;if(CancellablePromise.LONG_STACK_TRACES){this.stack_=[];this.addStackTrace_(new Error("created"));this.currentStep_=0}if(resolver!=_metal.nullFunction)try{var self=this;resolver.call(opt_context,function(value){self.resolve_(CancellablePromise.State_.FULFILLED,value)},function(reason){if(!reason.IS_CANCELLATION_ERROR)try{if(reason instanceof Error)throw reason;else throw new Error("Promise rejected.");}catch(e){}self.resolve_(CancellablePromise.State_.REJECTED,reason)})}catch(e){this.resolve_(CancellablePromise.State_.REJECTED,
e)}};CancellablePromise.LONG_STACK_TRACES=false;CancellablePromise.UNHANDLED_REJECTION_DELAY=0;CancellablePromise.State_={PENDING:0,BLOCKED:1,FULFILLED:2,REJECTED:3};CancellablePromise.CallbackEntry_=function(){this.child=null;this.onFulfilled=null;this.onRejected=null;this.context=null;this.next=null;this.always=false};CancellablePromise.CallbackEntry_.prototype.reset=function(){this.child=null;this.onFulfilled=null;this.onRejected=null;this.context=null;this.always=false};CancellablePromise.DEFAULT_MAX_UNUSED=
100;CancellablePromise.freelist_=new _FreeList2.default(function(){return new CancellablePromise.CallbackEntry_},function(item){item.reset()},CancellablePromise.DEFAULT_MAX_UNUSED);CancellablePromise.getCallbackEntry_=function(onFulfilled,onRejected,context){var entry=CancellablePromise.freelist_.get();entry.onFulfilled=onFulfilled;entry.onRejected=onRejected;entry.context=context;return entry};CancellablePromise.returnEntry_=function(entry){CancellablePromise.freelist_.put(entry)};CancellablePromise.resolve=
function(opt_value){if(opt_value instanceof CancellablePromise)return opt_value;var promise=new CancellablePromise(_metal.nullFunction);promise.resolve_(CancellablePromise.State_.FULFILLED,opt_value);return promise};CancellablePromise.reject=function(opt_reason){return new CancellablePromise(function(resolve,reject){reject(opt_reason)})};CancellablePromise.resolveThen_=function(value,onFulfilled,onRejected){var isThenable=CancellablePromise.maybeThen_(value,onFulfilled,onRejected,null);if(!isThenable)_metal.async.run(partial(onFulfilled,
value))};CancellablePromise.race=function(promises){return new CancellablePromise(function(resolve,reject){if(!promises.length)resolve(undefined);for(var i=0,promise;i<promises.length;i++){promise=promises[i];CancellablePromise.resolveThen_(promise,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;i<promises.length;i++){promise=promises[i];CancellablePromise.resolveThen_(promise,partial(onFulfill,i),onReject)}})};CancellablePromise.allSettled=function(promises){return new CancellablePromise(function(resolve,reject){var toSettle=promises.length;var results=[];if(!toSettle){resolve(results);return}var onSettled=function onSettled(index,fulfilled,result){toSettle--;results[index]=
fulfilled?{fulfilled:true,value:result}:{fulfilled:false,reason:result};if(toSettle==0)resolve(results)};for(var i=0,promise;i<promises.length;i++){promise=promises[i];CancellablePromise.resolveThen_(promise,partial(onSettled,i,true),partial(onSettled,i,false))}})};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;i<promises.length;i++){promise=promises[i];CancellablePromise.resolveThen_(promise,onFulfill,partial(onReject,i))}})};CancellablePromise.withResolver=function(){var resolve=void 0,reject=void 0;var promise=new CancellablePromise(function(rs,rj){resolve=rs;reject=rj});return new CancellablePromise.Resolver_(promise,resolve,reject)};CancellablePromise.prototype.then=function(opt_onFulfilled,
opt_onRejected,opt_context){if(CancellablePromise.LONG_STACK_TRACES)this.addStackTrace_(new Error("then"));return this.addChildPromise_((0,_metal.isFunction)(opt_onFulfilled)?opt_onFulfilled:null,(0,_metal.isFunction)(opt_onRejected)?opt_onRejected:null,opt_context)};_Thenable2.default.addImplementation(CancellablePromise);CancellablePromise.prototype.thenVoid=function(opt_onFulfilled,opt_onRejected,opt_context){if(CancellablePromise.LONG_STACK_TRACES)this.addStackTrace_(new Error("then"));this.addCallbackEntry_(CancellablePromise.getCallbackEntry_(opt_onFulfilled||
_metal.nullFunction,opt_onRejected||null,opt_context))};CancellablePromise.prototype.thenAlways=function(onSettled,opt_context){if(CancellablePromise.LONG_STACK_TRACES)this.addStackTrace_(new Error("thenAlways"));var entry=CancellablePromise.getCallbackEntry_(onSettled,onSettled,opt_context);entry.always=true;this.addCallbackEntry_(entry);return this};CancellablePromise.prototype.thenCatch=function(onRejected,opt_context){if(CancellablePromise.LONG_STACK_TRACES)this.addStackTrace_(new Error("thenCatch"));
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);this.parent_=null}else this.resolve_(CancellablePromise.State_.REJECTED,err)};CancellablePromise.prototype.cancelChild_=function(childPromise,err){if(!this.callbackEntries_)return;var childCount=0;var childEntry=null;var beforeChildEntry=null;for(var entry=this.callbackEntries_;entry;entry=entry.next){if(!entry.always){childCount++;if(entry.child==childPromise)childEntry=entry;if(childEntry&&childCount>1)break}if(!childEntry)beforeChildEntry=entry}if(childEntry)if(this.state_==CancellablePromise.State_.PENDING&&
childCount==1)this.cancelInternal_(err);else{if(beforeChildEntry)this.removeEntryAfter_(beforeChildEntry);else this.popEntry_();this.executeCallback_(childEntry,CancellablePromise.State_.REJECTED,err)}};CancellablePromise.prototype.addCallbackEntry_=function(callbackEntry){if(!this.hasEntry_()&&(this.state_==CancellablePromise.State_.FULFILLED||this.state_==CancellablePromise.State_.REJECTED))this.scheduleCallbacks_();this.queueEntry_(callbackEntry)};CancellablePromise.prototype.addChildPromise_=
function(onFulfilled,onRejected,opt_context){var callbackEntry=CancellablePromise.getCallbackEntry_(null,null,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){this.state_=CancellablePromise.State_.PENDING;this.resolve_(CancellablePromise.State_.FULFILLED,value)};CancellablePromise.prototype.unblockAndReject_=function(reason){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("Promise cannot resolve to itself")}this.state_=CancellablePromise.State_.BLOCKED;var isThenable=CancellablePromise.maybeThen_(x,this.unblockAndFulfill_,this.unblockAndReject_,this);if(isThenable)return;this.result_=x;this.state_=state;this.parent_=null;this.scheduleCallbacks_();if(state==CancellablePromise.State_.REJECTED&&!x.IS_CANCELLATION_ERROR)CancellablePromise.addUnhandledRejection_(this,
x)};CancellablePromise.maybeThen_=function(value,onFulfilled,onRejected,context){if(value instanceof CancellablePromise){value.thenVoid(onFulfilled,onRejected,context);return true}else if(_Thenable2.default.isImplementedBy(value)){value=value;value.then(onFulfilled,onRejected,context);return true}else if((0,_metal.isObject)(value))try{var then=value["then"];if((0,_metal.isFunction)(then)){CancellablePromise.tryThen_(value,then,onFulfilled,onRejected,context);return true}}catch(e){onRejected.call(context,
e);return true}return false};CancellablePromise.tryThen_=function(thenable,then,onFulfilled,onRejected,context){var called=false;var resolve=function resolve(value){if(!called){called=true;onFulfilled.call(context,value)}};var reject=function reject(reason){if(!called){called=true;onRejected.call(context,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.hasEntry_=function(){return!!this.callbackEntries_};CancellablePromise.prototype.queueEntry_=function(entry){if(this.callbackEntriesTail_){this.callbackEntriesTail_.next=entry;this.callbackEntriesTail_=entry}else{this.callbackEntries_=entry;this.callbackEntriesTail_=entry}};CancellablePromise.prototype.popEntry_=function(){var entry=null;if(this.callbackEntries_){entry=this.callbackEntries_;this.callbackEntries_=entry.next;entry.next=null}if(!this.callbackEntries_)this.callbackEntriesTail_=
null;return entry};CancellablePromise.prototype.removeEntryAfter_=function(previous){if(previous.next==this.callbackEntriesTail_)this.callbackEntriesTail_=previous;previous.next=previous.next.next};CancellablePromise.prototype.executeCallbacks_=function(){var entry=null;while(entry=this.popEntry_()){if(CancellablePromise.LONG_STACK_TRACES)this.currentStep_++;this.executeCallback_(entry,this.state_,this.result_)}this.executing_=false};CancellablePromise.prototype.executeCallback_=function(callbackEntry,
state,result){if(state==CancellablePromise.State_.REJECTED&&callbackEntry.onRejected&&!callbackEntry.always)this.removeUnhandledRejection_();if(callbackEntry.child){callbackEntry.child.parent_=null;CancellablePromise.invokeCallback_(callbackEntry,state,result)}else try{callbackEntry.always?callbackEntry.onFulfilled.call(callbackEntry.context):CancellablePromise.invokeCallback_(callbackEntry,state,result)}catch(err){CancellablePromise.handleRejection_.call(null,err)}CancellablePromise.returnEntry_(callbackEntry)};
CancellablePromise.invokeCallback_=function(callbackEntry,state,result){if(state==CancellablePromise.State_.FULFILLED)callbackEntry.onFulfilled.call(callbackEntry.context,result);else if(callbackEntry.onRejected)callbackEntry.onRejected.call(callbackEntry.context,result)};CancellablePromise.prototype.addStackTrace_=function(err){if(CancellablePromise.LONG_STACK_TRACES&&(0,_metal.isString)(err.stack)){var trace=err.stack.split("\n",4)[3];var message=err.message;message+=Array(11-message.length).join(" ");
this.stack_.push(message+trace)}};CancellablePromise.prototype.appendLongStack_=function(err){if(CancellablePromise.LONG_STACK_TRACES&&err&&(0,_metal.isString)(err.stack)&&this.stack_.length){var longTrace=["Promise trace:"];for(var promise=this;promise;promise=promise.parent_){for(var i=this.currentStep_;i>=0;i--)longTrace.push(promise.stack_[i]);longTrace.push("Value: "+"["+(promise.state_==CancellablePromise.State_.REJECTED?"REJECTED":"FULFILLED")+"] "+"\x3c"+String(promise.result_)+"\x3e")}err.stack+=
"\n\n"+longTrace.join("\n")}};CancellablePromise.prototype.removeUnhandledRejection_=function(){if(CancellablePromise.UNHANDLED_REJECTION_DELAY>0)for(var p=this;p&&p.unhandledRejectionId_;p=p.parent_){clearTimeout(p.unhandledRejectionId_);p.unhandledRejectionId_=0}else if(CancellablePromise.UNHANDLED_REJECTION_DELAY==0)for(var 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(){promise.appendLongStack_(reason);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_){promise.appendLongStack_(reason);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,(_class.__proto__||Object.getPrototypeOf(_class)).call(this,opt_message));if(opt_message)_this.message=opt_message;return _this}return _class}(Error);CancellablePromise.CancellationError.prototype.name="cancel";CancellablePromise.Resolver_=function(promise,resolve,
reject){this.promise=promise;this.resolve=resolve;this.reject=reject};exports.CancellablePromise=CancellablePromise;exports.default=CancellablePromise}});
Liferay.Loader.define("frontend-js-metal-web$metal-promise@3.0.5/lib/ProgressPromise",["module","exports","require","./CancellablePromise","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 _CancellablePromise2=require("./CancellablePromise");var _CancellablePromise3=_interopRequireDefault(_CancellablePromise2);var _metal=require("frontend-js-metal-web$metal");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 ProgressPromise=function(_CancellablePromise){_inherits(ProgressPromise,_CancellablePromise);function ProgressPromise(resolver,opt_context){_classCallCheck(this,ProgressPromise);var progressFn=function progressFn(progress){_metal.async.nextTick(function(){_this.setProgress_(progress)})};
var _this=_possibleConstructorReturn(this,(ProgressPromise.__proto__||Object.getPrototypeOf(ProgressPromise)).call(this,function resolverFn(resolve,reject){resolver(resolve,reject,progressFn)},opt_context));_this.listeners_=[];_this.progress_=0;return _this}_createClass(ProgressPromise,[{key:"addChildPromise_",value:function addChildPromise_(onFulfilled,onRejected,opt_context){var callbackEntry=_CancellablePromise3.default.getCallbackEntry_(null,null,null);callbackEntry.child=new ProgressPromise(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}},{key:"callChildProgressListeners_",
value:function callChildProgressListeners_(progress){if(this.callbackEntries_&&this.callbackEntries_.child)this.callProgressListeners_(progress,this.callbackEntries_.child.listeners_)}},{key:"callProgressListeners_",value:function callProgressListeners_(progress,listeners){if(listeners.length)listeners.forEach(function(listener){listener(progress)})}},{key:"getProgress",value:function getProgress(){return this.progress_}},{key:"progress",value:function progress(listener){this.listeners_.push(listener);
return this}},{key:"setProgress_",value:function setProgress_(progress){if(progress>1||progress<0)throw new TypeError("The progress percentage should be a number between 0 and 1");else if(progress<this.progress_)throw new Error("The progress percentage can't be lower than the previous percentage");else if(progress===this.progress_||progress===1)return;this.progress_=progress;this.callProgressListeners_(progress,this.listeners_);this.callChildProgressListeners_(progress)}}]);return ProgressPromise}(_CancellablePromise3.default);
exports.default=ProgressPromise}});
Liferay.Loader.define("frontend-js-metal-web$metal-promise@3.0.5/lib/all",["module","exports","require","./CancellablePromise","./ProgressPromise"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});exports.ProgressPromise=exports.CancellablePromise=undefined;var _CancellablePromise=require("./CancellablePromise");var _CancellablePromise2=_interopRequireDefault(_CancellablePromise);var _ProgressPromise=require("./ProgressPromise");
var _ProgressPromise2=_interopRequireDefault(_ProgressPromise);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.CancellablePromise=_CancellablePromise2.default;exports.ProgressPromise=_ProgressPromise2.default;exports.default=_CancellablePromise2.default}});
Liferay.Loader.define("frontend-js-metal-web$metal-debounce@2.0.2/lib/debounce",["module","exports","require"],function(module,exports,require){var define=undefined;var global=window;{Object.defineProperty(exports,"__esModule",{value:true});function debounce(fn,delay){return function debounced(){var args=Array.prototype.slice.call(arguments,0);cancelDebounce(debounced);debounced.id=setTimeout(function(){fn.apply(null,args)},delay)}}function cancelDebounce(debounced){clearTimeout(debounced.id)}exports.default=
debounce;exports.cancelDebounce=cancelDebounce;exports.debounce=debounce}});
Liferay.Loader.define("frontend-js-metal-web$metal-path-parser@1.0.4/lib/pathParser",["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.parse=parse;exports.toRegex=toRegex;exports.extractData=extractData;var _metal=require("frontend-js-metal-web$metal");var _metal2=_interopRequireDefault(_metal);function _interopRequireDefault(obj){return obj&&obj.__esModule?
obj:{default:obj}}var REGEX=/([\/])?(?:(?::(\w+)(?:\(((?:\\.|[^\\()])*)\))?|\(((?:\\.|[^\\()])+)\))([+*?])?)/g;function convertMatchesToObj(matches){return{match:matches[0],prefix:matches[1],name:matches[2],paramPattern:matches[3],unnamedPattern:matches[4],modifier:matches[5]}}function convertTokensToRegex(tokens){var regex="";for(var i=0;i<tokens.length;i++)if(_metal2.default.isString(tokens[i]))regex+=escape(tokens[i]);else{var capture=encloseNonCapturingGroup(tokens[i].pattern);if(tokens[i].repeat)capture+=
encloseNonCapturingGroup("\\/"+capture)+"*";capture=escape(tokens[i].prefix)+("("+capture+")");if(tokens[i].optional){if(!tokens[i].partial)capture=encloseNonCapturingGroup(capture);capture+="?"}regex+=capture}return new RegExp("^"+makeTrailingSlashOptional(regex)+"$")}function encloseNonCapturingGroup(pattern){return"(?:"+pattern+")"}function escape(str){return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function makeTrailingSlashOptional(regex){if(/\/$/.test(regex))regex+="?";else regex+="\\/?";
return regex}function parse(routeOrTokens){if(!_metal2.default.isString(routeOrTokens))return routeOrTokens;var route=routeOrTokens;var unnamedCount=0;var tokens=[];var currPath="";var index=0;var matches=REGEX.exec(route);while(matches){var data=convertMatchesToObj(matches);currPath=route.slice(index,matches.index);index=matches.index+data.match.length;tokens.push(currPath);tokens.push({name:data.name?data.name:""+unnamedCount++,partial:route[index]&&route[index]!==data.prefix,prefix:data.prefix||
"",pattern:data.paramPattern||data.unnamedPattern||"[^\\/]+",repeat:data.modifier==="*"||data.modifier==="+",optional:data.modifier==="*"||data.modifier==="?"});matches=REGEX.exec(route)}if(index<route.length)tokens.push(route.substr(index));return tokens}function toRegex(routeOrTokens){return convertTokensToRegex(parse(routeOrTokens))}function extractData(routeOrTokens,path){var data={};var tokens=parse(routeOrTokens);var match=path.match(convertTokensToRegex(tokens));if(!match)return null;var paramIndex=
1;for(var i=0;i<tokens.length;i++)if(!_metal2.default.isString(tokens[i])){var value=match[paramIndex++];if(_metal2.default.isDef(value)){if(tokens[i].repeat)value=value.split("/");data[tokens[i].name]=value}}return data}}});
