1typeof YUI!="undefined"&&(YUI._YUI=YUI);var YUI=function(){var e=0,t=this,n=arguments,r=n.length,i=function(e,t){return e&&e.hasOwnProperty&&e instanceof t},s=typeof YUI_config!="undefined"&&YUI_config;i(t,YUI)?(t._init(),YUI.GlobalConfig&&t.applyConfig(YUI.GlobalConfig),s&&t.applyConfig(s),r||(t._afterConfig(),t._setup())):t=new YUI;if(r){for(;e<r;e++)t.applyConfig(n[e]);t._afterConfig(),t._setup()}return t.instanceOf=i,t};(function(){var e,t,n="patched-v3.20.5",r=".",i="http://yui.yahooapis.com/",s="yui3-js-enabled",o="yui3-css-stamp",u=function(){},a=Array.prototype.slice,f={"io.xdrReady":1,"io.xdrResponse":1,"SWF.eventHandler":1},l=typeof window!="undefined",c=l?window:null,h=l?c.document:null,p=h&&h.documentElement,d=p&&p.className,v={},m=(new Date).getTime(),g=function(e,t,n,r){e&&e.addEventListener?e.addEventListener(t,n,r):e&&e.attachEvent&&e.attachEvent("on"+t,n)},y=function(e,t,n,r){if(e&&e.removeEventListener)try{e.removeEventListener(t,n,r)}catch(i){}else e&&e.detachEvent&&e.detachEvent("on"+t,n)},b=function(){YUI.Env.DOMReady=!0,l&&y(h,"DOMContentLoaded",b),h&&h.body&&YUI.Env.cssStampEl&&!h.body.contains(YUI.Env.cssStampEl)&&h.body.appendChild(YUI.Env.cssStampEl)},w=function(){YUI.Env.windowLoaded=!0,YUI.Env.DOMReady=!0,l&&y(window,"load",w)},E=function(e,t){var n=e.Env._loader,r=["loader-base"],i=YUI.Env,s=i.mods;return n?(n.ignoreRegistered=!1,n.onEnd=null,n.data=null,n.required=[],n.loadType=null):(n=new e.Loader(e.config),e.Env._loader=n),s&&s.loader&&(r=[].concat(r,YUI.Env.loaderExtras)),YUI.Env.core=e.Array.dedupe([].concat(YUI.Env.core,r)),n},S=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},x={success:!0};p&&d.indexOf(s)==-1&&(d&&(d+=" "),d+=s,p.className=d),n.indexOf("@")>-1&&(n="3.5.0"),e={applyConfig:function(e){e=e||u;var t,n,r=this.config,i=r.modules,s=r.groups,o=r.aliases,a=this.Env._loader;for(n in e)e.hasOwnProperty(n)&&(t=e[n],i&&n=="modules"?S(i,t):o&&n=="aliases"?S(o,t):s&&n=="groups"?S(s,t):n=="win"?(r[n]=t&&t.contentWindow||t,r.doc=r[n]?r[n].document:null):n!="_yuid"&&(r[n]=t));a&&a._config(e)},_config:function(e){this.applyConfig(e)},_init:function(){var e,t,r=this,s=YUI.Env,u=r.Env,a;r.version=n;if(!u){r.Env={core:["get","features","intl-base","yui-log","yui-later","loader-base","loader-rollup","loader-yui3"],loaderExtras:["loader-rollup","loader-yui3"],mods:{},versions:{},base:i,cdn:i+n+"/",_idx:0,_used:{},_attached:{},_exported:{},_missed:[],_yidx:0,_uidx:0,_guidp:"y",_loaded:{},_BASE_RE:/(?:\?(?:[^&]*&)*([^&]*))?\b(aui|yui(?:-\w+)?)\/\2(?:-(min|debug))?\.js/,parseBasePath:function(e,t){var n=e.match(t),r,i;return n&&(r=RegExp.leftContext||e.slice(0,e.indexOf(n[0])),i=n[3],n[1]&&(r+="?"+n[1]),r={filter:i,path:r}),r},getBase:s&&s.getBase||function(t){var n=h&&h.getElementsByTagName("script")||[],i=u.cdn,s,o,a,f;for(o=0,a=n.length;o<a;++o){f=n[o].src;if(f){s=r.Env.parseBasePath(f,t);if(s){e=s.filter,i=s.path;break}}}return i}},u=r.Env,u._loaded[n]={};if(s&&r!==YUI)u._yidx=++s._yidx,u._guidp=("yui_"+n+"_"+u._yidx+"_"+m).replace(/[^a-z0-9_]+/g,"_");else if(YUI._YUI){s=YUI._YUI.Env,u._yidx+=s._yidx,u._uidx+=s._uidx;for(a in s)a in u||(u[a]=s[a]);delete YUI._YUI}r.id=r.stamp(r),v[r.id]=r}r.constructor=YUI,r.config=r.config||{bootstrap:!0,cacheUse:!0,debug:!0,doc:h,fetchCSS:!0,throwFail:!0,useBrowserConsole:!0,useNativeES5:!0,win:c},h&&!h.getElementById(o)?(t=h.createElement("div"),t.innerHTML='<div id="'+o+'"></div>',YUI.Env.cssStampEl=t.firstChild,h.body?h.body.appendChild(YUI.Env.cssStampEl):p.insertBefore(YUI.Env.cssStampEl,p.firstChild)):h&&h.getElementById(o)&&!YUI.Env.cssStampEl&&(YUI.Env.cssStampEl=h.getElementById(o)),r.config.lang=r.config.lang||"en-US",r.config.base=YUI.config.base||YUI.config.defaultBase&&YUI.config.root&&YUI.config.defaultBase+YUI.config.root||r.Env.getBase(r.Env._BASE_RE);if(!e||!"mindebug".indexOf(e))e="min";e=e?"-"+e:e,r.config.loaderPath=YUI.config.loaderPath||"loader/loader"+e+".js"},_afterConfig:function(){var e=this;e.config.hasOwnProperty("global")||(e.config.global=window||global)},_setup:function(){var e,t=this,n=[],r=YUI.Env.mods,i=t.config.extendedCore||[],s=t.config.core||[].concat(YUI.Env.core).concat(i);for(e=0;e<s.length;e++)r[s[e]]&&n.push(s[e]);t._attach(["yui-base"]),t._attach(n),t.Loader&&E(t)},applyTo:function(e,t,n){if(t in f){var r=v[e],i,s,o;if(r){i=t.split("."),s=r;for(o=0;o<i.length;o+=1)s=s[i[o]],s||this.log("applyTo not found: "+t,"warn","yui");return s&&s.apply(r,n)}return null}return this.log(t+": applyTo not allowed","warn","yui"),null},add:function(e,t,n,r){r=r||{};var i=YUI.Env,s={name:e,fn:t,version:n,details:r},o={},u,a,f,l,c=i.versions;i.mods[e]=s,c[n]=c[n]||{},c[n][e]=s;for(l in v)v.hasOwnProperty(l)&&(a=v[l],o[a.id]||(o[a.id]=!0,u=a.Env._loader,u&&(f=u.getModuleInfo(e),(!f||f.temp)&&u.addModule(r,e))));return this},_attach:function(e,t){var n,r,i,s,o,u,a,f=YUI.Env.mods,l=YUI.Env.aliases,c=this,h,p=YUI.Env._renderedMods,d=c.Env._loader,v=c.Env._attached,m=c.Env._exported,g=e.length,d,y,b,w=[],E,S,x,T,N,C,k;for(n=0;n<g;n++){r=e[n],i=f[r],w.push(r);if(d&&d.conditions[r])for(h in d.conditions[r])d.conditions[r].hasOwnProperty(h)&&(y=d.conditions[r][h],b=y&&(y.ua&&c.UA[y.ua]||y.test&&y.test(c)),b&&w.push(y.name))}e=w,g=e.length;for(n=0;n<g;n++)if(!v[e[n]]){r=e[n],i=f[r];if(l&&l[r]&&!i){c._attach(l[r]);continue}if(!i)T=d&&d.getModuleInfo(r),T&&(i=T,t=!0),!t&&r&&r.indexOf("skin-")===-1&&r.indexOf("css")===-1&&(c.Env._missed.push(r),c.Env._missed=c.Array.dedupe(c.Env._missed),c.message("NOT loaded: "+r,"warn","yui"));else{v[r]=!0;for(h=0;h<c.Env._missed.length;h++)c.Env._missed[h]===r&&(c.message("Found: "+r+" (was reported as missing earlier)","warn","yui"),c.Env._missed.splice(h,1));if(d&&!d._canBeAttached(r))return!0;
1if(d&&p&&p[r]&&p[r].temp){d.getRequires(p[r]),o=[],T=d.getModuleInfo(r);for(h in T.expanded_map)T.expanded_map.hasOwnProperty(h)&&o.push(h);c._attach(o)}s=i.details,o=s.requires,S=s.es,u=s.use,a=s.after,s.lang&&(o=o||[],o.unshift("intl"));if(o){x=o.length;for(h=0;h<x;h++)if(! 2v[o[h]]){if(!c._attach(o))return!1;break}}if(a)for(h=0;h<a.length;h++)if(!v[a[h]]){if(!c._attach(a,!0))return!1;break}if(i.fn){E=[c,r];if(S){k={},C={},E.push(k,C);if(o){x=o.length;for(h=0;h<x;h++)k[o[h]]=m.hasOwnProperty(o[h])?m[o[h]]:c}}if(c.config.throwFail)C=i.fn.apply(S?undefined:i,E);else try{C=i.fn.apply(S?undefined:i,E)}catch(L){return c.error("Attach error: "+r,L,r),!1}S&&(m[r]=C,N=i.details.condition,N&&N.when==="instead"&&(m[N.trigger]=C))}if(u)for(h=0;h<u.length;h++)if(!v[u[h]]){if(!c._attach(u))return!1;break}}}return!0},_delayCallback:function(e,t){var n=this,r=["event-base"];return t=n.Lang.isObject(t)?t:{event:t},t.event==="load"&&r.push("event-synthetic"),function(){var i=arguments;n._use(r,function(){n.on(t.event,function(){i[1].delayUntil=t.event,e.apply(n,i)},t.args)})}},use:function(){var e=a.call(arguments,0),t=e[e.length-1],n=this,r=0,i,s=n.Env,o=!0;n.Lang.isFunction(t)?(e.pop(),n.config.delayUntil&&(t=n._delayCallback(t,n.config.delayUntil))):t=null,n.Lang.isArray(e[0])&&(e=e[0]);if(n.config.cacheUse){while(i=e[r++])if(!s._attached[i]){o=!1;break}if(o)return e.length,n._notify(t,x,e),n}return n._loading?(n._useQueue=n._useQueue||new n.Queue,n._useQueue.add([e,t])):n._use(e,function(n,r){n._notify(t,r,e)}),n},require:function(){var e=a.call(arguments),t;typeof e[e.length-1]=="function"&&(t=e.pop(),e.push(function(n){var r,i=e.length,s=n.Env._exported,o={};for(r=0;r<i;r++)s.hasOwnProperty(e[r])&&(o[e[r]]=s[e[r]]);t.call(undefined,n,o)})),this.use.apply(this,e)},_notify:function(e,t,n){if(!t.success&&this.config.loadErrorFn)this.config.loadErrorFn.call(this,this,e,t,n);else if(e){this.Env._missed&&this.Env._missed.length&&(t.msg="Missing modules: "+this.Env._missed.join(),t.success=!1);if(this.config.throwFail)e(this,t);else try{e(this,t)}catch(r){this.error("use callback error",r,n)}}},_use:function(e,t){this.Array||this._attach(["yui-base"]);var r,i,s,o=this,u=YUI.Env,a=u.mods,f=o.Env,l=f._used,c=u.aliases,h=u._loaderQueue,p=e[0],d=o.Array,v=o.config,m=v.bootstrap,g=[],y,b=[],w=!0,S=v.fetchCSS,x=function(e,t){var r=0,i=[],s,o,f,h,p;if(!e.length)return;if(c){o=e.length;for(r=0;r<o;r++)c[e[r]]&&!a[e[r]]?i=[].concat(i,c[e[r]]):i.push(e[r]);e=i}o=e.length;for(r=0;r<o;r++){s=e[r],t||b.push(s);if(l[s])continue;
2f=a[s],h=null,p=null,f?(l[s]=!0,h=f.details.requires,p=f.details.use):u._loaded[n][s]?l[s]=!0:g.push(s),h&&h.length&&x(h),p&&p.length&&x(p,1)}},T=function(n){var r=n||{success:!0,msg:"not dynamic"},i,s,u=!0,a=r.data;o._loading=!1,a&&(s=g,g=[],b=[],x(a),i=g.length,i&&[].concat(g).sort().join()==s.sort().join()&&(i=!1)),i&&a?(o._loading=!0,o._use(g,function(){o._attach(a)&&o._notify(t,r,a)})):(a&&(u=o._attach(a)),u&&o._notify(t,r,e)),o._useQueue&&o._useQueue.size()&&!o._loading&&o._use.apply(o,o._useQueue.next())};if(p==="*"){e=[];for(y in a)a.hasOwnProperty(y)&&e.push(y);return w=o._attach(e),w&&T(),o}return(a.loader||a["loader-base"])&&!o.Loader&&o._attach(["loader"+(a.loader?"":"-base")]),m&&o.Loader&&e.length&&(i=E(o),i.require(e),i.ignoreRegistered=!0,i._boot=!0,i.calculate(null,S?null:"js"),e=i.sorted,i._boot=!1),x(e),r=g.length,r&&(g=d.dedupe(g),r=g.length),m&&r&&o.Loader?(o._loading=!0,i=E(o),i.onEnd=T,i.context=o,i.data=e,i.ignoreRegistered=!1,i.require(g),i.insert(null,S?null:"js")):m&&r&&o.Get&&!f.bootstrapped?(o._loading=!0,s=function(){o._loading=!1,h.running=!1,f.bootstrapped=!0,u._bootstrapping=!1,o._attach(["loader"])&&o._use(e,t)},u._bootstrapping?h.add(s):(u._bootstrapping=!0,o.Get.script(v.base+v.loaderPath,{onEnd:s}))):(w=o._attach(e),w&&T()),o},namespace:function(){var e=arguments,t,n=0,i,s,o;for(;n<e.length;n++){t=this,o=e[n];if(o.indexOf(r)>-1){s=o.split(r);for(i=s[0]=="YAHOO"?1:0;i<s.length;i++)t[s[i]]=t[s[i]]||{},t=t[s[i]]}else t[o]=t[o]||{},t=t[o]}return t},log:u,message:u,dump:function(e){return""+e},error:function(e,t,n){var r=this,i;r.config.errorFn&&(i=r.config.errorFn.apply(r,arguments));if(!i)throw t||new Error(e);return r.message(e,"error",""+n),r},guid:function(e){var t=this.Env._guidp+"_"+ ++this.Env._uidx;return e?e+t:t},stamp:function(e,t){var n;if(!e)return e;e.uniqueID&&e.nodeType&&e.nodeType!==9?n=e.uniqueID:n=typeof e=="string"?e:e._yuid;if(!n){n=this.guid();if(!t)try{e._yuid=n}catch(r){n=null}}return n},destroy:function(){var e=this;e.Event&&e.Event._unload(),delete v[e.id],delete e.Env,delete e.config}},YUI.prototype=e;for(t in e)e.hasOwnProperty(t)&&(YUI[t]=e[t]);YUI.applyConfig=function(e){if(!e)return;YUI.GlobalConfig&&this.prototype.applyConfig.call(this,YUI.GlobalConfig),this.prototype.applyConfig.call(this,e),YUI.GlobalConfig=this.config},YUI._init(),l?(g(h,"DOMContentLoaded",b),g(window,"load",w)):(b(),w()),YUI.Env.add=g,YUI.Env.remove=y,typeof exports=="object"&&(exports.YUI=YUI,YUI.setLoadHook=function(e){YUI._getLoadHook=e},YUI._getLoadHook=null),YUI.Env[n]={}})(),YUI.add("yui-base",function(e,t){function m(e,t,n){var r,i;t||(t=0);if(n||m.test(e))try{return d.slice.call(e,t)}catch(s){i=[];for(r=e.length;t<r;++t)i.push(e[t]);return i}return[e]}function g(){this._init(),this.add.apply(this,arguments)}var n=e.Lang||(e.Lang={}),r=String.prototype,i=Object.prototype.toString,s={"undefined":"undefined",number:"number","boolean":"boolean",string:"string","[object Function]":"function","[object RegExp]":"regexp","[object Array]":"array","[object Date]":"date","[object Error]":"error"},o=/\{\s*([^|}]+?)\s*(?:\|([^}]*))?\s*\}/g,u=" \n�\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff",a="[ -\r \u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+",f=new RegExp("^"+a),l=new RegExp(a+"$"),c=new RegExp(f.source+"|"+l.source,"g"),h=/\{\s*\[(?:native code|function)\]\s*\}/i;n._isNative=function(t){return!!(e.config.useNativeES5&&t&&h.test(t))},n.isArray=n._isNative(Array.isArray)?Array.isArray:function(e){return n.type(e)==="array"},n.isBoolean=function(e){return typeof e=="boolean"},n.isDate=function(e){return n.type(e)==="date"&&e.toString 3()!=="Invalid Date"&&!isNaN(e)},n.isFunction=function(e){return n.type(e)==="function"},n.isNull=function(e){return e===null},n.isNumber=function(e){return typeof e=="number"&&isFinite(e)},n.isObject=function(e,t){var r=typeof e;return e&&(r==="object"||!t&&(r==="function"||n.isFunction(e)))||!1},n.isRegExp=function(e){return n.type(e)==="regexp"},n.isString=function(e){return typeof e=="string"},n.isUndefined=function(e){return typeof e=="undefined"},n.isValue=function(e){var t=n.type(e);switch(t){case"number":return isFinite(e);case"null":case"undefined":return!1;default:return!!t}},n.now=Date.now||function(){return(new Date).getTime()},n.sub=function(e,t){function n(e,t){var r;if(typeof e[t]!="undefined")return e[t];t=t.split("."),r=t.slice(1).join("."),t=t[0];if(r&&typeof e[t]=="object"&&e[t]!==null)return n(e[t],r)}return e.replace?e.replace(o,function(e,r){var i=r.indexOf(".")>-1?n(t,r):t[r];return typeof i=="undefined"?e:i}):e},n.trim=n._isNative(r.trim)&&!u.trim()?function(e){return e&&e.trim?e.trim():e}:function(e){try{return e.replace(c,"")}catch(t){return e}},n.trimLeft=n._isNative(r.trimLeft)&&!u.trimLeft()?function(e){return e.trimLeft()}:function(e){return e.replace(f,"")},n.trimRight=n._isNative(r.trimRight)&&!u.trimRight()?function(e){return e.trimRight()}:function(e){return e.replace(l,"")},n.type=function(e){return s[typeof e]||s[i.call(e)]||(e?"object":"null")};var p=e.Lang,d=Array.prototype,v=Object.prototype.hasOwnProperty;e.Array=m,m.dedupe=p._isNative(Object.create)?function(e){var t=Object.create(null),n=[],r,i,s;for(r=0,s=e.length;r<s;++r)i=e[r],t[i]||(t[i]=1,n.push(i));return n}:function(e){var t={},n=[],r,i,s;for(r=0,s=e.length;r<s;++r)i=e[r],v.call(t,i)||(t[i]=1,n.push(i));return n}
3,m.each=m.forEach=p._isNative(d.forEach)?function(t,n,r){return d.forEach.call(t||[],n,r||e),e}:function(t,n,r){for(var i=0,s=t&&t.length||0;i<s;++i)i in t&&n.call(r||e,t[i],i,t);return e},m.hash=function(e,t){var n={},r=t&&t.length||0,i,s;for(i=0,s=e.length;i<s;++i)i in e&&(n[e[i]]=r>i&&i in t?t[i]:!0);return n},m.indexOf=p._isNative(d.indexOf)?function(e,t,n){return d.indexOf.call(e,t,n)}:function(e,t,n){var r=e.length;n=+n||0,n=(n>0||-1)*Math.floor(Math.abs(n)),n<0&&(n+=r,n<0&&(n=0));for(;n<r;++n)if(n in e&&e[n]===t)return n;return-1},m.numericSort=function(e,t){return e-t},m.some=p._isNative(d.some)?function(e,t,n){return d.some.call(e,t,n)}:function(e,t,n){for(var r=0,i=e.length;r<i;++r)if(r in e&&t.call(n,e[r],r,e))return!0;return!1},m.test=function(e){var t=0;if(p.isArray(e))t=1;else if(p.isObject(e))try{"length"in e&&!e.tagName&&(!e.scrollTo||!e.document)&&!e.apply&&(t=2)}catch(n){}return t},g.prototype={_init:function(){this._q=[]},next:function(){return this._q.shift()},last:function(){return this._q.pop()},add:function(){return this._q.push.apply(this._q,arguments),this},size:function(){return this._q.length}},e.Queue=g,YUI.Env._loaderQueue=YUI.Env._loaderQueue||new g;var y="__",v=Object.prototype.hasOwnProperty,b=e.Lang.isObject;e.cached=function(e,t,n){return t||(t={}),function(r){var i=arguments.length>1?Array.prototype.join.call(arguments,y):String(r);if(!(i in t)||n&&t[i]==n)t[i]=e.apply(e,arguments);return t[i]}},e.getLocation=function(){var t=e.config.win;return t&&t.location},e.merge=function(){var e=0,t=arguments.length,n={},r,i;for(;e<t;++e){i=arguments[e];for(r in i)v.call(i,r)&&(n[r]=i[r])}return n},e.mix=function(t,n,r,i,s,o){var u,a,f,l,c,h,p;if(!t||!n)return t||e;if(s){s===2&&e.mix(t.prototype,n.prototype,r,i,0,o),f=s===1||s===3?n.prototype:n,p=s===1||s===4?t.prototype:t;if(!f||!p)return t}else f=n,p=t;u=r&&!o;if(i)for(l=0,h=i.length;l<h;++l){c=i[l];if(!v.call(f,c))continue;a=u?!1:c in p;if(o&&a&&b(p[c],!0)&&b(f[c],!0))e.mix(p[c],f[c],r,null,0,o);else if(r||!a)p[c]=f[c]}else{for(c in f){if(!v.call(f,c))continue;a=u?!1:c in p;if(o&&a&&b(p[c],!0)&&b(f[c],!0))e.mix(p[c],f[c],r,null,0,o);else if(r||!a)p[c]=f[c]}e.Object._hasEnumBug&&e.mix(p,f,r,e.Object._forceEnum,s,o)}return t};var p=e.Lang,v=Object.prototype.hasOwnProperty,w,E=e.Object=p._isNative(Object.create)?function(e){return Object.create(e)}:function(){function e(){}return function(t){return e.prototype=t,new e}}(),S=E._forceEnum=["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","toLocaleString","valueOf"],x=E._hasEnumBug=!{valueOf:0}.propertyIsEnumerable("valueOf"),T=E._hasProtoEnumBug=function(){}.propertyIsEnumerable("prototype"),N=E.owns=function(e,t){return!!e&&v.call(e,t)};E.hasKey=N,E.keys=p._isNative(Object.keys)&&!T?Object.keys:function(e){if(!p.isObject(e))throw new TypeError("Object.keys called on a non-object");var t=[],n,r,i;if(T&&typeof e=="function")for(r in e)N(e,r)&&r!=="prototype"&&t.push(r);else for(r in e)N(e,r)&&t.push(r);if(x)for(n=0,i=S.length;n<i;++n)r=S[n],N(e,r)&&t.push(r);return t},E.values=function(e){var t=E.keys(e),n=0,r=t.length,i=[];for(;n<r;++n)i.push(e[t[n]]);return i},E.size=function(e){try{return E.keys(e).length}catch(t){return 0}},E.hasValue=function(t,n){return e.Array.indexOf(E.values(t),n)>-1},E.each=function(t,n,r,i){var s;for(s in t)(i||N(t,s))&&n.call(r||e,t[s],s,t);return e},E.some=function(t,n,r,i){var s;for(s in t)if(i||N(t,s))if(n.call(r||e,t[s],s,t))return!0;return!1},E.getValue=function(t,n){if(!p.isObject(t))return w;var r,i=e.Array(n),s=i.length;for(r=0;t!==w&&r<s;r++)t=t[i[r]];return t},E.setValue=function(t,n,r){var i,s=e.Array(n),o=s.length-1,u=t;if(o>=0){for(i=0;u!==w&&i<o;i++)u=u[s[i]];if(u===w)return w;u[s[i]]=r}return t},E.isEmpty=function(e){return!E.keys(Object(e)).length},YUI.Env.parseUA=function(t){var n=function(e){var t=0;return parseFloat(e.replace(/\./g,function(){return t++===1?"":"."}))},r=e.config.win,i=r&&r.navigator,s={ie:0,opera:0,gecko:0,webkit:0,safari:0,chrome:0,mobile:null,air:0,phantomjs:0,ipad:0,iphone:0,ipod:0,ios:null,android:0,silk:0,ubuntu:0,accel:!1,webos:0,caja:i&&i.cajaVersion,secure:!1,os:null,nodejs:0,winjs:typeof Windows!="undefined"&&!!Windows.System,touchEnabled:!1},o=t||i&&i.userAgent,u=r&&r.location 4,a=u&&u.href,f;return s.userAgent=o,s.secure=a&&a.toLowerCase().indexOf("https")===0,o&&(/windows|win32/i.test(o)?s.os="windows":/macintosh|mac_powerpc/i.test(o)?s.os="macintosh":/android/i.test(o)?s.os="android":/symbos/i.test(o)?s.os="symbos":/linux/i.test(o)?s.os="linux":/rhino/i.test(o)&&(s.os="rhino"),/KHTML/.test(o)&&(s.webkit=1),/IEMobile|XBLWP7/.test(o)&&(s.mobile="windows"),/Fennec/.test(o)&&(s.mobile="gecko"),f=o.match(/AppleWeb
4Kit\/([^\s]*)/),f&&f[1]&&(s.webkit=n(f[1]),s.safari=s.webkit,/PhantomJS/.test(o)&&(f=o.match(/PhantomJS\/([^\s]*)/),f&&f[1]&&(s.phantomjs=n(f[1]))),/ Mobile\//.test(o)||/iPad|iPod|iPhone/.test(o)?(s.mobile="Apple",f=o.match(/OS ([^\s]*)/),f&&f[1]&&(f=n(f[1].replace("_","."))),s.ios=f,s.os="ios",s.ipad=s.ipod=s.iphone=0,f=o.match(/iPad|iPod|iPhone/),f&&f[0]&&(s[f[0].toLowerCase()]=s.ios)):(f=o.match(/NokiaN[^\/]*|webOS\/\d\.\d/),f&&(s.mobile=f[0]),/webOS/.test(o)&&(s.mobile="WebOS",f=o.match(/webOS\/([^\s]*);/),f&&f[1]&&(s.webos=n(f[1]))),/ Android/.test(o)&&(s.mobile="Android",f=o.match(/Android ([^\s]*);/),f&&f[1]&&(s.android=n(f[1]))),/Silk/.test(o)&&(f=o.match(/Silk\/([^\s]*)/),f&&f[1]&&(s.silk=n(f[1])),s.android||(s.android=2.34,s.os="Android"),/Accelerated=true/.test(o)&&(s.accel=!0))),f=o.match(/OPR\/(\d+\.\d+)/),f&&f[1]?s.opera=n(f[1]):(f=o.match(/(Chrome|CrMo|CriOS)\/([^\s]*)/),f&&f[1]&&f[2]?(s.chrome=n(f[2]),s.safari=0,f[1]==="CrMo"&&(s.mobile="chrome")):(f=o.match(/AdobeAIR\/([^\s]*)/),f&&(s.air=f[0])))),f=o.match(/Ubuntu\ (\d+\.\d+)/),f&&f[1]&&(s.os="linux",s.ubuntu=n(f[1]),f=o.match(/\ WebKit\/([^\s]*)/),f&&f[1]&&(s.webkit=n(f[1])),f=o.match(/\ Chromium\/([^\s]*)/),f&&f[1]&&(s.chrome=n(f[1])),/ Mobile$/.test(o)&&(s.mobile="Ubuntu")),s.webkit||(/Opera/.test(o)?(f=o.match(/Opera[\s\/]([^\s]*)/),f&&f[1]&&(s.opera=n(f[1])),f=o.match(/Version\/([^\s]*)/),f&&f[1]&&(s.opera=n(f[1])),/Opera Mobi/.test(o)&&(s.mobile="opera",f=o.replace("Opera Mobi","").match(/Opera ([^\s]*)/),f&&f[1]&&(s.opera=n(f[1]))),f=o.match(/Opera Mini[^;]*/),f&&(s.mobile=f[0])):(f=o.match(/MSIE ([^;]*)|Trident.*; rv:([0-9.]+)/),f&&(f[1]||f[2])?s.ie=n(f[1]||f[2]):(f=o.match(/Gecko\/([^\s]*)/),f&&(s.gecko=1,f=o.match(/rv:([^\s\)]*)/),f&&f[1]&&(s.gecko=n(f[1]),/Mobile|Tablet/.test(o)&&(s.mobile="ffos"))))))),r&&i&&!(s.chrome&&s.chrome<6)&&(s.touchEnabled="ontouchstart"in r||"msMaxTouchPoints"in i&&i.msMaxTouchPoints>0),t||(typeof process=="object"&&process.versions&&process.versions.node&&(s.os=process.platform,s.nodejs=n(process.versions.node)),YUI.Env.UA=s),s},e.UA=YUI.Env.UA||YUI.Env.parseUA(),e.UA.compareVersions=function(e,t){var n,r,i,s,o,u;if(e===t)return 0;r=(e+"").split("."),s=(t+"").split(".");for(o=0,u=Math.max(r.length,s.length);o<u;++o){n=parseInt(r[o],10),i=parseInt(s[o],10),isNaN(n)&&(n=0),isNaN(i)&&(i=0);if(n<i)return-1;if(n>i)return 1}return 0},YUI.Env.aliases={anim:["anim-base","anim-color","anim-curve","anim-easing","anim-node-plugin","anim-scroll","anim-xy"],"anim-shape-transform":["anim-shape"],app:["app-base","app-content","app-transitions","lazy-model-list","model","model-list","model-sync-rest","model-sync-local","router","view","view-node-map"],attribute:["attribute-base","attribute-complex"],"attribute-events":["attribute-observable"],autocomplete:["autocomplete-base","autocomplete-sources","autocomplete-list","autocomplete-plugin"],axes:["axis-numeric","axis-category","axis-time","axis-stacked"],"axes-base":["axis-numeric-base","axis-category-base","axis-time-base","axis-stacked-base"],base:["base-base","base-pluginhost","base-build"],cache:["cache-base","cache-offline","cache-plugin"],charts:["charts-base"],collection:["array-extras","arraylist","arraylist-add","arraylist-filter","array-invoke"],color:["color-base","color-hsl","color-harmony"],controller:["router"],dataschema:["dataschema-base","dataschema-json","dataschema-xml","dataschema-array","dataschema-text"],datasource:["datasource-local","datasource-io","datasource-get","datasource-function","datasource-cache","datasource-jsonschema","datasource-xmlschema","datasource-arrayschema","datasource-textschema","datasource-polling"],datatable:["datatable-core","datatable-table","datatable-head","datatable-body","datatable-base","datatable-column-widths","datatable-message","datatable-mutable","datatable-sort","datatable-datasource"],datatype:["datatype-date","datatype-number","datatype-xml"],"datatype-date":["datatype-date-parse","datatype-date-format","datatype-date-math"],"datatype-number":["datatype-number-parse","datatype-number-format"],"datatype-xml":["datatype-xml-parse","datatype-xml-format"],dd:["dd-ddm-base","dd-ddm","dd-ddm-drop","dd-drag","dd-proxy","dd-constrain","dd-drop","dd-scroll","dd-delegate"],dom:["dom-base","dom-screen","dom-style","selector-native","selector"],editor:["frame","editor-selection","exec-command","editor-base","editor-para","editor-br","editor-bidi","editor-tab","createlink-base"],event:["event-base","event-delegate","event-synthetic","event-mousewheel","event-mouseenter","event-key","event-focus","event-resize","event-hover","event-outside","event-touch","event-move","event-flick","event-valuechange","event-tap"],"event-custom":["event-custom-base","event-custom-complex"],"event-gestures":["event-flick","event-move"],handlebars:["handlebars-compiler"],highlight:["highlight-base","highlight-accentfold"],history:["history-base","history-hash","history-html5"],io:["io-base","io-xdr","io-form","io-upload-iframe","io-queue"],json:["json-parse","json-stringify"],loader:["loader-base","loader-rollup","loader-yui3"],"loader-pathogen-encoder":["loader-base","loader-rollup","loader-yui3","loader-pathogen-combo
4handler"],node:["node-base","node-event-delegate","node-pluginhost","node-screen","node-style"],pluginhost:["pluginhost-base","pluginhost-config"],querystring:["querystring-parse","querystring-stringify"],recordset:["recordset-base","recordset-sort","recordset-filter","recordset-indexer"],resize:["resize-base","resize-proxy","resize-constrain"],slider:["slider-base","slider-value-range" 5,"clickable-rail","range-slider"],template:["template-base","template-micro"],text:["text-accentfold","text-wordbreak"],widget:["widget-base","widget-htmlparser","widget-skin","widget-uievents"]}},"patched-v3.20.5",{use:["yui-base","get","features","intl-base","yui-log","yui-later","loader-base","loader-rollup","loader-yui3"]}),YUI.add("get",function(e,t){var n=e.Lang,r,i,s;e.Get=i={cssOptions:{attributes:{rel:"stylesheet"},doc:e.config.linkDoc||e.config.doc,pollInterval:50},jsOptions:{autopurge:!0,doc:e.config.scriptDoc||e.config.doc},options:{attributes:{charset:"utf-8"},purgethreshold:20},REGEX_CSS:/\.css(?:[?;].*)?$/i,REGEX_JS:/\.js(?:[?;].*)?$/i,_insertCache:{},_pending:null,_purgeNodes:[],_queue:[],abort:function(e){var t,n,r,i,s;if(!e.abort){n=e,s=this._pending,e=null;if(s&&s.transaction.id===n)e=s.transaction,this._pending=null;else for(t=0,i=this._queue.length;t<i;++t){r=this._queue[t].transaction;if(r.id===n){e=r,this._queue.splice(t,1);break}}}e&&e.abort()},css:function(e,t,n){return this._load("css",e,t,n)},js:function(e,t,n){return this._load("js",e,t,n)},load:function(e,t,n){return this._load(null,e,t,n)},_autoPurge:function(e){e&&this._purgeNodes.length>=e&&this._purge(this._purgeNodes)},_getEnv:function(){var t=e.config.doc,n=e.UA;return this._env={async:t&&t.createElement("script").async===!0||n.ie>=10,cssFail:n.gecko>=9||n.compareVersions(n.webkit,535.24)>=0,cssLoad:(!n.gecko&&!n.webkit||n.gecko>=9||n.compareVersions(n.webkit,535.24)>=0)&&!(n.chrome&&n.chrome<=18),preservesScriptOrder:!!(n.gecko||n.opera||n.ie&&n.ie>=10)}},_getTransaction:function(t,r){var i=[],o,u,a,f;n.isArray(t)||(t=[t]),r=e.merge(this.options,r),r.attributes=e.merge(this.options.attributes,r.attributes);for(o=0,u=t.length;o<u;++o){f=t[o],a={attributes:{}};if(typeof f=="string")a.url=f;else{if(!f.url)continue;e.mix(a,f,!1,null,0,!0),f=f.url}e.mix(a,r,!1,null,0,!0),a.type||(this.REGEX_CSS.test(f)?a.type="css":(!this.REGEX_JS.test(f),a.type="js")),e.mix(a,a.type==="js"?this.jsOptions:this.cssOptions,!1,null,0,!0),a.attributes.id||(a.attributes.id=e.guid()),a.win?a.doc=a.win.document:a.win=a.doc.defaultView||a.doc.parentWindow,a.charset&&(a.attributes.charset=a.charset),i.push(a)}return new s(i,r)},_load:function(e,t,n,r){var s;return typeof n=="function"&&(r=n,n={}),n||(n={}),n.type=e,n._onFinish=i._onTransactionFinish,this._env||this._getEnv(),s=this._getTransaction(t,n),this._queue.push({callback:r,transaction:s}),this._next(),s},_onTransactionFinish:function(){i._pending=null,i._next()},_next:function(){var e;if(this._pending)return;e=this._queue.shift(),e&&(this._pending=e,e.transaction.execute(e.callback))},_purge:function(t){var n=this._purgeNodes,r=t!==n,i,s;while(s=t.pop()){if(!s._yuiget_finished)continue;s.parentNode&&s.parentNode.removeChild(s),r&&(i=e.Array.indexOf(n,s),i>-1&&n.splice(i,1))}}},i.script=i.js,i.Transaction=s=function(t,n){var r=this;r.id=s._lastId+=1,r.data=n.data,r.errors=[],r.nodes=[],r.options=n,r.requests=t,r._callbacks=[],r._queue=[],r._reqsWaiting=0,r.tId=r.id,r.win=n.win||e.config.win},s._lastId=0,s.prototype={_state:"new",abort:function(e){this._pending=null,this._pendingCSS=null,this._pollTimer=clearTimeout(this._pollTimer),this._queue=[],this._reqsWaiting=0,this.errors.push({error:e||"Aborted"}),this._finish()},execute:function(e){var t=this,n=t.requests,r=t._state,i,s,o,u;if(r==="done"){e&&e(t.errors.length?t.errors:null,t);return}e&&t._callbacks.push(e);if(r==="executing")return;t._state="executing",t._queue=o=[],t.options.timeout&&(t._timeout=setTimeout(function(){t.abort("Timeout")},t.options.timeout)),t._reqsWaiting=n.length;for(i=0,s=n.length;i<s;++i)u=n[i],u.async||u.type==="css"?t._insert(u):o.push(u);t._next()},purge:function(){i._purge(this.nodes)},_createNode:function(e,t,n){var i=n.createElement(e),s,o;r||(o=n.createElement("div"),o.setAttribute("class","a"),r=o.className==="a"?{}:{"for":"htmlFor","class":"className"});for(s in t)t.hasOwnProperty(s)&&i.setAttribute(r[s]||s,t[s]);return i},_finish:function(){var e=this.errors.length?this.errors:null,t=this.options,n=t.context||this,r,i,s;if(this._state==="done")return;this._state="done";for(i=0,s=this._callbacks.length;i<s;++i)this._callbacks[i].call(n,e,this);r=this._getEventData(),e?(t.onTimeout&&e[e.length-1].error==="Timeout"&&t.onTimeout.call(n,r),t.onFailure&&t.onFailure.call(n,r)):t.onSuccess&&t.onSuccess.call(n,r),t.onEnd&&t.onEnd.call(n,r),t._onFinish&&t._onFinish()},_getEventData:function(t){return t?e.merge(this,{abort:this.abort,purge:this.purge,request:t,url:t.url,win:t.win}):this},_getInsertBefore:function(t){var n=t.doc,r=t.insertBefore,s,o;return r?typeof r=="string"?n.getElementById(r):r:(s=i._insertCache,o=e.stamp(n),(r=s[o])?r:(r=n.getElementsByTagName("base")[0])?s[o]=r:(r=n.head||n.getElementsByTagName("head")[0],r?(r.appendChild(n.createTextNode("")),s[o]=r.lastChild):s[o]=n.getElementsByTagName("script")[0]))},_insert:function(t){function c(){u._progress("Failed to load "+t.url,t)}function h(){f&&clearTimeout(f),u._progress(null,t)}var n=i._env,r=this._getInsertBefore(t),s=t.type==="js",o=t.node,u=this,a=e.UA,f,l;o||(s?l="script":!n.cssLoad&&a.gecko?l="style":(l="link",delete t.attributes.charset),o=t.node=this._createNode(l,t.attributes,t.doc)),Liferay.CSP&&Liferay.CSP.nonce&&["link","script","style"].includes(l)&&o.setAttribute("nonce",Liferay.CSP.nonce),s?(o.setAttribute("src",t.url),t.async?o.async=!0:(n.async&&(o.async=!1),n.preservesScriptOrder||(this._pe
5nding=t))):!n.cssLoad&&a.gecko?o.innerHTML=(t.attributes.charset?'@charset "'+t.attributes.charset+'";':"")+'@import "'+t.url+'";':o.setAttribute("href",t.url),s&&a.ie&&(a.ie<9||document.documentMode&&document.documentMode<9)?o.onreadystatechange=function(){/loaded|complete/.test(o.readyState)&&(o.onreadystatechange=null,h())}:!s&&!n.cssLoad?this._poll(t):(a.ie>=10?(o.onerror=function(){setTimeout(c,0)},o.onload=function(){setTimeout(h,0)}):(o.onerror=c,o.onload=h),!n.cssFail&&!s&&(f=setTimeout(c,t.timeout||3e3))),this.nodes.push 6(o),r.parentNode.insertBefore(o,r)},_next:function(){if(this._pending)return;this._queue.length?this._insert(this._queue.shift()):this._reqsWaiting||this._finish()},_poll:function(t){var n=this,r=n._pendingCSS,i=e.UA.webkit,s,o,u,a,f,l;if(t){r||(r=n._pendingCSS=[]),r.push(t);if(n._pollTimer)return}n._pollTimer=null;for(s=0;s<r.length;++s){f=r[s];if(i){l=f.doc.styleSheets,u=l.length,a=f.node.href;while(--u>=0)if(l[u].href===a){r.splice(s,1),s-=1,n._progress(null,f);break}}else try{o=!!f.node.sheet.cssRules,r.splice(s,1),s-=1,n._progress(null,f)}catch(c){}}r.length&&(n._pollTimer=setTimeout(function(){n._poll.call(n)},n.options.pollInterval))},_progress:function(e,t){var n=this.options;e&&(t.error=e,this.errors.push({error:e,request:t})),t.node._yuiget_finished=t.finished=!0,n.onProgress&&n.onProgress.call(n.context||this,this._getEventData(t)),t.autopurge&&(i._autoPurge(this.options.purgethreshold),i._purgeNodes.push(t.node)),this._pending===t&&(this._pending=null),this._reqsWaiting-=1,this._next()}}},"patched-v3.20.5",{requires:["yui-base"]}),YUI.add("features",function(e,t){var n={};e.mix(e.namespace("Features"),{tests:n,add:function(e,t,r){n[e]=n[e]||{},n[e][t]=r},all:function(t,r){var i=n[t],s=[];return i&&e.Object.each(i,function(n,i){s.push(i+":"+(e.Features.test(t,i,r)?1:0))}),s.length?s.join(";"):""},test:function(t,r,i){i=i||[];var s,o,u,a=n[t],f=a&&a[r];return!f||(s=f.result,e.Lang.isUndefined(s)&&(o=f.ua,o&&(s=e.UA[o]),u=f.test,u&&(!o||s)&&(s=u.apply(e,i)),f.result=s)),s}});var r=e.Features.add;r("load","0",{name:"app-transitions-native",test:function(e){var t=e.config.doc,n=t?t.documentElement:null;return n&&n.style?"MozTransition"in n.style||"WebkitTransition"in n.style||"transition"in n.style:!1},trigger:"app-transitions"}),r("load","1",{name:"autocomplete-list-keys",test:function(e){return!e.UA.ios&&!e.UA.android},trigger:"autocomplete-list"}),r("load","2",{name:"dd-gestures",trigger:"dd-drag",ua:"touchEnabled"}),r("load","3",{name:"dom-style-ie",test:function(e){var t=e.Features.test,n=e.Features.add,r=e.config.win,i=e.config.doc,s="documentElement",o=!1;return n("style","computedStyle",{test:function(){return r&&"getComputedStyle"in r}}),n("style","opacity",{test:function(){return i&&"opacity"in i[s].style}}),o=!t("style","opacity")&&!t("style","computedStyle"),o},trigger:"dom-style"}),r("load","4",{name:"editor-para-ie",trigger:"editor-para",ua:"ie",when:"instead"}),r("load","5",{name:"event-base-ie",test:function(e){var t=e.config.doc&&e.config.doc.implementation;return t&&!t.hasFeature("Events","2.0")},trigger:"node-base"}),r("load","6",{name:"graphics-canvas",test:function(e){var t=e.config.doc,n=e.config.defaultGraphicEngine&&e.config.defaultGraphicEngine=="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return(!i||n)&&r&&r.getContext&&r.getContext("2d")},trigger:"graphics"}),r("load","7",{name:"graphics-canvas-default",test:function(e){var t=e.config.doc,n=e.config.defaultGraphicEngine&&e.config.defaultGraphicEngine=="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return(!i||n)&&r&&r.getContext&&r.getContext("2d")},trigger:"graphics"}),r("load","8",{name:"graphics-svg",test:function(e){var t=e.config.doc,n=!e.config.defaultGraphicEngine||e.config.defaultGraphicEngine!="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return i&&(n||!r)},trigger:"graphics"}),r("load","9",{name:"graphics-svg-default",test:function(e){var t=e.config.doc,n=!e.config.defaultGraphicEngine||e.config.defaultGraphicEngine!="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return i&&(n||!r)},trigger:"graphics"}),r("load","10",{name:"graphics-vml",test:function(e){var t=e.config.doc,n=t&&t.createElement("canvas");return t&&!t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!n||!n.getContext||!n.getContext("2d"))},trigger:"graphics"}),r("load","11",{name:"graphics-vml-default",test:function(e){var t=e.config.doc,n=t&&t.createElement("canvas");return t&&!t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!n||!n.getContext||!n.getContext("2d"))},trigger:"graphics"}),r("load","12",{name:"history-hash-ie",test:function(e){var t=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange"in e.config.win)||!t||t<8)},trigger:"history-hash"}),r("load","13",{name:"io-nodejs",trigger:"io-base",ua:"nodejs"}),r("load","14",{name:"json-parse-shim",test:function(e){function i(e,t){return e==="ok"?!0:t}var t=e.config.global.JSON,n=Object.prototype.toString.call(t)==="[object JSON]"&&t,r=e.config.useNativeJSONParse!==!1&&!!n;if(r)try{r=n.parse('{"ok":false}',i).ok}catch(s){r=!1}return!r},trigger:"json-parse"}),r("load","15",{name:"json-stringify-shim",test:function(e){var t=e.config.global.JSON,n=Object.prototype.toString.call(t)==="[object JSON]"&&t,r=e.config.useNativeJSONStringify!==!1&&!!n;if(r)try{r="0"===n.stringify(0)}catch(i){r=!1}return!r},trigger:"json-stringify"}),r("load","16",{name:"scrollview-base-ie",trigger:"scrollview-base",ua:"ie"}),r("load","17",{name:"selector-css2",test:function(e){var t=e.config.doc,n=t&&!("querySelectorAll"in t);return n},trigger:"selector"}),r("load","18",{name:"transition-timer",test:function(e){var t=e.config.doc,n=t?t.documentElement:null,r=!0;return n&&n.style&&(r=!("MozTransition"in n.style||"WebkitTransition"in n.style||"transition"in n.style)),r},trigger:"transition"}),r("load","19",{name:"widget-base-ie",trigger:"widget-base",ua:"ie"}),r("load","20",{name:"yql-jsonp",test:function(e){return!e.UA.nodejs&&!e.
6UA.winjs},trigger:"yql"}),r("load","21",{name:"yql-nodejs",trigger:"yql",ua:"nodejs"}),r("load","22",{name:"yql-winjs",trigger:"yql",ua:"winjs"})},"patched-v3.20.5" 7,{requires:["yui-base"]}),YUI.add("intl-base",function(e,t){var n=/[, ]/;e.mix(e.namespace("Intl"),{lookupBestLang:function(t,r){function a(e){var t;for(t=0;t<r.length;t+=1)if(e.toLowerCase()===r[t].toLowerCase())return r[t]}var i,s,o,u;e.Lang.isString(t)&&(t=t.split(n));for(i=0;i<t.length;i+=1){s=t[i];if(!s||s==="*")continue;while(s.length>0){o=a(s);if(o)return o;u=s.lastIndexOf("-");if(!(u>=0))break;s=s.substring(0,u),u>=2&&s.charAt(u-2)==="-"&&(s=s.substring(0,u-2))}}return""}})},"patched-v3.20.5",{requires:["yui-base"]}),YUI.add("yui-log",function(e,t){var n=e,r="yui:log",i="undefined",s={debug:1,info:2,warn:4,error:8};n.log=function(e,t,o,u){var a,f,l,c,h,p,d=n,v=d.config,m=d.fire?d:YUI.Env.globalEvents;return v.debug&&(o=o||"",typeof o!="undefined"&&(f=v.logExclude,l=v.logInclude,!l||o in l?l&&o in l?a=!l[o]:f&&o in f&&(a=f[o]):a=1,typeof t=="undefined"&&(t="info"),d.config.logLevel=d.config.logLevel||"debug",p=s[d.config.logLevel.toLowerCase()],t in s&&s[t]<p&&(a=1)),a||(v.useBrowserConsole&&(c=o?o+": "+e:e,d.Lang.isFunction(v.logFn)?v.logFn.call(d,e,t,o):typeof console!==i&&console.log?(h=t&&console[t]&&t in s?t:"log",console[h](c)):typeof opera!==i&&opera.postError(c)),m&&!u&&(m===d&&!m.getEvent(r)&&m.publish(r,{broadcast:2}),m.fire(r,{msg:e,cat:t,src:o})))),d},n.message=function(){return n.log.apply(n,arguments)}},"patched-v3.20.5",{requires:["yui-base"]}),YUI.add("yui-later",function(e,t){var n=[];e.later=function(t,r,i,s,o){t=t||0,s=e.Lang.isUndefined(s)?n:e.Array(s),r=r||e.config.win||e;var u=!1,a=r&&e.Lang.isString(i)?r[i]:i,f=function(){u||(a.apply?a.apply(r,s||n):a(s[0],s[1],s[2],s[3]))},l=o?setInterval(f,t):setTimeout(f,t);return{id:l,interval:o,cancel:function(){u=!0,this.interval?clearInterval(l):clearTimeout(l)}}},e.Lang.later=e.later},"patched-v3.20.5",{requires:["yui-base"]}),YUI.add("loader-base",function(e,t){(function(){var t=e.version,n="/build/",r=t+"/",i=e.Env.base,s="gallery-2014.06.04-21-38",o="2in3",u="4",a="2.9.0",f=i+"combo?",l={version:t,root:r,base:e.Env.base,comboBase:f,skin:{defaultSkin:"sam",base:"assets/skins/",path:"skin.css",after:["cssreset","cssfonts","cssgrids","cssbase","cssreset-context","cssfonts-context"]},groups:{},patterns:{}},c=l.groups,h=function(e,t,r){var s=o+"."+(e||u)+"/"+(t||a)+n,l=r&&r.base?r.base:i,h=r&&r.comboBase?r.comboBase:f;c.yui2.base=l+s,c.yui2.root=s,c.yui2.comboBase=h},p=function(e,t){var r=(e||s)+n,o=t&&t.base?t.base:i,u=t&&t.comboBase?t.comboBase:f;c.gallery.base=o+r,c.gallery.root=r,c.gallery.comboBase=u};c[t]={},c.gallery={ext:!1,combine:!0,comboBase:f,update:p,patterns:{"gallery-":{},"lang/gallery-":{},"gallerycss-":{type:"css"}}},c.yui2={combine:!0,ext:!1,comboBase:f,update:h,patterns:{"yui2-":{configFn:function(e){/-skin|reset|fonts|grids|base/.test(e.name)&&(e.type="css",e.path=e.path.replace(/\.js/,".css"),e.path=e.path.replace(/\/yui2-skin/,"/assets/skins/sam/yui2-skin"))}}}},p(),h(),YUI.Env[t]&&e.mix(l,YUI.Env[t],!1,["modules","groups","skin"],0,!0),YUI.Env[t]=l})();var n={},r=[],i=1024,s=YUI.Env,o=s._loaded,u="css",a="js",f="intl",l="sam",c=e.version,h="",p=e.Object,d=p.each,v=e.Array,m=s._loaderQueue,g=s[c],y="skin-",b=e.Lang,w=s.mods,E,S=function(e,t,n,r){var i=e+"/"+t;return r||(i+="-min"),i+="."+(n||u),i};YUI.Env._cssLoaded||(YUI.Env._cssLoaded={}),e.Env.meta=g,e.Loader=function(t){var n=this;t=t||{},E=g.md5,n.context=e,t.doBeforeLoader&&t.doBeforeLoader.apply(n,arguments),n.base=e.Env.meta.base+e.Env.meta.root,n.comboBase=e.Env.meta.comboBase,n.combine=t.base&&t.base.indexOf(n.comboBase.substr(0,20))>-1,n.comboSep="&",n.maxURLLength=i,n.ignoreRegistered=t.ignoreRegistered,n.root=e.Env.meta.root,n.timeout=0,n.forceMap={},n.allowRollup=!1,n.filters={},n.required={},n.patterns={},n.moduleInfo={},n.groups=e.merge(e.Env.meta.groups),n.skin=e.merge(e.Env.meta.skin),n.conditions={},n.config=t,n._internal=!0,n._populateConditionsCache(),n.loaded=o[c],n.async=!0,n._inspectPage(),n._internal=!1,n._config(t),n.forceMap=n.force?e.Array.hash(n.force):{},n.testresults=null,e.config.tests&&(n.testresults=e.config.tests),n.sorted=[],n.dirty=!0,n.inserted={},n.skipped={},n.tested={},n.ignoreRegistered&&n._resetModules()},e.Loader.prototype={getModuleInfo:function(t){var n=this.moduleInfo[t],r,i,o,a;return n?n:(r=g.modules,i=s._renderedMods,o=this._internal,i&&i.hasOwnProperty(t)&&!this.ignoreRegistered?this.moduleInfo[t]=e.merge(i[t]):r.hasOwnProperty(t)&&(this._internal=!0,a=this.addModule(r[t],t),a&&a.type===u&&this.isCSSLoaded(a.name,!0)&&(this.loaded[a.name]=!0),this._internal=o),this.moduleInfo[t])},_expandAliases:function(t){var n=[],r=YUI.Env.aliases,i,s;t=e.Array(t);for(i=0;i<t.length;i+=1)s=t[i],n.push.apply(n,r[s]?r[s]:[s]);return n},_populateConditionsCache:function(){var t=g.modules,n=s._conditions,r,i,o,u;if(n&&!this.ignoreRegistered)for(r in n)n.hasOwnProperty(r)&&(this.conditions[r]=e.merge(n[r]));else{for(r in t)if(t.hasOwnProperty(r)&&t[r].condition){o=this._expandAliases(t[r].condition.trigger);for(i=0;i<o.length;i+=1)u=o[i],this.conditions[u]=this.conditions[u]||{},this.conditions[u][t[r].name||r]=t[r].condition}s._conditions=this.conditions}},_resetModules:function(){var e=this,t,n,r,i,s;for(t in e.moduleInfo)if(e.moduleInfo.hasOwnProperty(t)&&e.moduleInfo[t]){r=e.moduleInfo[t],i=r.name,s=YUI.Env.mods[i]?YUI.Env.mods[i].details:null,
7s&&(e.moduleInfo[i]._reset=!0,e.moduleInfo[i].requires=s.requires||[],e.moduleInfo[i].optional=s.optional||[],e.moduleInfo[i].supersedes=s.supercedes||[]);if(r.defaults)for(n in r.defaults)r.defaults.hasOwnProperty(n)&&r[n]&&(r[n]=r.defaults[n]);r.langCache=undefined,r.skinCache=undefined,r.skinnable&&e._addSkin(e.skin.defaultSkin,r.name)}},REGEX_CSS:/\.css(?:[?;].*)?$/i,FILTER_DEFS:{RAW:{searchExp:"-min\\.js",replaceStr:".js"},DEBUG:{searchExp:"-min\\.js",replaceStr:"-debug.js"},COVERAGE:{searchExp:"-min\\.js",replaceStr:"-coverage.js"}},_inspectPage:function(){var e=this,t,n,r,i,s;for(s in w)w.hasOwnProperty(s)&&(t=w[s],t.details&&(n=e.getModuleInfo(t.name),r=t.details.requires 8,i=n&&n.requires,n?!n._inspected&&r&&i.length!==r.length&&delete n.expanded:n=e.addModule(t.details,s),n._inspected=!0))},_requires:function(e,t){var n,r,i,s,o=this.getModuleInfo(e),a=this.getModuleInfo(t);if(!o||!a)return!1;r=o.expanded_map,i=o.after_map;if(i&&t in i)return!0;i=a.after_map;if(i&&e in i)return!1;s=a.supersedes;if(s)for(n=0;n<s.length;n++)if(this._requires(e,s[n]))return!0;s=o.supersedes;if(s)for(n=0;n<s.length;n++)if(this._requires(t,s[n]))return!1;return r&&t in r?!0:o.ext&&o.type===u&&!a.ext&&a.type===u?!0:!1},_config:function(t){var n,r,i,s,o,u,a,f=this,l=[],c,h;if(t)for(n in t)if(t.hasOwnProperty(n)){i=t[n];if(n==="require")f.require(i);else if(n==="skin")typeof i=="string"&&(f.skin.defaultSkin=t.skin,i={defaultSkin:i}),e.mix(f.skin,i,!0);else if(n==="groups"){for(r in i)if(i.hasOwnProperty(r)){a=r,u=i[r],f.addGroup(u,a);if(u.aliases)for(s in u.aliases)u.aliases.hasOwnProperty(s)&&f.addAlias(u.aliases[s],s)}}else if(n==="modules")for(r in i)i.hasOwnProperty(r)&&f.addModule(i[r],r);else if(n==="aliases")for(r in i)i.hasOwnProperty(r)&&f.addAlias(i[r],r);else n==="gallery"?this.groups.gallery.update&&this.groups.gallery.update(i,t):n==="yui2"||n==="2in3"?this.groups.yui2.update&&this.groups.yui2.update(t["2in3"],t.yui2,t):f[n]=i}o=f.filter,b.isString(o)&&(o=o.toUpperCase(),f.filterName=o,f.filter=f.FILTER_DEFS[o],o==="DEBUG"&&f.require("yui-log","dump"));if(f.filterName&&f.coverage&&f.filterName==="COVERAGE"&&b.isArray(f.coverage)&&f.coverage.length){for(n=0;n<f.coverage.length;n++)c=f.coverage[n],h=f.getModuleInfo(c),h&&h.use?l=l.concat(h.use):l.push(c);f.filters=f.filters||{},e.Array.each(l,function(e){f.filters[e]=f.FILTER_DEFS.COVERAGE}),f.filterName="RAW",f.filter=f.FILTER_DEFS[f.filterName]}},formatSkin:function(e,t){var n=y+e;return t&&(n=n+"-"+t),n},_addSkin:function(e,t,n){var r,i,s,o=this.skin,u=t&&this.getModuleInfo(t),a=u&&u.ext;return t&&(i=this.formatSkin(e,t),this.getModuleInfo(i)||(r=u.pkg||t,s={skin:!0,name:i,group:u.group,type:"css",after:o.after,path:(n||r)+"/"+o.base+e+"/"+t+".css",ext:a},u.base&&(s.base=u.base),u.configFn&&(s.configFn=u.configFn),this.addModule(s,i))),i},addAlias:function(e,t){YUI.Env.aliases[t]=e,this.addModule({name:t,use:e})},addGroup:function(t,n){var r=t.modules,i=this,s=t.defaultBase||e.config.defaultBase,o,u;n=n||t.name,t.name=n,i.groups[n]=t,!t.base&&s&&t.root&&(t.base=s+t.root);if(t.patterns)for(o in t.patterns)t.patterns.hasOwnProperty(o)&&(t.patterns[o].group=n,i.patterns[o]=t.patterns[o]);if(r)for(o in r)r.hasOwnProperty(o)&&(u=r[o],typeof u=="string"&&(u={name:o,fullpath:u}),u.group=n,i.addModule(u,o))},addModule:function(t,n){n=n||t.name,typeof t=="string"&&(t={name:n,fullpath:t});var r,i,o,f,l,c,p,d,m,g,y,b,w,E,x,T,N,C,k,L,A,O,M=this.moduleInfo[n],_=this.conditions,D;M&&M.temp&&(t=e.merge(M,t)),t.name=n;if(!t||!t.name)return null;t.type||(t.type=a,O=t.path||t.fullpath,O&&this.REGEX_CSS.test(O)&&(t.type=u)),!t.path&&!t.fullpath&&(t.path=S(n,n,t.type)),t.supersedes=t.supersedes||t.use,t.ext="ext"in t?t.ext:this._internal?!1:!0,r=t.submodules,this.moduleInfo[n]=t,t.requires=t.requires||[];if(this.requires)for(i=0;i<this.requires.length;i++)t.requires.push(this.requires[i]);if(t.group&&this.groups&&this.groups[t.group]){A=this.groups[t.group];if(A.requires)for(i=0;i<A.requires.length;i++)t.requires.push(A.requires[i])}t.defaults||(t.defaults={requires:t.requires?[].concat(t.requires):null,
8supersedes:t.supersedes?[].concat(t.supersedes):null,optional:t.optional?[].concat(t.optional):null}),t.skinnable&&t.ext&&t.temp&&(k=this._addSkin(this.skin.defaultSkin,n),t.requires.unshift(k)),t.requires.length&&(t.requires=this.filterRequires(t.requires)||[]);if(!t.langPack&&t.lang){b=this.getLangPackName(h,n),p=this.getModuleInfo(b),p||this._addLangPack(null,t,b),y=v(t.lang);for(g=0;g<y.length;g++)T=y[g],b=this.getLangPackName(T,n),p=this.getModuleInfo(b),p||(p=this._addLangPack(T,t,b))}if(r){l=t.supersedes||[],o=0;for(i in r)if(r.hasOwnProperty(i)){c=r[i],c.path=c.path||S(n,i,t.type),c.pkg=n,c.group=t.group,c.supersedes&&(l=l.concat(c.supersedes)),p=this.addModule(c,i),l.push(i);if(p.skinnable){t.skinnable=!0,C=this.skin.overrides;if(C&&C[i])for(g=0;g<C[i].length;g++)k=this._addSkin(C[i][g],i,n),l.push(k);k=this._addSkin(this.skin.defaultSkin,i,n),l.push(k)}if(c.lang&&c.lang.length){b=this.getLangPackName(h,n),p=this.getModuleInfo(b),p||this._addLangPack(null,t,b),y=v(c.lang);for(g=0;g<y.length;g++)T=y[g],b=this.getLangPackName(T,n),w=this.getLangPackName(T,i),p=this.getModuleInfo(b),p||(p=this._addLangPack(T,t,b)),E=E||v.hash(p.supersedes),w in E||p.supersedes.push(w),t.lang=t.lang||[],x=x||v.hash(t.lang),T in x||t.lang.push(T),b=this.getLangPackName(h,n),w=this.getLangPackName(h,i),p=this.getModuleInfo(b),p||(p=this._addLangPack(T,t,b)),w in E||p.supersedes.push(w)}o++}t.supersedes=v.dedupe(l),this.allowRollup&&(t.rollup=o<4?o:Math.min(o-1,4))}d=t.plugins;if(d)for(i in d)d.hasOwnProperty(i)&&(m=d[i],m.pkg=n,m.path=m.path||S(n,i,t.type),m.requires=m.requires||[],m.group=t.group,this.addModule(m,i),t.skinnable&&this._addSkin(this.skin.defaultSkin,i,n));if(t.condition){f=this._expandAliases(t.condition.trigger);for(i=0;i<f.length;i++)D=f[i],L=t.condition.when,_[D]=_[D]||{},_[D][n]=t.condition,L&&L!=="after"?L==="instead"&&(t.supersedes=t.supersedes||[],t.supersedes.push(D)):(t.after=t.after||[],t.after.push(D))}return t.supersedes&&(t.supersedes=this.filterRequires(t.supersedes)),t.after&&(t.after=this.filterRequires(t.after),t.after_map=v.hash(t.after)),t.configFn&&(N=t.configFn(t),N===!1&&(delete this.moduleInfo[n],delete s._renderedMods[n],t=null)),t&&(s._renderedMods||(s._renderedMods={}),s._renderedMods[n]=e.mix(s._renderedMods[n]||{},t),s._conditions=_),t},require:function(t){var n=typeof t=="string"?v(arguments):t;this.dirty=!0,this.required=e.merge(this.required,v.hash(this.filterRequires(n))),this._explodeRollups()},_explodeRollups:function(){var e=this,t,n,r,i,s,o,u,a=e.required;if(!e.allowRollup){for(r in a)if(a.hasOwnProperty 9(r)){t=e.getModule(r);if(t&&t.use){o=t.use.length;for(i=0;i<o;i++){n=e.getModule(t.use[i]);if(n&&n.use){u=n.use.length;for(s=0;s<u;s++)a[n.use[s]]=!0}else a[t.use[i]]=!0}}}e.required=a}},filterRequires:function(t){if(t){e.Lang.isArray(t)||(t=[t]),t=e.Array(t);var n=[],r,i,s,o;for(r=0;r<t.length;r++){i=this.getModule(t[r]);if(i&&i.use)for(s=0;s<i.use.length;s++)o=this.getModule(i.use[s]),o&&o.use&&o.name!==i.name?n=e.Array.dedupe([].concat(n,this.filterRequires(o.use))):n.push(i.use[s]);else n.push(t[r])}t=n}return t},_canBeAttached:function(t){return t=this.getModule(t),t&&t.test?(t.hasOwnProperty("_testResult")||(t._testResult=t.test(e)),t._testResult):!0},getRequires:function(t){if(!t)return r;if(t._parsed)return t.expanded||r;var n,i,s,o,u,a,l,c=this.testresults,m=t.name,g,y=w[m]&&w[m].details,b=t.optionalRequires,E,S,x,T,N,C,k,L,A,O,M=t.lang||t.intl,_=e.Features&&e.Features.tests.load,D,P;t.temp&&y&&(N=t,t=this.addModule(y,m),t.group=N.group,t.pkg=N.pkg,delete t.expanded),P=!!this.lang&&t.langCache!==this.lang||t.skinCache!==this.skin.defaultSkin;if(t.expanded&&!P)return t.expanded;if(b)for(n=0,o=b.length;n<o;n++)this._canBeAttached(b[n])&&t.requires.push(b[n]);E=[],D={},T=this.filterRequires(t.requires),t.lang&&(E.unshift("intl"),T.unshift("intl"),M=!0),C=this.filterRequires(t.optional),t._parsed=!0,t.langCache=this.lang,t.skinCache=this.skin.defaultSkin;for(n=0;n<T.length;n++)if(!D[T[n]]){E.push(T[n]),D[T[n]]=!0,i=this.getModule(T[n]);if(i){u=this.getRequires(i),M=M||i.expanded_map&&f in i.expanded_map;for(s=0;s<u.length;s++)E.push(u[s])}}T=this.filterRequires(t.supersedes);if(T)for(n=0;n<T.length;n++)if(!D[T[n]]){t.submodules&&E.push(T[n]),D[T[n]]=!0,i=this.getModule(T[n]);if(i){u=this.getRequires(i),M=M||i.expanded_map&&f in i.expanded_map;for(s=0;s<u.length;s++)E.push(u[s])}}if(C&&this.loadOptional)for(n=0;n<C.length;n++)if(!D[C[n]]){E.push(C[n]),D[C[n]]=!0,i=this.getModuleInfo(C[n]);if(i){u=this.getRequires(i),M=M||i.expanded_map&&f in i.expanded_map;for(s=0;s<u.length;s++)E.push(u[s])}}g=this.conditions[m];if(g){t._parsed=!1;if(c&&_)d(c,function(e,t){var n=_[t].name;!D[n]&&_[t].trigger===m&&e&&_[t]&&(D[n]=!0,E.push(n))});else for(n in g)if(g.hasOwnProperty(n)&&!D[n]){x=g[n],S=x&&(!x.ua&&!x.test||x.ua&&e.UA[x.ua]||x.test&&x.test(e,T));if(S){D[n]=!0,E.push(n),i=this.getModule(n);if(i){u=this.getRequires(i);for(s=0;s<u.length;s++)E.push(u[s])}}}}if(t.skinnable){L=this.skin.overrides;for(n in YUI.Env.aliases)YUI.Env.aliases.hasOwnProperty(n)&&e.Array.indexOf(YUI.Env.aliases[n],m)>-1&&(A=n);if(L&&(L[m]||A&&L[A])){O=m,L[A]&&(O=A);for(n=0;n<L[O].length;n++)k=this._addSkin(L[O][n],m),this.isCSSLoaded(k,this._boot)||E.push(k)}else k=this._addSkin(this.skin.defaultSkin,m),this.isCSSLoaded(k,this._boot)||E.push(k)}return t._parsed=!1,M&&(t.lang&&!t.langPack&&e.Intl&&(l=e.Intl.lookupBestLang(this.lang||h,t.lang),a=this.getLangPackName(l,m),a&&E.unshift(a)),E.unshift(f)),t.expanded_map=v.hash(E),t.expanded=p.keys(t.expanded_map),t.expanded},isCSSLoaded:function(t,n){if(!t||!YUI.Env.cssStampEl||!n&&this.ignoreRegistered)return!1;var r=YUI.Env.cssStampEl,i=!1,s=YUI.Env._cssLoaded[t],o=r.currentStyle;return s!==undefined?s:(r.className=t,o||(o=e.config.doc.defaultView.getComputedStyle(r,null)),o&&o.display==="none"&&(i=!0),r.className="",YUI.Env._cssLoaded[t]=i,i)},getProvides:function(t){var r=this.getModule(t),i,s;return r?(r&&!r.provides&&(i={},s=r.supersedes,s&&v.each(s,function(t){e.mix(i,this.getProvides(t))},this),i[t]=!0,r.provides=i),r.provides):n},calculate:function(e,t){if(e||t||this.dirty)e&&this._config(e),this._init||this._setup(),this._explode(),this.allowRollup?this._rollup():this._explodeRollups(),this._reduce(),this._sort()},_addLangPack:function(t,n,r){var i=n.name,s,o,u=this.getModuleInfo(r);return u||(s=S(n.pkg||i,r,a,!0),o={path:s,intl:!0,langPack:!0,ext:n.ext,group:n.group,supersedes:[]},n.root&&(o.root=n.root),n.base&&(o.base=n.base),n.configFn&&(o.configFn=n.configFn),this.addModule(o,r),t&&(e.Env.lang=e.Env.lang||{},e.Env.lang[t]=e.Env.lang[t]||{},e.Env.lang[t][i]=!0)),this.getModuleInfo(r)},_setup:function(){var t=this.moduleInfo,n,r,i,o,u,a;for(n in t)t.hasOwnProperty(n)&&(o=t[n],o&&(o.requires=v.dedupe(o.requires),o.lang&&(a=this.getLangPackName(h,n),this._addLangPack(null,o,a))));u={},this.ignoreRegistered||e.mix(u,s.mods),this.ignore&&e.mix(u,v.hash(this.ignore));for(i in u)u.hasOwnProperty(i)&&e.mix(u,this.getProvides(i));if(this.force)for(r=0;r<this.force.length;r++)this.force[r]in u&&delete u[this.force[r]];e.mix(this.loaded,u),this._init=!0},getLangPackName:function(e,t){return"lang/"+t+(e?"_"+e:"")},_explode:function(){var t=this.required,n,r,i={},s=this,o,u;s.dirty=!1,s._explodeRollups(),t=s.required;for(o in t)t.hasOwnProperty(o)&&(i[o]||(i[o]=!0,n=s.getModule(o),n&&(u=n.expound,u&&(t[u]=s.getModule(u),r=s.getRequires(t[u]),e.mix(t,v.hash(r))),r
9=s.getRequires(n),e.mix(t,v.hash(r)))))},_patternTest:function(e,t){return e.indexOf(t)>-1},getModule:function(t){if(!t)return null;var n,r,i,s=this.getModuleInfo(t),o=this.patterns;if(!s||s&&s.ext)for(i in o)if(o.hasOwnProperty(i)){n=o[i],n.test||(n.test=this._patternTest);if(n.test(t,i)){r=n;break}}return s?r&&s&&r.configFn&&!s.configFn&&(s.configFn=r.configFn,s.configFn(s)):r&&(n.action?n.action.call(this,t,i):(s=this.addModule(e.merge(r,{test:void 0,temp:!0}),t),s&&r.configFn&&(s.configFn=r.configFn))),s},_rollup:function(){},_reduce:function(e){e=e||this.required;var t,n,r,i,s=this.loadType,o=this.ignore?v.hash(this.ignore):!1;for(t in e)if(e.hasOwnProperty(t)){i=this.getModule(t),((this.loaded[t]||w[t])&&!this.forceMap[t]&&!this.ignoreRegistered||s&&i&&i.type!==s)&&delete e[t],o&&o[t]&&delete e[t],r=i&&i.supersedes;if(r)for(n=0;n<r.length;n++)r[n]in e&&delete e[r[n]]}return e},_finish:function(e,t){m.running=!1;var n=this.onEnd;n&&n.call(this.context,{msg:e,data:this.data,success:t}),this._continue()},_onSuccess:function(){var t=this,n=e.merge(t.skipped),r,i=[],s=t.requireRegistration,o,u,f,l;for(f in n)n.hasOwnProperty 10(f)&&delete t.inserted[f];t.skipped={};for(f in t.inserted)t.inserted.hasOwnProperty(f)&&(l=t.getModule(f),!l||!s||l.type!==a||f in YUI.Env.mods?e.mix(t.loaded,t.getProvides(f)):i.push(f));r=t.onSuccess,u=i.length?"notregistered":"success",o=!i.length,r&&r.call(t.context,{msg:u,data:t.data,success:o,failed:i,skipped:n}),t._finish(u,o)},_onProgress:function(e){var t=this,n;if(e.data&&e.data.length)for(n=0;n<e.data.length;n++)e.data[n]=t.getModule(e.data[n].name);t.onProgress&&t.onProgress.call(t.context,{name:e.url,data:e.data})},_onFailure:function(e){var t=this.onFailure,n=[],r=0,i=e.errors.length;for(r;r<i;r++)n.push(e.errors[r].error);n=n.join(","),t&&t.call(this.context,{msg:n,data:this.data,success:!1}),this._finish(n,!1)},_onTimeout:function(e){var t=this.onTimeout;t&&t.call(this.context,{msg:"timeout",data:this.data,success:!1,transaction:e})},_sort:function(){var e,t=this.required,n={};this.sorted=[];for(e in t)!n[e]&&t.hasOwnProperty(e)&&this._visit(e,n)},_visit:function(e,t){var n,r,i,s,o,u,a,f,l;t[e]=!0,n=this.required,i=this.moduleInfo[e],r=this.conditions[e]||{};if(i){o=i.expanded||i.requires;for(f=0,l=o.length;f<l;++f)s=o[f],u=r[s],a=u&&(!u.when||u.when==="after"),n[s]&&!t[s]&&!a&&this._visit(s,t)}this.sorted.push(e)},_insert:function(t,n,r,i){t&&this._config(t);var s=this.resolve(!i),o=this,f=0,l=0,c={},h,p;o._refetch=[],r&&(s[r===a?u:a]=[]),o.fetchCSS||(s.css=[]),s.js.length&&f++,s.css.length&&f++,p=function(t){l++;var n={},r=0,i=0,s="",u,a,p;if(t&&t.errors)for(r=0;r<t.errors.length;r++)t.errors[r].request?s=t.errors[r].request.url:s=t.errors[r],n[s]=s;if(t&&t.data&&t.data.length&&t.type==="success")for(r=0;r<t.data.length;r++){o.inserted[t.data[r].name]=!0;if(t.data[r].lang||t.data[r].skinnable)delete o.inserted[t.data[r].name],o._refetch.push(t.data[r].name)}if(l===f){o._loading=null;if(o._refetch.length){for(r=0;r<o._refetch.length;r++){h=o.getRequires(o.getModule(o._refetch[r]));for(i=0;i<h.length;i++)o.inserted[h[i]]||(c[h[i]]=h[i])}c=e.Object.keys(c);if(c.length){o.require(c),p=o.resolve(!0);if(p.cssMods.length){for(r=0;r<p.cssMods.length;r++)a=p.cssMods[r].name,delete YUI.Env._cssLoaded[a],o.isCSSLoaded(a)&&(o.inserted[a]=!0,delete o.required[a]);o.sorted=[],o._sort()}t=null,o._insert()}}t&&t.fn&&(u=t.fn,delete t.fn,u.call(o,t))}},this._loading=!0;if(!s.js.length&&!s.css.length){l=-1,p({fn:o._onSuccess});return}s.css.length&&e.Get.css(s.css,{data:s.cssMods,attributes:o.cssAttributes,insertBefore:o.insertBefore,charset:o.charset,timeout:o.timeout,context:o,onProgress:function(e){o._onProgress.call(o,e)},onTimeout:function(e){o._onTimeout.call(o,e)},onSuccess:function(e){e.type="success",e.fn=o._onSuccess,p.call(o,e)},onFailure:function(e){e.type="failure",e.fn=o._onFailure,p.call(o,e)}}),s.js.length&&e.Get.js(s.js,{data:s.jsMods,insertBefore:o.insertBefore,attributes:o.jsAttributes,charset:o.charset,timeout:o.timeout,autopurge:!1,context:o,async:o.async,onProgress:function(e){o._onProgress.call(o,e)},onTimeout:function(e){o._onTimeout.call(o,e)},onSuccess:function(e){e.type="success",e.fn=o._onSuccess,p.call(o,e)}
10,onFailure:function(e){e.type="failure",e.fn=o._onFailure,p.call(o,e)}})},_continue:function(){!m.running&&m.size()>0&&(m.running=!0,m.next()())},insert:function(t,n,r){var i=this,s=e.merge(this);delete s.require,delete s.dirty,m.add(function(){i._insert(s,t,n,r)}),this._continue()},loadNext:function(){return},_filter:function(e,t,n){var r=this.filter,i=t&&t in this.filters,s=i&&this.filters[t],o=n||(this.getModuleInfo(t)||{}).group||null;return o&&this.groups[o]&&this.groups[o].filter&&(s=this.groups[o].filter,i=!0),e&&(i&&(r=b.isString(s)?this.FILTER_DEFS[s.toUpperCase()]||null:s),r&&(e=e.replace(new RegExp(r.searchExp,"g"),r.replaceStr))),e},_url:function(e,t,n){return this._filter((n||this.base||"")+e,t)},resolve:function(t,r){var i=this,s={js:[],jsMods:[],css:[],cssMods:[]},o,f=e.config.comboLoader&&e.config.customComboBase;(i.skin.overrides||i.skin.defaultSkin!==l||i.ignoreRegistered)&&i._resetModules(),t&&i.calculate(),r=r||i.sorted,o=function(e){if(e){var t=e.group&&i.groups[e.group]||n,r;t.async===!1&&(e.async=t.async),r=e.fullpath?i._filter(e.fullpath,e.name):i._url(e.path,e.name,t.base||e.base);if(e.attributes||e.async===!1)r={url:r,async:e.async},e.attributes&&(r.attributes=e.attributes);s[e.type].push(r),s[e.type+"Mods"].push(e)}};var c=i.ignoreRegistered?{}:i.inserted,h,p,d,v,m,g,y,b,w,E=!1;for(w=0,b=r.length;w<b;w++){y=i.getModule(r[w]);if(!y||c[y.name])continue;g=i.groups[y.group],v=i.comboBase;if(g){if(!g.combine||y.fullpath){o(y);continue}y.combine=!0,typeof g.root=="string"&&(y.root=g.root),v=g.comboBase||v,m=g.comboSep,p=g.maxURLLength}else if(!i.combine){o(y);continue}if(!y.combine&&y.ext){o(y);continue}E=!0,h=h||{},h[v]=h[v]||{js:[],jsMods:[],css:[],cssMods:[]},d=h[v],d.group=y.group,d.comboSep=m||i.comboSep,d.maxURLLength=p||i.maxURLLength,d[y.type+"Mods"].push(y),(y.type===a||y.type===u)&&s[y.type+"Mods"].push(y)}return E&&(f?s=this._pathogenEncodeComboSources(s):s=this._encodeComboSources(s,h)),s},_encodeComboSources:function(e,t){var n,r,s,o,f,l,c,h,p,d,v,m,g,y,b=this;for(d in t)if(t.hasOwnProperty(d)){v=t[d],m=v.comboSep,p=v.maxURLLength;for(c in v)if(c===a||c===u){r=v[c+"Mods"],f=[];for(g=0,y=r.length;g<y;g+=1)h=r[g],l=(typeof h.root=="string"?h.root:b.root)+(h.path||h.fullpath),f.push(b._filter(l,h.name));s=d+f.join(m),o=s.length,p<=d.length&&(p=i);if(f.length)if(o>p){n=[];for(g=0,y=f.length;g<y;g++)n.push(f[g]),s=d+n.join(m),s.length>p&&(l=n.pop(),s=d+n.join(m),e[c].push(b._filter(s,null,v.group)),n=[],l&&n.push(l));n.length&&(s=d+n.join(m),e[c].push(b._filter(s,null,v.group)))}else e[c].push(b._filter(s,null,v.group))}}return e},load:function(e){if(!e)return;var t=this,n=t.resolve(!0);t.data=n,t.onEnd=function(){e.apply(t.context||t,arguments)},t.insert()}}},"patched-v3.20.5",{requires:["get","features"]}),YUI.add("loader-rollup",function(e,t){e.Loader.prototype._rollup=function(){var e,t,n,r,i=this.required,s,o=this.moduleInfo 11,u,a,f;if(this.dirty||!this.rollups){this.rollups={};for(e in o)o.hasOwnProperty(e)&&(n=this.getModule(e),n&&n.rollup&&(this.rollups[e]=n))}for(;;){u=!1;for(e in this.rollups)if(this.rollups.hasOwnProperty(e)&&!i[e]&&(!this.loaded[e]||this.forceMap[e])){n=this.getModule(e),r=n.supersedes||[],s=!1;if(!n.rollup)continue;a=0;for(t=0;t<r.length;t++){f=o[r[t]];if(this.loaded[r[t]]&&!this.forceMap[r[t]]){s=!1;break}if(i[r[t]]&&n.type===f.type){a++,s=a>=n.rollup;if(s)break}}s&&(i[e]=!0,u=!0,this.getRequires(n))}if(!u)break}}},"patched-v3.20.5",{requires:["loader-base"]}),YUI.add("loader-yui3",function(e,t){YUI.Env[e.version].modules=YUI.Env[e.version].modules||{},e.mix(YUI.Env[e.version].modules,{"align-plugin":{requires:["node-screen","node-pluginhost"]},anim:{use:["anim-base","anim-color","anim-curve","anim-easing","anim-node-plugin","anim-scroll","anim-xy"]},"anim-base":{requires:["base-base","node-style","color-base"]},"anim-color":{requires:["anim-base"]},"anim-curve":{requires:["anim-xy"]},"anim-easing":{requires:["anim-base"]},"anim-node-plugin":{requires:["node-pluginhost","anim-base"]},"anim-scroll":{requires:["anim-base"]},"anim-shape":{requires:["anim-base","anim-easing","anim-color","matrix"]},"anim-shape-transform":{use:["anim-shape"]},"anim-xy":{requires:["anim-base","node-screen"]},app:{use:["app-base","app-content","app-transitions","lazy-model-list","model","model-list","model-sync-rest","model-sync-local","router","view","view-node-map"]},"app-base":{requires:["classnamemanager","pjax-base","router","view"]},"app-content":{requires:["app-base","pjax-content"]},"app-transitions":{requires:["app-base"]},"app-transitions-css":{type:"css"},"app-transitions-native":{condition:{name:"app-transitions-native",test:function(e){var t=e.config.doc,n=t?t.documentElement:null;return n&&n.style?"MozTransition"in n.style||"WebkitTransition"in n.style||"transition"in n.style:!1},trigger:"app-transitions"},requires:["app-transitions","app-transitions-css","parallel","transition"]},"array-extras":{requires:["yui-base"]},"array-invoke":{requires:["yui-base"]},arraylist:{requires:["yui-base"]},"arraylist-add":{requires:["arraylist"]},"arraylist-filter":{requires:["arraylist"]},arraysort:{requires:["yui-base"]},"async-queue":{requires:["event-custom"]},attribute:{use:["attribute-base","attribute-complex"]},"attribute-base":{requires:["attribute-core","attribute-observable","attribute-extras"]},"attribute-complex":{requires:["attribute-base"]},"attribute-core":{requires:["oop"]},"attribute-events":{use:["attribute-observable"]},"attribute-extras":{requires:["oop"]},"attribute-observable":{requires:["event-custom"]},autocomplete:{use:["autocomplete-base","autocomplete-sources","autocomplete-list","autocomplete-plugin"]},"autocomplete-base":{optional:["autocomplete-sources"],requires:["array-extras","base-build","escape","event-valuechange","node-base"]},"autocomplete-filters":{requires:["array-extras","text-wordbreak"]},"autocomplete-filters-accentfold":{requires:["array-extras","text-accentfold","text-wordbreak"]},"autocomplete-highlighters":{requires:["array-extras","highlight-base"]},"autocomplete-highlighters-accentfold":{requires:["array-extras","highlight-accentfold"]},"autocomplete-list":{after:["autocomplete-sources"],lang:["en","es","hu","it"],requires:["autocomplete-base","event-resize","node-screen","selector-css3","shim-plugin","widget","widget-position","widget-position-align"],skinnable:!0},"autocomplete-list-keys":{condition:{name:"autocomplete-list-keys",test:function(e){return!e.UA.ios&&!e.
11UA.android},trigger:"autocomplete-list"},requires:["autocomplete-list","base-build"]},"autocomplete-plugin":{requires:["autocomplete-list","node-pluginhost"]},"autocomplete-sources":{optional:["io-base","json-parse","jsonp","yql"],requires:["autocomplete-base"]},axes:{use:["axis-numeric","axis-category","axis-time","axis-stacked"]},"axes-base":{use:["axis-numeric-base","axis-category-base","axis-time-base","axis-stacked-base"]},axis:{requires:["dom","widget","widget-position","widget-stack","graphics","axis-base"]},"axis-base":{requires:["classnamemanager","datatype-number","datatype-date","base","event-custom"]},"axis-category":{requires:["axis","axis-category-base"]},"axis-category-base":{requires:["axis-base"]},"axis-numeric":{requires:["axis","axis-numeric-base"]},"axis-numeric-base":{requires:["axis-base"]},"axis-stacked":{requires:["axis-numeric","axis-stacked-base"]},"axis-stacked-base":{requires:["axis-numeric-base"]},"axis-time":{requires:["axis","axis-time-base"]},"axis-time-base":{requires:["axis-base"]},base:{use:["base-base","base-pluginhost","base-build"]},"base-base":{requires:["attribute-base","base-core","base-observable"]},"base-build":{requires:["base-base"]},"base-core":{requires:["attribute-core"]},"base-observable":{requires:["attribute-observable","base-core"]},"base-pluginhost":{requires:["base-base","pluginhost"]},button:{requires:["button-core","cssbutton","widget"]},"button-core":{requires:["attribute-core","classnamemanager","node-base","escape"]},"button-group":{requires:["button-plugin","cssbutton","widget"]},"button-plugin":{requires:["button-core","cssbutton","node-pluginhost"]},cache:{use:["cache-base","cache-offline","cache-plugin"]},"cache-base":{requires:["base"]},"cache-offline":{requires:["cache-base","json"]},"cache-plugin":{requires:["plugin","cache-base"]},calendar:{requires:["calendar-base","calendarnavigator"],skinnable:!0},"calendar-base":{lang:["ar-SA","bg-BG","ca-AD","ca-ES","cs-CZ","da-DK","de","el-GR","en-AU","en-GB","en","es-AR","es","et-EE","eu-ES","fa-IR","fr-CA","fr","gl-ES","hi-IN","hr-HR","hu","in-ID","it-IT","it","iw-IL","ja","ko-KR","lo-LA","lt-LT","nb-NO","nl-BE","nl-NL","nl","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","ru","sk-SK","sl-SL","sr-RS-latin","sr-RS","sv-SE","th-TH","tr-TR","uk-UA","vi-VN","zh-Hans-CN","zh-Hans","zh-Hant-HK","zh-HANT-TW","zh-Hant","zh-TW"],requires:["widget","datatype-date","datatype-date-math","cssgrids"],skinnable:!0 12},calendarnavigator:{lang:["en","es","es-AR","eu-ES"],requires:["plugin","classnamemanager","datatype-date","node"],skinnable:!0},charts:{use:["charts-base"]},"charts-base":{requires:["dom","event-mouseenter","event-touch","graphics-group","axes","series-pie","series-line","series-marker","series-area","series-spline","series-column","series-bar","series-areaspline","series-combo","series-combospline","series-line-stacked","series-marker-stacked","series-area-stacked","series-spline-stacked","series-column-stacked","series-bar-stacked","series-areaspline-stacked","series-combo-stacked","series-combospline-stacked"]},"charts-legend":{requires:["charts-base"]},classnamemanager:{requires:["yui-base"]},"clickable-rail":{requires:["slider-base"]},collection:{use:["array-extras","arraylist","arraylist-add","arraylist-filter","array-invoke"]},color:{use:["color-base","color-hsl","color-harmony"]},"color-base":{requires:["yui-base"]},"color-harmony":{requires:["color-hsl"]},"color-hsl":{requires:["color-base"]},"color-hsv":{requires:["color-base"]},console:{lang:["en","es","hu","it","ja"],requires:["yui-log","widget"],skinnable:!0},"console-filters":{requires:["plugin","console"],skinnable:!0},"content-editable":{requires:["node-base","editor-selection","stylesheet","plugin"]},controller:{use:["router"]},cookie:{requires:["yui-base"]},"createlink-base":{requires:["editor-base"]},cssbase:{after:["cssreset","cssfonts","cssgrids","cssreset-context","cssfonts-context","cssgrids-context"],type:"css"},"cssbase-context":{after:["cssreset","cssfonts","cssgrids","cssreset-context","cssfonts-context","cssgrids-context"],type:"css"},cssbutton:{type:"css"},cssfonts:{type:"css"},"cssfonts-context":{type:"css"},cssgrids:{optional:["cssnormalize"],type:"css"},"cssgrids-base":{optional:["cssnormalize"],type:"css"},"cssgrids-responsive":{optional:["cssnormalize"],requires:["cssgrids","cssgrids-responsive-base"],type:"css"},"cssgrids-units":{optional:["cssnormalize"],requires:["cssgrids-base"],type:"css"},cssnormalize:{type:"css"},"cssnormalize-context":{type:"css"}
12,cssreset:{type:"css"},"cssreset-context":{type:"css"},dataschema:{use:["dataschema-base","dataschema-json","dataschema-xml","dataschema-array","dataschema-text"]},"dataschema-array":{requires:["dataschema-base"]},"dataschema-base":{requires:["base"]},"dataschema-json":{requires:["dataschema-base","json"]},"dataschema-text":{requires:["dataschema-base"]},"dataschema-xml":{requires:["dataschema-base"]},datasource:{use:["datasource-local","datasource-io","datasource-get","datasource-function","datasource-cache","datasource-jsonschema","datasource-xmlschema","datasource-arrayschema","datasource-textschema","datasource-polling"]},"datasource-arrayschema":{requires:["datasource-local","plugin","dataschema-array"]},"datasource-cache":{requires:["datasource-local","plugin","cache-base"]},"datasource-function":{requires:["datasource-local"]},"datasource-get":{requires:["datasource-local","get"]},"datasource-io":{requires:["datasource-local","io-base"]},"datasource-jsonschema":{requires:["datasource-local","plugin","dataschema-json"]},"datasource-local":{requires:["base"]},"datasource-polling":{requires:["datasource-local"]},"datasource-textschema":{requires:["datasource-local","plugin","dataschema-text"]},"datasource-xmlschema":{requires:["datasource-local","plugin","datatype-xml","dataschema-xml"]},datatable:{use:["datatable-core","datatable-table","datatable-head","datatable-body","datatable-base","datatable-column-widths","datatable-message","datatable-mutable","datatable-sort","datatable-datasource"]},"datatable-base":{requires:["datatable-core","datatable-table","datatable-head","datatable-body","base-build","widget"],skinnable:!0},"datatable-body":{requires:["datatable-core","view","classnamemanager"]},"datatable-column-widths":{requires:["datatable-base"]},"datatable-core":{requires:["escape","model-list","node-event-delegate"]},"datatable-datasource":{requires:["datatable-base","plugin","datasource-local"]},"datatable-foot":{requires:["datatable-core","view"]},"datatable-formatters":{requires:["datatable-body","datatype-number-format","datatype-date-format","escape"]},"datatable-head":{requires:["datatable-core","view","classnamemanager"]},"datatable-highlight":{requires:["datatable-base","event-hover"],skinnable:!0},"datatable-keynav":{requires:["datatable-base"]},"datatable-message":{lang:["en","fr","es","hu","it"],requires:["datatable-base"],skinnable:!0},"datatable-mutable":{requires:["datatable-base"]},"datatable-paginator":{lang:["en","fr"],requires:["model","view","paginator-core","datatable-foot","datatable-paginator-templates"],skinnable:!0},"datatable-paginator-templates":{requires:["template"]},"datatable-scroll":{requires:["datatable-base","datatable-column-widths","dom-screen"],skinnable:!0},"datatable-sort":{lang:["en","fr","es","hu"],requires:["datatable-base"],skinnable:!0},"datatable-table":{requires:["datatable-core","datatable-head","datatable-body","view","classnamemanager"]},datatype:{use:["datatype-date","datatype-number","datatype-xml"]},"datatype-date":{use:["datatype-date-parse","datatype-date-format","datatype-date-math"]},"datatype-date-format":{lang:["ar","ar-JO","ca","ca-ES","da","da-DK","de","de-AT","de-DE","el","el-GR","en","en-AU","en-CA","en-GB","en-IE","en-IN","en-JO","en-MY","en-NZ","en-PH","en-SG","en-US","es","es-AR","es-BO","es-CL","es-CO","es-EC","es-ES","es-MX","es-PE","es-PY","es-US","es-UY","es-VE","fi","fi-FI","fr","fr-BE","fr-CA","fr-FR","hi","hi-IN","hu","id","id-ID","it","it-IT","ja","ja-JP","ko","ko-KR","ms","ms-MY","nb","nb-NO","nl","nl-BE","nl-NL","pl","pl-PL","pt","pt-BR","ro","ro-RO","ru","ru-RU","sv","sv-SE","th","th-TH","tr","tr-TR","vi","vi-VN","zh-Hans","zh-Hans-CN","zh-Hant","zh-Hant-HK","zh-Hant-TW"]},"datatype-date-math":{requires:["yui-base"]},"datatype-date-parse":{},"datatype-number":{use:["datatype-number-parse","datatype-number-format"]},"datatype-number-format":{},"datatype-number-parse":{requires 13:["escape"]},"datatype-xml":{use:["datatype-xml-parse","datatype-xml-format"]},"datatype-xml-format":{},"datatype-xml-parse":{},dd:{use:["dd-ddm-base","dd-ddm","dd-ddm-drop","dd-drag","dd-proxy","dd-constrain","dd-drop","dd-scroll","dd-delegate"]},"dd-constrain":{requires:["dd-drag"]},"dd-ddm":{requires:["dd-ddm-base","event-resize"]},"dd-ddm-base":{requires:["node","base","yui-throttle","classnamemanager"]},"dd-ddm-drop":{requires:["dd-ddm"]},"dd-delegate":{requires:["dd-drag","dd-drop-plugin","event-mouseenter"]},"dd-drag":{requires:["dd-ddm-base","selector-css2"]},"dd-drop":{requires:["dd-drag","dd-ddm-drop"]},"dd-drop-plugin":{requires:["dd-drop"]},"dd-gestures":{condition:{name:"dd-gestures",trigger:"dd-drag",ua:"touchEnabled"},requires:["dd-drag","event-synthetic","event-gestures"]},"dd-plugin":{optional:["dd-constrain","dd-proxy"],requires:["dd-drag"]},"dd-proxy":{requires:["dd-drag"]},"dd-scroll":{requires:["dd-drag"]},dial:{lang:["en","es","hu"],requires:["widget","dd-drag","event-mouseenter","event-move","event-key","transition","intl"],skinnable:!0},dom:{use:["dom-base","dom-screen","dom-style","selector-native","selector"]}
13,"dom-base":{requires:["dom-core"]},"dom-core":{requires:["oop","features"]},"dom-screen":{requires:["dom-base","dom-style"]},"dom-style":{requires:["dom-base"]},"dom-style-ie":{condition:{name:"dom-style-ie",test:function(e){var t=e.Features.test,n=e.Features.add,r=e.config.win,i=e.config.doc,s="documentElement",o=!1;return n("style","computedStyle",{test:function(){return r&&"getComputedStyle"in r}}),n("style","opacity",{test:function(){return i&&"opacity"in i[s].style}}),o=!t("style","opacity")&&!t("style","computedStyle"),o},trigger:"dom-style"},requires:["dom-style","color-base"]},dump:{requires:["yui-base"]},editor:{use:["frame","editor-selection","exec-command","editor-base","editor-para","editor-br","editor-bidi","editor-tab","createlink-base"]},"editor-base":{requires:["base","frame","node","exec-command","editor-selection"]},"editor-bidi":{requires:["editor-base"]},"editor-br":{requires:["editor-base"]},"editor-inline":{requires:["editor-base","content-editable"]},"editor-lists":{requires:["editor-base"]},"editor-para":{requires:["editor-para-base"]},"editor-para-base":{requires:["editor-base"]},"editor-para-ie":{condition:{name:"editor-para-ie",trigger:"editor-para",ua:"ie",when:"instead"},requires:["editor-para-base"]},"editor-selection":{requires:["node"]},"editor-tab":{requires:["editor-base"]},escape:{requires:["yui-base"]},event:{after:["node-base"],use:["event-base","event-delegate","event-synthetic","event-mousewheel","event-mouseenter","event-key","event-focus","event-resize","event-hover","event-outside","event-touch","event-move","event-flick","event-valuechange","event-tap"]},"event-base":{after:["node-base"],requires:["event-custom-base"]},"event-base-ie":{after:["event-base"],condition:{name:"event-base-ie",test:function(e){var t=e.config.doc&&e.config.doc.implementation;return t&&!t.hasFeature("Events","2.0")},trigger:"node-base"},requires:["node-base"]},"event-contextmenu":{requires:["event-synthetic","dom-screen"]},"event-custom":{use:["event-custom-base","event-custom-complex"]},"event-custom-base":{requires:["oop"]},"event-custom-complex":{requires:["event-custom-base"]},"event-delegate":{requires:["node-base"]},"event-flick":{requires:["node-base","event-touch","event-synthetic"]},"event-focus":{requires:["event-synthetic"]},"event-gestures":{use:["event-flick","event-move"]},"event-hover":{requires:["event-mouseenter"]},"event-key":{requires:["event-synthetic"]},"event-mouseenter":{requires:["event-synthetic"]},"event-mousewheel":{requires:["node-base"]},"event-move":{requires:["node-base","event-touch","event-synthetic"]},"event-outside":{requires:["event-synthetic"]},"event-resize":{requires:["node-base","event-synthetic"]},"event-simulate":{requires:["event-base"]},"event-synthetic":{requires:["node-base","event-custom-complex"]},"event-tap":{requires:["node-base","event-base","event-touch","event-synthetic"]},"event-touch":{requires:["node-base"]},"event-valuechange":{requires:["event-focus","event-synthetic"]},"exec-command":{requires:["frame"]},features:{requires:["yui-base"]},file:{requires:["file-flash","file-html5"]},"file-flash":{requires:["base"]},"file-html5":{requires:["base"]},frame:{requires:["base","node","plugin","selector-css3","yui-throttle"]},"gesture-simulate":{requires:["async-queue","event-simulate","node-screen"]},get:{requires:["yui-base"]},graphics:{requires:["node","event-custom","pluginhost","matrix","classnamemanager"]},"graphics-canvas":{condition:{name:"graphics-canvas",test:function(e){var t=e.config.doc,n=e.config.defaultGraphicEngine&&e.config.defaultGraphicEngine=="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return(!i||n)&&r&&r.getContext&&r.getContext("2d")},trigger:"graphics"},requires:["graphics","color-base"]},"graphics-canvas-default":{condition:{name:"graphics-canvas-default",test:function(e){var t=e.config.doc,n=e.config.defaultGraphicEngine&&e.config.defaultGraphicEngine=="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return(!i||n)&&r&&r.getContext&&r.getContext("2d")},trigger:"graphics"}},"graphics-group":{requires:["graphics"]},"graphics-svg":{condition:{name:"graphics-svg",test:function(e){var t=e.config.doc,n=!e.config.defaultGraphicEngine||e.config.defaultGraphicEngine!="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return i&&(n||!r)},trigger:"graphics"},requires:["graphics"]},"graphics-svg-default":{condition:{name:"graphics-svg-default",test:function(e){var t=e.config.doc,n=!e.config.defaultGraphicEngine||e.config.defaultGraphicEngine!="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure" 14,"1.1");return i&&(n||!r)},trigger:"graphics"}},"graphics-vml":{condition:{name:"graphics-vml",test:function(e){var t=e.config.doc,n=t&&t.createElement("canvas");return t&&!t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!n||!n.getContext||!n.getContext("2d"))},trigger:"graphics"},requires:["graphics","color-base"]},"graphics-vml-default":{condition:{name:"graphics-vml-default",test:function(e){var t=e.config.doc,n=t&&t.createElement("canvas");return t&&!t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!n||!n.getContext||!n.getContext("2d"))},trigger:"graphics"}},handlebars:{use:["handlebars-compiler"]},"handlebars-base":{requires:[]},"handlebars-compiler":{requires:["handlebars-base"]},highlight:{use:["highlight-base","highlight-accentfold"]},"highlight-accentfold":{requires:["highlight-base","text-accentfold"]},"highlight-base":{requires:["array-extras","classnamemanager","escape","text-wordbreak"]},history:{use:["history-base","history-hash","history-html5"]},"history-base":{requires:["event-custom-complex"]},"history-hash":{after:["history-html5"],requires:["event-synthetic","history-base","yui-later"]},"history-hash-ie":{condition:{name:"history-hash-ie",test:function(e){var t=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange"in e.config.win)||!t||t<8)},trigger:"history-hash"}
14,requires:["history-hash","node-base"]},"history-html5":{optional:["json"],requires:["event-base","history-base","node-base"]},imageloader:{requires:["base-base","node-style","node-screen"]},intl:{requires:["intl-base","event-custom"]},"intl-base":{requires:["yui-base"]},io:{use:["io-base","io-xdr","io-form","io-upload-iframe","io-queue"]},"io-base":{requires:["event-custom-base","querystring-stringify-simple"]},"io-form":{requires:["io-base","node-base"]},"io-nodejs":{condition:{name:"io-nodejs",trigger:"io-base",ua:"nodejs"},requires:["io-base"]},"io-queue":{requires:["io-base","queue-promote"]},"io-upload-iframe":{requires:["io-base","node-base"]},"io-xdr":{requires:["io-base","datatype-xml-parse"]},json:{use:["json-parse","json-stringify"]},"json-parse":{requires:["yui-base"]},"json-parse-shim":{condition:{name:"json-parse-shim",test:function(e){function i(e,t){return e==="ok"?!0:t}var t=e.config.global.JSON,n=Object.prototype.toString.call(t)==="[object JSON]"&&t,r=e.config.useNativeJSONParse!==!1&&!!n;if(r)try{r=n.parse('{"ok":false}',i).ok}catch(s){r=!1}return!r},trigger:"json-parse"},requires:["json-parse"]},"json-stringify":{requires:["yui-base"]},"json-stringify-shim":{condition:{name:"json-stringify-shim",test:function(e){var t=e.config.global.JSON,n=Object.prototype.toString.call(t)==="[object JSON]"&&t,r=e.config.useNativeJSONStringify!==!1&&!!n;if(r)try{r="0"===n.stringify(0)}catch(i){r=!1}return!r},trigger:"json-stringify"},requires:["json-stringify"]},jsonp:{requires:["get","oop"]},"jsonp-url":{requires:["jsonp"]},"lazy-model-list":{requires:["model-list"]},loader:{use:["loader-base","loader-rollup","loader-yui3"]},"loader-base":{requires:["get","features"]},"loader-pathogen-combohandler":{},"loader-pathogen-encoder":{use:["loader-base","loader-rollup","loader-yui3","loader-pathogen-combohandler"]},"loader-rollup":{requires:["loader-base"]},"loader-yui3":{requires:["loader-base"]},matrix:{requires:["yui-base"]},model:{requires:["base-build","escape","json-parse"]},"model-list":{requires:["array-extras","array-invoke","arraylist","base-build","escape","json-parse","model"]},"model-sync-local":{requires:["model","json-stringify"]},"model-sync-rest":{requires:["model","io-base","json-stringify"]},node:{use:["node-base","node-event-delegate","node-pluginhost","node-screen","node-style"]},"node-base":{requires:["event-base","node-core","dom-base","dom-style"]},"node-core":{requires:["dom-core","selector"]},"node-event-delegate":{requires:["node-base","event-delegate"]},"node-event-html5":{requires:["node-base"]},"node-event-simulate":{requires:["node-base","event-simulate","gesture-simulate"]},"node-flick":{requires:["classnamemanager","transition","event-flick","plugin"],skinnable:!0},"node-focusmanager":{requires:["attribute","node","plugin","node-event-simulate","event-key","event-focus"]},"node-load":{requires:["node-base","io-base"]},"node-menunav":{requires:["node","classnamemanager","plugin","node-focusmanager"],skinnable:!0},"node-pluginhost":{requires:["node-base","pluginhost"]},"node-screen":{requires:["dom-screen","node-base"]},"node-scroll-info":{requires:["array-extras","base-build","event-resize","node-pluginhost","plugin","selector"]},"node-style":{requires:["dom-style","node-base"]},oop:{requires:["yui-base"]},overlay:{requires:["widget","widget-stdmod","widget-position","widget-position-align","widget-stack","widget-position-constrain"],skinnable:!0},paginator:{requires:["paginator-core"]},"paginator-core":{requires:["base"]},"paginator-url":{requires:["paginator"]},panel:{requires:["widget","widget-autohide","widget-buttons","widget-modality","widget-position","widget-position-align","widget-position-constrain","widget-stack","widget-stdmod"],skinnable:!0},parallel:{requires:["yui-base"]},pjax:{requires:["pjax-base","pjax-content"]},"pjax-base":{requires:["classnamemanager","node-event-delegate","router"]},"pjax-content":{requires:["io-base","node-base","router"]},"pjax-plugin":{requires:["node-pluginhost","pjax","plugin"]},plugin:{requires:["base-base"]},pluginhost:{use:["pluginhost-base","pluginhost-config"]},"pluginhost-base":{requires:["yui-base"]},"pluginhost-config":{requires:["pluginhost-base"]},promise:{requires:["timers"]},querystring:{use:["querystring-parse","querystring-stringify"]},"querystring-parse":{requires:["yui-base","array-extras"]},"querystring-parse-simple":{requires:["yui-base"]},"querystring-stringify":{requires:["yui-base"]},"querystring-stringify-simple":{requires:["yui-base"]},"queue-promote":{requires:["yui-base"]},"range-slider":{requires:["slider-base" 15,"slider-value-range","clickable-rail"]},recordset:{use:["recordset-base","recordset-sort","recordset-filter","recordset-indexer"]},"recordset-base":{requires:["base","arraylist"]},"recordset-filter":{requires:["recordset-base","array-extras","plugin"]},"recordset-indexer":{requires:["recordset-base","plugin"]},"recordset-sort":{requires:["arraysort","recordset-base","plugin"]},resize:{use:["resize-base","resize-proxy","resize-constrain"]},"resize-base":{requires:["base","widget","event","oop","dd-drag","dd-delegate","dd-drop"],skinnable:!0},"resize-constrain":{requires:["plugin","resize-base"]},"resize-plugin":{optional:["resize-constrain"],requires:["resize-base","plugin"]},"resize-proxy":{requires:["plugin","resize-base"]},router:{optional:["querystring-parse"],requires:["array-extras","base-build","history"]},scrollview:{requires:["scrollview-base","scrollview-scrollbars"]},"scrollview-base":{requires:["widget","event-gestures","event-mousewheel","transition"],skinnable:!0},"scrollview-base-ie":{condition:{name:"scrollview-base-ie",trigger:"scrollview-base",ua:"ie"},requires:["scrollview-base"]},"scrollview-list":{requires:["plugin","classnamemanager"],skinnable:!0},"scrollview-paginator":{requires:["plugin","classnamemanager"]},"scrollview-scrollbars":{requires:["classnamemanager","transition","plugin"],skinnable:!0},selector:{requires:["selector-native"]},"selector-css2":{condition:{name:"selector-css2",test:function(e){var t=e.config.doc,n=t&&!("querySelectorAll"in t);return n},trigger:"selector"},requires:["selector-native"]},"selector-css3":{requires:["selector-native","selector-css2"]}
15,"selector-native":{requires:["dom-base"]},"series-area":{requires:["series-cartesian","series-fill-util"]},"series-area-stacked":{requires:["series-stacked","series-area"]},"series-areaspline":{requires:["series-area","series-curve-util"]},"series-areaspline-stacked":{requires:["series-stacked","series-areaspline"]},"series-bar":{requires:["series-marker","series-histogram-base"]},"series-bar-stacked":{requires:["series-stacked","series-bar"]},"series-base":{requires:["graphics","axis-base"]},"series-candlestick":{requires:["series-range"]},"series-cartesian":{requires:["series-base"]},"series-column":{requires:["series-marker","series-histogram-base"]},"series-column-stacked":{requires:["series-stacked","series-column"]},"series-combo":{requires:["series-cartesian","series-line-util","series-plot-util","series-fill-util"]},"series-combo-stacked":{requires:["series-stacked","series-combo"]},"series-combospline":{requires:["series-combo","series-curve-util"]},"series-combospline-stacked":{requires:["series-combo-stacked","series-curve-util"]},"series-curve-util":{},"series-fill-util":{},"series-histogram-base":{requires:["series-cartesian","series-plot-util"]},"series-line":{requires:["series-cartesian","series-line-util"]},"series-line-stacked":{requires:["series-stacked","series-line"]},"series-line-util":{},"series-marker":{requires:["series-cartesian","series-plot-util"]},"series-marker-stacked":{requires:["series-stacked","series-marker"]},"series-ohlc":{requires:["series-range"]},"series-pie":{requires:["series-base","series-plot-util"]},"series-plot-util":{},"series-range":{requires:["series-cartesian"]},"series-spline":{requires:["series-line","series-curve-util"]},"series-spline-stacked":{requires:["series-stacked","series-spline"]},"series-stacked":{requires:["axis-stacked"]},"shim-plugin":{requires:["node-style","node-pluginhost"]},slider:{use:["slider-base","slider-value-range","clickable-rail","range-slider"]},"slider-base":{requires:["widget","dd-constrain","event-key"],skinnable:!0},"slider-value-range":{requires:["slider-base"]},sortable:{requires:["dd-delegate","dd-drop-plugin","dd-proxy"]},"sortable-scroll":{requires:["dd-scroll","sortable"]},stylesheet:{requires:["yui-base"]},substitute:{optional:["dump"],requires:["yui-base"]},swf:{requires:["event-custom","node","swfdetect","escape"]},swfdetect:{requires:["yui-base"]},tabview:{requires:["widget","widget-parent","widget-child","tabview-base","node-pluginhost","node-focusmanager"],skinnable:!0},"tabview-base":{requires:["node-event-delegate","classnamemanager"]},"tabview-plugin":{requires:["tabview-base"]},template:{use:["template-base","template-micro"]},"template-base":{requires:["yui-base"]},"template-micro":{requires:["escape"]},test:{requires:["event-simulate","event-custom","json-stringify"]},"test-console":{requires:["console-filters","test","array-extras"],skinnable:!0},text:{use:["text-accentfold","text-wordbreak"]},"text-accentfold":{requires:["array-extras","text-data-accentfold"]},"text-data-accentfold":{requires:["yui-base"]},"text-data-wordbreak":{requires:["yui-base"]},"text-wordbreak":{requires:["array-extras","text-data-wordbreak"]},timers:{requires:["yui-base"]},transition:{requires:["node-style"]},"transition-timer":{condition:{name:"transition-timer",test:function(e){var t=e.config.doc,n=t?t.documentElement:null,r=!0;return n&&n.style&&(r=!("MozTransition"in n.style||"WebkitTransition"in n.style||"transition"in n.style)),r},trigger:"transition"},requires:["transition"]},tree:{requires:["base-build","tree-node"]},"tree-labelable":{requires:["tree"]},"tree-lazy":{requires:["base-pluginhost","plugin","tree"]},"tree-node":{},"tree-openable":{requires:["tree"]},"tree-selectable":{requires:["tree"]},"tree-sortable":{requires:["tree"]},uploader:{requires:["uploader-html5","uploader-flash"]},"uploader-flash":{requires:["swfdetect","escape","widget","base","cssbutton","node","event-custom","uploader-queue"]},"uploader-html5":{requires:["widget","node-event-simulate","file-html5","uploader-queue"]},"uploader-queue":{requires:["base"]},view:{requires:["base-build","node-event-delegate"]},"view-node-map":{requires:["view"]},widget:{use:["widget-base","widget-htmlparser","widget-skin","widget-uievents"]},"widget-anim":{requires:["anim-base","plugin","widget"]},"widget-autohide":{requires:["base-build","event-key","event-outside" 16,"widget"]},"widget-base":{requires:["attribute","base-base","base-pluginhost","classnamemanager","event-focus","node-base","node-style"],skinnable:!0},"widget-base-ie":{condition:{name:"widget-base-ie",trigger:"widget-base",ua:"ie"},requires:["widget-base"]},"widget-buttons":{requires:["button-plugin","cssbutton","widget-stdmod"]},"widget-child":{requires:["base-build","widget"]},"widget-htmlparser":{requires:["widget-base"]},"widget-modality":{requires:["base-build","event-outside","widget"],skinnable:!0},"widget-parent":{requires:["arraylist","base-build","widget"]},"widget-position":{requires:["base-build","node-screen","widget"]},"widget-position-align":{requires:["widget-position"]},"widget-position-constrain":{requires:["widget-position"]},"widget-skin":{requires:["widget-base"]},"widget-stack":{requires:["base-build","widget"],skinnable:!0},"widget-stdmod":{requires:["base-build","widget"]},"widget-uievents":{requires:["node-event-delegate","widget-base"]},yql:{requires:["oop"]},"yql-jsonp":{condition:{name:"yql-jsonp",test:function(e){return!e.UA.nodejs&&!e.
16UA.winjs},trigger:"yql"},requires:["yql","jsonp","jsonp-url"]},"yql-nodejs":{condition:{name:"yql-nodejs",trigger:"yql",ua:"nodejs"},requires:["yql"]},"yql-winjs":{condition:{name:"yql-winjs",trigger:"yql",ua:"winjs"},requires:["yql"]},yui:{},"yui-base":{},"yui-later":{requires:["yui-base"]},"yui-log":{requires:["yui-base"]},"yui-throttle":{requires:["yui-base"]}}),YUI.Env[e.version].md5="4b2dc680eb7f08db806c63cb67a01005"},"patched-v3.20.5",{requires:["loader-base"]}),YUI.add("yui",function(e,t){},"patched-v3.20.5",{use:["yui-base","get","features","intl-base","yui-log","yui-later","loader-base","loader-rollup","loader-yui3"]}),YUI.add("aui-base-core",function(e,t){var n=e;YUI.Env.aliases=YUI.Env.aliases||{},n.mix(YUI.Env.aliases,{"aui-autosize":["aui-autosize-iframe"],"aui-base":["oop","yui-throttle","aui-classnamemanager","aui-debounce","aui-base-core","aui-base-lang","aui-node-base"],"aui-base-deprecated":["aui-base","aui-node","aui-component","aui-delayed-task-deprecated","aui-selector","aui-event-base"],"aui-button":["aui-button-core"],"aui-collection":["aui-map","aui-set","aui-linkedset"],"aui-color-picker-deprecated":["aui-color-picker-base-deprecated","aui-color-picker-grid-plugin-deprecated"],"aui-datasource-control-deprecated":["aui-datasource-control-base-deprecated","aui-input-text-control-deprecated"],"aui-datatable":["aui-datatable-edit","aui-datatable-highlight","aui-datatable-selection","aui-datatable-property-list"],"aui-datatable-edit":["datatable-base","calendar","overlay","sortable","aui-datatype","aui-toolbar","aui-form-validator","aui-datatable-base-cell-editor","aui-datatable-base-options-cell-editor","aui-datatable-cell-editor-support","aui-datatable-core","aui-datatable-checkbox-cell-editor","aui-datatable-date-cell-editor","aui-datatable-dropdown-cell-editor","aui-datatable-radio-cell-editor","aui-datatable-text-cell-editor","aui-datatable-text-area-cell-editor"],"aui-datepicker-deprecated":["aui-datepicker-base-deprecated","aui-datepicker-select-deprecated"],"aui-event":["aui-event-base"],"aui-form-deprecated":["aui-form-base-deprecated","aui-form-combobox-deprecated","aui-form-field-deprecated","aui-form-select-deprecated","aui-form-textarea-deprecated","aui-form-textfield-deprecated"],"aui-io":["aui-io-request"],"aui-io-deprecated":["aui-io-request","aui-io-plugin-deprecated"],"aui-node":["aui-node-base"],"aui-overlay-deprecated":["aui-overlay-base-deprecated","aui-overlay-context-deprecated","aui-overlay-context-panel-deprecated","aui-overlay-manager-deprecated","aui-overlay-mask-deprecated"],"aui-rating":["aui-rating-base","aui-rating-thumb"],"aui-resize-deprecated":["aui-resize-base-deprecated","aui-resize-constrain-deprecated"],"aui-scheduler":["event-gestures","aui-scheduler-base","aui-scheduler-event-recorder","aui-scheduler-view-agenda","aui-scheduler-view-day","aui-scheduler-view-month","aui-scheduler-view-table-dd","aui-scheduler-view-table","aui-scheduler-view-week","aui-viewport"],"aui-search":["aui-search-tst"],"aui-sortable":["aui-sortable-layout","aui-sortable-list"],"aui-surface":["aui-surface-app","aui-surface-screen"],"aui-toggler":["aui-toggler-base","aui-toggler-delegate"],"aui-tooltip":["aui-tooltip-base","aui-tooltip-delegate"],"aui-tpl-snippets-deprecated":["aui-tpl-snippets-base-deprecated","aui-tpl-snippets-checkbox-deprecated","aui-tpl-snippets-input-deprecated","aui-tpl-snippets-select-deprecated","aui-tpl-snippets-textarea-deprecated"],"aui-tree":["aui-tree-data","aui-tree-io","aui-tree-node","aui-tree-paginator","aui-tree-view"],"aui-widget":["aui-widget-cssclass","aui-widget-toolbars"],"aui-widget-core":["aui-widget-cssclass"]}),YUI.Env[n.version].modules=YUI.Env[n.version].modules||{},n.mix(YUI.Env[n.version].modules,{"aui-ace-autocomplete-base":{requires:["aui-ace-editor"]},"aui-ace-autocomplete-freemarker":{requires:["aui-ace-autocomplete-templateprocessor"]},"aui-ace-autocomplete-list":{requires:["aui-ace-autocomplete-base","overlay","widget-autohide"],skinnable:!0},"aui-ace-autocomplete-plugin":{requires:["aui-ace-autocomplete-list","plugin"]},"aui-ace-autocomplete-templateprocessor":{requires:["aui-ace-autocomplete-base"]},"aui-ace-autocomplete-velocity":{requires:["aui-ace-autocomplete-templateprocessor"]},"aui-ace-editor":{requires:["aui-node","aui-component"]},"aui-affix":{requires:["base","node-screen","aui-node"]},"aui-alert":{requires:["aui-aria","aui-classnamemanager","aui-widget-cssclass","aui-widget-transition","timers","widget","widget-stdmod"],skinnable:!0},"aui-aria":{requires:["plugin","aui-component"]},"aui-aria-table-sortable":{requires:["aui-aria"]}
16,"aui-arraysort":{requires:["arraysort"]},"aui-audio":{requires:["aui-aria","aui-node","aui-component","node-event-html5","querystring-stringify-simple"],skinnable:!0},"aui-autocomplete-deprecated":{requires:["aui-base-deprecated","aui-overlay-base-deprecated","datasource","dataschema","aui-form-combobox-deprecated" 17],skinnable:!0},"aui-autosize":{use:["aui-autosize-iframe"]},"aui-autosize-deprecated":{requires:["event-valuechange","plugin","aui-base-deprecated"],skinnable:!0},"aui-autosize-iframe":{requires:["plugin","aui-component","aui-timer","aui-node-base"]},"aui-base":{use:["oop","yui-throttle","aui-classnamemanager","aui-debounce","aui-base-core","aui-base-lang","aui-node-base"]},"aui-base-core":{},"aui-base-deprecated":{use:["aui-base","aui-node","aui-component","aui-delayed-task-deprecated","aui-selector","aui-event-base"]},"aui-base-html5-shiv":{condition:{name:"aui-base-html5-shiv",trigger:"node-base",ua:"ie"}},"aui-base-lang":{},"aui-boolean-data-editor":{requires:["aui-button-switch","aui-data-editor"]},"aui-button":{use:["aui-button-core"]},"aui-button-core":{requires:["button","button-group","button-plugin","aui-component","aui-widget-cssclass","aui-widget-toggle"],skinnable:!0},"aui-button-item-deprecated":{requires:["aui-base-deprecated","aui-state-interaction-deprecated","widget-child"],skinnable:!0},"aui-button-search-cancel":{requires:["array-invoke","base","base-build","event-focus","event-move","event-resize","node-screen","node-event-delegate","aui-node-base","aui-classnamemanager","aui-event-input"]},"aui-button-switch":{requires:["aui-node-base","base-build","event-key","transition","widget"],skinnable:!0},"aui-carousel":{requires:["anim","aui-event","aui-image-viewer-base","aui-image-viewer-slideshow","node-event-delegate","node-focusmanager"],skinnable:!0},"aui-carousel-mobile-touch":{condition:{name:"aui-carousel-mobile-touch",test:function(e){return e.UA.mobile&&e.UA.touchEnabled},trigger:"aui-carousel"},requires:["base-build","aui-carousel"]},"aui-carousel-swipe":{condition:{name:"aui-carousel-swipe",trigger:"aui-carousel",ua:"touchEnabled"},requires:["aui-carousel","aui-widget-swipe","base-build"],skinnable:!0}
17,"aui-char-counter":{requires:["aui-aria","aui-node","aui-event-input","aui-component"]},"aui-chart-deprecated":{requires:["datasource","json","aui-swf-deprecated"]},"aui-classnamemanager":{requires:["classnamemanager"]},"aui-collection":{use:["aui-map","aui-set","aui-linkedset"]},"aui-color-palette":{requires:["array-extras","aui-palette","color-base","node-core","aui-widget-cssclass","aui-widget-toggle"],skinnable:!0},"aui-color-picker-base":{requires:["aui-color-palette","aui-hsva-palette-modal","event-outside"],skinnable:!0},"aui-color-picker-base-deprecated":{requires:["dd-drag","panel","slider","aui-button-item-deprecated","aui-color-util-deprecated","aui-form-base-deprecated","aui-overlay-context-deprecated"],skinnable:!0},"aui-color-picker-deprecated":{use:["aui-color-picker-base-deprecated","aui-color-picker-grid-plugin-deprecated"]},"aui-color-picker-grid-plugin-deprecated":{requires:["plugin","aui-color-picker-base-deprecated"],skinnable:!0},"aui-color-picker-popover":{requires:["aui-color-picker-base","aui-popover","aui-widget-cssclass","aui-widget-toggle"],skinnable:!0},"aui-color-util-deprecated":{requires:[]},"aui-component":{requires:["aui-classnamemanager","aui-widget-cssclass","aui-widget-toggle","base-build","widget-base"]},"aui-css":{type:"css"},"aui-data-editor":{requires:["aui-classnamemanager","base-build","node-base"],skinnable:!0},"aui-data-set-deprecated":{requires:["oop","collection","base"]},"aui-datasource-control-base-deprecated":{requires:["datasource","dataschema","aui-base-deprecated"]},"aui-datasource-control-deprecated":{use:["aui-datasource-control-base-deprecated","aui-input-text-control-deprecated"]},"aui-datatable":{use:["aui-datatable-edit","aui-datatable-highlight","aui-datatable-selection","aui-datatable-property-list"]},"aui-datatable-base-cell-editor":{requires:["datatable-base","overlay"],skinnable:!0},"aui-datatable-base-options-cell-editor":{requires:["aui-datatable-base-cell-editor","escape"],skinnable:!0},"aui-datatable-body":{requires:["aui-classnamemanager","datatable-base","event-key","aui-event-base"]},"aui-datatable-cell-editor-support":{requires:["datatable-base"]},"aui-datatable-checkbox-cell-editor":{requires:["aui-datatable-base-options-cell-editor"]},"aui-datatable-core":{requires:["aui-datatable-body","datatable-base","event-key","aui-event-base"],skinnable:!0},"aui-datatable-date-cell-editor":{requires:["aui-datatable-base-options-cell-editor"]},"aui-datatable-dropdown-cell-editor":{requires:["aui-datatable-base-options-cell-editor"]},"aui-datatable-edit":{use:["datatable-base","calendar","overlay","sortable","aui-datatype","aui-toolbar","aui-form-validator","aui-datatable-base-cell-editor","aui-datatable-base-options-cell-editor","aui-datatable-cell-editor-support","aui-datatable-core","aui-datatable-checkbox-cell-editor","aui-datatable-date-cell-editor","aui-datatable-dropdown-cell-editor","aui-datatable-radio-cell-editor","aui-datatable-text-cell-editor","aui-datatable-text-area-cell-editor"]},"aui-datatable-highlight":{requires:["aui-datatable-selection"],skinnable:!0},"aui-datatable-property-list":{requires:["datatable-scroll","datatable-sort","aui-datatable-core","aui-datatable-edit","aui-datatable-highlight","aui-datatable-selection","aui-widget-cssclass","aui-widget-toggle"],skinnable:!0},"aui-datatable-radio-cell-editor":{requires:["aui-datatable-base-options-cell-editor"]},"aui-datatable-selection":{requires:["aui-datatable-core"],skinnable:!0},"aui-datatable-text-area-cell-editor":{requires:["aui-datatable-base-options-cell-editor"]},"aui-datatable-text-cell-editor":{requires:["aui-datatable-base-options-cell-editor"]},"aui-datatype":{requires:["datatype","aui-datatype-date-parse"]},"aui-datatype-date-parse":{requires:["aui-base-lang","datatype-date-format","datatype-date-parse","intl"]},"aui-datepicker":{requires:["aui-aria","aui-datepicker-delegate","aui-datepicker-popover","base","base-build","calendar"],skinnable:!0},"aui-datepicker-base-deprecated":{requires:["calendar","aui-datatype","aui-overlay-context-deprecated"],skinnable:!0},"aui-datepicker-delegate":{requires:["aui-datatype-date-parse" 18,"aui-event-input","event-focus","node-event-delegate"]},"aui-datepicker-deprecated":{skinnable:!0,use:["aui-datepicker-base-deprecated","aui-datepicker-select-deprecated"]},"aui-datepicker-native":{requires:["aui-datepicker-delegate","aui-node-base","base","base-build"]},"aui-datepicker-popover":{requires:["aui-classnamemanager","aui-popover"]},"aui-datepicker-select-deprecated":{requires:["aui-datepicker-base-deprecated","aui-button-item-deprecated"],skinnable:!0},"aui-debounce":{},"aui-delayed-task-deprecated":{requires:["yui-base"]},"aui-diagram-builder":{requires:["aui-aria","aui-map","aui-property-builder","aui-diagram-builder
18-connector","aui-property-builder-settings","aui-diagram-node-condition","aui-diagram-node-end","aui-diagram-node-fork","aui-diagram-node-join","aui-diagram-node-start","aui-diagram-node-state","aui-diagram-node-task","overlay"],skinnable:!0},"aui-diagram-builder-connector":{requires:["arraylist-add","arraylist-filter","escape","json","graphics","dd"],skinnable:!0},"aui-diagram-node":{requires:["aui-aria","aui-diagram-node-manager-base","escape","overlay"]},"aui-diagram-node-condition":{requires:["aui-diagram-node-state"]},"aui-diagram-node-end":{requires:["aui-diagram-node-state"]},"aui-diagram-node-fork":{requires:["aui-diagram-node-state"]},"aui-diagram-node-join":{requires:["aui-diagram-node-state"]},"aui-diagram-node-manager-base":{requires:["base"]},"aui-diagram-node-start":{requires:["aui-diagram-node-state"]},"aui-diagram-node-state":{requires:["aui-diagram-node"]},"aui-diagram-node-task":{requires:["aui-diagram-node-state"]},"aui-dialog-iframe-deprecated":{requires:["plugin","array-invoke","aui-base-deprecated","aui-loading-mask-deprecated"],skinnable:!0},"aui-dropdown":{requires:["event-delegate","event-key","event-outside","node-focusmanager","widget","widget-stack","aui-classnamemanager","aui-node","aui-widget-cssclass","aui-widget-toggle","aui-widget-trigger"],skinnable:!0},"aui-editable-deprecated":{requires:["aui-base-deprecated","aui-form-combobox-deprecated","escape","event-resize"],skinnable:!0},"aui-event":{use:["aui-event-base"]},"aui-event-base":{requires:["event-base"]},"aui-event-delegate-change":{condition:{name:"aui-event-delegate-change",trigger:"event-base-ie",ua:"ie"},requires:["aui-event-base","event-delegate","event-synthetic"]},"aui-event-delegate-submit":{condition:{name:"aui-event-delegate-submit",trigger:"event-base-ie",ua:"ie"},requires:["aui-event-base","event-delegate","event-synthetic"]},"aui-event-input":{condition:{name:"aui-event-input",test:function(e){var t=e.supportsDOMEvent,n=e.Features.test,r=e.Features.add;return n("event","input")===undefined&&r("event","input",{test:function(){return t(document.createElement("textarea"),"input")&&(!e.UA.ie||e.UA.ie>9)}}),!n("event","input")},trigger:"aui-event-base"},requires:["aui-event-base","event-delegate","event-synthetic","timers"]}
18,"aui-form-base-deprecated":{requires:["io-form","querystring-parse","aui-base-deprecated","aui-data-set-deprecated","aui-form-field-deprecated"]},"aui-form-builder":{requires:["aui-modal","aui-layout","aui-form-builder-field-list","aui-form-builder-field-toolbar","aui-form-builder-field-type","aui-form-builder-field-types","aui-form-builder-layout-builder","aui-form-builder-page-manager","aui-form-builder-settings-modal","event-focus","event-tap"],skinnable:!0},"aui-form-builder-available-field-deprecated":{requires:["aui-property-builder-available-field"]},"aui-form-builder-deprecated":{requires:["aui-button","aui-collection","aui-form-builder-available-field-deprecated","aui-form-builder-field-deprecated","aui-form-builder-field-button-deprecated","aui-form-builder-field-checkbox-deprecated","aui-form-builder-field-fieldset-deprecated","aui-form-builder-field-file-upload-deprecated","aui-form-builder-field-multiple-choice-deprecated","aui-form-builder-field-radio-deprecated","aui-form-builder-field-select-deprecated","aui-form-builder-field-text-deprecated","aui-form-builder-field-textarea-deprecated","aui-property-builder","aui-property-builder-settings","aui-sortable-list","aui-tabview","aui-tooltip-base","escape","transition"],skinnable:!0},"aui-form-builder-field-base":{requires:["aui-classnamemanager","aui-node-base","aui-text-data-editor","aui-toggler","base","node-base"],skinnable:!0},"aui-form-builder-field-button-deprecated":{requires:["aui-form-builder-field-deprecated"]},"aui-form-builder-field-checkbox-deprecated":{requires:["aui-form-builder-field-deprecated"]},"aui-form-builder-field-choice":{requires:["aui-boolean-data-editor","aui-options-data-editor","aui-tabs-data-editor","aui-form-builder-field-base","aui-form-field-choice"]},"aui-form-builder-field-deprecated":{requires:["panel","aui-datatype","aui-datatable-edit","aui-property-builder-field-support"],skinnable:!0},"aui-form-builder-field-fieldset-deprecated":{requires:["aui-form-builder-field-deprecated"]},"aui-form-builder-field-file-upload-deprecated":{requires:["aui-form-builder-field-deprecated"]},"aui-form-builder-field-list":{requires:["aui-form-builder-field-type","aui-form-builder-field-types","aui-form-builder-layout-builder"],skinnable:!0},"aui-form-builder-field-multiple-choice-deprecated":{requires:["aui-form-builder-field-deprecated"]},"aui-form-builder-field-radio-deprecated":{requires:["aui-form-builder-field-deprecated"]},"aui-form-builder-field-select-deprecated":{requires:["aui-form-builder-field-deprecated"]},"aui-form-builder-field-sentence":{requires:["aui-form-builder-field-base","aui-form-field"]},"aui-form-builder-field-text":{requires:["aui-boolean-data-editor","aui-radio-group-data-editor","aui-form-builder-field-base","aui-form-field-text"]},"aui-form-builder-field-text-deprecated":{requires:["aui-form-builder-field-deprecated"]},"aui-form-builder-field-textarea-deprecated":{requires:["aui-form-builder-field-deprecated"]},"aui-form-builder-field-toolbar":{requires:["aui-classnamemanager","base","node-base"],skinnable:!0},"aui-form-builder-field-type" 19:{requires:["base","node-base"],skinnable:!0},"aui-form-builder-field-types":{requires:["aui-classnamemanager","aui-form-builder-field-types-modal","base","node-base"],skinnable:!0},"aui-form-builder-field-types-modal":{requires:["aui-modal"],skinnable:!0},"aui-form-builder-layout-builder":{requires:["aui-classnamemanager","aui-layout-builder","aui-modal","base","node-base"],skinnable:!0},"aui-form-builder-page-manager":{requires:["aui-pagination","aui-popover","aui-tabview","base","event-valuechange","node-base"],skinnable:!0},"aui-form-builder-settings-modal":{requires:["aui-classnamemanager","aui-modal","base","node-base"],skinnable:!0},"aui-form-combobox-deprecated":{requires:["aui-form-textarea-deprecated","aui-toolbar"],skinnable:!0},"aui-form-deprecated":{use:["aui-form-base-deprecated","aui-form-combobox-deprecated","aui-form-field-deprecated","aui-form-select-deprecated","aui-form-textarea-deprecated","aui-form-textfield-deprecated"]},"aui-form-field":{requires:["aui-classnamemanager","aui-node-base","base-build"],skinnable:!0},"aui-form-field-choice":{requires:["aui-form-field-required"],skinnable:!0},"aui-form-field-deprecated":{requires:["aui-base-deprecated","aui-component"]},"aui-form-field-required":{requires:["aui-form-field"]},"aui-form-field-text":{requires:["aui-form-field-required"],skinnable:!0},"aui-form-select-deprecated":{requires:["aui-form-field-deprecated"]},"aui-form-textarea-deprecated":{requires:["node-pluginhost","aui-autosize-deprecated","aui-form-textfield-deprecated"]},"aui-form-textfield-deprecated":{requires:["aui-form-field-deprecated"]},"aui-form-validator":{requires:["escape","selector-css3","node-event-delegate","aui-node","aui-component","aui-event-input"]},"aui-hsv-palette":{requires:["aui-classnamemanager","aui-widget-cssclass","aui-widget-toggle","aui-event-input","base-build","clickable-rail","color-hsv","dd-constrain","slider","widget"],skinnable:!0},"aui-hsva-palette":{requires:["aui-hsv-palette"],skinnable:!0},"aui-hsva-palette-modal":{requires:["aui-hsva-palette","aui-modal"],skinnable:!0},"aui-image-cropper":{requires:["resize-base","resize-constrain","dd-constrain","aui-node-base","aui-component"],skinnable:!0},"aui-image-viewer":{requires:["widget","widget-modality","widget-position","widget-position-align","widget-position-constrain","widget-stack","widget-stdmod","aui-event","aui-image-viewer-base","aui-image-viewer-multiple","aui-image-viewer-slideshow","aui-node-base","aui-widget-cssclass","aui-widget-toggle"],skinnable:!0},"aui-image-viewer-base":{requires:["anim","aui-aria","aui-classnamemanager","aui-node","aui-widget-responsive","base-build","imageloader","node-base","widget","widget-stack"],skinnable:!0},"aui-image-viewer-media":{requires:["plugin","aui-component","aui-image-viewer"]},"aui-image-viewer-multiple":{requires:["base-build","node-base","aui-classnamemanager","aui-image-viewer-base"],skinnable:!0},"aui-image-viewer-multiple-swipe":{condition:{name:"aui-image-viewer-multiple-swipe",trigger:"aui-image-viewer-multiple",ua:"touchEnabled"}
19,requires:["aui-image-viewer-multiple","aui-image-viewer-swipe"]},"aui-image-viewer-slideshow":{requires:["node","aui-classnamemanager"]},"aui-image-viewer-swipe":{condition:{name:"aui-image-viewer-swipe",trigger:"aui-image-viewer-base",ua:"touchEnabled"},requires:["event-resize","aui-image-viewer-base","aui-widget-swipe"]},"aui-input-text-control-deprecated":{requires:["aui-base-deprecated","aui-datasource-control-base-deprecated","aui-form-combobox-deprecated"]},"aui-io":{use:["aui-io-request"]},"aui-io-deprecated":{use:["aui-io-request","aui-io-plugin-deprecated"]},"aui-io-plugin-deprecated":{requires:["aui-overlay-base-deprecated","aui-parse-content","aui-io-request","aui-loading-mask-deprecated"]},"aui-io-request":{requires:["io-base","json","plugin","querystring-stringify","aui-component"]},"aui-io-request-deprecated":{requires:["io-base","json","plugin","querystring-stringify","aui-base-deprecated"]},"aui-layout":{requires:["aui-layout-col","aui-layout-row","aui-node-base","base-build","datatype-number-parse","event-resize"]},"aui-layout-builder":{requires:["aui-classnamemanager","aui-layout","aui-layout-builder-add-col","aui-layout-builder-add-row","aui-layout-builder-move","aui-layout-builder-remove-row","aui-layout-builder-resize-col","aui-node-base","base-build","node-event-delegate","node-screen","node-style"]},"aui-layout-builder-add-col":{requires:["event-key","node-base"],skinnable:!0},"aui-layout-builder-add-row":{requires:["aui-node-base","base-build","node-scroll-info"],skinnable:!0},"aui-layout-builder-move":{requires:["aui-node-base","base-build"],skinnable:!0},"aui-layout-builder-remove-row":{requires:["aui-node-base","base-build"],skinnable:!0},"aui-layout-builder-resize-col":{requires:["dd-constrain","dd-delegate","dd-drop-plugin","dd-proxy","event-mouseenter","node-base"],skinnable:!0},"aui-layout-col":{requires:["aui-classnamemanager","aui-node-base","base-build"],skinnable:!0},"aui-layout-row":{requires:["array-invoke","aui-node-base","base-build"],skinnable:!0},"aui-linkedset":{requires:["aui-set"]},"aui-live-search-deprecated":{requires:["aui-base-deprecated"]},"aui-loading-mask-deprecated":{requires:["plugin","aui-overlay-mask-deprecated"],skinnable:!0},"aui-map":{requires:["base-build"]},"aui-menu":{requires:["base-build","event-mouseenter","event-resize","widget","widget-position","widget-position-align","widget-position-constrain","widget-stack","aui-classnamemanager","aui-debounce","aui-dropdown","aui-menu-item"],skinnable:!0},"aui-menu-item":{requires:["base-build","node-base","aui-classnamemanager","aui-node","aui-widget-shortcut"]},"aui-messaging":{requires:["querystring","aui-timer"]},"aui-modal":{requires:["widget","widget-autohide","widget-buttons","widget-modality","widget-position","widget-position-align","widget-position-constrain","widget-stack","widget-stdmod","dd-plugin","dd-constrain","timers","aui-classnamemanager","aui-widget-cssclass","aui-widget-toggle" 20,"aui-widget-toolbars"],skinnable:!0},"aui-modal-resize":{condition:{name:"aui-modal-resize",test:function(e){return!e.UA.mobile},trigger:"aui-modal"},requires:["aui-modal","resize-plugin"]},"aui-node":{use:["aui-node-base"]},"aui-node-accessible":{requires:["aui-node-base","event-custom-base"]},"aui-node-base":{requires:["array-extras","aui-base-lang","aui-classnamemanager","aui-debounce","node"]},"aui-node-html5":{condition:{name:"aui-node-html5",trigger:"aui-node",ua:"ie"},requires:["collection","aui-node-base"]},"aui-options-data-editor":{requires:["aui-data-editor","dd-constrain","dd-delegate","dd-drop-plugin","dd-proxy","event-valuechange","node-event-delegate"],skinnable:!0},"aui-overlay-base-deprecated":{requires:["widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod","aui-component"]},"aui-overlay-context-deprecated":{requires:["aui-overlay-manager-deprecated","aui-delayed-task-deprecated","aui-aria"]},"aui-overlay-context-panel-deprecated":{requires:["anim","aui-overlay-context-deprecated"],skinnable:!0},"aui-overlay-deprecated":{use:["aui-overlay-base-deprecated","aui-overlay-context-deprecated","aui-overlay-context-panel-deprecated","aui-overlay-manager-deprecated","aui-overlay-mask-deprecated"]},"aui-overlay-manager-deprecated":{requires:["overlay","plugin","aui-base-deprecated","aui-overlay-base-deprecated"]},"aui-overlay-mask-deprecated":{requires:["event-resize","aui-base-deprecated","aui-overlay-base-deprecated"],skinnable:!0},"aui-pagination":{requires:["node-event-delegate","aui-node","aui-component","widget-htmlparser"],skinnable:!0},"aui-palette":{requires:["base-build","event-hover","widget","aui-classnamemanager","aui-base","aui-widget-cssclass","aui-widget-toggle"],skinnable:!0},"aui-parse-content":{requires:["async-queue","plugin","io-base","aui-component","aui-node-base"]},"aui-popover":{requires:["event-resize","widget","widget-autohide","widget-buttons","widget-modality","widget-position","widget-position-align","widget-position-constrain","widget-stack","widget-stdmod","aui-classnamemanager","aui-widget-cssclass","aui-widget-toggle","aui-widget-toolbars","aui-widget-transition","aui-widget-trigger","aui-widget-position-align-suggestion","aui-component","aui-node-base"],skinnable:!0},"aui-progressbar":{requires:["aui-node","aui-component","aui-aria"],skinnable:!0},"aui-promise":{requires:["array-invoke","promise","oop"]}
20,"aui-property-builder":{requires:["dd","collection","aui-property-builder-available-field","aui-property-builder-field-support","aui-property-builder-settings","aui-tabview"],skinnable:!0},"aui-property-builder-available-field":{requires:["base","aui-component","aui-node"]},"aui-property-builder-field-support":{},"aui-property-builder-settings":{requires:["aui-tabview","aui-datatable-property-list"]},"aui-radio-group-data-editor":{requires:["aui-data-editor","node-event-delegate"],skinnable:!0},"aui-rating":{use:["aui-rating-base","aui-rating-thumb"]},"aui-rating-base":{requires:["aui-component","aui-node-base","widget-htmlparser","widget-uievents"],skinnable:!0},"aui-rating-thumb":{requires:["aui-rating-base"]},"aui-resize-base-deprecated":{requires:["dd-drag","dd-delegate","dd-drop","aui-base-deprecated"],skinnable:!0},"aui-resize-constrain-deprecated":{requires:["dd-constrain","plugin","aui-resize-base-deprecated"]},"aui-resize-deprecated":{skinnable:!0,use:["aui-resize-base-deprecated","aui-resize-constrain-deprecated"]},"aui-scale-data-editor":{requires:["aui-classnamemanager","aui-data-editor","event-valuechange"]},"aui-scheduler":{use:["event-gestures","aui-scheduler-base","aui-scheduler-event-recorder","aui-scheduler-view-agenda","aui-scheduler-view-day","aui-scheduler-view-month","aui-scheduler-view-table-dd","aui-scheduler-view-table","aui-scheduler-view-week","aui-viewport"]},"aui-scheduler-base":{requires:["model","model-list","widget-stdmod","color-hsl","aui-event-base","aui-node-base","aui-component","aui-datatype","aui-button","node-focusmanager"],skinnable:!0},"aui-scheduler-event-recorder":{requires:["querystring","io-form","overlay","aui-scheduler-base","aui-popover"],skinnable:!0},"aui-scheduler-touch":{condition:{name:"aui-scheduler-touch",trigger:"aui-scheduler",ua:"touchEnabled"},requires:["base-build","aui-scheduler"],skinnable:!0},"aui-scheduler-view-agenda":{requires:["aui-scheduler-base"],skinnable:!0},"aui-scheduler-view-day":{requires:["dd-drag","dd-delegate","dd-drop","dd-constrain","aui-scheduler-view-table"],skinnable:!0},"aui-scheduler-view-month":{requires:["aui-scheduler-view-table"],skinnable:!0},"aui-scheduler-view-table":{requires:["overlay","aui-scheduler-base"],skinnable:!0},"aui-scheduler-view-table-dd":{requires:["dd-drag","dd-delegate","dd-drop","aui-scheduler-view-table"]},"aui-scheduler-view-week":{requires:["aui-scheduler-view-day"],skinnable:!0},"aui-scroller-deprecated":{requires:["event-mouseenter","aui-base-deprecated","aui-simple-anim-deprecated"],skinnable:!0},"aui-scrollspy":{requires:["base-build","node-screen","aui-classnamemanager"]},"aui-search":{use:["aui-search-tst"]},"aui-search-tst":{requires:["aui-component"]},"aui-selector":{requires:["selector-css3","aui-classnamemanager"]},"aui-set":{requires:["aui-map"]},"aui-simple-anim-deprecated":{requires:["aui-base-deprecated"]},"aui-skin-deprecated":{type:"css"},"aui-sortable":{use:["aui-sortable-layout","aui-sortable-list"]},"aui-sortable-layout":{requires:["dd-delegate","dd-drag","dd-drop","dd-proxy","aui-node","aui-component"],skinnable:!0},"aui-sortable-list":{requires:["dd-drag","dd-drop","dd-proxy","dd-scroll","aui-node","aui-component"]},"aui-state-interaction-deprecated":{requires:["aui-base-deprecated","plugin"]},"aui-surface":{use:["aui-surface-app","aui-surface-screen"]},"aui-surface-app":{requires:["event-delegate","node-event-html5","aui-surface-base","aui-surface-screen","aui-surface-screen-route"]},"aui-surface-base":{requires:["base-build","node-style","timers","aui-debounce","aui-promise" 21,"aui-parse-content"]},"aui-surface-screen":{requires:["base-build"]},"aui-surface-screen-html":{requires:["aui-base","aui-io-request","aui-promise","aui-surface-screen","aui-url"]},"aui-surface-screen-route":{requires:["base-build"]},"aui-swf-deprecated":{requires:["querystring-parse-simple","querystring-stringify-simple","aui-base-deprecated"]},"aui-tabs-data-editor":{requires:["aui-data-editor","aui-tabview"]},"aui-tabview":{requires:["selector-css3","tabview","aui-component","aui-widget-css"],skinnable:!0},"aui-template-deprecated":{requires:["aui-base-deprecated"]},"aui-text-data-editor":{requires:["aui-data-editor","event-valuechange"],skinnable:!0},"aui-text-data-unicode":{requires:["text"]},"aui-text-unicode":{requires:["aui-text-data-unicode"]},"aui-textboxlist-deprecated":{requires:["anim-node-plugin","aui-autocomplete-deprecated","aui-button-item-deprecated","aui-data-set-deprecated","escape","node-focusmanager"],skinnable:!0},"aui-timepicker":{requires:["autocomplete","aui-datepicker-delegate","aui-datepicker-popover"],skinnable:!0},"aui-timepicker-native":{requires:["base","base-build","aui-node-base","aui-datepicker-delegate","aui-datepicker-native"]},"aui-timer":{requires:["oop"]}
21,"aui-toggler":{use:["aui-toggler-base","aui-toggler-delegate"]},"aui-toggler-accessibility":{requires:["aui-toggler-base"]},"aui-toggler-base":{requires:["transition","aui-selector","aui-event-base","aui-node","aui-component","event-tap"],skinnable:!0},"aui-toggler-delegate":{requires:["array-invoke","node-event-delegate","aui-toggler-base"]},"aui-toolbar":{requires:["arraylist","arraylist-add","aui-component","aui-button-core"]},"aui-tooltip":{use:["aui-tooltip-base","aui-tooltip-delegate"]},"aui-tooltip-base":{requires:["aui-aria","aui-classnamemanager","aui-component","aui-debounce","aui-node-base","aui-widget-cssclass","aui-widget-toggle","aui-widget-transition","aui-widget-trigger","aui-widget-position-align-suggestion","event-hover","event-resize","escape","widget","widget-autohide","widget-position","widget-position-align","widget-position-constrain","widget-stack","widget-stdmod"],skinnable:!0},"aui-tooltip-delegate":{requires:["aui-tooltip-base","node-event-delegate"]},"aui-tooltip-deprecated":{requires:["aui-overlay-context-panel-deprecated"],skinnable:!0},"aui-tpl-snippets-base-deprecated":{requires:["aui-template-deprecated"]},"aui-tpl-snippets-checkbox-deprecated":{requires:["aui-tpl-snippets-base-deprecated"]},"aui-tpl-snippets-deprecated":{use:["aui-tpl-snippets-base-deprecated","aui-tpl-snippets-checkbox-deprecated","aui-tpl-snippets-input-deprecated","aui-tpl-snippets-select-deprecated","aui-tpl-snippets-textarea-deprecated"]},"aui-tpl-snippets-input-deprecated":{requires:["aui-tpl-snippets-base-deprecated"]},"aui-tpl-snippets-select-deprecated":{requires:["aui-tpl-snippets-base-deprecated"]},"aui-tpl-snippets-textarea-deprecated":{requires:["aui-tpl-snippets-base-deprecated"]},"aui-tree":{use:["aui-tree-data","aui-tree-io","aui-tree-node","aui-tree-paginator","aui-tree-view"]},"aui-tree-data":{requires:["aui-base-core","aui-base-lang","aui-node-base","aui-timer","aui-component"]},"aui-tree-io":{requires:["aui-component","aui-io"]},"aui-tree-node":{requires:["json","querystring-stringify","aui-tree-data","aui-tree-io","aui-tree-paginator","event-key"]},"aui-tree-paginator":{requires:["yui-base"]},"aui-tree-view":{requires:["dd-delegate","dd-proxy","widget","aui-tree-node","aui-tree-paginator","aui-tree-io"],skinnable:!0},"aui-undo-redo":{requires:["aui-base","base","base-build","event-key","promise"]},"aui-url":{requires:["oop","querystring-parse","querystring-stringify"]},"aui-video":{requires:["event-resize","node-event-html5","querystring-stringify-simple","aui-aria","aui-node","aui-component","aui-debounce"],skinnable:!0},"aui-viewport":{requires:["aui-node","aui-component"]},"aui-widget":{use:["aui-widget-cssclass","aui-widget-toolbars"]},"aui-widget-core":{use:["aui-widget-cssclass"]},"aui-widget-cssclass":{requires:["widget-base"]},"aui-widget-position-align-suggestion":{requires:["widget-position-align","widget-stdmod"]},"aui-widget-responsive":{requires:["event-resize","widget-base"]},"aui-widget-shortcut":{requires:["base"]},"aui-widget-swipe":{requires:["classnamemanager","scrollview-base","scrollview-paginator","timers"]}
21,"aui-widget-toggle":{},"aui-widget-toolbars":{requires:["widget-stdmod","aui-toolbar"]},"aui-widget-transition":{requires:["transition"]},"aui-widget-trigger":{requires:["node"]}}),YUI.Env[n.version].md5="d7c627eb00edd6b6f054d8f6e7147480",e.UA.edge=function(){var t=e.UA.userAgent.match(/Edge\/(.[0-9.]+)/);return t?t[1]:0}(),e.supportsDOMEvent=function(t,n){n="on"+n;if(!(n in t)){t.setAttribute||(t=e.config.doc.createElement("div"));if(t.setAttribute)return t.setAttribute(n,""),typeof t[n]=="function"}return t=null,!0},function(){var e=Array.prototype.slice;YUI.prototype.ready=function(){var t=this,n=arguments,r=n.length-1,i=e.call(arguments,0,r);i.unshift("event-base"),i.push(function(e){var t=arguments;e.on("domready",function(){n[r].apply(this,t)})}),t.use.apply(t,i)}}()},"3.1.0-deprecated.124"),YUI.add("aui",function(e,t){},"3.1.0-deprecated.124"); 22YUI.Env.core.push.apply(YUI.Env.core, ["aui-base-core"]); 23/** 24 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 25 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 26 */ 27 28/** 29 * @deprecated As of Athanasius (7.3.x), with no direct replacement 30 */ 31(function () { 32 const LiferayAUI = Liferay.AUI; 33 34 const COMBINE = LiferayAUI.getCombine(); 35 36 const PATH_EDITOR_CKEDITOR = LiferayAUI.getEditorCKEditorPath(); 37 38 const PATH_JAVASCRIPT = '/o/frontend-js-aui-web'; 39 40 window.YUI_config = { 41 base: 42 Liferay.ThemeDisplay.getCDNBaseURL() + 43 Liferay.ThemeDisplay.getPathContext() + 44 PATH_JAVASCRIPT + 45 '/aui/', 46 combine: COMBINE, 47 comboBase: LiferayAUI.getComboPath(), 48 filter: 'min', // If you need to debug this file, replace this with 'raw' 49 groups: { 50 editor: { 51 base: PATH_EDITOR_CKEDITOR, 52 combine: COMBINE, 53 modules: { 54 'inline-editor-ckeditor': { 55 path: 'ckeditor/main.js', 56 }, 57 }, 58 root: PATH_EDITOR_CKEDITOR, 59 }, 60 61 liferay: { 62 base: 63 Liferay.ThemeDisplay.getCDNBaseURL() + 64 Liferay.ThemeDisplay.getPathContext() + 65 PATH_JAVASCRIPT + 66 '/liferay/', 67 combine: COMBINE, 68 filter: Liferay.AUI.getFilterConfig(), 69 modules: { 70 'liferay-auto-fields': { 71 path: 'auto_fields.js', 72 requires: [ 73 'aui-base', 74 'aui-data-set-deprecated', 75 'aui-parse-content', 76 'base', 77 'liferay-form', 78 'liferay-menu', 79 'liferay-portlet-base', 80 'liferay-undo-manager', 81 'sortable', 82 ], 83 }, 84 'liferay-autocomplete-input': { 85 path: 'autocomplete_input.js', 86 requires: [ 87 'aui-base', 88 'autocomplete', 89 'autocomplete-filters', 90 'autocomplete-highlighters', 91 ], 92 }, 93 'liferay-dynamic-select': {
94 path: 'dynamic_select.js', 95 requires: ['aui-base'], 96 }, 97 'liferay-form': { 98 path: 'form.js', 99 requires: ['aui-base', 'aui-form-validator'], 100 }, 101 'liferay-fullscreen-source-editor': { 102 path: 'fullscreen_source_editor.js', 103 requires: ['liferay-source-editor'], 104 }, 105 'liferay-icon': { 106 path: 'icon.js', 107 requires: ['aui-base'], 108 }, 109 'liferay-inline-editor-base': { 110 path: 'inline_editor_base.js', 111 requires: ['aui-base', 'aui-overlay-base-deprecated'], 112 }, 113 'liferay-input-localized': { 114 path: 'input_localized.js', 115 requires: [ 116 'aui-base', 117 'aui-component', 118 'aui-event-input', 119 'aui-palette', 120 'aui-set', 121 ], 122 }, 123 'liferay-input-move-boxes': { 124 path: 'input_move_boxes.js', 125 plugins: { 126 'liferay-input-move-boxes-touch': { 127 condition: { 128 name: 'liferay-input-move-boxes-touch', 129 test(A) { 130 return ( 131 A.UA.touchEnabled && !!A.UA.mobile 132 ); 133 }, 134 trigger: 'liferay-input-move-boxes', 135 }, 136 }, 137 }, 138 requires: ['aui-base', 'aui-toolbar'], 139 }, 140 'liferay-input-move-boxes-touch': { 141 path: 'input_move_boxes_touch.js', 142 requires: [ 143 'aui-base', 144 'aui-template-deprecated', 145 'liferay-input-move-boxes', 146 'sortable', 147 ], 148 }, 149 'liferay-layout': { 150 path: 'layout.js', 151 }, 152 'liferay-layout-column': { 153 path: 'layout_column.js', 154 requires: ['aui-sortable-layout', 'dd'], 155 }, 156 'liferay-logo-editor': { 157 path: 'logo_editor.js', 158 requires: ['aui-image-cropper', 'liferay-portlet-base'], 159 }, 160 'liferay-menu': { 161 path: 'menu.js', 162 requires: ['aui-debounce', 'aui-node'], 163 }, 164 'liferay-menu-filter': { 165 path: 'menu_filter.js', 166 requires: [ 167 'autocomplete-base', 168 'autocomplete-filters', 169 'autocomplete-highlighters', 170 ], 171 }, 172 'liferay-menu-toggle': { 173 path: 'menu_toggle.js', 174 requires: [ 175 'aui-node', 176 'event-outside', 177 'event-tap', 178 'liferay-menu-filter', 179 ], 180 }, 181 'liferay-navigation': { 182 path: 'navigation.js', 183 requires: ['aui-component', 'event-mouseenter'], 184 }, 185 'liferay-navigation-interaction': { 186 path: 'navigation_interaction.js', 187 plugins: { 188 'liferay-navigation-interaction-touch': { 189 condition: { 190 name: 'liferay-navigation-interaction-touch', 191 test(A) { 192 return A.UA.touchEnabled; 193 }, 194 trigger: 'liferay-navigation-interaction', 195 }, 196 }, 197 }, 198 requires: [ 199 'aui-base', 200 'aui-component', 201 'event-mouseenter', 202 'node-focusmanager', 203 'plugin', 204 ], 205 }, 206 'liferay-navigation-interaction-touch': { 207 path: 'navigation_interaction_touch.js', 208 requires: [ 209 'event-tap', 210 'event-touch', 211 'liferay-navigation-interaction', 212 ], 213 }, 214 'liferay-portlet-base': { 215 path: 'portlet_base.js', 216 requires: ['aui-base'], 217 }, 218 'liferay-portlet-url': { 219 path: 'portlet_url.js', 220 requires: ['aui-base'], 221 }, 222 'liferay-progress': { 223 path: 'progress.js', 224 requires: ['aui-progressbar'], 225 }, 226 'liferay-search-container': { 227 path: 'search_container.js', 228 requires: ['aui-base', 'aui-datatable-core'], 229 }, 230 'liferay-search-container-move': { 231 path: 'search_container_move.js', 232 requires: [ 233 'aui-component', 234 'dd-constrain', 235 'dd-delegate', 236 'dd-drag', 237 'dd-drop', 238 'dd-proxy', 239 'plugin', 240 ], 241 }, 242 'liferay-search-container-select': { 243 path: 'search_container_select.js', 244 requires: ['aui-component', 'aui-url', 'plugin'], 245 }, 246 'liferay-session': { 247 path: 'session.js', 248 requires: [ 249 'aui-base', 250 'aui-component', 251 'aui-timer', 252 'cookie', 253 'plugin', 254 ], 255 }, 256 'liferay-source-editor': { 257 path: 'source_editor.js', 258 requires: ['aui-ace-editor'], 259 }, 260 'liferay-store': { 261 path: 'store.js', 262 }, 263 'liferay-translation-manager': { 264 path: 'translation_manager.js', 265 requires: ['aui-base'], 266 }, 267 'liferay-undo-manager': { 268 path: 'undo_manager.js', 269 requires: ['aui-data-set-deprecated', 'base'], 270 }, 271 'liferay-upload': { 272 path: 'upload.js', 273 requires: [ 274 'aui-template-deprecated', 275 'collection', 276 'liferay-portlet-base', 277 'uploader', 278 ], 279 }, 280 'liferay-util-window': { 281 path: 'util_window.js', 282 requires: [ 283 'aui-dialog-iframe-deprecated', 284 'aui-modal', 285 'aui-url', 286 'event-resize', 287 'liferay-widget-zindex', 288 ], 289 }, 290 'liferay-widget-zindex': { 291 path: 'widget_zindex.js', 292 requires: ['aui-modal', 'plugin'], 293 }, 294 }, 295 root: PATH_JAVASCRIPT + '/liferay/', 296 }, 297 }, 298 insertBefore: 'liferayAUICSS', 299 lang: themeDisplay.getBCP47LanguageId(), 300 root: PATH_JAVASCRIPT + '/aui/', 301 useBrowserConsole: false, 302 }; 303})(); 304 305/** 306 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 307 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 308 */ 309 310/** 311 * @deprecated As of Athanasius (7.3.x), with no direct replacement 312 */ 313(function () { 314 const ALLOY = YUI(); 315 316 if (ALLOY.html5shiv) { 317 ALLOY.html5shiv(); 318 } 319 320 const originalUse = ALLOY.use; 321 322 ALLOY.use = function () { 323 const args = Array.prototype.slice.call(arguments, 0); 324 325 const currentURL = Liferay.currentURL; 326 327 const originalCallback = args[args.length - 1]; 328 329 if (typeof originalCallback === 'function') { 330 args[args.length - 1] = function () { 331 if (Liferay.currentURL === currentURL) { 332 originalCallback.apply(this, arguments); 333 } 334 }; 335 } 336 337 return originalUse.apply(this, args); 338 }; 339 340 window.AUI = function () { 341 return ALLOY; 342 }; 343 344 ALLOY.mix(AUI, YUI); 345 346 AUI.$ = window.jQuery; 347 AUI._ = window._; 348})(); 349 350YUI.add("attribute-base",function(e,t){function n(){e.AttributeCore.apply(this,arguments),e.AttributeObservable.apply(this,arguments),e.AttributeExtras.apply(this,arguments)}e.mix(n,e.AttributeCore,!1,null,1),e.mix(n,e.AttributeExtras,!1,null,1),e.mix(n,e.AttributeObservable,!0,null,1),n.INVALID_VALUE=e.AttributeCore.INVALID_VALUE,n._ATTR_CFG=e.AttributeCore._ATTR_CFG.concat(e.AttributeObservable._ATTR_CFG),n.protectAttrs=e.AttributeCore.protectAttrs,e.Attribute=n},"patched-v3.20.5",{requires:["attribute-core","attribute-observable","attribute-extras"]}); 351 352YUI.add("attribute-complex",function(e,t){var n=e.Attribute;n.Complex=function(){},n.Complex.prototype={_normAttrVals:n.prototype._normAttrVals,_getAttrInitVal:n.prototype._getAttrInitVal},e.AttributeComplex=n.Complex},"patched-v3.20.5",{requires:["attribute-base"]}); 353 354YUI.add("attribute-core",function(e,t){function b(e,t,n){this._yuievt=null,this._initAttrHost(e,t,n)}e.State=function(){this.data={}},e.State.prototype={add:function(e,t,n){var r=this.data[e];r||(r=this.data[e]={}),r[t]=n},addAll:function(e,t){var n=this.data[e],r;n||(n=this.data[e]={});for(r in t)t.hasOwnProperty(r)&&(n[r]=t[r])},remove:function(e,t){var n=this.data[e];n&&delete n[t]},removeAll:function(t,n){var r;n?e.each(n,function(e,n){this.remove(t,typeof n=="string"?n:e)},this):(r=this.data,t in r&&delete r[t])},get:function(e,t){var n=this.data[e];if(n)return n[t]},getAll:function(e,t){var n=this.data[e],r,i;if(t)i=n;else if(n){i={};for(r in n)n.hasOwnProperty(r)&&(i[r]=n[r])}return i}};var n=e.Object,r=e.Lang,i=".",s="getter",o="setter",u="readOnly",a="writeOnce",f="initOnly",l="validator",c="value",h="valueFn",p="lazyAdd",d="added",v="_bypassProxy",m="initValue",g="lazy",y;b.INVALID_VALUE={},y=b.INVALID_VALUE,b._ATTR_CFG=[o,s,l,c,h,a,u,p,v],b.protectAttrs=function(t){if(t){t=e.merge(t);for(var n in t)t.hasOwnProperty(n)&&(t[n]=e.merge(t[n]))}return t},b.prototype={_initAttrHost:function(t,n,r){this._state=new e.State,this._initAttrs(t,n,r)},addAttr:function(e,t,n){var r=this,i=r._state,s=i.data,o,u,a;t=t||{},p in t&&(n=t[p]),u=i.get(e,d);if(n&&!u)i.data[e]={lazy:t,added:!0};else if(!u||t.isLazyAdd)a=c in t,a&&(o=t.value,t.value=undefined),t.added=!0,t.initializing=!0,s[e]=t,a&&r.set(e,o),t.initializing=!1;return r},attrAdded:function(e){return!!this._state.get(e,d)},get:function(e){return this._getAttr(e)},_isLazyAttr:function(e){return this._state.get(e,g)},_addLazyAttr:function(e,t){var n=this._state;t=t||n.get(e,g),t&&(n.data[e].lazy=undefined,t.isLazyAdd=!0,this.addAttr(e,t))},set:function(e,t,n){return this._setAttr(e,t,n)},_set:function(e,t,n){return this._setAttr(e,t,n,!0)},_setAttr:function(t,r,s,o){var u=!0,a=this._state,l=this._stateProxy,c=this._tCfgs,h,p,d,v,m,g,y;t.indexOf(i)!==-1&&(d=t,v=t.split(i),t=v.shift()),c&&c[t]&&this._addOutOfOrder(t,c[t]),h=a.data[t]||{},h.lazy&&(h=h.lazy,this._addLazyAttr(t,h)),p=h.value===undefined,l&&t in l&&!h._bypassProxy&&(p=!1),g=h.writeOnce,y=h.initializing,!p&&!o&&(g&&(u=!1),h.readOnly&&(u=!1)),!y&&!o&&g===f&&(u=!1);if(u){p||(m=this.get(t));if(v){var b=[m].reduce(function(e,t){return Object.keys(t).forEach(function(n){e[n]=t[n]}),e},{}),w=b,E=v.length-1;for(var S=0;S<E&&w;S++)w=w[v[S]];w&&delete w[v[E]],r=n.setValue(e.clone(b),v,r),r===undefined&&(u=!1)}u&&(!this._fireAttrChange||y?this._setAttrVal(t,d,m,r,s,h):this._fireAttrChange(t,d,m,r,s,h))}return this},_addOutOfOrder:function(e,t){var n={};n[e]=t,delete this._tCfgs[e],this._addAttrs(n,this._tVals)},_getAttr:function(e){var t=e,r=this._tCfgs,s,o,u,a;return e.indexOf(i)!==-1&&(s=e.split(i),e=s.shift()),r&&r[e]&&this._addOutOfOrder(e,r[e]),a=this._state.data[e]||{},a.lazy&&(a=a.lazy,this._addLazyAttr(e,a)),u=this._getStateVal(e,a),o=a.getter,o&&!o.call&&(o=this[o]),u=o?o.call(this,u,t):u,u=s?n.getValue(u,s):u,u},_getStateVal:function(e,t){var n=this._stateProxy;return t||(t=this._state.getAll(e)||{}),n&&e in n&&!t._bypassProxy?n[e]:t.value},_setStateVal:function(e,t){var n=this._stateProxy;n&&e in n&&!this._state.get(e,v)?n[e]=t:this._state.add(e,c,t)},_setAttrVal:function(e,t,n,i,s,o){var u=this,a=!0,f=o||this._state.data[e]||{},l=f.validator,c=f.setter,h=f.initializing,p=this._getStateVal(e,f),d=t||e,v,g;return l&&(l.call||(l=this[l]),l&&(g=l.call(u,i,d,s),!g&&h&&(i=f.defaultValue,g=!0))),!l||g?(c&&(c.call||(c=this[c]),c&&(v=c.call(u,i,d,s),v===y?h?i=f.defaultValue:a=!1:v!==undefined&&(i=v))),a&&(!t&&i===p&&!r.isObject(i)?a=!1:(m in f||(f.initV
354alue=i),u._setStateVal(e,i)))):a=!1,a},setAttrs:function(e,t){return this._setAttrs(e,t)},_setAttrs:function(e,t){var n;for(n in e)e.hasOwnProperty(n)&&this.set(n,e[n],t);return this},getAttrs:function(e){return this._getAttrs(e)},_getAttrs:function(e){var t={},r,i,s,o=e===!0;if(!e||o)e=n.keys(this._state.data);for(i=0,s=e.length;i<s;i++){r=e[i];if(!o||this._getStateVal(r)!=this._state.get(r,m))t[r]=this.get(r)}return t},addAttrs:function(e,t,n){return e&&(this._tCfgs=e,this._tVals=t?this._normAttrVals(t):null,this._addAttrs(e,this._tVals,n),this._tCfgs=this._tVals=null),this},_addAttrs:function(e,t,n){var r=this._tCfgs,i=this._tVals,s,o,u;for(s in e)e.hasOwnProperty(s)&&(o=e[s],o.defaultValue=o.value,u=this._getAttrInitVal(s,o,i),u!==undefined&&(o.value=u),r[s]&&(r[s]=undefined),this.addAttr(s,o,n))},_protectAttrs:b.protectAttrs,_normAttrVals:function(e){var t,n,r,s,o,u;if(!e)return null;t={};for(u in e)e.hasOwnProperty(u)&&(u.indexOf(i)!==-1?(r=u.split(i),s=r.shift(),n=n||{},o=n[s]=n[s]||[],o[o.length]={path:r,value:e[u]}):t[u]=e[u]);return{simple:t,complex:n}},_getAttrInitVal:function(e,t,r){var i=t.value,s=t.valueFn,o,u=!1,a=t.readOnly,f,l,c,h,p,d,v;!a&&r&&(f=r.simple,f&&f.hasOwnProperty(e)&&(i=f[e],u=!0)),s&&!u&&(s.call||(s=this[s]),s&&(o=s.call(this,e),i=o));if(!a&&r){l=r.complex;if(l&&l.hasOwnProperty(e)&&i!==undefined&&i!==null){v=l[e];for(c=0,h=v.length;c<h;++c)p=v[c].path,d=v[c].value,n.setValue(i,p,d)}}return i},_initAttrs:function(t,n,r){t=t||this.constructor.ATTRS;var i=e.Base,s=e.BaseCore,o=i&&e.instanceOf(this,i),u=!o&&s&&e.instanceOf(this,s);t&&!o&&!u&&this.addAttrs(e.AttributeCore.protectAttrs(t),n,r)}},e.AttributeCore=b},"patched-v3.20.5",{requires:["oop"]}); 355 356YUI.add("attribute-observable",function(e,t){function s(){this._ATTR_E_FACADE={},n.call(this,{emitFacade:!0})}var n=e.EventTarget,r="Change",i="broadcast";s._ATTR_CFG=[i],s.prototype={set:function(e,t,n){return this._setAttr(e,t,n)},_set:function(e,t,n){return this._setAttr(e,t,n,!0)},setAttrs:function(e,t){return this._setAttrs(e,t)},_setAttrs:function(e,t){var n;for(n in e)e.hasOwnProperty(n)&&this.set(n,e[n],t);return this},_fireAttrChange:function(t,n,i,s,o,u){var a=this,f=this._getFullType(t+r),l=a._state,c,h,p;u||(u=l.data[t]||{}),u.published||(p=a._publish(f),p.emitFacade=!0,p.defaultTargetOnly=!0,p.defaultFn=a._defAttrChangeFn,h=u.broadcast,h!==undefined&&(p.broadcast=h),u.published=!0),o?(c=e.merge(o),c._attrOpts=o):c=a._ATTR_E_FACADE,c.attrName=t,c.subAttrName=n,c.prevVal=i,c.newVal=s,a._hasPotentialSubscribers(f)?a.fire(f,c):this._setAttrVal(t,n,i,s,o,u)},_defAttrChangeFn:function(e,t){var n=e._attrOpts;n&&delete e._attrOpts,this._setAttrVal(e.attrName,e.subAttrName,e.prevVal,e.newVal,n)?t||(e.newVal=this.get(e.attrName)):t||e.stopImmediatePropagation()}},e.mix(s,n,!1,null,1),e.AttributeObservable=s,e.AttributeEvents=s},"patched-v3.20.5",{requires:["event-custom"]}); 357 358YUI.add("attribute-extras",function(e,t){function o(){}var n="broadcast",r="published",i="initValue",s={readOnly:1,writeOnce:1,getter:1,broadcast:1};o.prototype={modifyAttr:function(e,t){var i=this,o,u;if(i.attrAdded(e)){i._isLazyAttr(e)&&i._addLazyAttr(e),u=i._state;for(o in t)s[o]&&t.hasOwnProperty(o)&&(u.add(e,o,t[o]),o===n&&u.remove(e,r))}},removeAttr:function(e){this._state.removeAll(e)},reset:function(t){var n=this;return t?(n._isLazyAttr(t)&&n._addLazyAttr(t),n.set(t,n._state.get(t,i))):e.Object.each(n._state.data,function(e,t){n.reset(t)}),n},_getAttrCfg:function(t){var n,r=this._state;return t?n=r.getAll(t)||{}:(n={},e.each(r.data,function(e,t){n[t]=r.getAll(t)})),n}},e.AttributeExtras=o},"patched-v3.20.5",{requires:["oop"]}); 359 360YUI.add("event-custom-base",function(e,t){e.Env.evt={handles:{},plugins:{}};var n=0,r=1,i={objs:null,before:function(t,r,i,s){var o=t,u;return s&&(u=[t,s].concat(e.Array(arguments,4,!0)),o=e.rbind.apply(e,u)),this._inject(n,o,r,i)},after:function(t,n,i,s){var o=t,u;return s&&(u=[t,s].concat(e.Array(arguments,4,!0)),o=e.rbind.apply(e,u)),this._inject(r,o,n,i)},_inject:function(t,n,r,i){var s=e.stamp(r),o,u;return r._yuiaop||(r._yuiaop={}),o=r._yuiaop,o[i]||(o[i]=new e.Do.Method(r,i),r[i]=function(){return o[i].exec.apply(o[i],arguments)}),u=s+e.stamp(n)+i,o[i].register(u,n,t),new e.EventHandle(o[i],u)},detach:function(e){e.detach&&e.detach()}};e.Do=i,i.Method=function(e,t){this.obj=e,this.methodName=t,this.method=e[t],this.before={},this.after={}},i.Method.prototype.register=function(e,t,n){n?this.after[e]=t:this.before[e]=t},i.Method.prototype._delete=function(e){delete this.before[e],delete this.after[e]},i.Method.prototype.exec=function(){var t=e.Array(arguments,0,!0),n,r,s,o=this.before,u=this.after,a=!1;for(n in o)if(o.hasOwnProperty(n)){r=o[n].apply(this.obj,t);
360if(r)switch(r.constructor){case i.Halt:return r.retVal;case i.AlterArgs:t=r.newArgs;break;case i.Prevent:a=!0;break;default:}}a||(r=this.method.apply(this.obj,t)),i.originalRetVal=r,i.currentRetVal=r;for(n in u)if(u.hasOwnProperty(n)){s=u[n].apply(this.obj,t);if(s&&s.constructor===i.Halt)return s.retVal;s&&s.constructor===i.AlterReturn&&(r=s.newRetVal,i.currentRetVal=r)}return r},i.AlterArgs=function(e,t){this.msg=e,this.newArgs=t},i.AlterReturn=function(e,t){this.msg=e,this.newRetVal=t},i.Halt=function(e,t){this.msg=e,this.retVal=t},i.Prevent=function(e){this.msg=e},i.Error=i.Halt;var s=e.Array,o="after",u=["broadcast","monitored","bubbles","context","contextFn","currentTarget","defaultFn","defaultTargetOnly","details","emitFacade","fireOnce","async","host","preventable","preventedFn","queuable","silent","stoppedFn","target","type"],a=s.hash(u),f=Array.prototype.slice,l=9,c="yui:log",h=function(e,t,n){var r;for(r in t)a[r]&&(n||!(r in e))&&(e[r]=t[r]);return e};e.CustomEvent=function(t,n){this._kds=e.CustomEvent.keepDeprecatedSubs,this.id=e.guid(),this.type=t,this.silent=this.logSystem=t===c,this._kds&&(this.subscribers={},this.afters={}),n&&h(this,n,!0)},e.CustomEvent.keepDeprecatedSubs=!1,e.CustomEvent.mixConfigs=h,e.CustomEvent.prototype={constructor:e.CustomEvent,signature:l,context:e,preventable:!0,bubbles:!0,hasSubs:function(e){var t=0,n=0,r=this._subscribers,i=this._afters,s=this.sibling;return r&&(t=r.length),i&&(n=i.length),s&&(r=s._subscribers,i=s._afters,r&&(t+=r.length),i&&(n+=i.length)),e?e==="after"?n:t:t+n},monitor:function(e){this.monitored=!0;var t=this.id+"|"+this.type+"_"+e,n=f.call(arguments,0);return n[0]=t,this.host.on.apply(this.host,n)},getSubs:function(){var e=this.sibling,t=this._subscribers,n=this._afters,r,i;return e&&(r=e._subscribers,i=e._afters),r?t?t=t.concat(r):t=r.concat():t?t=t.concat():t=[],i?n?n=n.concat(i):n=i.concat():n?n=n.concat():n=[],[t,n]},applyConfig:function(e,t){h(this,e,t)},_on:function(t,n,r,i){var s=new e.Subscriber(t,n,r,i),u;return this.fireOnce&&this.fired&&(u=this.firedWith,this.emitFacade&&this._addFacadeToArgs&&this._addFacadeToArgs(u),this.async?setTimeout(e.bind(this._notify,this,s,u),0):this._notify(s,u)),i===o?(this._afters||(this._afters=[]),this._afters.push(s)):(this._subscribers||(this._subscribers=[]),this._subscribers.push(s)),this._kds&&(i===o?this.afters[s.id]=s:this.subscribers[s.id]=s),new e.EventHandle(this,s)},subscribe:function(e,t){var n=arguments.length>2?f.call(arguments,2):null;return this._on(e,t,n,!0)},on:function(e,t){var n=arguments.length>2?f.call(arguments,2):null;return this.monitored&&this.host&&this.host._monitor("attach",this,{args:arguments}),this._on(e,t,n,!0)},after:function(e,t){var n=arguments.length>2?f.call(arguments,2):null;return this._on(e,t,n,o)},detach:function(e,t){if(e&&e.detach)return e.detach();var n,r,i=0,s=this._subscribers,o=this._afters;if(s)for(n=s.length;n>=0;n--)r=s[n],r&&(!e||e===r.fn)&&(this._delete(r,s,n),i++);if(o)for(n=o.length;n>=0;n--)r=o[n],r&&(!e||e===r.fn)&&(this._delete(r,o,n),i++);return i},unsubscribe:function(){return this.detach.apply(this,arguments)},_notify:function(e,t,n){var r;return r=e.notify(t,this),!1===r||this.stopped>1?!1:!0},log:function(e,t){},fire:function(){var e=[];return e.push.apply(e,arguments),this._fire(e)},_fire:function(e){return this.fireOnce&&this.fired?!0:(this.fired=!0,this.fireOnce&&(this.firedWith=e),this.emitFacade?this.fireComplex(e):this.fireSimple(e))},fireSimple:function(e){this.stopped=0,this.prevented=0;if(this.hasSubs()){var t=this.getSubs();this._procSubs(t[0],e),this._procSubs(t[1],e)}return this.broadcast&&this._broadcast(e),this.stopped?!1:!0},fireComplex:function(e){return e[0]=e[0]||{},this.fireSimple(e)},_procSubs:function(e,t,n){var r,i,s;for(i=0,s=e.length;i<s;i++){r=e[i];if(r&&r.fn){!1===this._notify(r,t,n)&&(this.stopped=2);if(this.stopped===2)return!1}}return!0},_broadcast:function(t){if(!this.stopped&&this.broadcast){var n=t.concat();n.unshift(this.type),this.host!==e&&e.fire.apply(e,n),this.broadcast===2&&e.Global.fire.apply(e.Global,n)}},unsubscribeAll:function(){return this.detachAll.apply(this,arguments)},detachAll:function(){return this.detach()},_delete:function(e,t,n){var r=e._when;t||(t=r===o?this._afters:this._subscribers),t&&(n=s.indexOf(t,e,0),e&&t[n]===e&&t.splice(n,1)),this._k
360ds&&(r===o?delete this.afters[e.id]:delete this.subscribers[e.id]),this.monitored&&this.host&&this.host._monitor("detach",this,{ce:this,sub:e}),e&&(e.deleted=!0)}},e.Subscriber=function(t,n,r,i){this.fn=t,this.context=n,this.id=e.guid(),this.args=r,this._when=i},e.Subscriber.prototype={constructor:e.Subscriber,_notify:function(e,t,n){if(this.deleted&&!this.postponed){if(!this.postponed)return delete this.postponed,null;delete this.fn,delete this.context}var r=this.args,i;switch(n.signature){case 0:i=this.fn.call(e,n.type,t,e);break;case 1:i=this.fn.call(e,t[0]||null,e);break; 361default:r||t?(t=t||[],r=r?t.concat(r):t,i=this.fn.apply(e,r)):i=this.fn.call(e)}return this.once&&n._delete(this),i},notify:function(t,n){var r=this.context,i=!0;r||(r=n.contextFn?n.contextFn():n.context);if(e.config&&e.config.throwFail)i=this._notify(r,t,n);else try{i=this._notify(r,t,n)}catch(s){e.error(this+" failed: "+s.message,s)}return i},contains:function(e,t){return t?this.fn===e&&this.context===t:this.fn===e},valueOf:function(){return this.id}},e.EventHandle=function(e,t){this.evt=e,this.sub=t},e.EventHandle.prototype={batch:function(t,n){t.call(n||this,this),e.Lang.isArray(this.evt)&&e.Array.each(this.evt,function(e){e.batch.call(n||e,t)})},detach:function(){var t=this.evt,n=0,r;if(t)if(e.Lang.isArray(t))for(r=0;r<t.length;r++)n+=t[r].detach();else t._delete(this.sub),n=1;return n},monitor:function(e){return this.evt.monitor.apply(this.evt,arguments)}};var p=e.Lang,d=":",v="|",m="~AFTER~",g=/(.*?)(:)(.*?)/,y=e.cached(function(e){return e.replace(g,"*$2$3")}),b=function(e,t){return!t||typeof e!="string"||e.indexOf(d)>-1?e:t+d+e},w=e.cached(function(e,t){var n=e,r,i,s;return p.isString(n)?(s=n.indexOf(m),s>-1&&(i=!0,n=n.substr(m.length)),s=n.indexOf(v),s>-1&&(r=n.substr(0,s),n=n.substr(s+1),n==="*"&&(n=null)),[r,t?b(n,t):n,i,n]):n}),E=function(t){var n=this._yuievt,r;n||(n=this._yuievt={events:{},targets:null,config:{host:this,context:this},chain:e.config.chain}),r=n.config,t&&(h(r,t,!0),t.chain!==undefined&&(n.chain=t.chain),t.prefix&&(r.prefix=t.prefix))};E.prototype={constructor:E,once:function(){var e=this.on.apply(this,arguments);return e.batch(function(e){e.sub&&(e.sub.once=!0)}),e},onceAfter:function(){var e=this.after.apply(this,arguments);return e.batch(function(e){e.sub&&(e.sub.once=!0)}),e},parseType:function(e,t){return w(e,t||this._yuievt.config.prefix)},on:function(t,n,r){var i=this._yuievt,s=w(t,i.config.prefix),o,u,a,l,c,h,d,v=e.Env.evt.handles,g,y,b,E=e.Node,S,x,T;this._monitor("attach",s[1],{args:arguments,category:s[0],after:s[2]});if(p.isObject(t))return p.isFunction(t)?e.Do.before.apply(e.Do,arguments):(o=n,u=r,a=f.call(arguments,0),l=[],p.isArray(t)&&(T=!0),g=t._after,delete t._after,e.each(t,function(e,t){p.isObject(e)&&(o=e.fn||(p.isFunction(e)?e:o),u=e.context||u);var n=g?m:"";a[0]=n+(T?e:t),a[1]=o,a[2]=u,l.push(this.on.apply(this,a))},this),i.chain?this:new e.EventHandle(l));h=s[0],g=s[2],b=s[3];if(E&&e.instanceOf(this,E)&&b in E.DOM_EVENTS)return a=f.call(arguments,0),a.splice(2,0,E.getDOMNode(this)),e.on.apply(e,a);t=s[1];if(e.instanceOf(this,YUI)){y=e.Env.evt.plugins[t],a=f.call(arguments,0),a[0]=b,E&&(S=a[2],e.instanceOf(S,e.NodeList)?S=e.NodeList.getDOMNodes(S):e.instanceOf(S,E)&&(S=E.getDOMNode(S)),x=b in E.DOM_EVENTS,x&&(a[2]=S));if(y)d=y.on.apply(e,a);else if(!t||x)d=e.Event._attach(a)}return d||(c=i.events[t]||this.publish(t),d=c._on(n,r,arguments.length>3?f.call(arguments,3):null,g?"after":!0),t.indexOf("*:")!==-1&&(this._hasSiblings=!0)),h&&(v[h]=v[h]||{},v[h][t]=v[h][t]||[],v[h][t].push(d)),i.chain?this:d},subscribe:function(){return this.on.apply(this,arguments)},detach:function(t,n,r){var i=this._yuievt.events,s,o=e.Node,u=o&&e.instanceOf(this,o);if(!t&&this!==e){for(s in i)i.hasOwnProperty(s)&&i[s].detach(n,r);return u&&e.Event.purgeElement(o.getDOMNode(this)),this}var a=w(t,this._yuievt.config.prefix),l=p.isArray(a)?a[0]:null,c=a?a[3]:null,h,d=e.Env.evt.handles,v,m,g,y,b=function(e,t,n){var r=e[t],i,s;if(r)for(s=r.length-1;s>=0;--s)i=r[s].evt,(i.host===n||i.el===n)&&r[s].detach()};if(l){m=d[l],t=a[1],v=u?e.Node.getDOMNode(this):this;if(m){if(t)b(m,t,v);else for(s in m)m.hasOwnProperty(s)&&b(m,s,v);return this}}else{if(p.isObject(t)&&t.detach)return t.detach(),this;if(u&&(!c||c in o.DOM_EVENTS))return g=f.call(arguments,0),g[2]=o.getDOMNode(this),e.detach.apply(e,g),this}h=e.Env.evt.plugins[c];if(e.instanceOf(this,YUI)){g=f.call(arguments,0);if(h&&h.detach)return h.detach.apply(e,g),this;if(!t||!h&&o&&t in o.DOM_EVENTS)return g[0]=t,e.Event.detach.apply(e.Event,g),this}return y=i[a[1]],y&&y.detach(n,r),this},unsubscribe:function(){return this.detach.apply(this,arguments)},detachAll:function(e){return this.detach(e)},unsubscribeAll:function(){return this.detachAll.apply(this,arguments)},publish:function(t,n){var r,i=this._yuievt,s=i.config,o=s.prefix;return typeof t=="string"?(o&&(t=b(t,o)),r=this._publish(t,s,n)):(r={},e.each(t,function(e,t){o&&(t=b(t,o)),r[t]=this._publish(t,s,e||n)},this)),r},_getFullType:function(e){var t=this._yuievt.config.prefix;return t?t+d+e:e},_publish:function(t,n,r){var i,s=this._yuievt,o=s.config,u=o.host,a=o.context,f
361=s.events;return i=f[t],(o.monitored&&!i||i&&i.monitored)&&this._monitor("publish",t,{args:arguments}),i||(i=f[t]=new e.CustomEvent(t,n),n||(i.host=u,i.context=a)),r&&h(i,r,!0),i},_monitor:function(e,t,n){var r,i,s;if(t){typeof t=="string"?(s=t,i=this.getEvent(t,!0)):(i=t,s=t.type);if(this._yuievt.config.monitored&&(!i||i.monitored)||i&&i.monitored)r=s+"_"+e,n.monitored=e,this.fire.call(this,r,n)}},fire:function(e){var t=typeof e=="string",n=arguments.length,r=e,i=this._yuievt,s=i.config,o=s.prefix,u,a,l,c;t&&n<=3?n===2?c=[arguments[1]]:n===3?c=[arguments[1],arguments[2]]:c=[]:c=f.call(arguments,t?1:0),t||(r=e&&e.type),o&&(r=b(r,o)),a=i.events[r],this._hasSiblings&&(l=this.getSibling(r,a),l&&!a&&(a=this.publish(r))),(s.monitored&&(!a||a.monitored)||a&&a.monitored)&&this._monitor("fire",a||r,{args:c});if(!a){if(i.hasTargets)return this.bubble({type:r},c,this);u=!0}else l&&(a.sibling=l),u=a._fire(c);return i.chain?this:u},getSibling:function(e,t){var n;return e.indexOf(d)>-1&&(e=y(e),n=this.getEvent(e,!0),n&&(n.applyConfig(t),n.bubbles=!1,n.broadcast=0)),n},getEvent:function(e,t){var n,r;return t||(n=this._yuievt.config.prefix,e=n?b(e,n):e),r=this._yuievt.events,r[e]||null},after:function(t,n){var r=f.call(arguments,0);switch(p.type(t)){case"function":return e.Do.after.apply(e.Do,arguments);case"array":case"object":r[0]._after=!0;break;default:r[0]=m+t}return this.on.apply(this,r)},before:function(){ 362return this.on.apply(this,arguments)}},e.EventTarget=E,e.mix(e,E.prototype),E.call(e,{bubbles:!1}),YUI.Env.globalEvents=YUI.Env.globalEvents||new E,e.Global=YUI.Env.globalEvents},"patched-v3.20.5",{requires:["oop"]}); 363 364YUI.add("event-custom-complex",function(e,t){var n,r,i=e.Object,s,o={},u=e.CustomEvent.prototype,a=e.EventTarget.prototype,f=function(e,t){var n;for(n in t)r.hasOwnProperty(n)||(e[n]=t[n])};e.EventFacade=function(e,t){e||(e=o),this._event=e,this.details=e.details,this.type=e.type,this._type=e.type,this.target=e.target,this.currentTarget=t,this.relatedTarget=e.relatedTarget},e.mix(e.EventFacade.prototype,{stopPropagation:function(){this._event.stopPropagation(),this.stopped=1},stopImmediatePropagation:function(){this._event.stopImmediatePropagation(),this.stopped=2},preventDefault:function(){this._event.preventDefault(),this.prevented=1},halt:function(e){this._event.halt(e),this.prevented=1,this.stopped=e?2:1}}),u.fireComplex=function(t){var n,r,i,s,o,u=!0,a,f,l,c,h,p,d,v,m,g=this,y=g.host||g,b,w,E=g.stack,S=y._yuievt,x;if(E&&g.queuable&&g.type!==E.next.type)return E.queue||(E.queue=[]),E.queue.push([g,t]),!0;x=g.hasSubs()||S.hasTargets||g.broadcast,g.target=g.target||y,g.currentTarget=y,g.details=t.concat();if(x){n=E||{id:g.id,next:g,silent:g.silent,stopped:0,prevented:0,bubbling:null,type:g.type,defaultTargetOnly:g.defaultTargetOnly},f=g.getSubs(),l=f[0],c=f[1],g.stopped=g.type!==n.type?0:n.stopped,g.prevented=g.type!==n.type?0:n.prevented,g.stoppedFn&&(a=new e.EventTarget({fireOnce:!0,context:y}),g.events=a,a.on("stopped",g.stoppedFn)),g._facade=null,r=g._createFacade(t),l&&g._procSubs(l,t,r),g.bubbles&&y.bubble&&!g.stopped&&(w=n.bubbling,n.bubbling=g.type,n.type!==g.type&&(n.stopped=0,n.prevented=0),u=y.bubble(g,t,null,n),g.stopped=Math.max(g.stopped,n.stopped),g.prevented=Math.max(g.prevented,n.prevented),n.bubbling=w),d=g.prevented,d?(v=g.preventedFn,v&&v.apply(y,t)):(m=g.defaultFn,m&&(!g.defaultTargetOnly&&!n.defaultTargetOnly||y===r.target)&&m.apply(y,t)),g.broadcast&&g._broadcast(t);if(c&&!g.prevented&&g.stopped<2){h=n.afterQueue;if(n.id===g.id||g.type!==S.bubbling){g._procSubs(c,t,r);if(h)while(b=h.last())b()}else p=c,n.execDefaultCnt&&(p=e.merge(p),e.each(p,function(e){e.postponed=!0})),h||(n.afterQueue=new e.Queue),n.afterQueue.add(function(){g._procSubs(p,t,r)})}g.target=null;if(n.id===g.id){s=n.queue;if(s)while(s.length)i=s.pop(),o=i[0],n.next=o,o._fire(i[1]);g.stack=null}u=!g.stopped,g.type!==S.bubbling&&(n.stopped=0,n.prevented=0,g.stopped=0,g.prevented=0)}else m=g.defaultFn,m&&(r=g._createFacade(t),(!g.defaultTargetOnly||y===r.target)&&m.apply(y,t));return g._facade=null,u},u._hasPotentialSubscribers=function(){return this.hasSubs()||this.host._yuievt.hasTargets||this.broadcast},u._createFacade=u._getFacade=function(t){var n=this.details,r=n&&n[0],i=r&&typeof r=="object",s=this._facade;return s||(s=new e.EventFacade(this,this.currentTarget)),i?(f(s,r),r.type&&(s.type=r.type),t&&(t[0]=s)):t&&t.unshift(s),s.details=this.details,s.target=this.originalTarget||this.target,s.currentTarget=this.currentTarget,s.stopped=0,s.prevented=0,this._facade=s,this._facade},u._addFacadeToArgs=function(e){var t=e[0];t&&t.halt&&t.stopImmediatePropagation&&t.stopPropagation&&t._event||this._createFacade(e)},u.stopPropagation=function(){this.stopped=1,this.stack&&(this.stack.stopped=1),this.events&&this.events.fire("stopped",this)},u.stopImmediatePropagation=function(){this.stopped=2,this.stack&&(this.stack.stopped=2),this.events&&this.events.fire("stopped",this)},u.preventDefault=function(){this.preventable&&(this.prevented=1,this.stack&&(this.stack.prevented=1))},u.halt=function(e){e?this.stopImmediatePropagation():this.stopPropagation(),this.preventDefault()},a.addTarget=function(t){var n=this._yuievt;return n.targets||(n.targets={}),n.targets[e.stamp(t)]=t,n.hasTargets=!0,this},a.getTargets=function(){var e=this._yuievt.targets;return e?i.values(e):[]},a.removeTarget=function(t){var n=this._yuievt.targets;return n&&(delete n[e.stamp(t,!0)],i.size(n)===0&&(this._yuievt.hasTargets=!1)),this},a.bubble=function(e,t,n,r){var i=this._yuievt.targets,s=!0,o,u,a,f,l,c=e&&e.type,h=n||e&&e.target||this,p;if(!e||!e.stopped&&i)for(a in i)if(i.hasOwnProperty(a)){o=i[a],u=o._yuievt.events[c],o._hasSiblings&&(l=o.getSibling(c,u)),l&&!u&&(u=o.publish(c)),p=o._yuievt.bubbling,o._yuievt.bubbling=c;if(!u)o._yuievt.hasTargets&&o.bubble(e,t,h,r);else{l&&(u.sibling=l),u.target=h,u.originalTarget=h,u.currentTarget=o,f=u.broadcast,u.broadcast=!1,u.emitFacade=!0,u.stack=r,s=s&&u.fire.apply(u,t||e.details||[]),u.broadcast=f,u.originalTarget=null;if(u.stopped)break}o._yuievt.bubbling=p}return s},a._hasPotentialSubscribers=function(e){var t=this._yuievt,n=t.events[e];return n?n.hasSubs()||t.hasTargets||n.broadcast:!1},n=new e.EventFacade,r={};for(s in n)r[s]=!0},"patched-v3.20.5",{requires:["event-custom-base"]}); 365 366YUI.add("oop",function(e,t){function a(t,n,i,s,o){if(t&&t[o]&&t!==e)return t[o].c
366all(t,n,i);switch(r.test(t)){case 1:return r[o](t,n,i);case 2:return r[o](e.Array(t,0,!0),n,i);default:return e.Object[o](t,n,i,s)}}var n=e.Lang,r=e.Array,i=Object.prototype,s="_~yuim~_",o=i.hasOwnProperty,u=i.toString;e.augment=function(t,n,r,i,s){var a=t.prototype,f=a&&n,l=n.prototype,c=a||t,h,p,d,v,m;return s=s?e.Array(s):[],f&&(p={},d={},v={},h=function(e,t){if(r||!(t in a))u.call(e)==="[object Function]"?(v[t]=e,p[t]=d[t]=function(){return m(this,e,arguments)}):p[t]=e},m=function(e,t,r){for(var i in v)o.call(v,i)&&e[i]===d[i]&&(e[i]=v[i]);return n.apply(e,s),t.apply(e,r)},i?e.Array.each(i,function(e){e in l&&h(l[e],e)}):e.Object.each(l,h,null,!0)),e.mix(c,p||l,r,i),f||n.apply(c,s),t},e.aggregate=function(t,n,r,i){return e.mix(t,n,r,i,0,!0)},e.extend=function(t,n,r,s){(!n||!t)&&e.error("extend failed, verify dependencies");var o=n.prototype,u=e.Object(o);return t.prototype=u,u.constructor=t,t.superclass=o,n!=Object&&o.constructor==i.constructor&&(o.constructor=n),r&&e.mix(u,r,!0),s&&e.mix(t,s,!0),t},e.each=function(e,t,n,r){return a(e,t,n,r,"each")},e.some=function(e,t,n,r){return a(e,t,n,r,"some")},e.clone=function(t,r,i,o,u,a){var f,l,c;if(!n.isObject(t)||e.instanceOf(t,YUI)||t.addEventListener||t.attachEvent)return t;l=a||{};switch(n.type(t)){case"date":return new Date(t);case"regexp":return t;case"function":return t;case"array":f=[];break;default:if(t[s])return l[t[s]];c=e.guid(),f=r?{}:e.Object(t),t[s]=c,l[c]=t}return e.each(t,function(n,a){(a||a===0)&&(!i||i.call(o||this,n,a,this,t)!==!1)&&a!==s&&a!="prototype"&&(this[a]=e.clone(n,r,i,o,u||t,l))},f),a||(e.Object.each(l,function(e,t){if(e[s])try{delete e[s]}catch(n){e[s]=null}},this),l=null),f},e.bind=function(t,r){var i=arguments.length>2?e.Array(arguments,2,!0):null;return function(){var s=n.isString(t)?r[t]:t,o=i?i.concat(e.Array(arguments,0,!0)):arguments;return s.apply(r||s,o)}},e.rbind=function(t,r){var i=arguments.length>2?e.Array(arguments,2,!0):null;return function(){var s=n.isString(t)?r[t]:t,o=i?e.Array(arguments,0,!0).concat(i):arguments;return s.apply(r||s,o)}}},"patched-v3.20.5",{requires:["yui-base"]}); 367 368YUI.add("aui-base-lang",function(e,t){(function(){var t=e.Lang,n=e.Array,r=e.Object,i=t.isArray,s=t.isNumber,o=t.isString,u=t.isUndefined,a=r.owns;e.fn=function(e,t,r){var i,u;if(!s(e)){var a=arguments;a.length>2&&(a=n(a,2,!0)),u=o(e)&&t,i=function(){var n=u?t[e]:e;return n.apply(t||e,a)}}else{var f=e;e=t,t=r,u=o(e)&&t,i=function(){var r=u?t[e]:e,i;return t=t||r,f>0?i=r.apply(t,n(arguments,0,!0).slice(0,f)):i=r.call(t),i}}return i},e.mix(t,{constrain:function(e,t,n){return Math.min(Math.max(e,t),n)},emptyFn:function(){},emptyFnFalse:function(){return!1},emptyFnTrue:function(){return!0},isGuid:function(t){return String(t).indexOf(e.Env._guidp)===0},isInteger:function(e){return typeof e=="number"&&isFinite(e)&&e>-9007199254740992&&e<9007199254740992&&Math.floor(e)===e},isNode:function(t){return e.instanceOf(t,e.Node)},isNodeList:function(t){return e.instanceOf(t,e.NodeList)},toFloat:function(e,t){return parseFloat(e)||t||0},toInt:function(e,t,n){return parseInt(e,t||10)||n||0}}),e.mix(n,{remove:function(e,t,n){var r=e.slice((n||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,r)},removeItem:function(e,t){var r=n.indexOf(e,t);return r>-1?n.remove(e,r):e}});var f=e.namespace("Lang.String"),l=e.config.doc,c=/-([a-z])/gi,h=/([.*+?^$(){}|[\]\/\\])/g,p=/\r?\n/g,d=/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/gi,v=/<\/?[^>]+>/gi,m=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,g=/([a-z])([A-Z])/g,y="...",b=[],w={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},E,S={};for(E in w)if(w.hasOwnProperty(E)){var x=w[E];S[x]=E,b.push(E)}var T=new RegExp("["+b.join("")+"]","g"),N=/&([^;]+);/g;e.mix(f,{camelize:e.cached(function(e,t){var n=c;return e=String(e),t&&(n=new RegExp(t+"([a-z])","gi")),e.replace(n,f._camelize)}),capitalize:e.cached(function(e){return e&&(e=String(e),e=e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()),e}),contains:function(e,t){return e.indexOf(t)!==-1},defaultValue:function(e,t){if(u(e)||e==="")u(t)&&(t=""),e=t;return e},endsWith:function(e,t){var n=e.length-t.length;return n>=0&&e.indexOf(t,n)===n},escapeHTML:function(e){return e.replace(T,f._escapeHTML)},escapeRegEx:function(e){return e.replace(h,"\\$1")},nl2br:function(e){return String(e).replace(p,"<br />")},padNumber:function(e,t,n){var r=n?Number(e).toFixed(n):String(e),i=r.indexOf(".");return i===-1&&(i=r.length),f.repeat("0",Math.max(0,t-i))+r},pluralize:function(e,t,n){var r;return e===1?r=t:r=n||t+"s",e+" "+r},prefix:function(e,t){return t=String(t),t.indexOf(e)!==0&&(t=e+t),t},remove:function(e,t,n){var r=new RegExp(f.escapeRegEx(t),n?"g":"");return e.replace(r,"")},removeAll:function(e,t){return f.remove(e,t,!0)},repeat:function(e,t){return(new Array(t+1)).join(e)}
368,round:function(e,t){return e=Number(e),s(t)&&(t=Math.pow(10,t),e=Math.round(e*t)/t),e},startsWith:function(e,t){return e.lastIndexOf(t,0)===0},stripScripts:function(e){return e&&(e=String(e).replace(d,"")),e},stripTags:function(e){return e&&(e=String(e).replace(v,"")),e},substr:function(e,t,n){return String(e).substr(t,n)},uncamelize:e.cached(function(e,t){return t=t||" ",e=String(e),e=e.replace(m,"$1"+t+"$2$3"),e=e.replace(g,"$1"+t+"$2"),e}),toLowerCase:function(e){return String(e).toLowerCase()},toUpperCase:function(e){return String(e).toUpperCase()},trim:t.trim,truncate:function(e,t,n){e=String(e);var r=y.length,i=e.length;if(t>3){if(e&&i>t){n=n||"end";if(n==="end")e=e.substr(0,t-r)+y;else if(n==="middle"){var s=Math.floor((t-r)/2),o=s;t%2===0&&(s=Math.ceil((t-r)/2),o=Math.floor((t-r)/2)),e=e.substr(0,s)+y+e.substr(i-o)}else n==="start"&&(e=y+e.substr(i-t+r))}}else e=y;return e},undef:function(e){return u(e)&&(e=""),e},unescapeEntities:function(e){return f.contains(e,"&")&&(l&&!f.contains(e,"<")?e=f._unescapeEntitiesUsingDom(e):e=f.unescapeHTML(e)),e},unescapeHTML:function(e){return e.replace(N,f._unescapeHTML)},_camelize:function(e,t){return t.toUpperCase()},_escapeHTML:function(e){return w[e]},_unescapeHTML:function(e,t){var n=S[e]||e;if(!n&&t.charAt(0)==="#"){var r=Number("0"+n.substr(1));isNaN(r)||(n=String.fromCharCode(r))}return n},_unescapeEntitiesUsingDom:function(e){var t=l.createElement("a");return t.innerHTML=e,t.normalize&&t.normalize(),e=t.firstChild.nodeValue,t.innerHTML="",e}}),r.map=function(e,t,n){var r=[],i;for(i in e)a(e,i)&&(r[r.length]=t.call(n,e[i],i,e));return r},e.map=function(e){var t=r;return i(e)&&(t=n),t.map.apply(this,arguments)}})()},"3.1.0-deprecated.124"); 369 370/** 371 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 372 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 373 */ 374 375(function () { 376 const A = AUI().use('oop'); 377 378 const usedModules = {}; 379 380 const Dependency = { 381 _getAOP(object, methodName) { 382 return object._yuiaop && object._yuiaop[methodName]; 383 }, 384 385 _proxy(object, methodName, methodFn, context, guid, modules, _A) { 386 let args; 387 388 const queue = Dependency._proxyLoaders[guid]; 389 390 Dependency._replaceMethod(object, methodName, methodFn, context); 391 392 while ((args = queue.next())) { 393 methodFn.apply(context, args); 394 } 395 396 for (let i = modules.length - 1; i >= 0; i--) { 397 usedModules[modules[i]] = true; 398 } 399 }, 400 401 _proxyLoaders: {}, 402 403 _replaceMethod(object, methodName, methodFn) { 404 const AOP = Dependency._getAOP(object, methodName); 405 406 let proxy = object[methodName]; 407 408 if (AOP) { 409 proxy = AOP.method; 410 411 AOP.method = methodFn; 412 } 413 else { 414 object[methodName] = methodFn; 415 } 416 417 A.mix(methodFn, proxy); 418 }, 419 420 provide(object, methodName, methodFn, modules, proto) { 421 if (!Array.isArray(modules)) { 422 modules = [modules]; 423 } 424 425 let before; 426 427 const guid = A.guid(); 428 429 if (A.Lang.isObject(methodFn, true)) { 430 const config = methodFn; 431 432 methodFn = config.fn; 433 before = config.before; 434 435 if (!A.Lang.isFunction(before)) { 436 before = null; 437 } 438 } 439 440 if (proto && A.Lang.isFunction(object)) { 441 object = object.prototype; 442 } 443 444 const AOP = Dependency._getAOP(object, methodName); 445 446 if (AOP) { 447 delete object._yuiaop[methodName]; 448 } 449 450 const proxy = function () { 451 const args = arguments; 452 453 let context = object; 454 455 if (proto) { 456 context = this; 457 } 458 459 if (modules.length === 1) { 460 if (modules[0] in usedModules) { 461 Dependency._replaceMethod( 462 object, 463 methodName, 464 methodFn, 465 context 466 ); 467 468 methodFn.apply(context, args); 469 470 return; 471 } 472 } 473 474 let firstLoad = false; 475 476 let queue = Dependency._proxyLoaders[guid]; 477 478 if (!queue) { 479 firstLoad = true; 480 481 Dependency._proxyLoaders[guid] = new A.Queue(); 482 483 queue = Dependency._proxyLoaders[guid]; 484 } 485 486 queue.add(args); 487 488 if (firstLoad) { 489 modules.push( 490 A.bind( 491 Dependency._proxy, 492 Liferay, 493 object, 494 methodName, 495 methodFn, 496 context, 497 guid, 498 modules 499 ) 500 ); 501 502 A.use.apply(A, modules); 503 } 504 }; 505 506 proxy.toString = function () { 507 return methodFn.toString(); 508 }; 509 510 object[methodName] = proxy; 511 }, 512 }; 513 514 Liferay.Dependency = Dependency; 515 516 Liferay.provide = Dependency.provide; 517})(); 518 519/* eslint-disable @liferay/aui/no-one */ 520 521/** 522 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 523 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 524 */ 525 526(function (A) { 527 A.use('aui-base-lang'); 528 529 const Lang = A.Lang; 530 531 const EVENT_CLICK = 'click'; 532 533 const SRC_HIDE_LINK = { 534 src: 'hideLink', 535 }; 536 537 const STR_RIGHT_SQUARE_BRACKET = ']'; 538 539 const Window = { 540 _map: {}, 541 542 getById(id) { 543 const instance = this; 544 545 return instance._map[id]; 546 }, 547 }; 548 549 const Util = { 550 _getEditableInstance(title) { 551 let editable = Util._EDITABLE; 552 553 if (!editable) { 554 editable = new A.Editable({ 555 after: { 556 contentTextChange(event) { 557 const instance = this; 558 559 if (!event.initial) { 560 const title = instance.get('node'); 561 562 const portletTitleEditOptions = title.getData( 563 'portletTitleEditOptions' 564 ); 565 566 Util.savePortletTitle({ 567 doAsUserId: 568 portletTitleEditOptions.doAsUserId, 569 plid: portletTitleEditOptions.plid, 570 portletId: 571 portletTitleEditOptions.portletId, 572 title: event.newVal, 573 }); 574 } 575 }, 576 startEditing() { 577 const instance = this; 578 579 const Layout = Liferay.Layout; 580 581 if (Layout) { 582 instance._dragListener = 583 Layout.getLayoutHandler().on( 584 'drag:start', 585 () => { 586 instance.fire('save'); 587 } 588 ); 589 } 590 591 const title = instance.get('node'); 592 593 instance._titleListener = title.on( 594 'mouseupoutside', 595 (event) => { 596 const editable = 597 Util._getEditableInstance(title); 598 599 if ( 600 !editable 601 .get('boundingBox') 602 .contains(event.target) 603 ) { 604 editable.save(); 605 } 606 } 607 ); 608 }, 609 stopEditing() { 610 const instance = this; 611 612 if (instance._dragListener) { 613 instance._dragListener.detach(); 614 } 615 616 if (instance._titleListener) { 617 instance._titleListener.detach(); 618 } 619 }, 620 }, 621 cssClass: 'lfr-portlet-title-editable', 622 node: title, 623 }); 624 625 editable.get('cancelButton').icon = 'times'; 626 editable.get('saveButton').icon = 'check'; 627 628 Util._EDITABLE = editable; 629 } 630 631 return editable; 632 }, 633 634 /** 635 * @deprecated As of Cavanaugh (7.4.x), with no direct replacement 636 */ 637 addInputCancel() { 638 A.use('aui-button-search-cancel', (A) => { 639 new A.ButtonSearchCancel({ 640 trigger: 641 'input[type=password], input[type=search], input.clearable, input.search-query', 642 }); 643 }); 644 645 Util.addInputCancel = function () {}; 646 }, 647 648 checkAll(form, name, allBox, selectClassName) { 649 if (form) { 650 form = Util.getDOM(form); 651 652 if (typeof form === 'string') { 653 form = document.querySelector(form); 654 } 655 656 allBox = Util.getDOM(allBox); 657 658 if (typeof allBox === 'string') { 659 allBox = document.querySelector(allBox); 660 } 661 662 let selector; 663 664 if (Array.isArray(name)) { 665 selector = 666 'input[name=' + 667 name.join('], input[name=') + 668 STR_RIGHT_SQUARE_BRACKET; 669 } 670 else { 671 selector = 'input[name=' + name + STR_RIGHT_SQUARE_BRACKET; 672 } 673 674 const allBoxChecked = allBox.checked; 675 676 const uploadedItems = Array.from( 677 form.querySelectorAll(selector) 678 ); 679
680 uploadedItems.forEach((item) => { 681 if (!item.disabled) { 682 item.checked = allBoxChecked; 683 } 684 }); 685 686 if (selectClassName) { 687 const selectItem = form.querySelector(selectClassName); 688 689 if (allBoxChecked) { 690 selectItem.classList.add('info'); 691 } 692 else { 693 selectItem.classList.remove('info'); 694 } 695 } 696 } 697 }, 698 699 checkAllBox(form, name, allBox) { 700 let totalOn = 0; 701 702 if (form) { 703 form = Util.getDOM(form); 704 705 if (typeof form === 'string') { 706 form = document.querySelector(form); 707 } 708 709 allBox = Util.getDOM(allBox); 710 711 if (typeof allBox === 'string') { 712 allBox = 713 document.querySelector(allBox) || 714 form.querySelector(`input[name="${allBox}"]`); 715 } 716 717 const inputs = Array.from( 718 form.querySelectorAll('input[type=checkbox]') 719 ); 720 721 if (!Array.isArray(name)) { 722 name = [name]; 723 } 724 725 let totalBoxes = 0; 726 727 inputs.forEach((input) => { 728 if ( 729 input.id !== allBox.id || 730 (input.id !== allBox.name && 731 name.indexOf(input.name) > -1) 732 ) { 733 totalBoxes++; 734 735 if (input.checked) { 736 totalOn++; 737 } 738 } 739 }); 740 741 allBox.checked = totalBoxes === totalOn; 742 } 743 744 return totalOn; 745 }, 746 747 /** 748 * @deprecated As of Cavanaugh (7.4.x), with no direct replacement 749 */ 750 checkTab(box) { 751 if (document.all && Number(window.event.keyCode) === 9) { 752 box.selection = document.selection.createRange(); 753 754 setTimeout(() => { 755 Util.processTab(box.id); 756 }, 0); 757 } 758 }, 759 760 /** 761 * @deprecated As of Cavanaugh (7.4.x), with no direct replacement 762 */ 763 disableElements(element) { 764 const currentElement = Util.getElement(element); 765 766 if (currentElement) { 767 const children = currentElement.getElementsByTagName('*'); 768 769 const emptyFnFalse = function () { 770 return false; 771 }; 772 773 for (let i = children.length - 1; i >= 0; i--) { 774 const item = children[i]; 775 776 item.style.cursor = 'default'; 777 778 item.onclick = emptyFnFalse; 779 item.onmouseover = emptyFnFalse; 780 item.onmouseout = emptyFnFalse; 781 item.onmouseenter = emptyFnFalse; 782 item.onmouseleave = emptyFnFalse; 783 784 item.action = ''; 785 item.disabled = true; 786 item.href = 'javascript:void(0);'; 787 item.onsubmit = emptyFnFalse; 788 } 789 } 790 }, 791 792 /** 793 * @deprecated As of Cavanaugh (7.4.x), with no direct replacement 794 */ 795 disableFormButtons(inputs, form) { 796 inputs.attr('disabled', true); 797 inputs.setStyle('opacity', 0.5); 798 799 if (A.UA.gecko) { 800 A.getWin().on('unload', () => { 801 inputs.attr('disabled', false); 802 }); 803 } 804 else if (A.UA.safari) { 805 A.use('node-event-html5', (A) => { 806 A.getWin().on('pagehide', () => { 807 Util.enableFormButtons(inputs, form); 808 }); 809 }); 810 } 811 }, 812 813 /** 814 * @deprecated As of Cavanaugh (7.4.x), replaced by `toggleDisabled` 815 */ 816 disableToggleBoxes(checkBoxId, toggleBoxId, checkDisabled) { 817 const checkBox = document.getElementById(checkBoxId); 818 const toggleBox = document.getElementById(toggleBoxId); 819 820 if (checkBox && toggleBox) { 821 toggleBox.disabled = checkDisabled && checkBox.checked; 822 823 checkBox.addEventListener(EVENT_CLICK, () => { 824 toggleBox.disabled = !toggleBox.disabled; 825 }); 826 } 827 }, 828 829 /** 830 * @deprecated As of Cavanaugh (7.4.x), with no direct replacement 831 */ 832 enableFormButtons(inputs) { 833 Util._submitLocked = null; 834 835 Util.toggleDisabled(inputs, false); 836 }, 837 838 /** 839 * @deprecated As of Athanasius (7.3.x), with no direct replacement 840 */ 841 escapeCDATA(str) { 842 return str.replace(/<!\[CDATA\[|\]\]>/gi, (match) => { 843 let str = ''; 844 845 if (match === ']]>') { 846 str = ']]>'; 847 } 848 else if (match === '<![CDATA[') { 849 str = '<![CDATA['; 850 } 851 852 return str; 853 }); 854 }, 855 856 /** 857 * @deprecated As of Cavanaugh (7.4.x), with no direct replacement 858 */ 859 forcePost(link) { 860 const currentElement = Util.getElement(link); 861 862 if (currentElement) { 863 const url = currentElement.getAttribute('href'); 864 865 // LPS-127302 866 867 if (url === 'javascript:void(0);') { 868 return; 869 } 870 871 const newWindow = 872 currentElement.getAttribute('target') === '_blank'; 873 874 const hrefFm = document.hrefFm; 875 876 if (newWindow) { 877 hrefFm.setAttribute('target', '_blank'); 878 } 879 880 submitForm(hrefFm, url, !newWindow); 881 882 Util._submitLocked = null; 883 } 884 }, 885 886 /** 887 * @deprecated As of Cavanaugh (7.4.x), with no direct replacement 888 */ 889 getAttributes(element, attributeGetter) { 890 let result = null; 891 892 if (element) { 893 element = Util.getDOM(element); 894 895 if (element.jquery) { 896 element = element[0]; 897 } 898 899 result = {}; 900 901 const getterFn = typeof attributeGetter === 'function'; 902 const getterString = typeof attributeGetter === 'string'; 903 904 const attrs = element.attributes; 905 let length = attrs.length; 906 907 while (length--) { 908 const attr = attrs[length]; 909 let name = attr.nodeName.toLowerCase(); 910 let value = attr.nodeValue; 911 912 if (getterString) { 913 if (name.indexOf(attributeGetter) === 0) { 914 name = name.substr(attributeGetter.length); 915 } 916 else { 917 continue; 918 } 919 } 920 else if (getterFn) { 921 value = attributeGetter(value, name, attrs); 922 923 if (value === false) { 924 continue; 925 } 926 } 927 928 result[name] = value; 929 } 930 } 931 932 return result; 933 }, 934 935 /** 936 * @deprecated As of Cavanaugh (7.4.x), with no direct replacement 937 */ 938 getColumnId(str) { 939 const columnId = str.replace(/layout-column_/, ''); 940 941 return columnId; 942 }, 943 944 /** 945 * @deprecated As of Cavanaugh (7.4.x), replaced by `window.name` 946 */ 947 getWindowName() { 948 return window.name || Window._name || ''; 949 }, 950 951 /** 952 * @deprecated As of Athanasius (7.3.x), replaced by `window.innerWidth` 953 */ 954 getWindowWidth() { 955 return window.innerWidth; 956 }, 957 958 /** 959 * @deprecated As of Athanasius (7.3.x), replaced by `typeof val === 'function'` 960 */ 961 isFunction(val) { 962 return typeof val === 'function'; 963 }, 964 965 /** 966 * @deprecated As of Cavanaugh (7.4.x), replaced by `get_checkboxes.js` 967 */ 968 listCheckboxesExcept(form, except, name, checked) { 969 form = Util.getDOM(form); 970 971 if (typeof form === 'string') { 972 form = document.querySelector(form); 973 } 974 975 let selector = 'input[type=checkbox]'; 976 977 if (name) { 978 selector += '[name=' + name + ']'; 979 } 980 981 const checkboxes = Array.from(form.querySelectorAll(selector)); 982 983 return checkboxes 984 .reduce((prev, item) => { 985 const value = item.value; 986 987 if ( 988 value && 989 item.name !== except && 990 item.checked === checked && 991 !item.disabled 992 ) { 993 prev.push(value); 994 } 995 996 return prev; 997 }, []) 998 .join(); 999 }, 1000 1001 /** 1002 * @deprecated As of Cavanaugh (7.4.x), replaced by `import {getCheckedCheckboxes} from 'frontend-js-web';` 1003 */ 1004 listCheckedExcept(form, except, name) { 1005 return Util.listCheckboxesExcept(form, except, name, true); 1006 }, 1007 1008 /** 1009 * @deprecated As of Cavanaugh (7.4.x), replaced by `import {getSelectedOptionValues} from 'frontend-js-web';` 1010 */ 1011 listSelect(select, delimeter) { 1012 select = Util.getElement(select); 1013 1014 return Array.from(select.querySelectorAll('option')) 1015 .reduce((prev, item) => { 1016 const val = item.value; 1017 1018 if (val) { 1019 prev.push(val); 1020 } 1021 1022 return prev; 1023 }, []) 1024 .join(delimeter || ','); 1025 }, 1026 1027 /** 1028 * @deprecated As of Cavanaugh (7.4.x), replaced by `import {getUncheckedCheckboxes} from 'frontend-js-web';` 1029 */ 1030 listUncheckedExcept(form, except, name) { 1031 return Util.listCheckboxesExcept(form, except, name, false); 1032 }, 1033 1034 /** 1035 * @deprecated As of Cavanaugh (7.4.x), replaced by `Liferay.Util.openWindow()` 1036 */ 1037 openInDialog(event, config) { 1038 event.preventDefault(); 1039 1040 const currentTarget = Util.getElement(event.currentTarget); 1041 1042 // eslint-disable-next-line prefer-object-spread 1043 config = Object.assign( 1044 {}, 1045 1046 // eslint-disable-next-line prefer-object-spread 1047 Object.assign({}, currentTarget.dataset), 1048 config 1049 ); 1050 1051 if (!config.uri) { 1052 config.uri = 1053 currentTarget.dataset.href || 1054 currentTarget.getAttribute('href'); 1055 } 1056 1057 if (!config.title) { 1058 config.title = currentTarget.getAttribute('title'); 1059 } 1060 1061 Liferay.Util.openWindow(config); 1062 }, 1063 1064 /** 1065 * @deprecated As of Cavanaugh (7.4.x), with no direct replacement 1066 */ 1067 processTab(id) { 1068 document.all[id].selection.text = String.fromCharCode(9); 1069 document.all[id].focus(); 1070 }, 1071 1072 /** 1073 * @deprecated As of Athanasius (7.3.x), with no direct replacement 1074 */ 1075 randomInt() { 1076 return Math.ceil(Math.random() * new Date().getTime()); 1077 }, 1078 1079 /** 1080 * @deprecated As of Cavanaugh (7.4.x), with no direct replacement 1081 */ 1082 reorder(box, down) { 1083 box = Util.getElement(box); 1084 1085 if (box) { 1086 if (box.getAttribute('selectedIndex') === -1) { 1087 box.setAttribute('selectedIndex', 0); 1088 } 1089 else { 1090 const selectedItems = Array.from( 1091 box.querySelectorAll('option:checked') 1092 ); 1093 1094 const items = Array.from(box.querySelectorAll('option')); 1095 1096 if (down) {
1097 selectedItems.reverse().forEach((item) => { 1098 const itemIndex = items.indexOf(item); 1099 1100 const lastIndex = items.length - 1; 1101 1102 if (itemIndex === lastIndex) { 1103 box.insertBefore(item, box.firstChild); 1104 } 1105 else { 1106 const nextItem = 1107 item.nextElementSibling.nextElementSibling; 1108 1109 box.insertBefore(item, nextItem); 1110 } 1111 }); 1112 } 1113 else { 1114 selectedItems.forEach((item) => { 1115 const itemIndex = items.indexOf(item); 1116 1117 if (itemIndex === 0) { 1118 box.appendChild(item); 1119 } 1120 else { 1121 box.insertBefore( 1122 item, 1123 item.previousElementSibling 1124 ); 1125 } 1126 }); 1127 } 1128 } 1129 } 1130 }, 1131 1132 /** 1133 * @deprecated As of Cavanaugh (7.4.x), with no direct replacement 1134 */ 1135 rowCheckerCheckAllBox( 1136 ancestorTable, 1137 ancestorRow, 1138 checkboxesIds, 1139 checkboxAllIds, 1140 cssClass 1141 ) { 1142 Util.checkAllBox(ancestorTable, checkboxesIds, checkboxAllIds); 1143 1144 if (ancestorRow) { 1145 ancestorRow.toggleClass(cssClass); 1146 } 1147 }, 1148 1149 /** 1150 * @deprecated As of Cavanaugh (7.4.x), with no direct replacement 1151 */ 1152 savePortletTitle(params) { 1153 params = { 1154 doAsUserId: 0, 1155 plid: 0, 1156 portletId: 0, 1157 title: '', 1158 url: 1159 themeDisplay.getPathMain() + '/portal/update_portlet_title', 1160 ...params, 1161 }; 1162 1163 const data = { 1164 doAsUserId: params.doAsUserId, 1165 p_auth: Liferay.authToken, 1166 p_l_id: params.plid, 1167 portletId: params.portletId, 1168 title: params.title, 1169 }; 1170 1171 Liferay.Util.fetch(params.url, { 1172 body: Liferay.Util.objectToFormData(data), 1173 method: 'POST', 1174 }); 1175 }, 1176 1177 /** 1178 * @deprecated As of Cavanaugh (7.4.x), replaced by {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange} 1179 */ 1180 setCursorPosition(element, position) { 1181 const instance = this; 1182 1183 instance.setSelectionRange(element, position, position); 1184 }, 1185 1186 /** 1187 * @deprecated As of Cavanaugh (7.4.x), replaced by {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange} 1188 */ 1189 setSelectionRange(element, selectionStart, selectionEnd) { 1190 element = Util.getDOM(element); 1191 1192 if (element.jquery) { 1193 element = element[0]; 1194 } 1195 1196 if (element.setSelectionRange) { 1197 element.focus(); 1198 1199 element.setSelectionRange(selectionStart, selectionEnd); 1200 } 1201 else if (element.createTextRange) { 1202 const textRange = element.createTextRange(); 1203 1204 textRange.collapse(true); 1205 1206 textRange.moveEnd('character', selectionEnd); 1207 textRange.moveEnd('character', selectionStart); 1208 1209 textRange.select(); 1210 } 1211 }, 1212 1213 /** 1214 * @deprecated As of Athanasius (7.3.x), with no direct replacement 1215 */ 1216 sortByAscending(a, b) { 1217 a = a[1].toLowerCase(); 1218 b = b[1].toLowerCase(); 1219 1220 if (a > b) { 1221 return 1; 1222 } 1223 1224 if (a < b) { 1225 return -1; 1226 } 1227 1228 return 0; 1229 }, 1230 1231 submitCountdown: 0, 1232 1233 /** 1234 * @deprecated As of Cavanaugh (7.4.x), replaced by `form.submit()` 1235 */ 1236 submitForm(form) { 1237 form.submit(); 1238 }, 1239 1240 /** 1241 * @deprecated As of Athanasius (7.3.x), replaced by `parseInt()` 1242 */ 1243 toNumber(value) { 1244 return parseInt(value, 10) || 0; 1245 }, 1246 1247 /** 1248 * @deprecated As of Athanasius (7.3.x), with no direct replacement 1249 */ 1250 toggleSearchContainerButton( 1251 buttonId, 1252 searchContainerId, 1253 form, 1254 ignoreFieldName 1255 ) { 1256 A.one(searchContainerId).delegate( 1257 EVENT_CLICK, 1258 () => { 1259 Util.toggleDisabled( 1260 buttonId, 1261 !Util.getCheckedCheckboxes(form, ignoreFieldName) 1262 ); 1263 }, 1264 'input[type=checkbox]' 1265 ); 1266 }, 1267 }; 1268 1269 Liferay.provide( 1270 Util, 1271 'afterIframeLoaded', 1272 (event) => { 1273 1274 // eslint-disable-next-line @liferay/aui/no-node 1275 const nodeInstances = A.Node._instances; 1276 1277 const docEl = event.doc; 1278 1279 const docUID = docEl._yuid; 1280 1281 if (docUID in nodeInstances) { 1282 delete nodeInstances[docUID]; 1283 } 1284 1285 const iframeDocument = A.one(docEl); 1286 1287 const iframeBody = iframeDocument.one('body'); 1288 1289 const dialog = event.dialog; 1290 1291 const lfrFormContent = iframeBody.one('.lfr-form-content'); 1292 1293 iframeBody.addClass('dialog-iframe-popup'); 1294 1295 if ( 1296 lfrFormContent && 1297 iframeBody.one('.button-holder.dialog-footer') 1298 ) { 1299 iframeBody.addClass('dialog-with-footer'); 1300 1301 const stagingAlert = iframeBody.one( 1302 '.portlet-body > .lfr-portlet-message-staging-alert' 1303 ); 1304 1305 if (stagingAlert) { 1306 stagingAlert.remove(); 1307
1308 lfrFormContent.prepend(stagingAlert); 1309 } 1310 } 1311 1312 iframeBody.addClass(dialog.iframeConfig.bodyCssClass); 1313 1314 event.win.focus(); 1315 1316 const iframeWindow = event.win; 1317 1318 if (iframeWindow.Liferay.SPA) { 1319 const beforeScreenFlipHandler = iframeWindow.Liferay.on( 1320 'beforeScreenFlip', 1321 () => { 1322 iframeWindow.document.body.classList.add( 1323 'dialog-iframe-popup' 1324 ); 1325 } 1326 ); 1327 1328 iframeWindow.onunload = () => { 1329 if (beforeScreenFlipHandler) { 1330 iframeWindow.Liferay.detach(beforeScreenFlipHandler); 1331 } 1332 }; 1333 } 1334 1335 const cancelEventHandler = iframeBody.delegate( 1336 EVENT_CLICK, 1337 (event) => { 1338 dialog.set( 1339 'visible', 1340 false, 1341 event.currentTarget.hasClass('lfr-hide-dialog') 1342 ? SRC_HIDE_LINK 1343 : null 1344 ); 1345 1346 cancelEventHandler.detach(); 1347 1348 iframeDocument.purge(true); 1349 }, 1350 '.btn-cancel,.lfr-hide-dialog' 1351 ); 1352 1353 Liferay.fire('modalIframeLoaded', { 1354 src: event.dialog.iframe.node.getAttribute('src'), 1355 }); 1356 }, 1357 ['aui-base'] 1358 ); 1359 1360 /** 1361 * @deprecated As of Cavanaugh (7.4.x), replaced by `openSelectionModal` 1362 */ 1363 Liferay.provide( 1364 Util, 1365 'openDDMPortlet', 1366 (config, callback) => { 1367 const defaultValues = { 1368 eventName: 'selectStructure', 1369 }; 1370 1371 // eslint-disable-next-line @liferay/aui/no-merge 1372 config = A.merge(defaultValues, config); 1373 1374 const params = { 1375 classNameId: config.classNameId, 1376 classPK: config.classPK, 1377 doAsGroupId: 1378 config.doAsGroupId || themeDisplay.getScopeGroupId(), 1379 eventName: config.eventName, 1380 groupId: config.groupId, 1381 mvcPath: config.mvcPath || '/view.jsp', 1382 p_p_state: 'pop_up', 1383 portletResourceNamespace: config.portletResourceNamespace, 1384 resourceClassNameId: config.resourceClassNameId, 1385 scopeTitle: config.title, 1386 structureAvailableFields: config.structureAvailableFields, 1387 templateId: config.templateId, 1388 }; 1389 1390 if ('mode' in config) { 1391 params.mode = config.mode; 1392 } 1393 1394 if ('navigationStartsOn' in config) { 1395 params.navigationStartsOn = config.navigationStartsOn; 1396 } 1397 1398 if ('redirect' in config) { 1399 params.redirect = config.redirect; 1400 } 1401 1402 if ('refererPortletName' in config) { 1403 params.refererPortletName = config.refererPortletName; 1404 } 1405 1406 if ('refererWebDAVToken' in config) { 1407 params.refererWebDAVToken = config.refererWebDAVToken; 1408 } 1409 1410 if ('searchRestriction' in config) { 1411 params.searchRestriction = config.searchRestriction; 1412 params.searchRestrictionClassNameId = 1413 config.searchRestrictionClassNameId; 1414 params.searchRestrictionClassPK = 1415 config.searchRestrictionClassPK; 1416 } 1417 1418 if ('showAncestorScopes' in config) { 1419 params.showAncestorScopes = config.showAncestorScopes; 1420 } 1421 1422 if ('showBackURL' in config) { 1423 params.showBackURL = config.showBackURL; 1424 } 1425 1426 if ('showCacheableInput' in config) { 1427 params.showCacheableInput = config.showCacheableInput; 1428 } 1429 1430 if ('showHeader' in config) { 1431 params.showHeader = config.showHeader; 1432 } 1433 1434 if ('showManageTemplates' in config) { 1435 params.showManageTemplates = config.showManageTemplates; 1436 } 1437 1438 const url = Liferay.Util.PortletURL.createRenderURL( 1439 config.basePortletURL, 1440 params 1441 ); 1442 1443 config.uri = url.toString(); 1444 1445 let dialogConfig = config.dialog; 1446 1447 if (!dialogConfig) { 1448 dialogConfig = {}; 1449 1450 config.dialog = dialogConfig; 1451 } 1452 1453 const eventHandles = []; 1454 1455 if (callback) { 1456 eventHandles.push(Liferay.once(config.eventName, callback)); 1457 } 1458 1459 const detachSelectionOnHideFn = function (event) { 1460 Liferay.fire(config.eventName); 1461 1462 if (!event.newVal) { 1463 new A.EventHandle(eventHandles).detach(); 1464 } 1465 }; 1466 1467 Util.openWindow(config, (dialogWindow) => { 1468 eventHandles.push( 1469 dialogWindow.after( 1470 ['destroy', 'visibleChange'], 1471 detachSelectionOnHideFn 1472 ) 1473 ); 1474 }); 1475 }, 1476 ['aui-base'] 1477 ); 1478 1479 Liferay.provide( 1480 Util, 1481 'openDocument', 1482 (webDavUrl, onSuccess, onError) => { 1483 if (A.UA.ie) { 1484 try { 1485 const executor = new A.config.win.ActiveXObject( 1486 'SharePoint.OpenDocuments' 1487 ); 1488 1489 executor.EditDocument(webDavUrl); 1490 1491 if (Lang.isFunction(onSuccess)) { 1492 onSuccess(); 1493 } 1494 } 1495 catch (error) { 1496 if (Lang.isFunction(onError)) { 1497 onError(error); 1498 } 1499 } 1500 } 1501 }, 1502 ['aui-base'] 1503 ); 1504 1505 /** 1506 * @deprecated As of Cavanaugh (7.4.x), with no direct replacement 1507 */ 1508 Liferay.provide( 1509 Util, 1510 'selectEntityHandler', 1511 (containerSelector, selectEventName, disableButton) => { 1512 const container = A.one(containerSelector); 1513 1514 if (!container) { 1515 return; 1516 } 1517
1518 const openingLiferay = Util.getOpener().Liferay; 1519 1520 const selectorButtons = container 1521 .getDOM() 1522 .querySelectorAll('.selector-button'); 1523 1524 container.delegate( 1525 EVENT_CLICK, 1526 (event) => { 1527 const currentTarget = event.currentTarget.getDOM(); 1528 1529 if ( 1530 currentTarget.disabled || 1531 currentTarget.dataset['preventSelection'] 1532 ) { 1533 return; 1534 } 1535 1536 const doSelect = () => { 1537 if (disableButton) { 1538 selectorButtons.forEach((selectorButton) => { 1539 selectorButton.disabled = false; 1540 }); 1541 1542 currentTarget.disabled = true; 1543 } 1544 1545 const result = Util.getAttributes( 1546 currentTarget, 1547 'data-' 1548 ); 1549 1550 openingLiferay.fire(selectEventName, result); 1551 1552 const window = Util.getWindow(); 1553 1554 if (window) { 1555 window.hide(); 1556 } 1557 }; 1558 1559 const confirmSelection = 1560 currentTarget.dataset['confirmSelection'] === 'true'; 1561 1562 if (!confirmSelection) { 1563 doSelect(); 1564 } 1565 else { 1566 Liferay.Util.openConfirmModal({ 1567 message: 1568 currentTarget.dataset[ 1569 'confirmSelectionMessage' 1570 ], 1571 onConfirm: (isConfirmed) => { 1572 if (isConfirmed) { 1573 if (disableButton) { 1574 selectorButtons.forEach( 1575 (selectorButton) => { 1576 selectorButton.disabled = false; 1577 } 1578 ); 1579 1580 currentTarget.disabled = true; 1581 } 1582 1583 const result = Util.getAttributes( 1584 currentTarget, 1585 'data-' 1586 ); 1587 1588 openingLiferay.fire( 1589 selectEventName, 1590 result 1591 ); 1592 1593 const window = Util.getWindow(); 1594 1595 if (window) { 1596 window.hide(); 1597 } 1598 } 1599 }, 1600 }); 1601 } 1602 }, 1603 '.selector-button' 1604 ); 1605 1606 openingLiferay.on('entitySelectionRemoved', () => { 1607 selectorButtons.forEach((selectorButton) => { 1608 selectorButton.disabled = false; 1609 }); 1610 }); 1611 }, 1612 ['aui-base'] 1613 ); 1614 1615 Liferay.provide( 1616 Util, 1617 'portletTitleEdit', 1618 (options) => { 1619 const object = options.obj; 1620 1621 A.Event.defineOutside('mouseup'); 1622 1623 if (object) { 1624 const title = object.one('.portlet-title-text'); 1625 1626 if (title && !title.hasClass('not-editable')) { 1627 title.addClass('portlet-title-editable'); 1628 1629 title.on(EVENT_CLICK, (event) => { 1630 const editable = Util._getEditableInstance(title); 1631 1632 const rendered = editable.get('rendered'); 1633 1634 if (rendered) { 1635 editable.fire('stopEditing'); 1636 } 1637 1638 editable.set('node', event.currentTarget); 1639 1640 if (rendered) { 1641 editable.syncUI(); 1642 } 1643 1644 editable._startEditing(event); 1645 1646 if (!rendered) { 1647 const defaultIconsTpl = 1648 A.ToolbarRenderer.prototype.TEMPLATES.icon; 1649 1650 A.ToolbarRenderer.prototype.TEMPLATES.icon = 1651 Liferay.Util.getLexiconIconTpl('{cssClass}'); 1652 1653 editable._comboBox.icons.destroy(); 1654 editable._comboBox._renderIcons(); 1655 1656 A.ToolbarRenderer.prototype.TEMPLATES.icon = 1657 defaultIconsTpl; 1658 } 1659 }); 1660 1661 title.setData('portletTitleEditOptions', options); 1662 } 1663 } 1664 }, 1665 ['aui-editable-deprecated', 'event-outside'] 1666 ); 1667 1668 Liferay.provide( 1669 Util, 1670 'editEntity', 1671 (config, callback) => { 1672 const dialog = Util.getWindow(config.id); 1673 1674 const eventName = config.eventName || config.id; 1675 1676 const eventHandles = [Liferay.on(eventName, callback)]; 1677 1678 const detachSelectionOnHideFn = function (event) { 1679 if (!event.newVal) { 1680 new A.EventHandle(eventHandles).detach(); 1681 } 1682 }; 1683 1684 if (dialog) { 1685 eventHandles.push( 1686 dialog.after( 1687 ['destroy', 'visibleChange'], 1688 detachSelectionOnHideFn 1689 ) 1690 ); 1691 1692 dialog.show(); 1693 } 1694 else { 1695 const destroyDialog = function (event) { 1696 const dialogId = config.id; 1697 1698 const dialogWindow = Util.getWindow(dialogId); 1699 1700 if ( 1701 dialogWindow && 1702 Util.getPortletId(dialogId) === event.portletId 1703 ) { 1704 dialogWindow.destroy(); 1705 1706 Liferay.detach('destroyPortlet', destroyDialog); 1707 } 1708 }; 1709 1710 const editURL = new Liferay.Util.PortletURL.createPortletURL( 1711 config.uri, 1712 1713 // eslint-disable-next-line @liferay/aui/no-merge 1714 A.merge( 1715 { 1716 eventName, 1717 },
1718 config.urlParams 1719 ) 1720 ); 1721 1722 config.uri = editURL.toString(); 1723 1724 // eslint-disable-next-line @liferay/aui/no-merge 1725 config.dialogIframe = A.merge( 1726 { 1727 bodyCssClass: 'dialog-with-footer', 1728 }, 1729 config.dialogIframe || {} 1730 ); 1731 1732 Util.openWindow(config, (dialogWindow) => { 1733 eventHandles.push( 1734 dialogWindow.after( 1735 ['destroy', 'visibleChange'], 1736 detachSelectionOnHideFn 1737 ) 1738 ); 1739 1740 Liferay.on('destroyPortlet', destroyDialog); 1741 }); 1742 } 1743 }, 1744 ['aui-base', 'liferay-util-window'] 1745 ); 1746 1747 /** 1748 * Used in `modules/apps/frontend-js/frontend-js-web/src/main/resources/META-INF/resources/liferay/util/open_window.js` 1749 * which will need to be migrated over to `openModal`. 1750 */ 1751 Liferay.provide( 1752 Util, 1753 '_openWindowProvider', 1754 (config, callback) => { 1755 const dialog = Window.getWindow(config); 1756 1757 if (Lang.isFunction(callback)) { 1758 callback(dialog); 1759 } 1760 }, 1761 ['liferay-util-window'] 1762 ); 1763 1764 Util.Window = Window; 1765 1766 Liferay.Util = Util; 1767 1768 // 0-200: Theme Developer 1769 // 200-400: Portlet Developer 1770 // 400+: Liferay 1771 1772})(AUI()); 1773 1774(function(exports) { 1775 "use strict"; 1776 var PROJECT_VERSION = "5.13.0"; 1777 var LIB_ANALYTICS_MODULE = "@react-provider$arena/lib-analytics@" + PROJECT_VERSION; 1778 var I18NEXT_MODULE = "[email protected]"; 1779 var I18NEXT_CHAINED_BACKEND_MODULE = 1780 "[email protected]"; 1781 var I18NEXT_LOCALSTORAGE_BACKEND_MODULE = 1782 "[email protected]"; 1783 var I18NEXT_XHR_BACKEND_MODULE = "[email protected]"; 1784 var DEFAULT_LANGUAGE = "dev"; 1785 var LOAD_PATH = "/o/helper-provider/locales/"; 1786 var CACHE_EXPIRATION_TIME = 60 * 60 * 1000; 1787 1788 function getLocale() { 1789 let locale = Liferay.ThemeDisplay.getLanguageId(); 1790 if (locale === "nn_NO") { 1791 locale = "nb_NO"; 1792 } 1793 1794 return locale; 1795 } 1796 1797 function withTranslation(callback) { 1798 Liferay.Loader.require(I18NEXT_MODULE, (i18next) => { 1799 Liferay.Loader.require( 1800 I18NEXT_CHAINED_BACKEND_MODULE, 1801 (i18nextChainedBackend) => { 1802 Liferay.Loader.require( 1803 I18NEXT_LOCALSTORAGE_BACKEND_MODULE, 1804 (i18nextLocalstorageBackend) => { 1805 Liferay.Loader.require( 1806 I18NEXT_XHR_BACKEND_MODULE, 1807 (i18nextBackend) => { 1808 const i18nInstance = i18next.createInstance(); 1809 1810 i18nInstance.use(i18nextChainedBackend).init( 1811 { 1812 backend: { 1813 backendOptions: [ 1814 { 1815 defaultVersion: PROJECT_VERSION, 1816 expirationTime: CACHE_EXPIRATION_TIME, 1817 prefix: "i18next" + LOAD_PATH.replaceAll("/", "_") 1818 }, 1819 { 1820 crossDomain: false, 1821 loadPath: (languages) => { 1822 return ( 1823 LOAD_PATH + 1824 (languages.length === 1 && 1825 languages[0] === DEFAULT_LANGUAGE 1826 ? "{{ns}}.json" 1827 : "{{lng}}/{{ns}}.json") 1828 ); 1829 }, 1830 version: PROJECT_VERSION 1831 } 1832 ], 1833 backends: [ 1834 i18nextLocalstorageBackend, 1835 i18nextBackend 1836 ] 1837 }, 1838 debug: false, 1839 defaultNS: "translation", 1840 fallbackLng: DEFAULT_LANGUAGE, 1841 lng: getLocale(), 1842 ns: ["translation"] 1843 }, 1844 (error, t) => { 1845 callback(t); 1846 } 1847 ); 1848 } 1849 ); 1850 } 1851 ); 1852 } 1853 ); 1854 }); 1855 } 1856 1857 function withAnalytics(callback) { 1858 Liferay.Loader.require(LIB_ANALYTICS_MODULE, (analyticsModule) => { 1859 callback(analyticsModule); 1860 }); 1861 } 1862 1863 exports.withAnalytics = withAnalytics; 1864 exports.getLocale = getLocale; 1865 exports.withTranslation = withTranslation; 1866 } 1867 1868)((window.ArenaHelper = window.ArenaHelper || {})); 1869 1870// console.log('Bootstrapped helper-provider'); 1871 1872"use strict"; 1873(() => { 1874 var __create = Object.create; 1875 var __defProp = Object.defineProperty; 1876 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 1877 var __getOwnPropNames = Object.getOwnPropertyNames; 1878 var __getProtoOf = Object.getPrototypeOf; 1879 var __hasOwnProp = Object.prototype.hasOwnProperty; 1880 var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; 1881 var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { 1882 get: (a, b) => (typeof require !== "undefined" ? require : a)[b] 1883 }) : x)(function(x) { 1884 if (typeof require !== "undefined") 1885 return require.apply(this, arguments); 1886 throw Error('Dynamic require of "' + x + '" is not supported'); 1887 }); 1888 var __commonJS = (cb, mod) => function __require2() { 1889 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 1890 }; 1891 var __copyProps = (to, from, except, desc) => { 1892 if (from && typeof from === "object" || typeof from === "function") { 1893 for (let key of __getOwnPropNames(from)) 1894 if (!__hasOwnProp.call(to, key) && key !== except) 1895 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 1896 } 1897 return to; 1898 }; 1899 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( 1900 // If the importer is in node compatibility mode or this is not an ESM 1901 // file that has been converted to a CommonJS file using a Babel- 1902 // compatible transform (i.e. "__esModule" has not been set), then set 1903 // "default" to the CommonJS "module.exports" for node compatibility. 1904 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, 1905 mod 1906 )); 1907 var __publicField = (obj, key, value) => { 1908 __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); 1909 return value; 1910 }; 1911 1912 // (disabled):crypto 1913 var require_crypto = __commonJS({ 1914 "(disabled):crypto"() { 1915 } 1916 }); 1917 1918
vendor: 21,581 bytes, lines 1918-2526
1918// ../../../node_modules/crypto-js/core.js 1919 var require_core = __commonJS({ 1920 "../../../node_modules/crypto-js/core.js"(exports, module) { 1921 (function(root, factory) { 1922 if (typeof exports === "object") { 1923 module.exports = exports = factory(); 1924 } else if (typeof define === "function" && define.amd) { 1925 define([], factory); 1926 } else { 1927 root.CryptoJS = factory(); 1928 } 1929 })(exports, function() { 1930 var CryptoJS = CryptoJS || function(Math2, undefined2) { 1931 var crypto; 1932 if (typeof window !== "undefined" && window.crypto) { 1933 crypto = window.crypto; 1934 } 1935 if (typeof self !== "undefined" && self.crypto) { 1936 crypto = self.crypto; 1937 } 1938 if (typeof globalThis !== "undefined" && globalThis.crypto) { 1939 crypto = globalThis.crypto; 1940 } 1941 if (!crypto && typeof window !== "undefined" && window.msCrypto) { 1942 crypto = window.msCrypto; 1943 } 1944 if (!crypto && typeof global !== "undefined" && global.crypto) { 1945 crypto = global.crypto; 1946 } 1947 if (!crypto && typeof __require === "function") { 1948 try { 1949 crypto = require_crypto(); 1950 } catch (err) { 1951 } 1952 } 1953 var cryptoSecureRandomInt = function() { 1954 if (crypto) { 1955 if (typeof crypto.getRandomValues === "function") { 1956 try { 1957 return crypto.getRandomValues(new Uint32Array(1))[0]; 1958 } catch (err) { 1959 } 1960 } 1961 if (typeof crypto.randomBytes === "function") { 1962 try { 1963 return crypto.randomBytes(4).readInt32LE(); 1964 } catch (err) { 1965 } 1966 } 1967 } 1968 throw new Error("Native crypto module could not be used to get secure random number."); 1969 }; 1970 var create = Object.create || /* @__PURE__ */ function() { 1971 function F() { 1972 } 1973 return function(obj) { 1974 var subtype; 1975 F.prototype = obj; 1976 subtype = new F(); 1977 F.prototype = null; 1978 return subtype; 1979 }; 1980 }(); 1981 var C = {}; 1982 var C_lib = C.lib = {}; 1983 var Base = C_lib.Base = /* @__PURE__ */ function() { 1984 return { 1985 /** 1986 * Creates a new object that inherits from this object. 1987 * 1988 * @param {Object} overrides Properties to copy into the new object. 1989 * 1990 * @return {Object} The new object. 1991 * 1992 * @static 1993 * 1994 * @example 1995 * 1996 * var MyType = CryptoJS.lib.Base.extend({ 1997 * field: 'value', 1998 * 1999 * method: function () { 2000 * } 2001 * }); 2002 */ 2003 extend: function(overrides) { 2004 var subtype = create(this); 2005 if (overrides) { 2006 subtype.mixIn(overrides); 2007 } 2008 if (!subtype.hasOwnProperty("init") || this.init === subtype.init) { 2009 subtype.init = function() { 2010 subtype.$super.init.apply(this, arguments); 2011 }; 2012 } 2013 subtype.init.prototype = subtype; 2014 subtype.$super = this; 2015 return subtype; 2016 }, 2017 /** 2018 * Extends this object and runs the init method. 2019 * Arguments to create() will be passed to init(). 2020 * 2021 * @return {Object} The new object. 2022 * 2023 * @static 2024 * 2025 * @example 2026 * 2027 * var instance = MyType.create(); 2028 */ 2029 create: function() { 2030 var instance = this.extend(); 2031 instance.init.apply(instance, arguments); 2032 return instance; 2033 }, 2034 /** 2035 * Initializes a newly created object. 2036 * Override this method to add some logic when your objects are created. 2037 * 2038 * @example 2039 * 2040 * var MyType = CryptoJS.lib.Base.extend({ 2041 * init: function () { 2042 * // ... 2043 * } 2044 * }); 2045 */ 2046 init: function() { 2047 }, 2048 /** 2049 * Copies properties into this object. 2050 * 2051 * @param {Object} properties The properties to mix in. 2052 * 2053 * @example 2054 * 2055 * MyType.mixIn({ 2056 * field: 'value' 2057 * }); 2058 */ 2059 mixIn: function(properties) { 2060 for (var propertyName in properties) { 2061 if (properties.hasOwnProperty(propertyName)) { 2062 this[propertyName] = properties[propertyName]; 2063 } 2064 } 2065 if (properties.hasOwnProperty("toString")) { 2066 this.toString = properties.toString; 2067 } 2068 }, 2069 /** 2070 * Creates a copy of this object. 2071 * 2072 * @return {Object} The clone. 2073 * 2074 * @example 2075 * 2076 * var clone = instance.clone(); 2077 */ 2078 clone: function() { 2079 return this.init.prototype.extend(this); 2080 } 2081 }; 2082 }(); 2083 var WordArray = C_lib.WordArray = Base.extend({ 2084 /** 2085 * Initializes a newly created word array. 2086 * 2087 * @param {Array} words (Optional) An array of 32-bit words. 2088 * @param {number} sigBytes (Optional) The number of significant bytes in the words. 2089 * 2090 * @example 2091 * 2092 * var wordArray = CryptoJS.lib.WordArray.create(); 2093 * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); 2094 * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); 2095 */ 2096 init: function(words, sigBytes) { 2097 words = this.words = words || []; 2098 if (sigBytes != undefined2) { 2099 this.sigBytes = sigBytes; 2100 } else { 2101 this.sigBytes = words.length * 4; 2102 } 2103 }, 2104 /** 2105 * Converts this word array to a string. 2106 * 2107 * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex 2108 * 2109 * @return {string} The stringified word array. 2110 * 2111 * @example 2112 * 2113 * var string = wordArray + ''; 2114 * var string = wordArray.toString(); 2115 * var string = wordArray.toString(CryptoJS.enc.Utf8); 2116 */ 2117 toString: function(encoder) { 2118 return (encoder || Hex).stringify(this); 2119 }, 2120 /** 2121 * Concatenates a word array to this word array. 2122 * 2123 * @param {WordArray} wordArray The word array to append. 2124 * 2125 * @return {WordArray} This word array. 2126 * 2127 * @example 2128 * 2129 * wordArray1.concat(wordArray2); 2130 */ 2131 concat: function(wordArray) { 2132 var thisWords = this.words; 2133 var thatWords = wordArray.words; 2134 var thisSigBytes = this.sigBytes; 2135 var thatSigBytes = wordArray.sigBytes; 2136 this.clamp(); 2137 if (thisSigBytes % 4) { 2138 for (var i = 0; i < thatSigBytes; i++) { 2139 var thatByte = thatWords[i >>> 2] >>> 24 - i % 4 * 8 & 255; 2140 thisWords[thisSigBytes + i >>> 2] |= thatByte << 24 - (thisSigBytes + i) % 4 * 8; 2141 } 2142 } else { 2143 for (var j = 0; j < thatSigBytes; j += 4) { 2144 thisWords[thisSigBytes + j >>> 2] = thatWords[j >>> 2]; 2145 } 2146 } 2147 this.sigBytes += thatSigBytes; 2148 return this; 2149 }, 2150 /** 2151 * Removes insignificant bits. 2152 * 2153 * @example 2154 * 2155 * wordArray.clamp(); 2156 */ 2157 clamp: function() { 2158 var words = this.words; 2159 var sigBytes = this.sigBytes; 2160 words[sigBytes >>> 2] &= 4294967295 << 32 - sigBytes % 4 * 8; 2161 words.length = Math2.ceil(sigBytes / 4); 2162 }, 2163 /** 2164 * Creates a copy of this word array. 2165 * 2166 * @return {WordArray} The clone. 2167 * 2168 * @example 2169 * 2170 * var clone = wordArray.clone(); 2171 */ 2172 clone: function() { 2173 var clone = Base.clone.call(this); 2174 clone.words = this.words.slice(0); 2175 return clone; 2176 }, 2177 /** 2178 * Creates a word array filled with random bytes. 2179 * 2180 * @param {number} nBytes The number of random bytes to generate. 2181 * 2182 * @return {WordArray} The random word array. 2183 * 2184 * @static 2185 * 2186 * @example 2187 * 2188 * var wordArray = CryptoJS.lib.WordArray.random(16); 2189 */ 2190 random: function(nBytes) { 2191 var words = []; 2192 for (var i = 0; i < nBytes; i += 4) { 2193 words.push(cryptoSecureRandomInt()); 2194 } 2195 return new WordArray.init(words, nBytes); 2196 } 2197 }); 2198 var C_enc = C.enc = {}; 2199 var Hex = C_enc.Hex = { 2200 /** 2201 * Converts a word array to a hex string. 2202 * 2203 * @param {WordArray} wordArray The word array. 2204 * 2205 * @return {string} The hex string. 2206 * 2207 * @static 2208 * 2209 * @example 2210 * 2211 * var hexString = CryptoJS.enc.Hex.stringify(wordArray); 2212 */ 2213 stringify: function(wordArray) { 2214 var words = wordArray.words; 2215 var sigBytes = wordArray.sigBytes; 2216 var hexChars = []; 2217 for (var i = 0; i < sigBytes; i++) { 2218 var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 255; 2219 hexChars.push((bite >>> 4).toString(16)); 2220 hexChars.push((bite & 15).toString(16)); 2221 } 2222 return hexChars.join(""); 2223 }, 2224 /** 2225 * Converts a hex string to a word array. 2226 * 2227 * @param {string} hexStr The hex string. 2228 * 2229 * @return {WordArray} The word array. 2230 * 2231 * @static 2232 * 2233 * @example 2234 * 2235 * var wordArray = CryptoJS.enc.Hex.parse(hexString); 2236 */ 2237 parse: function(hexStr) { 2238 var hexStrLength = hexStr.length; 2239 var words = []; 2240 for (var i = 0; i < hexStrLength; i += 2) { 2241 words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << 24 - i % 8 * 4; 2242 } 2243 return new WordArray.init(words, hexStrLength / 2); 2244 } 2245 }; 2246 var Latin1 = C_enc.Latin1 = { 2247 /** 2248 * Converts a word array to a Latin1 string. 2249 * 2250 * @param {WordArray} wordArray The word array. 2251 * 2252 * @return {string} The Latin1 string. 2253 * 2254 * @static 2255 * 2256 * @example 2257 * 2258 * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); 2259 */ 2260 stringify: function(wordArray) { 2261 var words = wordArray.words; 2262 var sigBytes = wordArray.sigBytes; 2263 var latin1Chars = []; 2264 for (var i = 0; i < sigBytes; i++) { 2265 var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 255; 2266 latin1Chars.push(String.fromCharCode(bite)); 2267 } 2268 return latin1Chars.join(""); 2269 }, 2270 /** 2271 * Converts a Latin1 string to a word array. 2272 * 2273 * @param {string} latin1Str The Latin1 string. 2274 * 2275 * @return {WordArray} The word array. 2276 * 2277 * @static 2278 * 2279 * @example 2280 * 2281 * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); 2282 */ 2283 parse: function(latin1Str) { 2284 var latin1StrLength = latin1Str.length; 2285 var words = []; 2286 for (var i = 0; i < latin1StrLength; i++) { 2287 words[i >>> 2] |= (latin1Str.charCodeAt(i) & 255) << 24 - i % 4 * 8; 2288 } 2289 return new WordArray.init(words, latin1StrLength); 2290 } 2291 }; 2292 var Utf8 = C_enc.Utf8 = { 2293 /** 2294 * Converts a word array to a UTF-8 string. 2295 * 2296 * @param {WordArray} wordArray The word array. 2297 * 2298 * @return {string} The UTF-8 string. 2299 * 2300 * @static 2301 * 2302 * @example 2303 * 2304 * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); 2305 */ 2306 stringify: function(wordArray) { 2307 try { 2308 return decodeURIComponent(escape(Latin1.stringify(wordArray))); 2309 } catch (e) { 2310 throw new Error("Malformed UTF-8 data"); 2311 } 2312 }, 2313 /** 2314 * Converts a UTF-8 string to a word array. 2315 * 2316 * @param {string} utf8Str The UTF-8 string. 2317 * 2318 * @return {WordArray} The word array. 2319 * 2320 * @static 2321 * 2322 * @example 2323 * 2324 * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); 2325 */ 2326 parse: function(utf8Str) { 2327 return Latin1.parse(unescape(encodeURIComponent(utf8Str))); 2328 } 2329 }; 2330 var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ 2331 /** 2332 * Resets this block algorithm's data buffer to its initial state. 2333 * 2334 * @example 2335 * 2336 * bufferedBlockAlgorithm.reset(); 2337 */ 2338 reset: function() { 2339 this._data = new WordArray.init(); 2340 this._nDataBytes = 0; 2341 }, 2342 /** 2343 * Adds new data to this block algorithm's buffer. 2344 * 2345 * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. 2346 * 2347 * @example 2348 * 2349 * bufferedBlockAlgorithm._append('data'); 2350 * bufferedBlockAlgorithm._append(wordArray); 2351 */ 2352 _append: function(data) { 2353 if (typeof data == "string") { 2354 data = Utf8.parse(data); 2355 } 2356 this._data.concat(data); 2357 this._nDataBytes += data.sigBytes; 2358 }, 2359 /** 2360 * Processes available data blocks. 2361 * 2362 * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. 2363 * 2364 * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. 2365 * 2366 * @return {WordArray} The processed data. 2367 * 2368 * @example 2369 * 2370 * var processedData = bufferedBlockAlgorithm._process(); 2371 * var processedData = bufferedBlockAlgorithm._process(!!'flush'); 2372 */ 2373 _process: function(doFlush) { 2374 var processedWords; 2375 var data = this._data; 2376 var dataWords = data.words; 2377 var dataSigBytes = data.sigBytes; 2378 var blockSize = this.blockSize; 2379 var blockSizeBytes = blockSize * 4; 2380 var nBlocksReady = dataSigBytes / blockSizeBytes; 2381 if (doFlush) { 2382 nBlocksReady = Math2.ceil(nBlocksReady); 2383 } else { 2384 nBlocksReady = Math2.max((nBlocksReady | 0) - this._minBufferSize, 0); 2385 } 2386 var nWordsReady = nBlocksReady * blockSize; 2387 var nBytesReady = Math2.min(nWordsReady * 4, dataSigBytes); 2388 if (nWordsReady) { 2389 for (var offset = 0; offset < nWordsReady; offset += blockSize) { 2390 this._doProcessBlock(dataWords, offset); 2391 } 2392 processedWords = dataWords.splice(0, nWordsReady); 2393 data.sigBytes -= nBytesReady; 2394 } 2395 return new WordArray.init(processedWords, nBytesReady); 2396 }, 2397 /** 2398 * Creates a copy of this object. 2399 * 2400 * @return {Object} The clone. 2401 * 2402 * @example 2403 * 2404 * var clone = bufferedBlockAlgorithm.clone(); 2405 */ 2406 clone: function() { 2407 var clone = Base.clone.call(this); 2408 clone._data = this._data.clone(); 2409 return clone; 2410 }, 2411 _minBufferSize: 0 2412 }); 2413 var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ 2414 /** 2415 * Configuration options. 2416 */ 2417 cfg: Base.extend(), 2418 /** 2419 * Initializes a newly created hasher. 2420 * 2421 * @param {Object} cfg (Optional) The configuration options to use for this hash computation. 2422 * 2423 * @example 2424 * 2425 * var hasher = CryptoJS.algo.SHA256.create(); 2426 */ 2427 init: function(cfg) { 2428 this.cfg = this.cfg.extend(cfg); 2429 this.reset(); 2430 }, 2431 /** 2432 * Resets this hasher to its initial state. 2433 * 2434 * @example 2435 * 2436 * hasher.reset(); 2437 */ 2438 reset: function() { 2439 BufferedBlockAlgorithm.reset.call(this); 2440 this._doReset(); 2441 }, 2442 /** 2443 * Updates this hasher with a message. 2444 * 2445 * @param {WordArray|string} messageUpdate The message to append. 2446 * 2447 * @return {Hasher} This hasher. 2448 * 2449 * @example 2450 * 2451 * hasher.update('message'); 2452 * hasher.update(wordArray); 2453 */ 2454 update: function(messageUpdate) { 2455 this._append(messageUpdate); 2456 this._process(); 2457 return this; 2458 }, 2459 /** 2460 * Finalizes the hash computation. 2461 * Note that the finalize operation is effectively a destructive, read-once operation. 2462 * 2463 * @param {WordArray|string} messageUpdate (Optional) A final message update. 2464 * 2465 * @return {WordArray} The hash. 2466 * 2467 * @example 2468 * 2469 * var hash = hasher.finalize(); 2470 * var hash = hasher.finalize('message'); 2471 * var hash = hasher.finalize(wordArray); 2472 */ 2473 finalize: function(messageUpdate) { 2474 if (messageUpdate) { 2475 this._append(messageUpdate); 2476 } 2477 var hash = this._doFinalize(); 2478 return hash; 2479 }, 2480 blockSize: 512 / 32, 2481 /** 2482 * Creates a shortcut function to a hasher's object interface. 2483 * 2484 * @param {Hasher} hasher The hasher to create a helper for. 2485 * 2486 * @return {Function} The shortcut function. 2487 * 2488 * @static 2489 * 2490 * @example 2491 * 2492 * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); 2493 */ 2494 _createHelper: function(hasher) { 2495 return function(message, cfg) { 2496 return new hasher.init(cfg).finalize(message); 2497 }; 2498 }, 2499 /** 2500 * Creates a shortcut function to the HMAC's object interface. 2501 * 2502 * @param {Hasher} hasher The hasher to use in this HMAC helper. 2503 * 2504 * @return {Function} The shortcut function. 2505 * 2506 * @static 2507 * 2508 * @example 2509 * 2510 * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); 2511 */ 2512 _createHmacHelper: function(hasher) { 2513 return function(message, key) { 2514 return new C_algo.HMAC.init(hasher, key).finalize(message); 2515 }; 2516 } 2517 }); 2518 var C_algo = C.algo = {}; 2519 return C; 2520 }(Math); 2521 return CryptoJS; 2522 }); 2523 } 2524 }); 2525 2526
vendor: 9,121 bytes, lines 2526-2783
2526// ../../../node_modules/crypto-js/x64-core.js 2527 var require_x64_core = __commonJS({ 2528 "../../../node_modules/crypto-js/x64-core.js"(exports, module) { 2529 (function(root, factory) { 2530 if (typeof exports === "object") { 2531 module.exports = exports = factory(require_core()); 2532 } else if (typeof define === "function" && define.amd) { 2533 define(["./core"], factory); 2534 } else { 2535 factory(root.CryptoJS); 2536 } 2537 })(exports, function(CryptoJS) { 2538 (function(undefined2) { 2539 var C = CryptoJS; 2540 var C_lib = C.lib; 2541 var Base = C_lib.Base; 2542 var X32WordArray = C_lib.WordArray; 2543 var C_x64 = C.x64 = {}; 2544 var X64Word = C_x64.Word = Base.extend({ 2545 /** 2546 * Initializes a newly created 64-bit word. 2547 * 2548 * @param {number} high The high 32 bits. 2549 * @param {number} low The low 32 bits. 2550 * 2551 * @example 2552 * 2553 * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607); 2554 */ 2555 init: function(high, low) { 2556 this.high = high; 2557 this.low = low; 2558 } 2559 /** 2560 * Bitwise NOTs this word. 2561 * 2562 * @return {X64Word} A new x64-Word object after negating. 2563 * 2564 * @example 2565 * 2566 * var negated = x64Word.not(); 2567 */ 2568 // not: function () { 2569 // var high = ~this.high; 2570 // var low = ~this.low; 2571 // return X64Word.create(high, low); 2572 // }, 2573 /** 2574 * Bitwise ANDs this word with the passed word. 2575 * 2576 * @param {X64Word} word The x64-Word to AND with this word. 2577 * 2578 * @return {X64Word} A new x64-Word object after ANDing. 2579 * 2580 * @example 2581 * 2582 * var anded = x64Word.and(anotherX64Word); 2583 */ 2584 // and: function (word) { 2585 // var high = this.high & word.high; 2586 // var low = this.low & word.low; 2587 // return X64Word.create(high, low); 2588 // }, 2589 /** 2590 * Bitwise ORs this word with the passed word. 2591 * 2592 * @param {X64Word} word The x64-Word to OR with this word. 2593 * 2594 * @return {X64Word} A new x64-Word object after ORing. 2595 * 2596 * @example 2597 * 2598 * var ored = x64Word.or(anotherX64Word); 2599 */ 2600 // or: function (word) { 2601 // var high = this.high | word.high; 2602 // var low = this.low | word.low; 2603 // return X64Word.create(high, low); 2604 // }, 2605 /** 2606 * Bitwise XORs this word with the passed word. 2607 * 2608 * @param {X64Word} word The x64-Word to XOR with this word. 2609 * 2610 * @return {X64Word} A new x64-Word object after XORing. 2611 * 2612 * @example 2613 * 2614 * var xored = x64Word.xor(anotherX64Word); 2615 */ 2616 // xor: function (word) { 2617 // var high = this.high ^ word.high; 2618 // var low = this.low ^ word.low; 2619 // return X64Word.create(high, low); 2620 // }, 2621 /** 2622 * Shifts this word n bits to the left. 2623 * 2624 * @param {number} n The number of bits to shift. 2625 * 2626 * @return {X64Word} A new x64-Word object after shifting. 2627 * 2628 * @example 2629 * 2630 * var shifted = x64Word.shiftL(25); 2631 */ 2632 // shiftL: function (n) { 2633 // if (n < 32) { 2634 // var high = (this.high << n) | (this.low >>> (32 - n)); 2635 // var low = this.low << n; 2636 // } else { 2637 // var high = this.low << (n - 32); 2638 // var low = 0; 2639 // } 2640 // return X64Word.create(high, low); 2641 // }, 2642 /** 2643 * Shifts this word n bits to the right. 2644 * 2645 * @param {number} n The number of bits to shift. 2646 * 2647 * @return {X64Word} A new x64-Word object after shifting. 2648 * 2649 * @example 2650 * 2651 * var shifted = x64Word.shiftR(7); 2652 */ 2653 // shiftR: function (n) { 2654 // if (n < 32) { 2655 // var low = (this.low >>> n) | (this.high << (32 - n)); 2656 // var high = this.high >>> n; 2657 // } else { 2658 // var low = this.high >>> (n - 32); 2659 // var high = 0; 2660 // } 2661 // return X64Word.create(high, low); 2662 // }, 2663 /** 2664 * Rotates this word n bits to the left. 2665 * 2666 * @param {number} n The number of bits to rotate. 2667 * 2668 * @return {X64Word} A new x64-Word object after rotating. 2669 * 2670 * @example 2671 * 2672 * var rotated = x64Word.rotL(25); 2673 */ 2674 // rotL: function (n) { 2675 // return this.shiftL(n).or(this.shiftR(64 - n)); 2676 // }, 2677 /** 2678 * Rotates this word n bits to the right. 2679 * 2680 * @param {number} n The number of bits to rotate. 2681 * 2682 * @return {X64Word} A new x64-Word object after rotating. 2683 * 2684 * @example 2685 * 2686 * var rotated = x64Word.rotR(7); 2687 */ 2688 // rotR: function (n) { 2689 // return this.shiftR(n).or(this.shiftL(64 - n)); 2690 // }, 2691 /** 2692 * Adds this word with the passed word. 2693 * 2694 * @param {X64Word} word The x64-Word to add with this word. 2695 * 2696 * @return {X64Word} A new x64-Word object after adding. 2697 * 2698 * @example 2699 * 2700 * var added = x64Word.add(anotherX64Word); 2701 */ 2702 // add: function (word) { 2703 // var low = (this.low + word.low) | 0; 2704 // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0; 2705 // var high = (this.high + word.high + carry) | 0; 2706 // return X64Word.create(high, low); 2707 // } 2708 }); 2709 var X64WordArray = C_x64.WordArray = Base.extend({ 2710 /** 2711 * Initializes a newly created word array. 2712 * 2713 * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects. 2714 * @param {number} sigBytes (Optional) The number of significant bytes in the words. 2715 * 2716 * @example 2717 * 2718 * var wordArray = CryptoJS.x64.WordArray.create(); 2719 * 2720 * var wordArray = CryptoJS.x64.WordArray.create([ 2721 * CryptoJS.x64.Word.create(0x00010203, 0x04050607), 2722 * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) 2723 * ]); 2724 * 2725 * var wordArray = CryptoJS.x64.WordArray.create([ 2726 * CryptoJS.x64.Word.create(0x00010203, 0x04050607), 2727 * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) 2728 * ], 10); 2729 */ 2730 init: function(words, sigBytes) { 2731 words = this.words = words || []; 2732 if (sigBytes != undefined2) { 2733 this.sigBytes = sigBytes; 2734 } else { 2735 this.sigBytes = words.length * 8; 2736 } 2737 }, 2738 /** 2739 * Converts this 64-bit word array to a 32-bit word array. 2740 * 2741 * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array. 2742 * 2743 * @example 2744 * 2745 * var x32WordArray = x64WordArray.toX32(); 2746 */ 2747 toX32: function() { 2748 var x64Words = this.words; 2749 var x64WordsLength = x64Words.length; 2750 var x32Words = []; 2751 for (var i = 0; i < x64WordsLength; i++) { 2752 var x64Word = x64Words[i]; 2753 x32Words.push(x64Word.high); 2754 x32Words.push(x64Word.low); 2755 } 2756 return X32WordArray.create(x32Words, this.sigBytes); 2757 }, 2758 /** 2759 * Creates a copy of this word array. 2760 * 2761 * @return {X64WordArray} The clone. 2762 * 2763 * @example 2764 * 2765 * var clone = x64WordArray.clone(); 2766 */ 2767 clone: function() { 2768 var clone = Base.clone.call(this); 2769 var words = clone.words = this.words.slice(0); 2770 var wordsLength = words.length; 2771 for (var i = 0; i < wordsLength; i++) { 2772 words[i] = words[i].clone(); 2773 } 2774 return clone; 2775 } 2776 }); 2777 })(); 2778 return CryptoJS; 2779 }); 2780 } 2781 }); 2782 2783
vendor: 2,003 bytes, lines 2783-2828
2783// ../../../node_modules/crypto-js/lib-typedarrays.js 2784 var require_lib_typedarrays = __commonJS({ 2785 "../../../node_modules/crypto-js/lib-typedarrays.js"(exports, module) { 2786 (function(root, factory) { 2787 if (typeof exports === "object") { 2788 module.exports = exports = factory(require_core()); 2789 } else if (typeof define === "function" && define.amd) { 2790 define(["./core"], factory); 2791 } else { 2792 factory(root.CryptoJS); 2793 } 2794 })(exports, function(CryptoJS) { 2795 (function() { 2796 if (typeof ArrayBuffer != "function") { 2797 return; 2798 } 2799 var C = CryptoJS; 2800 var C_lib = C.lib; 2801 var WordArray = C_lib.WordArray; 2802 var superInit = WordArray.init; 2803 var subInit = WordArray.init = function(typedArray) { 2804 if (typedArray instanceof ArrayBuffer) { 2805 typedArray = new Uint8Array(typedArray); 2806 } 2807 if (typedArray instanceof Int8Array || typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray || typedArray instanceof Int16Array || typedArray instanceof Uint16Array || typedArray instanceof Int32Array || typedArray instanceof Uint32Array || typedArray instanceof Float32Array || typedArray instanceof Float64Array) { 2808 typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); 2809 } 2810 if (typedArray instanceof Uint8Array) { 2811 var typedArrayByteLength = typedArray.byteLength; 2812 var words = []; 2813 for (var i = 0; i < typedArrayByteLength; i++) { 2814 words[i >>> 2] |= typedArray[i] << 24 - i % 4 * 8; 2815 } 2816 superInit.call(this, words, typedArrayByteLength); 2817 } else { 2818 superInit.apply(this, arguments); 2819 } 2820 }; 2821 subInit.prototype = WordArray; 2822 })(); 2823 return CryptoJS.lib.WordArray; 2824 }); 2825 } 2826 }); 2827 2828
vendor: 4,169 bytes, lines 2828-2946
2828// ../../../node_modules/crypto-js/enc-utf16.js 2829 var require_enc_utf16 = __commonJS({ 2830 "../../../node_modules/crypto-js/enc-utf16.js"(exports, module) { 2831 (function(root, factory) { 2832 if (typeof exports === "object") { 2833 module.exports = exports = factory(require_core()); 2834 } else if (typeof define === "function" && define.amd) { 2835 define(["./core"], factory); 2836 } else { 2837 factory(root.CryptoJS); 2838 } 2839 })(exports, function(CryptoJS) { 2840 (function() { 2841 var C = CryptoJS; 2842 var C_lib = C.lib; 2843 var WordArray = C_lib.WordArray; 2844 var C_enc = C.enc; 2845 var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = { 2846 /** 2847 * Converts a word array to a UTF-16 BE string. 2848 * 2849 * @param {WordArray} wordArray The word array. 2850 * 2851 * @return {string} The UTF-16 BE string. 2852 * 2853 * @static 2854 * 2855 * @example 2856 * 2857 * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray); 2858 */ 2859 stringify: function(wordArray) { 2860 var words = wordArray.words; 2861 var sigBytes = wordArray.sigBytes; 2862 var utf16Chars = []; 2863 for (var i = 0; i < sigBytes; i += 2) { 2864 var codePoint = words[i >>> 2] >>> 16 - i % 4 * 8 & 65535; 2865 utf16Chars.push(String.fromCharCode(codePoint)); 2866 } 2867 return utf16Chars.join(""); 2868 }, 2869 /** 2870 * Converts a UTF-16 BE string to a word array. 2871 * 2872 * @param {string} utf16Str The UTF-16 BE string. 2873 * 2874 * @return {WordArray} The word array. 2875 * 2876 * @static 2877 * 2878 * @example 2879 * 2880 * var wordArray = CryptoJS.enc.Utf16.parse(utf16String); 2881 */ 2882 parse: function(utf16Str) { 2883 var utf16StrLength = utf16Str.length; 2884 var words = []; 2885 for (var i = 0; i < utf16StrLength; i++) { 2886 words[i >>> 1] |= utf16Str.charCodeAt(i) << 16 - i % 2 * 16; 2887 } 2888 return WordArray.create(words, utf16StrLength * 2); 2889 } 2890 }; 2891 C_enc.Utf16LE = { 2892 /** 2893 * Converts a word array to a UTF-16 LE string. 2894 * 2895 * @param {WordArray} wordArray The word array. 2896 * 2897 * @return {string} The UTF-16 LE string. 2898 * 2899 * @static 2900 * 2901 * @example 2902 * 2903 * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray); 2904 */ 2905 stringify: function(wordArray) { 2906 var words = wordArray.words; 2907 var sigBytes = wordArray.sigBytes; 2908 var utf16Chars = []; 2909 for (var i = 0; i < sigBytes; i += 2) { 2910 var codePoint = swapEndian(words[i >>> 2] >>> 16 - i % 4 * 8 & 65535); 2911 utf16Chars.push(String.fromCharCode(codePoint)); 2912 } 2913 return utf16Chars.join(""); 2914 }, 2915 /** 2916 * Converts a UTF-16 LE string to a word array. 2917 * 2918 * @param {string} utf16Str The UTF-16 LE string. 2919 * 2920 * @return {WordArray} The word array. 2921 * 2922 * @static 2923 * 2924 * @example 2925 * 2926 * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str); 2927 */ 2928 parse: function(utf16Str) { 2929 var utf16StrLength = utf16Str.length; 2930 var words = []; 2931 for (var i = 0; i < utf16StrLength; i++) { 2932 words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << 16 - i % 2 * 16); 2933 } 2934 return WordArray.create(words, utf16StrLength * 2); 2935 } 2936 }; 2937 function swapEndian(word) { 2938 return word << 8 & 4278255360 | word >>> 8 & 16711935; 2939 } 2940 })(); 2941 return CryptoJS.enc.Utf16; 2942 }); 2943 } 2944 }); 2945 2946
vendor: 4,098 bytes, lines 2946-3054
2946// ../../../node_modules/crypto-js/enc-base64.js 2947 var require_enc_base64 = __commonJS({ 2948 "../../../node_modules/crypto-js/enc-base64.js"(exports, module) { 2949 (function(root, factory) { 2950 if (typeof exports === "object") { 2951 module.exports = exports = factory(require_core()); 2952 } else if (typeof define === "function" && define.amd) { 2953 define(["./core"], factory); 2954 } else { 2955 factory(root.CryptoJS); 2956 } 2957 })(exports, function(CryptoJS) { 2958 (function() { 2959 var C = CryptoJS; 2960 var C_lib = C.lib; 2961 var WordArray = C_lib.WordArray; 2962 var C_enc = C.enc; 2963 var Base64 = C_enc.Base64 = { 2964 /** 2965 * Converts a word array to a Base64 string. 2966 * 2967 * @param {WordArray} wordArray The word array. 2968 * 2969 * @return {string} The Base64 string. 2970 * 2971 * @static 2972 * 2973 * @example 2974 * 2975 * var base64String = CryptoJS.enc.Base64.stringify(wordArray); 2976 */ 2977 stringify: function(wordArray) { 2978 var words = wordArray.words; 2979 var sigBytes = wordArray.sigBytes; 2980 var map = this._map; 2981 wordArray.clamp(); 2982 var base64Chars = []; 2983 for (var i = 0; i < sigBytes; i += 3) { 2984 var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 255; 2985 var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255; 2986 var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255; 2987 var triplet = byte1 << 16 | byte2 << 8 | byte3; 2988 for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) { 2989 base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 63)); 2990 } 2991 } 2992 var paddingChar = map.charAt(64); 2993 if (paddingChar) { 2994 while (base64Chars.length % 4) { 2995 base64Chars.push(paddingChar); 2996 } 2997 } 2998 return base64Chars.join(""); 2999 }, 3000 /** 3001 * Converts a Base64 string to a word array. 3002 * 3003 * @param {string} base64Str The Base64 string. 3004 * 3005 * @return {WordArray} The word array. 3006 * 3007 * @static 3008 * 3009 * @example 3010 * 3011 * var wordArray = CryptoJS.enc.Base64.parse(base64String); 3012 */ 3013 parse: function(base64Str) { 3014 var base64StrLength = base64Str.length; 3015 var map = this._map; 3016 var reverseMap = this._reverseMap; 3017 if (!reverseMap) { 3018 reverseMap = this._reverseMap = []; 3019 for (var j = 0; j < map.length; j++) { 3020 reverseMap[map.charCodeAt(j)] = j; 3021 } 3022 } 3023 var paddingChar = map.charAt(64); 3024 if (paddingChar) { 3025 var paddingIndex = base64Str.indexOf(paddingChar); 3026 if (paddingIndex !== -1) { 3027 base64StrLength = paddingIndex; 3028 } 3029 } 3030 return parseLoop(base64Str, base64StrLength, reverseMap); 3031 }, 3032 _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" 3033 }; 3034 function parseLoop(base64Str, base64StrLength, reverseMap) { 3035 var words = []; 3036 var nBytes = 0; 3037 for (var i = 0; i < base64StrLength; i++) { 3038 if (i % 4) { 3039 var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2; 3040 var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2; 3041 var bitsCombined = bits1 | bits2; 3042 words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8; 3043 nBytes++; 3044 } 3045 } 3046 return WordArray.create(words, nBytes); 3047 } 3048 })(); 3049 return CryptoJS.enc.Base64; 3050 }); 3051 } 3052 }); 3053 3054
vendor: 4,469 bytes, lines 3054-3167
3054// ../../../node_modules/crypto-js/enc-base64url.js 3055 var require_enc_base64url = __commonJS({ 3056 "../../../node_modules/crypto-js/enc-base64url.js"(exports, module) { 3057 (function(root, factory) { 3058 if (typeof exports === "object") { 3059 module.exports = exports = factory(require_core()); 3060 } else if (typeof define === "function" && define.amd) { 3061 define(["./core"], factory); 3062 } else { 3063 factory(root.CryptoJS); 3064 } 3065 })(exports, function(CryptoJS) { 3066 (function() { 3067 var C = CryptoJS; 3068 var C_lib = C.lib; 3069 var WordArray = C_lib.WordArray; 3070 var C_enc = C.enc; 3071 var Base64url = C_enc.Base64url = { 3072 /** 3073 * Converts a word array to a Base64url string. 3074 * 3075 * @param {WordArray} wordArray The word array. 3076 * 3077 * @param {boolean} urlSafe Whether to use url safe 3078 * 3079 * @return {string} The Base64url string. 3080 * 3081 * @static 3082 * 3083 * @example 3084 * 3085 * var base64String = CryptoJS.enc.Base64url.stringify(wordArray); 3086 */ 3087 stringify: function(wordArray, urlSafe = true) { 3088 var words = wordArray.words; 3089 var sigBytes = wordArray.sigBytes; 3090 var map = urlSafe ? this._safe_map : this._map; 3091 wordArray.clamp(); 3092 var base64Chars = []; 3093 for (var i = 0; i < sigBytes; i += 3) { 3094 var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 255; 3095 var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255; 3096 var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255; 3097 var triplet = byte1 << 16 | byte2 << 8 | byte3; 3098 for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) { 3099 base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 63)); 3100 } 3101 } 3102 var paddingChar = map.charAt(64); 3103 if (paddingChar) { 3104 while (base64Chars.length % 4) { 3105 base64Chars.push(paddingChar); 3106 } 3107 } 3108 return base64Chars.join(""); 3109 }, 3110 /** 3111 * Converts a Base64url string to a word array. 3112 * 3113 * @param {string} base64Str The Base64url string. 3114 * 3115 * @param {boolean} urlSafe Whether to use url safe 3116 * 3117 * @return {WordArray} The word array. 3118 * 3119 * @static 3120 * 3121 * @example 3122 * 3123 * var wordArray = CryptoJS.enc.Base64url.parse(base64String); 3124 */ 3125 parse: function(base64Str, urlSafe = true) { 3126 var base64StrLength = base64Str.length; 3127 var map = urlSafe ? this._safe_map : this._map; 3128 var reverseMap = this._reverseMap; 3129 if (!reverseMap) { 3130 reverseMap = this._reverseMap = []; 3131 for (var j = 0; j < map.length; j++) { 3132 reverseMap[map.charCodeAt(j)] = j; 3133 } 3134 } 3135 var paddingChar = map.charAt(64); 3136 if (paddingChar) { 3137 var paddingIndex = base64Str.indexOf(paddingChar); 3138 if (paddingIndex !== -1) { 3139 base64StrLength = paddingIndex; 3140 } 3141 } 3142 return parseLoop(base64Str, base64StrLength, reverseMap); 3143 }, 3144 _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", 3145 _safe_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_" 3146 }; 3147 function parseLoop(base64Str, base64StrLength, reverseMap) { 3148 var words = []; 3149 var nBytes = 0; 3150 for (var i = 0; i < base64StrLength; i++) { 3151 if (i % 4) { 3152 var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2; 3153 var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2; 3154 var bitsCombined = bits1 | bits2; 3155 words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8; 3156 nBytes++; 3157 } 3158 } 3159 return WordArray.create(words, nBytes); 3160 } 3161 })(); 3162 return CryptoJS.enc.Base64url; 3163 }); 3164 } 3165 }); 3166 3167
vendor: 8,269 bytes, lines 3167-3346
3167// ../../../node_modules/crypto-js/md5.js 3168 var require_md5 = __commonJS({ 3169 "../../../node_modules/crypto-js/md5.js"(exports, module) { 3170 (function(root, factory) { 3171 if (typeof exports === "object") { 3172 module.exports = exports = factory(require_core()); 3173 } else if (typeof define === "function" && define.amd) { 3174 define(["./core"], factory); 3175 } else { 3176 factory(root.CryptoJS); 3177 } 3178 })(exports, function(CryptoJS) { 3179 (function(Math2) { 3180 var C = CryptoJS; 3181 var C_lib = C.lib; 3182 var WordArray = C_lib.WordArray; 3183 var Hasher = C_lib.Hasher; 3184 var C_algo = C.algo; 3185 var T = []; 3186 (function() { 3187 for (var i = 0; i < 64; i++) { 3188 T[i] = Math2.abs(Math2.sin(i + 1)) * 4294967296 | 0; 3189 } 3190 })(); 3191 var MD5 = C_algo.MD5 = Hasher.extend({ 3192 _doReset: function() { 3193 this._hash = new WordArray.init([ 3194 1732584193, 3195 4023233417, 3196 2562383102, 3197 271733878 3198 ]); 3199 }, 3200 _doProcessBlock: function(M, offset) { 3201 for (var i = 0; i < 16; i++) { 3202 var offset_i = offset + i; 3203 var M_offset_i = M[offset_i]; 3204 M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 16711935 | (M_offset_i << 24 | M_offset_i >>> 8) & 4278255360; 3205 } 3206 var H = this._hash.words; 3207 var M_offset_0 = M[offset + 0]; 3208 var M_offset_1 = M[offset + 1]; 3209 var M_offset_2 = M[offset + 2]; 3210 var M_offset_3 = M[offset + 3]; 3211 var M_offset_4 = M[offset + 4]; 3212 var M_offset_5 = M[offset + 5]; 3213 var M_offset_6 = M[offset + 6]; 3214 var M_offset_7 = M[offset + 7]; 3215 var M_offset_8 = M[offset + 8]; 3216 var M_offset_9 = M[offset + 9]; 3217 var M_offset_10 = M[offset + 10]; 3218 var M_offset_11 = M[offset + 11]; 3219 var M_offset_12 = M[offset + 12]; 3220 var M_offset_13 = M[offset + 13]; 3221 var M_offset_14 = M[offset + 14]; 3222 var M_offset_15 = M[offset + 15]; 3223 var a = H[0]; 3224 var b = H[1]; 3225 var c = H[2]; 3226 var d = H[3]; 3227 a = FF(a, b, c, d, M_offset_0, 7, T[0]); 3228 d = FF(d, a, b, c, M_offset_1, 12, T[1]); 3229 c = FF(c, d, a, b, M_offset_2, 17, T[2]); 3230 b = FF(b, c, d, a, M_offset_3, 22, T[3]); 3231 a = FF(a, b, c, d, M_offset_4, 7, T[4]); 3232 d = FF(d, a, b, c, M_offset_5, 12, T[5]); 3233 c = FF(c, d, a, b, M_offset_6, 17, T[6]); 3234 b = FF(b, c, d, a, M_offset_7, 22, T[7]); 3235 a = FF(a, b, c, d, M_offset_8, 7, T[8]); 3236 d = FF(d, a, b, c, M_offset_9, 12, T[9]); 3237 c = FF(c, d, a, b, M_offset_10, 17, T[10]); 3238 b = FF(b, c, d, a, M_offset_11, 22, T[11]); 3239 a = FF(a, b, c, d, M_offset_12, 7, T[12]); 3240 d = FF(d, a, b, c, M_offset_13, 12, T[13]); 3241 c = FF(c, d, a, b, M_offset_14, 17, T[14]); 3242 b = FF(b, c, d, a, M_offset_15, 22, T[15]); 3243 a = GG(a, b, c, d, M_offset_1, 5, T[16]); 3244 d = GG(d, a, b, c, M_offset_6, 9, T[17]); 3245 c = GG(c, d, a, b, M_offset_11, 14, T[18]); 3246 b = GG(b, c, d, a, M_offset_0, 20, T[19]); 3247 a = GG(a, b, c, d, M_offset_5, 5, T[20]); 3248 d = GG(d, a, b, c, M_offset_10, 9, T[21]); 3249 c = GG(c, d, a, b, M_offset_15, 14, T[22]); 3250 b = GG(b, c, d, a, M_offset_4, 20, T[23]); 3251 a = GG(a, b, c, d, M_offset_9, 5, T[24]); 3252 d = GG(d, a, b, c, M_offset_14, 9, T[25]); 3253 c = GG(c, d, a, b, M_offset_3, 14, T[26]); 3254 b = GG(b, c, d, a, M_offset_8, 20, T[27]); 3255 a = GG(a, b, c, d, M_offset_13, 5, T[28]); 3256 d = GG(d, a, b, c, M_offset_2, 9, T[29]); 3257 c = GG(c, d, a, b, M_offset_7, 14, T[30]); 3258 b = GG(b, c, d, a, M_offset_12, 20, T[31]); 3259 a = HH(a, b, c, d, M_offset_5, 4, T[32]); 3260 d = HH(d, a, b, c, M_offset_8, 11, T[33]); 3261 c = HH(c, d, a, b, M_offset_11, 16, T[34]); 3262 b = HH(b, c, d, a, M_offset_14, 23, T[35]); 3263 a = HH(a, b, c, d, M_offset_1, 4, T[36]); 3264 d = HH(d, a, b, c, M_offset_4, 11, T[37]); 3265 c = HH(c, d, a, b, M_offset_7, 16, T[38]); 3266 b = HH(b, c, d, a, M_offset_10, 23, T[39]); 3267 a = HH(a, b, c, d, M_offset_13, 4, T[40]); 3268 d = HH(d, a, b, c, M_offset_0, 11, T[41]); 3269 c = HH(c, d, a, b, M_offset_3, 16, T[42]); 3270 b = HH(b, c, d, a, M_offset_6, 23, T[43]); 3271 a = HH(a, b, c, d, M_offset_9, 4, T[44]); 3272 d = HH(d, a, b, c, M_offset_12, 11, T[45]); 3273 c = HH(c, d, a, b, M_offset_15, 16, T[46]); 3274 b = HH(b, c, d, a, M_offset_2, 23, T[47]); 3275 a = II(a, b, c, d, M_offset_0, 6, T[48]); 3276 d = II(d, a, b, c, M_offset_7, 10, T[49]); 3277 c = II(c, d, a, b, M_offset_14, 15, T[50]); 3278 b = II(b, c, d, a, M_offset_5, 21, T[51]); 3279 a = II(a, b, c, d, M_offset_12, 6, T[52]); 3280 d = II(d, a, b, c, M_offset_3, 10, T[53]); 3281 c = II(c, d, a, b, M_offset_10, 15, T[54]); 3282 b = II(b, c, d, a, M_offset_1, 21, T[55]); 3283 a = II(a, b, c, d, M_offset_8, 6, T[56]); 3284 d = II(d, a, b, c, M_offset_15, 10, T[57]); 3285 c = II(c, d, a, b, M_offset_6, 15, T[58]); 3286 b = II(b, c, d, a, M_offset_13, 21, T[59]); 3287 a = II(a, b, c, d, M_offset_4, 6, T[60]); 3288 d = II(d, a, b, c, M_offset_11, 10, T[61]); 3289 c = II(c, d, a, b, M_offset_2, 15, T[62]); 3290 b = II(b, c, d, a, M_offset_9, 21, T[63]); 3291 H[0] = H[0] + a | 0; 3292 H[1] = H[1] + b | 0; 3293 H[2] = H[2] + c | 0; 3294 H[3] = H[3] + d | 0; 3295 }, 3296 _doFinalize: function() { 3297 var data = this._data; 3298 var dataWords = data.words; 3299 var nBitsTotal = this._nDataBytes * 8; 3300 var nBitsLeft = data.sigBytes * 8; 3301 dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32; 3302 var nBitsTotalH = Math2.floor(nBitsTotal / 4294967296); 3303 var nBitsTotalL = nBitsTotal; 3304 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = (nBitsTotalH << 8 | nBitsTotalH >>> 24) & 16711935 | (nBitsTotalH << 24 | nBitsTotalH >>> 8) & 4278255360; 3305 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotalL << 8 | nBitsTotalL >>> 24) & 16711935 | (nBitsTotalL << 24 | nBitsTotalL >>> 8) & 4278255360; 3306 data.sigBytes = (dataWords.length + 1) * 4; 3307 this._process(); 3308 var hash = this._hash; 3309 var H = hash.words; 3310 for (var i = 0; i < 4; i++) { 3311 var H_i = H[i]; 3312 H[i] = (H_i << 8 | H_i >>> 24) & 16711935 | (H_i << 24 | H_i >>> 8) & 4278255360; 3313 } 3314 return hash; 3315 }, 3316 clone: function() { 3317 var clone = Hasher.clone.call(this); 3318 clone._hash = this._hash.clone(); 3319 return clone; 3320 } 3321 }); 3322 function FF(a, b, c, d, x, s, t) { 3323 var n = a + (b & c | ~b & d) + x + t; 3324 return (n << s | n >>> 32 - s) + b; 3325 } 3326 function GG(a, b, c, d, x, s, t) { 3327 var n = a + (b & d | c & ~d) + x + t; 3328 return (n << s | n >>> 32 - s) + b; 3329 } 3330 function HH(a, b, c, d, x, s, t) { 3331 var n = a + (b ^ c ^ d) + x + t; 3332 return (n << s | n >>> 32 - s) + b; 3333 } 3334 function II(a, b, c, d, x, s, t) { 3335 var n = a + (c ^ (b | ~d)) + x + t; 3336 return (n << s | n >>> 32 - s) + b; 3337 } 3338 C.MD5 = Hasher._createHelper(MD5); 3339 C.HmacMD5 = Hasher._createHmacHelper(MD5); 3340 })(Math); 3341 return CryptoJS.MD5; 3342 }); 3343 } 3344 }); 3345 3346
vendor: 3,210 bytes, lines 3346-3437
3346// ../../../node_modules/crypto-js/sha1.js 3347 var require_sha1 = __commonJS({ 3348 "../../../node_modules/crypto-js/sha1.js"(exports, module) { 3349 (function(root, factory) { 3350 if (typeof exports === "object") { 3351 module.exports = exports = factory(require_core()); 3352 } else if (typeof define === "function" && define.amd) { 3353 define(["./core"], factory); 3354 } else { 3355 factory(root.CryptoJS); 3356 } 3357 })(exports, function(CryptoJS) { 3358 (function() { 3359 var C = CryptoJS; 3360 var C_lib = C.lib; 3361 var WordArray = C_lib.WordArray; 3362 var Hasher = C_lib.Hasher; 3363 var C_algo = C.algo; 3364 var W = []; 3365 var SHA1 = C_algo.SHA1 = Hasher.extend({ 3366 _doReset: function() { 3367 this._hash = new WordArray.init([ 3368 1732584193, 3369 4023233417, 3370 2562383102, 3371 271733878, 3372 3285377520 3373 ]); 3374 }, 3375 _doProcessBlock: function(M, offset) { 3376 var H = this._hash.words; 3377 var a = H[0]; 3378 var b = H[1]; 3379 var c = H[2]; 3380 var d = H[3]; 3381 var e = H[4]; 3382 for (var i = 0; i < 80; i++) { 3383 if (i < 16) { 3384 W[i] = M[offset + i] | 0; 3385 } else { 3386 var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; 3387 W[i] = n << 1 | n >>> 31; 3388 } 3389 var t = (a << 5 | a >>> 27) + e + W[i]; 3390 if (i < 20) { 3391 t += (b & c | ~b & d) + 1518500249; 3392 } else if (i < 40) { 3393 t += (b ^ c ^ d) + 1859775393; 3394 } else if (i < 60) { 3395 t += (b & c | b & d | c & d) - 1894007588; 3396 } else { 3397 t += (b ^ c ^ d) - 899497514; 3398 } 3399 e = d; 3400 d = c; 3401 c = b << 30 | b >>> 2; 3402 b = a; 3403 a = t; 3404 } 3405 H[0] = H[0] + a | 0; 3406 H[1] = H[1] + b | 0; 3407 H[2] = H[2] + c | 0; 3408 H[3] = H[3] + d | 0; 3409 H[4] = H[4] + e | 0; 3410 }, 3411 _doFinalize: function() { 3412 var data = this._data; 3413 var dataWords = data.words; 3414 var nBitsTotal = this._nDataBytes * 8; 3415 var nBitsLeft = data.sigBytes * 8; 3416 dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32; 3417 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 4294967296); 3418 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal; 3419 data.sigBytes = dataWords.length * 4; 3420 this._process(); 3421 return this._hash; 3422 }, 3423 clone: function() { 3424 var clone = Hasher.clone.call(this); 3425 clone._hash = this._hash.clone(); 3426 return clone; 3427 } 3428 }); 3429 C.SHA1 = Hasher._createHelper(SHA1); 3430 C.HmacSHA1 = Hasher._createHmacHelper(SHA1); 3431 })(); 3432 return CryptoJS.SHA1; 3433 }); 3434 } 3435 }); 3436 3437
vendor: 4,475 bytes, lines 3437-3558
3437// ../../../node_modules/crypto-js/sha256.js 3438 var require_sha256 = __commonJS({ 3439 "../../../node_modules/crypto-js/sha256.js"(exports, module) { 3440 (function(root, factory) { 3441 if (typeof exports === "object") { 3442 module.exports = exports = factory(require_core()); 3443 } else if (typeof define === "function" && define.amd) { 3444 define(["./core"], factory); 3445 } else { 3446 factory(root.CryptoJS); 3447 } 3448 })(exports, function(CryptoJS) { 3449 (function(Math2) { 3450 var C = CryptoJS; 3451 var C_lib = C.lib; 3452 var WordArray = C_lib.WordArray; 3453 var Hasher = C_lib.Hasher; 3454 var C_algo = C.algo; 3455 var H = []; 3456 var K = []; 3457 (function() { 3458 function isPrime(n2) { 3459 var sqrtN = Math2.sqrt(n2); 3460 for (var factor = 2; factor <= sqrtN; factor++) { 3461 if (!(n2 % factor)) { 3462 return false; 3463 } 3464 } 3465 return true; 3466 } 3467 function getFractionalBits(n2) { 3468 return (n2 - (n2 | 0)) * 4294967296 | 0; 3469 } 3470 var n = 2; 3471 var nPrime = 0; 3472 while (nPrime < 64) { 3473 if (isPrime(n)) { 3474 if (nPrime < 8) { 3475 H[nPrime] = getFractionalBits(Math2.pow(n, 1 / 2)); 3476 } 3477 K[nPrime] = getFractionalBits(Math2.pow(n, 1 / 3)); 3478 nPrime++; 3479 } 3480 n++; 3481 } 3482 })(); 3483 var W = []; 3484 var SHA256 = C_algo.SHA256 = Hasher.extend({ 3485 _doReset: function() { 3486 this._hash = new WordArray.init(H.slice(0)); 3487 }, 3488 _doProcessBlock: function(M, offset) { 3489 var H2 = this._hash.words; 3490 var a = H2[0]; 3491 var b = H2[1]; 3492 var c = H2[2]; 3493 var d = H2[3]; 3494 var e = H2[4]; 3495 var f = H2[5]; 3496 var g = H2[6]; 3497 var h = H2[7]; 3498 for (var i = 0; i < 64; i++) { 3499 if (i < 16) { 3500 W[i] = M[offset + i] | 0; 3501 } else { 3502 var gamma0x = W[i - 15]; 3503 var gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3; 3504 var gamma1x = W[i - 2]; 3505 var gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10; 3506 W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; 3507 } 3508 var ch = e & f ^ ~e & g; 3509 var maj = a & b ^ a & c ^ b & c; 3510 var sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22); 3511 var sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25); 3512 var t1 = h + sigma1 + ch + K[i] + W[i]; 3513 var t2 = sigma0 + maj; 3514 h = g; 3515 g = f; 3516 f = e; 3517 e = d + t1 | 0; 3518 d = c; 3519 c = b; 3520 b = a; 3521 a = t1 + t2 | 0; 3522 } 3523 H2[0] = H2[0] + a | 0; 3524 H2[1] = H2[1] + b | 0; 3525 H2[2] = H2[2] + c | 0; 3526 H2[3] = H2[3] + d | 0; 3527 H2[4] = H2[4] + e | 0; 3528 H2[5] = H2[5] + f | 0; 3529 H2[6] = H2[6] + g | 0; 3530 H2[7] = H2[7] + h | 0; 3531 }, 3532 _doFinalize: function() { 3533 var data = this._data; 3534 var dataWords = data.words; 3535 var nBitsTotal = this._nDataBytes * 8; 3536 var nBitsLeft = data.sigBytes * 8; 3537 dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32; 3538 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math2.floor(nBitsTotal / 4294967296); 3539 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal; 3540 data.sigBytes = dataWords.length * 4; 3541 this._process(); 3542 return this._hash; 3543 }, 3544 clone: function() { 3545 var clone = Hasher.clone.call(this); 3546 clone._hash = this._hash.clone(); 3547 return clone; 3548 } 3549 }); 3550 C.SHA256 = Hasher._createHelper(SHA256); 3551 C.HmacSHA256 = Hasher._createHmacHelper(SHA256); 3552 })(Math); 3553 return CryptoJS.SHA256; 3554 }); 3555 } 3556 }); 3557 3558
vendor: 1,474 bytes, lines 3558-3603
3558// ../../../node_modules/crypto-js/sha224.js 3559 var require_sha224 = __commonJS({ 3560 "../../../node_modules/crypto-js/sha224.js"(exports, module) { 3561 (function(root, factory, undef) { 3562 if (typeof exports === "object") { 3563 module.exports = exports = factory(require_core(), require_sha256()); 3564 } else if (typeof define === "function" && define.amd) { 3565 define(["./core", "./sha256"], factory); 3566 } else { 3567 factory(root.CryptoJS); 3568 } 3569 })(exports, function(CryptoJS) { 3570 (function() { 3571 var C = CryptoJS; 3572 var C_lib = C.lib; 3573 var WordArray = C_lib.WordArray; 3574 var C_algo = C.algo; 3575 var SHA256 = C_algo.SHA256; 3576 var SHA224 = C_algo.SHA224 = SHA256.extend({ 3577 _doReset: function() { 3578 this._hash = new WordArray.init([ 3579 3238371032, 3580 914150663, 3581 812702999, 3582 4144912697, 3583 4290775857, 3584 1750603025, 3585 1694076839, 3586 3204075428 3587 ]); 3588 }, 3589 _doFinalize: function() { 3590 var hash = SHA256._doFinalize.call(this); 3591 hash.sigBytes -= 4; 3592 return hash; 3593 } 3594 }); 3595 C.SHA224 = SHA256._createHelper(SHA224); 3596 C.HmacSHA224 = SHA256._createHmacHelper(SHA224); 3597 })(); 3598 return CryptoJS.SHA224; 3599 }); 3600 } 3601 }); 3602 3603
vendor: 12,582 bytes, lines 3603-3885
3603// ../../../node_modules/crypto-js/sha512.js 3604 var require_sha512 = __commonJS({ 3605 "../../../node_modules/crypto-js/sha512.js"(exports, module) { 3606 (function(root, factory, undef) { 3607 if (typeof exports === "object") { 3608 module.exports = exports = factory(require_core(), require_x64_core()); 3609 } else if (typeof define === "function" && define.amd) { 3610 define(["./core", "./x64-core"], factory); 3611 } else { 3612 factory(root.CryptoJS); 3613 } 3614 })(exports, function(CryptoJS) { 3615 (function() { 3616 var C = CryptoJS; 3617 var C_lib = C.lib; 3618 var Hasher = C_lib.Hasher; 3619 var C_x64 = C.x64; 3620 var X64Word = C_x64.Word; 3621 var X64WordArray = C_x64.WordArray; 3622 var C_algo = C.algo; 3623 function X64Word_create() { 3624 return X64Word.create.apply(X64Word, arguments); 3625 } 3626 var K = [ 3627 X64Word_create(1116352408, 3609767458), 3628 X64Word_create(1899447441, 602891725), 3629 X64Word_create(3049323471, 3964484399), 3630 X64Word_create(3921009573, 2173295548), 3631 X64Word_create(961987163, 4081628472), 3632 X64Word_create(1508970993, 3053834265), 3633 X64Word_create(2453635748, 2937671579), 3634 X64Word_create(2870763221, 3664609560), 3635 X64Word_create(3624381080, 2734883394), 3636 X64Word_create(310598401, 1164996542), 3637 X64Word_create(607225278, 1323610764), 3638 X64Word_create(1426881987, 3590304994), 3639 X64Word_create(1925078388, 4068182383), 3640 X64Word_create(2162078206, 991336113), 3641 X64Word_create(2614888103, 633803317), 3642 X64Word_create(3248222580, 3479774868), 3643 X64Word_create(3835390401, 2666613458), 3644 X64Word_create(4022224774, 944711139), 3645 X64Word_create(264347078, 2341262773), 3646 X64Word_create(604807628, 2007800933), 3647 X64Word_create(770255983, 1495990901), 3648 X64Word_create(1249150122, 1856431235), 3649 X64Word_create(1555081692, 3175218132), 3650 X64Word_create(1996064986, 2198950837), 3651 X64Word_create(2554220882, 3999719339), 3652 X64Word_create(2821834349, 766784016), 3653 X64Word_create(2952996808, 2566594879), 3654 X64Word_create(3210313671, 3203337956), 3655 X64Word_create(3336571891, 1034457026), 3656 X64Word_create(3584528711, 2466948901), 3657 X64Word_create(113926993, 3758326383), 3658 X64Word_create(338241895, 168717936), 3659 X64Word_create(666307205, 1188179964), 3660 X64Word_create(773529912, 1546045734), 3661 X64Word_create(1294757372, 1522805485), 3662 X64Word_create(1396182291, 2643833823), 3663 X64Word_create(1695183700, 2343527390), 3664 X64Word_create(1986661051, 1014477480), 3665 X64Word_create(2177026350, 1206759142), 3666 X64Word_create(2456956037, 344077627), 3667 X64Word_create(2730485921, 1290863460), 3668 X64Word_create(2820302411, 3158454273), 3669 X64Word_create(3259730800, 3505952657), 3670 X64Word_create(3345764771, 106217008), 3671 X64Word_create(3516065817, 3606008344), 3672 X64Word_create(3600352804, 1432725776), 3673 X64Word_create(4094571909, 1467031594), 3674 X64Word_create(275423344, 851169720), 3675 X64Word_create(430227734, 3100823752), 3676 X64Word_create(506948616, 1363258195), 3677 X64Word_create(659060556, 3750685593), 3678 X64Word_create(883997877, 3785050280), 3679 X64Word_create(958139571, 3318307427), 3680 X64Word_create(1322822218, 3812723403), 3681 X64Word_create(1537002063, 2003034995), 3682 X64Word_create(1747873779, 3602036899), 3683 X64Word_create(1955562222, 1575990012), 3684 X64Word_create(2024104815, 1125592928), 3685 X64Word_create(2227730452, 2716904306), 3686 X64Word_create(2361852424, 442776044), 3687 X64Word_create(2428436474, 593698344), 3688 X64Word_create(2756734187, 3733110249), 3689 X64Word_create(3204031479, 2999351573), 3690 X64Word_create(3329325298, 3815920427), 3691 X64Word_create(3391569614, 3928383900), 3692 X64Word_create(3515267271, 566280711), 3693 X64Word_create(3940187606, 3454069534), 3694 X64Word_create(4118630271, 4000239992), 3695 X64Word_create(116418474, 1914138554), 3696 X64Word_create(174292421, 2731055270), 3697 X64Word_create(289380356, 3203993006), 3698 X64Word_create(460393269, 320620315), 3699 X64Word_create(685471733, 587496836), 3700 X64Word_create(852142971, 1086792851), 3701 X64Word_create(1017036298, 365543100), 3702 X64Word_create(1126000580, 2618297676), 3703 X64Word_create(1288033470, 3409855158), 3704 X64Word_create(1501505948, 4234509866), 3705 X64Word_create(1607167915, 987167468), 3706 X64Word_create(1816402316, 1246189591) 3707 ]; 3708 var W = []; 3709 (function() { 3710 for (var i = 0; i < 80; i++) { 3711 W[i] = X64Word_create(); 3712 } 3713 })(); 3714 var SHA512 = C_algo.SHA512 = Hasher.extend({ 3715 _doReset: function() { 3716 this._hash = new X64WordArray.init([ 3717 new X64Word.init(1779033703, 4089235720), 3718 new X64Word.init(3144134277, 2227873595), 3719 new X64Word.init(1013904242, 4271175723), 3720 new X64Word.init(2773480762, 1595750129), 3721 new X64Word.init(1359893119, 2917565137), 3722 new X64Word.init(2600822924, 725511199), 3723 new X64Word.init(528734635, 4215389547), 3724 new X64Word.init(1541459225, 327033209) 3725 ]); 3726 }, 3727 _doProcessBlock: function(M, offset) { 3728 var H = this._hash.words; 3729 var H0 = H[0]; 3730 var H1 = H[1]; 3731 var H2 = H[2]; 3732 var H3 = H[3]; 3733 var H4 = H[4]; 3734 var H5 = H[5]; 3735 var H6 = H[6]; 3736 var H7 = H[7]; 3737 var H0h = H0.high; 3738 var H0l = H0.low; 3739 var H1h = H1.high; 3740 var H1l = H1.low; 3741 var H2h = H2.high; 3742 var H2l = H2.low; 3743 var H3h = H3.high; 3744 var H3l = H3.low; 3745 var H4h = H4.high; 3746 var H4l = H4.low; 3747 var H5h = H5.high; 3748 var H5l = H5.low; 3749 var H6h = H6.high; 3750 var H6l = H6.low; 3751 var H7h = H7.high; 3752 var H7l = H7.low; 3753 var ah = H0h; 3754 var al = H0l; 3755 var bh = H1h; 3756 var bl = H1l; 3757 var ch = H2h; 3758 var cl = H2l; 3759 var dh = H3h; 3760 var dl = H3l; 3761 var eh = H4h; 3762 var el = H4l; 3763 var fh = H5h; 3764 var fl = H5l; 3765 var gh = H6h; 3766 var gl = H6l; 3767 var hh = H7h; 3768 var hl = H7l; 3769 for (var i = 0; i < 80; i++) { 3770 var Wil; 3771 var Wih; 3772 var Wi = W[i]; 3773 if (i < 16) { 3774 Wih = Wi.high = M[offset + i * 2] | 0; 3775 Wil = Wi.low = M[offset + i * 2 + 1] | 0; 3776 } else { 3777 var gamma0x = W[i - 15]; 3778 var gamma0xh = gamma0x.high; 3779 var gamma0xl = gamma0x.low; 3780 var gamma0h = (gamma0xh >>> 1 | gamma0xl << 31) ^ (gamma0xh >>> 8 | gamma0xl << 24) ^ gamma0xh >>> 7; 3781 var gamma0l = (gamma0xl >>> 1 | gamma0xh << 31) ^ (gamma0xl >>> 8 | gamma0xh << 24) ^ (gamma0xl >>> 7 | gamma0xh << 25); 3782 var gamma1x = W[i - 2]; 3783 var gamma1xh = gamma1x.high; 3784 var gamma1xl = gamma1x.low; 3785 var gamma1h = (gamma1xh >>> 19 | gamma1xl << 13) ^ (gamma1xh << 3 | gamma1xl >>> 29) ^ gamma1xh >>> 6; 3786 var gamma1l = (gamma1xl >>> 19 | gamma1xh << 13) ^ (gamma1xl << 3 | gamma1xh >>> 29) ^ (gamma1xl >>> 6 | gamma1xh << 26); 3787 var Wi7 = W[i - 7]; 3788 var Wi7h = Wi7.high; 3789 var Wi7l = Wi7.low; 3790 var Wi16 = W[i - 16]; 3791 var Wi16h = Wi16.high; 3792 var Wi16l = Wi16.low; 3793 Wil = gamma0l + Wi7l; 3794 Wih = gamma0h + Wi7h + (Wil >>> 0 < gamma0l >>> 0 ? 1 : 0); 3795 Wil = Wil + gamma1l; 3796 Wih = Wih + gamma1h + (Wil >>> 0 < gamma1l >>> 0 ? 1 : 0); 3797 Wil = Wil + Wi16l; 3798 Wih = Wih + Wi16h + (Wil >>> 0 < Wi16l >>> 0 ? 1 : 0); 3799 Wi.high = Wih; 3800 Wi.low = Wil; 3801 } 3802 var chh = eh & fh ^ ~eh & gh; 3803 var chl = el & fl ^ ~el & gl; 3804 var majh = ah & bh ^ ah & ch ^ bh & ch; 3805 var majl = al & bl ^ al & cl ^ bl & cl; 3806 var sigma0h = (ah >>> 28 | al << 4) ^ (ah << 30 | al >>> 2) ^ (ah << 25 | al >>> 7); 3807 var sigma0l = (al >>> 28 | ah << 4) ^ (al << 30 | ah >>> 2) ^ (al << 25 | ah >>> 7); 3808 var sigma1h = (eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9); 3809 var sigma1l = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9); 3810 var Ki = K[i]; 3811 var Kih = Ki.high; 3812 var Kil = Ki.low; 3813 var t1l = hl + sigma1l; 3814 var t1h = hh + sigma1h + (t1l >>> 0 < hl >>> 0 ? 1 : 0); 3815 var t1l = t1l + chl; 3816 var t1h = t1h + chh + (t1l >>> 0 < chl >>> 0 ? 1 : 0); 3817 var t1l = t1l + Kil; 3818 var t1h = t1h + Kih + (t1l >>> 0 < Kil >>> 0 ? 1 : 0); 3819 var t1l = t1l + Wil; 3820 var t1h = t1h + Wih + (t1l >>> 0 < Wil >>> 0 ? 1 : 0); 3821 var t2l = sigma0l + majl; 3822 var t2h = sigma0h + majh + (t2l >>> 0 < sigma0l >>> 0 ? 1 : 0); 3823 hh = gh; 3824 hl = gl; 3825 gh = fh; 3826 gl = fl; 3827 fh = eh; 3828 fl = el; 3829 el = dl + t1l | 0; 3830 eh = dh + t1h + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; 3831 dh = ch; 3832 dl = cl; 3833 ch = bh; 3834 cl = bl; 3835 bh = ah; 3836 bl = al; 3837 al = t1l + t2l | 0; 3838 ah = t1h + t2h + (al >>> 0 < t1l >>> 0 ? 1 : 0) | 0; 3839 } 3840 H0l = H0.low = H0l + al; 3841 H0.high = H0h + ah + (H0l >>> 0 < al >>> 0 ? 1 : 0); 3842 H1l = H1.low = H1l + bl; 3843 H1.high = H1h + bh + (H1l >>> 0 < bl >>> 0 ? 1 : 0); 3844 H2l = H2.low = H2l + cl; 3845 H2.high = H2h + ch + (H2l >>> 0 < cl >>> 0 ? 1 : 0); 3846 H3l = H3.low = H3l + dl; 3847 H3.high = H3h + dh + (H3l >>> 0 < dl >>> 0 ? 1 : 0); 3848 H4l = H4.low = H4l + el; 3849 H4.high = H4h + eh + (H4l >>> 0 < el >>> 0 ? 1 : 0); 3850 H5l = H5.low = H5l + fl; 3851 H5.high = H5h + fh + (H5l >>> 0 < fl >>> 0 ? 1 : 0); 3852 H6l = H6.low = H6l + gl; 3853 H6.high = H6h + gh + (H6l >>> 0 < gl >>> 0 ? 1 : 0); 3854 H7l = H7.low = H7l + hl; 3855 H7.high = H7h + hh + (H7l >>> 0 < hl >>> 0 ? 1 : 0); 3856 }, 3857 _doFinalize: function() { 3858 var data = this._data; 3859 var dataWords = data.words; 3860 var nBitsTotal = this._nDataBytes * 8; 3861 var nBitsLeft = data.sigBytes * 8; 3862 dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32; 3863 dataWords[(nBitsLeft + 128 >>> 10 << 5) + 30] = Math.floor(nBitsTotal / 4294967296); 3864 dataWords[(nBitsLeft + 128 >>> 10 << 5) + 31] = nBitsTotal; 3865 data.sigBytes = dataWords.length * 4; 3866 this._process(); 3867 var hash = this._hash.toX32(); 3868 return hash; 3869 }, 3870 clone: function() { 3871 var clone = Hasher.clone.call(this); 3872 clone._hash = this._hash.clone(); 3873 return clone; 3874 }, 3875 blockSize: 1024 / 32 3876 }); 3877 C.SHA512 = Hasher._createHelper(SHA512); 3878 C.HmacSHA512 = Hasher._createHmacHelper(SHA512); 3879 })(); 3880 return CryptoJS.SHA512; 3881 }); 3882 } 3883 }); 3884 3885
vendor: 1,790 bytes, lines 3885-3931
3885// ../../../node_modules/crypto-js/sha384.js 3886 var require_sha384 = __commonJS({ 3887 "../../../node_modules/crypto-js/sha384.js"(exports, module) { 3888 (function(root, factory, undef) { 3889 if (typeof exports === "object") { 3890 module.exports = exports = factory(require_core(), require_x64_core(), require_sha512()); 3891 } else if (typeof define === "function" && define.amd) { 3892 define(["./core", "./x64-core", "./sha512"], factory); 3893 } else { 3894 factory(root.CryptoJS); 3895 } 3896 })(exports, function(CryptoJS) { 3897 (function() { 3898 var C = CryptoJS; 3899 var C_x64 = C.x64; 3900 var X64Word = C_x64.Word; 3901 var X64WordArray = C_x64.WordArray; 3902 var C_algo = C.algo; 3903 var SHA512 = C_algo.SHA512; 3904 var SHA384 = C_algo.SHA384 = SHA512.extend({ 3905 _doReset: function() { 3906 this._hash = new X64WordArray.init([ 3907 new X64Word.init(3418070365, 3238371032), 3908 new X64Word.init(1654270250, 914150663), 3909 new X64Word.init(2438529370, 812702999), 3910 new X64Word.init(355462360, 4144912697), 3911 new X64Word.init(1731405415, 4290775857), 3912 new X64Word.init(2394180231, 1750603025), 3913 new X64Word.init(3675008525, 1694076839), 3914 new X64Word.init(1203062813, 3204075428) 3915 ]); 3916 }, 3917 _doFinalize: function() { 3918 var hash = SHA512._doFinalize.call(this); 3919 hash.sigBytes -= 16; 3920 return hash; 3921 } 3922 }); 3923 C.SHA384 = SHA512._createHelper(SHA384); 3924 C.HmacSHA384 = SHA512._createHmacHelper(SHA384); 3925 })(); 3926 return CryptoJS.SHA384; 3927 }); 3928 } 3929 }); 3930 3931
vendor: 8,255 bytes, lines 3931-4133
3931// ../../../node_modules/crypto-js/sha3.js 3932 var require_sha3 = __commonJS({ 3933 "../../../node_modules/crypto-js/sha3.js"(exports, module) { 3934 (function(root, factory, undef) { 3935 if (typeof exports === "object") { 3936 module.exports = exports = factory(require_core(), require_x64_core()); 3937 } else if (typeof define === "function" && define.amd) { 3938 define(["./core", "./x64-core"], factory); 3939 } else { 3940 factory(root.CryptoJS); 3941 } 3942 })(exports, function(CryptoJS) { 3943 (function(Math2) { 3944 var C = CryptoJS; 3945 var C_lib = C.lib; 3946 var WordArray = C_lib.WordArray; 3947 var Hasher = C_lib.Hasher; 3948 var C_x64 = C.x64; 3949 var X64Word = C_x64.Word; 3950 var C_algo = C.algo; 3951 var RHO_OFFSETS = []; 3952 var PI_INDEXES = []; 3953 var ROUND_CONSTANTS = []; 3954 (function() { 3955 var x = 1, y = 0; 3956 for (var t = 0; t < 24; t++) { 3957 RHO_OFFSETS[x + 5 * y] = (t + 1) * (t + 2) / 2 % 64; 3958 var newX = y % 5; 3959 var newY = (2 * x + 3 * y) % 5; 3960 x = newX; 3961 y = newY; 3962 } 3963 for (var x = 0; x < 5; x++) { 3964 for (var y = 0; y < 5; y++) { 3965 PI_INDEXES[x + 5 * y] = y + (2 * x + 3 * y) % 5 * 5; 3966 } 3967 } 3968 var LFSR = 1; 3969 for (var i = 0; i < 24; i++) { 3970 var roundConstantMsw = 0; 3971 var roundConstantLsw = 0; 3972 for (var j = 0; j < 7; j++) { 3973 if (LFSR & 1) { 3974 var bitPosition = (1 << j) - 1; 3975 if (bitPosition < 32) { 3976 roundConstantLsw ^= 1 << bitPosition; 3977 } else { 3978 roundConstantMsw ^= 1 << bitPosition - 32; 3979 } 3980 } 3981 if (LFSR & 128) { 3982 LFSR = LFSR << 1 ^ 113; 3983 } else { 3984 LFSR <<= 1; 3985 } 3986 } 3987 ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw); 3988 } 3989 })(); 3990 var T = []; 3991 (function() { 3992 for (var i = 0; i < 25; i++) { 3993 T[i] = X64Word.create(); 3994 } 3995 })(); 3996 var SHA3 = C_algo.SHA3 = Hasher.extend({ 3997 /** 3998 * Configuration options. 3999 * 4000 * @property {number} outputLength 4001 * The desired number of bits in the output hash. 4002 * Only values permitted are: 224, 256, 384, 512. 4003 * Default: 512 4004 */ 4005 cfg: Hasher.cfg.extend({ 4006 outputLength: 512 4007 }), 4008 _doReset: function() { 4009 var state = this._state = []; 4010 for (var i = 0; i < 25; i++) { 4011 state[i] = new X64Word.init(); 4012 } 4013 this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; 4014 }, 4015 _doProcessBlock: function(M, offset) { 4016 var state = this._state; 4017 var nBlockSizeLanes = this.blockSize / 2; 4018 for (var i = 0; i < nBlockSizeLanes; i++) { 4019 var M2i = M[offset + 2 * i]; 4020 var M2i1 = M[offset + 2 * i + 1]; 4021 M2i = (M2i << 8 | M2i >>> 24) & 16711935 | (M2i << 24 | M2i >>> 8) & 4278255360; 4022 M2i1 = (M2i1 << 8 | M2i1 >>> 24) & 16711935 | (M2i1 << 24 | M2i1 >>> 8) & 4278255360; 4023 var lane = state[i]; 4024 lane.high ^= M2i1; 4025 lane.low ^= M2i; 4026 } 4027 for (var round = 0; round < 24; round++) { 4028 for (var x = 0; x < 5; x++) { 4029 var tMsw = 0, tLsw = 0; 4030 for (var y = 0; y < 5; y++) { 4031 var lane = state[x + 5 * y]; 4032 tMsw ^= lane.high; 4033 tLsw ^= lane.low; 4034 } 4035 var Tx = T[x]; 4036 Tx.high = tMsw; 4037 Tx.low = tLsw; 4038 } 4039 for (var x = 0; x < 5; x++) { 4040 var Tx4 = T[(x + 4) % 5]; 4041 var Tx1 = T[(x + 1) % 5]; 4042 var Tx1Msw = Tx1.high; 4043 var Tx1Lsw = Tx1.low; 4044 var tMsw = Tx4.high ^ (Tx1Msw << 1 | Tx1Lsw >>> 31); 4045 var tLsw = Tx4.low ^ (Tx1Lsw << 1 | Tx1Msw >>> 31); 4046 for (var y = 0; y < 5; y++) { 4047 var lane = state[x + 5 * y]; 4048 lane.high ^= tMsw; 4049 lane.low ^= tLsw; 4050 } 4051 } 4052 for (var laneIndex = 1; laneIndex < 25; laneIndex++) { 4053 var tMsw; 4054 var tLsw; 4055 var lane = state[laneIndex]; 4056 var laneMsw = lane.high; 4057 var laneLsw = lane.low; 4058 var rhoOffset = RHO_OFFSETS[laneIndex]; 4059 if (rhoOffset < 32) { 4060 tMsw = laneMsw << rhoOffset | laneLsw >>> 32 - rhoOffset; 4061 tLsw = laneLsw << rhoOffset | laneMsw >>> 32 - rhoOffset; 4062 } else { 4063 tMsw = laneLsw << rhoOffset - 32 | laneMsw >>> 64 - rhoOffset; 4064 tLsw = laneMsw << rhoOffset - 32 | laneLsw >>> 64 - rhoOffset; 4065 } 4066 var TPiLane = T[PI_INDEXES[laneIndex]]; 4067 TPiLane.high = tMsw; 4068 TPiLane.low = tLsw; 4069 } 4070 var T0 = T[0]; 4071 var state0 = state[0]; 4072 T0.high = state0.high; 4073 T0.low = state0.low; 4074 for (var x = 0; x < 5; x++) { 4075 for (var y = 0; y < 5; y++) { 4076 var laneIndex = x + 5 * y; 4077 var lane = state[laneIndex]; 4078 var TLane = T[laneIndex]; 4079 var Tx1Lane = T[(x + 1) % 5 + 5 * y]; 4080 var Tx2Lane = T[(x + 2) % 5 + 5 * y]; 4081 lane.high = TLane.high ^ ~Tx1Lane.high & Tx2Lane.high; 4082 lane.low = TLane.low ^ ~Tx1Lane.low & Tx2Lane.low; 4083 } 4084 } 4085 var lane = state[0]; 4086 var roundConstant = ROUND_CONSTANTS[round]; 4087 lane.high ^= roundConstant.high; 4088 lane.low ^= roundConstant.low; 4089 } 4090 }, 4091 _doFinalize: function() { 4092 var data = this._data; 4093 var dataWords = data.words; 4094 var nBitsTotal = this._nDataBytes * 8; 4095 var nBitsLeft = data.sigBytes * 8; 4096 var blockSizeBits = this.blockSize * 32; 4097 dataWords[nBitsLeft >>> 5] |= 1 << 24 - nBitsLeft % 32; 4098 dataWords[(Math2.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits >>> 5) - 1] |= 128; 4099 data.sigBytes = dataWords.length * 4; 4100 this._process(); 4101 var state = this._state; 4102 var outputLengthBytes = this.cfg.outputLength / 8; 4103 var outputLengthLanes = outputLengthBytes / 8; 4104 var hashWords = []; 4105 for (var i = 0; i < outputLengthLanes; i++) { 4106 var lane = state[i]; 4107 var laneMsw = lane.high; 4108 var laneLsw = lane.low; 4109 laneMsw = (laneMsw << 8 | laneMsw >>> 24) & 16711935 | (laneMsw << 24 | laneMsw >>> 8) & 4278255360; 4110 laneLsw = (laneLsw << 8 | laneLsw >>> 24) & 16711935 | (laneLsw << 24 | laneLsw >>> 8) & 4278255360; 4111 hashWords.push(laneLsw); 4112 hashWords.push(laneMsw); 4113 } 4114 return new WordArray.init(hashWords, outputLengthBytes); 4115 }, 4116 clone: function() { 4117 var clone = Hasher.clone.call(this); 4118 var state = clone._state = this._state.slice(0); 4119 for (var i = 0; i < 25; i++) { 4120 state[i] = state[i].clone(); 4121 } 4122 return clone; 4123 } 4124 }); 4125 C.SHA3 = Hasher._createHelper(SHA3); 4126 C.HmacSHA3 = Hasher._createHmacHelper(SHA3); 4127 })(Math); 4128 return CryptoJS.SHA3; 4129 }); 4130 } 4131 }); 4132 4133
vendor: 10,473 bytes, lines 4133-4604
4133// ../../../node_modules/crypto-js/ripemd160.js 4134 var require_ripemd160 = __commonJS({ 4135 "../../../node_modules/crypto-js/ripemd160.js"(exports, module) { 4136 (function(root, factory) { 4137 if (typeof exports === "object") { 4138 module.exports = exports = factory(require_core()); 4139 } else if (typeof define === "function" && define.amd) { 4140 define(["./core"], factory); 4141 } else { 4142 factory(root.CryptoJS); 4143 } 4144 })(exports, function(CryptoJS) { 4145 (function(Math2) { 4146 var C = CryptoJS; 4147 var C_lib = C.lib; 4148 var WordArray = C_lib.WordArray; 4149 var Hasher = C_lib.Hasher; 4150 var C_algo = C.algo; 4151 var _zl = WordArray.create([ 4152 0, 4153 1, 4154 2, 4155 3, 4156 4, 4157 5, 4158 6, 4159 7, 4160 8, 4161 9, 4162 10, 4163 11, 4164 12, 4165 13, 4166 14, 4167 15, 4168 7, 4169 4, 4170 13, 4171 1, 4172 10, 4173 6, 4174 15, 4175 3, 4176 12, 4177 0, 4178 9, 4179 5, 4180 2, 4181 14, 4182 11, 4183 8, 4184 3, 4185 10, 4186 14, 4187 4, 4188 9, 4189 15, 4190 8, 4191 1, 4192 2, 4193 7, 4194 0, 4195 6, 4196 13, 4197 11, 4198 5, 4199 12, 4200 1, 4201 9, 4202 11, 4203 10, 4204 0, 4205 8, 4206 12, 4207 4, 4208 13, 4209 3, 4210 7, 4211 15, 4212 14, 4213 5, 4214 6, 4215 2, 4216 4, 4217 0, 4218 5, 4219 9, 4220 7, 4221 12, 4222 2, 4223 10, 4224 14, 4225 1, 4226 3, 4227 8, 4228 11, 4229 6, 4230 15, 4231 13 4232 ]); 4233 var _zr = WordArray.create([ 4234 5, 4235 14, 4236 7, 4237 0, 4238 9, 4239 2, 4240 11, 4241 4, 4242 13, 4243 6, 4244 15, 4245 8, 4246 1, 4247 10, 4248 3, 4249 12, 4250 6, 4251 11, 4252 3, 4253 7, 4254 0, 4255 13, 4256 5, 4257 10, 4258 14, 4259 15, 4260 8, 4261 12, 4262 4, 4263 9, 4264 1, 4265 2, 4266 15, 4267 5, 4268 1, 4269 3, 4270 7, 4271 14, 4272 6, 4273 9, 4274 11, 4275 8, 4276 12, 4277 2, 4278 10, 4279 0, 4280 4, 4281 13, 4282 8, 4283 6, 4284 4, 4285 1, 4286 3, 4287 11, 4288 15, 4289 0, 4290 5, 4291 12, 4292 2, 4293 13, 4294 9, 4295 7, 4296 10, 4297 14, 4298 12, 4299 15, 4300 10, 4301 4, 4302 1, 4303 5, 4304 8, 4305 7, 4306 6, 4307 2, 4308 13, 4309 14, 4310 0, 4311 3, 4312 9, 4313 11 4314 ]); 4315 var _sl = WordArray.create([ 4316 11, 4317 14, 4318 15, 4319 12, 4320 5, 4321 8, 4322 7, 4323 9, 4324 11, 4325 13, 4326 14, 4327 15, 4328 6, 4329 7, 4330 9, 4331 8, 4332 7, 4333 6, 4334 8, 4335 13, 4336 11, 4337 9, 4338 7, 4339 15, 4340 7, 4341 12, 4342 15, 4343 9, 4344 11, 4345 7, 4346 13, 4347 12, 4348 11, 4349 13, 4350 6, 4351 7, 4352 14, 4353 9, 4354 13, 4355 15, 4356 14, 4357 8, 4358 13, 4359 6, 4360 5, 4361 12, 4362 7, 4363 5, 4364 11, 4365 12, 4366 14, 4367 15, 4368 14, 4369 15, 4370 9, 4371 8, 4372 9, 4373 14, 4374 5, 4375 6, 4376 8, 4377 6, 4378 5, 4379 12, 4380 9, 4381 15, 4382 5, 4383 11, 4384 6, 4385 8, 4386 13, 4387 12, 4388 5, 4389 12, 4390 13, 4391 14, 4392 11, 4393 8, 4394 5, 4395 6 4396 ]); 4397 var _sr = WordArray.create([ 4398 8, 4399 9, 4400 9, 4401 11, 4402 13, 4403 15, 4404 15, 4405 5, 4406 7, 4407 7, 4408 8, 4409 11, 4410 14, 4411 14, 4412 12, 4413 6, 4414 9, 4415 13, 4416 15, 4417 7, 4418 12, 4419 8, 4420 9, 4421 11, 4422 7, 4423 7, 4424 12, 4425 7, 4426 6, 4427 15, 4428 13, 4429 11, 4430 9, 4431 7, 4432 15, 4433 11, 4434 8, 4435 6, 4436 6, 4437 14, 4438 12, 4439 13, 4440 5, 4441 14, 4442 13, 4443 13, 4444 7, 4445 5, 4446 15, 4447 5, 4448 8, 4449 11, 4450 14, 4451 14, 4452 6, 4453 14, 4454 6, 4455 9, 4456 12, 4457 9, 4458 12, 4459 5, 4460 15, 4461 8, 4462 8, 4463 5, 4464 12, 4465 9, 4466 12, 4467 5, 4468 14, 4469 6, 4470 8, 4471 13, 4472 6, 4473 5, 4474 15, 4475 13, 4476 11, 4477 11 4478 ]); 4479 var _hl = WordArray.create([0, 1518500249, 1859775393, 2400959708, 2840853838]); 4480 var _hr = WordArray.create([1352829926, 1548603684, 1836072691, 2053994217, 0]); 4481 var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({ 4482 _doReset: function() { 4483 this._hash = WordArray.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); 4484 }, 4485 _doProcessBlock: function(M, offset) { 4486 for (var i = 0; i < 16; i++) { 4487 var offset_i = offset + i; 4488 var M_offset_i = M[offset_i]; 4489 M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 16711935 | (M_offset_i << 24 | M_offset_i >>> 8) & 4278255360; 4490 } 4491 var H = this._hash.words; 4492 var hl = _hl.words; 4493 var hr = _hr.words; 4494 var zl = _zl.words; 4495 var zr = _zr.words; 4496 var sl = _sl.words; 4497 var sr = _sr.words; 4498 var al, bl, cl, dl, el; 4499 var ar, br, cr, dr, er; 4500 ar = al = H[0]; 4501 br = bl = H[1]; 4502 cr = cl = H[2]; 4503 dr = dl = H[3]; 4504 er = el = H[4]; 4505 var t; 4506 for (var i = 0; i < 80; i += 1) { 4507 t = al + M[offset + zl[i]] | 0; 4508 if (i < 16) { 4509 t += f1(bl, cl, dl) + hl[0]; 4510 } else if (i < 32) { 4511 t += f2(bl, cl, dl) + hl[1]; 4512 } else if (i < 48) { 4513 t += f3(bl, cl, dl) + hl[2]; 4514 } else if (i < 64) { 4515 t += f4(bl, cl, dl) + hl[3]; 4516 } else { 4517 t += f5(bl, cl, dl) + hl[4]; 4518 } 4519 t = t | 0; 4520 t = rotl(t, sl[i]); 4521 t = t + el | 0; 4522 al = el; 4523 el = dl; 4524 dl = rotl(cl, 10); 4525 cl = bl; 4526 bl = t; 4527 t = ar + M[offset + zr[i]] | 0; 4528 if (i < 16) { 4529 t += f5(br, cr, dr) + hr[0]; 4530 } else if (i < 32) { 4531 t += f4(br, cr, dr) + hr[1]; 4532 } else if (i < 48) { 4533 t += f3(br, cr, dr) + hr[2]; 4534 } else if (i < 64) { 4535 t += f2(br, cr, dr) + hr[3]; 4536 } else { 4537 t += f1(br, cr, dr) + hr[4]; 4538 } 4539 t = t | 0; 4540 t = rotl(t, sr[i]); 4541 t = t + er | 0; 4542 ar = er; 4543 er = dr; 4544 dr = rotl(cr, 10); 4545 cr = br; 4546 br = t; 4547 } 4548 t = H[1] + cl + dr | 0; 4549 H[1] = H[2] + dl + er | 0; 4550 H[2] = H[3] + el + ar | 0; 4551 H[3] = H[4] + al + br | 0; 4552 H[4] = H[0] + bl + cr | 0; 4553 H[0] = t; 4554 }, 4555 _doFinalize: function() { 4556 var data = this._data; 4557 var dataWords = data.words; 4558 var nBitsTotal = this._nDataBytes * 8; 4559 var nBitsLeft = data.sigBytes * 8; 4560 dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32; 4561 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotal << 8 | nBitsTotal >>> 24) & 16711935 | (nBitsTotal << 24 | nBitsTotal >>> 8) & 4278255360; 4562 data.sigBytes = (dataWords.length + 1) * 4; 4563 this._process(); 4564 var hash = this._hash; 4565 var H = hash.words; 4566 for (var i = 0; i < 5; i++) { 4567 var H_i = H[i]; 4568 H[i] = (H_i << 8 | H_i >>> 24) & 16711935 | (H_i << 24 | H_i >>> 8) & 4278255360; 4569 } 4570 return hash; 4571 }, 4572 clone: function() { 4573 var clone = Hasher.clone.call(this); 4574 clone._hash = this._hash.clone(); 4575 return clone; 4576 } 4577 }); 4578 function f1(x, y, z) { 4579 return x ^ y ^ z; 4580 } 4581 function f2(x, y, z) { 4582 return x & y | ~x & z; 4583 } 4584 function f3(x, y, z) { 4585 return (x | ~y) ^ z; 4586 } 4587 function f4(x, y, z) { 4588 return x & z | y & ~z; 4589 } 4590 function f5(x, y, z) { 4591 return x ^ (y | ~z); 4592 } 4593 function rotl(x, n) { 4594 return x << n | x >>> 32 - n; 4595 } 4596 C.RIPEMD160 = Hasher._createHelper(RIPEMD160); 4597 C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160); 4598 })(Math); 4599 return CryptoJS.RIPEMD160; 4600 }); 4601 } 4602 }); 4603 4604
vendor: 3,816 bytes, lines 4604-4711
4604// ../../../node_modules/crypto-js/hmac.js 4605 var require_hmac = __commonJS({ 4606 "../../../node_modules/crypto-js/hmac.js"(exports, module) { 4607 (function(root, factory) { 4608 if (typeof exports === "object") { 4609 module.exports = exports = factory(require_core()); 4610 } else if (typeof define === "function" && define.amd) { 4611 define(["./core"], factory); 4612 } else { 4613 factory(root.CryptoJS); 4614 } 4615 })(exports, function(CryptoJS) { 4616 (function() { 4617 var C = CryptoJS; 4618 var C_lib = C.lib; 4619 var Base = C_lib.Base; 4620 var C_enc = C.enc; 4621 var Utf8 = C_enc.Utf8; 4622 var C_algo = C.algo; 4623 var HMAC = C_algo.HMAC = Base.extend({ 4624 /** 4625 * Initializes a newly created HMAC. 4626 * 4627 * @param {Hasher} hasher The hash algorithm to use. 4628 * @param {WordArray|string} key The secret key. 4629 * 4630 * @example 4631 * 4632 * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); 4633 */ 4634 init: function(hasher, key) { 4635 hasher = this._hasher = new hasher.init(); 4636 if (typeof key == "string") { 4637 key = Utf8.parse(key); 4638 } 4639 var hasherBlockSize = hasher.blockSize; 4640 var hasherBlockSizeBytes = hasherBlockSize * 4; 4641 if (key.sigBytes > hasherBlockSizeBytes) { 4642 key = hasher.finalize(key); 4643 } 4644 key.clamp(); 4645 var oKey = this._oKey = key.clone(); 4646 var iKey = this._iKey = key.clone(); 4647 var oKeyWords = oKey.words; 4648 var iKeyWords = iKey.words; 4649 for (var i = 0; i < hasherBlockSize; i++) { 4650 oKeyWords[i] ^= 1549556828; 4651 iKeyWords[i] ^= 909522486; 4652 } 4653 oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; 4654 this.reset(); 4655 }, 4656 /** 4657 * Resets this HMAC to its initial state. 4658 * 4659 * @example 4660 * 4661 * hmacHasher.reset(); 4662 */ 4663 reset: function() { 4664 var hasher = this._hasher; 4665 hasher.reset(); 4666 hasher.update(this._iKey); 4667 }, 4668 /** 4669 * Updates this HMAC with a message. 4670 * 4671 * @param {WordArray|string} messageUpdate The message to append. 4672 * 4673 * @return {HMAC} This HMAC instance. 4674 * 4675 * @example 4676 * 4677 * hmacHasher.update('message'); 4678 * hmacHasher.update(wordArray); 4679 */ 4680 update: function(messageUpdate) { 4681 this._hasher.update(messageUpdate); 4682 return this; 4683 }, 4684 /** 4685 * Finalizes the HMAC computation. 4686 * Note that the finalize operation is effectively a destructive, read-once operation. 4687 * 4688 * @param {WordArray|string} messageUpdate (Optional) A final message update. 4689 * 4690 * @return {WordArray} The HMAC. 4691 * 4692 * @example 4693 * 4694 * var hmac = hmacHasher.finalize(); 4695 * var hmac = hmacHasher.finalize('message'); 4696 * var hmac = hmacHasher.finalize(wordArray); 4697 */ 4698 finalize: function(messageUpdate) { 4699 var hasher = this._hasher; 4700 var innerHash = hasher.finalize(messageUpdate); 4701 hasher.reset(); 4702 var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); 4703 return hmac; 4704 } 4705 }); 4706 })(); 4707 }); 4708 } 4709 }); 4710 4711
vendor: 3,868 bytes, lines 4711-4809
4711// ../../../node_modules/crypto-js/pbkdf2.js 4712 var require_pbkdf2 = __commonJS({ 4713 "../../../node_modules/crypto-js/pbkdf2.js"(exports, module) { 4714 (function(root, factory, undef) { 4715 if (typeof exports === "object") { 4716 module.exports = exports = factory(require_core(), require_sha1(), require_hmac()); 4717 } else if (typeof define === "function" && define.amd) { 4718 define(["./core", "./sha1", "./hmac"], factory); 4719 } else { 4720 factory(root.CryptoJS); 4721 } 4722 })(exports, function(CryptoJS) { 4723 (function() { 4724 var C = CryptoJS; 4725 var C_lib = C.lib; 4726 var Base = C_lib.Base; 4727 var WordArray = C_lib.WordArray; 4728 var C_algo = C.algo; 4729 var SHA1 = C_algo.SHA1; 4730 var HMAC = C_algo.HMAC; 4731 var PBKDF2 = C_algo.PBKDF2 = Base.extend({ 4732 /** 4733 * Configuration options. 4734 * 4735 * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) 4736 * @property {Hasher} hasher The hasher to use. Default: SHA1 4737 * @property {number} iterations The number of iterations to perform. Default: 1 4738 */ 4739 cfg: Base.extend({ 4740 keySize: 128 / 32, 4741 hasher: SHA1, 4742 iterations: 1 4743 }), 4744 /** 4745 * Initializes a newly created key derivation function. 4746 * 4747 * @param {Object} cfg (Optional) The configuration options to use for the derivation. 4748 * 4749 * @example 4750 * 4751 * var kdf = CryptoJS.algo.PBKDF2.create(); 4752 * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 }); 4753 * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 }); 4754 */ 4755 init: function(cfg) { 4756 this.cfg = this.cfg.extend(cfg); 4757 }, 4758 /** 4759 * Computes the Password-Based Key Derivation Function 2. 4760 * 4761 * @param {WordArray|string} password The password. 4762 * @param {WordArray|string} salt A salt. 4763 * 4764 * @return {WordArray} The derived key. 4765 * 4766 * @example 4767 * 4768 * var key = kdf.compute(password, salt); 4769 */ 4770 compute: function(password, salt) { 4771 var cfg = this.cfg; 4772 var hmac = HMAC.create(cfg.hasher, password); 4773 var derivedKey = WordArray.create(); 4774 var blockIndex = WordArray.create([1]); 4775 var derivedKeyWords = derivedKey.words; 4776 var blockIndexWords = blockIndex.words; 4777 var keySize = cfg.keySize; 4778 var iterations = cfg.iterations; 4779 while (derivedKeyWords.length < keySize) { 4780 var block = hmac.update(salt).finalize(blockIndex); 4781 hmac.reset(); 4782 var blockWords = block.words; 4783 var blockWordsLength = blockWords.length; 4784 var intermediate = block; 4785 for (var i = 1; i < iterations; i++) { 4786 intermediate = hmac.finalize(intermediate); 4787 hmac.reset(); 4788 var intermediateWords = intermediate.words; 4789 for (var j = 0; j < blockWordsLength; j++) { 4790 blockWords[j] ^= intermediateWords[j]; 4791 } 4792 } 4793 derivedKey.concat(block); 4794 blockIndexWords[0]++; 4795 } 4796 derivedKey.sigBytes = keySize * 4; 4797 return derivedKey; 4798 } 4799 }); 4800 C.PBKDF2 = function(password, salt, cfg) { 4801 return PBKDF2.create(cfg).compute(password, salt); 4802 }; 4803 })(); 4804 return CryptoJS.PBKDF2; 4805 }); 4806 } 4807 }); 4808 4809
vendor: 3,406 bytes, lines 4809-4900
4809// ../../../node_modules/crypto-js/evpkdf.js 4810 var require_evpkdf = __commonJS({ 4811 "../../../node_modules/crypto-js/evpkdf.js"(exports, module) { 4812 (function(root, factory, undef) { 4813 if (typeof exports === "object") { 4814 module.exports = exports = factory(require_core(), require_sha1(), require_hmac()); 4815 } else if (typeof define === "function" && define.amd) { 4816 define(["./core", "./sha1", "./hmac"], factory); 4817 } else { 4818 factory(root.CryptoJS); 4819 } 4820 })(exports, function(CryptoJS) { 4821 (function() { 4822 var C = CryptoJS; 4823 var C_lib = C.lib; 4824 var Base = C_lib.Base; 4825 var WordArray = C_lib.WordArray; 4826 var C_algo = C.algo; 4827 var MD5 = C_algo.MD5; 4828 var EvpKDF = C_algo.EvpKDF = Base.extend({ 4829 /** 4830 * Configuration options. 4831 * 4832 * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) 4833 * @property {Hasher} hasher The hash algorithm to use. Default: MD5 4834 * @property {number} iterations The number of iterations to perform. Default: 1 4835 */ 4836 cfg: Base.extend({ 4837 keySize: 128 / 32, 4838 hasher: MD5, 4839 iterations: 1 4840 }), 4841 /** 4842 * Initializes a newly created key derivation function. 4843 * 4844 * @param {Object} cfg (Optional) The configuration options to use for the derivation. 4845 * 4846 * @example 4847 * 4848 * var kdf = CryptoJS.algo.EvpKDF.create(); 4849 * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 }); 4850 * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 }); 4851 */ 4852 init: function(cfg) { 4853 this.cfg = this.cfg.extend(cfg); 4854 }, 4855 /** 4856 * Derives a key from a password. 4857 * 4858 * @param {WordArray|string} password The password. 4859 * @param {WordArray|string} salt A salt. 4860 * 4861 * @return {WordArray} The derived key. 4862 * 4863 * @example 4864 * 4865 * var key = kdf.compute(password, salt); 4866 */ 4867 compute: function(password, salt) { 4868 var block; 4869 var cfg = this.cfg; 4870 var hasher = cfg.hasher.create(); 4871 var derivedKey = WordArray.create(); 4872 var derivedKeyWords = derivedKey.words; 4873 var keySize = cfg.keySize; 4874 var iterations = cfg.iterations; 4875 while (derivedKeyWords.length < keySize) { 4876 if (block) { 4877 hasher.update(block); 4878 } 4879 block = hasher.update(password).finalize(salt); 4880 hasher.reset(); 4881 for (var i = 1; i < iterations; i++) { 4882 block = hasher.finalize(block); 4883 hasher.reset(); 4884 } 4885 derivedKey.concat(block); 4886 } 4887 derivedKey.sigBytes = keySize * 4; 4888 return derivedKey; 4889 } 4890 }); 4891 C.EvpKDF = function(password, salt, cfg) { 4892 return EvpKDF.create(cfg).compute(password, salt); 4893 }; 4894 })(); 4895 return CryptoJS.EvpKDF; 4896 }); 4897 } 4898 }); 4899 4900
vendor: 26,100 bytes, lines 4900-5540
4900// ../../../node_modules/crypto-js/cipher-core.js 4901 var require_cipher_core = __commonJS({ 4902 "../../../node_modules/crypto-js/cipher-core.js"(exports, module) { 4903 (function(root, factory, undef) { 4904 if (typeof exports === "object") { 4905 module.exports = exports = factory(require_core(), require_evpkdf()); 4906 } else if (typeof define === "function" && define.amd) { 4907 define(["./core", "./evpkdf"], factory); 4908 } else { 4909 factory(root.CryptoJS); 4910 } 4911 })(exports, function(CryptoJS) { 4912 CryptoJS.lib.Cipher || function(undefined2) { 4913 var C = CryptoJS; 4914 var C_lib = C.lib; 4915 var Base = C_lib.Base; 4916 var WordArray = C_lib.WordArray; 4917 var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; 4918 var C_enc = C.enc; 4919 var Utf8 = C_enc.Utf8; 4920 var Base64 = C_enc.Base64; 4921 var C_algo = C.algo; 4922 var EvpKDF = C_algo.EvpKDF; 4923 var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ 4924 /** 4925 * Configuration options. 4926 * 4927 * @property {WordArray} iv The IV to use for this operation. 4928 */ 4929 cfg: Base.extend(), 4930 /** 4931 * Creates this cipher in encryption mode. 4932 * 4933 * @param {WordArray} key The key. 4934 * @param {Object} cfg (Optional) The configuration options to use for this operation. 4935 * 4936 * @return {Cipher} A cipher instance. 4937 * 4938 * @static 4939 * 4940 * @example 4941 * 4942 * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray }); 4943 */ 4944 createEncryptor: function(key, cfg) { 4945 return this.create(this._ENC_XFORM_MODE, key, cfg); 4946 }, 4947 /** 4948 * Creates this cipher in decryption mode. 4949 * 4950 * @param {WordArray} key The key. 4951 * @param {Object} cfg (Optional) The configuration options to use for this operation. 4952 * 4953 * @return {Cipher} A cipher instance. 4954 * 4955 * @static 4956 * 4957 * @example 4958 * 4959 * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray }); 4960 */ 4961 createDecryptor: function(key, cfg) { 4962 return this.create(this._DEC_XFORM_MODE, key, cfg); 4963 }, 4964 /** 4965 * Initializes a newly created cipher. 4966 * 4967 * @param {number} xformMode Either the encryption or decryption transormation mode constant. 4968 * @param {WordArray} key The key. 4969 * @param {Object} cfg (Optional) The configuration options to use for this operation. 4970 * 4971 * @example 4972 * 4973 * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray }); 4974 */ 4975 init: function(xformMode, key, cfg) { 4976 this.cfg = this.cfg.extend(cfg); 4977 this._xformMode = xformMode; 4978 this._key = key; 4979 this.reset(); 4980 }, 4981 /** 4982 * Resets this cipher to its initial state. 4983 * 4984 * @example 4985 * 4986 * cipher.reset(); 4987 */ 4988 reset: function() { 4989 BufferedBlockAlgorithm.reset.call(this); 4990 this._doReset(); 4991 }, 4992 /** 4993 * Adds data to be encrypted or decrypted. 4994 * 4995 * @param {WordArray|string} dataUpdate The data to encrypt or decrypt. 4996 * 4997 * @return {WordArray} The data after processing. 4998 * 4999 * @example 5000 * 5001 * var encrypted = cipher.process('data'); 5002 * var encrypted = cipher.process(wordArray); 5003 */ 5004 process: function(dataUpdate) { 5005 this._append(dataUpdate); 5006 return this._process(); 5007 }, 5008 /** 5009 * Finalizes the encryption or decryption process. 5010 * Note that the finalize operation is effectively a destructive, read-once operation. 5011 * 5012 * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt. 5013 * 5014 * @return {WordArray} The data after final processing. 5015 * 5016 * @example 5017 * 5018 * var encrypted = cipher.finalize(); 5019 * var encrypted = cipher.finalize('data'); 5020 * var encrypted = cipher.finalize(wordArray); 5021 */ 5022 finalize: function(dataUpdate) { 5023 if (dataUpdate) { 5024 this._append(dataUpdate); 5025 } 5026 var finalProcessedData = this._doFinalize(); 5027 return finalProcessedData; 5028 }, 5029 keySize: 128 / 32, 5030 ivSize: 128 / 32, 5031 _ENC_XFORM_MODE: 1, 5032 _DEC_XFORM_MODE: 2, 5033 /** 5034 * Creates shortcut functions to a cipher's object interface. 5035 * 5036 * @param {Cipher} cipher The cipher to create a helper for. 5037 * 5038 * @return {Object} An object with encrypt and decrypt shortcut functions. 5039 * 5040 * @static 5041 * 5042 * @example 5043 * 5044 * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES); 5045 */ 5046 _createHelper: /* @__PURE__ */ function() { 5047 function selectCipherStrategy(key) { 5048 if (typeof key == "string") { 5049 return PasswordBasedCipher; 5050 } else { 5051 return SerializableCipher; 5052 } 5053 } 5054 return function(cipher) { 5055 return { 5056 encrypt: function(message, key, cfg) { 5057 return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); 5058 }, 5059 decrypt: function(ciphertext, key, cfg) { 5060 return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); 5061 } 5062 }; 5063 }; 5064 }() 5065 }); 5066 var StreamCipher = C_lib.StreamCipher = Cipher.extend({ 5067 _doFinalize: function() { 5068 var finalProcessedBlocks = this._process(true); 5069 return finalProcessedBlocks; 5070 }, 5071 blockSize: 1 5072 }); 5073 var C_mode = C.mode = {}; 5074 var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ 5075 /** 5076 * Creates this mode for encryption. 5077 * 5078 * @param {Cipher} cipher A block cipher instance. 5079 * @param {Array} iv The IV words. 5080 * 5081 * @static 5082 * 5083 * @example 5084 * 5085 * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words); 5086 */ 5087 createEncryptor: function(cipher, iv) { 5088 return this.Encryptor.create(cipher, iv); 5089 }, 5090 /** 5091 * Creates this mode for decryption. 5092 * 5093 * @param {Cipher} cipher A block cipher instance. 5094 * @param {Array} iv The IV words. 5095 * 5096 * @static 5097 * 5098 * @example 5099 * 5100 * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words); 5101 */ 5102 createDecryptor: function(cipher, iv) { 5103 return this.Decryptor.create(cipher, iv); 5104 }, 5105 /** 5106 * Initializes a newly created mode. 5107 * 5108 * @param {Cipher} cipher A block cipher instance. 5109 * @param {Array} iv The IV words. 5110 * 5111 * @example 5112 * 5113 * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words); 5114 */ 5115 init: function(cipher, iv) { 5116 this._cipher = cipher; 5117 this._iv = iv; 5118 } 5119 }); 5120 var CBC = C_mode.CBC = function() { 5121 var CBC2 = BlockCipherMode.extend(); 5122 CBC2.Encryptor = CBC2.extend({ 5123 /** 5124 * Processes the data block at offset. 5125 * 5126 * @param {Array} words The data words to operate on. 5127 * @param {number} offset The offset where the block starts. 5128 * 5129 * @example 5130 * 5131 * mode.processBlock(data.words, offset); 5132 */ 5133 processBlock: function(words, offset) { 5134 var cipher = this._cipher; 5135 var blockSize = cipher.blockSize; 5136 xorBlock.call(this, words, offset, blockSize); 5137 cipher.encryptBlock(words, offset); 5138 this._prevBlock = words.slice(offset, offset + blockSize); 5139 } 5140 }); 5141 CBC2.Decryptor = CBC2.extend({ 5142 /** 5143 * Processes the data block at offset. 5144 * 5145 * @param {Array} words The data words to operate on. 5146 * @param {number} offset The offset where the block starts. 5147 * 5148 * @example 5149 * 5150 * mode.processBlock(data.words, offset); 5151 */ 5152 processBlock: function(words, offset) { 5153 var cipher = this._cipher; 5154 var blockSize = cipher.blockSize; 5155 var thisBlock = words.slice(offset, offset + blockSize); 5156 cipher.decryptBlock(words, offset); 5157 xorBlock.call(this, words, offset, blockSize); 5158 this._prevBlock = thisBlock; 5159 } 5160 }); 5161 function xorBlock(words, offset, blockSize) { 5162 var block; 5163 var iv = this._iv; 5164 if (iv) { 5165 block = iv; 5166 this._iv = undefined2; 5167 } else { 5168 block = this._prevBlock; 5169 } 5170 for (var i = 0; i < blockSize; i++) { 5171 words[offset + i] ^= block[i]; 5172 } 5173 } 5174 return CBC2; 5175 }(); 5176 var C_pad = C.pad = {}; 5177 var Pkcs7 = C_pad.Pkcs7 = { 5178 /** 5179 * Pads data using the algorithm defined in PKCS #5/7. 5180 * 5181 * @param {WordArray} data The data to pad. 5182 * @param {number} blockSize The multiple that the data should be padded to. 5183 * 5184 * @static 5185 * 5186 * @example 5187 * 5188 * CryptoJS.pad.Pkcs7.pad(wordArray, 4); 5189 */ 5190 pad: function(data, blockSize) { 5191 var blockSizeBytes = blockSize * 4; 5192 var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; 5193 var paddingWord = nPaddingBytes << 24 | nPaddingBytes << 16 | nPaddingBytes << 8 | nPaddingBytes; 5194 var paddingWords = []; 5195 for (var i = 0; i < nPaddingBytes; i += 4) { 5196 paddingWords.push(paddingWord); 5197 } 5198 var padding = WordArray.create(paddingWords, nPaddingBytes); 5199 data.concat(padding); 5200 }, 5201 /** 5202 * Unpads data that had been padded using the algorithm defined in PKCS #5/7. 5203 * 5204 * @param {WordArray} data The data to unpad. 5205 * 5206 * @static 5207 * 5208 * @example 5209 * 5210 * CryptoJS.pad.Pkcs7.unpad(wordArray); 5211 */ 5212 unpad: function(data) { 5213 var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 255; 5214 data.sigBytes -= nPaddingBytes; 5215 } 5216 }; 5217 var BlockCipher = C_lib.BlockCipher = Cipher.extend({ 5218 /** 5219 * Configuration options. 5220 * 5221 * @property {Mode} mode The block mode to use. Default: CBC 5222 * @property {Padding} padding The padding strategy to use. Default: Pkcs7 5223 */ 5224 cfg: Cipher.cfg.extend({ 5225 mode: CBC, 5226 padding: Pkcs7 5227 }), 5228 reset: function() { 5229 var modeCreator; 5230 Cipher.reset.call(this); 5231 var cfg = this.cfg; 5232 var iv = cfg.iv; 5233 var mode = cfg.mode; 5234 if (this._xformMode == this._ENC_XFORM_MODE) { 5235 modeCreator = mode.createEncryptor; 5236 } else { 5237 modeCreator = mode.createDecryptor; 5238 this._minBufferSize = 1; 5239 } 5240 if (this._mode && this._mode.__creator == modeCreator) { 5241 this._mode.init(this, iv && iv.words); 5242 } else { 5243 this._mode = modeCreator.call(mode, this, iv && iv.words); 5244 this._mode.__creator = modeCreator; 5245 } 5246 }, 5247 _doProcessBlock: function(words, offset) { 5248 this._mode.processBlock(words, offset); 5249 }, 5250 _doFinalize: function() { 5251 var finalProcessedBlocks; 5252 var padding = this.cfg.padding; 5253 if (this._xformMode == this._ENC_XFORM_MODE) { 5254 padding.pad(this._data, this.blockSize); 5255 finalProcessedBlocks = this._process(true); 5256 } else { 5257 finalProcessedBlocks = this._process(true); 5258 padding.unpad(finalProcessedBlocks); 5259 } 5260 return finalProcessedBlocks; 5261 }, 5262 blockSize: 128 / 32 5263 }); 5264 var CipherParams = C_lib.CipherParams = Base.extend({ 5265 /** 5266 * Initializes a newly created cipher params object. 5267 * 5268 * @param {Object} cipherParams An object with any of the possible cipher parameters. 5269 * 5270 * @example 5271 * 5272 * var cipherParams = CryptoJS.lib.CipherParams.create({ 5273 * ciphertext: ciphertextWordArray, 5274 * key: keyWordArray, 5275 * iv: ivWordArray, 5276 * salt: saltWordArray, 5277 * algorithm: CryptoJS.algo.AES, 5278 * mode: CryptoJS.mode.CBC, 5279 * padding: CryptoJS.pad.PKCS7, 5280 * blockSize: 4, 5281 * formatter: CryptoJS.format.OpenSSL 5282 * }); 5283 */ 5284 init: function(cipherParams) { 5285 this.mixIn(cipherParams); 5286 }, 5287 /** 5288 * Converts this cipher params object to a string. 5289 * 5290 * @param {Format} formatter (Optional) The formatting strategy to use. 5291 * 5292 * @return {string} The stringified cipher params. 5293 * 5294 * @throws Error If neither the formatter nor the default formatter is set. 5295 * 5296 * @example 5297 * 5298 * var string = cipherParams + ''; 5299 * var string = cipherParams.toString(); 5300 * var string = cipherParams.toString(CryptoJS.format.OpenSSL); 5301 */ 5302 toString: function(formatter) { 5303 return (formatter || this.formatter).stringify(this); 5304 } 5305 }); 5306 var C_format = C.format = {}; 5307 var OpenSSLFormatter = C_format.OpenSSL = { 5308 /** 5309 * Converts a cipher params object to an OpenSSL-compatible string. 5310 * 5311 * @param {CipherParams} cipherParams The cipher params object. 5312 * 5313 * @return {string} The OpenSSL-compatible string. 5314 * 5315 * @static 5316 * 5317 * @example 5318 * 5319 * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams); 5320 */ 5321 stringify: function(cipherParams) { 5322 var wordArray; 5323 var ciphertext = cipherParams.ciphertext; 5324 var salt = cipherParams.salt; 5325 if (salt) { 5326 wordArray = WordArray.create([1398893684, 1701076831]).concat(salt).concat(ciphertext); 5327 } else { 5328 wordArray = ciphertext; 5329 } 5330 return wordArray.toString(Base64); 5331 }, 5332 /** 5333 * Converts an OpenSSL-compatible string to a cipher params object. 5334 * 5335 * @param {string} openSSLStr The OpenSSL-compatible string. 5336 * 5337 * @return {CipherParams} The cipher params object. 5338 * 5339 * @static 5340 * 5341 * @example 5342 * 5343 * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString); 5344 */ 5345 parse: function(openSSLStr) { 5346 var salt; 5347 var ciphertext = Base64.parse(openSSLStr); 5348 var ciphertextWords = ciphertext.words; 5349 if (ciphertextWords[0] == 1398893684 && ciphertextWords[1] == 1701076831) { 5350 salt = WordArray.create(ciphertextWords.slice(2, 4)); 5351 ciphertextWords.splice(0, 4); 5352 ciphertext.sigBytes -= 16; 5353 } 5354 return CipherParams.create({ ciphertext, salt }); 5355 } 5356 }; 5357 var SerializableCipher = C_lib.SerializableCipher = Base.extend({ 5358 /** 5359 * Configuration options. 5360 * 5361 * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL 5362 */ 5363 cfg: Base.extend({ 5364 format: OpenSSLFormatter 5365 }), 5366 /** 5367 * Encrypts a message. 5368 * 5369 * @param {Cipher} cipher The cipher algorithm to use. 5370 * @param {WordArray|string} message The message to encrypt. 5371 * @param {WordArray} key The key. 5372 * @param {Object} cfg (Optional) The configuration options to use for this operation. 5373 * 5374 * @return {CipherParams} A cipher params object. 5375 * 5376 * @static 5377 * 5378 * @example 5379 * 5380 * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key); 5381 * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv }); 5382 * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL }); 5383 */ 5384 encrypt: function(cipher, message, key, cfg) { 5385 cfg = this.cfg.extend(cfg); 5386 var encryptor = cipher.createEncryptor(key, cfg); 5387 var ciphertext = encryptor.finalize(message); 5388 var cipherCfg = encryptor.cfg; 5389 return CipherParams.create({ 5390 ciphertext, 5391 key, 5392 iv: cipherCfg.iv, 5393 algorithm: cipher, 5394 mode: cipherCfg.mode, 5395 padding: cipherCfg.padding, 5396 blockSize: cipher.blockSize, 5397 formatter: cfg.format 5398 }); 5399 }, 5400 /** 5401 * Decrypts serialized ciphertext. 5402 * 5403 * @param {Cipher} cipher The cipher algorithm to use. 5404 * @param {CipherParams|string} ciphertext The ciphertext to decrypt. 5405 * @param {WordArray} key The key. 5406 * @param {Object} cfg (Optional) The configuration options to use for this operation. 5407 * 5408 * @return {WordArray} The plaintext. 5409 * 5410 * @static 5411 * 5412 * @example 5413 * 5414 * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL }); 5415 * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL }); 5416 */ 5417 decrypt: function(cipher, ciphertext, key, cfg) { 5418 cfg = this.cfg.extend(cfg); 5419 ciphertext = this._parse(ciphertext, cfg.format); 5420 var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); 5421 return plaintext; 5422 }, 5423 /** 5424 * Converts serialized ciphertext to CipherParams, 5425 * else assumed CipherParams already and returns ciphertext unchanged. 5426 * 5427 * @param {CipherParams|string} ciphertext The ciphertext. 5428 * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext. 5429 * 5430 * @return {CipherParams} The unserialized ciphertext. 5431 * 5432 * @static 5433 * 5434 * @example 5435 * 5436 * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format); 5437 */ 5438 _parse: function(ciphertext, format) { 5439 if (typeof ciphertext == "string") { 5440 return format.parse(ciphertext, this); 5441 } else { 5442 return ciphertext; 5443 } 5444 } 5445 }); 5446 var C_kdf = C.kdf = {}; 5447 var OpenSSLKdf = C_kdf.OpenSSL = { 5448 /** 5449 * Derives a key and IV from a password. 5450 * 5451 * @param {string} password The password to derive from. 5452 * @param {number} keySize The size in words of the key to generate. 5453 * @param {number} ivSize The size in words of the IV to generate. 5454 * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly. 5455 * 5456 * @return {CipherParams} A cipher params object with the key, IV, and salt. 5457 * 5458 * @static 5459 * 5460 * @example 5461 * 5462 * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32); 5463 * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt'); 5464 */ 5465 execute: function(password, keySize, ivSize, salt) { 5466 if (!salt) { 5467 salt = WordArray.random(64 / 8); 5468 } 5469 var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); 5470 var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); 5471 key.sigBytes = keySize * 4; 5472 return CipherParams.create({ key, iv, salt }); 5473 } 5474 }; 5475 var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ 5476 /** 5477 * Configuration options. 5478 * 5479 * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL 5480 */ 5481 cfg: SerializableCipher.cfg.extend({ 5482 kdf: OpenSSLKdf 5483 }), 5484 /** 5485 * Encrypts a message using a password. 5486 * 5487 * @param {Cipher} cipher The cipher algorithm to use. 5488 * @param {WordArray|string} message The message to encrypt. 5489 * @param {string} password The password. 5490 * @param {Object} cfg (Optional) The configuration options to use for this operation. 5491 * 5492 * @return {CipherParams} A cipher params object. 5493 * 5494 * @static 5495 * 5496 * @example 5497 * 5498 * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password'); 5499 * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL }); 5500 */ 5501 encrypt: function(cipher, message, password, cfg) { 5502 cfg = this.cfg.extend(cfg); 5503 var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize); 5504 cfg.iv = derivedParams.iv; 5505 var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); 5506 ciphertext.mixIn(derivedParams); 5507 return ciphertext; 5508 }, 5509 /** 5510 * Decrypts serialized ciphertext using a password. 5511 * 5512 * @param {Cipher} cipher The cipher algorithm to use. 5513 * @param {CipherParams|string} ciphertext The ciphertext to decrypt. 5514 * @param {string} password The password. 5515 * @param {Object} cfg (Optional) The configuration options to use for this operation. 5516 * 5517 * @return {WordArray} The plaintext. 5518 * 5519 * @static 5520 * 5521 * @example 5522 * 5523 * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL }); 5524 * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL }); 5525 */ 5526 decrypt: function(cipher, ciphertext, password, cfg) { 5527 cfg = this.cfg.extend(cfg); 5528 ciphertext = this._parse(ciphertext, cfg.format); 5529 var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt); 5530 cfg.iv = derivedParams.iv; 5531 var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); 5532 return plaintext; 5533 } 5534 }); 5535 }(); 5536 }); 5537 } 5538 }); 5539 5540
vendor: 2,001 bytes, lines 5540-5592
5540// ../../../node_modules/crypto-js/mode-cfb.js 5541 var require_mode_cfb = __commonJS({ 5542 "../../../node_modules/crypto-js/mode-cfb.js"(exports, module) { 5543 (function(root, factory, undef) { 5544 if (typeof exports === "object") { 5545 module.exports = exports = factory(require_core(), require_cipher_core()); 5546 } else if (typeof define === "function" && define.amd) { 5547 define(["./core", "./cipher-core"], factory); 5548 } else { 5549 factory(root.CryptoJS); 5550 } 5551 })(exports, function(CryptoJS) { 5552 CryptoJS.mode.CFB = function() { 5553 var CFB = CryptoJS.lib.BlockCipherMode.extend(); 5554 CFB.Encryptor = CFB.extend({ 5555 processBlock: function(words, offset) { 5556 var cipher = this._cipher; 5557 var blockSize = cipher.blockSize; 5558 generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); 5559 this._prevBlock = words.slice(offset, offset + blockSize); 5560 } 5561 }); 5562 CFB.Decryptor = CFB.extend({ 5563 processBlock: function(words, offset) { 5564 var cipher = this._cipher; 5565 var blockSize = cipher.blockSize; 5566 var thisBlock = words.slice(offset, offset + blockSize); 5567 generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); 5568 this._prevBlock = thisBlock; 5569 } 5570 }); 5571 function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) { 5572 var keystream; 5573 var iv = this._iv; 5574 if (iv) { 5575 keystream = iv.slice(0); 5576 this._iv = void 0; 5577 } else { 5578 keystream = this._prevBlock; 5579 } 5580 cipher.encryptBlock(keystream, 0); 5581 for (var i = 0; i < blockSize; i++) { 5582 words[offset + i] ^= keystream[i]; 5583 } 5584 } 5585 return CFB; 5586 }(); 5587 return CryptoJS.mode.CFB; 5588 }); 5589 } 5590 }); 5591 5592
vendor: 1,491 bytes, lines 5592-5632
5592// ../../../node_modules/crypto-js/mode-ctr.js 5593 var require_mode_ctr = __commonJS({ 5594 "../../../node_modules/crypto-js/mode-ctr.js"(exports, module) { 5595 (function(root, factory, undef) { 5596 if (typeof exports === "object") { 5597 module.exports = exports = factory(require_core(), require_cipher_core()); 5598 } else if (typeof define === "function" && define.amd) { 5599 define(["./core", "./cipher-core"], factory); 5600 } else { 5601 factory(root.CryptoJS); 5602 } 5603 })(exports, function(CryptoJS) { 5604 CryptoJS.mode.CTR = function() { 5605 var CTR = CryptoJS.lib.BlockCipherMode.extend(); 5606 var Encryptor = CTR.Encryptor = CTR.extend({ 5607 processBlock: function(words, offset) { 5608 var cipher = this._cipher; 5609 var blockSize = cipher.blockSize; 5610 var iv = this._iv; 5611 var counter = this._counter; 5612 if (iv) { 5613 counter = this._counter = iv.slice(0); 5614 this._iv = void 0; 5615 } 5616 var keystream = counter.slice(0); 5617 cipher.encryptBlock(keystream, 0); 5618 counter[blockSize - 1] = counter[blockSize - 1] + 1 | 0; 5619 for (var i = 0; i < blockSize; i++) { 5620 words[offset + i] ^= keystream[i]; 5621 } 5622 } 5623 }); 5624 CTR.Decryptor = Encryptor; 5625 return CTR; 5626 }(); 5627 return CryptoJS.mode.CTR; 5628 }); 5629 } 5630 }); 5631 5632
vendor: 2,525 bytes, lines 5632-5707
5632// ../../../node_modules/crypto-js/mode-ctr-gladman.js 5633 var require_mode_ctr_gladman = __commonJS({ 5634 "../../../node_modules/crypto-js/mode-ctr-gladman.js"(exports, module) { 5635 (function(root, factory, undef) { 5636 if (typeof exports === "object") { 5637 module.exports = exports = factory(require_core(), require_cipher_core()); 5638 } else if (typeof define === "function" && define.amd) { 5639 define(["./core", "./cipher-core"], factory); 5640 } else { 5641 factory(root.CryptoJS); 5642 } 5643 })(exports, function(CryptoJS) { 5644 CryptoJS.mode.CTRGladman = function() { 5645 var CTRGladman = CryptoJS.lib.BlockCipherMode.extend(); 5646 function incWord(word) { 5647 if ((word >> 24 & 255) === 255) { 5648 var b1 = word >> 16 & 255; 5649 var b2 = word >> 8 & 255; 5650 var b3 = word & 255; 5651 if (b1 === 255) { 5652 b1 = 0; 5653 if (b2 === 255) { 5654 b2 = 0; 5655 if (b3 === 255) { 5656 b3 = 0; 5657 } else { 5658 ++b3; 5659 } 5660 } else { 5661 ++b2; 5662 } 5663 } else { 5664 ++b1; 5665 } 5666 word = 0; 5667 word += b1 << 16; 5668 word += b2 << 8; 5669 word += b3; 5670 } else { 5671 word += 1 << 24; 5672 } 5673 return word; 5674 } 5675 function incCounter(counter) { 5676 if ((counter[0] = incWord(counter[0])) === 0) { 5677 counter[1] = incWord(counter[1]); 5678 } 5679 return counter; 5680 } 5681 var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({ 5682 processBlock: function(words, offset) { 5683 var cipher = this._cipher; 5684 var blockSize = cipher.blockSize; 5685 var iv = this._iv; 5686 var counter = this._counter; 5687 if (iv) { 5688 counter = this._counter = iv.slice(0); 5689 this._iv = void 0; 5690 } 5691 incCounter(counter); 5692 var keystream = counter.slice(0); 5693 cipher.encryptBlock(keystream, 0); 5694 for (var i = 0; i < blockSize; i++) { 5695 words[offset + i] ^= keystream[i]; 5696 } 5697 } 5698 }); 5699 CTRGladman.Decryptor = Encryptor; 5700 return CTRGladman; 5701 }(); 5702 return CryptoJS.mode.CTRGladman; 5703 }); 5704 } 5705 }); 5706 5707
vendor: 1,380 bytes, lines 5707-5745
5707// ../../../node_modules/crypto-js/mode-ofb.js 5708 var require_mode_ofb = __commonJS({ 5709 "../../../node_modules/crypto-js/mode-ofb.js"(exports, module) { 5710 (function(root, factory, undef) { 5711 if (typeof exports === "object") { 5712 module.exports = exports = factory(require_core(), require_cipher_core()); 5713 } else if (typeof define === "function" && define.amd) { 5714 define(["./core", "./cipher-core"], factory); 5715 } else { 5716 factory(root.CryptoJS); 5717 } 5718 })(exports, function(CryptoJS) { 5719 CryptoJS.mode.OFB = function() { 5720 var OFB = CryptoJS.lib.BlockCipherMode.extend(); 5721 var Encryptor = OFB.Encryptor = OFB.extend({ 5722 processBlock: function(words, offset) { 5723 var cipher = this._cipher; 5724 var blockSize = cipher.blockSize; 5725 var iv = this._iv; 5726 var keystream = this._keystream; 5727 if (iv) { 5728 keystream = this._keystream = iv.slice(0); 5729 this._iv = void 0; 5730 } 5731 cipher.encryptBlock(keystream, 0); 5732 for (var i = 0; i < blockSize; i++) { 5733 words[offset + i] ^= keystream[i]; 5734 } 5735 } 5736 }); 5737 OFB.Decryptor = Encryptor; 5738 return OFB; 5739 }(); 5740 return CryptoJS.mode.OFB; 5741 }); 5742 } 5743 }); 5744 5745
vendor: 1,087 bytes, lines 5745-5776
5745// ../../../node_modules/crypto-js/mode-ecb.js 5746 var require_mode_ecb = __commonJS({ 5747 "../../../node_modules/crypto-js/mode-ecb.js"(exports, module) { 5748 (function(root, factory, undef) { 5749 if (typeof exports === "object") { 5750 module.exports = exports = factory(require_core(), require_cipher_core()); 5751 } else if (typeof define === "function" && define.amd) { 5752 define(["./core", "./cipher-core"], factory); 5753 } else { 5754 factory(root.CryptoJS); 5755 } 5756 })(exports, function(CryptoJS) { 5757 CryptoJS.mode.ECB = function() { 5758 var ECB = CryptoJS.lib.BlockCipherMode.extend(); 5759 ECB.Encryptor = ECB.extend({ 5760 processBlock: function(words, offset) { 5761 this._cipher.encryptBlock(words, offset); 5762 } 5763 }); 5764 ECB.Decryptor = ECB.extend({ 5765 processBlock: function(words, offset) { 5766 this._cipher.decryptBlock(words, offset); 5767 } 5768 }); 5769 return ECB; 5770 }(); 5771 return CryptoJS.mode.ECB; 5772 }); 5773 } 5774 }); 5775 5776
vendor: 1,280 bytes, lines 5776-5808
5776// ../../../node_modules/crypto-js/pad-ansix923.js 5777 var require_pad_ansix923 = __commonJS({ 5778 "../../../node_modules/crypto-js/pad-ansix923.js"(exports, module) { 5779 (function(root, factory, undef) { 5780 if (typeof exports === "object") { 5781 module.exports = exports = factory(require_core(), require_cipher_core()); 5782 } else if (typeof define === "function" && define.amd) { 5783 define(["./core", "./cipher-core"], factory); 5784 } else { 5785 factory(root.CryptoJS); 5786 } 5787 })(exports, function(CryptoJS) { 5788 CryptoJS.pad.AnsiX923 = { 5789 pad: function(data, blockSize) { 5790 var dataSigBytes = data.sigBytes; 5791 var blockSizeBytes = blockSize * 4; 5792 var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; 5793 var lastBytePos = dataSigBytes + nPaddingBytes - 1; 5794 data.clamp(); 5795 data.words[lastBytePos >>> 2] |= nPaddingBytes << 24 - lastBytePos % 4 * 8; 5796 data.sigBytes += nPaddingBytes; 5797 }, 5798 unpad: function(data) { 5799 var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 255; 5800 data.sigBytes -= nPaddingBytes; 5801 } 5802 }; 5803 return CryptoJS.pad.Ansix923; 5804 }); 5805 } 5806 }); 5807 5808
vendor: 1,152 bytes, lines 5808-5836
5808// ../../../node_modules/crypto-js/pad-iso10126.js 5809 var require_pad_iso10126 = __commonJS({ 5810 "../../../node_modules/crypto-js/pad-iso10126.js"(exports, module) { 5811 (function(root, factory, undef) { 5812 if (typeof exports === "object") { 5813 module.exports = exports = factory(require_core(), require_cipher_core()); 5814 } else if (typeof define === "function" && define.amd) { 5815 define(["./core", "./cipher-core"], factory); 5816 } else { 5817 factory(root.CryptoJS); 5818 } 5819 })(exports, function(CryptoJS) { 5820 CryptoJS.pad.Iso10126 = { 5821 pad: function(data, blockSize) { 5822 var blockSizeBytes = blockSize * 4; 5823 var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; 5824 data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1)); 5825 }, 5826 unpad: function(data) { 5827 var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 255; 5828 data.sigBytes -= nPaddingBytes; 5829 } 5830 }; 5831 return CryptoJS.pad.Iso10126; 5832 }); 5833 } 5834 }); 5835 5836
vendor: 976 bytes, lines 5836-5863
5836// ../../../node_modules/crypto-js/pad-iso97971.js 5837 var require_pad_iso97971 = __commonJS({ 5838 "../../../node_modules/crypto-js/pad-iso97971.js"(exports, module) { 5839 (function(root, factory, undef) { 5840 if (typeof exports === "object") { 5841 module.exports = exports = factory(require_core(), require_cipher_core()); 5842 } else if (typeof define === "function" && define.amd) { 5843 define(["./core", "./cipher-core"], factory); 5844 } else { 5845 factory(root.CryptoJS); 5846 } 5847 })(exports, function(CryptoJS) { 5848 CryptoJS.pad.Iso97971 = { 5849 pad: function(data, blockSize) { 5850 data.concat(CryptoJS.lib.WordArray.create([2147483648], 1)); 5851 CryptoJS.pad.ZeroPadding.pad(data, blockSize); 5852 }, 5853 unpad: function(data) { 5854 CryptoJS.pad.ZeroPadding.unpad(data); 5855 data.sigBytes--; 5856 } 5857 }; 5858 return CryptoJS.pad.Iso97971; 5859 }); 5860 } 5861 }); 5862 5863
vendor: 1,247 bytes, lines 5863-5897
5863// ../../../node_modules/crypto-js/pad-zeropadding.js 5864 var require_pad_zeropadding = __commonJS({ 5865 "../../../node_modules/crypto-js/pad-zeropadding.js"(exports, module) { 5866 (function(root, factory, undef) { 5867 if (typeof exports === "object") { 5868 module.exports = exports = factory(require_core(), require_cipher_core()); 5869 } else if (typeof define === "function" && define.amd) { 5870 define(["./core", "./cipher-core"], factory); 5871 } else { 5872 factory(root.CryptoJS); 5873 } 5874 })(exports, function(CryptoJS) { 5875 CryptoJS.pad.ZeroPadding = { 5876 pad: function(data, blockSize) { 5877 var blockSizeBytes = blockSize * 4; 5878 data.clamp(); 5879 data.sigBytes += blockSizeBytes - (data.sigBytes % blockSizeBytes || blockSizeBytes); 5880 }, 5881 unpad: function(data) { 5882 var dataWords = data.words; 5883 var i = data.sigBytes - 1; 5884 for (var i = data.sigBytes - 1; i >= 0; i--) { 5885 if (dataWords[i >>> 2] >>> 24 - i % 4 * 8 & 255) { 5886 data.sigBytes = i + 1; 5887 break; 5888 } 5889 } 5890 } 5891 }; 5892 return CryptoJS.pad.ZeroPadding; 5893 }); 5894 } 5895 }); 5896 5897
vendor: 751 bytes, lines 5897-5920
5897// ../../../node_modules/crypto-js/pad-nopadding.js 5898 var require_pad_nopadding = __commonJS({ 5899 "../../../node_modules/crypto-js/pad-nopadding.js"(exports, module) { 5900 (function(root, factory, undef) { 5901 if (typeof exports === "object") { 5902 module.exports = exports = factory(require_core(), require_cipher_core()); 5903 } else if (typeof define === "function" && define.amd) { 5904 define(["./core", "./cipher-core"], factory); 5905 } else { 5906 factory(root.CryptoJS); 5907 } 5908 })(exports, function(CryptoJS) { 5909 CryptoJS.pad.NoPadding = { 5910 pad: function() { 5911 }, 5912 unpad: function() { 5913 } 5914 }; 5915 return CryptoJS.pad.NoPadding; 5916 }); 5917 } 5918 }); 5919 5920
vendor: 2,131 bytes, lines 5920-5980
5920// ../../../node_modules/crypto-js/format-hex.js 5921 var require_format_hex = __commonJS({ 5922 "../../../node_modules/crypto-js/format-hex.js"(exports, module) { 5923 (function(root, factory, undef) { 5924 if (typeof exports === "object") { 5925 module.exports = exports = factory(require_core(), require_cipher_core()); 5926 } else if (typeof define === "function" && define.amd) { 5927 define(["./core", "./cipher-core"], factory); 5928 } else { 5929 factory(root.CryptoJS); 5930 } 5931 })(exports, function(CryptoJS) { 5932 (function(undefined2) { 5933 var C = CryptoJS; 5934 var C_lib = C.lib; 5935 var CipherParams = C_lib.CipherParams; 5936 var C_enc = C.enc; 5937 var Hex = C_enc.Hex; 5938 var C_format = C.format; 5939 var HexFormatter = C_format.Hex = { 5940 /** 5941 * Converts the ciphertext of a cipher params object to a hexadecimally encoded string. 5942 * 5943 * @param {CipherParams} cipherParams The cipher params object. 5944 * 5945 * @return {string} The hexadecimally encoded string. 5946 * 5947 * @static 5948 * 5949 * @example 5950 * 5951 * var hexString = CryptoJS.format.Hex.stringify(cipherParams); 5952 */ 5953 stringify: function(cipherParams) { 5954 return cipherParams.ciphertext.toString(Hex); 5955 }, 5956 /** 5957 * Converts a hexadecimally encoded ciphertext string to a cipher params object. 5958 * 5959 * @param {string} input The hexadecimally encoded string. 5960 * 5961 * @return {CipherParams} The cipher params object. 5962 * 5963 * @static 5964 * 5965 * @example 5966 * 5967 * var cipherParams = CryptoJS.format.Hex.parse(hexString); 5968 */ 5969 parse: function(input) { 5970 var ciphertext = Hex.parse(input); 5971 return CipherParams.create({ ciphertext }); 5972 } 5973 }; 5974 })(); 5975 return CryptoJS.format.Hex; 5976 }); 5977 } 5978 }); 5979 5980
vendor: 7,187 bytes, lines 5980-6134
5980// ../../../node_modules/crypto-js/aes.js 5981 var require_aes = __commonJS({ 5982 "../../../node_modules/crypto-js/aes.js"(exports, module) { 5983 (function(root, factory, undef) { 5984 if (typeof exports === "object") { 5985 module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core()); 5986 } else if (typeof define === "function" && define.amd) { 5987 define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); 5988 } else { 5989 factory(root.CryptoJS); 5990 } 5991 })(exports, function(CryptoJS) { 5992 (function() { 5993 var C = CryptoJS; 5994 var C_lib = C.lib; 5995 var BlockCipher = C_lib.BlockCipher; 5996 var C_algo = C.algo; 5997 var SBOX = []; 5998 var INV_SBOX = []; 5999 var SUB_MIX_0 = []; 6000 var SUB_MIX_1 = []; 6001 var SUB_MIX_2 = []; 6002 var SUB_MIX_3 = []; 6003 var INV_SUB_MIX_0 = []; 6004 var INV_SUB_MIX_1 = []; 6005 var INV_SUB_MIX_2 = []; 6006 var INV_SUB_MIX_3 = []; 6007 (function() { 6008 var d = []; 6009 for (var i = 0; i < 256; i++) { 6010 if (i < 128) { 6011 d[i] = i << 1; 6012 } else { 6013 d[i] = i << 1 ^ 283; 6014 } 6015 } 6016 var x = 0; 6017 var xi = 0; 6018 for (var i = 0; i < 256; i++) { 6019 var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4; 6020 sx = sx >>> 8 ^ sx & 255 ^ 99; 6021 SBOX[x] = sx; 6022 INV_SBOX[sx] = x; 6023 var x2 = d[x]; 6024 var x4 = d[x2]; 6025 var x8 = d[x4]; 6026 var t = d[sx] * 257 ^ sx * 16843008; 6027 SUB_MIX_0[x] = t << 24 | t >>> 8; 6028 SUB_MIX_1[x] = t << 16 | t >>> 16; 6029 SUB_MIX_2[x] = t << 8 | t >>> 24; 6030 SUB_MIX_3[x] = t; 6031 var t = x8 * 16843009 ^ x4 * 65537 ^ x2 * 257 ^ x * 16843008; 6032 INV_SUB_MIX_0[sx] = t << 24 | t >>> 8; 6033 INV_SUB_MIX_1[sx] = t << 16 | t >>> 16; 6034 INV_SUB_MIX_2[sx] = t << 8 | t >>> 24; 6035 INV_SUB_MIX_3[sx] = t; 6036 if (!x) { 6037 x = xi = 1; 6038 } else { 6039 x = x2 ^ d[d[d[x8 ^ x2]]]; 6040 xi ^= d[d[xi]]; 6041 } 6042 } 6043 })(); 6044 var RCON = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]; 6045 var AES = C_algo.AES = BlockCipher.extend({ 6046 _doReset: function() { 6047 var t; 6048 if (this._nRounds && this._keyPriorReset === this._key) { 6049 return; 6050 } 6051 var key = this._keyPriorReset = this._key; 6052 var keyWords = key.words; 6053 var keySize = key.sigBytes / 4; 6054 var nRounds = this._nRounds = keySize + 6; 6055 var ksRows = (nRounds + 1) * 4; 6056 var keySchedule = this._keySchedule = []; 6057 for (var ksRow = 0; ksRow < ksRows; ksRow++) { 6058 if (ksRow < keySize) { 6059 keySchedule[ksRow] = keyWords[ksRow]; 6060 } else { 6061 t = keySchedule[ksRow - 1]; 6062 if (!(ksRow % keySize)) { 6063 t = t << 8 | t >>> 24; 6064 t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 255] << 16 | SBOX[t >>> 8 & 255] << 8 | SBOX[t & 255]; 6065 t ^= RCON[ksRow / keySize | 0] << 24; 6066 } else if (keySize > 6 && ksRow % keySize == 4) { 6067 t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 255] << 16 | SBOX[t >>> 8 & 255] << 8 | SBOX[t & 255]; 6068 } 6069 keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; 6070 } 6071 } 6072 var invKeySchedule = this._invKeySchedule = []; 6073 for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { 6074 var ksRow = ksRows - invKsRow; 6075 if (invKsRow % 4) { 6076 var t = keySchedule[ksRow]; 6077 } else { 6078 var t = keySchedule[ksRow - 4]; 6079 } 6080 if (invKsRow < 4 || ksRow <= 4) { 6081 invKeySchedule[invKsRow] = t; 6082 } else { 6083 invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[t >>> 16 & 255]] ^ INV_SUB_MIX_2[SBOX[t >>> 8 & 255]] ^ INV_SUB_MIX_3[SBOX[t & 255]]; 6084 } 6085 } 6086 }, 6087 encryptBlock: function(M, offset) { 6088 this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); 6089 }, 6090 decryptBlock: function(M, offset) { 6091 var t = M[offset + 1]; 6092 M[offset + 1] = M[offset + 3]; 6093 M[offset + 3] = t; 6094 this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); 6095 var t = M[offset + 1]; 6096 M[offset + 1] = M[offset + 3]; 6097 M[offset + 3] = t; 6098 }, 6099 _doCryptBlock: function(M, offset, keySchedule, SUB_MIX_02, SUB_MIX_12, SUB_MIX_22, SUB_MIX_32, SBOX2) { 6100 var nRounds = this._nRounds; 6101 var s0 = M[offset] ^ keySchedule[0]; 6102 var s1 = M[offset + 1] ^ keySchedule[1]; 6103 var s2 = M[offset + 2] ^ keySchedule[2]; 6104 var s3 = M[offset + 3] ^ keySchedule[3]; 6105 var ksRow = 4; 6106 for (var round = 1; round < nRounds; round++) { 6107 var t0 = SUB_MIX_02[s0 >>> 24] ^ SUB_MIX_12[s1 >>> 16 & 255] ^ SUB_MIX_22[s2 >>> 8 & 255] ^ SUB_MIX_32[s3 & 255] ^ keySchedule[ksRow++]; 6108 var t1 = SUB_MIX_02[s1 >>> 24] ^ SUB_MIX_12[s2 >>> 16 & 255] ^ SUB_MIX_22[s3 >>> 8 & 255] ^ SUB_MIX_32[s0 & 255] ^ keySchedule[ksRow++]; 6109 var t2 = SUB_MIX_02[s2 >>> 24] ^ SUB_MIX_12[s3 >>> 16 & 255] ^ SUB_MIX_22[s0 >>> 8 & 255] ^ SUB_MIX_32[s1 & 255] ^ keySchedule[ksRow++]; 6110 var t3 = SUB_MIX_02[s3 >>> 24] ^ SUB_MIX_12[s0 >>> 16 & 255] ^ SUB_MIX_22[s1 >>> 8 & 255] ^ SUB_MIX_32[s2 & 255] ^ keySchedule[ksRow++]; 6111 s0 = t0; 6112 s1 = t1; 6113 s2 = t2; 6114 s3 = t3; 6115 } 6116 var t0 = (SBOX2[s0 >>> 24] << 24 | SBOX2[s1 >>> 16 & 255] << 16 | SBOX2[s2 >>> 8 & 255] << 8 | SBOX2[s3 & 255]) ^ keySchedule[ksRow++]; 6117 var t1 = (SBOX2[s1 >>> 24] << 24 | SBOX2[s2 >>> 16 & 255] << 16 | SBOX2[s3 >>> 8 & 255] << 8 | SBOX2[s0 & 255]) ^ keySchedule[ksRow++]; 6118 var t2 = (SBOX2[s2 >>> 24] << 24 | SBOX2[s3 >>> 16 & 255] << 16 | SBOX2[s0 >>> 8 & 255] << 8 | SBOX2[s1 & 255]) ^ keySchedule[ksRow++]; 6119 var t3 = (SBOX2[s3 >>> 24] << 24 | SBOX2[s0 >>> 16 & 255] << 16 | SBOX2[s1 >>> 8 & 255] << 8 | SBOX2[s2 & 255]) ^ keySchedule[ksRow++]; 6120 M[offset] = t0; 6121 M[offset + 1] = t1; 6122 M[offset + 2] = t2; 6123 M[offset + 3] = t3; 6124 }, 6125 keySize: 256 / 32 6126 }); 6127 C.AES = BlockCipher._createHelper(AES); 6128 })(); 6129 return CryptoJS.AES; 6130 }); 6131 } 6132 }); 6133 6134
vendor: 23,864 bytes, lines 6134-6915
6134// ../../../node_modules/crypto-js/tripledes.js 6135 var require_tripledes = __commonJS({ 6136 "../../../node_modules/crypto-js/tripledes.js"(exports, module) { 6137 (function(root, factory, undef) { 6138 if (typeof exports === "object") { 6139 module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core()); 6140 } else if (typeof define === "function" && define.amd) { 6141 define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); 6142 } else { 6143 factory(root.CryptoJS); 6144 } 6145 })(exports, function(CryptoJS) { 6146 (function() { 6147 var C = CryptoJS; 6148 var C_lib = C.lib; 6149 var WordArray = C_lib.WordArray; 6150 var BlockCipher = C_lib.BlockCipher; 6151 var C_algo = C.algo; 6152 var PC1 = [ 6153 57, 6154 49, 6155 41, 6156 33, 6157 25, 6158 17, 6159 9, 6160 1, 6161 58, 6162 50, 6163 42, 6164 34, 6165 26, 6166 18, 6167 10, 6168 2, 6169 59, 6170 51, 6171 43, 6172 35, 6173 27, 6174 19, 6175 11, 6176 3, 6177 60, 6178 52, 6179 44, 6180 36, 6181 63, 6182 55, 6183 47, 6184 39, 6185 31, 6186 23, 6187 15, 6188 7, 6189 62, 6190 54, 6191 46, 6192 38, 6193 30, 6194 22, 6195 14, 6196 6, 6197 61, 6198 53, 6199 45, 6200 37, 6201 29, 6202 21, 6203 13, 6204 5, 6205 28, 6206 20, 6207 12, 6208 4 6209 ]; 6210 var PC2 = [ 6211 14, 6212 17, 6213 11, 6214 24, 6215 1, 6216 5, 6217 3, 6218 28, 6219 15, 6220 6, 6221 21, 6222 10, 6223 23, 6224 19, 6225 12, 6226 4, 6227 26, 6228 8, 6229 16, 6230 7, 6231 27, 6232 20, 6233 13, 6234 2, 6235 41, 6236 52, 6237 31, 6238 37, 6239 47, 6240 55, 6241 30, 6242 40, 6243 51, 6244 45, 6245 33, 6246 48, 6247 44, 6248 49, 6249 39, 6250 56, 6251 34, 6252 53, 6253 46, 6254 42, 6255 50, 6256 36, 6257 29, 6258 32 6259 ]; 6260 var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; 6261 var SBOX_P = [ 6262 { 6263 0: 8421888, 6264 268435456: 32768, 6265 536870912: 8421378, 6266 805306368: 2, 6267 1073741824: 512, 6268 1342177280: 8421890, 6269 1610612736: 8389122, 6270 1879048192: 8388608, 6271 2147483648: 514, 6272 2415919104: 8389120, 6273 2684354560: 33280, 6274 2952790016: 8421376, 6275 3221225472: 32770, 6276 3489660928: 8388610, 6277 3758096384: 0, 6278 4026531840: 33282, 6279 134217728: 0, 6280 402653184: 8421890, 6281 671088640: 33282, 6282 939524096: 32768, 6283 1207959552: 8421888, 6284 1476395008: 512, 6285 1744830464: 8421378, 6286 2013265920: 2, 6287 2281701376: 8389120, 6288 2550136832: 33280, 6289 2818572288: 8421376, 6290 3087007744: 8389122, 6291 3355443200: 8388610, 6292 3623878656: 32770, 6293 3892314112: 514, 6294 4160749568: 8388608, 6295 1: 32768, 6296 268435457: 2, 6297 536870913: 8421888, 6298 805306369: 8388608, 6299 1073741825: 8421378, 6300 1342177281: 33280, 6301 1610612737: 512, 6302 1879048193: 8389122, 6303 2147483649: 8421890, 6304 2415919105: 8421376, 6305 2684354561: 8388610, 6306 2952790017: 33282, 6307 3221225473: 514, 6308 3489660929: 8389120, 6309 3758096385: 32770, 6310 4026531841: 0, 6311 134217729: 8421890, 6312 402653185: 8421376, 6313 671088641: 8388608, 6314 939524097: 512, 6315 1207959553: 32768, 6316 1476395009: 8388610, 6317 1744830465: 2, 6318 2013265921: 33282, 6319 2281701377: 32770, 6320 2550136833: 8389122, 6321 2818572289: 514, 6322 3087007745: 8421888, 6323 3355443201: 8389120, 6324 3623878657: 0, 6325 3892314113: 33280, 6326 4160749569: 8421378 6327 }, 6328 { 6329 0: 1074282512, 6330 16777216: 16384, 6331 33554432: 524288, 6332 50331648: 1074266128, 6333 67108864: 1073741840, 6334 83886080: 1074282496, 6335 100663296: 1073758208, 6336 117440512: 16, 6337 134217728: 540672, 6338 150994944: 1073758224, 6339 167772160: 1073741824, 6340 184549376: 540688, 6341 201326592: 524304, 6342 218103808: 0, 6343 234881024: 16400, 6344 251658240: 1074266112, 6345 8388608: 1073758208, 6346 25165824: 540688, 6347 41943040: 16, 6348 58720256: 1073758224, 6349 75497472: 1074282512, 6350 92274688: 1073741824, 6351 109051904: 524288, 6352 125829120: 1074266128, 6353 142606336: 524304, 6354 159383552: 0, 6355 176160768: 16384, 6356 192937984: 1074266112, 6357 209715200: 1073741840, 6358 226492416: 540672, 6359 243269632: 1074282496, 6360 260046848: 16400, 6361 268435456: 0, 6362 285212672: 1074266128, 6363 301989888: 1073758224, 6364 318767104: 1074282496, 6365 335544320: 1074266112, 6366 352321536: 16, 6367 369098752: 540688, 6368 385875968: 16384, 6369 402653184: 16400, 6370 419430400: 524288, 6371 436207616: 524304, 6372 452984832: 1073741840, 6373 469762048: 540672, 6374 486539264: 1073758208, 6375 503316480: 1073741824, 6376 520093696: 1074282512, 6377 276824064: 540688, 6378 293601280: 524288, 6379 310378496: 1074266112, 6380 327155712: 16384, 6381 343932928: 1073758208, 6382 360710144: 1074282512, 6383 377487360: 16, 6384 394264576: 1073741824, 6385 411041792: 1074282496, 6386 427819008: 1073741840, 6387 444596224: 1073758224, 6388 461373440: 524304, 6389 478150656: 0, 6390 494927872: 16400, 6391 511705088: 1074266128, 6392 528482304: 540672 6393 }, 6394 { 6395 0: 260, 6396 1048576: 0, 6397 2097152: 67109120, 6398 3145728: 65796, 6399 4194304: 65540, 6400 5242880: 67108868, 6401 6291456: 67174660, 6402 7340032: 67174400, 6403 8388608: 67108864, 6404 9437184: 67174656, 6405 10485760: 65792, 6406 11534336: 67174404, 6407 12582912: 67109124, 6408 13631488: 65536, 6409 14680064: 4, 6410 15728640: 256, 6411 524288: 67174656, 6412 1572864: 67174404, 6413 2621440: 0, 6414 3670016: 67109120, 6415 4718592: 67108868, 6416 5767168: 65536, 6417 6815744: 65540, 6418 7864320: 260, 6419 8912896: 4, 6420 9961472: 256, 6421 11010048: 67174400, 6422 12058624: 65796, 6423 13107200: 65792, 6424 14155776: 67109124, 6425 15204352: 67174660, 6426 16252928: 67108864, 6427 16777216: 67174656, 6428 17825792: 65540, 6429 18874368: 65536, 6430 19922944: 67109120, 6431 20971520: 256, 6432 22020096: 67174660, 6433 23068672: 67108868, 6434 24117248: 0, 6435 25165824: 67109124, 6436 26214400: 67108864, 6437 27262976: 4, 6438 28311552: 65792, 6439 29360128: 67174400, 6440 30408704: 260, 6441 31457280: 65796, 6442 32505856: 67174404, 6443 17301504: 67108864, 6444 18350080: 260, 6445 19398656: 67174656, 6446 20447232: 0, 6447 21495808: 65540, 6448 22544384: 67109120, 6449 23592960: 256, 6450 24641536: 67174404, 6451 25690112: 65536, 6452 26738688: 67174660, 6453 27787264: 65796, 6454 28835840: 67108868, 6455 29884416: 67109124, 6456 30932992: 67174400, 6457 31981568: 4, 6458 33030144: 65792 6459 }, 6460 { 6461 0: 2151682048, 6462 65536: 2147487808, 6463 131072: 4198464, 6464 196608: 2151677952, 6465 262144: 0, 6466 327680: 4198400, 6467 393216: 2147483712, 6468 458752: 4194368, 6469 524288: 2147483648, 6470 589824: 4194304, 6471 655360: 64, 6472 720896: 2147487744, 6473 786432: 2151678016, 6474 851968: 4160, 6475 917504: 4096, 6476 983040: 2151682112, 6477 32768: 2147487808, 6478 98304: 64, 6479 163840: 2151678016, 6480 229376: 2147487744, 6481 294912: 4198400, 6482 360448: 2151682112, 6483 425984: 0, 6484 491520: 2151677952, 6485 557056: 4096, 6486 622592: 2151682048, 6487 688128: 4194304, 6488 753664: 4160, 6489 819200: 2147483648, 6490 884736: 4194368, 6491 950272: 4198464, 6492 1015808: 2147483712, 6493 1048576: 4194368, 6494 1114112: 4198400, 6495 1179648: 2147483712, 6496 1245184: 0, 6497 1310720: 4160, 6498 1376256: 2151678016, 6499 1441792: 2151682048, 6500 1507328: 2147487808, 6501 1572864: 2151682112, 6502 1638400: 2147483648, 6503 1703936: 2151677952, 6504 1769472: 4198464, 6505 1835008: 2147487744, 6506 1900544: 4194304, 6507 1966080: 64, 6508 2031616: 4096, 6509 1081344: 2151677952, 6510 1146880: 2151682112, 6511 1212416: 0, 6512 1277952: 4198400, 6513 1343488: 4194368, 6514 1409024: 2147483648, 6515 1474560: 2147487808, 6516 1540096: 64, 6517 1605632: 2147483712, 6518 1671168: 4096, 6519 1736704: 2147487744, 6520 1802240: 2151678016, 6521 1867776: 4160, 6522 1933312: 2151682048, 6523 1998848: 4194304, 6524 2064384: 4198464 6525 }, 6526 { 6527 0: 128, 6528 4096: 17039360, 6529 8192: 262144, 6530 12288: 536870912, 6531 16384: 537133184, 6532 20480: 16777344, 6533 24576: 553648256, 6534 28672: 262272, 6535 32768: 16777216, 6536 36864: 537133056, 6537 40960: 536871040, 6538 45056: 553910400, 6539 49152: 553910272, 6540 53248: 0, 6541 57344: 17039488, 6542 61440: 553648128, 6543 2048: 17039488, 6544 6144: 553648256, 6545 10240: 128, 6546 14336: 17039360, 6547 18432: 262144, 6548 22528: 537133184, 6549 26624: 553910272, 6550 30720: 536870912, 6551 34816: 537133056, 6552 38912: 0, 6553 43008: 553910400, 6554 47104: 16777344, 6555 51200: 536871040, 6556 55296: 553648128, 6557 59392: 16777216, 6558 63488: 262272, 6559 65536: 262144, 6560 69632: 128, 6561 73728: 536870912, 6562 77824: 553648256, 6563 81920: 16777344, 6564 86016: 553910272, 6565 90112: 537133184, 6566 94208: 16777216, 6567 98304: 553910400, 6568 102400: 553648128, 6569 106496: 17039360, 6570 110592: 537133056, 6571 114688: 262272, 6572 118784: 536871040, 6573 122880: 0, 6574 126976: 17039488, 6575 67584: 553648256, 6576 71680: 16777216, 6577 75776: 17039360, 6578 79872: 537133184, 6579 83968: 536870912, 6580 88064: 17039488, 6581 92160: 128, 6582 96256: 553910272, 6583 100352: 262272, 6584 104448: 553910400, 6585 108544: 0, 6586 112640: 553648128, 6587 116736: 16777344, 6588 120832: 262144, 6589 124928: 537133056, 6590 129024: 536871040 6591 }, 6592 { 6593 0: 268435464, 6594 256: 8192, 6595 512: 270532608, 6596 768: 270540808, 6597 1024: 268443648, 6598 1280: 2097152, 6599 1536: 2097160, 6600 1792: 268435456, 6601 2048: 0, 6602 2304: 268443656, 6603 2560: 2105344, 6604 2816: 8, 6605 3072: 270532616, 6606 3328: 2105352, 6607 3584: 8200, 6608 3840: 270540800, 6609 128: 270532608, 6610 384: 270540808, 6611 640: 8, 6612 896: 2097152, 6613 1152: 2105352, 6614 1408: 268435464, 6615 1664: 268443648, 6616 1920: 8200, 6617 2176: 2097160, 6618 2432: 8192, 6619 2688: 268443656, 6620 2944: 270532616, 6621 3200: 0, 6622 3456: 270540800, 6623 3712: 2105344, 6624 3968: 268435456, 6625 4096: 268443648, 6626 4352: 270532616, 6627 4608: 270540808, 6628 4864: 8200, 6629 5120: 2097152, 6630 5376: 268435456, 6631 5632: 268435464, 6632 5888: 2105344, 6633 6144: 2105352, 6634 6400: 0, 6635 6656: 8, 6636 6912: 270532608, 6637 7168: 8192, 6638 7424: 268443656, 6639 7680: 270540800, 6640 7936: 2097160, 6641 4224: 8, 6642 4480: 2105344, 6643 4736: 2097152, 6644 4992: 268435464, 6645 5248: 268443648, 6646 5504: 8200, 6647 5760: 270540808, 6648 6016: 270532608, 6649 6272: 270540800, 6650 6528: 270532616, 6651 6784: 8192, 6652 7040: 2105352, 6653 7296: 2097160, 6654 7552: 0, 6655 7808: 268435456, 6656 8064: 268443656 6657 }, 6658 { 6659 0: 1048576, 6660 16: 33555457, 6661 32: 1024, 6662 48: 1049601, 6663 64: 34604033, 6664 80: 0, 6665 96: 1, 6666 112: 34603009, 6667 128: 33555456, 6668 144: 1048577, 6669 160: 33554433, 6670 176: 34604032, 6671 192: 34603008, 6672 208: 1025, 6673 224: 1049600, 6674 240: 33554432, 6675 8: 34603009, 6676 24: 0, 6677 40: 33555457, 6678 56: 34604032, 6679 72: 1048576, 6680 88: 33554433, 6681 104: 33554432, 6682 120: 1025, 6683 136: 1049601, 6684 152: 33555456, 6685 168: 34603008, 6686 184: 1048577, 6687 200: 1024, 6688 216: 34604033, 6689 232: 1, 6690 248: 1049600, 6691 256: 33554432, 6692 272: 1048576, 6693 288: 33555457, 6694 304: 34603009, 6695 320: 1048577, 6696 336: 33555456, 6697 352: 34604032, 6698 368: 1049601, 6699 384: 1025, 6700 400: 34604033, 6701 416: 1049600, 6702 432: 1, 6703 448: 0, 6704 464: 34603008, 6705 480: 33554433, 6706 496: 1024, 6707 264: 1049600, 6708 280: 33555457, 6709 296: 34603009, 6710 312: 1, 6711 328: 33554432, 6712 344: 1048576, 6713 360: 1025, 6714 376: 34604032, 6715 392: 33554433, 6716 408: 34603008, 6717 424: 0, 6718 440: 34604033, 6719 456: 1049601, 6720 472: 1024, 6721 488: 33555456, 6722 504: 1048577 6723 }, 6724 { 6725 0: 134219808, 6726 1: 131072, 6727 2: 134217728, 6728 3: 32, 6729 4: 131104, 6730 5: 134350880, 6731 6: 134350848, 6732 7: 2048, 6733 8: 134348800, 6734 9: 134219776, 6735 10: 133120, 6736 11: 134348832, 6737 12: 2080, 6738 13: 0, 6739 14: 134217760, 6740 15: 133152, 6741 2147483648: 2048, 6742 2147483649: 134350880, 6743 2147483650: 134219808, 6744 2147483651: 134217728, 6745 2147483652: 134348800, 6746 2147483653: 133120, 6747 2147483654: 133152, 6748 2147483655: 32, 6749 2147483656: 134217760, 6750 2147483657: 2080, 6751 2147483658: 131104, 6752 2147483659: 134350848, 6753 2147483660: 0, 6754 2147483661: 134348832, 6755 2147483662: 134219776, 6756 2147483663: 131072, 6757 16: 133152, 6758 17: 134350848, 6759 18: 32, 6760 19: 2048, 6761 20: 134219776, 6762 21: 134217760, 6763 22: 134348832, 6764 23: 131072, 6765 24: 0, 6766 25: 131104, 6767 26: 134348800, 6768 27: 134219808, 6769 28: 134350880, 6770 29: 133120, 6771 30: 2080, 6772 31: 134217728, 6773 2147483664: 131072, 6774 2147483665: 2048, 6775 2147483666: 134348832, 6776 2147483667: 133152, 6777 2147483668: 32, 6778 2147483669: 134348800, 6779 2147483670: 134217728, 6780 2147483671: 134219808, 6781 2147483672: 134350880, 6782 2147483673: 134217760, 6783 2147483674: 134219776, 6784 2147483675: 0, 6785 2147483676: 133120, 6786 2147483677: 2080, 6787 2147483678: 131104, 6788 2147483679: 134350848 6789 } 6790 ]; 6791 var SBOX_MASK = [ 6792 4160749569, 6793 528482304, 6794 33030144, 6795 2064384, 6796 129024, 6797 8064, 6798 504, 6799 2147483679 6800 ]; 6801 var DES = C_algo.DES = BlockCipher.extend({ 6802 _doReset: function() { 6803 var key = this._key; 6804 var keyWords = key.words; 6805 var keyBits = []; 6806 for (var i = 0; i < 56; i++) { 6807 var keyBitPos = PC1[i] - 1; 6808 keyBits[i] = keyWords[keyBitPos >>> 5] >>> 31 - keyBitPos % 32 & 1; 6809 } 6810 var subKeys = this._subKeys = []; 6811 for (var nSubKey = 0; nSubKey < 16; nSubKey++) { 6812 var subKey = subKeys[nSubKey] = []; 6813 var bitShift = BIT_SHIFTS[nSubKey]; 6814 for (var i = 0; i < 24; i++) { 6815 subKey[i / 6 | 0] |= keyBits[(PC2[i] - 1 + bitShift) % 28] << 31 - i % 6; 6816 subKey[4 + (i / 6 | 0)] |= keyBits[28 + (PC2[i + 24] - 1 + bitShift) % 28] << 31 - i % 6; 6817 } 6818 subKey[0] = subKey[0] << 1 | subKey[0] >>> 31; 6819 for (var i = 1; i < 7; i++) { 6820 subKey[i] = subKey[i] >>> (i - 1) * 4 + 3; 6821 } 6822 subKey[7] = subKey[7] << 5 | subKey[7] >>> 27; 6823 } 6824 var invSubKeys = this._invSubKeys = []; 6825 for (var i = 0; i < 16; i++) { 6826 invSubKeys[i] = subKeys[15 - i]; 6827 } 6828 }, 6829 encryptBlock: function(M, offset) { 6830 this._doCryptBlock(M, offset, this._subKeys); 6831 }, 6832 decryptBlock: function(M, offset) { 6833 this._doCryptBlock(M, offset, this._invSubKeys); 6834 }, 6835 _doCryptBlock: function(M, offset, subKeys) { 6836 this._lBlock = M[offset]; 6837 this._rBlock = M[offset + 1]; 6838 exchangeLR.call(this, 4, 252645135); 6839 exchangeLR.call(this, 16, 65535); 6840 exchangeRL.call(this, 2, 858993459); 6841 exchangeRL.call(this, 8, 16711935); 6842 exchangeLR.call(this, 1, 1431655765); 6843 for (var round = 0; round < 16; round++) { 6844 var subKey = subKeys[round]; 6845 var lBlock = this._lBlock; 6846 var rBlock = this._rBlock; 6847 var f = 0; 6848 for (var i = 0; i < 8; i++) { 6849 f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0]; 6850 } 6851 this._lBlock = rBlock; 6852 this._rBlock = lBlock ^ f; 6853 } 6854 var t = this._lBlock; 6855 this._lBlock = this._rBlock; 6856 this._rBlock = t; 6857 exchangeLR.call(this, 1, 1431655765); 6858 exchangeRL.call(this, 8, 16711935); 6859 exchangeRL.call(this, 2, 858993459); 6860 exchangeLR.call(this, 16, 65535); 6861 exchangeLR.call(this, 4, 252645135); 6862 M[offset] = this._lBlock; 6863 M[offset + 1] = this._rBlock; 6864 }, 6865 keySize: 64 / 32, 6866 ivSize: 64 / 32, 6867 blockSize: 64 / 32 6868 }); 6869 function exchangeLR(offset, mask) { 6870 var t = (this._lBlock >>> offset ^ this._rBlock) & mask; 6871 this._rBlock ^= t; 6872 this._lBlock ^= t << offset; 6873 } 6874 function exchangeRL(offset, mask) { 6875 var t = (this._rBlock >>> offset ^ this._lBlock) & mask; 6876 this._lBlock ^= t; 6877 this._rBlock ^= t << offset; 6878 } 6879 C.DES = BlockCipher._createHelper(DES); 6880 var TripleDES = C_algo.TripleDES = BlockCipher.extend({ 6881 _doReset: function() { 6882 var key = this._key; 6883 var keyWords = key.words; 6884 if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) { 6885 throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192."); 6886 } 6887 var key1 = keyWords.slice(0, 2); 6888 var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4); 6889 var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6); 6890 this._des1 = DES.createEncryptor(WordArray.create(key1)); 6891 this._des2 = DES.createEncryptor(WordArray.create(key2)); 6892 this._des3 = DES.createEncryptor(WordArray.create(key3)); 6893 }, 6894 encryptBlock: function(M, offset) { 6895 this._des1.encryptBlock(M, offset); 6896 this._des2.decryptBlock(M, offset); 6897 this._des3.encryptBlock(M, offset); 6898 }, 6899 decryptBlock: function(M, offset) { 6900 this._des3.decryptBlock(M, offset); 6901 this._des2.encryptBlock(M, offset); 6902 this._des1.decryptBlock(M, offset); 6903 }, 6904 keySize: 192 / 32, 6905 ivSize: 64 / 32, 6906 blockSize: 64 / 32 6907 }); 6908 C.TripleDES = BlockCipher._createHelper(TripleDES); 6909 })(); 6910 return CryptoJS.TripleDES; 6911 }); 6912 } 6913 }); 6914 6915
vendor: 2,951 bytes, lines 6915-6998
6915// ../../../node_modules/crypto-js/rc4.js 6916 var require_rc4 = __commonJS({ 6917 "../../../node_modules/crypto-js/rc4.js"(exports, module) { 6918 (function(root, factory, undef) { 6919 if (typeof exports === "object") { 6920 module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core()); 6921 } else if (typeof define === "function" && define.amd) { 6922 define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); 6923 } else { 6924 factory(root.CryptoJS); 6925 } 6926 })(exports, function(CryptoJS) { 6927 (function() { 6928 var C = CryptoJS; 6929 var C_lib = C.lib; 6930 var StreamCipher = C_lib.StreamCipher; 6931 var C_algo = C.algo; 6932 var RC4 = C_algo.RC4 = StreamCipher.extend({ 6933 _doReset: function() { 6934 var key = this._key; 6935 var keyWords = key.words; 6936 var keySigBytes = key.sigBytes; 6937 var S = this._S = []; 6938 for (var i = 0; i < 256; i++) { 6939 S[i] = i; 6940 } 6941 for (var i = 0, j = 0; i < 256; i++) { 6942 var keyByteIndex = i % keySigBytes; 6943 var keyByte = keyWords[keyByteIndex >>> 2] >>> 24 - keyByteIndex % 4 * 8 & 255; 6944 j = (j + S[i] + keyByte) % 256; 6945 var t = S[i]; 6946 S[i] = S[j]; 6947 S[j] = t; 6948 } 6949 this._i = this._j = 0; 6950 }, 6951 _doProcessBlock: function(M, offset) { 6952 M[offset] ^= generateKeystreamWord.call(this); 6953 }, 6954 keySize: 256 / 32, 6955 ivSize: 0 6956 }); 6957 function generateKeystreamWord() { 6958 var S = this._S; 6959 var i = this._i; 6960 var j = this._j; 6961 var keystreamWord = 0; 6962 for (var n = 0; n < 4; n++) { 6963 i = (i + 1) % 256; 6964 j = (j + S[i]) % 256; 6965 var t = S[i]; 6966 S[i] = S[j]; 6967 S[j] = t; 6968 keystreamWord |= S[(S[i] + S[j]) % 256] << 24 - n * 8; 6969 } 6970 this._i = i; 6971 this._j = j; 6972 return keystreamWord; 6973 } 6974 C.RC4 = StreamCipher._createHelper(RC4); 6975 var RC4Drop = C_algo.RC4Drop = RC4.extend({ 6976 /** 6977 * Configuration options. 6978 * 6979 * @property {number} drop The number of keystream words to drop. Default 192 6980 */ 6981 cfg: RC4.cfg.extend({ 6982 drop: 192 6983 }), 6984 _doReset: function() { 6985 RC4._doReset.call(this); 6986 for (var i = this.cfg.drop; i > 0; i--) { 6987 generateKeystreamWord.call(this); 6988 } 6989 } 6990 }); 6991 C.RC4Drop = StreamCipher._createHelper(RC4Drop); 6992 })(); 6993 return CryptoJS.RC4; 6994 }); 6995 } 6996 }); 6997 6998
vendor: 5,511 bytes, lines 6998-7127
6998// ../../../node_modules/crypto-js/rabbit.js 6999 var require_rabbit = __commonJS({ 7000 "../../../node_modules/crypto-js/rabbit.js"(exports, module) { 7001 (function(root, factory, undef) { 7002 if (typeof exports === "object") { 7003 module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core()); 7004 } else if (typeof define === "function" && define.amd) { 7005 define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); 7006 } else { 7007 factory(root.CryptoJS); 7008 } 7009 })(exports, function(CryptoJS) { 7010 (function() { 7011 var C = CryptoJS; 7012 var C_lib = C.lib; 7013 var StreamCipher = C_lib.StreamCipher; 7014 var C_algo = C.algo; 7015 var S = []; 7016 var C_ = []; 7017 var G = []; 7018 var Rabbit = C_algo.Rabbit = StreamCipher.extend({ 7019 _doReset: function() { 7020 var K = this._key.words; 7021 var iv = this.cfg.iv; 7022 for (var i = 0; i < 4; i++) { 7023 K[i] = (K[i] << 8 | K[i] >>> 24) & 16711935 | (K[i] << 24 | K[i] >>> 8) & 4278255360; 7024 } 7025 var X = this._X = [ 7026 K[0], 7027 K[3] << 16 | K[2] >>> 16, 7028 K[1], 7029 K[0] << 16 | K[3] >>> 16, 7030 K[2], 7031 K[1] << 16 | K[0] >>> 16, 7032 K[3], 7033 K[2] << 16 | K[1] >>> 16 7034 ]; 7035 var C2 = this._C = [ 7036 K[2] << 16 | K[2] >>> 16, 7037 K[0] & 4294901760 | K[1] & 65535, 7038 K[3] << 16 | K[3] >>> 16, 7039 K[1] & 4294901760 | K[2] & 65535, 7040 K[0] << 16 | K[0] >>> 16, 7041 K[2] & 4294901760 | K[3] & 65535, 7042 K[1] << 16 | K[1] >>> 16, 7043 K[3] & 4294901760 | K[0] & 65535 7044 ]; 7045 this._b = 0; 7046 for (var i = 0; i < 4; i++) { 7047 nextState.call(this); 7048 } 7049 for (var i = 0; i < 8; i++) { 7050 C2[i] ^= X[i + 4 & 7]; 7051 } 7052 if (iv) { 7053 var IV = iv.words; 7054 var IV_0 = IV[0]; 7055 var IV_1 = IV[1]; 7056 var i0 = (IV_0 << 8 | IV_0 >>> 24) & 16711935 | (IV_0 << 24 | IV_0 >>> 8) & 4278255360; 7057 var i2 = (IV_1 << 8 | IV_1 >>> 24) & 16711935 | (IV_1 << 24 | IV_1 >>> 8) & 4278255360; 7058 var i1 = i0 >>> 16 | i2 & 4294901760; 7059 var i3 = i2 << 16 | i0 & 65535; 7060 C2[0] ^= i0; 7061 C2[1] ^= i1; 7062 C2[2] ^= i2; 7063 C2[3] ^= i3; 7064 C2[4] ^= i0; 7065 C2[5] ^= i1; 7066 C2[6] ^= i2; 7067 C2[7] ^= i3; 7068 for (var i = 0; i < 4; i++) { 7069 nextState.call(this); 7070 } 7071 } 7072 }, 7073 _doProcessBlock: function(M, offset) { 7074 var X = this._X; 7075 nextState.call(this); 7076 S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16; 7077 S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16; 7078 S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16; 7079 S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16; 7080 for (var i = 0; i < 4; i++) { 7081 S[i] = (S[i] << 8 | S[i] >>> 24) & 16711935 | (S[i] << 24 | S[i] >>> 8) & 4278255360; 7082 M[offset + i] ^= S[i]; 7083 } 7084 }, 7085 blockSize: 128 / 32, 7086 ivSize: 64 / 32 7087 }); 7088 function nextState() { 7089 var X = this._X; 7090 var C2 = this._C; 7091 for (var i = 0; i < 8; i++) { 7092 C_[i] = C2[i]; 7093 } 7094 C2[0] = C2[0] + 1295307597 + this._b | 0; 7095 C2[1] = C2[1] + 3545052371 + (C2[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0; 7096 C2[2] = C2[2] + 886263092 + (C2[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0; 7097 C2[3] = C2[3] + 1295307597 + (C2[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0; 7098 C2[4] = C2[4] + 3545052371 + (C2[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0; 7099 C2[5] = C2[5] + 886263092 + (C2[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0; 7100 C2[6] = C2[6] + 1295307597 + (C2[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0; 7101 C2[7] = C2[7] + 3545052371 + (C2[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0; 7102 this._b = C2[7] >>> 0 < C_[7] >>> 0 ? 1 : 0; 7103 for (var i = 0; i < 8; i++) { 7104 var gx = X[i] + C2[i]; 7105 var ga = gx & 65535; 7106 var gb = gx >>> 16; 7107 var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb; 7108 var gl = ((gx & 4294901760) * gx | 0) + ((gx & 65535) * gx | 0); 7109 G[i] = gh ^ gl; 7110 } 7111 X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0; 7112 X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0; 7113 X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0; 7114 X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0; 7115 X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0; 7116 X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0; 7117 X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0; 7118 X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0; 7119 } 7120 C.Rabbit = StreamCipher._createHelper(Rabbit); 7121 })(); 7122 return CryptoJS.Rabbit; 7123 }); 7124 } 7125 }); 7126 7127
vendor: 5,400 bytes, lines 7127-7253
7127// ../../../node_modules/crypto-js/rabbit-legacy.js 7128 var require_rabbit_legacy = __commonJS({ 7129 "../../../node_modules/crypto-js/rabbit-legacy.js"(exports, module) { 7130 (function(root, factory, undef) { 7131 if (typeof exports === "object") { 7132 module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core()); 7133 } else if (typeof define === "function" && define.amd) { 7134 define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); 7135 } else { 7136 factory(root.CryptoJS); 7137 } 7138 })(exports, function(CryptoJS) { 7139 (function() { 7140 var C = CryptoJS; 7141 var C_lib = C.lib; 7142 var StreamCipher = C_lib.StreamCipher; 7143 var C_algo = C.algo; 7144 var S = []; 7145 var C_ = []; 7146 var G = []; 7147 var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({ 7148 _doReset: function() { 7149 var K = this._key.words; 7150 var iv = this.cfg.iv; 7151 var X = this._X = [ 7152 K[0], 7153 K[3] << 16 | K[2] >>> 16, 7154 K[1], 7155 K[0] << 16 | K[3] >>> 16, 7156 K[2], 7157 K[1] << 16 | K[0] >>> 16, 7158 K[3], 7159 K[2] << 16 | K[1] >>> 16 7160 ]; 7161 var C2 = this._C = [ 7162 K[2] << 16 | K[2] >>> 16, 7163 K[0] & 4294901760 | K[1] & 65535, 7164 K[3] << 16 | K[3] >>> 16, 7165 K[1] & 4294901760 | K[2] & 65535, 7166 K[0] << 16 | K[0] >>> 16, 7167 K[2] & 4294901760 | K[3] & 65535, 7168 K[1] << 16 | K[1] >>> 16, 7169 K[3] & 4294901760 | K[0] & 65535 7170 ]; 7171 this._b = 0; 7172 for (var i = 0; i < 4; i++) { 7173 nextState.call(this); 7174 } 7175 for (var i = 0; i < 8; i++) { 7176 C2[i] ^= X[i + 4 & 7]; 7177 } 7178 if (iv) { 7179 var IV = iv.words; 7180 var IV_0 = IV[0]; 7181 var IV_1 = IV[1]; 7182 var i0 = (IV_0 << 8 | IV_0 >>> 24) & 16711935 | (IV_0 << 24 | IV_0 >>> 8) & 4278255360; 7183 var i2 = (IV_1 << 8 | IV_1 >>> 24) & 16711935 | (IV_1 << 24 | IV_1 >>> 8) & 4278255360; 7184 var i1 = i0 >>> 16 | i2 & 4294901760; 7185 var i3 = i2 << 16 | i0 & 65535; 7186 C2[0] ^= i0; 7187 C2[1] ^= i1; 7188 C2[2] ^= i2; 7189 C2[3] ^= i3; 7190 C2[4] ^= i0; 7191 C2[5] ^= i1; 7192 C2[6] ^= i2; 7193 C2[7] ^= i3; 7194 for (var i = 0; i < 4; i++) { 7195 nextState.call(this); 7196 } 7197 } 7198 }, 7199 _doProcessBlock: function(M, offset) { 7200 var X = this._X; 7201 nextState.call(this); 7202 S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16; 7203 S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16; 7204 S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16; 7205 S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16; 7206 for (var i = 0; i < 4; i++) { 7207 S[i] = (S[i] << 8 | S[i] >>> 24) & 16711935 | (S[i] << 24 | S[i] >>> 8) & 4278255360; 7208 M[offset + i] ^= S[i]; 7209 } 7210 }, 7211 blockSize: 128 / 32, 7212 ivSize: 64 / 32 7213 }); 7214 function nextState() { 7215 var X = this._X; 7216 var C2 = this._C; 7217 for (var i = 0; i < 8; i++) { 7218 C_[i] = C2[i]; 7219 } 7220 C2[0] = C2[0] + 1295307597 + this._b | 0; 7221 C2[1] = C2[1] + 3545052371 + (C2[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0; 7222 C2[2] = C2[2] + 886263092 + (C2[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0; 7223 C2[3] = C2[3] + 1295307597 + (C2[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0; 7224 C2[4] = C2[4] + 3545052371 + (C2[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0; 7225 C2[5] = C2[5] + 886263092 + (C2[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0; 7226 C2[6] = C2[6] + 1295307597 + (C2[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0; 7227 C2[7] = C2[7] + 3545052371 + (C2[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0; 7228 this._b = C2[7] >>> 0 < C_[7] >>> 0 ? 1 : 0; 7229 for (var i = 0; i < 8; i++) { 7230 var gx = X[i] + C2[i]; 7231 var ga = gx & 65535; 7232 var gb = gx >>> 16; 7233 var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb; 7234 var gl = ((gx & 4294901760) * gx | 0) + ((gx & 65535) * gx | 0); 7235 G[i] = gh ^ gl; 7236 } 7237 X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0; 7238 X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0; 7239 X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0; 7240 X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0; 7241 X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0; 7242 X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0; 7243 X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0; 7244 X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0; 7245 } 7246 C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy); 7247 })(); 7248 return CryptoJS.RabbitLegacy; 7249 }); 7250 } 7251 }); 7252 7253
vendor: 1,722 bytes, lines 7253-7270
7253// ../../../node_modules/crypto-js/index.js 7254 var require_crypto_js = __commonJS({ 7255 "../../../node_modules/crypto-js/index.js"(exports, module) { 7256 (function(root, factory, undef) { 7257 if (typeof exports === "object") { 7258 module.exports = exports = factory(require_core(), require_x64_core(), require_lib_typedarrays(), require_enc_utf16(), require_enc_base64(), require_enc_base64url(), require_md5(), require_sha1(), require_sha256(), require_sha224(), require_sha512(), require_sha384(), require_sha3(), require_ripemd160(), require_hmac(), require_pbkdf2(), require_evpkdf(), require_cipher_core(), require_mode_cfb(), require_mode_ctr(), require_mode_ctr_gladman(), require_mode_ofb(), require_mode_ecb(), require_pad_ansix923(), require_pad_iso10126(), require_pad_iso97971(), require_pad_zeropadding(), require_pad_nopadding(), require_format_hex(), require_aes(), require_tripledes(), require_rc4(), require_rabbit(), require_rabbit_legacy()); 7259 } else if (typeof define === "function" && define.amd) { 7260 define(["./core", "./x64-core", "./lib-typedarrays", "./enc-utf16", "./enc-base64", "./enc-base64url", "./md5", "./sha1", "./sha256", "./sha224", "./sha512", "./sha384", "./sha3", "./ripemd160", "./hmac", "./pbkdf2", "./evpkdf", "./cipher-core", "./mode-cfb", "./mode-ctr", "./mode-ctr-gladman", "./mode-ofb", "./mode-ecb", "./pad-ansix923", "./pad-iso10126", "./pad-iso97971", "./pad-zeropadding", "./pad-nopadding", "./format-hex", "./aes", "./tripledes", "./rc4", "./rabbit", "./rabbit-legacy"], factory); 7261 } else { 7262 root.CryptoJS = factory(root.CryptoJS); 7263 } 7264 })(exports, function(CryptoJS) { 7265 return CryptoJS; 7266 }); 7267 } 7268 }); 7269 7270
vendor: 1,810 bytes, lines 7270-7318
7270// ../../../node_modules/pkce-challenge/dist/module.js 7271 var import_crypto_js = __toESM(require_crypto_js()); 7272 function $d415641d0cfd8c85$var$toBytesInt32(num) { 7273 const arr = new ArrayBuffer(4); 7274 const view = new DataView(arr); 7275 view.setUint32(0, num, false); 7276 return arr; 7277 } 7278 function $d415641d0cfd8c85$var$getRandomValues(size) { 7279 const randoms = import_crypto_js.lib.WordArray.random(size); 7280 const randoms1byte = []; 7281 randoms.words.forEach((word) => { 7282 const arr = $d415641d0cfd8c85$var$toBytesInt32(word); 7283 const fourByteWord = new Uint8Array(arr); 7284 for (let i = 0; i < 4; i++) 7285 randoms1byte.push(fourByteWord[i]); 7286 }); 7287 return randoms1byte; 7288 } 7289 function $d415641d0cfd8c85$var$random(size) { 7290 const mask = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~"; 7291 let result = ""; 7292 const randomUints = $d415641d0cfd8c85$var$getRandomValues(size); 7293 for (let i = 0; i < size; i++) { 7294 const randomIndex = randomUints[i] % mask.length; 7295 result += mask[randomIndex]; 7296 } 7297 return result; 7298 } 7299 function $d415641d0cfd8c85$var$generateVerifier(length) { 7300 return $d415641d0cfd8c85$var$random(length); 7301 } 7302 function $d415641d0cfd8c85$export$6a61b14641fe7480(code_verifier) { 7303 return (0, import_crypto_js.SHA256)(code_verifier).toString(import_crypto_js.enc.Base64url); 7304 } 7305 function $d415641d0cfd8c85$export$2e2bcd8739ae039(length) { 7306 if (!length) 7307 length = 43; 7308 if (length < 43 || length > 128) 7309 throw `Expected a length between 43 and 128. Received ${length}.`; 7310 const verifier = $d415641d0cfd8c85$var$generateVerifier(length); 7311 const challenge = $d415641d0cfd8c85$export$6a61b14641fe7480(verifier); 7312 return { 7313 code_verifier: verifier, 7314 code_challenge: challenge 7315 }; 7316 } 7317 7318
7318// src/main/resources/META-INF/resources/js/OAuth2Client.ts 7319 var OAuth2Client = class { 7320 constructor(options) { 7321 __publicField(this, "authorizeURL"); 7322 __publicField(this, "clientId"); 7323 __publicField(this, "debug"); 7324 __publicField(this, "homePageURL"); 7325 __publicField(this, "redirectURIs"); 7326 __publicField(this, "tokenURL"); 7327 this.authorizeURL = options.authorizeURL; 7328 this.clientId = options.clientId; 7329 this.debug = options.debug || false; 7330 this.homePageURL = options.homePageURL; 7331 this.redirectURIs = options.redirectURIs; 7332 this.tokenURL = options.tokenURL; 7333 } 7334 async fetch(url, options = {}) { 7335 const oauth2Client = this; 7336 return oauth2Client._fetch(url, options).then((response) => { 7337 if (response.ok) { 7338 const contentType = response.headers.get("content-type"); 7339 if (contentType && contentType.indexOf("application/json") !== -1) { 7340 return response.json(); 7341 } else { 7342 return Promise.resolve(response); 7343 } 7344 } 7345 return Promise.reject(response); 7346 }); 7347 } 7348 _createIframe(challenge, sessionKey) { 7349 const oauth2Client = this; 7350 const origin = window.location.origin; 7351 const redirectURI = oauth2Client.redirectURIs.find( 7352 (uri) => uri.startsWith(origin) 7353 ); 7354 if (!redirectURI) { 7355 return Promise.reject( 7356 `No redirectURI in ${oauth2Client.redirectURIs} matching origin ${origin}` 7357 ); 7358 } 7359 const ifrm = document.createElement("iframe"); 7360 ifrm.src = `${oauth2Client.authorizeURL}?client_id=${oauth2Client.clientId}&code_challenge=${challenge.code_challenge}&code_challenge_method=S256&redirect_uri=${encodeURIComponent( 7361 redirectURI 7362 )}&response_type=code&prompt=none&state=${sessionKey}`; 7363 ifrm.style.display = "none"; 7364 document.body.appendChild(ifrm); 7365 return new Promise((resolve, reject) => { 7366 const eventHandler = (event) => { 7367 if (oauth2Client.debug) { 7368 console.debug("OAuth2Client._createIframe.event", event); 7369 } 7370 if (event.data.error) { 7371 if (event.target && event.target.parentElement) { 7372 event.target.parentElement.removeChild(event.target); 7373 } 7374 reject(event.data.error); 7375 return; 7376 } else if (!event.data.code) { 7377 return; 7378 } 7379 if (event.data.state !== sessionKey) { 7380 if (event.target && event.target.parentElement) { 7381 event.target.parentElement.removeChild(event.target); 7382 } 7383 reject("state does not match"); 7384 return; 7385 } 7386 const tokenResponse = oauth2Client._requestToken( 7387 challenge.code_verifier, 7388 event.data.code, 7389 redirectURI 7390 ); 7391 resolve(tokenResponse); 7392 tokenResponse.then( 7393 (response) => Liferay.Util.SessionStorage.setItem( 7394 sessionKey, 7395 JSON.stringify({ 7396 ...response, 7397 expires_after_ms: (/* @__PURE__ */ new Date()).getTime() + response.expires_in * 1e3 7398 }), 7399 Liferay.Util.SessionStorage.TYPES.NECESSARY 7400 ) 7401 ).then(() => { 7402 if (event.target && event.target.parentElement) { 7403 event.target.parentElement.removeChild( 7404 event.target 7405 ); 7406 } 7407 }); 7408 }; 7409 if (ifrm.contentWindow) { 7410 ifrm.contentWindow.addEventListener("message", eventHandler); 7411 } 7412 }); 7413 } 7414 async _fetch(resource, options = {}) { 7415 const oauth2Client = this; 7416 let resourceUrl = resource instanceof Request ? resource.url : resource.toString(); 7417 if (resourceUrl.includes("//") && !resourceUrl.startsWith(oauth2Client.homePageURL)) { 7418 throw new Error( 7419 `This client only supports calls to ${oauth2Client.homePageURL}` 7420 ); 7421 } 7422 if (!resourceUrl.startsWith(oauth2Client.homePageURL)) { 7423 if (resourceUrl.startsWith("/")) { 7424 resourceUrl = resourceUrl.substring(1); 7425 } 7426 resourceUrl = `${oauth2Client.homePageURL}/${resourceUrl}`; 7427 } 7428 const tokenData = await oauth2Client._getOrRequestToken(); 7429 resource = resource instanceof Request ? { ...resource, url: resourceUrl } : resourceUrl; 7430 return await fetch(resource, { 7431 ...options, 7432 headers: { 7433 ...options?.headers, 7434 Authorization: `Bearer ${tokenData.access_token}` 7435 } 7436 }); 7437 } 7438 _getOrRequestToken() { 7439 const oauth2Client = this; 7440 const sessionKey = `${oauth2Client.clientId}-${Liferay.authToken}-token`; 7441 return new Promise((resolve) => { 7442 const cachedTokenData = Liferay.Util.SessionStorage.getItem( 7443 sessionKey, 7444 Liferay.Util.SessionStorage.TYPES.NECESSARY 7445 ); 7446 if (oauth2Client.debug && cachedTokenData) { 7447 console.debug( 7448 "OAuth2Client._getOrRequestToken.cachedTokenData", 7449 cachedTokenData 7450 ); 7451 } 7452 if (cachedTokenData !== null && cachedTokenData !== void 0) { 7453 const cachedToken = JSON.parse( 7454 cachedTokenData 7455 ); 7456 if ((/* @__PURE__ */ new Date()).getTime() < cachedToken.expires_after_ms) { 7457 resolve(cachedToken); 7458 return; 7459 } 7460 } 7461 resolve(oauth2Client._requestTokenSilently(sessionKey)); 7462 }); 7463 } 7464 _requestTokenSilently(sessionKey) { 7465 const oauth2Client = this; 7466 const challenge = $d415641d0cfd8c85$export$2e2bcd8739ae039(128); 7467 return oauth2Client._createIframe(challenge, sessionKey); 7468 } 7469 async _requestToken(codeVerifier, code, redirectURI) { 7470 const oauth2Client = this; 7471 const response = await fetch(oauth2Client.tokenURL, { 7472 body: new URLSearchParams({ 7473 client_id: oauth2Client.clientId, 7474 code, 7475 code_verifier: codeVerifier, 7476 grant_type: "authorization_code", 7477 redirect_uri: redirectURI 7478 }), 7479 cache: "no-cache", 7480 headers: { 7481 "Content-Type": "application/x-www-form-urlencoded" 7482 }, 7483 method: "POST", 7484 mode: "cors" 7485 }); 7486 if (response.ok) { 7487 return response.json(); 7488 } 7489 return await Promise.reject(response); 7490 } 7491 }; 7492 function FromParameters(options) { 7493 return new OAuth2Client({ 7494 authorizeURL: options.authorizeURL || Liferay.OAuth2.getAuthorizeURL(), 7495 clientId: options.clientId, 7496 debug: options.debug, 7497 homePageURL: options.homePageURL, 7498 redirectURIs: options.redirectURIs || [ 7499 Liferay.OAuth2.getBuiltInRedirectURL() 7500 ], 7501 tokenURL: options.tokenURL || Liferay.OAuth2.getTokenURL() 7502 }); 7503 } 7504 function FromUserAgentApplication(userAgentApplicationName, debug) { 7505 const userAgentApplication = Liferay.OAuth2.getUserAgentApplication( 7506 userAgentApplicationName 7507 ); 7508 if (!userAgentApplication) { 7509 throw new Error( 7510 `No Application User Agent profile found for ${userAgentApplicationName}` 7511 ); 7512 } 7513 return new OAuth2Client({ 7514 authorizeURL: Liferay.OAuth2.getAuthorizeURL(), 7515 clientId: userAgentApplication.clientId, 7516 debug, 7517 homePageURL: userAgentApplication.homePageURL, 7518 redirectURIs: userAgentApplication.redirectURIs, 7519 tokenURL: Liferay.OAuth2.getTokenURL() 7520 }); 7521 } 7522 7523
7523// src/main/resources/META-INF/resources/js/liferay.ts 7524 window.Liferay = window.Liferay || {}; 7525 window.Liferay.OAuth2Client = { 7526 // Definitions are declared in liferay.d.ts 7527 // @ts-ignore 7528 FromParameters, 7529 // Definitions are declared in liferay.d.ts 7530 // @ts-ignore 7531 FromUserAgentApplication 7532 }; 7533})(); 7534/*! Bundled license information: 7535 7536crypto-js/ripemd160.js: 7537 (** @preserve 7538 (c) 2012 by Cédric Mesnil. All rights reserved. 7539 7540 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 7541 7542 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7543 - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 7544 7545 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 7546 *) 7547 7548crypto-js/mode-ctr-gladman.js: 7549 (** @preserve 7550 * Counter block mode compatible with Dr Brian Gladman fileenc.c 7551 * derived from CryptoJS.mode.CTR 7552 * Jan Hruby [email protected] 7553 *) 7554*/ 7555 7556 7557/** 7558 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 7559 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 7560 */ 7561 7562(function () { 7563 const DOMTaskRunner = { 7564 _scheduledTasks: [], 7565 7566 _taskStates: [], 7567 7568 addTask(task) { 7569 const instance = this; 7570 7571 instance._scheduledTasks.push(task); 7572 }, 7573 7574 addTaskState(state) { 7575 const instance = this; 7576 7577 instance._taskStates.push(state); 7578 }, 7579 7580 reset() { 7581 const instance = this; 7582 7583 instance._taskStates.length = 0; 7584 instance._scheduledTasks.length = 0; 7585 }, 7586 7587 runTasks(node) { 7588 const instance = this; 7589 7590 const scheduledTasks = instance._scheduledTasks; 7591 const taskStates = instance._taskStates; 7592 7593 const tasksLength = scheduledTasks.length; 7594 const taskStatesLength = taskStates.length; 7595 7596 for (let i = 0; i < tasksLength; i++) { 7597 const task = scheduledTasks[i]; 7598 7599 const taskParams = task.params; 7600 7601 for (let j = 0; j < taskStatesLength; j++) { 7602 const state = taskStates[j]; 7603 7604 if (task.condition(state, taskParams, node)) { 7605 task.action(state, taskParams, node); 7606 } 7607 } 7608 } 7609 }, 7610 }; 7611 7612 Liferay.DOMTaskRunner = DOMTaskRunner; 7613})(); 7614 7615/** 7616 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 7617 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 7618 */ 7619 7620(function (A) { 7621 const CLICK_EVENTS = {}; 7622 const Util = Liferay.Util; 7623 7624 A.use('attribute', 'oop', (A) => { 7625 A.augment(Liferay, A.Attribute, true); 7626 }); 7627 7628 Liferay.provide( 7629 Liferay, 7630 'delegateClick', 7631 (id, fn) => { 7632 const element = A.config.doc.getElementById(id); 7633 7634 if (!element || element.id !== id) { 7635 return; 7636 } 7637 7638 // eslint-disable-next-line @liferay/aui/no-one 7639 const guid = A.one(element).addClass('lfr-delegate-click').guid(); 7640 7641 CLICK_EVENTS[guid] = fn; 7642 7643 if (!Liferay._baseDelegateHandle) { 7644 7645 // eslint-disable-next-line @liferay/aui/no-get-body 7646 Liferay._baseDelegateHandle = A.getBody().delegate( 7647 'click', 7648 Liferay._baseDelegate, 7649 '.lfr-delegate-click' 7650 ); 7651 } 7652 }, 7653 ['aui-base'] 7654 ); 7655 7656 Liferay._baseDelegate = function (event) { 7657 const id = event.currentTarget.attr('id'); 7658 7659 const fn = CLICK_EVENTS[id]; 7660 7661 if (fn) { 7662 fn.apply(this, arguments); 7663 } 7664 }; 7665 7666 Liferay._CLICK_EVENTS = CLICK_EVENTS; 7667 7668 Liferay.provide( 7669 window, 7670 'submitForm', 7671 (form, action, singleSubmit, validate) => { 7672 if (!Util._submitLocked) { 7673 if (form.jquery) { 7674 form = form[0]; 7675 } 7676 7677 Liferay.fire('submitForm', { 7678 action, 7679 7680 // eslint-disable-next-line @liferay/aui/no-one 7681 form: A.one(form), 7682 singleSubmit, 7683 validate: validate !== false, 7684 }); 7685 } 7686 }, 7687 ['aui-base', 'aui-form-validator', 'aui-url', 'liferay-form'] 7688 ); 7689 7690 Liferay.publish('submitForm', { 7691 defaultFn(event) { 7692 const form = event.form; 7693 7694 let hasErrors = false;
7695 7696 if (event.validate) { 7697 const liferayForm = Liferay.Form.get(form.attr('id')); 7698 7699 if (liferayForm) { 7700 const validator = liferayForm.formValidator; 7701 7702 if (A.instanceOf(validator, A.FormValidator)) { 7703 validator.validate(); 7704 7705 hasErrors = validator.hasErrors(); 7706 7707 if (hasErrors) { 7708 validator.focusInvalidField(); 7709 } 7710 } 7711 } 7712 } 7713 7714 function enableFormButtons(inputs) { 7715 Util._submitLocked = null; 7716 7717 Util.toggleDisabled(inputs, false); 7718 } 7719 7720 if (!hasErrors) { 7721 let action = event.action || form.getAttribute('action'); 7722 7723 const singleSubmit = event.singleSubmit; 7724 7725 const inputs = form.all( 7726 'button[type=submit], input[type=button], input[type=image], input[type=reset], input[type=submit]' 7727 ); 7728 7729 const inputsArray = Array.from(inputs._nodes); 7730 7731 if (inputsArray.length) { 7732 inputsArray.map((input) => { 7733 input.disabled = true; 7734 input.style.opacity = 0.5; 7735 }); 7736 } 7737 7738 if (singleSubmit === false) { 7739 Util._submitLocked = A.later( 7740 1000, 7741 Util, 7742 enableFormButtons, 7743 [inputs, form] 7744 ); 7745 } 7746 else { 7747 Util._submitLocked = true; 7748 } 7749 7750 let baseURL; 7751 let queryString; 7752 const searchParamsIndex = action.indexOf('?'); 7753 7754 if (searchParamsIndex === -1) { 7755 baseURL = action; 7756 queryString = ''; 7757 } 7758 else { 7759 baseURL = action.slice(0, searchParamsIndex); 7760 queryString = action.slice(searchParamsIndex + 1); 7761 } 7762 7763 const searchParams = new URLSearchParams(queryString); 7764 7765 let authToken = searchParams.get('p_auth') || ''; 7766 7767 if (authToken.includes('#')) { 7768 authToken = authToken.substring(0, authToken.indexOf('#')); 7769 } 7770 7771 if (authToken) { 7772 form.append( 7773 '<input name="p_auth" type="hidden" value="' + 7774 authToken + 7775 '" />' 7776 ); 7777 7778 searchParams.delete('p_auth'); 7779 7780 action = baseURL + '?' + searchParams.toString(); 7781 } 7782 7783 form.attr('action', action); 7784 7785 Util.submitForm(form); 7786 7787 form.attr('target', ''); 7788 7789 Util._submitLocked = null; 7790 } 7791 }, 7792 }); 7793 7794 Liferay.after('closeWindow', (event) => { 7795 const id = event.id; 7796 7797 const dialog = Util.getTop().Liferay.Util.Window.getById(id); 7798 7799 if (dialog && dialog.iframe) { 7800 const dialogWindow = dialog.iframe.node 7801 .get('contentWindow') 7802 .getDOM(); 7803 7804 const openingWindow = dialogWindow.Liferay.Util.getOpener(); 7805 const redirect = event.redirect; 7806 7807 if (redirect) { 7808 openingWindow.Liferay.Util.navigate(redirect); 7809 } 7810 else { 7811 const refresh = event.refresh; 7812 7813 if (refresh && openingWindow) { 7814 let data; 7815 7816 if (!event.portletAjaxable) { 7817 data = { 7818 portletAjaxable: false, 7819 }; 7820 } 7821 7822 openingWindow.Liferay.Portlet.refresh( 7823 '#p_p_id_' + refresh + '_', 7824 data 7825 ); 7826 } 7827 } 7828 7829 dialog.hide(); 7830 } 7831 }); 7832})(AUI()); 7833 7834/** 7835 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 7836 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 7837 */ 7838 7839(function () { 7840 Liferay.lazyLoad = function () { 7841 let failureCallback; 7842 7843 const isFunction = function (val) { 7844 return typeof val === 'function'; 7845 }; 7846 7847 let modules; 7848 let successCallback; 7849 7850 if (Array.isArray(arguments[0])) { 7851 modules = arguments[0]; 7852 7853 successCallback = isFunction(arguments[1]) ? arguments[1] : null; 7854 failureCallback = isFunction(arguments[2]) ? arguments[2] : null; 7855 } 7856 else { 7857 modules = []; 7858 7859 for (let i = 0; i < arguments.length; ++i) { 7860 if (typeof arguments[i] === 'string') { 7861 modules[i] = arguments[i]; 7862 } 7863 else if (isFunction(arguments[i])) { 7864 successCallback = arguments[i]; 7865 failureCallback = isFunction(arguments[++i]) 7866 ? arguments[i] 7867 : null; 7868 break; 7869 } 7870 } 7871 } 7872 7873 return function () { 7874 const args = []; 7875 7876 for (let i = 0; i < arguments.length; ++i) { 7877 args.push(arguments[i]); 7878 } 7879 7880 Liferay.Loader.require( 7881 modules, 7882 function () { 7883 for (let i = 0; i < arguments.length; ++i) { 7884 args.splice(i, 0, arguments[i]); 7885 } 7886 7887 successCallback.apply(successCallback, args); 7888 }, 7889 failureCallback 7890 ); 7891 }; 7892 }; 7893})(); 7894 7895/** 7896 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 7897 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 7898 */ 7899 7900Liferay = window.Liferay || {}; 7901 7902(function () { 7903 const isFunction = function (val) { 7904 return typeof val === 'function'; 7905 }; 7906 7907 const isNode = function (node) { 7908 return node && (node._node || node.jquery || node.nodeType); 7909 }; 7910 7911 const REGEX_METHOD_GET = /^get$/i; 7912 7913 const STR_MULTIPART = 'multipart/form-data'; 7914 7915 Liferay.namespace = function namespace(object, path) { 7916 if (path === undefined) { 7917 path = object; 7918 7919 object = this; 7920 } 7921 7922 const parts = path.split('.'); 7923 7924 for (let part; parts.length && (part = parts.shift()); ) { 7925 if (object[part] && object[part] !== Object.prototype[part]) { 7926 object = object[part]; 7927 } 7928 else { 7929 object = object[part] = {}; 7930 } 7931 } 7932 7933 return object; 7934 }; 7935 7936 /** 7937 * OPTIONS 7938 * 7939 * Required 7940 * service {string|object}: Either the service name, or an object with the keys as the service to call, and the value as the service configuration object. 7941 * 7942 * Optional 7943 * data {object|node|string}: The data to send to the service. If the object passed is the ID of a form or a form element, the form fields will be serialized and used as the data. 7944 * successCallback {function}: A function to execute when the server returns a response. It receives a JSON object as it's first parameter. 7945 * exceptionCallback {function}: A function to execute when the response from the server contains a service exception. It receives a the exception message as it's first parameter. 7946 */ 7947 7948 const Service = function () { 7949 const args = Service.parseInvokeArgs( 7950 Array.prototype.slice.call(arguments, 0) 7951 ); 7952 7953 return Service.invoke.apply(Service, args); 7954 }; 7955 7956 Service.URL_INVOKE = themeDisplay.getPathContext() + '/api/jsonws/invoke'; 7957 7958 Service.bind = function () { 7959 const args = Array.prototype.slice.call(arguments, 0); 7960 7961 return function () { 7962 const newArgs = Array.prototype.slice.call(arguments, 0); 7963 7964 return Service.apply(Service, args.concat(newArgs)); 7965 }; 7966 }; 7967 7968 Service.parseInvokeArgs = function (args) { 7969 const instance = this; 7970 7971 let payload = args[0]; 7972 7973 const ioConfig = instance.parseIOConfig(args); 7974 7975 if (typeof payload === 'string') { 7976 payload = instance.parseStringPayload(args); 7977 7978 instance.parseIOFormConfig(ioConfig, args); 7979 7980 const lastArg = args[args.length - 1]; 7981 7982 if (typeof lastArg === 'object' && lastArg.method) { 7983 ioConfig.method = lastArg.method; 7984 } 7985 } 7986 7987 return [payload, ioConfig]; 7988 }; 7989 7990 Service.parseIOConfig = function (args) { 7991 const payload = args[0]; 7992 7993 const ioConfig = payload.io || {}; 7994 7995 delete payload.io; 7996 7997 if (!ioConfig.success) { 7998 const callbacks = args.filter(isFunction); 7999 8000 let callbackException = callbacks[1]; 8001 const callbackSuccess = callbacks[0]; 8002 8003 if (!callbackException) { 8004 callbackException = callbackSuccess; 8005 } 8006 8007 ioConfig.error = callbackException; 8008 8009 ioConfig.complete = function (response) { 8010 if ( 8011 !Object.prototype.hasOwnProperty.call(response, 'exception') 8012 ) { 8013 if (callbackSuccess) { 8014 callbackSuccess.call(this, response); 8015 } 8016 } 8017 else if (callbackException) { 8018 const exception = response 8019 ? response.exception 8020 : 'The server returned an empty response'; 8021 8022 callbackException.call(this, exception, response); 8023 } 8024 }; 8025 } 8026 8027 if ( 8028 !Object.prototype.hasOwnProperty.call(ioConfig, 'cache') && 8029 REGEX_METHOD_GET.test(ioConfig.type) 8030 ) { 8031 ioConfig.cache = false;
8032 } 8033 8034 return ioConfig; 8035 }; 8036 8037 Service.parseIOFormConfig = function (ioConfig, args) { 8038 const form = args[1]; 8039 8040 if (isNode(form)) { 8041 if (form.enctype === STR_MULTIPART) { 8042 ioConfig.contentType = 'multipart/form-data'; 8043 } 8044 8045 ioConfig.formData = new FormData(form); 8046 } 8047 }; 8048 8049 Service.parseStringPayload = function (args) { 8050 let params = {}; 8051 const payload = {}; 8052 8053 const config = args[1]; 8054 8055 if (!isFunction(config) && !isNode(config)) { 8056 params = config; 8057 } 8058 8059 payload[args[0]] = params; 8060 8061 return payload; 8062 }; 8063 8064 Service.invoke = function (payload, ioConfig) { 8065 const instance = this; 8066 8067 const cmd = JSON.stringify(payload); 8068 8069 let data = cmd; 8070 8071 if (ioConfig.formData) { 8072 ioConfig.formData.append('cmd', cmd); 8073 data = ioConfig.formData; 8074 } 8075 8076 return Liferay.Util.fetch(instance.URL_INVOKE, { 8077 body: data, 8078 headers: { 8079 contentType: ioConfig.contentType, 8080 }, 8081 method: 'POST', 8082 }) 8083 .then((response) => 8084 Promise.all([Promise.resolve(response), response.json()]) 8085 ) 8086 .then(([response, content]) => { 8087 if (response.ok) { 8088 ioConfig.complete(content); 8089 } 8090 else { 8091 ioConfig.error(); 8092 } 8093 }) 8094 .catch(ioConfig.error); 8095 }; 8096 8097 function getHttpMethodFunction(httpMethodName) { 8098 return function () { 8099 const args = Array.prototype.slice.call(arguments, 0); 8100 8101 const method = {method: httpMethodName}; 8102 8103 args.push(method); 8104 8105 return Service.apply(Service, args); 8106 }; 8107 } 8108 8109 Service.get = getHttpMethodFunction('get'); 8110 Service.del = getHttpMethodFunction('delete'); 8111 Service.post = getHttpMethodFunction('post'); 8112 Service.put = getHttpMethodFunction('put'); 8113 Service.update = getHttpMethodFunction('update'); 8114 8115 Liferay.Service = Service; 8116 8117 Liferay.Template = { 8118 PORTLET: 8119 '<div class="portlet"><div class="portlet-topper"><div class="portlet-title"></div></div><div class="portlet-content"></div><div class="forbidden-action"></div></div>', 8120 }; 8121})(); 8122 8123"use strict"; 8124(() => { 8125 var __create = Object.create; 8126 var __defProp = Object.defineProperty; 8127 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 8128 var __getOwnPropNames = Object.getOwnPropertyNames; 8129 var __getProtoOf = Object.getPrototypeOf; 8130 var __hasOwnProp = Object.prototype.hasOwnProperty; 8131 var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; 8132 var __commonJS = (cb, mod) => function __require() { 8133 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 8134 }; 8135 var __copyProps = (to, from, except, desc) => { 8136 if (from && typeof from === "object" || typeof from === "function") { 8137 for (let key of __getOwnPropNames(from)) 8138 if (!__hasOwnProp.call(to, key) && key !== except) 8139 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 8140 } 8141 return to; 8142 }; 8143 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( 8144 // If the importer is in node compatibility mode or this is not an ESM 8145 // file that has been converted to a CommonJS file using a Babel- 8146 // compatible transform (i.e. "__esModule" has not been set), then set 8147 // "default" to the CommonJS "module.exports" for node compatibility. 8148 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, 8149 mod 8150 )); 8151 var __publicField = (obj, key, value) => { 8152 __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); 8153 return value; 8154 }; 8155 8156
vendor: 34,172 bytes, lines 8156-9026
8156// ../../../node_modules/lodash.groupby/index.js 8157 var require_lodash = __commonJS({ 8158 "../../../node_modules/lodash.groupby/index.js"(exports, module) { 8159 var LARGE_ARRAY_SIZE = 200; 8160 var FUNC_ERROR_TEXT = "Expected a function"; 8161 var HASH_UNDEFINED = "__lodash_hash_undefined__"; 8162 var UNORDERED_COMPARE_FLAG = 1; 8163 var PARTIAL_COMPARE_FLAG = 2; 8164 var INFINITY = 1 / 0; 8165 var MAX_SAFE_INTEGER = 9007199254740991; 8166 var argsTag = "[object Arguments]"; 8167 var arrayTag = "[object Array]"; 8168 var boolTag = "[object Boolean]"; 8169 var dateTag = "[object Date]"; 8170 var errorTag = "[object Error]"; 8171 var funcTag = "[object Function]"; 8172 var genTag = "[object GeneratorFunction]"; 8173 var mapTag = "[object Map]"; 8174 var numberTag = "[object Number]"; 8175 var objectTag = "[object Object]"; 8176 var promiseTag = "[object Promise]"; 8177 var regexpTag = "[object RegExp]"; 8178 var setTag = "[object Set]"; 8179 var stringTag = "[object String]"; 8180 var symbolTag = "[object Symbol]"; 8181 var weakMapTag = "[object WeakMap]"; 8182 var arrayBufferTag = "[object ArrayBuffer]"; 8183 var dataViewTag = "[object DataView]"; 8184 var float32Tag = "[object Float32Array]"; 8185 var float64Tag = "[object Float64Array]"; 8186 var int8Tag = "[object Int8Array]"; 8187 var int16Tag = "[object Int16Array]"; 8188 var int32Tag = "[object Int32Array]"; 8189 var uint8Tag = "[object Uint8Array]"; 8190 var uint8ClampedTag = "[object Uint8ClampedArray]"; 8191 var uint16Tag = "[object Uint16Array]"; 8192 var uint32Tag = "[object Uint32Array]"; 8193 var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/; 8194 var reIsPlainProp = /^\w*$/; 8195 var reLeadingDot = /^\./; 8196 var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; 8197 var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; 8198 var reEscapeChar = /\\(\\)?/g; 8199 var reIsHostCtor = /^\[object .+?Constructor\]$/; 8200 var reIsUint = /^(?:0|[1-9]\d*)$/; 8201 var typedArrayTags = {}; 8202 typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; 8203 typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; 8204 var freeGlobal = typeof global == "object" && global && global.Object === Object && global; 8205 var freeSelf = typeof self == "object" && self && self.Object === Object && self; 8206 var root = freeGlobal || freeSelf || Function("return this")(); 8207 var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; 8208 var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; 8209 var moduleExports = freeModule && freeModule.exports === freeExports; 8210 var freeProcess = moduleExports && freeGlobal.process; 8211 var nodeUtil = function() { 8212 try { 8213 return freeProcess && freeProcess.binding("util"); 8214 } catch (e) { 8215 } 8216 }(); 8217 var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; 8218 function arrayAggregator(array, setter, iteratee, accumulator) { 8219 var index = -1, length = array ? array.length : 0; 8220 while (++index < length) { 8221 var value = array[index]; 8222 setter(accumulator, value, iteratee(value), array); 8223 } 8224 return accumulator; 8225 } 8226 function arraySome(array, predicate) { 8227 var index = -1, length = array ? array.length : 0; 8228 while (++index < length) { 8229 if (predicate(array[index], index, array)) { 8230 return true; 8231 } 8232 } 8233 return false; 8234 } 8235 function baseProperty(key) { 8236 return function(object) { 8237 return object == null ? void 0 : object[key]; 8238 }; 8239 } 8240 function baseTimes(n, iteratee) { 8241 var index = -1, result = Array(n); 8242 while (++index < n) { 8243 result[index] = iteratee(index); 8244 } 8245 return result; 8246 } 8247 function baseUnary(func) { 8248 return function(value) { 8249 return func(value); 8250 }; 8251 } 8252 function getValue(object, key) { 8253 return object == null ? void 0 : object[key]; 8254 } 8255 function isHostObject(value) { 8256 var result = false; 8257 if (value != null && typeof value.toString != "function") { 8258 try { 8259 result = !!(value + ""); 8260 } catch (e) { 8261 } 8262 } 8263 return result; 8264 } 8265 function mapToArray(map) { 8266 var index = -1, result = Array(map.size); 8267 map.forEach(function(value, key) { 8268 result[++index] = [key, value]; 8269 }); 8270 return result; 8271 } 8272 function overArg(func, transform) { 8273 return function(arg) { 8274 return func(transform(arg)); 8275 }; 8276 } 8277 function setToArray(set) { 8278 var index = -1, result = Array(set.size); 8279 set.forEach(function(value) { 8280 result[++index] = value; 8281 }); 8282 return result; 8283 } 8284 var arrayProto = Array.prototype; 8285 var funcProto = Function.prototype; 8286 var objectProto = Object.prototype; 8287 var coreJsData = root["__core-js_shared__"]; 8288 var maskSrcKey = function() { 8289 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); 8290 return uid ? "Symbol(src)_1." + uid : ""; 8291 }(); 8292 var funcToString = funcProto.toString; 8293 var hasOwnProperty = objectProto.hasOwnProperty; 8294 var objectToString = objectProto.toString; 8295 var reIsNative = RegExp( 8296 "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" 8297 ); 8298 var Symbol2 = root.Symbol; 8299 var Uint8Array2 = root.Uint8Array; 8300 var propertyIsEnumerable = objectProto.propertyIsEnumerable; 8301 var splice = arrayProto.splice; 8302 var nativeKeys = overArg(Object.keys, Object); 8303 var DataView = getNative(root, "DataView"); 8304 var Map2 = getNative(root, "Map"); 8305 var Promise2 = getNative(root, "Promise"); 8306 var Set2 = getNative(root, "Set"); 8307 var WeakMap2 = getNative(root, "WeakMap"); 8308 var nativeCreate = getNative(Object, "create"); 8309 var dataViewCtorString = toSource(DataView); 8310 var mapCtorString = toSource(Map2); 8311 var promiseCtorString = toSource(Promise2); 8312 var setCtorString = toSource(Set2); 8313 var weakMapCtorString = toSource(WeakMap2); 8314 var symbolProto = Symbol2 ? Symbol2.prototype : void 0; 8315 var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; 8316 var symbolToString = symbolProto ? symbolProto.toString : void 0; 8317 function Hash(entries) { 8318 var index = -1, length = entries ? entries.length : 0; 8319 this.clear(); 8320 while (++index < length) { 8321 var entry = entries[index]; 8322 this.set(entry[0], entry[1]); 8323 } 8324 } 8325 function hashClear() { 8326 this.__data__ = nativeCreate ? nativeCreate(null) : {}; 8327 } 8328 function hashDelete(key) { 8329 return this.has(key) && delete this.__data__[key]; 8330 } 8331 function hashGet(key) { 8332 var data = this.__data__; 8333 if (nativeCreate) { 8334 var result = data[key]; 8335 return result === HASH_UNDEFINED ? void 0 : result; 8336 } 8337 return hasOwnProperty.call(data, key) ? data[key] : void 0; 8338 } 8339 function hashHas(key) { 8340 var data = this.__data__; 8341 return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key); 8342 } 8343 function hashSet(key, value) { 8344 var data = this.__data__; 8345 data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value; 8346 return this; 8347 } 8348 Hash.prototype.clear = hashClear; 8349 Hash.prototype["delete"] = hashDelete; 8350 Hash.prototype.get = hashGet; 8351 Hash.prototype.has = hashHas; 8352 Hash.prototype.set = hashSet; 8353 function ListCache(entries) { 8354 var index = -1, length = entries ? entries.length : 0; 8355 this.clear(); 8356 while (++index < length) { 8357 var entry = entries[index]; 8358 this.set(entry[0], entry[1]); 8359 } 8360 } 8361 function listCacheClear() { 8362 this.__data__ = []; 8363 } 8364 function listCacheDelete(key) { 8365 var data = this.__data__, index = assocIndexOf(data, key); 8366 if (index < 0) { 8367 return false; 8368 } 8369 var lastIndex = data.length - 1; 8370 if (index == lastIndex) { 8371 data.pop(); 8372 } else { 8373 splice.call(data, index, 1); 8374 } 8375 return true; 8376 } 8377 function listCacheGet(key) { 8378 var data = this.__data__, index = assocIndexOf(data, key); 8379 return index < 0 ? void 0 : data[index][1]; 8380 } 8381 function listCacheHas(key) { 8382 return assocIndexOf(this.__data__, key) > -1; 8383 } 8384 function listCacheSet(key, value) { 8385 var data = this.__data__, index = assocIndexOf(data, key); 8386 if (index < 0) { 8387 data.push([key, value]); 8388 } else { 8389 data[index][1] = value; 8390 } 8391 return this; 8392 } 8393 ListCache.prototype.clear = listCacheClear; 8394 ListCache.prototype["delete"] = listCacheDelete; 8395 ListCache.prototype.get = listCacheGet; 8396 ListCache.prototype.has = listCacheHas; 8397 ListCache.prototype.set = listCacheSet; 8398 function MapCache(entries) { 8399 var index = -1, length = entries ? entries.length : 0; 8400 this.clear(); 8401 while (++index < length) { 8402 var entry = entries[index]; 8403 this.set(entry[0], entry[1]); 8404 } 8405 } 8406 function mapCacheClear() { 8407 this.__data__ = { 8408 "hash": new Hash(), 8409 "map": new (Map2 || ListCache)(), 8410 "string": new Hash() 8411 }; 8412 } 8413 function mapCacheDelete(key) { 8414 return getMapData(this, key)["delete"](key); 8415 } 8416 function mapCacheGet(key) { 8417 return getMapData(this, key).get(key); 8418 } 8419 function mapCacheHas(key) { 8420 return getMapData(this, key).has(key); 8421 } 8422 function mapCacheSet(key, value) { 8423 getMapData(this, key).set(key, value); 8424 return this; 8425 } 8426 MapCache.prototype.clear = mapCacheClear; 8427 MapCache.prototype["delete"] = mapCacheDelete; 8428 MapCache.prototype.get = mapCacheGet; 8429 MapCache.prototype.has = mapCacheHas; 8430 MapCache.prototype.set = mapCacheSet; 8431 function SetCache(values) { 8432 var index = -1, length = values ? values.length : 0; 8433 this.__data__ = new MapCache(); 8434 while (++index < length) { 8435 this.add(values[index]); 8436 } 8437 } 8438 function setCacheAdd(value) { 8439 this.__data__.set(value, HASH_UNDEFINED); 8440 return this; 8441 } 8442 function setCacheHas(value) { 8443 return this.__data__.has(value); 8444 } 8445 SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; 8446 SetCache.prototype.has = setCacheHas; 8447 function Stack(entries) { 8448 this.__data__ = new ListCache(entries); 8449 } 8450 function stackClear() { 8451 this.__data__ = new ListCache(); 8452 } 8453 function stackDelete(key) { 8454 return this.__data__["delete"](key); 8455 } 8456 function stackGet(key) { 8457 return this.__data__.get(key); 8458 } 8459 function stackHas(key) { 8460 return this.__data__.has(key); 8461 } 8462 function stackSet(key, value) { 8463 var cache = this.__data__; 8464 if (cache instanceof ListCache) { 8465 var pairs = cache.__data__; 8466 if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { 8467 pairs.push([key, value]); 8468 return this; 8469 } 8470 cache = this.__data__ = new MapCache(pairs); 8471 } 8472 cache.set(key, value); 8473 return this; 8474 } 8475 Stack.prototype.clear = stackClear; 8476 Stack.prototype["delete"] = stackDelete; 8477 Stack.prototype.get = stackGet; 8478 Stack.prototype.has = stackHas; 8479 Stack.prototype.set = stackSet; 8480 function arrayLikeKeys(value, inherited) { 8481 var result = isArray(value) || isArguments(value) ? baseTimes(value.length, String) : []; 8482 var length = result.length, skipIndexes = !!length; 8483 for (var key in value) { 8484 if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == "length" || isIndex(key, length)))) { 8485 result.push(key); 8486 } 8487 } 8488 return result; 8489 } 8490 function assocIndexOf(array, key) { 8491 var length = array.length; 8492 while (length--) { 8493 if (eq(array[length][0], key)) { 8494 return length; 8495 } 8496 } 8497 return -1; 8498 } 8499 function baseAggregator(collection, setter, iteratee, accumulator) { 8500 baseEach(collection, function(value, key, collection2) { 8501 setter(accumulator, value, iteratee(value), collection2); 8502 }); 8503 return accumulator; 8504 } 8505 var baseEach = createBaseEach(baseForOwn); 8506 var baseFor = createBaseFor(); 8507 function baseForOwn(object, iteratee) { 8508 return object && baseFor(object, iteratee, keys); 8509 } 8510 function baseGet(object, path) { 8511 path = isKey(path, object) ? [path] : castPath(path); 8512 var index = 0, length = path.length; 8513 while (object != null && index < length) { 8514 object = object[toKey(path[index++])]; 8515 } 8516 return index && index == length ? object : void 0; 8517 } 8518 function baseGetTag(value) { 8519 return objectToString.call(value); 8520 } 8521 function baseHasIn(object, key) { 8522 return object != null && key in Object(object); 8523 } 8524 function baseIsEqual(value, other, customizer, bitmask, stack) { 8525 if (value === other) { 8526 return true; 8527 } 8528 if (value == null || other == null || !isObject2(value) && !isObjectLike(other)) { 8529 return value !== value && other !== other; 8530 } 8531 return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack); 8532 } 8533 function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) { 8534 var objIsArr = isArray(object), othIsArr = isArray(other), objTag = arrayTag, othTag = arrayTag; 8535 if (!objIsArr) { 8536 objTag = getTag(object); 8537 objTag = objTag == argsTag ? objectTag : objTag; 8538 } 8539 if (!othIsArr) { 8540 othTag = getTag(other); 8541 othTag = othTag == argsTag ? objectTag : othTag; 8542 } 8543 var objIsObj = objTag == objectTag && !isHostObject(object), othIsObj = othTag == objectTag && !isHostObject(other), isSameTag = objTag == othTag; 8544 if (isSameTag && !objIsObj) { 8545 stack || (stack = new Stack()); 8546 return objIsArr || isTypedArray(object) ? equalArrays(object, other, equalFunc, customizer, bitmask, stack) : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack); 8547 } 8548 if (!(bitmask & PARTIAL_COMPARE_FLAG)) { 8549 var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); 8550 if (objIsWrapped || othIsWrapped) { 8551 var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; 8552 stack || (stack = new Stack()); 8553 return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack); 8554 } 8555 } 8556 if (!isSameTag) { 8557 return false; 8558 } 8559 stack || (stack = new Stack()); 8560 return equalObjects(object, other, equalFunc, customizer, bitmask, stack); 8561 } 8562 function baseIsMatch(object, source, matchData, customizer) { 8563 var index = matchData.length, length = index, noCustomizer = !customizer; 8564 if (object == null) { 8565 return !length; 8566 } 8567 object = Object(object); 8568 while (index--) { 8569 var data = matchData[index]; 8570 if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { 8571 return false; 8572 } 8573 } 8574 while (++index < length) { 8575 data = matchData[index]; 8576 var key = data[0], objValue = object[key], srcValue = data[1]; 8577 if (noCustomizer && data[2]) { 8578 if (objValue === void 0 && !(key in object)) { 8579 return false; 8580 } 8581 } else { 8582 var stack = new Stack(); 8583 if (customizer) { 8584 var result = customizer(objValue, srcValue, key, object, source, stack); 8585 } 8586 if (!(result === void 0 ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack) : result)) { 8587 return false; 8588 } 8589 } 8590 } 8591 return true; 8592 } 8593 function baseIsNative(value) { 8594 if (!isObject2(value) || isMasked(value)) { 8595 return false; 8596 } 8597 var pattern = isFunction(value) || isHostObject(value) ? reIsNative : reIsHostCtor; 8598 return pattern.test(toSource(value)); 8599 } 8600 function baseIsTypedArray(value) { 8601 return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objectToString.call(value)]; 8602 } 8603 function baseIteratee(value) { 8604 if (typeof value == "function") { 8605 return value; 8606 } 8607 if (value == null) { 8608 return identity; 8609 } 8610 if (typeof value == "object") { 8611 return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); 8612 } 8613 return property(value); 8614 } 8615 function baseKeys(object) { 8616 if (!isPrototype(object)) { 8617 return nativeKeys(object); 8618 } 8619 var result = []; 8620 for (var key in Object(object)) { 8621 if (hasOwnProperty.call(object, key) && key != "constructor") { 8622 result.push(key); 8623 } 8624 } 8625 return result; 8626 } 8627 function baseMatches(source) { 8628 var matchData = getMatchData(source); 8629 if (matchData.length == 1 && matchData[0][2]) { 8630 return matchesStrictComparable(matchData[0][0], matchData[0][1]); 8631 } 8632 return function(object) { 8633 return object === source || baseIsMatch(object, source, matchData); 8634 }; 8635 } 8636 function baseMatchesProperty(path, srcValue) { 8637 if (isKey(path) && isStrictComparable(srcValue)) { 8638 return matchesStrictComparable(toKey(path), srcValue); 8639 } 8640 return function(object) { 8641 var objValue = get(object, path); 8642 return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, void 0, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG); 8643 }; 8644 } 8645 function basePropertyDeep(path) { 8646 return function(object) { 8647 return baseGet(object, path); 8648 }; 8649 } 8650 function baseToString(value) { 8651 if (typeof value == "string") { 8652 return value; 8653 } 8654 if (isSymbol(value)) { 8655 return symbolToString ? symbolToString.call(value) : ""; 8656 } 8657 var result = value + ""; 8658 return result == "0" && 1 / value == -INFINITY ? "-0" : result; 8659 } 8660 function castPath(value) { 8661 return isArray(value) ? value : stringToPath(value); 8662 } 8663 function createAggregator(setter, initializer) { 8664 return function(collection, iteratee) { 8665 var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; 8666 return func(collection, setter, baseIteratee(iteratee, 2), accumulator); 8667 }; 8668 } 8669 function createBaseEach(eachFunc, fromRight) { 8670 return function(collection, iteratee) { 8671 if (collection == null) { 8672 return collection; 8673 } 8674 if (!isArrayLike2(collection)) { 8675 return eachFunc(collection, iteratee); 8676 } 8677 var length = collection.length, index = fromRight ? length : -1, iterable = Object(collection); 8678 while (fromRight ? index-- : ++index < length) { 8679 if (iteratee(iterable[index], index, iterable) === false) { 8680 break; 8681 } 8682 } 8683 return collection; 8684 }; 8685 } 8686 function createBaseFor(fromRight) { 8687 return function(object, iteratee, keysFunc) { 8688 var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length; 8689 while (length--) { 8690 var key = props[fromRight ? length : ++index]; 8691 if (iteratee(iterable[key], key, iterable) === false) { 8692 break; 8693 } 8694 } 8695 return object; 8696 }; 8697 } 8698 function equalArrays(array, other, equalFunc, customizer, bitmask, stack) { 8699 var isPartial = bitmask & PARTIAL_COMPARE_FLAG, arrLength = array.length, othLength = other.length; 8700 if (arrLength != othLength && !(isPartial && othLength > arrLength)) { 8701 return false; 8702 } 8703 var stacked = stack.get(array); 8704 if (stacked && stack.get(other)) { 8705 return stacked == other; 8706 } 8707 var index = -1, result = true, seen = bitmask & UNORDERED_COMPARE_FLAG ? new SetCache() : void 0; 8708 stack.set(array, other); 8709 stack.set(other, array); 8710 while (++index < arrLength) { 8711 var arrValue = array[index], othValue = other[index]; 8712 if (customizer) { 8713 var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); 8714 } 8715 if (compared !== void 0) { 8716 if (compared) { 8717 continue; 8718 } 8719 result = false; 8720 break; 8721 } 8722 if (seen) { 8723 if (!arraySome(other, function(othValue2, othIndex) { 8724 if (!seen.has(othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, customizer, bitmask, stack))) { 8725 return seen.add(othIndex); 8726 } 8727 })) { 8728 result = false; 8729 break; 8730 } 8731 } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) { 8732 result = false; 8733 break; 8734 } 8735 } 8736 stack["delete"](array); 8737 stack["delete"](other); 8738 return result; 8739 } 8740 function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) { 8741 switch (tag) { 8742 case dataViewTag: 8743 if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { 8744 return false; 8745 } 8746 object = object.buffer; 8747 other = other.buffer; 8748 case arrayBufferTag: 8749 if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) { 8750 return false; 8751 } 8752 return true; 8753 case boolTag: 8754 case dateTag: 8755 case numberTag: 8756 return eq(+object, +other); 8757 case errorTag: 8758 return object.name == other.name && object.message == other.message; 8759 case regexpTag: 8760 case stringTag: 8761 return object == other + ""; 8762 case mapTag: 8763 var convert = mapToArray; 8764 case setTag: 8765 var isPartial = bitmask & PARTIAL_COMPARE_FLAG; 8766 convert || (convert = setToArray); 8767 if (object.size != other.size && !isPartial) { 8768 return false; 8769 } 8770 var stacked = stack.get(object); 8771 if (stacked) { 8772 return stacked == other; 8773 } 8774 bitmask |= UNORDERED_COMPARE_FLAG; 8775 stack.set(object, other); 8776 var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack); 8777 stack["delete"](object); 8778 return result; 8779 case symbolTag: 8780 if (symbolValueOf) { 8781 return symbolValueOf.call(object) == symbolValueOf.call(other); 8782 } 8783 } 8784 return false; 8785 } 8786 function equalObjects(object, other, equalFunc, customizer, bitmask, stack) { 8787 var isPartial = bitmask & PARTIAL_COMPARE_FLAG, objProps = keys(object), objLength = objProps.length, othProps = keys(other), othLength = othProps.length; 8788 if (objLength != othLength && !isPartial) { 8789 return false; 8790 } 8791 var index = objLength; 8792 while (index--) { 8793 var key = objProps[index]; 8794 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { 8795 return false; 8796 } 8797 } 8798 var stacked = stack.get(object); 8799 if (stacked && stack.get(other)) { 8800 return stacked == other; 8801 } 8802 var result = true; 8803 stack.set(object, other); 8804 stack.set(other, object); 8805 var skipCtor = isPartial; 8806 while (++index < objLength) { 8807 key = objProps[index]; 8808 var objValue = object[key], othValue = other[key]; 8809 if (customizer) { 8810 var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); 8811 } 8812 if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack) : compared)) { 8813 result = false; 8814 break; 8815 } 8816 skipCtor || (skipCtor = key == "constructor"); 8817 } 8818 if (result && !skipCtor) { 8819 var objCtor = object.constructor, othCtor = other.constructor; 8820 if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { 8821 result = false; 8822 } 8823 } 8824 stack["delete"](object); 8825 stack["delete"](other); 8826 return result; 8827 } 8828 function getMapData(map, key) { 8829 var data = map.__data__; 8830 return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; 8831 } 8832 function getMatchData(object) { 8833 var result = keys(object), length = result.length; 8834 while (length--) { 8835 var key = result[length], value = object[key]; 8836 result[length] = [key, value, isStrictComparable(value)]; 8837 } 8838 return result; 8839 } 8840 function getNative(object, key) { 8841 var value = getValue(object, key); 8842 return baseIsNative(value) ? value : void 0; 8843 } 8844 var getTag = baseGetTag; 8845 if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) { 8846 getTag = function(value) { 8847 var result = objectToString.call(value), Ctor = result == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : void 0; 8848 if (ctorString) { 8849 switch (ctorString) { 8850 case dataViewCtorString: 8851 return dataViewTag; 8852 case mapCtorString: 8853 return mapTag; 8854 case promiseCtorString: 8855 return promiseTag; 8856 case setCtorString: 8857 return setTag; 8858 case weakMapCtorString: 8859 return weakMapTag; 8860 } 8861 } 8862 return result; 8863 }; 8864 } 8865 function hasPath(object, path, hasFunc) { 8866 path = isKey(path, object) ? [path] : castPath(path); 8867 var result, index = -1, length = path.length; 8868 while (++index < length) { 8869 var key = toKey(path[index]); 8870 if (!(result = object != null && hasFunc(object, key))) { 8871 break; 8872 } 8873 object = object[key]; 8874 } 8875 if (result) { 8876 return result; 8877 } 8878 var length = object ? object.length : 0; 8879 return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); 8880 } 8881 function isIndex(value, length) { 8882 length = length == null ? MAX_SAFE_INTEGER : length; 8883 return !!length && (typeof value == "number" || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); 8884 } 8885 function isKey(value, object) { 8886 if (isArray(value)) { 8887 return false; 8888 } 8889 var type = typeof value; 8890 if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) { 8891 return true; 8892 } 8893 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); 8894 } 8895 function isKeyable(value) { 8896 var type = typeof value; 8897 return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; 8898 } 8899 function isMasked(func) { 8900 return !!maskSrcKey && maskSrcKey in func; 8901 } 8902 function isPrototype(value) { 8903 var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; 8904 return value === proto; 8905 } 8906 function isStrictComparable(value) { 8907 return value === value && !isObject2(value); 8908 } 8909 function matchesStrictComparable(key, srcValue) { 8910 return function(object) { 8911 if (object == null) { 8912 return false; 8913 } 8914 return object[key] === srcValue && (srcValue !== void 0 || key in Object(object)); 8915 }; 8916 } 8917 var stringToPath = memoize2(function(string) { 8918 string = toString(string); 8919 var result = []; 8920 if (reLeadingDot.test(string)) { 8921 result.push(""); 8922 } 8923 string.replace(rePropName, function(match, number, quote, string2) { 8924 result.push(quote ? string2.replace(reEscapeChar, "$1") : number || match); 8925 }); 8926 return result; 8927 }); 8928 function toKey(value) { 8929 if (typeof value == "string" || isSymbol(value)) { 8930 return value; 8931 } 8932 var result = value + ""; 8933 return result == "0" && 1 / value == -INFINITY ? "-0" : result; 8934 } 8935 function toSource(func) { 8936 if (func != null) { 8937 try { 8938 return funcToString.call(func); 8939 } catch (e) { 8940 } 8941 try { 8942 return func + ""; 8943 } catch (e) { 8944 } 8945 } 8946 return ""; 8947 } 8948 var groupBy2 = createAggregator(function(result, value, key) { 8949 if (hasOwnProperty.call(result, key)) { 8950 result[key].push(value); 8951 } else { 8952 result[key] = [value]; 8953 } 8954 }); 8955 function memoize2(func, resolver) { 8956 if (typeof func != "function" || resolver && typeof resolver != "function") { 8957 throw new TypeError(FUNC_ERROR_TEXT); 8958 } 8959 var memoized = function() { 8960 var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; 8961 if (cache.has(key)) { 8962 return cache.get(key); 8963 } 8964 var result = func.apply(this, args); 8965 memoized.cache = cache.set(key, result); 8966 return result; 8967 }; 8968 memoized.cache = new (memoize2.Cache || MapCache)(); 8969 return memoized; 8970 } 8971 memoize2.Cache = MapCache; 8972 function eq(value, other) { 8973 return value === other || value !== value && other !== other; 8974 } 8975 function isArguments(value) { 8976 return isArrayLikeObject(value) && hasOwnProperty.call(value, "callee") && (!propertyIsEnumerable.call(value, "callee") || objectToString.call(value) == argsTag); 8977 } 8978 var isArray = Array.isArray; 8979 function isArrayLike2(value) { 8980 return value != null && isLength(value.length) && !isFunction(value); 8981 } 8982 function isArrayLikeObject(value) { 8983 return isObjectLike(value) && isArrayLike2(value); 8984 } 8985 function isFunction(value) { 8986 var tag = isObject2(value) ? objectToString.call(value) : ""; 8987 return tag == funcTag || tag == genTag; 8988 } 8989 function isLength(value) { 8990 return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; 8991 } 8992 function isObject2(value) { 8993 var type = typeof value; 8994 return !!value && (type == "object" || type == "function"); 8995 } 8996 function isObjectLike(value) { 8997 return !!value && typeof value == "object"; 8998 } 8999 function isSymbol(value) { 9000 return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag; 9001 } 9002 var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; 9003 function toString(value) { 9004 return value == null ? "" : baseToString(value); 9005 } 9006 function get(object, path, defaultValue) { 9007 var result = object == null ? void 0 : baseGet(object, path); 9008 return result === void 0 ? defaultValue : result; 9009 } 9010 function hasIn(object, path) { 9011 return object != null && hasPath(object, path, baseHasIn); 9012 } 9013 function keys(object) { 9014 return isArrayLike2(object) ? arrayLikeKeys(object) : baseKeys(object); 9015 } 9016 function identity(value) { 9017 return value; 9018 } 9019 function property(path) { 9020 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); 9021 } 9022 module.exports = groupBy2; 9023 } 9024 }); 9025 9026
vendor: 27,968 bytes, lines 9026-9727
9026// ../../../node_modules/lodash.isequal/index.js 9027 var require_lodash2 = __commonJS({ 9028 "../../../node_modules/lodash.isequal/index.js"(exports, module) { 9029 var LARGE_ARRAY_SIZE = 200; 9030 var HASH_UNDEFINED = "__lodash_hash_undefined__"; 9031 var COMPARE_PARTIAL_FLAG = 1; 9032 var COMPARE_UNORDERED_FLAG = 2; 9033 var MAX_SAFE_INTEGER = 9007199254740991; 9034 var argsTag = "[object Arguments]"; 9035 var arrayTag = "[object Array]"; 9036 var asyncTag = "[object AsyncFunction]"; 9037 var boolTag = "[object Boolean]"; 9038 var dateTag = "[object Date]"; 9039 var errorTag = "[object Error]"; 9040 var funcTag = "[object Function]"; 9041 var genTag = "[object GeneratorFunction]"; 9042 var mapTag = "[object Map]"; 9043 var numberTag = "[object Number]"; 9044 var nullTag = "[object Null]"; 9045 var objectTag = "[object Object]"; 9046 var promiseTag = "[object Promise]"; 9047 var proxyTag = "[object Proxy]"; 9048 var regexpTag = "[object RegExp]"; 9049 var setTag = "[object Set]"; 9050 var stringTag = "[object String]"; 9051 var symbolTag = "[object Symbol]"; 9052 var undefinedTag = "[object Undefined]"; 9053 var weakMapTag = "[object WeakMap]"; 9054 var arrayBufferTag = "[object ArrayBuffer]"; 9055 var dataViewTag = "[object DataView]"; 9056 var float32Tag = "[object Float32Array]"; 9057 var float64Tag = "[object Float64Array]"; 9058 var int8Tag = "[object Int8Array]"; 9059 var int16Tag = "[object Int16Array]"; 9060 var int32Tag = "[object Int32Array]"; 9061 var uint8Tag = "[object Uint8Array]"; 9062 var uint8ClampedTag = "[object Uint8ClampedArray]"; 9063 var uint16Tag = "[object Uint16Array]"; 9064 var uint32Tag = "[object Uint32Array]"; 9065 var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; 9066 var reIsHostCtor = /^\[object .+?Constructor\]$/; 9067 var reIsUint = /^(?:0|[1-9]\d*)$/; 9068 var typedArrayTags = {}; 9069 typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; 9070 typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; 9071 var freeGlobal = typeof global == "object" && global && global.Object === Object && global; 9072 var freeSelf = typeof self == "object" && self && self.Object === Object && self; 9073 var root = freeGlobal || freeSelf || Function("return this")(); 9074 var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; 9075 var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; 9076 var moduleExports = freeModule && freeModule.exports === freeExports; 9077 var freeProcess = moduleExports && freeGlobal.process; 9078 var nodeUtil = function() { 9079 try { 9080 return freeProcess && freeProcess.binding && freeProcess.binding("util"); 9081 } catch (e) { 9082 } 9083 }(); 9084 var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; 9085 function arrayFilter(array, predicate) { 9086 var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; 9087 while (++index < length) { 9088 var value = array[index]; 9089 if (predicate(value, index, array)) { 9090 result[resIndex++] = value; 9091 } 9092 } 9093 return result; 9094 } 9095 function arrayPush(array, values) { 9096 var index = -1, length = values.length, offset = array.length; 9097 while (++index < length) { 9098 array[offset + index] = values[index]; 9099 } 9100 return array; 9101 } 9102 function arraySome(array, predicate) { 9103 var index = -1, length = array == null ? 0 : array.length; 9104 while (++index < length) { 9105 if (predicate(array[index], index, array)) { 9106 return true; 9107 } 9108 } 9109 return false; 9110 } 9111 function baseTimes(n, iteratee) { 9112 var index = -1, result = Array(n); 9113 while (++index < n) { 9114 result[index] = iteratee(index); 9115 } 9116 return result; 9117 } 9118 function baseUnary(func) { 9119 return function(value) { 9120 return func(value); 9121 }; 9122 } 9123 function cacheHas(cache, key) { 9124 return cache.has(key); 9125 } 9126 function getValue(object, key) { 9127 return object == null ? void 0 : object[key]; 9128 } 9129 function mapToArray(map) { 9130 var index = -1, result = Array(map.size); 9131 map.forEach(function(value, key) { 9132 result[++index] = [key, value]; 9133 }); 9134 return result; 9135 } 9136 function overArg(func, transform) { 9137 return function(arg) { 9138 return func(transform(arg)); 9139 }; 9140 } 9141 function setToArray(set) { 9142 var index = -1, result = Array(set.size); 9143 set.forEach(function(value) { 9144 result[++index] = value; 9145 }); 9146 return result; 9147 } 9148 var arrayProto = Array.prototype; 9149 var funcProto = Function.prototype; 9150 var objectProto = Object.prototype; 9151 var coreJsData = root["__core-js_shared__"]; 9152 var funcToString = funcProto.toString; 9153 var hasOwnProperty = objectProto.hasOwnProperty; 9154 var maskSrcKey = function() { 9155 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); 9156 return uid ? "Symbol(src)_1." + uid : ""; 9157 }(); 9158 var nativeObjectToString = objectProto.toString; 9159 var reIsNative = RegExp( 9160 "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" 9161 ); 9162 var Buffer2 = moduleExports ? root.Buffer : void 0; 9163 var Symbol2 = root.Symbol; 9164 var Uint8Array2 = root.Uint8Array; 9165 var propertyIsEnumerable = objectProto.propertyIsEnumerable; 9166 var splice = arrayProto.splice; 9167 var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0; 9168 var nativeGetSymbols = Object.getOwnPropertySymbols; 9169 var nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0; 9170 var nativeKeys = overArg(Object.keys, Object); 9171 var DataView = getNative(root, "DataView"); 9172 var Map2 = getNative(root, "Map"); 9173 var Promise2 = getNative(root, "Promise"); 9174 var Set2 = getNative(root, "Set"); 9175 var WeakMap2 = getNative(root, "WeakMap"); 9176 var nativeCreate = getNative(Object, "create"); 9177 var dataViewCtorString = toSource(DataView); 9178 var mapCtorString = toSource(Map2); 9179 var promiseCtorString = toSource(Promise2); 9180 var setCtorString = toSource(Set2); 9181 var weakMapCtorString = toSource(WeakMap2); 9182 var symbolProto = Symbol2 ? Symbol2.prototype : void 0; 9183 var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; 9184 function Hash(entries) { 9185 var index = -1, length = entries == null ? 0 : entries.length; 9186 this.clear(); 9187 while (++index < length) { 9188 var entry = entries[index]; 9189 this.set(entry[0], entry[1]); 9190 } 9191 } 9192 function hashClear() { 9193 this.__data__ = nativeCreate ? nativeCreate(null) : {}; 9194 this.size = 0; 9195 } 9196 function hashDelete(key) { 9197 var result = this.has(key) && delete this.__data__[key]; 9198 this.size -= result ? 1 : 0; 9199 return result; 9200 } 9201 function hashGet(key) { 9202 var data = this.__data__; 9203 if (nativeCreate) { 9204 var result = data[key]; 9205 return result === HASH_UNDEFINED ? void 0 : result; 9206 } 9207 return hasOwnProperty.call(data, key) ? data[key] : void 0; 9208 } 9209 function hashHas(key) { 9210 var data = this.__data__; 9211 return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key); 9212 } 9213 function hashSet(key, value) { 9214 var data = this.__data__; 9215 this.size += this.has(key) ? 0 : 1; 9216 data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value; 9217 return this; 9218 } 9219 Hash.prototype.clear = hashClear; 9220 Hash.prototype["delete"] = hashDelete; 9221 Hash.prototype.get = hashGet; 9222 Hash.prototype.has = hashHas; 9223 Hash.prototype.set = hashSet; 9224 function ListCache(entries) { 9225 var index = -1, length = entries == null ? 0 : entries.length; 9226 this.clear(); 9227 while (++index < length) { 9228 var entry = entries[index]; 9229 this.set(entry[0], entry[1]); 9230 } 9231 } 9232 function listCacheClear() { 9233 this.__data__ = []; 9234 this.size = 0; 9235 } 9236 function listCacheDelete(key) { 9237 var data = this.__data__, index = assocIndexOf(data, key); 9238 if (index < 0) { 9239 return false; 9240 } 9241 var lastIndex = data.length - 1; 9242 if (index == lastIndex) { 9243 data.pop(); 9244 } else { 9245 splice.call(data, index, 1); 9246 } 9247 --this.size; 9248 return true; 9249 } 9250 function listCacheGet(key) { 9251 var data = this.__data__, index = assocIndexOf(data, key); 9252 return index < 0 ? void 0 : data[index][1]; 9253 } 9254 function listCacheHas(key) { 9255 return assocIndexOf(this.__data__, key) > -1; 9256 } 9257 function listCacheSet(key, value) { 9258 var data = this.__data__, index = assocIndexOf(data, key); 9259 if (index < 0) { 9260 ++this.size; 9261 data.push([key, value]); 9262 } else { 9263 data[index][1] = value; 9264 } 9265 return this; 9266 } 9267 ListCache.prototype.clear = listCacheClear; 9268 ListCache.prototype["delete"] = listCacheDelete; 9269 ListCache.prototype.get = listCacheGet; 9270 ListCache.prototype.has = listCacheHas; 9271 ListCache.prototype.set = listCacheSet; 9272 function MapCache(entries) { 9273 var index = -1, length = entries == null ? 0 : entries.length; 9274 this.clear(); 9275 while (++index < length) { 9276 var entry = entries[index]; 9277 this.set(entry[0], entry[1]); 9278 } 9279 } 9280 function mapCacheClear() { 9281 this.size = 0; 9282 this.__data__ = { 9283 "hash": new Hash(), 9284 "map": new (Map2 || ListCache)(), 9285 "string": new Hash() 9286 }; 9287 } 9288 function mapCacheDelete(key) { 9289 var result = getMapData(this, key)["delete"](key); 9290 this.size -= result ? 1 : 0; 9291 return result; 9292 } 9293 function mapCacheGet(key) { 9294 return getMapData(this, key).get(key); 9295 } 9296 function mapCacheHas(key) { 9297 return getMapData(this, key).has(key); 9298 } 9299 function mapCacheSet(key, value) { 9300 var data = getMapData(this, key), size = data.size; 9301 data.set(key, value); 9302 this.size += data.size == size ? 0 : 1; 9303 return this; 9304 } 9305 MapCache.prototype.clear = mapCacheClear; 9306 MapCache.prototype["delete"] = mapCacheDelete; 9307 MapCache.prototype.get = mapCacheGet; 9308 MapCache.prototype.has = mapCacheHas; 9309 MapCache.prototype.set = mapCacheSet; 9310 function SetCache(values) { 9311 var index = -1, length = values == null ? 0 : values.length; 9312 this.__data__ = new MapCache(); 9313 while (++index < length) { 9314 this.add(values[index]); 9315 } 9316 } 9317 function setCacheAdd(value) { 9318 this.__data__.set(value, HASH_UNDEFINED); 9319 return this; 9320 } 9321 function setCacheHas(value) { 9322 return this.__data__.has(value); 9323 } 9324 SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; 9325 SetCache.prototype.has = setCacheHas; 9326 function Stack(entries) { 9327 var data = this.__data__ = new ListCache(entries); 9328 this.size = data.size; 9329 } 9330 function stackClear() { 9331 this.__data__ = new ListCache(); 9332 this.size = 0; 9333 } 9334 function stackDelete(key) { 9335 var data = this.__data__, result = data["delete"](key); 9336 this.size = data.size; 9337 return result; 9338 } 9339 function stackGet(key) { 9340 return this.__data__.get(key); 9341 } 9342 function stackHas(key) { 9343 return this.__data__.has(key); 9344 } 9345 function stackSet(key, value) { 9346 var data = this.__data__; 9347 if (data instanceof ListCache) { 9348 var pairs = data.__data__; 9349 if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { 9350 pairs.push([key, value]); 9351 this.size = ++data.size; 9352 return this; 9353 } 9354 data = this.__data__ = new MapCache(pairs); 9355 } 9356 data.set(key, value); 9357 this.size = data.size; 9358 return this; 9359 } 9360 Stack.prototype.clear = stackClear; 9361 Stack.prototype["delete"] = stackDelete; 9362 Stack.prototype.get = stackGet; 9363 Stack.prototype.has = stackHas; 9364 Stack.prototype.set = stackSet; 9365 function arrayLikeKeys(value, inherited) { 9366 var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length; 9367 for (var key in value) { 9368 if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode. 9369 (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers. 9370 isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays. 9371 isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties. 9372 isIndex(key, length)))) { 9373 result.push(key); 9374 } 9375 } 9376 return result; 9377 } 9378 function assocIndexOf(array, key) { 9379 var length = array.length; 9380 while (length--) { 9381 if (eq(array[length][0], key)) { 9382 return length; 9383 } 9384 } 9385 return -1; 9386 } 9387 function baseGetAllKeys(object, keysFunc, symbolsFunc) { 9388 var result = keysFunc(object); 9389 return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); 9390 } 9391 function baseGetTag(value) { 9392 if (value == null) { 9393 return value === void 0 ? undefinedTag : nullTag; 9394 } 9395 return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); 9396 } 9397 function baseIsArguments(value) { 9398 return isObjectLike(value) && baseGetTag(value) == argsTag; 9399 } 9400 function baseIsEqual(value, other, bitmask, customizer, stack) { 9401 if (value === other) { 9402 return true; 9403 } 9404 if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { 9405 return value !== value && other !== other; 9406 } 9407 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); 9408 } 9409 function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { 9410 var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); 9411 objTag = objTag == argsTag ? objectTag : objTag; 9412 othTag = othTag == argsTag ? objectTag : othTag; 9413 var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; 9414 if (isSameTag && isBuffer(object)) { 9415 if (!isBuffer(other)) { 9416 return false; 9417 } 9418 objIsArr = true; 9419 objIsObj = false; 9420 } 9421 if (isSameTag && !objIsObj) { 9422 stack || (stack = new Stack()); 9423 return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); 9424 } 9425 if (!(bitmask & COMPARE_PARTIAL_FLAG)) { 9426 var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); 9427 if (objIsWrapped || othIsWrapped) { 9428 var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; 9429 stack || (stack = new Stack()); 9430 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); 9431 } 9432 } 9433 if (!isSameTag) { 9434 return false; 9435 } 9436 stack || (stack = new Stack()); 9437 return equalObjects(object, other, bitmask, customizer, equalFunc, stack); 9438 } 9439 function baseIsNative(value) { 9440 if (!isObject2(value) || isMasked(value)) { 9441 return false; 9442 } 9443 var pattern = isFunction(value) ? reIsNative : reIsHostCtor; 9444 return pattern.test(toSource(value)); 9445 } 9446 function baseIsTypedArray(value) { 9447 return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; 9448 } 9449 function baseKeys(object) { 9450 if (!isPrototype(object)) { 9451 return nativeKeys(object); 9452 } 9453 var result = []; 9454 for (var key in Object(object)) { 9455 if (hasOwnProperty.call(object, key) && key != "constructor") { 9456 result.push(key); 9457 } 9458 } 9459 return result; 9460 } 9461 function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { 9462 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; 9463 if (arrLength != othLength && !(isPartial && othLength > arrLength)) { 9464 return false; 9465 } 9466 var stacked = stack.get(array); 9467 if (stacked && stack.get(other)) { 9468 return stacked == other; 9469 } 9470 var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : void 0; 9471 stack.set(array, other); 9472 stack.set(other, array); 9473 while (++index < arrLength) { 9474 var arrValue = array[index], othValue = other[index]; 9475 if (customizer) { 9476 var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); 9477 } 9478 if (compared !== void 0) { 9479 if (compared) { 9480 continue; 9481 } 9482 result = false; 9483 break; 9484 } 9485 if (seen) { 9486 if (!arraySome(other, function(othValue2, othIndex) { 9487 if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { 9488 return seen.push(othIndex); 9489 } 9490 })) { 9491 result = false; 9492 break; 9493 } 9494 } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { 9495 result = false; 9496 break; 9497 } 9498 } 9499 stack["delete"](array); 9500 stack["delete"](other); 9501 return result; 9502 } 9503 function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { 9504 switch (tag) { 9505 case dataViewTag: 9506 if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { 9507 return false; 9508 } 9509 object = object.buffer; 9510 other = other.buffer; 9511 case arrayBufferTag: 9512 if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) { 9513 return false; 9514 } 9515 return true; 9516 case boolTag: 9517 case dateTag: 9518 case numberTag: 9519 return eq(+object, +other); 9520 case errorTag: 9521 return object.name == other.name && object.message == other.message; 9522 case regexpTag: 9523 case stringTag: 9524 return object == other + ""; 9525 case mapTag: 9526 var convert = mapToArray; 9527 case setTag: 9528 var isPartial = bitmask & COMPARE_PARTIAL_FLAG; 9529 convert || (convert = setToArray); 9530 if (object.size != other.size && !isPartial) { 9531 return false; 9532 } 9533 var stacked = stack.get(object); 9534 if (stacked) { 9535 return stacked == other; 9536 } 9537 bitmask |= COMPARE_UNORDERED_FLAG; 9538 stack.set(object, other); 9539 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); 9540 stack["delete"](object); 9541 return result; 9542 case symbolTag: 9543 if (symbolValueOf) { 9544 return symbolValueOf.call(object) == symbolValueOf.call(other); 9545 } 9546 } 9547 return false; 9548 } 9549 function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { 9550 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; 9551 if (objLength != othLength && !isPartial) { 9552 return false; 9553 } 9554 var index = objLength; 9555 while (index--) { 9556 var key = objProps[index]; 9557 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { 9558 return false; 9559 } 9560 } 9561 var stacked = stack.get(object); 9562 if (stacked && stack.get(other)) { 9563 return stacked == other; 9564 } 9565 var result = true; 9566 stack.set(object, other); 9567 stack.set(other, object); 9568 var skipCtor = isPartial; 9569 while (++index < objLength) { 9570 key = objProps[index]; 9571 var objValue = object[key], othValue = other[key]; 9572 if (customizer) { 9573 var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); 9574 } 9575 if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { 9576 result = false; 9577 break; 9578 } 9579 skipCtor || (skipCtor = key == "constructor"); 9580 } 9581 if (result && !skipCtor) { 9582 var objCtor = object.constructor, othCtor = other.constructor; 9583 if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { 9584 result = false; 9585 } 9586 } 9587 stack["delete"](object); 9588 stack["delete"](other); 9589 return result; 9590 } 9591 function getAllKeys(object) { 9592 return baseGetAllKeys(object, keys, getSymbols); 9593 } 9594 function getMapData(map, key) { 9595 var data = map.__data__; 9596 return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; 9597 } 9598 function getNative(object, key) { 9599 var value = getValue(object, key); 9600 return baseIsNative(value) ? value : void 0; 9601 } 9602 function getRawTag(value) { 9603 var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; 9604 try { 9605 value[symToStringTag] = void 0; 9606 var unmasked = true; 9607 } catch (e) { 9608 } 9609 var result = nativeObjectToString.call(value); 9610 if (unmasked) { 9611 if (isOwn) { 9612 value[symToStringTag] = tag; 9613 } else { 9614 delete value[symToStringTag]; 9615 } 9616 } 9617 return result; 9618 } 9619 var getSymbols = !nativeGetSymbols ? stubArray : function(object) { 9620 if (object == null) { 9621 return []; 9622 } 9623 object = Object(object); 9624 return arrayFilter(nativeGetSymbols(object), function(symbol) { 9625 return propertyIsEnumerable.call(object, symbol); 9626 }); 9627 }; 9628 var getTag = baseGetTag; 9629 if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) { 9630 getTag = function(value) { 9631 var result = baseGetTag(value), Ctor = result == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : ""; 9632 if (ctorString) { 9633 switch (ctorString) { 9634 case dataViewCtorString: 9635 return dataViewTag; 9636 case mapCtorString: 9637 return mapTag; 9638 case promiseCtorString: 9639 return promiseTag; 9640 case setCtorString: 9641 return setTag; 9642 case weakMapCtorString: 9643 return weakMapTag; 9644 } 9645 } 9646 return result; 9647 }; 9648 } 9649 function isIndex(value, length) { 9650 length = length == null ? MAX_SAFE_INTEGER : length; 9651 return !!length && (typeof value == "number" || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); 9652 } 9653 function isKeyable(value) { 9654 var type = typeof value; 9655 return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; 9656 } 9657 function isMasked(func) { 9658 return !!maskSrcKey && maskSrcKey in func; 9659 } 9660 function isPrototype(value) { 9661 var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; 9662 return value === proto; 9663 } 9664 function objectToString(value) { 9665 return nativeObjectToString.call(value); 9666 } 9667 function toSource(func) { 9668 if (func != null) { 9669 try { 9670 return funcToString.call(func); 9671 } catch (e) { 9672 } 9673 try { 9674 return func + ""; 9675 } catch (e) { 9676 } 9677 } 9678 return ""; 9679 } 9680 function eq(value, other) { 9681 return value === other || value !== value && other !== other; 9682 } 9683 var isArguments = baseIsArguments(/* @__PURE__ */ function() { 9684 return arguments; 9685 }()) ? baseIsArguments : function(value) { 9686 return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); 9687 }; 9688 var isArray = Array.isArray; 9689 function isArrayLike2(value) { 9690 return value != null && isLength(value.length) && !isFunction(value); 9691 } 9692 var isBuffer = nativeIsBuffer || stubFalse; 9693 function isEqual2(value, other) { 9694 return baseIsEqual(value, other); 9695 } 9696 function isFunction(value) { 9697 if (!isObject2(value)) { 9698 return false; 9699 } 9700 var tag = baseGetTag(value); 9701 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; 9702 } 9703 function isLength(value) { 9704 return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; 9705 } 9706 function isObject2(value) { 9707 var type = typeof value; 9708 return value != null && (type == "object" || type == "function"); 9709 } 9710 function isObjectLike(value) { 9711 return value != null && typeof value == "object"; 9712 } 9713 var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; 9714 function keys(object) { 9715 return isArrayLike2(object) ? arrayLikeKeys(object) : baseKeys(object); 9716 } 9717 function stubArray() { 9718 return []; 9719 } 9720 function stubFalse() { 9721 return false; 9722 } 9723 module.exports = isEqual2; 9724 } 9725 }); 9726 9727
9727// src/main/resources/META-INF/resources/liferay/global.es.js 9728 var import_lodash = __toESM(require_lodash()); 9729 var import_lodash2 = __toESM(require_lodash2()); 9730 9731
9731// src/main/resources/META-INF/resources/utils/client_extensions/loadModule.ts 9732 async function loadModule(importDeclarationOrAMDModule) { 9733 if (importDeclarationOrAMDModule.includes(" from ")) { 9734 const [moduleName, symbolName] = getModuleAndSymbolNames( 9735 importDeclarationOrAMDModule 9736 ); 9737 const module = await import( 9738 /* webpackIgnore: true */ 9739 moduleName 9740 ); 9741 return module[symbolName]; 9742 } else { 9743 return new Promise((resolve, reject) => { 9744 Liferay.Loader.require( 9745 importDeclarationOrAMDModule, 9746 (jsModule) => resolve(jsModule.default || jsModule), 9747 (error) => reject(error) 9748 ); 9749 }); 9750 } 9751 } 9752 function getModuleAndSymbolNames(importDeclaration) { 9753 const parts = importDeclaration.split(" from "); 9754 const moduleName = parts[1].trim(); 9755 let symbolName = parts[0].trim(); 9756 if (symbolName.startsWith("{") && symbolName.endsWith("}")) { 9757 symbolName = symbolName.substring(1, symbolName.length - 1).trim(); 9758 } 9759 return [moduleName, symbolName]; 9760 } 9761 9762
9762// src/main/resources/META-INF/resources/utils/client_extensions/loadClientExtensions.ts 9763 function loadClientExtensions(clientExtensionDefinitionsHandlers) { 9764 for (const { 9765 clientExtensionDefinitions, 9766 onLoad 9767 } of clientExtensionDefinitionsHandlers) { 9768 if (!clientExtensionDefinitions.length) { 9769 continue; 9770 } 9771 const promises = clientExtensionDefinitions.map( 9772 ({ context, importDeclaration }) => { 9773 return loadModule(importDeclaration).then((binding) => ({ 9774 binding, 9775 context 9776 })).catch((error) => ({ 9777 context, 9778 error 9779 })); 9780 } 9781 ); 9782 Promise.all(promises).then(onLoad); 9783 } 9784 } 9785 9786
9786// src/main/resources/META-INF/resources/utils/client_extensions/loadEditorClientExtensions.ts 9787 function loadEditorClientExtensions({ 9788 config, 9789 onLoad 9790 }) { 9791 loadClientExtensions([ 9792 { 9793 clientExtensionDefinitions: config.editorTransformerURLs.map( 9794 (url) => ({ 9795 importDeclaration: `default from ${url}` 9796 }) 9797 ), 9798 onLoad: (bindingContexts) => { 9799 let transformedConfig = config; 9800 bindingContexts.forEach( 9801 ({ binding: editorTransformer, error }) => { 9802 if (error) { 9803 console.error(error); 9804 } 9805 const editorConfigTransformer = editorTransformer?.editorConfigTransformer; 9806 if (editorConfigTransformer) { 9807 transformedConfig = editorConfigTransformer(transformedConfig); 9808 } 9809 } 9810 ); 9811 onLoad({ transformedConfig }); 9812 } 9813 } 9814 ]); 9815 } 9816 9817
9817// src/main/resources/META-INF/resources/liferay/util/is_object.js 9818 function isObject(val) { 9819 const type = typeof val; 9820 return type === "object" && val !== null || type === "function"; 9821 } 9822 9823
9823// src/main/resources/META-INF/resources/liferay/util/form/object_to_form_data.es.js 9824 function objectToFormData(object = {}, formData = new FormData(), namespace) { 9825 Object.entries(object).forEach(([key, value]) => { 9826 const formKey = namespace ? `${namespace}[${key}]` : key; 9827 if (Array.isArray(value)) { 9828 value.forEach((item) => { 9829 objectToFormData( 9830 { 9831 [formKey]: item 9832 }, 9833 formData 9834 ); 9835 }); 9836 } else if (isObject(value) && !(value instanceof File)) { 9837 objectToFormData(value, formData, formKey); 9838 } else { 9839 formData.append(formKey, value); 9840 } 9841 }); 9842 return formData; 9843 } 9844 9845
9845// src/main/resources/META-INF/resources/liferay/PortletBase.es.js 9846 function toElementHelper(elementOrSelector) { 9847 if (typeof elementOrSelector === "string") { 9848 elementOrSelector = document.querySelector(elementOrSelector); 9849 } 9850 return elementOrSelector; 9851 } 9852 var LifeCycles = class { 9853 get namespace() { 9854 return this._STATE_.namespace; 9855 } 9856 get portletNamespace() { 9857 return this._STATE_.portletNamespace; 9858 } 9859 get rootNode() { 9860 return this._STATE_.rootNode; 9861 } 9862 set portletNamespace(portletNamespace) { 9863 this.rootNode = `#p_p_id${portletNamespace}`; 9864 this._STATE_.portletNamespace = portletNamespace; 9865 } 9866 set namespace(namespace) { 9867 this.rootNode = `#p_p_id${namespace}`; 9868 this._STATE_.namespace = namespace; 9869 } 9870 set rootNode(rootNode) { 9871 if (typeof rootNode === "string") { 9872 rootNode = document.getElementById( 9873 rootNode[0] === "#" ? rootNode.slice(1) : rootNode 9874 ); 9875 } 9876 this._STATE_.rootNode = rootNode; 9877 } 9878 constructor(props) { 9879 this._EVENTS_ = {}; 9880 this._STATE_ = { 9881 namespace: null, 9882 portletNamespace: null, 9883 rootNode: null 9884 }; 9885 const { namespace, portletNamespace, rootNode } = props; 9886 if (namespace) { 9887 this.namespace = namespace; 9888 } 9889 if (portletNamespace) { 9890 this.portletNamespace = portletNamespace; 9891 } 9892 if (rootNode) { 9893 this.rootNode = rootNode; 9894 } 9895 this.created(props); 9896 this.attached(props); 9897 } 9898 dispose() { 9899 this.disposeInternal(); 9900 this.detached(); 9901 this.disposed(); 9902 } 9903 attached() { 9904 } 9905 created() { 9906 } 9907 detached() { 9908 } 9909 disposed() { 9910 } 9911 disposeInternal() { 9912 } 9913 emit(eventName, data) { 9914 const callbacks = this._EVENTS_[eventName]; 9915 if (callbacks && callbacks.length) { 9916 for (let i = 0; i < callbacks.length; i++) { 9917 callbacks[i](data); 9918 } 9919 } 9920 } 9921 on(eventName, callback) { 9922 if (!this._EVENTS_[eventName]) { 9923 this._EVENTS_[eventName] = []; 9924 } 9925 this._EVENTS_[eventName].push(callback); 9926 } 9927 }; 9928 var PortletBase = class extends LifeCycles { 9929 /** 9930 * Returns a Node List containing all the matching element nodes within the 9931 * subtrees of the root object, in tree order. If there are no matching 9932 * nodes, the method returns an empty Node List. 9933 * 9934 * @param {string} selectors A list of one or more CSS relative selectors. 9935 * @param {(string|Element|Document)=} root The root node of the search. If 9936 * not specified, the element search will start in the portlet's 9937 * root node or in the document. 9938 * @return {NodeList<Element>} A list of elements matching the selectors, in 9939 * tree order. 9940 */ 9941 all(selectors, root) { 9942 root = toElementHelper(root) || this.rootNode || document; 9943 return root.querySelectorAll( 9944 this.namespaceSelectors_( 9945 this.portletNamespace || this.namespace, 9946 selectors 9947 ) 9948 ); 9949 } 9950 /** 9951 * Performs an HTTP POST request to the given URL with the given body. 9952 * 9953 * @deprecated As of Athanasius (7.3.x), replaced by `Liferay.Util.fetch`. 9954 * @param {!string} url The URL to send the post request to. 9955 * @param {!Object|!FormData} body The request body. 9956 * @return {Promise} A promise. 9957 */ 9958 fetch(url, body) { 9959 const requestBody = this.getRequestBody_(body); 9960 return fetch(url, { 9961 body: requestBody, 9962 credentials: "include", 9963 method: "POST" 9964 }); 9965 } 9966 /** 9967 * Transforms the given body into a valid <code>FormData</code> element. 9968 * 9969 * @param {!FormData|!HTMLFormElement|!Object} body The original data. 9970 * @return {FormData} The transformed form data. 9971 */ 9972 getRequestBody_(body) { 9973 let requestBody; 9974 if (body instanceof FormData) { 9975 requestBody = body; 9976 } else if (body instanceof HTMLFormElement) { 9977 requestBody = new FormData(body); 9978 } else if (typeof body === "object") { 9979 requestBody = objectToFormData(this.ns(body)); 9980 } else { 9981 requestBody = body; 9982 } 9983 return requestBody; 9984 } 9985 /** 9986 * Namespaces the list of selectors, appending the portlet namespace to the 9987 * selectors of type ID. Selectors of other types remain unaltered. 9988 * 9989 * @param {string} namespace The portlet's namespace. 9990 * @param {string} selectors A list of one or more CSS relative selectors. 9991 * @protected 9992 * @return {string} The namespaced ID selectors. 9993 */ 9994 namespaceSelectors_(namespace, selectors) { 9995 return selectors.replace( 9996 new RegExp(`(#|\\[id=(\\"|\\'))(?!` + namespace + ")", "g"), 9997 "$1" + namespace 9998 ); 9999 } 10000 /** 10001 * Appends the portlet's namespace to the given string or object properties. 10002 * 10003 * @param {!Object|string} obj The object or string to namespace. 10004 * @return {Object|string} An object with its properties namespaced, using 10005 * the portlet namespace or a namespaced string. 10006 */ 10007 ns(object) { 10008 return Liferay.Util.ns(this.portletNamespace || this.namespace, object); 10009 } 10010 /** 10011 * Returns the first matching Element node within the subtrees of the 10012 * root object. If there is no matching Element, the method returns null. 10013 * 10014 * @param {string} selectors A list of one or more CSS relative selectors. 10015 * @param {(string|Element|Document)=} root The root node of the search. If 10016 * not specified, the element search will start in the portlet's 10017 * root node or in the document. 10018 * @return {Element|null} A list of the first element matching the selectors 10019 * or <code>null</code>. 10020 */ 10021 one(selectors, root) { 10022 root = toElementHelper(root) || this.rootNode || document; 10023 return root.querySelector( 10024 this.namespaceSelectors_( 10025 this.portletNamespace || this.namespace, 10026 selectors 10027 ) 10028 ); 10029 } 10030 }; 10031 var PortletBase_es_default = PortletBase; 10032 10033
10033// src/main/resources/META-INF/resources/liferay/delegate/delegate.es.js 10034 var USE_CAPTURE = { 10035 blur: true, 10036 error: true, 10037 focus: true, 10038 invalid: true, 10039 load: true, 10040 scroll: true 10041 }; 10042 function isDisabled(node) { 10043 return !!(node.disabled || node.closest("[disabled]")); 10044 } 10045 function delegate(element, eventName, selector, callback) { 10046 const eventHandler = (event) => { 10047 const { defaultPrevented, target } = event; 10048 if (defaultPrevented || eventName === "click" && isDisabled(target)) { 10049 return; 10050 } 10051 const delegateTarget = target.closest(selector); 10052 if (delegateTarget) { 10053 event.delegateTarget = delegateTarget; 10054 callback(event); 10055 } 10056 }; 10057 element.addEventListener(eventName, eventHandler, !!USE_CAPTURE[eventName]); 10058 return { 10059 dispose() { 10060 element.removeEventListener(eventName, eventHandler); 10061 } 10062 }; 10063 } 10064 var delegate_es_default = delegate; 10065 10066
10066// src/main/resources/META-INF/resources/liferay/DynamicInlineScroll.es.js 10067 var DynamicInlineScroll = class extends PortletBase_es_default { 10068 /** 10069 * @inheritDoc 10070 */ 10071 attached() { 10072 let { rootNode } = this; 10073 rootNode = rootNode || document.body; 10074 this.inlineScrollEventHandler_ = delegate_es_default( 10075 rootNode, 10076 "scroll", 10077 "ul.pagination ul.inline-scroller", 10078 this.onScroll_.bind(this) 10079 ); 10080 } 10081 /** 10082 * @inheritDoc 10083 */ 10084 created(props) { 10085 this.cur = Number(props.cur); 10086 this.curParam = props.curParam; 10087 this.forcePost = props.forcePost; 10088 this.formName = props.formName; 10089 this.initialPages = Number(props.initialPages); 10090 this.jsCall = props.jsCall; 10091 this.namespace = props.namespace; 10092 this.pages = Number(props.pages); 10093 this.randomNamespace = props.randomNamespace; 10094 this.url = props.url; 10095 this.urlAnchor = props.urlAnchor; 10096 this.handleListItemClick_ = this.handleListItemClick_.bind(this); 10097 } 10098 /** 10099 * @inheritDoc 10100 */ 10101 detached() { 10102 super.detached(); 10103 this.inlineScrollEventHandler_.dispose(); 10104 const listItem = document.createElement("li"); 10105 listItem.removeEventListener("click", this.handleListItemClick_); 10106 } 10107 /** 10108 * Dynamically adds list item elements to the dropdown menu. 10109 * 10110 * @param {element} listElement The list element's DOM node. 10111 * @param {number} pageIndex The Index of the page with an inline-scroller. 10112 * @protected 10113 */ 10114 addListItem_(listElement, pageIndex) { 10115 const listItem = document.createElement("li"); 10116 listItem.innerHTML = `<a class="dropdown-item" href="${this.getHREF_( 10117 pageIndex 10118 )}"><span class="sr-only">${'Sida'} </span>${pageIndex}</a>`; 10119 pageIndex++; 10120 listElement.appendChild(listItem); 10121 listElement.setAttribute("data-page-index", pageIndex); 10122 listItem.addEventListener("click", this.handleListItemClick_); 10123 } 10124 /** 10125 * Returns the <code>href</code> attribute value for each page. 10126 * 10127 * @param {number} pageIndex The Index of the page. 10128 * @protected 10129 * @return {string} The <code>href</code> value as a string. 10130 */ 10131 getHREF_(pageIndex) { 10132 const { curParam, formName, jsCall, namespace, url, urlAnchor } = this; 10133 let href = `javascript:document.${formName}.${namespace}${curParam}.value = "${pageIndex}; ${jsCall}`; 10134 if (this.url !== null) { 10135 href = `${url}&${namespace}${curParam}=${pageIndex}${urlAnchor}`; 10136 } 10137 return href; 10138 } 10139 /** 10140 * Returns the numerical value of the parameter passed in. 10141 * 10142 * @param {string|!Object} val The string or object to be converted to a number. 10143 * @protected 10144 * @return {number} The parameter's numberical value. 10145 */ 10146 getNumber_(val) { 10147 return Number(val ?? 0); 10148 } 10149 /** 10150 * Handles the click event of the dynmaically added list item, preventing 10151 * the default behavior and submitting the search container form. 10152 * 10153 * @param {Event} event The click event of the dynamically added list item. 10154 * @protected 10155 */ 10156 handleListItemClick_(event) { 10157 if (this.forcePost) { 10158 event.preventDefault(); 10159 const { curParam, namespace, randomNamespace } = this; 10160 const form = document.getElementById( 10161 randomNamespace + namespace + "pageIteratorFm" 10162 ); 10163 form.elements[namespace + curParam].value = event.currentTarget.textContent; 10164 form.submit(); 10165 } 10166 } 10167 /** 10168 * An event triggered when a dropdown menu with an inline-scroller is 10169 * scrolled. This dynamically adds list item elements to the dropdown menu 10170 * as it is scrolled down. 10171 * 10172 * @param {Event} event The scroll event triggered by scrolling a dropdown 10173 * menu with an inline-scroller. 10174 * @protected 10175 */ 10176 onScroll_(event) { 10177 const { cur, initialPages, pages } = this; 10178 const { target } = event; 10179 if (target.nodeName !== "UL") { 10180 return; 10181 } 10182 let pageIndex = this.getNumber_(target.dataset.pageIndex); 10183 let pageIndexMax = this.getNumber_(target.dataset.maxIndex); 10184 if (pageIndex === 0) { 10185 const pageIndexCurrent = this.getNumber_( 10186 target.dataset.currentIndex 10187 ); 10188 if (pageIndexCurrent === 0) { 10189 pageIndex = initialPages; 10190 } else { 10191 pageIndex = pageIndexCurrent + initialPages; 10192 } 10193 } 10194 if (pageIndexMax === 0) { 10195 pageIndexMax = pages; 10196 } 10197 if (cur <= pages && pageIndex < pageIndexMax && target.scrollTop >= target.scrollHeight - 300) { 10198 this.addListItem_(target, pageIndex); 10199 } 10200 } 10201 }; 10202 var DynamicInlineScroll_es_default = DynamicInlineScroll; 10203 10204
10204// src/main/resources/META-INF/resources/liferay/util/html_util.js 10205 var MAP_HTML_CHARS_ESCAPED = { 10206 '"': """, 10207 "&": "&", 10208 "'": "'", 10209 "/": "/", 10210 "<": "<", 10211 ">": ">", 10212 "`": "`" 10213 }; 10214 var MAP_HTML_CHARS_UNESCAPED = {}; 10215 Object.entries(MAP_HTML_CHARS_ESCAPED).forEach(([char, escapedChar]) => { 10216 MAP_HTML_CHARS_UNESCAPED[escapedChar] = char; 10217 }); 10218 var HTML_UNESCAPED_VALUES = Object.keys(MAP_HTML_CHARS_ESCAPED); 10219 var HTML_ESCAPE = new RegExp(`[${HTML_UNESCAPED_VALUES.join("")}]`, "g"); 10220 var HTML_UNESCAPE = /&([^\s;]+);/g; 10221 function escapeHTML(string) { 10222 return string.replace( 10223 HTML_ESCAPE, 10224 (match) => MAP_HTML_CHARS_ESCAPED[match] 10225 ); 10226 } 10227 function unescapeHTML(string) { 10228 return string.replace(HTML_UNESCAPE, (match) => { 10229 return new DOMParser().parseFromString(match, "text/html").documentElement.textContent; 10230 }); 10231 } 10232 10233
10233// src/main/resources/META-INF/resources/liferay/util/toggle_disabled.js 10234 function toggleDisabled(nodes, state) { 10235 if (typeof nodes === "string") { 10236 nodes = document.querySelectorAll(nodes); 10237 } else if (nodes._node) { 10238 nodes = [nodes._node]; 10239 } else if (nodes._nodes) { 10240 nodes = nodes._nodes; 10241 } else if (nodes.nodeType === Node.ELEMENT_NODE) { 10242 nodes = [nodes]; 10243 } 10244 nodes.forEach((node) => { 10245 node.disabled = state; 10246 if (state) { 10247 node.classList.add("disabled"); 10248 } else { 10249 node.classList.remove("disabled"); 10250 } 10251 }); 10252 } 10253 10254
10254// src/main/resources/META-INF/resources/liferay/DynamicSelect.js 10255 function sortByValue(a, b) { 10256 let position = a.indexOf('">'); 10257 const nameA = a.substring(position); 10258 position = b.indexOf('">'); 10259 const nameB = b.substring(position); 10260 if (nameA < nameB) { 10261 return -1; 10262 } else if (nameA > nameB) { 10263 return 1; 10264 } else { 10265 return 0; 10266 } 10267 } 10268 function isArrayLike(value) { 10269 if (Array.isArray(value)) { 10270 return true; 10271 } 10272 return !!(value && typeof value === "object" && typeof value.length === "number" && !value.tagName && !value.scrollTo && !value.document); 10273 } 10274 function toArray(value) { 10275 return isArrayLike(value) ? Array.from(value) : [value]; 10276 } 10277 function updateSelect(array, index, list) { 10278 const options = array[index]; 10279 const select = document.getElementById(options.select); 10280 if (!select) { 10281 return; 10282 } 10283 const selectVal = toArray(options.selectVal); 10284 const selectOptions = []; 10285 if (options.selectNullable !== false) { 10286 selectOptions.push('<option selected value="0"></option>'); 10287 } 10288 list.forEach((item) => { 10289 const key = escapeHTML(item[options.selectId]); 10290 const value = escapeHTML(item[options.selectDesc]); 10291 let selected = ""; 10292 if (selectVal.indexOf(key) > -1) { 10293 selected = 'selected="selected"'; 10294 } 10295 selectOptions.push( 10296 `<option ${selected} value="${key}">${value}</option>` 10297 ); 10298 }); 10299 if (options.selectSort) { 10300 selectOptions.sort(sortByValue); 10301 } 10302 while (select.lastChild) { 10303 select.removeChild(select.lastChild); 10304 } 10305 select.innerHTML = selectOptions.join(""); 10306 if (options.selectDisableOnEmpty) { 10307 toggleDisabled(select, !list.length); 10308 } 10309 } 10310 function callSelectData(array, index) { 10311 if (index + 1 < array.length) { 10312 const currentSelect = document.getElementById(array[index].select); 10313 const nextSelectData = array[index + 1].selectData; 10314 nextSelectData((list) => { 10315 updateSelect(array, index + 1, list); 10316 }, currentSelect && currentSelect.value); 10317 } 10318 } 10319 function process2(array) { 10320 array.forEach((item, index) => { 10321 const id = item.select; 10322 const select = document.getElementById(id); 10323 const selectData = item.selectData; 10324 if (select) { 10325 select.setAttribute("data-componentType", "dynamic_select"); 10326 let prevSelectVal; 10327 if (index > 0) { 10328 prevSelectVal = array[index - 1].selectVal; 10329 } 10330 selectData((list) => { 10331 updateSelect(array, index, list); 10332 }, prevSelectVal); 10333 if (!select.getAttribute("name")) { 10334 select.setAttribute("name", id); 10335 } 10336 select.addEventListener("change", () => { 10337 callSelectData(array, index); 10338 }); 10339 } 10340 }); 10341 } 10342 var DynamicSelect = class { 10343 constructor(array) { 10344 process2(array); 10345 } 10346 }; 10347 10348
10348// src/main/resources/META-INF/resources/liferay/autosize/autosize.es.js 10349 var DEFAULT_APPEND_CONTENT = " "; 10350 var AutoSize = class { 10351 constructor(inputElement) { 10352 __publicField(this, "handleInput", (event) => { 10353 requestAnimationFrame(() => { 10354 this._resizeInput(event.target); 10355 }); 10356 }); 10357 this.inputElement = inputElement; 10358 this.computedStyle = getComputedStyle(this.inputElement); 10359 this.minHeight = parseInt( 10360 this.computedStyle.height.replace("px", ""), 10361 10 10362 ); 10363 this.paddingHeight = parseInt(this.computedStyle.paddingTop.replace("px", ""), 10) + parseInt(this.computedStyle.paddingBottom.replace("px", ""), 10); 10364 this.template = this.createTemplate(this.computedStyle); 10365 document.body.appendChild(this.template); 10366 this.inputElement.addEventListener("input", this.handleInput); 10367 this._resizeInput(this.inputElement); 10368 } 10369 createTemplate(computedStyle) { 10370 const template = document.createElement("pre"); 10371 template.style.clip = "rect(0, 0, 0, 0) !important"; 10372 template.style.left = "0"; 10373 template.style.overflowWrap = "break-word"; 10374 template.style.position = "absolute"; 10375 template.style.top = "0"; 10376 template.style.transform = "scale(0)"; 10377 template.style.whiteSpace = "pre-wrap"; 10378 template.style.wordBreak = "break-word"; 10379 template.style.fontFamily = computedStyle.fontFamily; 10380 template.style.fontSize = computedStyle.fontSize; 10381 template.style.fontStyle = computedStyle.fontStyle; 10382 template.style.fontWeight = computedStyle.fontWeight; 10383 template.style.lineHeight = computedStyle.lineHeight; 10384 template.style.letterSpacing = computedStyle.letterSpacing; 10385 template.style.textTransform = computedStyle.textTransform; 10386 template.style.width = computedStyle.width; 10387 template.textContent = DEFAULT_APPEND_CONTENT; 10388 return template; 10389 } 10390 _resizeInput(inputElement) { 10391 if (this.template.style.width !== this.computedStyle.width) { 10392 this.template.style.width = this.computedStyle.width; 10393 } 10394 this.template.innerHTML = escapeHTML(inputElement.value) + DEFAULT_APPEND_CONTENT; 10395 inputElement.style.height = `${this.template.scrollHeight + this.paddingHeight < this.minHeight ? this.minHeight : this.template.scrollHeight + this.paddingHeight}px`; 10396 } 10397 }; 10398 var autosize_es_default = AutoSize; 10399 10400
10400// src/main/resources/META-INF/resources/liferay/breakpoints.js 10401 var breakpoints_default = { 10402 PHONE: 768, 10403 TABLET: 980 10404 }; 10405 10406
10406// src/main/resources/META-INF/resources/liferay/component.es.js 10407 var componentConfigs = {}; 10408 var componentPromiseWrappers = {}; 10409 var components = {}; 10410 var componentsCache = {}; 10411 var componentsFn = {}; 10412 var DEFAULT_CACHE_VALIDATION_PARAMS = ["p_p_id", "p_p_lifecycle"]; 10413 var DEFAULT_CACHE_VALIDATION_PORTLET_PARAMS = [ 10414 "ddmStructureKey", 10415 "fileEntryTypeId", 10416 "folderId", 10417 "navigation", 10418 "status" 10419 ]; 10420 var LIFERAY_COMPONENT = "liferay.component"; 10421 var _createPromiseWrapper = function(value) { 10422 let promiseWrapper; 10423 if (value) { 10424 promiseWrapper = { 10425 promise: Promise.resolve(value), 10426 resolve() { 10427 } 10428 }; 10429 } else { 10430 let promiseResolve; 10431 const promise = new Promise((resolve) => { 10432 promiseResolve = resolve; 10433 }); 10434 promiseWrapper = { 10435 promise, 10436 resolve: promiseResolve 10437 }; 10438 } 10439 return promiseWrapper; 10440 }; 10441 var _restoreTask = function(state, params, node) { 10442 const cache = state.data; 10443 const componentIds = Object.keys(cache); 10444 componentIds.forEach((componentId) => { 10445 const container = node.querySelector(`#${componentId}`); 10446 if (container) { 10447 container.innerHTML = cache[componentId].html; 10448 } 10449 }); 10450 }; 10451 var _onStartNavigate = function(event) { 10452 const currentUri = new URL(window.location.href); 10453 const uri = new URL(event.path, window.location.href); 10454 const cacheableUri = DEFAULT_CACHE_VALIDATION_PARAMS.every((param) => { 10455 return uri.searchParams.get(param) === currentUri.searchParams.get(param); 10456 }); 10457 if (cacheableUri) { 10458 let componentIds = Object.keys(components); 10459 componentIds = componentIds.filter((componentId) => { 10460 const component2 = components[componentId]; 10461 if (!component2) { 10462 return false; 10463 } 10464 const componentConfig = componentConfigs[componentId]; 10465 const cacheablePortletUri = DEFAULT_CACHE_VALIDATION_PORTLET_PARAMS.every((param) => { 10466 let cacheable = false; 10467 if (componentConfig) { 10468 const namespacedParam = `_${componentConfig.portletId}_${param}`; 10469 cacheable = uri.searchParams.get(namespacedParam) === currentUri.searchParams.get(namespacedParam); 10470 } 10471 return cacheable; 10472 }); 10473 const cacheableComponent = typeof component2.isCacheable === "function" ? component2.isCacheable(uri) : false; 10474 return cacheableComponent && cacheablePortletUri && componentConfig && componentConfig.cacheState && component2.element && component2.getState; 10475 }); 10476 componentsCache = componentIds.reduce((cache, componentId) => { 10477 const component2 = components[componentId]; 10478 const componentConfig = componentConfigs[componentId]; 10479 const componentState = component2.getState(); 10480 const componentCache = componentConfig.cacheState.reduce( 10481 (cache2, stateKey) => { 10482 cache2[stateKey] = componentState[stateKey]; 10483 return cache2; 10484 }, 10485 {} 10486 ); 10487 cache[componentId] = { 10488 html: component2.element.innerHTML, 10489 state: componentCache 10490 }; 10491 return cache; 10492 }, []); 10493 Liferay.DOMTaskRunner.addTask({ 10494 action: _restoreTask, 10495 condition: (state) => state.owner === LIFERAY_COMPONENT 10496 }); 10497 Liferay.DOMTaskRunner.addTaskState({ 10498 data: componentsCache, 10499 owner: LIFERAY_COMPONENT 10500 }); 10501 } else { 10502 componentsCache = {}; 10503 } 10504 }; 10505 var component = function(id, value, componentConfig) { 10506 let retVal; 10507 if (arguments.length === 1) { 10508 let component2 = components[id]; 10509 if (component2 && typeof component2 === "function") { 10510 componentsFn[id] = component2; 10511 component2 = component2(); 10512 components[id] = component2; 10513 } 10514 retVal = component2; 10515 } else { 10516 if (components[id] && value !== null) { 10517 delete componentConfigs[id]; 10518 delete componentPromiseWrappers[id]; 10519 console.warn( 10520 'Component with id "' + id + '" is being registered twice. This can lead to unexpected behaviour in the "Liferay.component" and "Liferay.componentReady" APIs, as well as in the "*:registered" events.' 10521 ); 10522 } 10523 retVal = components[id] = value; 10524 if (value === null) { 10525 delete componentConfigs[id]; 10526 delete componentPromiseWrappers[id]; 10527 } else { 10528 componentConfigs[id] = componentConfig; 10529 Liferay.fire(id + ":registered"); 10530 const componentPromiseWrapper = componentPromiseWrappers[id]; 10531 if (componentPromiseWrapper) { 10532 componentPromiseWrapper.resolve(value); 10533 } else { 10534 componentPromiseWrappers[id] = _createPromiseWrapper(value); 10535 } 10536 } 10537 } 10538 return retVal; 10539 }; 10540 var componentReady = function() {
10541 let component2; 10542 let componentPromise; 10543 if (arguments.length === 1) { 10544 component2 = arguments[0]; 10545 } else { 10546 component2 = []; 10547 for (let i = 0; i < arguments.length; i++) { 10548 component2[i] = arguments[i]; 10549 } 10550 } 10551 if (Array.isArray(component2)) { 10552 componentPromise = Promise.all( 10553 component2.map((id) => componentReady(id)) 10554 ); 10555 } else { 10556 let componentPromiseWrapper = componentPromiseWrappers[component2]; 10557 if (!componentPromiseWrapper) { 10558 componentPromiseWrappers[component2] = componentPromiseWrapper = _createPromiseWrapper(); 10559 } 10560 componentPromise = componentPromiseWrapper.promise; 10561 } 10562 return componentPromise; 10563 }; 10564 var destroyComponent = function(componentId) { 10565 const component2 = components[componentId]; 10566 if (component2) { 10567 const destroyFn = component2.destroy || component2.dispose; 10568 if (destroyFn) { 10569 destroyFn.call(component2); 10570 } 10571 delete componentConfigs[componentId]; 10572 delete componentPromiseWrappers[componentId]; 10573 delete componentsFn[componentId]; 10574 delete components[componentId]; 10575 } 10576 }; 10577 var destroyComponents = function(filterFn) {
10578 let componentIds = Object.keys(components); 10579 if (filterFn) { 10580 componentIds = componentIds.filter((componentId) => { 10581 return filterFn( 10582 components[componentId], 10583 componentConfigs[componentId] || {} 10584 ); 10585 }); 10586 } 10587 componentIds.forEach(destroyComponent); 10588 }; 10589 var destroyUnfulfilledPromises = function() { 10590 componentPromiseWrappers = {}; 10591 }; 10592 var getComponentCache = function(componentId) { 10593 const componentCache = componentsCache[componentId]; 10594 return componentCache ? componentCache.state : {}; 10595 }; 10596 var initComponentCache = function() { 10597 Liferay.on("startNavigate", _onStartNavigate); 10598 }; 10599 10600
10600// src/main/resources/META-INF/resources/liferay/debounce/debounce.es.js 10601 function debounce(fn, delay) { 10602 return function debounced() { 10603 const args = arguments; 10604 cancelDebounce(debounced); 10605 debounced.id = setTimeout(() => { 10606 fn(...args); 10607 }, delay); 10608 }; 10609 } 10610 function cancelDebounce(debounced) { 10611 clearTimeout(debounced.id); 10612 } 10613 var debounce_es_default = debounce; 10614 10615
10615// src/main/resources/META-INF/resources/liferay/util/get_top.js 10616 var SIMULATION_DEVICE_IFRAME = "simulationDeviceIframe"; 10617 var _topWindow; 10618 function getTop() { 10619 let topWindow = _topWindow; 10620 if (!topWindow) { 10621 let parentWindow = window.parent; 10622 let parentThemeDisplay; 10623 while (parentWindow !== window) { 10624 try { 10625 if (typeof parentWindow.location.href === "undefined") { 10626 break; 10627 } 10628 parentThemeDisplay = parentWindow.themeDisplay; 10629 } catch (error) { 10630 break; 10631 } 10632 if (!parentThemeDisplay || window.name === SIMULATION_DEVICE_IFRAME) { 10633 break; 10634 } else if (!parentThemeDisplay.isStatePopUp() || parentWindow === parentWindow.parent) { 10635 topWindow = parentWindow; 10636 break; 10637 } 10638 parentWindow = parentWindow.parent; 10639 } 10640 if (!topWindow) { 10641 topWindow = window; 10642 } 10643 _topWindow = topWindow; 10644 } 10645 return topWindow; 10646 } 10647 10648
10648// src/main/resources/META-INF/resources/liferay/util/open_window.js 10649 function openWindow(config, callback) { 10650 const topUtil = getTop(); 10651 config.openingWindow = window; 10652 topUtil.Liferay.Util._openWindowProvider(config, callback); 10653 } 10654 10655
10655// src/main/resources/META-INF/resources/liferay/layout_exporter.es.js 10656 function hideLayoutPane(options) { 10657 options = options || {}; 10658 const object = options.obj; 10659 let pane = options.pane; 10660 if (object && object.checked) { 10661 pane = document.querySelector(pane); 10662 if (pane) { 10663 pane.classList.add("hide"); 10664 } 10665 } 10666 } 10667 function getLayoutIcons() { 10668 return { 10669 minus: themeDisplay.getPathThemeImages() + "/arrows/01_minus.png", 10670 plus: themeDisplay.getPathThemeImages() + "/arrows/01_plus.png" 10671 }; 10672 } 10673 function proposeLayout(options) { 10674 options = options || {}; 10675 const namespace = options.namespace; 10676 const reviewers = options.reviewers; 10677 let contents = '<div><form action="' + options.url + '" method="post">'; 10678 if (reviewers.length) { 10679 contents += '<textarea name="' + namespace + 'description" style="height: 100px; width: 284px;"></textarea><br /><br />' + 'Granskare' + ' <select name="' + namespace + 'reviewUserId">'; 10680 for (let i = 0; i < reviewers.length; i++) { 10681 contents += '<option value="' + reviewers[i].userId + '">' + reviewers[i].fullName + "</option>"; 10682 } 10683 contents += '</select><br /><br /><input type="submit" value="' + 'Fortsätt' + '" />'; 10684 } else { 10685 contents += 'Hittade\x20inga\x20granskare' + "<br />" + 'Ta\x20kontakt\x20med\x20administratören\x20för\x20att\x20utse\x20de\x20som\x20granskar\x2e' + "<br /><br />"; 10686 } 10687 contents += "</form></div>"; 10688 openWindow({ 10689 dialog: { 10690 destroyOnHide: true 10691 }, 10692 title: contents 10693 }); 10694 } 10695 function publishToLive(options) { 10696 options = options || {}; 10697 openWindow({ 10698 dialog: { 10699 constrain: true, 10700 modal: true, 10701 on: { 10702 visibleChange(event) { 10703 const instance = this; 10704 if (!event.newVal) { 10705 instance.destroy(); 10706 } 10707 } 10708 } 10709 }, 10710 title: options.title, 10711 uri: options.url 10712 }); 10713 } 10714 function showLayoutPane(options) { 10715 options = options || {}; 10716 const object = options.obj; 10717 let pane = options.pane; 10718 if (object && object.checked) { 10719 pane = document.querySelector(pane); 10720 if (pane) { 10721 pane.classList.remove("hide"); 10722 } 10723 } 10724 } 10725 function toggleLayoutDetails(options) { 10726 options = options || {}; 10727 const detail = document.querySelector(options.detail); 10728 const image = document.querySelector(options.toggle); 10729 if (detail && image) { 10730 let icon = themeDisplay.getPathThemeImages() + "/arrows/01_plus.png"; 10731 if (detail.classList.contains("hide")) { 10732 detail.classList.remove("hide"); 10733 icon = themeDisplay.getPathThemeImages() + "/arrows/01_minus.png"; 10734 } else { 10735 detail.classList.add("hide"); 10736 } 10737 image.setAttribute("src", icon); 10738 } 10739 } 10740 10741
10741// src/main/resources/META-INF/resources/liferay/util/memoize.js 10742 function memoize(fn) { 10743 if (typeof fn !== "function") { 10744 throw new TypeError(`Parameter fn must be a function`); 10745 } 10746 const cache = /* @__PURE__ */ new Map(); 10747 const memoized = (...args) => { 10748 let key; 10749 if (args.find((arg) => typeof arg === "object")) { 10750 const objectArguments = args.filter( 10751 (arg) => typeof arg === "object" 10752 ); 10753 key = objectArguments.map((objArg) => JSON.stringify(objArg)); 10754 if (args.length > 1 && objectArguments.length < args.length) { 10755 args.forEach((arg) => typeof arg !== "object" && key.push(arg)); 10756 } 10757 key = key.join(","); 10758 } else { 10759 key = args.length > 1 ? args.join(",") : args[0]; 10760 } 10761 if (cache.has(key)) { 10762 return cache.get(key); 10763 } else { 10764 const result = fn.apply(null, args); 10765 cache.set(key, result); 10766 return result; 10767 } 10768 }; 10769 memoized.getCache = () => cache; 10770 return memoized; 10771 } 10772 10773
10773// src/main/resources/META-INF/resources/liferay/util/to_char_code.es.js 10774 var toCharCode = memoize( 10775 (name) => name.split("").map((val) => val.charCodeAt()).join("") 10776 ); 10777 var to_char_code_es_default = toCharCode; 10778 10779
10779// src/main/resources/META-INF/resources/liferay/portal/tabs.es.js 10780 var EVENT_SHOW_TAB = "showTab"; 10781 function showTab(namespace, names, id, callback) { 10782 const namespacedId = namespace + to_char_code_es_default(id); 10783 const selectedTab = document.getElementById(namespacedId + "TabsId"); 10784 const selectedTabSection = document.getElementById( 10785 namespacedId + "TabsSection" 10786 ); 10787 if (selectedTab && selectedTabSection) { 10788 const details = { 10789 id, 10790 names, 10791 namespace, 10792 selectedTab, 10793 selectedTabSection 10794 }; 10795 if (callback && typeof callback === "function") { 10796 callback.call(this, namespace, names, id, details); 10797 } 10798 try { 10799 Liferay.on(EVENT_SHOW_TAB, applyTabSelectionDOMChanges); 10800 Liferay.fire(EVENT_SHOW_TAB, details); 10801 } finally { 10802 Liferay.detach(EVENT_SHOW_TAB, applyTabSelectionDOMChanges); 10803 } 10804 } 10805 } 10806 function applyTabSelectionDOMChanges({ 10807 id, 10808 names, 10809 namespace, 10810 selectedTab, 10811 selectedTabSection 10812 }) { 10813 const selectedTabLink = selectedTab.querySelector("a"); 10814 if (selectedTab && selectedTabLink) { 10815 const activeTab = selectedTab.parentElement.querySelector(".active"); 10816 if (activeTab) { 10817 activeTab.classList.remove("active"); 10818 } 10819 selectedTabLink.classList.add("active"); 10820 } 10821 if (selectedTabSection) { 10822 selectedTabSection.classList.remove("hide"); 10823 } 10824 const tabTitle = document.getElementById(namespace + "dropdownTitle"); 10825 if (tabTitle && selectedTabLink) { 10826 tabTitle.innerHTML = selectedTabLink.textContent; 10827 } 10828 names.splice(names.indexOf(id), 1); 10829 let tabSection; 10830 for (let i = 0; i < names.length; i++) { 10831 tabSection = document.getElementById( 10832 namespace + to_char_code_es_default(names[i]) + "TabsSection" 10833 ); 10834 if (tabSection) { 10835 tabSection.classList.add("hide"); 10836 } 10837 } 10838 } 10839 10840
10840// src/main/resources/META-INF/resources/liferay/portal/tooltip.es.js 10841 function showTooltip(element, text) { 10842 element.setAttribute("title", text); 10843 element.classList.add("lfr-portal-tooltip"); 10844 } 10845 10846
10846// src/main/resources/META-INF/resources/liferay/util/fetch.es.js 10847 function setNewLocation(resource, newLocation) { 10848 if (typeof resource === "string") { 10849 resource = newLocation; 10850 } else if (resource instanceof URL) { 10851 resource = new URL(newLocation); 10852 } else if (resource instanceof Request) { 10853 resource = new Request(newLocation, resource); 10854 } else { 10855 console.warn( 10856 "Resource passed to `fetch()` must either be a string, Request, or URL." 10857 ); 10858 } 10859 return resource; 10860 } 10861 function defaultFetch(resource, init = {}) { 10862 if (!resource) { 10863 resource = "/o/"; 10864 } 10865 let resourceLocation = resource.url ? resource.url : resource.toString(); 10866 if (resourceLocation.startsWith("/")) { 10867 const pathContext = Liferay.ThemeDisplay.getPathContext(); 10868 if (pathContext && !resourceLocation.startsWith(pathContext)) { 10869 resourceLocation = pathContext + resourceLocation; 10870 resource = setNewLocation(resource, resourceLocation); 10871 } 10872 resourceLocation = window.location.origin + resourceLocation; 10873 } 10874 const resourceURL = new URL(resourceLocation); 10875 const headers = new Headers({}); 10876 const config = {}; 10877 if (resourceURL.origin === window.location.origin) { 10878 headers.set("x-csrf-token", Liferay.authToken); 10879 config.credentials = "include"; 10880 const doAsUserIdEncoded = Liferay.ThemeDisplay.getDoAsUserIdEncoded(); 10881 if (doAsUserIdEncoded) { 10882 resourceURL.searchParams.set("doAsUserId", doAsUserIdEncoded); 10883 resourceLocation = resourceURL.toString(); 10884 resource = setNewLocation(resource, resourceLocation); 10885 } 10886 } 10887 new Headers(init.headers || {}).forEach((value, key) => { 10888 headers.set(key, value); 10889 }); 10890 return fetch(resource, { ...config, ...init, headers }); 10891 } 10892 10893
10893// src/main/resources/META-INF/resources/liferay/util/get_portlet_id.js 10894 var REGEX_PORTLET_ID = /^(?:p_p_id)?_(.*)_.*$/; 10895 function getPortletId(portletId) { 10896 return portletId.replace(REGEX_PORTLET_ID, "$1"); 10897 } 10898 10899
10899// src/main/resources/META-INF/resources/liferay/util/get_portlet_namespace.es.js 10900 function getPortletNamespace(portletId) { 10901 if (typeof portletId !== "string") { 10902 throw new TypeError("portletId must be a string"); 10903 } 10904 return `_${portletId}_`; 10905 } 10906 10907
10907// src/main/resources/META-INF/resources/liferay/util/portlet_url/create_portlet_url.es.js 10908 var SCHEME_REGEXP = /^[a-z][a-z0-9+.-]*:/i; 10909 function isAbsolute_(urlString) { 10910 return SCHEME_REGEXP.test(urlString); 10911 } 10912 function createPortletURL(basePortletURL, parameters = {}) { 10913 if (typeof basePortletURL !== "string") { 10914 throw new TypeError("basePortletURL parameter must be a string"); 10915 } 10916 if (!parameters || typeof parameters !== "object") { 10917 throw new TypeError("parameters argument must be an object"); 10918 } 10919 const reservedParameters = /* @__PURE__ */ new Set([ 10920 "doAsGroupId", 10921 "doAsUserId", 10922 "doAsUserLanguageId", 10923 "p_auth", 10924 "p_auth_secret", 10925 "p_f_id", 10926 "p_j_a_id", 10927 "p_l_id", 10928 "p_l_reset", 10929 "p_p_auth", 10930 "p_p_cacheability", 10931 "p_p_i_id", 10932 "p_p_id", 10933 "p_p_isolated", 10934 "p_p_lifecycle", 10935 "p_p_mode", 10936 "p_p_resource_id", 10937 "p_p_state", 10938 "p_p_state_rcv", 10939 "p_p_static", 10940 "p_p_url_type", 10941 "p_p_width", 10942 "p_t_lifecycle", 10943 "p_v_l_s_g_id", 10944 "refererGroupId", 10945 "refererPlid", 10946 "saveLastPath", 10947 "scroll" 10948 ]); 10949 if (basePortletURL.indexOf(Liferay.ThemeDisplay.getPortalURL()) !== 0 && !isAbsolute_(basePortletURL)) { 10950 if (basePortletURL.indexOf("/") !== 0) { 10951 basePortletURL = `${Liferay.ThemeDisplay.getPortalURL()}/${basePortletURL}`; 10952 } else { 10953 basePortletURL = Liferay.ThemeDisplay.getPortalURL() + basePortletURL; 10954 } 10955 } 10956 const portletURL = new URL(basePortletURL); 10957 const urlSearchParams = new URLSearchParams(portletURL.search); 10958 const portletID = parameters.p_p_id || urlSearchParams.get("p_p_id"); 10959 if (Object.entries(parameters).length && !portletID) { 10960 throw new TypeError( 10961 "Portlet ID must not be null if parameters are provided" 10962 ); 10963 } 10964 let namespace = ""; 10965 if (Object.entries(parameters).length) { 10966 namespace = getPortletNamespace(portletID); 10967 } 10968 Object.keys(parameters).forEach((key) => { 10969 let param; 10970 if (reservedParameters.has(key)) { 10971 param = key; 10972 } else { 10973 param = `${namespace}${key}`; 10974 } 10975 urlSearchParams.set(param, parameters[key]); 10976 }); 10977 portletURL.search = urlSearchParams.toString(); 10978 return portletURL; 10979 } 10980 10981
vendor: 497 bytes, lines 10981-10994
10981// ../../../node_modules/uuid/dist/esm-browser/rng.js 10982 var getRandomValues; 10983 var rnds8 = new Uint8Array(16); 10984 function rng() { 10985 if (!getRandomValues) { 10986 getRandomValues = typeof crypto !== "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto); 10987 if (!getRandomValues) { 10988 throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported"); 10989 } 10990 } 10991 return getRandomValues(rnds8); 10992 } 10993 10994
vendor: 746 bytes, lines 10994-11003
10994// ../../../node_modules/uuid/dist/esm-browser/stringify.js 10995 var byteToHex = []; 10996 for (let i = 0; i < 256; ++i) { 10997 byteToHex.push((i + 256).toString(16).slice(1)); 10998 } 10999 function unsafeStringify(arr, offset = 0) { 11000 return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); 11001 } 11002 11003
vendor: 210 bytes, lines 11003-11009
11003// ../../../node_modules/uuid/dist/esm-browser/native.js 11004 var randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto); 11005 var native_default = { 11006 randomUUID 11007 }; 11008 11009
vendor: 562 bytes, lines 11009-11029
11009// ../../../node_modules/uuid/dist/esm-browser/v4.js 11010 function v4(options, buf, offset) { 11011 if (native_default.randomUUID && !buf && !options) { 11012 return native_default.randomUUID(); 11013 } 11014 options = options || {}; 11015 const rnds = options.random || (options.rng || rng)(); 11016 rnds[6] = rnds[6] & 15 | 64; 11017 rnds[8] = rnds[8] & 63 | 128; 11018 if (buf) { 11019 offset = offset || 0; 11020 for (let i = 0; i < 16; ++i) { 11021 buf[offset + i] = rnds[i]; 11022 } 11023 return buf; 11024 } 11025 return unsafeStringify(rnds); 11026 } 11027 var v4_default = v4; 11028 11029
11029// src/main/resources/META-INF/resources/liferay/portlet/portlet_constants.es.js 11030 var PortletConstants = { 11031 // Portlet mode 11032 EDIT: "edit", 11033 HELP: "help", 11034 VIEW: "view", 11035 // Window state 11036 MAXIMIZED: "maximized", 11037 MINIMIZED: "minimized", 11038 NORMAL: "normal", 11039 // Resource URL cacheability 11040 FULL: "cacheLevelFull", 11041 PAGE: "cacheLevelPage", 11042 PORTLET: "cacheLevelPortlet" 11043 }; 11044 var portlet_constants_es_default = PortletConstants; 11045 11046
11046// src/main/resources/META-INF/resources/liferay/portlet/RenderState.es.js 11047 var RenderState = class _RenderState { 11048 constructor(state) { 11049 if (isObject(state)) { 11050 this.from(state); 11051 } else { 11052 this.parameters = {}; 11053 this.portletMode = portlet_constants_es_default.VIEW; 11054 this.windowState = portlet_constants_es_default.NORMAL; 11055 } 11056 } 11057 /** 11058 * Clone returns a copy of this RenderState instance. 11059 * @memberof RenderState 11060 * @return {RenderState} A RenderState instance with same properties. 11061 * @review 11062 */ 11063 clone() { 11064 return new _RenderState(this); 11065 } 11066 /** 11067 * Set the properties of a RenderState instance based on another RenderState 11068 * @memberof RenderState 11069 * @review 11070 */ 11071 from(renderState) { 11072 this.parameters = {}; 11073 Object.keys(renderState.parameters).forEach((name) => { 11074 if (Array.isArray(renderState.parameters[name])) { 11075 this.parameters[name] = renderState.parameters[name].slice(0); 11076 } 11077 }); 11078 this.setPortletMode(renderState.portletMode); 11079 this.setWindowState(renderState.windowState); 11080 } 11081 /** 11082 * Returns the portletMode for this RenderState. 11083 * @memberof RenderState 11084 * @return {String} The portletMode for this render state 11085 * @review 11086 */ 11087 getPortletMode() { 11088 return this.portletMode; 11089 } 11090 /** 11091 * Returns the string parameter value for the given name. 11092 * If name designates a multi-valued parameter this function returns 11093 * the first value in the values array. If the parameter is undefined 11094 * this function returns the optional default parameter <code>defaultValue</code>. 11095 * @memberof RenderState 11096 * @param {String} name The name of the parameter to retreive. 11097 * @param {?String} defaultValue The default value of the parameter in case it is undefined. 11098 * @return {String} The value of the parameter 11099 * @review 11100 */ 11101 getValue(name, defaultValue) { 11102 if (typeof name !== "string") { 11103 throw new TypeError("Parameter name must be a string"); 11104 } 11105 let value = this.parameters[name]; 11106 if (Array.isArray(value)) { 11107 value = value[0]; 11108 } 11109 if (value === void 0 && defaultValue !== void 0) { 11110 value = defaultValue; 11111 } 11112 return value; 11113 } 11114 /** 11115 * Gets the string array parameter value for the given <code>name</code>. 11116 * If the parameter for the given name is undefined, this function 11117 * returns the optional default value array <code>def</code>. 11118 * @memberof RenderState 11119 * @param {String} name The name of the parameter to retrieve. 11120 * @param {?Array} defaultValue The default value for the parameter if it is undefined. 11121 * @return {Array} 11122 * @review 11123 */ 11124 getValues(name, defaultValue) { 11125 if (typeof name !== "string") { 11126 throw new TypeError("Parameter name must be a string"); 11127 } 11128 const value = this.parameters[name]; 11129 return value ? value : defaultValue; 11130 } 11131 /** 11132 * Returns the windowState for this RenderState. 11133 * @memberof RenderState 11134 * @return {String} the window state for this render state 11135 * @review 11136 */ 11137 getWindowState() { 11138 return this.windowState; 11139 } 11140 /** 11141 * Removes the parameter with the given name. 11142 * @memberof RenderState 11143 * @param {String} name The name of the parameter to be removed. 11144 * @review 11145 */ 11146 remove(name) { 11147 if (typeof name !== "string") { 11148 throw new TypeError("Parameter name must be a string"); 11149 } 11150 if (this.parameters[name] !== void 0) { 11151 delete this.parameters[name]; 11152 } 11153 } 11154 /** 11155 * Sets the portletMode to the specified value. 11156 * @memberof RenderState 11157 * @param {String} portletMode The portlet mode to be set. 11158 * @review 11159 * @see {PortletConstants} 11160 */ 11161 setPortletMode(portletMode) { 11162 if (typeof portletMode !== "string") { 11163 throw new TypeError("Portlet Mode must be a string"); 11164 } 11165 if (portletMode === portlet_constants_es_default.EDIT || portletMode === portlet_constants_es_default.HELP || portletMode === portlet_constants_es_default.VIEW) { 11166 this.portletMode = portletMode; 11167 } 11168 } 11169 /** 11170 * Sets a parameter with a given name and value. 11171 * The value may be a string or an array.
11172 * @memberof RenderState 11173 * @param {String} name The name of the parameter. 11174 * @param {Array|String} value The value of the parameter. 11175 * @review 11176 */ 11177 setValue(name, value) { 11178 if (typeof name !== "string") { 11179 throw new TypeError("Parameter name must be a string"); 11180 } 11181 if (typeof value !== "string" && value !== null && !Array.isArray(value)) { 11182 throw new TypeError( 11183 "Parameter value must be a string, an array or null" 11184 ); 11185 } 11186 if (!Array.isArray(value)) { 11187 value = [value]; 11188 } 11189 this.parameters[name] = value; 11190 } 11191 /** 11192 * Sets a parameter with a given name and value. 11193 * The value may be a string or an array. 11194 * @memberof RenderState 11195 * @param {String} name The name of the parameter. 11196 * @param {Array|String} value The value of the parameter. 11197 * @review 11198 */ 11199 setValues(name, value) { 11200 this.setValue(name, value); 11201 } 11202 /** 11203 * Sets the windowState to the specified value. 11204 * @memberof RenderState 11205 * @param {String} windowSstate The window state to be set. 11206 * @return {String} 11207 * @review 11208 * @see {PortletConstants} 11209 */ 11210 setWindowState(windowState) { 11211 if (typeof windowState !== "string") { 11212 throw new TypeError("Window State must be a string"); 11213 } 11214 if (windowState === portlet_constants_es_default.MAXIMIZED || windowState === portlet_constants_es_default.MINIMIZED || windowState === portlet_constants_es_default.NORMAL) { 11215 this.windowState = windowState; 11216 } 11217 } 11218 }; 11219 var RenderState_es_default = RenderState; 11220 11221
11221// src/main/resources/META-INF/resources/liferay/portlet/portlet_util.es.js 11222 var AJAX_ACTION_VALUE = "0"; 11223 var CACHE_LEVEL_KEY = "p_p_cacheability"; 11224 var HUB_ACTION_KEY = "p_p_hub"; 11225 var PARTIAL_ACTION_VALUE = "1"; 11226 var PORTLET_MODE_KEY = "p_p_mode"; 11227 var PUBLIC_RENDER_PARAM_KEY = "p_r_p_"; 11228 var RENDER_PARAM_KEY = "priv_r_p_"; 11229 var RESOURCE_ID_KEY = "p_p_resource_id"; 11230 var TOKEN_DELIM = "&"; 11231 var VALUE_ARRAY_EMPTY = ""; 11232 var VALUE_DELIM = "="; 11233 var VALUE_NULL = ""; 11234 var WINDOW_STATE_KEY = "p_p_state"; 11235 var isParameterEqual = function(parameter1, parameter2) { 11236 let result = false; 11237 if (parameter1 === void 0 && parameter2 === void 0) { 11238 result = true; 11239 } 11240 if (parameter1 === void 0 || parameter2 === void 0) { 11241 result = false; 11242 } 11243 if (parameter1.length !== parameter2.length) { 11244 result = false; 11245 } 11246 for (let i = parameter1.length - 1; i >= 0; i--) { 11247 if (parameter1[i] !== parameter2[i]) { 11248 result = false; 11249 } 11250 } 11251 return result; 11252 }; 11253 var stateChanged = function(pageRenderState2, newState, portletId) { 11254 let result = false;
11255 if (pageRenderState2 && pageRenderState2.portlets) { 11256 const portletData = pageRenderState2.portlets[portletId]; 11257 if (portletData) { 11258 const oldState = pageRenderState2.portlets[portletId].state; 11259 if (!newState.portletMode || !newState.windowState || !newState.parameters) { 11260 throw new Error(`Error decoding state: ${newState}`); 11261 } 11262 if (newState.porletMode !== oldState.portletMode || newState.windowState !== oldState.windowState) { 11263 result = true; 11264 } else { 11265 const newKeys = Object.keys(newState.parameters); 11266 newKeys.forEach((key) => { 11267 const newParameter = newState.parameters[key]; 11268 const oldParameter = oldState.parameters[key]; 11269 if (!isParameterEqual(newParameter, oldParameter)) { 11270 result = true; 11271 } 11272 }); 11273 const oldKeys = Object.keys(oldState.parameters); 11274 oldKeys.forEach((key) => { 11275 if (!newState.parameters[key]) { 11276 result = true; 11277 } 11278 }); 11279 } 11280 } 11281 } 11282 return result; 11283 }; 11284 var decodeUpdateString = function(pageRenderState2, updateString) { 11285 const portlets = pageRenderState2 && pageRenderState2.portlets ? pageRenderState2.portlets : {}; 11286 try { 11287 const newRenderState = JSON.parse(updateString); 11288 if (newRenderState.portlets) { 11289 const keys = Object.keys(portlets); 11290 keys.forEach((key) => { 11291 const newState = newRenderState.portlets[key].state; 11292 const oldState = portlets[key].state; 11293 if (!newState || !oldState) { 11294 throw new Error( 11295 `Invalid update string. 11296old state=${oldState} 11297new state=${newState}` 11298 ); 11299 } 11300 if (stateChanged(pageRenderState2, newState, key)) { 11301 portlets[key] = newRenderState.portlets[key]; 11302 } 11303 }); 11304 } 11305 } catch (error) { 11306 } 11307 return portlets; 11308 }; 11309 var encodeFormAsString = function(portletId, form) { 11310 const parameters = []; 11311 for (let i = 0; i < form.elements.length; i++) { 11312 const element = form.elements[i]; 11313 const name = element.name; 11314 const tag = element.nodeName.toUpperCase(); 11315 const type = tag === "INPUT" ? element.type.toUpperCase() : ""; 11316 const value = element.value; 11317 if (name && !element.disabled && type !== "FILE") { 11318 if (tag === "SELECT" && element.multiple) { 11319 const options = [...element.options]; 11320 options.forEach((opt) => { 11321 if (opt.checked) { 11322 const value2 = opt.value; 11323 const parameter = encodeURIComponent(portletId + name) + "=" + encodeURIComponent(value2); 11324 parameters.push(parameter); 11325 } 11326 }); 11327 } else if (type !== "CHECKBOX" && type !== "RADIO" || element.checked) { 11328 const param = encodeURIComponent(portletId + name) + "=" + encodeURIComponent(value); 11329 parameters.push(param); 11330 } 11331 } 11332 } 11333 return parameters.join("&"); 11334 }; 11335 var encodeParameter = function(name, values) { 11336 let str = ""; 11337 if (Array.isArray(values)) { 11338 if (!values.length) { 11339 str += TOKEN_DELIM + encodeURIComponent(name) + VALUE_DELIM + VALUE_ARRAY_EMPTY; 11340 } else { 11341 values.forEach((value) => { 11342 str += TOKEN_DELIM + encodeURIComponent(name); 11343 if (value === null) { 11344 str += VALUE_DELIM + VALUE_NULL; 11345 } else { 11346 str += VALUE_DELIM + encodeURIComponent(value); 11347 } 11348 }); 11349 } 11350 } 11351 return str; 11352 }; 11353 var generateActionUrl = function(portletId, url, form) { 11354 const request = { 11355 credentials: "same-origin", 11356 method: "POST", 11357 url 11358 }; 11359 if (form) { 11360 const enctype = form.enctype; 11361 if (enctype === "multipart/form-data") { 11362 const formData = new FormData(form); 11363 request.body = formData; 11364 } else { 11365 const formAsString = encodeFormAsString(portletId, form); 11366 const method = form.method ? form.method.toUpperCase() : "GET"; 11367 if (method === "GET") { 11368 if (url.indexOf("?") >= 0) { 11369 url += `&${formAsString}`; 11370 } else { 11371 url += `?${formAsString}`; 11372 } 11373 request.url = url; 11374 } else { 11375 request.body = formAsString; 11376 request.headers = { 11377 "Content-Type": "application/x-www-form-urlencoded" 11378 }; 11379 } 11380 } 11381 } 11382 return request; 11383 }; 11384 var generateParameterString = function(pageRenderState2, portletId, name, type, group) { 11385 let str = ""; 11386 if (pageRenderState2.portlets && pageRenderState2.portlets[portletId]) { 11387 const portletData = pageRenderState2.portlets[portletId]; 11388 if (portletData && portletData.state && portletData.state.parameters) { 11389 const values = portletData.state.parameters[name]; 11390 if (values !== void 0) { 11391 if (type === PUBLIC_RENDER_PARAM_KEY) { 11392 str += encodeParameter(group, values); 11393 } else if (type === RENDER_PARAM_KEY) { 11394 str += encodeParameter( 11395 portletId + RENDER_PARAM_KEY + name, 11396 values 11397 ); 11398 } else { 11399 str += encodeParameter(portletId + name, values); 11400 } 11401 } 11402 } 11403 } 11404 return str; 11405 }; 11406 var generatePortletModeAndWindowStateString = function(pageRenderState2, portletId) { 11407 let str = ""; 11408 if (pageRenderState2.portlets) { 11409 const portletData = pageRenderState2.portlets[portletId]; 11410 if (portletData.state) { 11411 const state = portletData.state; 11412 str += TOKEN_DELIM + PORTLET_MODE_KEY + VALUE_DELIM + encodeURIComponent(state.portletMode); 11413 str += TOKEN_DELIM + WINDOW_STATE_KEY + VALUE_DELIM + encodeURIComponent(state.windowState); 11414 } 11415 } 11416 return str; 11417 }; 11418 var isParameterInStateEqual = function(pageRenderState2, portletId, state, name) { 11419 let result = false;
11420 if (pageRenderState2 && pageRenderState2.portlets) { 11421 const portletData = pageRenderState2.portlets[portletId]; 11422 if (state.parameters[name] && portletData.state.parameters[name]) { 11423 const newParameter = state.parameters[name]; 11424 const oldParameter = portletData.state.parameters[name]; 11425 result = isParameterEqual(newParameter, oldParameter); 11426 } 11427 } 11428 return result; 11429 }; 11430 var getUpdatedPublicRenderParameters = function(pageRenderState2, portletId, state) { 11431 const publicRenderParameters = {}; 11432 if (pageRenderState2 && pageRenderState2.portlets) { 11433 const portletData = pageRenderState2.portlets[portletId]; 11434 if (portletData && portletData.pubParms) { 11435 const portletPublicParameters = portletData.pubParms; 11436 const keys = Object.keys(portletPublicParameters); 11437 keys.forEach((key) => { 11438 if (!isParameterInStateEqual( 11439 pageRenderState2, 11440 portletId, 11441 state, 11442 key 11443 )) { 11444 const group = portletPublicParameters[key]; 11445 publicRenderParameters[group] = state.parameters[key]; 11446 } 11447 }); 11448 } 11449 } 11450 return publicRenderParameters; 11451 }; 11452 var isPublicParameter = function(pageRenderState2, portletId, name) { 11453 let result = false;
11454 if (pageRenderState2 && pageRenderState2.portlets) { 11455 const portletData = pageRenderState2.portlets[portletId]; 11456 if (portletData && portletData.pubParms) { 11457 const keys = Object.keys(portletData.pubParms); 11458 result = keys.includes(name); 11459 } 11460 } 11461 return result; 11462 }; 11463 var getUrl = function(pageRenderState2, type, portletId, parameters, cache, resourceId) { 11464 let cacheability = "cacheLevelPage"; 11465 let str = ""; 11466 let url = ""; 11467 if (pageRenderState2 && pageRenderState2.portlets) { 11468 if (type === "RENDER" && portletId === void 0) { 11469 portletId = null; 11470 } 11471 const portletData = pageRenderState2.portlets[portletId]; 11472 if (portletData) { 11473 if (type === "RESOURCE") { 11474 url = decodeURIComponent(portletData.encodedResourceURL); 11475 if (cache) { 11476 cacheability = cache; 11477 } 11478 url += TOKEN_DELIM + CACHE_LEVEL_KEY + VALUE_DELIM + encodeURIComponent(cacheability); 11479 if (resourceId) { 11480 url += TOKEN_DELIM + RESOURCE_ID_KEY + VALUE_DELIM + encodeURIComponent(resourceId); 11481 } 11482 } else if (type === "RENDER" && portletId !== null) { 11483 url = decodeURIComponent(portletData.encodedRenderURL); 11484 } else if (type === "RENDER") { 11485 url = decodeURIComponent(pageRenderState2.encodedCurrentURL); 11486 } else if (type === "ACTION") { 11487 url = decodeURIComponent(portletData.encodedActionURL); 11488 url += TOKEN_DELIM + HUB_ACTION_KEY + VALUE_DELIM + encodeURIComponent(AJAX_ACTION_VALUE); 11489 } else if (type === "PARTIAL_ACTION") { 11490 url = decodeURIComponent(portletData.encodedActionURL); 11491 url += TOKEN_DELIM + HUB_ACTION_KEY + VALUE_DELIM + encodeURIComponent(PARTIAL_ACTION_VALUE); 11492 } 11493 if (type !== "RESOURCE" || cacheability !== "cacheLevelFull") { 11494 if (portletId) { 11495 url += generatePortletModeAndWindowStateString( 11496 pageRenderState2, 11497 portletId 11498 ); 11499 } 11500 if (portletId) { 11501 str = ""; 11502 if (portletData.state && portletData.state.parameters) { 11503 const stateParameters = portletData.state.parameters; 11504 const keys = Object.keys(stateParameters); 11505 keys.forEach((key) => { 11506 if (!isPublicParameter( 11507 pageRenderState2, 11508 portletId, 11509 key 11510 )) { 11511 str += generateParameterString( 11512 pageRenderState2, 11513 portletId, 11514 key, 11515 RENDER_PARAM_KEY 11516 ); 11517 } 11518 }); 11519 url += str; 11520 } 11521 } 11522 if (pageRenderState2.prpMap) { 11523 str = ""; 11524 const publicRenderParameters = {}; 11525 const mapKeys = Object.keys(pageRenderState2.prpMap); 11526 mapKeys.forEach((mapKey) => { 11527 const groupKeys = Object.keys( 11528 pageRenderState2.prpMap[mapKey] 11529 ); 11530 groupKeys.forEach((groupKey) => { 11531 const groupName = pageRenderState2.prpMap[mapKey][groupKey]; 11532 const parts = groupName.split("|"); 11533 if (!Object.hasOwnProperty.call( 11534 publicRenderParameters, 11535 mapKey 11536 )) { 11537 publicRenderParameters[mapKey] = generateParameterString( 11538 pageRenderState2, 11539 parts[0], 11540 parts[1], 11541 PUBLIC_RENDER_PARAM_KEY, 11542 mapKey 11543 ); 11544 str += publicRenderParameters[mapKey]; 11545 } 11546 }); 11547 }); 11548 url += str; 11549 } 11550 } 11551 } 11552 } 11553 if (parameters) { 11554 str = ""; 11555 const parameterKeys = Object.keys(parameters); 11556 parameterKeys.forEach((parameterKey) => { 11557 str += encodeParameter( 11558 portletId + parameterKey, 11559 parameters[parameterKey] 11560 ); 11561 }); 11562 url += str; 11563 } 11564 return Promise.resolve(url); 11565 };
11566 var validateArguments = function(args = [], min = 0, max = 1, types = []) { 11567 if (args.length < min) { 11568 throw new TypeError( 11569 `Too few arguments provided: Number of arguments: ${args.length}` 11570 ); 11571 } else if (args.length > max) { 11572 throw new TypeError( 11573 `Too many arguments provided: ${[].join.call(args, ", ")}` 11574 ); 11575 } else if (Array.isArray(types)) { 11576 let i = Math.min(args.length, types.length) - 1; 11577 for (i; i >= 0; i--) { 11578 if (typeof args[i] !== types[i]) { 11579 throw new TypeError( 11580 `Parameter ${i} is of type ${typeof args[i]} rather than the expected type ${types[i]}` 11581 ); 11582 } 11583 if (args[i] === null || args[i] === void 0) { 11584 throw new TypeError(`Argument is ${typeof args[i]}`); 11585 } 11586 } 11587 } 11588 }; 11589 var validateForm = function(form) { 11590 if (!(form instanceof HTMLFormElement)) { 11591 throw new TypeError("Element must be an HTMLFormElement"); 11592 } 11593 const method = form.method ? form.method.toUpperCase() : void 0; 11594 if (method && method !== "GET" && method !== "POST") { 11595 throw new TypeError( 11596 `Invalid form method ${method}. Allowed methods are GET & POST` 11597 ); 11598 } 11599 const enctype = form.enctype; 11600 if (enctype && enctype !== "application/x-www-form-urlencoded" && enctype !== "multipart/form-data") { 11601 throw new TypeError( 11602 `Invalid form enctype ${enctype}. Allowed: 'application/x-www-form-urlencoded' & 'multipart/form-data'` 11603 ); 11604 } 11605 if (enctype && enctype === "multipart/form-data" && method !== "POST") { 11606 throw new TypeError( 11607 "Invalid method with multipart/form-data. Must be POST" 11608 ); 11609 } 11610 if (!enctype || enctype === "application/x-www-form-urlencoded") { 11611 const l = form.elements.length; 11612 for (let i = 0; i < l; i++) { 11613 if (form.elements[i].nodeName.toUpperCase() === "INPUT" && form.elements[i].type.toUpperCase() === "FILE") { 11614 throw new TypeError( 11615 "Must use enctype = 'multipart/form-data' with input type FILE." 11616 ); 11617 } 11618 } 11619 } 11620 }; 11621 var validateParameters = function(parameters) { 11622 if (!(parameters !== void 0 && parameters !== null)) { 11623 throw new TypeError(`The parameter object is: ${typeof parameters}`); 11624 } 11625 const keys = Object.keys(parameters); 11626 keys.forEach((key) => { 11627 if (!Array.isArray(parameters[key])) { 11628 throw new TypeError(`${key} parameter is not an array`); 11629 } 11630 if (!parameters[key].length) { 11631 throw new TypeError(`${key} parameter is an empty array`); 11632 } 11633 }); 11634 }; 11635 var validatePortletId = function(pageRenderState2 = {}, portletId = "") { 11636 return pageRenderState2.portlets && Object.keys(pageRenderState2.portlets).includes(portletId); 11637 }; 11638 var validateState = function(state = {}, portletData = {}) { 11639 validateParameters(state.parameters); 11640 const portletMode = state.portletMode; 11641 if (typeof portletMode !== "string") { 11642 throw new TypeError( 11643 `Invalid parameters. portletMode is ${typeof portletMode}` 11644 ); 11645 } else { 11646 const allowedPortletModes = portletData.allowedPM; 11647 if (!allowedPortletModes.includes(portletMode.toLowerCase())) { 11648 throw new TypeError( 11649 `Invalid portletMode=${portletMode} is not in ${allowedPortletModes}` 11650 ); 11651 } 11652 } 11653 const windowState = state.windowState; 11654 if (typeof windowState !== "string") { 11655 throw new TypeError( 11656 `Invalid parameters. windowState is ${typeof windowState}` 11657 ); 11658 } else { 11659 const allowedWindowStates = portletData.allowedWS; 11660 if (!allowedWindowStates.includes(windowState.toLowerCase())) { 11661 throw new TypeError( 11662 `Invalid windowState=${windowState} is not in ${allowedWindowStates}` 11663 ); 11664 } 11665 } 11666 }; 11667 11668
11668// src/main/resources/META-INF/resources/liferay/portlet/PortletInit.es.js 11669 var doHistory = window.history && window.history.pushState; 11670 var portletRegex = "^portlet[.].*"; 11671 var busy = false; 11672 var eventListeners = {}; 11673 var eventListenersQueue = []; 11674 var pageRenderState; 11675 var PortletInit = class { 11676 constructor(portletId) { 11677 this._portletId = portletId; 11678 this.constants = { ...portlet_constants_es_default }; 11679 if (!pageRenderState) { 11680 pageRenderState = global.portlet.data.pageRenderState; 11681 this._updateHistory(true); 11682 } 11683 this.portletModes = pageRenderState.portlets[this._portletId].allowedPM.slice(0); 11684 this.windowStates = pageRenderState.portlets[this._portletId].allowedWS.slice(0); 11685 } 11686 /** 11687 * Performs the actual action. 11688 * @param {Object} parameters Additional parameters to be set. 11689 * @param {HTMLFormElement} element Form to be submitted. May be <code>null</code>. 11690 * @protected 11691 * @review 11692 */ 11693 _executeAction(parameters, element) { 11694 return new Promise((resolve, reject) => { 11695 getUrl(pageRenderState, "ACTION", this._portletId, parameters).then( 11696 (url) => { 11697 const options = generateActionUrl( 11698 this._portletId, 11699 url, 11700 element 11701 ); 11702 defaultFetch(options.url, options).then((res) => res.text()).then((text) => { 11703 const updatedIds = this._updatePageStateFromString( 11704 text, 11705 this._portletId 11706 ); 11707 resolve(updatedIds); 11708 }).catch((error) => { 11709 reject(error); 11710 }); 11711 } 11712 ); 11713 }); 11714 } 11715 /** 11716 * Returns true if an onStateChange listener is registered for the portlet. 11717 * @memberof PortletInit 11718 * @param {string} portletId The portlet ID. 11719 * @return {boolean} Returns true if a listener is registered. 11720 * @protected 11721 * @review 11722 */ 11723 _hasListener(portletId) { 11724 const eventListenerPortletIds = Object.keys(eventListeners).map( 11725 (key) => eventListeners[key].id 11726 ); 11727 return eventListenerPortletIds.includes(portletId); 11728 } 11729 /** 11730 * Sends an onError event to all registered error event handlers for a given 11731 * portlet. 11732 * @memberof PortletInit 11733 * @param {string} portletId The portlet ID. 11734 * @param {string} err The error message. 11735 * @protected 11736 * @review 11737 */ 11738 _reportError(portletId, error) { 11739 Object.keys(eventListeners).map((key) => { 11740 const listener = eventListeners[key]; 11741 if (listener.id === portletId && listener.type === "portlet.onError") { 11742 setTimeout(() => { 11743 listener.handler("portlet.onError", error); 11744 }); 11745 } 11746 return false; 11747 }); 11748 } 11749 /** 11750 * Callback function that must be called after a partial action has been 11751 * started. 11752 * 11753 * The page state is generated by the portal and transmitted to the client by 11754 * the portlet. The portlet client that initiated the partial action must 11755 * pass the page state string to this function. 11756 * 11757 * The callback should only be called once to conclude a partial action sequence. 11758 * @memberof PortletInit 11759 * @param {string} portletId The portlet ID. 11760 * @param {string} updateString The new page state in string form. 11761 * @throws {TypeError} Thrown if the parameter is not a string. 11762 * @protected 11763 * @review 11764 */ 11765 _setPageState(portletId, updateString) { 11766 if (typeof updateString !== "string") { 11767 throw new TypeError(`Invalid update string: ${updateString}`); 11768 } 11769 this._updatePageState(updateString, portletId).then( 11770 (updatedIds) => { 11771 this._updatePortletStates(updatedIds); 11772 }, 11773 (error) => { 11774 busy = false; 11775 this._reportError(portletId, error); 11776 } 11777 ); 11778 } 11779 /** 11780 * Sets state for the portlet. 11781 * returns array of IDs for portlets that were affected by the change, 11782 * taking into account the public render parameters. 11783 * @memberof PortletInit 11784 * @param {Object} state The state to be set. 11785 * @return {Array} 11786 * @protected 11787 * @review 11788 */ 11789 _setState(state) { 11790 const publicRenderParameters = getUpdatedPublicRenderParameters( 11791 pageRenderState, 11792 this._portletId, 11793 state 11794 ); 11795 const updatedIds = []; 11796 const parameterKeys = Object.keys(publicRenderParameters); 11797 parameterKeys.forEach((parameterKey) => { 11798 const newValue = publicRenderParameters[parameterKey]; 11799 const groupMap = pageRenderState.prpMap[parameterKey]; 11800 const groupKeys = Object.keys(groupMap); 11801 groupKeys.forEach((groupKey) => { 11802 if (groupKey !== this._portletId) { 11803 const parts = groupMap[groupKey].split("|"); 11804 const portletId2 = parts[0]; 11805 const parameterName = parts[1]; 11806 if (newValue === void 0) { 11807 delete pageRenderState.portlets[portletId2].state.parameters[parameterName]; 11808 } else { 11809 pageRenderState.portlets[portletId2].state.parameters[parameterName] = [...newValue]; 11810 } 11811 updatedIds.push(portletId2); 11812 } 11813 }); 11814 }); 11815 const portletId = this._portletId; 11816 pageRenderState.portlets[portletId].state = state; 11817 updatedIds.push(portletId); 11818 updatedIds.forEach((updatedId) => { 11819 pageRenderState.portlets[updatedId].renderData.content = null; 11820 }); 11821 this._updateHistory(); 11822 return Promise.resolve(updatedIds); 11823 } 11824 /** 11825 * Sets up for the action. 11826 * @memberof PortletInit 11827 * @param {Object} parameters Additional parameters. May be <code>null</code>. 11828 * @param {HTMLFormElement} element Form to be submitted May be <code>null</code>. 11829 * @throws {AccessDeniedException} Thrown if a blocking operation is already in progress. 11830 * @throws {NotInitializedException} Thrown if a portlet ID is provided, but no onStateChange 11831 * listener has been registered. 11832 * @protected 11833 * @review 11834 */ 11835 _setupAction(parameters, element) { 11836 if (this.isInProgress()) { 11837 throw { 11838 message: "Operation is already in progress", 11839 name: "AccessDeniedException" 11840 }; 11841 } 11842 if (!this._hasListener(this._portletId)) { 11843 throw { 11844 message: `No onStateChange listener registered for portlet: ${this._portletId}`, 11845 name: "NotInitializedException" 11846 }; 11847 } 11848 busy = true; 11849 return this._executeAction(parameters, element).then( 11850 (updatedIds) => { 11851 return this._updatePortletStates(updatedIds).then( 11852 (updatedIds2) => { 11853 busy = false;
11854 return updatedIds2; 11855 } 11856 ); 11857 }, 11858 (error) => { 11859 busy = false; 11860 this._reportError(this._portletId, error); 11861 } 11862 ); 11863 } 11864 /** 11865 * Called when the page state has been updated to allow 11866 * the browser history to be taken care of. 11867 * @memberof PortletInit 11868 * @param {boolean} replace Replace the state rather than pushing. 11869 * @protected 11870 * @review 11871 */ 11872 _updateHistory(replace) { 11873 if (doHistory) { 11874 getUrl(pageRenderState, "RENDER", null, {}).then((url) => { 11875 const token = JSON.stringify(pageRenderState); 11876 if (replace) { 11877 history.replaceState(token, ""); 11878 } else { 11879 try { 11880 history.pushState(token, "", url); 11881 } catch (error) { 11882 } 11883 } 11884 }); 11885 } 11886 } 11887 /** 11888 * Update page state passed in after partial action. The list of 11889 * ID's of updated portlets is passed back through a promise in order 11890 * to decouple the layers. 11891 * 11892 * @memberof PortletInit 11893 * @param {string} updateString The updated render state string. 11894 * @review 11895 */ 11896 _updatePageState(updateString) { 11897 return new Promise((resolve, reject) => { 11898 try { 11899 const updatedIds = this._updatePageStateFromString( 11900 updateString, 11901 this._portletId 11902 ); 11903 resolve(updatedIds); 11904 } catch (error) { 11905 reject( 11906 new Error(`Partial Action decode status: ${error.message}`) 11907 ); 11908 } 11909 }); 11910 } 11911 /** 11912 * Updates page state from string and returns array of portlet IDs 11913 * to be updated. 11914 * 11915 * @memberof PortletInit 11916 * @param {string} updateString The update string. 11917 * @param {string} portletId The portlet ID. 11918 * @protected 11919 * @review 11920 */ 11921 _updatePageStateFromString(updateString, portletId) { 11922 const portlets = decodeUpdateString(pageRenderState, updateString); 11923 const updatedIds = []; 11924 let stateUpdated = false; 11925 const entries = Object.entries(portlets); 11926 entries.forEach(([key, portletData]) => { 11927 pageRenderState.portlets[key] = portletData; 11928 updatedIds.push(key); 11929 stateUpdated = true; 11930 }); 11931 if (stateUpdated && portletId) { 11932 this._updateHistory(); 11933 } 11934 return updatedIds; 11935 } 11936 /** 11937 *
11938 * Accepts an object containing changed render states. 11939 * Updates the state for each portlet present. 11940 * 11941 * @memberof PortletInit 11942 * @param {Array} updatedIds Array of portlet IDs to be updated. 11943 * @return {Promsise.<string>} 11944 * @protected 11945 * @review 11946 */ 11947 _updatePortletStates(updatedIds) { 11948 return new Promise((resolve) => { 11949 if (!updatedIds.length) { 11950 busy = false; 11951 } else { 11952 updatedIds.forEach((updatedId) => { 11953 this._updateStateForPortlet(updatedId); 11954 }); 11955 } 11956 resolve(updatedIds); 11957 }); 11958 } 11959 /** 11960 * Updates the page render state 11961 * 11962 * @memberof PortletInit 11963 * @param {Object} state The new state to be set. 11964 * @protected 11965 * @review 11966 */ 11967 _updateState(state) { 11968 if (busy) { 11969 throw { 11970 message: "Operation in progress", 11971 name: "AccessDeniedException" 11972 }; 11973 } else if (!this._hasListener(this._portletId)) { 11974 throw { 11975 message: `No onStateChange listener registered for portlet: ${this._portletId}`, 11976 name: "NotInitializedException" 11977 }; 11978 } 11979 busy = true; 11980 this._setState(state).then((updatedIds) => { 11981 this._updatePortletStates(updatedIds); 11982 }).catch((error) => { 11983 busy = false; 11984 this._reportError(this._portletId, error); 11985 }); 11986 } 11987 /** 11988 * Calls the portlet onStateChange method in an asynchronous manner in order 11989 * to decouple the public API. This method is intended for use after 11990 * portlet client registers an onStateChange listener. 11991 * 11992 * @memberof PortletInit 11993 * @param {string} portletId The portlet ID. 11994 * @protected 11995 * @review 11996 */ 11997 _updateStateForPortlet(portletId) { 11998 const updateQueueIds = eventListenersQueue.map((item) => item.handle); 11999 const entries = Object.entries(eventListeners); 12000 entries.forEach(([key, eventData]) => { 12001 if (eventData.type !== "portlet.onStateChange") { 12002 return; 12003 } 12004 if (eventData.id === portletId && !updateQueueIds.includes(key)) { 12005 eventListenersQueue.push(eventData); 12006 } 12007 }); 12008 if (eventListenersQueue.length) { 12009 setTimeout(() => { 12010 busy = true; 12011 while (eventListenersQueue.length) { 12012 const eventData = eventListenersQueue.shift(); 12013 const handler = eventData.handler; 12014 const id = eventData.id; 12015 if (!pageRenderState.portlets[id]) { 12016 continue; 12017 } 12018 const renderData = pageRenderState.portlets[id].renderData; 12019 const renderState = new RenderState_es_default( 12020 pageRenderState.portlets[id].state 12021 ); 12022 if (renderData && renderData.content) { 12023 handler( 12024 "portlet.onStateChange", 12025 renderState, 12026 renderData 12027 ); 12028 } else { 12029 handler("portlet.onStateChange", renderState); 12030 } 12031 } 12032 busy = false; 12033 }); 12034 } 12035 } 12036 /** 12037 * Initiates a portlet action using the specified action parameters and 12038 * element arguments. 12039 * 12040 * @memberof PortletInit 12041 * @param {PortletParameters} parameters Action parameters to be added to the URL 12042 * @param {HTMLFormElement} element DOM element of form to be submitted 12043 * @return {Promise} A Promise object that is resolved with no argument when the action request has completed. 12044 * @throws {TypeError} Thrown if the input parameters are invalid 12045 * @throws {AccessDeniedException} Thrown if a blocking operation is already in progress. 12046 * @throws {NotInitializedException} Thrown if a portlet ID is provided, but no onStateChange listener has been registered. 12047 * @review 12048 */ 12049 action(...args) { 12050 let actionParameters = null; 12051 let argCount = 0; 12052 let element = null; 12053 args.forEach((arg) => { 12054 if (arg instanceof HTMLFormElement) { 12055 if (element !== null) { 12056 throw new TypeError( 12057 `Too many [object HTMLFormElement] arguments: ${arg}, ${element}` 12058 ); 12059 } 12060 element = arg; 12061 } else if (isObject(arg)) { 12062 validateParameters(arg); 12063 if (actionParameters !== null) { 12064 throw new TypeError("Too many parameters arguments"); 12065 } 12066 actionParameters = arg;
12067 } else if (arg !== void 0) { 12068 const type = Object.prototype.toString.call(arg); 12069 throw new TypeError( 12070 `Invalid argument type. Argument ${argCount + 1} is of type ${type}` 12071 ); 12072 } 12073 argCount++; 12074 }); 12075 if (element) { 12076 validateForm(element); 12077 } 12078 return this._setupAction(actionParameters, element).then((val) => { 12079 Promise.resolve(val); 12080 }).catch((error) => { 12081 Promise.reject(error); 12082 }); 12083 } 12084 /** 12085 * Adds a listener function for specified event type. 12086 * 12087 * @memberof PortletInit 12088 * @param {string} type The type of listener 12089 * @param {function} handler Function called when event occurs 12090 * @return {Object} A handle that can be used to remove the event listener 12091 * @throws {TypeError} Thrown if the input parameters are invalid 12092 * @review 12093 */ 12094 addEventListener(type, handler) { 12095 if (arguments.length > 2) { 12096 throw new TypeError( 12097 "Too many arguments passed to addEventListener" 12098 ); 12099 } 12100 if (typeof type !== "string" || typeof handler !== "function") { 12101 throw new TypeError("Invalid arguments passed to addEventListener"); 12102 } 12103 const id = this._portletId; 12104 if (type.startsWith("portlet.")) { 12105 if (type !== "portlet.onStateChange" && type !== "portlet.onError") { 12106 throw new TypeError( 12107 `The system event type is invalid: ${type}` 12108 ); 12109 } 12110 } 12111 const handle = v4_default(); 12112 const listener = { 12113 handle, 12114 handler, 12115 id, 12116 type 12117 }; 12118 eventListeners[handle] = listener; 12119 if (type === "portlet.onStateChange") { 12120 this._updateStateForPortlet(this._portletId); 12121 } 12122 return handle; 12123 } 12124 /** 12125 * Returns a promise for a resource URL with parameters set appropriately 12126 * for the page state according to the resource parameters, cacheability 12127 * option, and resource ID provided. 12128 * @memberof PortletInit 12129 * @param {Object} parameters Resource parameters to be added to the URL 12130 * @param {string} cache Cacheability option. The strings defined under 12131 * {@link PortletConstants} should be used to specifiy cacheability. 12132 * @param {string} resourceId Resource ID. 12133 * @return {Promise} A Promise object. Returns a string representing the 12134 * resource URL on successful resolution. Returns an Error object containing 12135 * a descriptive message on failure. 12136 * @throws {TypeError} Thrown if the input parameters are invalid 12137 * @review 12138 */ 12139 createResourceUrl(parameters, cache, resourceId) { 12140 if (arguments.length > 3) { 12141 throw new TypeError("Too many arguments. 3 arguments are allowed."); 12142 } 12143 if (parameters) { 12144 if (isObject(parameters)) { 12145 validateParameters(parameters); 12146 } else { 12147 throw new TypeError( 12148 "Invalid argument type. Resource parameters must be a parameters object." 12149 ); 12150 } 12151 } 12152 let cacheability = null; 12153 if (cache) { 12154 if (typeof cache === "string") { 12155 if (cache === "cacheLevelPage" || cache === "cacheLevelPortlet" || cache === "cacheLevelFull") { 12156 cacheability = cache; 12157 } else { 12158 throw new TypeError( 12159 `Invalid cacheability argument: ${cache}` 12160 ); 12161 } 12162 } else { 12163 throw new TypeError( 12164 "Invalid argument type. Cacheability argument must be a string." 12165 ); 12166 } 12167 } 12168 if (!cacheability) { 12169 cacheability = "cacheLevelPage"; 12170 } 12171 if (resourceId && typeof resourceId !== "string") { 12172 throw new TypeError( 12173 "Invalid argument type. Resource ID argument must be a string." 12174 ); 12175 } 12176 return getUrl( 12177 pageRenderState, 12178 "RESOURCE", 12179 this._portletId, 12180 parameters, 12181 cacheability, 12182 resourceId 12183 ); 12184 } 12185 /** 12186 * Dispatches a client event. 12187 * @memberof PortletInit 12188 * @param {string} type The type of listener. 12189 * @param {any} payload The payload to be delivered. 12190 * @return {number} The number of events queued for delivery. 12191 * @throws {TypeError} Thrown if the type is a system event type. 12192 * @review 12193 */ 12194 dispatchClientEvent(type, payload) { 12195 validateArguments(arguments, 2, 2, ["string"]); 12196 if (type.match(new RegExp(portletRegex))) {
12197 throw new TypeError("The event type is invalid: " + type); 12198 } 12199 return Object.keys(eventListeners).reduce((amount, key) => { 12200 const listener = eventListeners[key]; 12201 if (type.match(listener.type)) { 12202 listener.handler(type, payload); 12203 amount++; 12204 } 12205 return amount; 12206 }, 0); 12207 } 12208 /** 12209 * Tests whether a blocking operation is in progress. 12210 * @memberof PortletInit 12211 * @return {boolean} 12212 * @review 12213 */ 12214 isInProgress() { 12215 return busy; 12216 } 12217 /** 12218 * Creates and returns a new PortletParameters object. 12219 * @memberof PortletInit 12220 * @param {?Object} optParameters The optional parameters to be copied. 12221 * @return {Object} The new parameters object. 12222 * @review 12223 */ 12224 newParameters(optParameters = {}) { 12225 const newParameters = {}; 12226 Object.keys(optParameters).forEach((key) => { 12227 if (Array.isArray(optParameters[key])) { 12228 newParameters[key] = [...optParameters[key]]; 12229 } 12230 }); 12231 return newParameters; 12232 } 12233 /** 12234 * Creates and returns a new RenderState object. 12235 * @memberof PortletInit 12236 * @param {?RenderState} optState An optional RenderState object to be copied. 12237 * @return {RenderState} The new RenderState object. 12238 * @review 12239 */ 12240 newState(optState) { 12241 return new RenderState_es_default(optState); 12242 } 12243 /** 12244 * Removes a previously added listener function designated by the handle. 12245 * The handle must be the same object previously returned by the 12246 * addEventListener function. 12247 * @memberof PortletInit 12248 * @param {Object} handle The handle of the listener to be removed. 12249 * @throws {TypeError} Thrown if the input parameters are invalid. 12250 * @throws {AccessDeniedException} Thrown if the event listener associated 12251 * with this handle was registered by a different portlet. 12252 * @review 12253 */ 12254 removeEventListener(handle) { 12255 if (arguments.length > 1) { 12256 throw new TypeError( 12257 "Too many arguments passed to removeEventListener" 12258 ); 12259 } 12260 if (handle === void 0 || handle === null) { 12261 throw new TypeError( 12262 `The event handle provided is ${typeof handle}` 12263 ); 12264 } 12265 let found = false; 12266 if (isObject(eventListeners[handle])) { 12267 if (eventListeners[handle].id === this._portletId) { 12268 delete eventListeners[handle]; 12269 const l = eventListenersQueue.length; 12270 for (let i = 0; i < l; i++) { 12271 const eventData = eventListenersQueue[i]; 12272 if (eventData && eventData.handle === handle) { 12273 eventListenersQueue.splice(i, 1); 12274 } 12275 } 12276 found = true; 12277 } 12278 } 12279 if (!found) { 12280 throw new TypeError( 12281 "The event listener handle doesn't match any listeners." 12282 ); 12283 } 12284 } 12285 /** 12286 * Sets the render state, which consists of the public and private render 12287 * parameters, the portlet mode, and the window state. 12288 * @memberof PortletInit 12289 * @param {RenderState} state The new state to be set. 12290 * @throws {TypeError} Thrown if the input parameters are invalid. 12291 * @throws {AccessDeniedException} Thrown if a blocking operation is already in progress. 12292 * @throws {NotInitializedException} Thrown if a portlet ID is provided, but no onStateChange 12293 * listener has been registered. 12294 * @review 12295 */ 12296 setRenderState(state) { 12297 validateArguments(arguments, 1, 1, ["object"]); 12298 if (pageRenderState.portlets && pageRenderState.portlets[this._portletId]) { 12299 const portletData = pageRenderState.portlets[this._portletId]; 12300 validateState(state, portletData); 12301 this._updateState(state); 12302 } 12303 } 12304 /** 12305 * Starts partial action processing and returns a {@link PartialActionInit} object to the caller. 12306 * @memberof PortletInit 12307 * @param {PortletParameters} actionParameters Action parameters to be added to the URL. 12308 * @return {Promise} A Promise. Returns a {@link PortletActionInit} object 12309 * containing a partial action URL and the _setPageState callback function
12310 * on successful resolution. Returns an Error object containing a 12311 * descriptive message on failure. 12312 * @throws {TypeError} Thrown if the input parameters are invalid. 12313 * @throws {AccessDeniedException} Thrown if a blocking operation is already in progress. 12314 * @throws {NotInitializedException} Thrown if a portlet ID is provided, but 12315 * no onStateChange listener has been registered. 12316 * @review 12317 */ 12318 startPartialAction(actionParameters) { 12319 const instance = this; 12320 let parameters = null; 12321 if (arguments.length > 1) { 12322 throw new TypeError("Too many arguments. 1 arguments are allowed"); 12323 } else if (actionParameters !== void 0) { 12324 if (isObject(actionParameters)) { 12325 validateParameters(actionParameters); 12326 parameters = actionParameters; 12327 } else { 12328 throw new TypeError( 12329 `Invalid argument type. Argument is of type ${typeof actionParameters}` 12330 ); 12331 } 12332 } 12333 if (busy === true) { 12334 throw { 12335 message: "Operation in progress", 12336 name: "AccessDeniedException" 12337 }; 12338 } else if (!this._hasListener(this._portletId)) { 12339 throw { 12340 message: `No onStateChange listener registered for portlet: ${this._portletId}`, 12341 name: "NotInitializedException" 12342 }; 12343 } 12344 busy = true; 12345 const partialActionInitObject = { 12346 setPageState(updateString) { 12347 instance._setPageState(instance._portletId, updateString); 12348 }, 12349 url: "" 12350 }; 12351 return getUrl( 12352 pageRenderState, 12353 "PARTIAL_ACTION", 12354 this._portletId, 12355 parameters 12356 ).then((url) => { 12357 partialActionInitObject.url = url; 12358 return partialActionInitObject; 12359 }); 12360 } 12361 }; 12362 var PortletInit_es_default = PortletInit; 12363 12364
12364// src/main/resources/META-INF/resources/liferay/portlet/register.es.js 12365 var register = function(portletId) { 12366 validateArguments(arguments, 1, 1, ["string"]); 12367 const pageRenderState2 = global.portlet.data.pageRenderState; 12368 return new Promise((resolve, reject) => { 12369 if (validatePortletId(pageRenderState2, portletId)) { 12370 resolve(new PortletInit_es_default(portletId)); 12371 } else { 12372 reject(new Error("Invalid portlet ID")); 12373 } 12374 }); 12375 }; 12376 var register_es_default = register; 12377 12378
12378// src/main/resources/META-INF/resources/liferay/portlet/portlet.es.js 12379 function minimizePortlet(portletSelector, trigger, options) { 12380 options = { 12381 doAsUserId: themeDisplay.getDoAsUserIdEncoded(), 12382 plid: themeDisplay.getPlid(), 12383 ...options 12384 }; 12385 const portlet = document.querySelector(portletSelector); 12386 if (portlet) { 12387 const content = portlet.querySelector(".portlet-content-container"); 12388 if (content) { 12389 const minimized = content.classList.contains("d-none"); 12390 if (minimized) { 12391 content.classList.remove("d-none"); 12392 portlet.classList.remove("portlet-minimized"); 12393 } else { 12394 content.classList.add("d-none"); 12395 portlet.classList.add("portlet-minimized"); 12396 } 12397 if (trigger) { 12398 const title = minimized ? 'Minimera' : 'à terställa'; 12399 trigger.setAttribute("alt", title); 12400 trigger.setAttribute("title", title); 12401 trigger.innerHTML = title; 12402 const icon = trigger.querySelector("i"); 12403 if (icon) { 12404 icon.classList.remove("icon-minus", "icon-resize-vertical"); 12405 if (minimized) { 12406 icon.classList.add("icon-minus"); 12407 icon.classList.remove("icon-resize-vertical"); 12408 } else { 12409 icon.classList.add("icon-resize-vertical"); 12410 icon.classList.remove("icon-minus"); 12411 } 12412 } 12413 } 12414 const portletId = getPortletId(portlet.id); 12415 const formData = objectToFormData({ 12416 cmd: "minimize", 12417 doAsUserId: options.doAsUserId, 12418 p_auth: Liferay.authToken, 12419 p_l_id: options.plid, 12420 p_p_id: portletId, 12421 p_p_restore: minimized, 12422 p_v_l_s_g_id: themeDisplay.getSiteGroupId() 12423 }); 12424 defaultFetch(themeDisplay.getPathMain() + "/portal/update_layout", { 12425 body: formData, 12426 method: "POST" 12427 }).then((response) => { 12428 if (response.ok && minimized) { 12429 const params = { 12430 doAsUserId: options.doAsUserId, 12431 p_l_id: options.plid, 12432 p_p_boundary: false, 12433 p_p_id: portletId, 12434 p_p_isolated: true 12435 }; 12436 defaultFetch( 12437 createPortletURL( 12438 themeDisplay.getPathMain() + "/portal/render_portlet", 12439 params 12440 ) 12441 ).then((response2) => response2.text()).then((response2) => { 12442 const range = document.createRange(); 12443 range.selectNode(portlet); 12444 portlet.innerHTML = ""; 12445 const fragment = range.createContextualFragment(response2); 12446 portlet.appendChild(fragment); 12447 }).catch((error) => { 12448 if (true) { 12449 console.error(error); 12450 } 12451 }); 12452 } 12453 }).catch((error) => { 12454 if (true) { 12455 console.error(error); 12456 } 12457 }); 12458 } 12459 } 12460 } 12461 var portlet_es_default = { 12462 register: register_es_default 12463 }; 12464 12465
12465// src/main/resources/META-INF/resources/liferay/events/Disposable.js 12466 var Disposable = class { 12467 /** 12468 * Disposable constructor 12469 */ 12470 constructor() { 12471 this._disposed = false; 12472 } 12473 /** 12474 * Disposes of this instance's object references. Calls `disposeInternal`. 12475 */ 12476 dispose() { 12477 if (!this._disposed) { 12478 this.disposeInternal(); 12479 this._disposed = true; 12480 } 12481 } 12482 /** 12483 * Subclasses should override this method to implement any specific 12484 * disposing logic (like clearing references and calling `dispose` on other 12485 * disposables). 12486 */ 12487 disposeInternal() { 12488 } 12489 /** 12490 * Checks if this instance has already been disposed. 12491 * @return {boolean} 12492 */ 12493 isDisposed() { 12494 return this._disposed; 12495 } 12496 }; 12497 var Disposable_default = Disposable; 12498 12499
12499// src/main/resources/META-INF/resources/liferay/events/EventHandle.js 12500 var EventHandle = class extends Disposable_default { 12501 /** 12502 * EventHandle constructor 12503 * @param {!EventEmitter} emitter Emitter the event was subscribed to. 12504 * @param {string} event The name of the event that was subscribed to. 12505 * @param {!Function} listener The listener subscribed to the event. 12506 */ 12507 constructor(emitter, event, listener) { 12508 super(); 12509 this._emitter = emitter; 12510 this._event = event; 12511 this._listener = listener; 12512 } 12513 /** 12514 * Disposes of this instance's object references. 12515 * @override 12516 */ 12517 disposeInternal() { 12518 this.removeListener(); 12519 this._emitter = null; 12520 this._listener = null; 12521 } 12522 /** 12523 * Removes the listener subscription from the emitter. 12524 */ 12525 removeListener() { 12526 if (!this._emitter.isDisposed()) { 12527 this._emitter.removeListener(this._event, this._listener); 12528 } 12529 } 12530 }; 12531 var EventHandle_default = EventHandle; 12532 12533
12533// src/main/resources/META-INF/resources/liferay/events/EventEmitter.js 12534 var singleArray = [0]; 12535 var EventEmitter = class extends Disposable_default { 12536 /** 12537 * EventEmitter constructor 12538 */ 12539 constructor() { 12540 super(); 12541 this._events = null; 12542 this._listenerHandlers = null; 12543 this._shouldUseFacade = false; 12544 } 12545 /** 12546 * Adds a handler to given holder variable. If the holder doesn't have a 12547 * value yet, it will receive the handler directly. If the holder is an array, 12548 * the value will just be added to it. Otherwise, the holder will be set to a 12549 * new array containing its previous value plus the new handler. 12550 * @param {*} holder 12551 * @param {!function()|Object} handler 12552 * @return {*} The holder's new value. 12553 * @protected 12554 */ 12555 _addHandler(holder, handler) { 12556 if (!holder) { 12557 holder = handler; 12558 } else { 12559 if (!Array.isArray(holder)) { 12560 holder = [holder]; 12561 } 12562 holder.push(handler); 12563 } 12564 return holder; 12565 } 12566 /** 12567 * Adds a listener to the end of the listeners array for the specified events. 12568 * @param {!(Array|string)} event 12569 * @param {!Function} listener 12570 * @param {boolean} defaultListener Flag indicating if this listener is a default 12571 * action for this event. Default actions are run last, and only if no previous 12572 * listener call `preventDefault()` on the received event facade. 12573 * @return {!EventHandle} Can be used to remove the listener. 12574 */ 12575 addListener(event, listener, defaultListener) { 12576 this._validateListener(listener); 12577 const events = this._toEventsArray(event); 12578 for (let i = 0; i < events.length; i++) { 12579 this._addSingleListener(events[i], listener, defaultListener); 12580 } 12581 return new EventHandle_default(this, event, listener); 12582 } 12583 /** 12584 * Adds a listener to the end of the listeners array for a single event. 12585 * @param {string} event 12586 * @param {!Function} listener 12587 * @param {boolean} defaultListener Flag indicating if this listener is a default 12588 * action for this event. Default actions are run last, and only if no previous 12589 * listener call `preventDefault()` on the received event facade. 12590 * @param {Function=} origin The original function that was added as a 12591 * listener, if there is any. 12592 * @protected 12593 */ 12594 _addSingleListener(event, listener, defaultListener, origin) { 12595 this._runListenerHandlers(event); 12596 if (defaultListener || origin) { 12597 listener = { 12598 default: defaultListener, 12599 fn: listener, 12600 origin 12601 }; 12602 } 12603 this._events = this._events || {}; 12604 this._events[event] = this._addHandler(this._events[event], listener); 12605 } 12606 /** 12607 * Builds facade for the given event. 12608 * @param {string} event 12609 * @return {Object} 12610 * @protected 12611 */ 12612 _buildFacade(event) { 12613 if (this.getShouldUseFacade()) { 12614 const facade = { 12615 preventDefault() { 12616 facade.preventedDefault = true; 12617 }, 12618 target: this, 12619 type: event 12620 }; 12621 return facade; 12622 } 12623 } 12624 /** 12625 * Disposes of this instance's object references. 12626 * @override 12627 */ 12628 disposeInternal() { 12629 this._events = null; 12630 } 12631 /** 12632 * Execute each of the listeners in order with the supplied arguments. 12633 * @param {string} event 12634 * @param {*} opt_args [arg1], [arg2], [...] 12635 * @return {boolean} Returns true if event had listeners, false otherwise. 12636 */ 12637 emit(event) { 12638 const listeners = this._getRawListeners(event); 12639 if (!listeners.length) { 12640 return false; 12641 } 12642 const args = Array.prototype.slice.call(arguments, 1); 12643 this._runListeners(listeners, args, this._buildFacade(event)); 12644 return true; 12645 } 12646 /** 12647 * Gets the listener objects for the given event, if there are any. 12648 * @param {string} event 12649 * @return {!Array} 12650 * @protected 12651 */ 12652 _getRawListeners(event) { 12653 const directListeners = toArray2(this._events && this._events[event]); 12654 return directListeners.concat( 12655 toArray2(this._events && this._events["*"]) 12656 ); 12657 } 12658 /** 12659 * Gets the configuration option which determines if an event facade should 12660 * be sent as a param of listeners when emitting events. If set to true, the 12661 * facade will be passed as the first argument of the listener. 12662 * @return {boolean} 12663 */ 12664 getShouldUseFacade() { 12665 return this._shouldUseFacade; 12666 } 12667 /** 12668 * Returns an array of listeners for the specified event. 12669 * @param {string} event 12670 * @return {Array} Array of listeners. 12671 */ 12672 listeners(event) { 12673 return this._getRawListeners(event).map( 12674 (listener) => listener.fn ? listener.fn : listener 12675 ); 12676 } 12677 /** 12678 * Adds a listener that will be invoked a fixed number of times for the 12679 * events. After each event is triggered the specified amount of times, the 12680 * listener is removed for it. 12681 * @param {!(Array|string)} event 12682 * @param {number} amount The amount of times this event should be listened 12683 * to. 12684 * @param {!Function} listener 12685 * @return {!EventHandle} Can be used to remove the listener. 12686 */ 12687 many(event, amount, listener) { 12688 const events = this._toEventsArray(event); 12689 for (let i = 0; i < events.length; i++) { 12690 this._many(events[i], amount, listener); 12691 } 12692 return new EventHandle_default(this, event, listener); 12693 } 12694 /** 12695 * Adds a listener that will be invoked a fixed number of times for a single 12696 * event. After the event is triggered the specified amount of times, the 12697 * listener is removed. 12698 * @param {string} event 12699 * @param {number} amount The amount of times this event should be listened 12700 * to. 12701 * @param {!Function} listener 12702 * @protected 12703 */ 12704 _many(event, amount, listener) { 12705 const self2 = this; 12706 if (amount <= 0) { 12707 return; 12708 } 12709 function handlerInternal() { 12710 if (--amount === 0) { 12711 self2.removeListener(event, handlerInternal); 12712 } 12713 listener.apply(self2, arguments); 12714 } 12715 self2._addSingleListener(event, handlerInternal, false, listener); 12716 } 12717 /** 12718 * Checks if a listener object matches the given listener function. To match, 12719 * it needs to either point to that listener or have it as its origin. 12720 * @param {!Object} listenerObj 12721 * @param {!Function} listener 12722 * @return {boolean} 12723 * @protected 12724 */ 12725 _matchesListener(listenerObj, listener) { 12726 const fn = listenerObj.fn || listenerObj; 12727 return fn === listener || listenerObj.origin && listenerObj.origin === listener; 12728 } 12729 /** 12730 * Removes a listener for the specified events. 12731 * Caution: changes array indices in the listener array behind the listener. 12732 * @param {!(Array|string)} event 12733 * @param {!Function} listener 12734 * @return {!Object} Returns emitter, so calls can be chained. 12735 */ 12736 off(event, listener) {
12737 this._validateListener(listener); 12738 if (!this._events) { 12739 return this; 12740 } 12741 const events = this._toEventsArray(event); 12742 for (let i = 0; i < events.length; i++) { 12743 this._events[events[i]] = this._removeMatchingListenerObjs( 12744 toArray2(this._events[events[i]]), 12745 listener 12746 ); 12747 } 12748 return this; 12749 } 12750 /** 12751 * Adds a listener to the end of the listeners array for the specified events. 12752 * @param {!(Array|string)} events 12753 * @param {!Function} listener 12754 * @return {!EventHandle} Can be used to remove the listener. 12755 */ 12756 on() { 12757 return this.addListener.apply(this, arguments); 12758 } 12759 /** 12760 * Adds handler that gets triggered when an event is listened to on this 12761 * instance. 12762 * @param {!function()} handler 12763 */ 12764 onListener(handler) { 12765 this._listenerHandlers = this._addHandler( 12766 this._listenerHandlers, 12767 handler 12768 ); 12769 } 12770 /** 12771 * Adds a one time listener for the events. This listener is invoked only the 12772 * next time each event is fired, after which it is removed. 12773 * @param {!(Array|string)} events 12774 * @param {!Function} listener 12775 * @return {!EventHandle} Can be used to remove the listener. 12776 */ 12777 once(events, listener) { 12778 return this.many(events, 1, listener); 12779 } 12780 /** 12781 * Removes all listeners, or those of the specified events. It's not a good 12782 * idea to remove listeners that were added elsewhere in the code, 12783 * especially when it's on an emitter that you didn't create. 12784 * @param {(Array|string)=} event 12785 * @return {!Object} Returns emitter, so calls can be chained. 12786 */ 12787 removeAllListeners(event) { 12788 if (this._events) { 12789 if (event) { 12790 const events = this._toEventsArray(event); 12791 for (let i = 0; i < events.length; i++) { 12792 this._events[events[i]] = null; 12793 } 12794 } else { 12795 this._events = null; 12796 } 12797 } 12798 return this; 12799 } 12800 /** 12801 * Removes all listener objects from the given array that match the given 12802 * listener function. 12803 * @param {Array.<Object>} listenerObjs 12804 * @param {!Function} listener 12805 * @return {Array.<Object>|Object} The new listeners array for this event. 12806 * @protected 12807 */ 12808 _removeMatchingListenerObjs(listenerObjs, listener) { 12809 const finalListeners = []; 12810 for (let i = 0; i < listenerObjs.length; i++) { 12811 if (!this._matchesListener(listenerObjs[i], listener)) { 12812 finalListeners.push(listenerObjs[i]); 12813 } 12814 } 12815 return finalListeners.length ? finalListeners : null; 12816 } 12817 /** 12818 * Removes a listener for the specified events. 12819 * Caution: changes array indices in the listener array behind the listener. 12820 * @param {!(Array|string)} events 12821 * @param {!Function} listener 12822 * @return {!Object} Returns emitter, so calls can be chained. 12823 */ 12824 removeListener() { 12825 return this.off.apply(this, arguments); 12826 } 12827 /** 12828 * Runs the handlers when an event is listened to. 12829 * @param {string} event 12830 * @protected 12831 */ 12832 _runListenerHandlers(event) { 12833 let handlers = this._listenerHandlers; 12834 if (handlers) { 12835 handlers = toArray2(handlers); 12836 for (let i = 0; i < handlers.length; i++) { 12837 handlers[i](event); 12838 } 12839 } 12840 } 12841 /** 12842 * Runs the given listeners. 12843 * @param {!Array} listeners 12844 * @param {!Array} args 12845 * @param {Object} facade 12846 * @protected 12847 */ 12848 _runListeners(listeners, args, facade) { 12849 if (facade) { 12850 args.push(facade); 12851 } 12852 const defaultListeners = []; 12853 for (let i = 0; i < listeners.length; i++) { 12854 const listener = listeners[i].fn || listeners[i]; 12855 if (listeners[i].default) { 12856 defaultListeners.push(listener); 12857 } else { 12858 listener.apply(this, args); 12859 } 12860 } 12861 if (!facade || !facade.preventedDefault) { 12862 for (let j = 0; j < defaultListeners.length; j++) { 12863 defaultListeners[j].apply(this, args); 12864 } 12865 } 12866 } 12867 /** 12868 * Sets the configuration option which determines if an event facade should 12869 * be sent as a param of listeners when emitting events. If set to true, the 12870 * facade will be passed as the first argument of the listener. 12871 * @param {boolean} shouldUseFacade 12872 * @return {!Object} Returns emitter, so calls can be chained. 12873 */ 12874 setShouldUseFacade(shouldUseFacade) { 12875 this._shouldUseFacade = shouldUseFacade; 12876 return this; 12877 } 12878 /** 12879 * Converts the parameter to an array if only one event is given. Reuses the 12880 * same array each time this conversion is done, to avoid using more memory 12881 * than necessary. 12882 * @param {!(Array|string)} events 12883 * @return {!Array} 12884 * @protected 12885 */ 12886 _toEventsArray(events) { 12887 if (typeof events === "string") { 12888 singleArray[0] = events; 12889 events = singleArray; 12890 } 12891 return events; 12892 } 12893 /** 12894 * Checks if the given listener is valid, throwing an exception when it's not. 12895 * @param {*} listener 12896 * @protected 12897 */ 12898 _validateListener(listener) { 12899 if (typeof listener !== "function") { 12900 throw new TypeError("Listener must be a function"); 12901 } 12902 } 12903 }; 12904 function toArray2(val) { 12905 val = val || []; 12906 return Array.isArray(val) ? val : [val]; 12907 } 12908 var EventEmitter_default = EventEmitter; 12909 12910
12910// src/main/resources/META-INF/resources/liferay/throttle.es.js 12911 function throttle(fn, interval) { 12912 let timeout = null; 12913 let last; 12914 return function(...args) { 12915 const context = this; 12916 const now = Date.now(); 12917 const schedule = () => { 12918 timeout = setTimeout(() => { 12919 timeout = null; 12920 }, interval); 12921 last = now; 12922 fn.apply(context, args); 12923 }; 12924 if (timeout === null) { 12925 schedule(); 12926 } else { 12927 const remaining = Math.max(last + interval - now, 0); 12928 clearTimeout(timeout); 12929 timeout = setTimeout(schedule, remaining); 12930 } 12931 }; 12932 } 12933 12934
12934// src/main/resources/META-INF/resources/liferay/side_navigation.es.js 12935 var DEFAULTS = { 12936 breakpoint: 576, 12937 content: ".sidenav-content", 12938 gutter: "12px", 12939 loadingIndicatorTPL: '<div class="loading-animation loading-animation-md"></div>', 12940 navigation: ".sidenav-menu-slider", 12941 position: "left", 12942 type: "relative", 12943 typeMobile: "relative", 12944 url: null, 12945 width: "225px" 12946 }; 12947 var INSTANCE_MAP = /* @__PURE__ */ new WeakMap(); 12948 function getElement(element) { 12949 if (element && element.jquery) { 12950 if (element.length > 1) { 12951 throw new Error( 12952 `getElement(): Expected at most one element, got ${element.length}` 12953 ); 12954 } 12955 element = element.get(0); 12956 } 12957 if (element && !(element instanceof HTMLElement)) { 12958 element = element.element; 12959 } 12960 return element; 12961 } 12962 function getInstance(element) { 12963 element = getElement(element); 12964 const instance = INSTANCE_MAP.get(element); 12965 return instance; 12966 } 12967 var IDENTITY_ATTRIBUTES = [/^aria-/, /^data-/, /^type$/]; 12968 function getUniqueSelector(element) { 12969 element = getElement(element); 12970 if (element.id) { 12971 return `#${element.id}`; 12972 } 12973 let ancestorWithId = element.parentNode; 12974 while (ancestorWithId) { 12975 if (ancestorWithId.id) { 12976 break; 12977 } 12978 ancestorWithId = ancestorWithId.parentNode; 12979 } 12980 const attributes = Array.from(element.attributes).map(({ name, value }) => { 12981 const isIdentifying = IDENTITY_ATTRIBUTES.some((regExp) => { 12982 return regExp.test(name); 12983 }); 12984 return isIdentifying ? `[${name}=${JSON.stringify(value)}]` : null; 12985 }).filter(Boolean).sort(); 12986 return [ 12987 ancestorWithId ? `#${ancestorWithId.id} ` : "", 12988 element.tagName.toLowerCase(), 12989 ...attributes 12990 ].join(""); 12991 } 12992 function dispatchCustomEvent(element, eventName, detail = null) { 12993 const customEvent = new CustomEvent(eventName, { detail }); 12994 element.dispatchEvent(customEvent); 12995 } 12996 function addClass(element, className) { 12997 setClasses(element, { 12998 [className]: true 12999 }); 13000 } 13001 function removeClass(element, className) { 13002 setClasses(element, { 13003 [className]: false 13004 }); 13005 } 13006 function setClasses(element, classes) { 13007 element = getElement(element); 13008 if (element) { 13009 Object.entries(classes).forEach(([className, present]) => { 13010 className.split(/\s+/).forEach((name) => { 13011 if (present) { 13012 element.classList.add(name); 13013 } else { 13014 element.classList.remove(name); 13015 } 13016 }); 13017 }); 13018 } 13019 } 13020 function hasClass(element, className) { 13021 element = getElement(element); 13022 return className.split(/\s+/).every((name) => { 13023 return element.classList.contains(name); 13024 }); 13025 } 13026 function setStyles(element, styles) { 13027 element = getElement(element); 13028 if (element) { 13029 Object.entries(styles).forEach(([property, value]) => { 13030 element.style[property] = value; 13031 }); 13032 } 13033 } 13034 function px(dimension) { 13035 if (typeof dimension === "number") { 13036 return dimension + "px"; 13037 } else if (typeof dimension === "string" && dimension.match(/^\s*\d+\s*$/)) { 13038 return dimension.trim() + "px"; 13039 } else { 13040 return dimension; 13041 } 13042 } 13043 function offsetLeft(element) { 13044 const elementLeft = element.getBoundingClientRect().left; 13045 const documentOffset = element.ownerDocument.defaultView.pageOffsetX || 0; 13046 return elementLeft + documentOffset; 13047 } 13048 var eventNamesToSelectors = {}; 13049 function handleEvent(eventName, event) { 13050 Object.keys(eventNamesToSelectors[eventName]).forEach((selector) => { 13051 let matches = false; 13052 let target = event.target; 13053 while (target) { 13054 matches = target.matches && target.matches(selector); 13055 if (matches) { 13056 break; 13057 } 13058 target = target.parentNode; 13059 } 13060 if (matches) { 13061 const emitter = eventNamesToSelectors[eventName][selector]; 13062 emitter.emit("click", event); 13063 } 13064 }); 13065 } 13066 var handleWindowResize; 13067 function setupResizeListener() { 13068 if (!handleWindowResize) { 13069 handleWindowResize = throttle(() => { 13070 dispatchCustomEvent(document, "screenChange.lexicon.sidenav"); 13071 }, 150); 13072 window.addEventListener("resize", handleWindowResize); 13073 } 13074 } 13075 function subscribe(elementOrSelector, eventName, handler) { 13076 if (elementOrSelector) { 13077 if (!eventNamesToSelectors[eventName]) { 13078 eventNamesToSelectors[eventName] = {}; 13079 document.addEventListener( 13080 eventName, 13081 (event) => handleEvent(eventName, event) 13082 ); 13083 } 13084 const emitters = eventNamesToSelectors[eventName]; 13085 const selector = typeof elementOrSelector === "string" ? elementOrSelector : getUniqueSelector(elementOrSelector); 13086 if (!emitters[selector]) { 13087 emitters[selector] = new EventEmitter_default(); 13088 } 13089 const emitter = emitters[selector]; 13090 const subscription = emitter.on(eventName, (event) => { 13091 if (!event.defaultPrevented) { 13092 handler(event); 13093 } 13094 }); 13095 return { 13096 dispose() { 13097 subscription.dispose(); 13098 } 13099 }; 13100 } 13101 return null; 13102 } 13103 function toInt(str) { 13104 return parseInt(str, 10) || 0; 13105 } 13106 function SideNavigation(toggler, options) { 13107 toggler = getElement(toggler); 13108 this.init(toggler, options); 13109 } 13110 SideNavigation.TRANSITION_DURATION = 500; 13111 SideNavigation.prototype = { 13112 _bindUI() { 13113 this._subscribeClickTrigger(); 13114 this._subscribeReducedMotion(); 13115 this._subscribeClickSidenavClose(); 13116 }, 13117 _emit(event) { 13118 this._emitter.emit(event, this); 13119 }, 13120 _focusNavigation() { 13121 const container = document.querySelector(this.options.container); 13122 if (!container) { 13123 return; 13124 } 13125 const navigation = container.querySelector(this.options.navigation); 13126 if (!navigation) { 13127 container.focus(); 13128 return; 13129 } 13130 navigation.focus(); 13131 }, 13132 _focusTrigger() { 13133 const toggler = this.toggler; 13134 if (!toggler || !document.activeElement.classList.contains("sidenav-close")) { 13135 return; 13136 } 13137 toggler.focus(); 13138 }, 13139 _getSidenavWidth() { 13140 const options = this.options; 13141 const widthOriginal = options.widthOriginal; 13142 let width = widthOriginal; 13143 const winWidth = window.innerWidth; 13144 if (winWidth < widthOriginal + 40) { 13145 width = winWidth - 40; 13146 } 13147 return width; 13148 }, 13149 _getSimpleSidenavType() { 13150 const type = this._getType(); 13151 if (this._isDesktop() && type === "fixed-push") { 13152 return "desktop-fixed-push"; 13153 } else if (!this._isDesktop() && type === "fixed-push") { 13154 return "mobile-fixed-push"; 13155 } 13156 return "fixed"; 13157 }, 13158 _getType() { 13159 return this._isDesktop() ? this.options.type : this.options.typeMobile; 13160 }, 13161 _isDesktop() { 13162 return window.innerWidth >= this.options.breakpoint; 13163 }, 13164 _isSidenavRight() { 13165 const options = this.options; 13166 const container = document.querySelector(options.container); 13167 if (!container) { 13168 return; 13169 } 13170 const isSidenavRight = hasClass(container, "sidenav-right"); 13171 return isSidenavRight; 13172 }, 13173 _isSimpleSidenavClosed() { 13174 const options = this.options; 13175 const openClass = options.openClass; 13176 const container = document.querySelector(options.container); 13177 if (!container) { 13178 return; 13179 } 13180 return !hasClass(container, openClass); 13181 }, 13182 _loadUrl(element, url) { 13183 const instance = this; 13184 const sidebar = element.querySelector(".sidebar-body"); 13185 if (!instance._fetchPromise && sidebar) { 13186 while (sidebar.firstChild) { 13187 sidebar.removeChild(sidebar.firstChild); 13188 } 13189 const loading = document.createElement("div"); 13190 addClass(loading, "sidenav-loading"); 13191 loading.innerHTML = instance.options.loadingIndicatorTPL; 13192 sidebar.appendChild(loading); 13193 instance._fetchPromise = defaultFetch(url); 13194 instance._fetchPromise.then((response) => { 13195 if (!response.ok) { 13196 throw new Error(`Failed to fetch ${url}`); 13197 } 13198 return response.text(); 13199 }).then((text) => { 13200 const range = document.createRange(); 13201 range.selectNode(sidebar); 13202 const fragment = range.createContextualFragment(text); 13203 sidebar.removeChild(loading); 13204 sidebar.appendChild(fragment); 13205 instance.setHeight(); 13206 }).catch((error) => { 13207 console.error(error); 13208 }); 13209 } 13210 }, 13211 _onClosed() { 13212 const options = this.options; 13213 const container = document.querySelector(options.container); 13214 if (!container) { 13215 return; 13216 } 13217 if (!this._handleClosed) { 13218 this._handleClosed = () => { 13219 const type = this._getType(); 13220 if (type === "relative" && hasClass(container, "open")) { 13221 removeClass(container, "sidenav-transition"); 13222 } 13223 }; 13224 document.addEventListener( 13225 "closed.lexicon.sidenav", 13226 this._handleClosed 13227 ); 13228 } 13229 }, 13230 _onClosedStart() { 13231 const options = this.options; 13232 const container = document.querySelector(options.container); 13233 const content = document.querySelector(options.content); 13234 if (!container || !content) { 13235 return; 13236 } 13237 if (!this._handleClosedStart) { 13238 this._handleClosedStart = () => { 13239 const type = this._getType(); 13240 if (type === "relative" && hasClass(container, "open") && content.closest(".page-maximized")) { 13241 let contentMargin = document.body.scrollWidth - content.getBoundingClientRect().right; 13242 let paddingRight = options.gutter + options.width; 13243 const contentMaxWidth = getComputedStyle(content).maxWidth || getComputedStyle(content).width; 13244 if (/px$/.test(contentMaxWidth)) { 13245 contentMargin = (document.body.scrollWidth - toInt(contentMaxWidth)) / 2; 13246 if (contentMargin > options.width) { 13247 paddingRight = ""; 13248 } else if (contentMargin > 0 && contentMargin < options.width) { 13249 paddingRight = options.gutter + options.width - contentMargin; 13250 } 13251 } 13252 if (!this.isReducedMotion()) { 13253 addClass(container, "sidenav-transition"); 13254 } 13255 setStyles(content, { 13256 "padding-right": px(paddingRight) 13257 }); 13258 } 13259 }; 13260 document.addEventListener( 13261 "closedStart.lexicon.sidenav", 13262 this._handleClosedStart 13263 ); 13264 } 13265 }, 13266 _onOpen() { 13267 const options = this.options; 13268 const container = document.querySelector(options.container); 13269 if (!container) { 13270 return; 13271 } 13272 if (!this._handleOpen) { 13273 this._handleOpen = () => { 13274 const type = this._getType(); 13275 if (type === "relative" && hasClass(container, "open")) { 13276 removeClass(container, "sidenav-transition"); 13277 } 13278 }; 13279 document.addEventListener("open.lexicon.sidenav", this._handleOpen); 13280 } 13281 }, 13282 _onOpenStart() { 13283 const options = this.options; 13284 const container = document.querySelector(options.container); 13285 const content = document.querySelector(options.content); 13286 if (!container || !content) { 13287 return; 13288 } 13289 if (!this._handleOpenStart) { 13290 this._handleOpenStart = (event) => { 13291 const type = this._getType(); 13292 if (type === "relative" && hasClass(container, "open") && content.closest(".page-maximized")) { 13293 const otherMenu = document.querySelector( 13294 event.detail.options.container + " .sidenav-menu" 13295 ); 13296 if (!otherMenu) { 13297 return; 13298 } 13299 const otherMenuWidth = otherMenu.getBoundingClientRect().width; 13300 const contentMargin = document.body.scrollWidth - content.getBoundingClientRect().right - otherMenuWidth / 2; 13301 const paddingRight = contentMargin > 0 ? options.width + options.gutter - contentMargin : options.width + options.gutter; 13302 if (!this.isReducedMotion()) { 13303 addClass(container, "sidenav-transition"); 13304 } 13305 setStyles(content, { 13306 "padding-right": px(paddingRight) 13307 }); 13308 } 13309 }; 13310 document.addEventListener( 13311 "openStart.lexicon.sidenav", 13312 this._handleOpenStart 13313 ); 13314 } 13315 }, 13316 _onScreenChange() { 13317 const options = this.options; 13318 const container = document.querySelector(options.container); 13319 const content = document.querySelector(options.content); 13320 if (!container || !content) { 13321 return; 13322 } 13323 let originalIsDesktop = this._isDesktop(); 13324 if (!this._handleOnScreenChange) { 13325 this._handleOnScreenChange = () => { 13326 const type = this._getType(); 13327 if (type === "relative" && hasClass(container, "open")) { 13328 this.setHeight(); 13329 this.setWidth(); 13330 } 13331 if (this._isDesktop() !== originalIsDesktop) { 13332 if (type !== "relative") { 13333 addClass(container, "sidenav-fixed"); 13334 content.style.paddingRight = ""; 13335 content.style.minHeight = ""; 13336 } else { 13337 removeClass(container, "sidenav-fixed"); 13338 } 13339 originalIsDesktop = this._isDesktop(); 13340 } 13341 }; 13342 document.addEventListener( 13343 "screenChange.lexicon.sidenav", 13344 this._handleOnScreenChange 13345 ); 13346 } 13347 }, 13348 _renderNav() { 13349 const options = this.options; 13350 const container = document.querySelector(options.container); 13351 const navigation = container.querySelector(options.navigation); 13352 if (!container || !navigation) { 13353 return; 13354 } 13355 const menu = navigation.querySelector(".sidenav-menu"); 13356 const closed = hasClass(container, "closed"); 13357 const sidenavRight = this._isSidenavRight(); 13358 const width = this._getSidenavWidth(); 13359 if (closed) { 13360 setStyles(menu, { 13361 width: px(width) 13362 }); 13363 if (sidenavRight) { 13364 const positionDirection = options.rtl ? "left" : "right"; 13365 setStyles(menu, { 13366 [positionDirection]: px(width) 13367 }); 13368 } 13369 } else { 13370 this.showSidenav(); 13371 this.setHeight(); 13372 } 13373 }, 13374 _renderUI() { 13375 const options = this.options; 13376 const container = document.querySelector(options.container); 13377 if (!container) { 13378 return; 13379 } 13380 const toggler = this.toggler; 13381 const type = this._getType(); 13382 if (!this.useDataAttribute) { 13383 setupResizeListener(); 13384 this._onClosedStart(); 13385 this._onClosed(); 13386 this._onOpenStart(); 13387 this._onOpen(); 13388 this._onScreenChange(); 13389 if (!this._isDesktop()) { 13390 setClasses(container, { 13391 closed: true, 13392 open: false 13393 }); 13394 setClasses(toggler, { 13395 active: false, 13396 open: false 13397 }); 13398 } 13399 if (options.position === "right") { 13400 addClass(container, "sidenav-right"); 13401 } 13402 if (type !== "relative") { 13403 addClass(container, "sidenav-fixed"); 13404 } 13405 this._renderNav(); 13406 } 13407 setStyles(container, { 13408 display: "" 13409 }); 13410 }, 13411 _subscribeClickSidenavClose() { 13412 const instance = this; 13413 const options = instance.options; 13414 const containerSelector = options.container; 13415 if (!instance._sidenavCloseSubscription) { 13416 const closeButtonSelector = `${containerSelector} .sidenav-close`; 13417 instance._sidenavCloseSubscription = subscribe( 13418 closeButtonSelector, 13419 "click", 13420 function handleSidenavClose(event) { 13421 event.preventDefault();
13422 instance.toggle(); 13423 } 13424 ); 13425 } 13426 }, 13427 _subscribeClickTrigger() { 13428 const instance = this; 13429 if (!instance._togglerSubscription) { 13430 const toggler = instance.toggler; 13431 instance._togglerSubscription = subscribe( 13432 toggler, 13433 "click", 13434 function handleTogglerClick(event) { 13435 instance.toggle(); 13436 event.preventDefault(); 13437 } 13438 ); 13439 } 13440 }, 13441 _subscribeReducedMotion() { 13442 const instance = this; 13443 import( 13444 // eslint-disable-next-line lines-around-comment 13445 /* webpackIgnore: true */ 13446 themeDisplay.getPathContext() + "/o/frontend-js-web/__liferay__/index.js" 13447 ).then(({ isReducedMotion }) => { 13448 instance.isReducedMotion = isReducedMotion; 13449 }); 13450 }, 13451 _subscribeSidenavTransitionEnd(element, fn) { 13452 if (this.isReducedMotion()) { 13453 removeClass(element, "sidenav-transition"); 13454 fn(); 13455 } else { 13456 setTimeout(() => { 13457 removeClass(element, "sidenav-transition"); 13458 fn(); 13459 }, SideNavigation.TRANSITION_DURATION); 13460 } 13461 }, 13462 clearHeight() { 13463 const options = this.options; 13464 const container = document.querySelector(options.container); 13465 if (container) { 13466 const content = container.querySelector(options.content); 13467 const navigation = container.querySelector(options.navigation); 13468 const menu = container.querySelector(".sidenav-menu"); 13469 [content, navigation, menu].forEach((element) => { 13470 setStyles(element, { 13471 "height": "", 13472 "min-height": "" 13473 }); 13474 }); 13475 } 13476 }, 13477 destroy() { 13478 const instance = this; 13479 if (instance._sidenavCloseSubscription) { 13480 instance._sidenavCloseSubscription.dispose(); 13481 instance._sidenavCloseSubscription = null; 13482 } 13483 if (instance._togglerSubscription) { 13484 instance._togglerSubscription.dispose(); 13485 instance._togglerSubscription = null; 13486 } 13487 INSTANCE_MAP.delete(instance.toggler); 13488 document.removeEventListener( 13489 "closedStart.lexicon.sidenav", 13490 instance._handleClosedStart 13491 ); 13492 document.removeEventListener( 13493 "closed.lexicon.sidenav", 13494 instance._handleClosed 13495 ); 13496 document.removeEventListener( 13497 "openStart.lexicon.sidenav", 13498 instance._handleOpenStart 13499 ); 13500 document.removeEventListener( 13501 "open.lexicon.sidenav", 13502 instance._handleOpen 13503 ); 13504 document.removeEventListener( 13505 "screenChange.lexicon.sidenav", 13506 instance._handleOnScreenChange 13507 ); 13508 if (handleWindowResize) { 13509 window.removeEventListener("resize", handleWindowResize); 13510 handleWindowResize = null; 13511 } 13512 }, 13513 hide() { 13514 if (this.useDataAttribute) { 13515 this.hideSimpleSidenav(); 13516 } else { 13517 this.toggleNavigation(false); 13518 } 13519 }, 13520 hideSidenav() { 13521 const instance = this; 13522 const options = instance.options; 13523 const container = document.querySelector(options.container); 13524 if (container) { 13525 const content = container.querySelector(options.content); 13526 const navigation = container.querySelector(options.navigation); 13527 const menu = navigation.querySelector(".sidenav-menu"); 13528 const sidenavRight = instance._isSidenavRight(); 13529 let positionDirection = options.rtl ? "right" : "left"; 13530 if (sidenavRight) { 13531 positionDirection = options.rtl ? "left" : "right"; 13532 } 13533 const paddingDirection = "padding-" + positionDirection; 13534 setStyles(content, { 13535 [paddingDirection]: "", 13536 [positionDirection]: "" 13537 }); 13538 setStyles(navigation, { 13539 width: "" 13540 }); 13541 if (sidenavRight) { 13542 setStyles(menu, { 13543 [positionDirection]: px(instance._getSidenavWidth()) 13544 }); 13545 } 13546 instance._subscribeSidenavTransitionEnd(menu, () => { 13547 instance._focusTrigger(); 13548 }); 13549 } 13550 }, 13551 hideSimpleSidenav() { 13552 const instance = this; 13553 const options = instance.options; 13554 const simpleSidenavClosed = instance._isSimpleSidenavClosed(); 13555 if (!simpleSidenavClosed) { 13556 const container = document.querySelector(options.container); 13557 const content = document.querySelector(options.content); 13558 if (!container || !content) { 13559 return; 13560 } 13561 const closedClass = options.closedClass; 13562 const openClass = options.openClass; 13563 const toggler = instance.toggler; 13564 const target = toggler.dataset.target || toggler.getAttribute("href");
13565 instance._emit("closedStart.lexicon.sidenav"); 13566 dispatchCustomEvent( 13567 document, 13568 "closedStart.lexicon.sidenav", 13569 instance 13570 ); 13571 instance._subscribeSidenavTransitionEnd(content, () => { 13572 removeClass(container, "sidenav-transition"); 13573 removeClass(toggler, "sidenav-transition"); 13574 instance._emit("closed.lexicon.sidenav"); 13575 dispatchCustomEvent( 13576 document, 13577 "closed.lexicon.sidenav", 13578 instance 13579 ); 13580 instance._focusTrigger(); 13581 }); 13582 const isReducedMotion = instance.isReducedMotion(); 13583 if (hasClass(content, openClass)) { 13584 setClasses(content, { 13585 [closedClass]: true, 13586 [openClass]: false, 13587 "sidenav-transition": !isReducedMotion 13588 }); 13589 } 13590 if (!isReducedMotion) { 13591 addClass(container, "sidenav-transition"); 13592 addClass(toggler, "sidenav-transition"); 13593 } 13594 setClasses(container, { 13595 [closedClass]: true, 13596 [openClass]: false 13597 }); 13598 const nodes = document.querySelectorAll( 13599 `[data-target="${target}"], [href="${target}"]` 13600 ); 13601 Array.from(nodes).forEach((node) => { 13602 setClasses(node, { 13603 active: false, 13604 [openClass]: false 13605 }); 13606 setClasses(node, { 13607 active: false, 13608 [openClass]: false 13609 }); 13610 }); 13611 } 13612 }, 13613 init(toggler, options) { 13614 const useDataAttribute = toggler.dataset.toggle === "liferay-sidenav"; 13615 options = { ...DEFAULTS, ...options }; 13616 options.breakpoint = toInt(options.breakpoint); 13617 options.container = options.container || toggler.dataset.target || toggler.getAttribute("href"); 13618 options.gutter = toInt(options.gutter); 13619 options.rtl = document.dir === "rtl"; 13620 options.width = toInt(options.width); 13621 options.widthOriginal = options.width; 13622 if (useDataAttribute) { 13623 options.closedClass = toggler.dataset.closedClass || "closed"; 13624 options.content = toggler.dataset.content; 13625 options.loadingIndicatorTPL = toggler.dataset.loadingIndicatorTpl || options.loadingIndicatorTPL; 13626 options.openClass = toggler.dataset.openClass || "open"; 13627 options.type = toggler.dataset.type; 13628 options.typeMobile = toggler.dataset.typeMobile; 13629 options.url = toggler.dataset.url; 13630 options.width = ""; 13631 } 13632 this.toggler = toggler; 13633 this.options = options; 13634 this.useDataAttribute = useDataAttribute; 13635 this._emitter = new EventEmitter_default(); 13636 this._bindUI(); 13637 this._renderUI(); 13638 }, 13639 on(event, listener) { 13640 return this._emitter.on(event, listener); 13641 }, 13642 setHeight() { 13643 const options = this.options; 13644 const container = document.querySelector(options.container); 13645 if (!container) { 13646 return; 13647 } 13648 const type = this._getType(); 13649 if (type !== "fixed" && type !== "fixed-push") { 13650 const content = container.querySelector(options.content); 13651 const navigation = container.querySelector(options.navigation); 13652 const menu = container.querySelector(".sidenav-menu"); 13653 const contentHeight = content.closest(".page-maximized") ? window.innerHeight - menu.getBoundingClientRect().top : content.getBoundingClientRect().height; 13654 const navigationHeight = navigation.getBoundingClientRect().height; 13655 const tallest = px(Math.max(contentHeight, navigationHeight)); 13656 setStyles(content, { 13657 "min-height": tallest 13658 }); 13659 setStyles(navigation, { 13660 "height": "100%", 13661 "min-height": tallest 13662 }); 13663 setStyles(menu, { 13664 "height": "100%", 13665 "min-height": tallest 13666 }); 13667 } 13668 }, 13669 setWidth() { 13670 const options = this.options; 13671 const container = document.querySelector(options.container); 13672 const content = container.querySelector(options.content); 13673 const navigation = container.querySelector(options.navigation); 13674 if (!container || !content || !navigation) { 13675 return; 13676 } 13677 const menu = navigation.querySelector(".sidenav-menu"); 13678 const sidenavRight = this._isSidenavRight(); 13679 const width = this._getSidenavWidth(); 13680 const offset = width + options.gutter; 13681 const url = options.url; 13682 if (url) { 13683 this._loadUrl(menu, url); 13684 } 13685 setStyles(navigation, { 13686 width: px(width) 13687 }); 13688 setStyles(menu, { 13689 width: px(width) 13690 }); 13691 let positionDirection = options.rtl ? "right" : "left"; 13692 if (sidenavRight) { 13693 positionDirection = options.rtl ? "left" : "right"; 13694 } 13695 const paddingDirection = "padding-" + positionDirection; 13696 const pushContentCssProperty = this._isDesktop() ? paddingDirection : positionDirection; 13697 const type = this._getType(); 13698 if (type !== "relative") { 13699 addClass(container, "sidenav-fixed"); 13700 } 13701 if (type !== "fixed") { 13702 let navigationStartX = hasClass(container, "open") ? offsetLeft(navigation) - options.gutter : offsetLeft(navigation) - offset; 13703 const contentStartX = offsetLeft(content); 13704 const contentWidth = toInt(getComputedStyle(content).width); 13705 let padding = ""; 13706 if (options.rtl && sidenavRight || !options.rtl && options.position === "left") { 13707 navigationStartX = offsetLeft(navigation) + offset; 13708 if (navigationStartX > contentStartX) { 13709 padding = navigationStartX - contentStartX; 13710 } 13711 } else if (options.rtl && options.position === "left" || !options.rtl && sidenavRight) { 13712 if (navigationStartX < contentStartX + contentWidth) { 13713 padding = contentStartX + contentWidth - navigationStartX; 13714 if (padding >= offset) { 13715 padding = offset; 13716 } 13717 } 13718 } 13719 setStyles(content, { 13720 [pushContentCssProperty]: px(padding) 13721 }); 13722 } 13723 }, 13724 show() { 13725 if (this.useDataAttribute) { 13726 this.showSimpleSidenav(); 13727 } else { 13728 this.toggleNavigation(true); 13729 } 13730 }, 13731 showSidenav() { 13732 const instance = this; 13733 const options = instance.options; 13734 const container = document.querySelector(options.container); 13735 const navigation = container.querySelector(options.navigation); 13736 if (!container || !navigation) { 13737 return; 13738 } 13739 const menu = navigation.querySelector(".sidenav-menu"); 13740 const url = options.url; 13741 if (url) { 13742 instance._loadUrl(menu, url); 13743 } 13744 instance.setWidth(); 13745 instance._subscribeSidenavTransitionEnd(menu, () => { 13746 instance._focusNavigation(); 13747 }); 13748 }, 13749 showSimpleSidenav() { 13750 const instance = this; 13751 const options = instance.options; 13752 const simpleSidenavClosed = instance._isSimpleSidenavClosed(); 13753 if (simpleSidenavClosed) { 13754 const container = document.querySelector(options.container); 13755 const content = document.querySelector(options.content); 13756 if (!container || !content) { 13757 return; 13758 } 13759 const closedClass = options.closedClass; 13760 const openClass = options.openClass; 13761 const toggler = instance.toggler; 13762 const url = toggler.dataset.url; 13763 if (url) { 13764 instance._loadUrl(container, url); 13765 }
13766 instance._emit("openStart.lexicon.sidenav"); 13767 dispatchCustomEvent( 13768 document, 13769 "openStart.lexicon.sidenav", 13770 instance 13771 ); 13772 const isReducedMotion = instance.isReducedMotion(); 13773 setClasses(content, { 13774 [closedClass]: false, 13775 [openClass]: true, 13776 "sidenav-transition": !isReducedMotion 13777 }); 13778 setClasses(container, { 13779 [closedClass]: false, 13780 [openClass]: true, 13781 "sidenav-transition": !isReducedMotion 13782 }); 13783 setClasses(toggler, { 13784 "active": true, 13785 [openClass]: true, 13786 "sidenav-transition": !isReducedMotion 13787 }); 13788 instance._subscribeSidenavTransitionEnd(content, () => { 13789 if (!isReducedMotion) { 13790 removeClass(container, "sidenav-transition"); 13791 removeClass(toggler, "sidenav-transition"); 13792 } 13793 instance._emit("open.lexicon.sidenav"); 13794 dispatchCustomEvent(document, "open.lexicon.sidenav", instance); 13795 this._focusNavigation(); 13796 }); 13797 } 13798 }, 13799 toggle() { 13800 if (this.useDataAttribute) { 13801 this.toggleSimpleSidenav(); 13802 } else { 13803 this.toggleNavigation(); 13804 } 13805 }, 13806 toggleNavigation(force) { 13807 const instance = this; 13808 const options = instance.options; 13809 const type = instance._getType(); 13810 const container = document.querySelector(options.container); 13811 const menu = container.querySelector(".sidenav-menu"); 13812 if (!container || !menu) { 13813 return; 13814 } 13815 const toggler = instance.toggler; 13816 const width = options.width; 13817 const closed = typeof force === "boolean" ? force : hasClass(container, "closed"); 13818 const sidenavRight = instance._isSidenavRight(); 13819 if (closed) { 13820 instance._emit("openStart.lexicon.sidenav"); 13821 dispatchCustomEvent( 13822 document, 13823 "openStart.lexicon.sidenav", 13824 instance 13825 ); 13826 } else { 13827 instance._emit("closedStart.lexicon.sidenav"); 13828 dispatchCustomEvent( 13829 document, 13830 "closedStart.lexicon.sidenav", 13831 instance 13832 ); 13833 } 13834 instance._subscribeSidenavTransitionEnd(container, () => { 13835 const menu2 = container.querySelector(".sidenav-menu"); 13836 if (hasClass(container, "closed")) { 13837 instance.clearHeight(); 13838 setClasses(toggler, { 13839 "open": false, 13840 "sidenav-transition": false 13841 }); 13842 instance._emit("closed.lexicon.sidenav"); 13843 dispatchCustomEvent( 13844 document, 13845 "closed.lexicon.sidenav", 13846 instance 13847 ); 13848 } else { 13849 setClasses(toggler, { 13850 "open": true, 13851 "sidenav-transition": false 13852 }); 13853 instance._emit("open.lexicon.sidenav"); 13854 dispatchCustomEvent(document, "open.lexicon.sidenav", instance); 13855 } 13856 if (!instance._isDesktop()) { 13857 menu2.focus(); 13858 } 13859 }); 13860 if (closed) { 13861 if (type === "relative") { 13862 instance.setHeight(); 13863 } 13864 setStyles(menu, { 13865 width: px(width) 13866 }); 13867 const positionDirection = options.rtl ? "left" : "right"; 13868 if (sidenavRight) { 13869 setStyles(menu, { 13870 [positionDirection]: "" 13871 }); 13872 } 13873 } 13874 if (!instance.isReducedMotion()) { 13875 addClass(container, "sidenav-transition"); 13876 addClass(toggler, "sidenav-transition"); 13877 } 13878 if (closed) { 13879 instance.showSidenav(); 13880 } else { 13881 instance.hideSidenav(); 13882 } 13883 setClasses(container, { 13884 closed: !closed, 13885 open: closed 13886 }); 13887 setClasses(toggler, { 13888 active: closed, 13889 open: closed 13890 }); 13891 }, 13892 toggleSimpleSidenav() { 13893 const simpleSidenavClosed = this._isSimpleSidenavClosed(); 13894 if (simpleSidenavClosed) { 13895 this.showSimpleSidenav(); 13896 } else { 13897 this.hideSimpleSidenav(); 13898 } 13899 }, 13900 visible() { 13901 let closed; 13902 if (this.useDataAttribute) { 13903 closed = this._isSimpleSidenavClosed(); 13904 } else { 13905 const container = document.querySelector(this.options.container); 13906 if (!container) { 13907 return; 13908 } 13909 closed = hasClass(container, "sidenav-transition") ? !hasClass(container, "closed") : hasClass(container, "closed"); 13910 } 13911 return !closed; 13912 } 13913 }; 13914 SideNavigation.destroy = function destroy(element) { 13915 const instance = getInstance(element); 13916 if (instance) { 13917 instance.destroy(); 13918 } 13919 }; 13920 SideNavigation.hide = function hide(element) { 13921 const instance = getInstance(element); 13922 if (instance) { 13923 instance.hide(); 13924 } 13925 }; 13926 SideNavigation.initialize = function initialize(toggler, options = {}) { 13927 toggler = getElement(toggler); 13928 let instance = INSTANCE_MAP.get(toggler); 13929 if (!instance) { 13930 instance = new SideNavigation(toggler, options); 13931 INSTANCE_MAP.set(toggler, instance); 13932 } 13933 return instance; 13934 }; 13935 SideNavigation.instance = getInstance; 13936 function onReady() { 13937 const togglers = document.querySelectorAll( 13938 '[data-toggle="liferay-sidenav"]' 13939 );
13940 Array.from(togglers).forEach(SideNavigation.initialize); 13941 } 13942 if (document.readyState !== "loading") { 13943 onReady(); 13944 } else { 13945 document.addEventListener("DOMContentLoaded", () => { 13946 onReady(); 13947 }); 13948 } 13949 var side_navigation_es_default = SideNavigation; 13950 13951
13951// src/main/resources/META-INF/resources/liferay/status_code.js 13952 var status_code_default = { 13953 BAD_REQUEST: 400, 13954 INTERNAL_SERVER_ERROR: 500, 13955 OK: 200, 13956 SC_DUPLICATE_FILE_EXCEPTION: 490, 13957 SC_FILE_ANTIVIRUS_EXCEPTION: 494, 13958 SC_FILE_CUSTOM_EXCEPTION: 499, 13959 SC_FILE_EXTENSION_EXCEPTION: 491, 13960 SC_FILE_NAME_EXCEPTION: 492, 13961 SC_FILE_SIZE_EXCEPTION: 493, 13962 SC_UPLOAD_REQUEST_SIZE_EXCEPTION: 495 13963 }; 13964 13965
13965// src/main/resources/META-INF/resources/liferay/util/add_params.js 13966 function addParams(params, baseUrl) { 13967 if (!params || typeof params !== "object" && typeof params !== "string") { 13968 throw new TypeError("Parameter params must be an object or string"); 13969 } 13970 if (typeof baseUrl !== "string") { 13971 throw new TypeError("Parameter baseUrl must be a string"); 13972 } 13973 const url = baseUrl.startsWith("/") ? new URL(baseUrl, location.href) : new URL(baseUrl); 13974 if (typeof params === "object") { 13975 Object.entries(params).forEach(([key, value]) => { 13976 url.searchParams.append(key, value); 13977 }); 13978 } else { 13979 const searchParams = new URLSearchParams(params.trim()); 13980 searchParams.forEach((value, key) => { 13981 if (value) { 13982 url.searchParams.append(key, value); 13983 } else { 13984 url.searchParams.append(key, ""); 13985 } 13986 }); 13987 } 13988 return url.toString(); 13989 } 13990 13991
13991// src/main/resources/META-INF/resources/liferay/util/address/get_countries.es.js 13992 function getCountries(callback) { 13993 if (typeof callback !== "function") { 13994 throw new TypeError("Parameter callback must be a function"); 13995 } 13996 Liferay.Service( 13997 "/country/get-company-countries", 13998 { 13999 active: true, 14000 companyId: Liferay.ThemeDisplay.getCompanyId() 14001 }, 14002 callback 14003 ); 14004 } 14005 14006
14006// src/main/resources/META-INF/resources/liferay/util/address/get_regions.es.js 14007 function getRegions(callback, selectKey) { 14008 if (typeof callback !== "function") { 14009 throw new TypeError("Parameter callback must be a function"); 14010 } 14011 if (typeof selectKey !== "string") { 14012 throw new TypeError("Parameter selectKey must be a string"); 14013 } 14014 Liferay.Service( 14015 "/region/get-regions", 14016 { 14017 active: true, 14018 countryId: parseInt(selectKey, 10) 14019 }, 14020 callback 14021 ); 14022 } 14023 14024
14024// src/main/resources/META-INF/resources/liferay/util/consent.js 14025 var CONSENT_TYPES = { 14026 FUNCTIONAL: "CONSENT_TYPE_FUNCTIONAL", 14027 NECESSARY: "CONSENT_TYPE_NECESSARY", 14028 PERFORMANCE: "CONSENT_TYPE_PERFORMANCE", 14029 PERSONALIZATION: "CONSENT_TYPE_PERSONALIZATION" 14030 }; 14031 function checkConsent(type) { 14032 return type === CONSENT_TYPES.NECESSARY || getCookie(type, CONSENT_TYPES.NECESSARY) !== "false"; 14033 } 14034 14035
14035// src/main/resources/META-INF/resources/liferay/util/cookie/cookie.js 14036 var generateCookie = (name, value, options = {}) => { 14037 let cookie = `${name}=${value}`; 14038 if (!options.path) { 14039 cookie += `; path=/`; 14040 } 14041 if (!options.expires && !("max-age" in options)) { 14042 cookie += `; max-age=${365 * 24 * 60 * 60}`; 14043 } 14044 for (const [key, value2] of Object.entries(options)) { 14045 if (value2 === false) { 14046 continue; 14047 } else if (value2 === true) { 14048 cookie += `; ${key}`; 14049 } else { 14050 cookie += `; ${key}=${value2}`; 14051 } 14052 } 14053 return cookie; 14054 }; 14055 function getCookie(name, type) { 14056 if (!checkConsent(type)) { 14057 return void 0; 14058 } 14059 return document.cookie.split("; ").find((v) => v.startsWith(`${name}=`))?.split("=")[1]; 14060 } 14061 function removeCookie(name) { 14062 document.cookie = generateCookie(name, "", { "max-age": 0 }); 14063 } 14064 function setCookie(name, value, type, options) { 14065 if (checkConsent(type)) { 14066 document.cookie = generateCookie(name, value, options); 14067 return true; 14068 } 14069 return false; 14070 } 14071 var cookie_default = { 14072 TYPES: CONSENT_TYPES, 14073 get: getCookie, 14074 remove: removeCookie, 14075 set: setCookie 14076 }; 14077 14078
14078// src/main/resources/META-INF/resources/liferay/util/get_dom.js 14079 function getDOM(element) { 14080 if (element._node || element._nodes) { 14081 return element.nodeType ? element : element._node || null; 14082 } 14083 return element; 14084 } 14085 14086
14086// src/main/resources/META-INF/resources/liferay/util/get_element.js 14087 function getElement2(element) { 14088 const currentElement = getDOM(element); 14089 return typeof currentElement === "string" ? document.querySelector(currentElement) : currentElement.jquery ? currentElement[0] : currentElement; 14090 } 14091 14092
14092// src/main/resources/META-INF/resources/liferay/util/in_browser_view.js 14093 function inBrowserView(node, baseWindow, nodeRegion) { 14094 let viewable = false; 14095 node = getElement2(node); 14096 if (node) { 14097 if (!nodeRegion) { 14098 nodeRegion = node.getBoundingClientRect(); 14099 nodeRegion = { 14100 left: nodeRegion.left + window.scrollX, 14101 top: nodeRegion.top + window.scrollY 14102 }; 14103 nodeRegion.bottom = nodeRegion.top + node.offsetHeight; 14104 nodeRegion.right = nodeRegion.left + node.offsetWidth; 14105 } 14106 if (!baseWindow) { 14107 baseWindow = window; 14108 } 14109 baseWindow = getElement2(baseWindow); 14110 const winRegion = {}; 14111 winRegion.left = baseWindow.scrollX; 14112 winRegion.right = winRegion.left + baseWindow.innerWidth; 14113 winRegion.top = baseWindow.scrollY; 14114 winRegion.bottom = winRegion.top + baseWindow.innerHeight; 14115 viewable = nodeRegion.bottom <= winRegion.bottom && nodeRegion.left >= winRegion.left && nodeRegion.right <= winRegion.right && nodeRegion.top >= winRegion.top; 14116 if (viewable) { 14117 const frameElement = baseWindow.frameElement; 14118 if (frameElement) { 14119 let frameOffset = frameElement.getBoundingClientRect(); 14120 frameOffset = { 14121 left: frameOffset.left + window.scrollX, 14122 top: frameOffset.top + window.scrollY 14123 }; 14124 const xOffset = frameOffset.left - winRegion.left; 14125 nodeRegion.left += xOffset; 14126 nodeRegion.right += xOffset; 14127 const yOffset = frameOffset.top - winRegion.top; 14128 nodeRegion.top += yOffset; 14129 nodeRegion.bottom += yOffset; 14130 viewable = inBrowserView(node, baseWindow.parent, nodeRegion); 14131 } 14132 } 14133 } 14134 return viewable; 14135 } 14136 14137
14137// src/main/resources/META-INF/resources/liferay/util/focus_form_field.js 14138 function getDisabledParents(element) { 14139 const result = []; 14140 while (element.parentElement) { 14141 if (element.parentElement.getAttribute("disabled")) { 14142 result.push(element.parentElement); 14143 } 14144 element = element.parentElement; 14145 } 14146 return result; 14147 } 14148 function focusFormField(element) { 14149 element = getElement2(element); 14150 if (inBrowserView(element)) { 14151 const disabledParents = getDisabledParents(element); 14152 const focusable = !element.getAttribute("disabled") && element.offsetWidth > 0 && element.offsetHeight > 0 && !disabledParents.length; 14153 const form = element.closest("form"); 14154 if (!form || focusable) { 14155 element.focus(); 14156 } else if (form) { 14157 const portletName = form.dataset.fmNamespace; 14158 const formReadyEventName = portletName + "formReady"; 14159 const formReadyHandler = (event) => { 14160 const elFormName = form.getAttribute("name"); 14161 const formName = event.formName; 14162 if (elFormName === formName) { 14163 element.focus(); 14164 Liferay.detach(formReadyEventName, formReadyHandler); 14165 } 14166 }; 14167 Liferay.on(formReadyEventName, formReadyHandler); 14168 } 14169 } 14170 } 14171 14172
14172// src/main/resources/META-INF/resources/liferay/util/form/get_form_element.es.js 14173 function getFormElement(form, elementName) { 14174 let formElement = null; 14175 if (form !== void 0 && form.nodeName === "FORM" && typeof elementName === "string") { 14176 const ns2 = form.dataset.fmNamespace || ""; 14177 formElement = form.elements[ns2 + elementName] || null; 14178 } 14179 return formElement; 14180 } 14181 14182
14182// src/main/resources/META-INF/resources/liferay/util/form/set_form_values.es.js 14183 function setFormValues(form, data) { 14184 if (form === void 0 || form.nodeName !== "FORM" || !isObject(data)) { 14185 return; 14186 } 14187 const entries = Object.entries(data); 14188 entries.forEach(([elementName, elementValue]) => { 14189 const element = getFormElement(form, elementName); 14190 if (element) { 14191 element.value = elementValue; 14192 } 14193 }); 14194 } 14195 14196
14196// src/main/resources/META-INF/resources/liferay/util/form/post_form.es.js 14197 function postForm(form, options) { 14198 if (typeof form === "string") { 14199 form = document.querySelector(form); 14200 } 14201 if (form && form.nodeName === "FORM") { 14202 form.setAttribute("method", "post"); 14203 if (isObject(options)) { 14204 const { data, url } = options; 14205 if (isObject(data)) { 14206 setFormValues(form, data); 14207 } else { 14208 return; 14209 } 14210 if (url === void 0) { 14211 submitForm(form); 14212 } else if (typeof url === "string") { 14213 submitForm(form, url); 14214 } 14215 } else { 14216 submitForm(form); 14217 } 14218 } 14219 } 14220 14221
14221// src/main/resources/META-INF/resources/liferay/util/format_storage.es.js 14222 var DEFAULT_OPTIONS = { 14223 addSpaceBeforeSuffix: false, 14224 decimalSeparator: ".", 14225 denominator: 1024, 14226 suffixGB: "GB", 14227 suffixKB: "KB", 14228 suffixMB: "MB" 14229 }; 14230 function formatStorage(size, options = {}) { 14231 const { 14232 addSpaceBeforeSuffix, 14233 decimalSeparator, 14234 denominator, 14235 suffixGB, 14236 suffixKB, 14237 suffixMB 14238 } = { 14239 ...DEFAULT_OPTIONS, 14240 ...options 14241 }; 14242 if (typeof size !== "number") { 14243 throw new TypeError("Parameter size must be a number"); 14244 } 14245 let decimalPlaces = 0; 14246 let suffix = suffixKB; 14247 size /= denominator; 14248 if (size >= denominator) { 14249 suffix = suffixMB; 14250 size /= denominator; 14251 decimalPlaces = 1; 14252 } 14253 if (size >= denominator) { 14254 suffix = suffixGB; 14255 size /= denominator; 14256 decimalPlaces = 1; 14257 } 14258 let fixedSize = size.toFixed(decimalPlaces); 14259 if (decimalSeparator !== ".") { 14260 fixedSize = fixedSize.replace(/\./, decimalSeparator); 14261 } 14262 return fixedSize + (addSpaceBeforeSuffix ? " " : "") + suffix; 14263 } 14264 14265
14265// src/main/resources/META-INF/resources/liferay/util/format_xml.es.js 14266 var NEW_LINE = "\r\n"; 14267 var REGEX_CDATA = /<!\[CDATA\[.*?\]\]>/gs; 14268 var REGEX_DECLARATIVE_CLOSE = /-->|\]>/; 14269 var REGEX_DECLARATIVE_OPEN = /<!/; 14270 var REGEX_DIRECTIVE = /<\?/; 14271 var REGEX_DOCTYPE = /!DOCTYPE/; 14272 var REGEX_ELEMENT = /^<\w/; 14273 var REGEX_ELEMENT_CLOSE = /^<\/\w/; 14274 var REGEX_ELEMENT_NAMESPACED = /^<[\w:\-.,]+/; 14275 var REGEX_ELEMENT_NAMESPACED_CLOSE = /^<\/[\w:\-.,]+/; 14276 var REGEX_ELEMENT_OPEN = /<\w/; 14277 var REGEX_NAMESPACE_XML = /xmlns(?::|=)/g; 14278 var REGEX_NAMESPACE_XML_ATTR = /\s*(xmlns)(:|=)/g; 14279 var REGEX_TAG_CLOSE = /<\//; 14280 var REGEX_TAG_OPEN = /</g; 14281 var REGEX_TAG_SINGLE_CLOSE = /\/>/; 14282 var REGEX_WHITESPACE_BETWEEN_TAGS = />\s+</g; 14283 var STR_BLANK = ""; 14284 var STR_TOKEN = "~::~"; 14285 var STR_TOKEN_CDATA = "<" + STR_TOKEN + "CDATA" + STR_TOKEN + ">"; 14286 var REGEX_TOKEN_CDATA = new RegExp(STR_TOKEN_CDATA, "g"); 14287 var TAG_INDENT = " "; 14288 var DEFAULT_OPTIONS2 = { 14289 newLine: NEW_LINE, 14290 tagIndent: TAG_INDENT 14291 }; 14292 function formatXML(content, options = {}) { 14293 const { newLine, tagIndent } = { 14294 ...DEFAULT_OPTIONS2, 14295 ...options 14296 }; 14297 if (typeof content !== "string") { 14298 throw new TypeError("Parameter content must be a string"); 14299 } 14300 const cdata = []; 14301 content = content.trim(); 14302 content = content.replace(REGEX_CDATA, (match) => { 14303 cdata.push(match); 14304 return STR_TOKEN_CDATA; 14305 }); 14306 content = content.replace(REGEX_WHITESPACE_BETWEEN_TAGS, "><"); 14307 content = content.replace(REGEX_TAG_OPEN, STR_TOKEN + "<"); 14308 content = content.replace(REGEX_NAMESPACE_XML_ATTR, STR_TOKEN + "$1$2"); 14309 content = content.replace(REGEX_TOKEN_CDATA, () => cdata.shift()); 14310 let commentCounter = 0; 14311 let inComment = false; 14312 const items = content.split(STR_TOKEN); 14313 let level = 0; 14314 let result = ""; 14315 items.forEach((item, index) => { 14316 if (REGEX_CDATA.test(item)) { 14317 result += indent(level, newLine, tagIndent) + item; 14318 } else if (REGEX_DECLARATIVE_OPEN.test(item)) { 14319 result += indent(level, newLine, tagIndent) + item; 14320 commentCounter++; 14321 inComment = true; 14322 if (REGEX_DECLARATIVE_CLOSE.test(item) || REGEX_DOCTYPE.test(item)) { 14323 commentCounter--; 14324 inComment = commentCounter !== 0; 14325 } 14326 } else if (REGEX_DECLARATIVE_CLOSE.test(item)) { 14327 result += item; 14328 commentCounter--; 14329 inComment = commentCounter !== 0; 14330 } else if (REGEX_ELEMENT.exec(items[index - 1]) && REGEX_ELEMENT_CLOSE.exec(item) && REGEX_ELEMENT_NAMESPACED.exec(items[index - 1]).toString() === REGEX_ELEMENT_NAMESPACED_CLOSE.exec(item)[0].replace("/", STR_BLANK).toString()) { 14331 result += item; 14332 if (!inComment) { 14333 --level; 14334 } 14335 } else if (REGEX_ELEMENT_OPEN.test(item) && !REGEX_TAG_CLOSE.test(item) && !REGEX_TAG_SINGLE_CLOSE.test(item)) { 14336 if (inComment) { 14337 result += item; 14338 } else { 14339 result += indent(level++, newLine, tagIndent) + item; 14340 } 14341 } else if (REGEX_ELEMENT_OPEN.test(item) && REGEX_TAG_CLOSE.test(item)) { 14342 if (inComment) { 14343 result += item; 14344 } else { 14345 result += indent(level, newLine, tagIndent) + item; 14346 } 14347 } else if (REGEX_TAG_CLOSE.test(item)) { 14348 if (inComment) { 14349 result += item; 14350 } else { 14351 result += indent(--level, newLine, tagIndent) + item; 14352 } 14353 } else if (REGEX_TAG_SINGLE_CLOSE.test(item)) { 14354 if (inComment) { 14355 result += item; 14356 } else { 14357 result += indent(level, newLine, tagIndent) + item; 14358 } 14359 } else if (REGEX_DIRECTIVE.test(item)) { 14360 result += indent(level, newLine, tagIndent) + item; 14361 } else if (REGEX_NAMESPACE_XML) { 14362 result += indent(level, newLine, tagIndent) + item; 14363 } else { 14364 result += item; 14365 } 14366 if (new RegExp("^" + newLine).test(result)) { 14367 result = result.slice(newLine.length); 14368 } 14369 }); 14370 return result; 14371 } 14372 function indent(level, newLine, tagIndent) { 14373 return newLine + new Array(level + 1).join(tagIndent); 14374 } 14375 14376
14376// src/main/resources/META-INF/resources/liferay/util/get_checkboxes.js 14377 function getCheckboxes(form, except, name, state) { 14378 if (typeof form === "string") { 14379 form = document.querySelector(form); 14380 } else { 14381 form = form._node || form; 14382 } 14383 let selector = "input[type=checkbox]"; 14384 if (name) { 14385 selector += `[name=${name}]`; 14386 } 14387 const checkboxes = Array.from(form.querySelectorAll(selector)); 14388 if (!checkboxes.length) { 14389 return ""; 14390 } 14391 return checkboxes.reduce((previous, item) => { 14392 const { checked, disabled, name: name2, value } = item; 14393 if (value && name2 !== except && checked === state && !disabled) { 14394 previous.push(value); 14395 } 14396 return previous; 14397 }, []).join(); 14398 } 14399 function getCheckedCheckboxes(form, except, name) { 14400 return getCheckboxes(form, except, name, true); 14401 } 14402 function getUncheckedCheckboxes(form, except, name) { 14403 return getCheckboxes(form, except, name, false); 14404 } 14405 14406
14406// src/main/resources/META-INF/resources/liferay/util/get_crop_region.es.js 14407 function getCropRegion(imagePreview, region) { 14408 if (!isObject(imagePreview) || isObject(imagePreview) && imagePreview.tagName !== "IMG") { 14409 throw new TypeError("Parameter imagePreview must be an image"); 14410 } 14411 if (!isObject(region)) { 14412 throw new TypeError("Parameter region must be an object"); 14413 } 14414 const scaleX = imagePreview.naturalWidth / imagePreview.offsetWidth; 14415 const scaleY = imagePreview.naturalHeight / imagePreview.offsetHeight; 14416 const height = region.height ? region.height * scaleY : imagePreview.naturalHeight; 14417 const width = region.width ? region.width * scaleX : imagePreview.naturalWidth; 14418 const x = region.x ? Math.max(region.x * scaleX, 0) : 0; 14419 const y = region.y ? Math.max(region.y * scaleY, 0) : 0; 14420 return { 14421 height, 14422 width, 14423 x, 14424 y 14425 }; 14426 } 14427 14428
14428// src/main/resources/META-INF/resources/liferay/util/get_geolocation.js 14429 function getGeolocation(success, fallback, options) { 14430 if (success && navigator.geolocation) { 14431 navigator.geolocation.getCurrentPosition( 14432 (position) => { 14433 success( 14434 position.coords.latitude, 14435 position.coords.longitude, 14436 position 14437 ); 14438 }, 14439 fallback, 14440 options 14441 ); 14442 } else if (fallback) { 14443 fallback(); 14444 } 14445 } 14446 14447
14447// src/main/resources/META-INF/resources/liferay/util/get_lexicon_icon.js 14448 function getLexiconIcon(icon, cssClass = "") { 14449 if (!icon) { 14450 throw new TypeError("Parameter icon must be provided"); 14451 } 14452 function getLexiconIconHTML(iconName, cssClass2) { 14453 return `<svg 14454 aria-hidden="true" 14455 class="lexicon-icon lexicon-icon-${iconName} ${cssClass2}" 14456 focusable="false" 14457 role="presentation" 14458 > 14459 <use href="${Liferay.Icons.spritemap}#${iconName}" /> 14460 </svg>`; 14461 } 14462 const lexiconIconTemplate = getLexiconIconHTML(icon, cssClass); 14463 const tempElement = document.createElement("div"); 14464 tempElement.innerHTML = lexiconIconTemplate; 14465 return tempElement.firstChild; 14466 } 14467 14468
14468// src/main/resources/META-INF/resources/liferay/util/get_lexicon_icon_template.js 14469 function getLexiconIconTpl(icon, cssClass = "") { 14470 return `<svg aria-hidden="true" class="lexicon-icon lexicon-icon-${icon} ${cssClass}" focusable="false" role="presentation"><use href="${Liferay.Icons.spritemap}#${icon}" /></svg>`; 14471 } 14472 14473
14473// src/main/resources/META-INF/resources/liferay/util/get_opener.js 14474 var _opener; 14475 function getOpener() { 14476 let openingWindow = _opener; 14477 if (!openingWindow) { 14478 const topUtil = getTop().Liferay.Util; 14479 const windowName = window.name; 14480 const dialog = topUtil.Window.getById(windowName); 14481 if (dialog) { 14482 openingWindow = dialog._opener; 14483 _opener = openingWindow; 14484 } 14485 } 14486 return openingWindow || window.opener || window.parent; 14487 } 14488 14489
14489// src/main/resources/META-INF/resources/liferay/util/get_selected_option_values.js 14490 function getSelectedOptionValues(select, delimiter = ",") { 14491 const optionsArray = Array.from(select.getElementsByTagName("option")); 14492 return optionsArray.reduce((previous, item) => { 14493 const { value } = item; 14494 if (value) { 14495 previous.push(value); 14496 } 14497 return previous; 14498 }, []).join(delimiter); 14499 } 14500 14501
14501// src/main/resources/META-INF/resources/liferay/util/get_url_with_session_id.js 14502 function getURLWithSessionId(url) { 14503 if (!themeDisplay.isAddSessionIdToURL()) { 14504 return url; 14505 } 14506 let separatorIndex = url.indexOf(";"); 14507 if (separatorIndex > -1) { 14508 return url; 14509 } 14510 const sessionId = `;jsessionid=${themeDisplay.getSessionId()}`; 14511 separatorIndex = url.indexOf("?"); 14512 if (separatorIndex > -1) { 14513 return `${url.substring(0, separatorIndex)}${sessionId}${url.substring( 14514 separatorIndex 14515 )}`; 14516 } 14517 separatorIndex = url.indexOf("//"); 14518 if (separatorIndex > -1) { 14519 const lastSeparatorIndex = url.lastIndexOf("/"); 14520 if (separatorIndex + 1 === lastSeparatorIndex) { 14521 return `${url}/${sessionId}`; 14522 } 14523 } 14524 return `${url}${sessionId}`; 14525 } 14526 14527
14527// src/main/resources/META-INF/resources/liferay/util/get_window.js 14528 function getWindow(windowId = window.name) { 14529 const topWindow = getTop(); 14530 return topWindow.Liferay.Util.Window.getById(windowId); 14531 } 14532 14533
14533// src/main/resources/META-INF/resources/liferay/util/is_phone.js 14534 function isPhone() { 14535 return window.innerWidth < breakpoints_default.PHONE; 14536 } 14537 14538
14538// src/main/resources/META-INF/resources/liferay/util/is_tablet.js 14539 function isTablet() { 14540 return window.innerWidth < breakpoints_default.TABLET; 14541 } 14542 14543
14543// src/main/resources/META-INF/resources/liferay/util/storage.js 14544 var Storage = class { 14545 constructor(storage) { 14546 __publicField(this, "TYPES", CONSENT_TYPES); 14547 this.storage = storage; 14548 } 14549 clear() { 14550 return this.storage.clear(); 14551 } 14552 getItem(key, type) { 14553 if (!checkConsent(type)) { 14554 return null; 14555 } 14556 return this.storage.getItem(key); 14557 } 14558 key(index, type) { 14559 if (!checkConsent(type)) { 14560 return null; 14561 } 14562 return this.storage.key(index); 14563 } 14564 removeItem(key) { 14565 return this.storage.removeItem(key); 14566 } 14567 setItem(key, value, type) { 14568 if (!checkConsent(type)) { 14569 return false; 14570 } 14571 this.storage.setItem(key, value); 14572 return true; 14573 } 14574 get length() { 14575 return this.storage.length; 14576 } 14577 }; 14578 14579
14579// src/main/resources/META-INF/resources/liferay/util/local_storage.js 14580 var local_storage_default = new Storage(localStorage); 14581 14582
14582// src/main/resources/META-INF/resources/liferay/util/navigate.es.js 14583 function navigate_es_default(url, listeners) { 14584 let urlString = url; 14585 if (url?.constructor?.name === "URL") { 14586 urlString = String(url); 14587 } 14588 if (Liferay.SPA?.app?.canNavigate(urlString)) { 14589 Liferay.SPA.app.navigate(urlString); 14590 if (listeners) { 14591 Object.keys(listeners).forEach((key) => { 14592 Liferay.once(key, listeners[key]); 14593 }); 14594 } 14595 } else if (isValidURL(urlString)) { 14596 window.location.href = urlString; 14597 } 14598 } 14599 function isValidURL(url) { 14600 let urlObject; 14601 try { 14602 if (url.startsWith("/")) { 14603 urlObject = new URL(url, window.location.origin); 14604 } else { 14605 urlObject = new URL(url); 14606 } 14607 } catch (error) { 14608 return false; 14609 } 14610 return urlObject.protocol === "http:" || urlObject.protocol === "https:"; 14611 } 14612 14613
14613// src/main/resources/META-INF/resources/liferay/util/normalize_friendly_url.js 14614 function normalizeFriendlyURL(text) { 14615 if (typeof text !== "string") { 14616 throw new TypeError("parameter text must be a string"); 14617 } 14618 return text.replace(/[^a-z0-9_-]/gi, "-").replace(/^-+/, "").replace(/--+/, "-").toLowerCase(); 14619 } 14620 14621
14621// src/main/resources/META-INF/resources/liferay/util/ns.es.js 14622 var nsCached = memoize((namespace, str) => { 14623 if (typeof str !== "undefined" && !(str.lastIndexOf(namespace, 0) === 0)) { 14624 str = `${namespace}${str}`; 14625 } 14626 return str; 14627 }); 14628 function ns(namespace, object) { 14629 let value; 14630 if (typeof object !== "object") { 14631 value = nsCached(namespace, object); 14632 } else { 14633 value = {}; 14634 const keys = Object.keys(object); 14635 keys.forEach((item) => { 14636 const originalItem = item; 14637 item = nsCached(namespace, item); 14638 value[item] = object[originalItem]; 14639 }); 14640 } 14641 return value; 14642 } 14643 14644
14644// src/main/resources/META-INF/resources/liferay/util/object_to_url_search_params.es.js 14645 function objectToURLSearchParams(object) { 14646 if (!isObject(object)) { 14647 throw new TypeError("Parameter obj must be an object"); 14648 } 14649 const urlSearchParams = new URLSearchParams(); 14650 Object.entries(object).forEach(([key, value]) => { 14651 if (Array.isArray(value)) { 14652 for (let i = 0; i < value.length; i++) { 14653 urlSearchParams.append(key, value[i]); 14654 } 14655 } else { 14656 urlSearchParams.append(key, value); 14657 } 14658 }); 14659 return urlSearchParams; 14660 } 14661 14662
14662// src/main/resources/META-INF/resources/liferay/util/portlet_configuration_icon_action.js 14663 var portletConfigurationIconActions = /* @__PURE__ */ new Map(); 14664 function getPortletConfigurationIconAction(id) { 14665 return portletConfigurationIconActions.get(id); 14666 } 14667 function setPortletConfigurationIconAction(id, callback) { 14668 portletConfigurationIconActions.set(id, callback); 14669 } 14670 14671
14671// src/main/resources/META-INF/resources/liferay/util/portlet_url/create_action_url.es.js 14672 function createActionURL(basePortletURL, parameters = {}) { 14673 return createPortletURL(basePortletURL, { 14674 ...parameters, 14675 p_p_lifecycle: "1" 14676 }); 14677 } 14678 14679
14679// src/main/resources/META-INF/resources/liferay/util/portlet_url/create_render_url.es.js 14680 function createRenderURL(basePortletURL, parameters = {}) { 14681 return createPortletURL(basePortletURL, { 14682 ...parameters, 14683 p_p_lifecycle: "0" 14684 }); 14685 } 14686 14687
14687// src/main/resources/META-INF/resources/liferay/util/portlet_url/create_resource_url.es.js 14688 function createResourceURL(basePortletURL, parameters = {}) { 14689 return createPortletURL(basePortletURL, { 14690 ...parameters, 14691 p_p_lifecycle: "2" 14692 }); 14693 } 14694 14695
14695// src/main/resources/META-INF/resources/liferay/util/remove_entity_selection.js 14696 function removeEntitySelection(entityIdString, entityNameString, removeEntityButton, namespace) { 14697 const elementByEntityId = document.getElementById( 14698 `${namespace}${entityIdString}` 14699 ); 14700 if (elementByEntityId) { 14701 elementByEntityId.value = 0; 14702 } 14703 const elementByEntityName = document.getElementById( 14704 `${namespace}${entityNameString}` 14705 ); 14706 if (elementByEntityName) { 14707 elementByEntityName.value = ""; 14708 } 14709 toggleDisabled(removeEntityButton, true); 14710 Liferay.fire("entitySelectionRemoved"); 14711 } 14712 14713
14713// src/main/resources/META-INF/resources/liferay/util/run_scripts_in_element.es.js 14714 function runJSFromText(sourceScriptElement, next, appendFn) { 14715 const { text, type } = sourceScriptElement; 14716 const scriptElement = document.createElement("script"); 14717 if (Liferay.CSP.nonce) { 14718 scriptElement.setAttribute("nonce", Liferay.CSP.nonce); 14719 } 14720 scriptElement.text = text; 14721 scriptElement.type = type; 14722 if (appendFn) { 14723 appendFn(scriptElement); 14724 } else { 14725 document.head.appendChild(scriptElement); 14726 } 14727 scriptElement.remove(); 14728 next(); 14729 } 14730 function runJSFromFile(sourceScriptElement, next, appendFn) { 14731 const { src, type } = sourceScriptElement; 14732 const scriptElement = document.createElement("script"); 14733 if (Liferay.CSP.nonce) { 14734 scriptElement.setAttribute("nonce", Liferay.CSP.nonce); 14735 } 14736 scriptElement.src = src; 14737 scriptElement.type = type; 14738 const callback = function() { 14739 scriptElement.remove(); 14740 next(); 14741 }; 14742 scriptElement.addEventListener("load", callback, { once: true }); 14743 scriptElement.addEventListener("error", callback, { once: true }); 14744 if (appendFn) { 14745 appendFn(scriptElement); 14746 } else { 14747 document.head.appendChild(scriptElement); 14748 } 14749 } 14750 function runScriptsInOrder(scripts, i, defaultFn, appendFn) { 14751 const scriptElement = scripts[i]; 14752 const runNextScript = () => { 14753 if (i < scripts.length - 1) { 14754 runScriptsInOrder(scripts, i + 1, defaultFn, appendFn); 14755 } else if (defaultFn) { 14756 setTimeout(defaultFn); 14757 } 14758 }; 14759 if (!scriptElement) { 14760 return; 14761 } else if (scriptElement.type && scriptElement.type !== "text/javascript" && scriptElement.type !== "module" && scriptElement.type !== "module-shim") { 14762 runNextScript(); 14763 } else { 14764 scriptElement.remove(); 14765 if (scriptElement.src) { 14766 runJSFromFile(scriptElement, runNextScript, appendFn); 14767 } else { 14768 runJSFromText(scriptElement, runNextScript, appendFn); 14769 } 14770 } 14771 } 14772 function run_scripts_in_element_es_default(element, defaultFn, appendFn) { 14773 const scripts = element.querySelectorAll("script"); 14774 if (!scripts.length && defaultFn) { 14775 setTimeout(defaultFn); 14776 return; 14777 } 14778 runScriptsInOrder(scripts, 0, defaultFn, appendFn); 14779 } 14780 14781
14781// src/main/resources/META-INF/resources/liferay/util/select_folder.js 14782 function selectFolder(folderData, namespace) { 14783 const folderDataElement = document.getElementById( 14784 `${namespace}${folderData.idString}` 14785 ); 14786 if (folderDataElement) { 14787 folderDataElement.value = folderData.idValue; 14788 } 14789 const folderNameElement = document.getElementById( 14790 `${namespace}${folderData.nameString}` 14791 ); 14792 if (folderNameElement) { 14793 folderNameElement.value = Liferay.Util.unescape(folderData.nameValue); 14794 } 14795 const removeFolderButton = document.getElementById( 14796 `${namespace}removeFolderButton` 14797 ); 14798 if (removeFolderButton) { 14799 toggleDisabled(removeFolderButton, false); 14800 } 14801 } 14802 14803
14803// src/main/resources/META-INF/resources/liferay/util/session.es.js 14804 var TOKEN_SERIALIZE = "serialize://"; 14805 function getSessionClickFormData(cmd) { 14806 const doAsUserIdEncoded = Liferay.ThemeDisplay.getDoAsUserIdEncoded(); 14807 const formData = new FormData(); 14808 formData.append("cmd", cmd); 14809 formData.append("p_auth", Liferay.authToken); 14810 if (doAsUserIdEncoded) { 14811 formData.append("doAsUserId", doAsUserIdEncoded); 14812 } 14813 return formData; 14814 } 14815 function getSessionClickURL() { 14816 return `${Liferay.ThemeDisplay.getPortalURL()}${Liferay.ThemeDisplay.getPathMain()}/portal/session_click`; 14817 } 14818 function getSessionValue(key, options = {}) { 14819 const formData = getSessionClickFormData("get"); 14820 formData.append("key", key); 14821 if (options.useHttpSession) { 14822 formData.append("useHttpSession", true); 14823 } 14824 return defaultFetch(getSessionClickURL(), { 14825 body: formData, 14826 method: "POST" 14827 }).then((response) => response.text()).then((responseText) => { 14828 if (responseText.startsWith(TOKEN_SERIALIZE)) { 14829 const value = responseText.substring(TOKEN_SERIALIZE.length); 14830 responseText = JSON.parse(value); 14831 } 14832 return responseText; 14833 }); 14834 } 14835 function setSessionValue(key, value, options = {}) { 14836 const formData = getSessionClickFormData("set"); 14837 if (value && typeof value === "object") { 14838 value = TOKEN_SERIALIZE + JSON.stringify(value); 14839 } 14840 formData.append(key, value); 14841 if (options.useHttpSession) { 14842 formData.append("useHttpSession", true); 14843 } 14844 return defaultFetch(getSessionClickURL(), { 14845 body: formData, 14846 method: "POST" 14847 }); 14848 } 14849 14850
14850// src/main/resources/META-INF/resources/liferay/util/session_storage.js 14851 var session_storage_default = new Storage(sessionStorage); 14852 14853
14853// src/main/resources/META-INF/resources/liferay/util/show_caps_lock.js 14854 function showCapsLock(event, elementId) { 14855 const element = document.getElementById(elementId); 14856 if (element) { 14857 element.style.display = "none"; 14858 if (event.getModifierState("CapsLock")) { 14859 element.style.display = ""; 14860 } 14861 } 14862 } 14863 14864
14864// src/main/resources/META-INF/resources/liferay/util/sub.ts 14865 var SPLIT_REGEX = /({\d+})/g; 14866 function sub(langKey, ...params) { 14867 const paramList = params.reduce( 14868 (paramList2, param) => Array.isArray(param) ? [...paramList2, ...param] : [...paramList2, param], 14869 [] 14870 ); 14871 const keyArray = langKey.split(SPLIT_REGEX).filter((val) => val.length !== 0); 14872 for (let i = 0; i < paramList.length; i++) { 14873 const param = paramList[i]; 14874 const indexKey = `{${i}}`; 14875 let paramIndex = keyArray.indexOf(indexKey); 14876 while (paramIndex >= 0) { 14877 keyArray.splice(paramIndex, 1, param); 14878 paramIndex = keyArray.indexOf(indexKey); 14879 } 14880 } 14881 return keyArray.some((value) => value && typeof value === "object") ? keyArray : keyArray.join(""); 14882 } 14883 14884
14884// src/main/resources/META-INF/resources/liferay/util/toggle_boxes.js 14885 function toggleBoxes(checkBoxId, toggleBoxId, displayWhenUnchecked, toggleChildCheckboxes) { 14886 const checkBox = document.getElementById(checkBoxId); 14887 const toggleBox = document.getElementById(toggleBoxId); 14888 if (checkBox && toggleBox) { 14889 let checked = checkBox.checked; 14890 if (displayWhenUnchecked) { 14891 checked = !checked; 14892 } 14893 if (checked) { 14894 toggleBox.classList.remove("hide"); 14895 } else { 14896 toggleBox.classList.add("hide"); 14897 } 14898 checkBox.addEventListener("click", () => { 14899 toggleBox.classList.toggle("hide"); 14900 if (toggleChildCheckboxes) { 14901 const childCheckboxes = toggleBox.querySelectorAll( 14902 "input[type=checkbox]" 14903 ); 14904 childCheckboxes.forEach((childCheckbox) => { 14905 childCheckbox.checked = checkBox.checked; 14906 }); 14907 } 14908 }); 14909 } 14910 } 14911 14912
14912// src/main/resources/META-INF/resources/liferay/util/toggle_controls.js 14913 var MAP_TOGGLE_STATE = { 14914 false: { 14915 cssClass: "controls-hidden", 14916 iconCssClass: "hidden", 14917 state: "hidden" 14918 }, 14919 true: { 14920 cssClass: "controls-visible", 14921 iconCssClass: "view", 14922 state: "visible" 14923 } 14924 }; 14925 function toggleControls(node) { 14926 const body = document.body; 14927 node = node._node || body; 14928 const trigger = node.querySelector(".toggle-controls"); 14929 if (!trigger) { 14930 return; 14931 } 14932 let controlsVisible = Liferay._editControlsState === "visible"; 14933 let currentState = MAP_TOGGLE_STATE[controlsVisible]; 14934 let icon = trigger.querySelector(".lexicon-icon"); 14935 if (icon) { 14936 currentState.icon = icon; 14937 } 14938 body.classList.add(currentState.cssClass); 14939 Liferay.fire("toggleControls", { 14940 enabled: controlsVisible 14941 }); 14942 trigger.addEventListener("click", () => { 14943 controlsVisible = !controlsVisible; 14944 const previousState = currentState; 14945 currentState = MAP_TOGGLE_STATE[controlsVisible]; 14946 body.classList.toggle(previousState.cssClass); 14947 body.classList.toggle(currentState.cssClass);
14948 const editControlsIconClass = currentState.iconCssClass; 14949 const editControlsState = currentState.state; 14950 const newIcon = getLexiconIcon(editControlsIconClass); 14951 currentState.icon = newIcon; 14952 icon.replaceWith(newIcon); 14953 icon = newIcon; 14954 Liferay._editControlsState = editControlsState; 14955 setSessionValue( 14956 "com.liferay.frontend.js.web_toggleControls", 14957 editControlsState 14958 ); 14959 Liferay.fire("toggleControls", { 14960 enabled: controlsVisible, 14961 src: "ui" 14962 }); 14963 }); 14964 } 14965 14966
14966// src/main/resources/META-INF/resources/liferay/util/toggle_radio.js 14967 function toggleRadio(radioId, showBoxIds, hideBoxIds) { 14968 const radioButton = document.getElementById(radioId); 14969 if (radioButton) { 14970 let showBoxes; 14971 if (showBoxIds) { 14972 if (Array.isArray(showBoxIds)) { 14973 showBoxIds = showBoxIds.join(",#"); 14974 } 14975 showBoxes = document.querySelectorAll(`#${showBoxIds}`); 14976 showBoxes.forEach((showBox) => { 14977 if (radioButton.checked) { 14978 showBox.classList.remove("hide"); 14979 } else { 14980 showBox.classList.add("hide"); 14981 } 14982 }); 14983 } 14984 radioButton.addEventListener("change", () => { 14985 if (showBoxes) { 14986 showBoxes.forEach((showBox) => { 14987 showBox.classList.remove("hide"); 14988 }); 14989 } 14990 if (hideBoxIds) { 14991 if (Array.isArray(hideBoxIds)) { 14992 hideBoxIds = hideBoxIds.join(",#"); 14993 } 14994 const hideBoxes = document.querySelectorAll(`#${hideBoxIds}`); 14995 hideBoxes.forEach((hideBox) => { 14996 hideBox.classList.add("hide"); 14997 }); 14998 } 14999 }); 15000 } 15001 } 15002 15003
15003// src/main/resources/META-INF/resources/liferay/util/toggle_select_box.js 15004 var toggle = (selectBox, toggleBox, dynamicValue, value) => { 15005 const currentValue = selectBox.value; 15006 const visible = dynamicValue ? value(currentValue, value) : value === currentValue; 15007 toggleBox.classList.toggle("hide", !visible); 15008 }; 15009 function toggleSelectBox(selectBoxId, value, toggleBoxId) { 15010 const selectBox = document.getElementById(selectBoxId); 15011 const toggleBox = document.getElementById(toggleBoxId); 15012 if (!selectBox || !toggleBox) { 15013 return; 15014 } 15015 const dynamicValue = typeof value === "function"; 15016 toggle(selectBox, toggleBox, dynamicValue, value); 15017 selectBox.addEventListener( 15018 "change", 15019 () => toggle(selectBox, toggleBox, dynamicValue, value) 15020 ); 15021 } 15022 15023
15023// src/main/resources/META-INF/resources/liferay/zIndex.js 15024 var zIndex_default = { 15025 ALERT: 430, 15026 DOCK: 10, 15027 DOCK_PARENT: 20, 15028 DRAG_ITEM: 460, 15029 DROP_AREA: 440, 15030 DROP_POSITION: 450, 15031 MENU: 5e3, 15032 OVERLAY: 1e3, 15033 POPOVER: 1600, 15034 TOOLTIP: 1e4, 15035 WINDOW: 1200 15036 }; 15037 15038
15038// src/main/resources/META-INF/resources/liferay/global.es.js 15039 var PATH_CONTEXT = Liferay.ThemeDisplay.getPathContext(); 15040 Liferay = window.Liferay || {}; 15041 Liferay.BREAKPOINTS = breakpoints_default; 15042 Liferay.STATUS_CODE = status_code_default; 15043 Liferay.zIndex = zIndex_default; 15044 Liferay.component = component; 15045 Liferay.componentReady = componentReady; 15046 Liferay.destroyComponent = destroyComponent; 15047 Liferay.destroyComponents = destroyComponents; 15048 Liferay.destroyUnfulfilledPromises = destroyUnfulfilledPromises; 15049 Liferay.getComponentCache = getComponentCache; 15050 Liferay.initComponentCache = initComponentCache; 15051 Liferay.Address = { 15052 getCountries, 15053 getRegions 15054 }; 15055 Liferay.DynamicSelect = DynamicSelect; 15056 Liferay.LayoutExporter = { 15057 all: hideLayoutPane, 15058 details: toggleLayoutDetails, 15059 icons: getLayoutIcons(), 15060 proposeLayout, 15061 publishToLive, 15062 selected: showLayoutPane 15063 }; 15064 Liferay.Portal = { 15065 Tabs: { 15066 show: showTab 15067 }, 15068 ToolTip: { 15069 show: showTooltip 15070 } 15071 }; 15072 Liferay.Portlet = Liferay.Portlet || {}; 15073 Liferay.Portlet.minimize = minimizePortlet; 15074 Liferay.Portlet.openModal = (...args) => { 15075 import( 15076 // eslint-disable-next-line lines-around-comment 15077 /* webpackIgnore: true */ 15078 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 15079 ).then(({ openPortletModal }) => openPortletModal(...args)); 15080 }; 15081 Liferay.Portlet.openWindow = (...args) => { 15082 import( 15083 // eslint-disable-next-line lines-around-comment 15084 /* webpackIgnore: true */ 15085 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 15086 ).then(({ openPortletWindow }) => openPortletWindow(...args)); 15087 }; 15088 Liferay.SideNavigation = side_navigation_es_default; 15089 Liferay.Util = Liferay.Util || {}; 15090 Liferay.Util.MAP_HTML_CHARS_ESCAPED = MAP_HTML_CHARS_ESCAPED; 15091 Liferay.Util.addParams = addParams; 15092 Liferay.Util.openAlertModal = (...args) => { 15093 import( 15094 // eslint-disable-next-line lines-around-comment 15095 /* webpackIgnore: true */ 15096 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 15097 ).then(({ openAlertModal }) => openAlertModal(...args)); 15098 }; 15099 Liferay.Util.openSimpleInputModal = (...args) => { 15100 import( 15101 // eslint-disable-next-line lines-around-comment 15102 /* webpackIgnore: true */ 15103 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 15104 ).then(({ openSimpleInputModal }) => openSimpleInputModal(...args)); 15105 }; 15106 Liferay.Util.AutoSize = autosize_es_default; 15107 Liferay.Util.debounce = debounce_es_default; 15108 Liferay.Util.delegate = delegate_es_default; 15109 Liferay.Util.DynamicInlineScroll = DynamicInlineScroll_es_default; 15110 Liferay.Util.runScriptsInElement = run_scripts_in_element_es_default; 15111 Liferay.Util.disableEsc = () => { 15112 if (document.all && window.event.keyCode === 27) { 15113 window.event.returnValue = false; 15114 } 15115 }; 15116 var htmlEscapes = { 15117 '"': """, 15118 "&": "&", 15119 "'": "'", 15120 "<": "<", 15121 ">": ">" 15122 }; 15123 var reUnescapedHtml = /[&<>"']/g; 15124 var reHasUnescapedHtml = RegExp(reUnescapedHtml.source); 15125 Liferay.Util.escape = (string) => { 15126 return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, (chr) => htmlEscapes[chr]) : string || ""; 15127 }; 15128 Liferay.Util.escapeHTML = escapeHTML; 15129 Liferay.Util.fetch = defaultFetch; 15130 Liferay.Util.focusFormField = focusFormField; 15131 Liferay.Util.formatStorage = formatStorage; 15132 Liferay.Util.formatXML = formatXML; 15133 Liferay.Util.getCheckedCheckboxes = getCheckedCheckboxes; 15134 Liferay.Util.getUncheckedCheckboxes = getUncheckedCheckboxes; 15135 Liferay.Util.getCropRegion = getCropRegion; 15136 Liferay.Util.getDOM = getDOM; 15137 Liferay.Util.getElement = getElement2; 15138 Liferay.Util.getGeolocation = getGeolocation; 15139 Liferay.Util.getFormElement = getFormElement; 15140 Liferay.Util.getLexiconIcon = getLexiconIcon; 15141 Liferay.Util.getLexiconIconTpl = getLexiconIconTpl; 15142 Liferay.Util.getOpener = getOpener; 15143 Liferay.Util.getPortletConfigurationIconAction = getPortletConfigurationIconAction; 15144 Liferay.Util.getPortletId = getPortletId; 15145 Liferay.Util.getPortletNamespace = getPortletNamespace; 15146 Liferay.Util.getSelectedOptionValues = getSelectedOptionValues; 15147 Liferay.Util.getTop = getTop; 15148 Liferay.Util.getURLWithSessionId = getURLWithSessionId; 15149 Liferay.Util.getWindow = getWindow; 15150 Liferay.Util.groupBy = import_lodash.default; 15151 Liferay.Util.inBrowserView = inBrowserView; 15152 Liferay.Util.isEqual = import_lodash2.default; 15153 Liferay.Util.isPhone = isPhone; 15154 Liferay.Util.isTablet = isTablet;
15155 Liferay.Util.loadClientExtensions = loadClientExtensions; 15156 Liferay.Util.loadEditorClientExtensions = loadEditorClientExtensions; 15157 Liferay.Util.navigate = navigate_es_default; 15158 Liferay.Util.ns = ns; 15159 Liferay.Util.objectToFormData = objectToFormData; 15160 Liferay.Util.objectToURLSearchParams = objectToURLSearchParams; 15161 Liferay.Util.normalizeFriendlyURL = normalizeFriendlyURL; 15162 Liferay.Util.PortletURL = { 15163 createActionURL, 15164 createPortletURL, 15165 createRenderURL, 15166 createResourceURL 15167 }; 15168 Liferay.Util.postForm = postForm; 15169 Liferay.Util.setFormValues = setFormValues; 15170 Liferay.Util.toCharCode = to_char_code_es_default; 15171 Liferay.Util.toggleDisabled = toggleDisabled; 15172 Liferay.Util.openConfirmModal = (...args) => { 15173 import( 15174 // eslint-disable-next-line lines-around-comment 15175 /* webpackIgnore: true */ 15176 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 15177 ).then(({ openConfirmModal }) => openConfirmModal(...args)); 15178 }; 15179 Liferay.Util.openModal = (...args) => { 15180 import( 15181 // eslint-disable-next-line lines-around-comment 15182 /* webpackIgnore: true */ 15183 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 15184 ).then(({ openModal }) => openModal(...args)); 15185 }; 15186 Liferay.Util.openSelectionModal = (...args) => { 15187 import( 15188 // eslint-disable-next-line lines-around-comment 15189 /* webpackIgnore: true */ 15190 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 15191 ).then(({ openSelectionModal }) => openSelectionModal(...args)); 15192 }; 15193 Liferay.Util.openToast = (...args) => { 15194 import( 15195 // eslint-disable-next-line lines-around-comment 15196 /* webpackIgnore: true */ 15197 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 15198 ).then(({ openToast }) => openToast(...args)); 15199 }; 15200 Liferay.Util.openWindow = openWindow; 15201 Liferay.Util.removeEntitySelection = removeEntitySelection; 15202 Liferay.Util.selectFolder = selectFolder; 15203 Liferay.Util.setPortletConfigurationIconAction = setPortletConfigurationIconAction; 15204 Liferay.Util.showCapsLock = showCapsLock; 15205 Liferay.Util.sub = sub; 15206 Liferay.Util.Session = { 15207 get: getSessionValue, 15208 set: setSessionValue 15209 }; 15210 Liferay.Util.toggleBoxes = toggleBoxes; 15211 Liferay.Util.toggleControls = toggleControls; 15212 Liferay.Util.toggleRadio = toggleRadio; 15213 Liferay.Util.toggleSelectBox = toggleSelectBox; 15214 var htmlUnescapes = { 15215 "'": "'", 15216 "&": "&", 15217 ">": ">", 15218 "<": "<", 15219 """: '"' 15220 }; 15221 var reEscapedHtml = /&(?:amp|lt|gt|quot|#(0+)?39);/g; 15222 var reHasEscapedHtml = RegExp(reEscapedHtml.source); 15223 Liferay.Util.unescape = (string) => { 15224 return string && reHasEscapedHtml.test(string) ? string.replace( 15225 reEscapedHtml, 15226 (entity) => htmlUnescapes[entity] || "'" 15227 ) : string || ""; 15228 }; 15229 Liferay.Util.unescapeHTML = unescapeHTML; 15230 Liferay.Util.Cookie = cookie_default; 15231 Liferay.Util.LocalStorage = local_storage_default; 15232 Liferay.Util.SessionStorage = session_storage_default; 15233 window.portlet = portlet_es_default; 15234})(); 15235 15236 15237/** 15238 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 15239 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 15240 */ 15241 15242/* eslint-disable @liferay/aui/no-node */ 15243 15244/* eslint-disable @liferay/aui/no-one */ 15245 15246(function (A) { 15247 const Lang = A.Lang; 15248 15249 const Util = Liferay.Util; 15250 15251 const STR_HEAD = 'head'; 15252 15253 const TPL_NOT_AJAXABLE = '<div class="alert alert-info">{0}</div>'; 15254 15255 const Portlet = { 15256 ...Liferay.Portlet, 15257 15258 _defCloseFn(event) { 15259 event.portlet.remove(true); 15260 15261 if (!event.nestedPortlet) { 15262 const formData = Liferay.Util.objectToFormData({ 15263 cmd: 'delete', 15264 doAsUserId: event.doAsUserId, 15265 p_auth: Liferay.authToken, 15266 p_l_id: event.plid, 15267 p_p_id: event.portletId, 15268 p_v_l_s_g_id: themeDisplay.getSiteGroupId(), 15269 }); 15270 15271 Liferay.Util.fetch( 15272 themeDisplay.getPathMain() + '/portal/update_layout', 15273 { 15274 body: formData, 15275 method: 'POST', 15276 } 15277 ).then((response) => { 15278 if (response.ok) { 15279 Liferay.fire('updatedLayout'); 15280 } 15281 }); 15282 } 15283 }, 15284 15285 _loadMarkupHeadElements(response) { 15286 const markupHeadElements = response.markupHeadElements; 15287 15288 if (markupHeadElements && markupHeadElements.length) { 15289 const head = A.one(STR_HEAD); 15290 15291 head.append(markupHeadElements); 15292 15293 const container = A.Node.create('<div />'); 15294 15295 container.plug(A.Plugin.ParseContent); 15296 15297 container.setContent(markupHeadElements); 15298 } 15299 }, 15300 15301 _loadModules(moduleJavascriptPaths) { 15302 return Promise.all( 15303 moduleJavascriptPaths.map( 15304 (path) => 15305 new Promise((resolve) => { 15306 const script = document.createElement('script'); 15307 15308 script.src = path; 15309 script.type = 'module';
15310 15311 script.onload = script.onreadystatechange = () => { 15312 if ( 15313 this.readyState && 15314 this.readyState !== 'complete' && 15315 this.readyState !== 'load' 15316 ) { 15317 return; 15318 } 15319 15320 script.onload = script.onreadystatechange = 15321 null; 15322 script.onerror = null; 15323 15324 resolve(); 15325 }; 15326 15327 script.onerror = () => { 15328 script.onload = script.onreadystatechange = 15329 null; 15330 script.onerror = null; 15331 15332 console.error('Unable to load', path); 15333 15334 resolve(); 15335 }; 15336 15337 document.head.appendChild(script); 15338 }) 15339 ) 15340 ); 15341 }, 15342 15343 _loadPortletFiles(response, loadHTML) { 15344 const footerCssPaths = response.footerCssPaths || []; 15345 const headerCssPaths = response.headerCssPaths || []; 15346 15347 const head = A.one(STR_HEAD); 15348 15349 if (headerCssPaths.length) { 15350 A.Get.css(headerCssPaths, { 15351 insertBefore: head.get('firstChild').getDOM(), 15352 }); 15353 } 15354 15355 const lastChild = document.body.lastChild; 15356 15357 if (footerCssPaths.length) { 15358 A.Get.css(footerCssPaths, { 15359 insertBefore: lastChild, 15360 }); 15361 } 15362 15363 const responseHTML = response.portletHTML; 15364 15365 let javascriptPaths = response.headerJavaScriptPaths || []; 15366 15367 javascriptPaths = javascriptPaths.concat( 15368 response.footerJavaScriptPaths || [] 15369 ); 15370 15371 if (javascriptPaths.length) { 15372 const moduleJavascriptPaths = javascriptPaths 15373 .filter((path) => path.startsWith('module:')) 15374 .map((path) => path.substring(7)); 15375 15376 javascriptPaths = javascriptPaths.filter( 15377 (path) => !path.startsWith('module:') 15378 ); 15379 15380 Portlet._loadModules(moduleJavascriptPaths).then(() => { 15381 A.Get.script(javascriptPaths, { 15382 onEnd() { 15383 loadHTML(responseHTML); 15384 }, 15385 }); 15386 }); 15387 } 15388 else { 15389 loadHTML(responseHTML); 15390 } 15391 }, 15392 15393 _mergeOptions(portlet, options) { 15394 options = options || {}; 15395 15396 options.doAsUserId = 15397 options.doAsUserId || themeDisplay.getDoAsUserIdEncoded(); 15398 options.plid = options.plid || themeDisplay.getPlid(); 15399 options.portlet = portlet; 15400 options.portletId = portlet.portletId; 15401 15402 return options; 15403 }, 15404 15405 _staticPortlets: {}, 15406 15407 destroyComponents(portletId) { 15408 Liferay.destroyComponents((_component, componentConfig) => { 15409 return portletId === componentConfig.portletId; 15410 }); 15411 }, 15412 15413 isStatic(portletId) { 15414 const instance = this; 15415 15416 const id = Util.getPortletId(portletId.id || portletId); 15417 15418 return id in instance._staticPortlets; 15419 }, 15420 15421 list: [], 15422 15423 readyCounter: 0, 15424 15425 refreshLayout(_portletBoundary) {}, 15426 15427 register(portletId) { 15428 const instance = this; 15429 15430 if (instance.list.indexOf(portletId) < 0) { 15431 instance.list.push(portletId); 15432 } 15433 }, 15434 }; 15435 15436 Liferay.provide( 15437 Portlet, 15438 'add', 15439 function (options) { 15440 const instance = this; 15441 15442 Liferay.fire('initLayout'); 15443 15444 const doAsUserId = 15445 options.doAsUserId || themeDisplay.getDoAsUserIdEncoded(); 15446 const plid = options.plid || themeDisplay.getPlid(); 15447 const portletData = options.portletData; 15448 const portletId = options.portletId; 15449 const portletItemId = options.portletItemId; 15450 15451 let placeHolder = options.placeHolder; 15452 15453 if (!placeHolder) { 15454 placeHolder = A.Node.create( 15455 '<div class="loading-animation" />' 15456 ); 15457 } 15458 else { 15459 placeHolder = A.one(placeHolder); 15460 } 15461 15462 const beforePortletLoaded = options.beforePortletLoaded; 15463 const onCompleteFn = options.onComplete; 15464 15465 const onComplete = function (portlet, portletId) { 15466 if (onCompleteFn) { 15467 onCompleteFn(portlet, portletId); 15468 } 15469 15470 instance.list.push(portlet.portletId); 15471 15472 if (portlet) { 15473 portlet.attr('data-qa-id', 'app-loaded'); 15474 } 15475 15476 Liferay.fire('addPortlet', { 15477 portlet, 15478 }); 15479 }; 15480 15481 let container = null; 15482 15483 if (Liferay.Layout && Liferay.Layout.INITIALIZED) { 15484 container = Liferay.Layout.getActiveDropContainer(); 15485 } 15486 15487 if (!container) { 15488 return; 15489 } 15490 15491 const containerId = container.attr('id'); 15492 15493 let currentColumnId = containerId.replace(/layout-column_/, ''); 15494 15495 let portletPosition = 0; 15496 15497 if (options.placeHolder) { 15498 const column = placeHolder.get('parentNode'); 15499 15500 if (!column) { 15501 return; 15502 } 15503 15504 placeHolder.addClass('portlet-boundary'); 15505 15506 const columnPortlets = column.all('.portlet-boundary'); 15507 const nestedPortlets = column.all('.portlet-nested-portlets'); 15508 15509 portletPosition = columnPortlets.indexOf(placeHolder); 15510 15511 let nestedPortletOffset = 0; 15512
15513 nestedPortlets.some((nestedPortlet) => { 15514 const nestedPortletIndex = 15515 columnPortlets.indexOf(nestedPortlet); 15516 15517 if ( 15518 nestedPortletIndex !== -1 && 15519 nestedPortletIndex < portletPosition 15520 ) { 15521 nestedPortletOffset += nestedPortlet 15522 .all('.portlet-boundary') 15523 .size(); 15524 } 15525 else if (nestedPortletIndex >= portletPosition) { 15526 return true; 15527 } 15528 }); 15529 15530 portletPosition -= nestedPortletOffset; 15531 15532 currentColumnId = Util.getColumnId(column.attr('id')); 15533 } 15534 15535 const url = themeDisplay.getPathMain() + '/portal/update_layout'; 15536 15537 const data = { 15538 cmd: 'add', 15539 dataType: 'JSON', 15540 doAsUserId, 15541 p_auth: Liferay.authToken, 15542 p_l_id: plid, 15543 p_p_col_id: currentColumnId, 15544 p_p_col_pos: portletPosition, 15545 p_p_i_id: portletItemId, 15546 p_p_id: portletId, 15547 p_p_isolated: true, 15548 p_v_l_s_g_id: themeDisplay.getSiteGroupId(), 15549 portletData, 15550 }; 15551 15552 const firstPortlet = container.one('.portlet-boundary'); 15553 const hasStaticPortlet = firstPortlet && firstPortlet.isStatic; 15554 15555 if (!options.placeHolder && !options.plid) { 15556 if (!hasStaticPortlet) { 15557 container.prepend(placeHolder); 15558 } 15559 else { 15560 firstPortlet.placeAfter(placeHolder); 15561 } 15562 } 15563 15564 data.currentURL = Liferay.currentURL; 15565 15566 instance.addHTML({ 15567 beforePortletLoaded, 15568 data, 15569 onComplete, 15570 placeHolder, 15571 url, 15572 }); 15573 }, 15574 ['aui-base'] 15575 ); 15576 15577 Liferay.provide( 15578 Portlet, 15579 'addHTML', 15580 function (options) { 15581 const instance = this; 15582 15583 let portletBoundary = null; 15584 15585 const beforePortletLoaded = options.beforePortletLoaded; 15586 const data = options.data; 15587 let dataType = 'HTML'; 15588 const onComplete = options.onComplete; 15589 const placeHolder = options.placeHolder; 15590 const url = options.url; 15591 15592 if (data && Lang.isString(data.dataType)) { 15593 dataType = data.dataType; 15594 } 15595 15596 dataType = dataType.toUpperCase(); 15597 15598 const addPortletReturn = function (html) { 15599 const container = placeHolder.get('parentNode'); 15600 15601 let portletBound = A.Node.create('<div></div>'); 15602 15603 portletBound.plug(A.Plugin.ParseContent); 15604 15605 portletBound.setContent(html); 15606 15607 portletBound = portletBound.one('> *'); 15608 15609 let portletId; 15610 15611 if (portletBound) { 15612 const id = portletBound.attr('id'); 15613 15614 portletId = Util.getPortletId(id); 15615 15616 portletBound.portletId = portletId; 15617 15618 placeHolder.hide(); 15619 placeHolder.placeAfter(portletBound); 15620 15621 placeHolder.remove(); 15622 15623 instance.refreshLayout(portletBound); 15624 15625 if (window.location.hash) { 15626 window.location.href = encodeURI(window.location.hash); 15627 } 15628 15629 portletBoundary = portletBound; 15630 15631 const Layout = Liferay.Layout; 15632 15633 if (Layout && Layout.INITIALIZED) { 15634 Layout.updateCurrentPortletInfo(portletBoundary); 15635 15636 if (container) { 15637 Layout.syncEmptyColumnClassUI(container); 15638 } 15639 15640 Layout.syncDraggableClassUI(); 15641 Layout.updatePortletDropZones(portletBoundary); 15642 } 15643 15644 if (onComplete) { 15645 onComplete(portletBoundary, portletId); 15646 } 15647 } 15648 else { 15649 placeHolder.remove(); 15650 } 15651 15652 return portletId; 15653 }; 15654 15655 if (beforePortletLoaded) { 15656 beforePortletLoaded(placeHolder); 15657 } 15658 15659 Liferay.Util.fetch(url, { 15660 body: Liferay.Util.objectToURLSearchParams(data), 15661 method: 'POST', 15662 }) 15663 .then((response) => { 15664 if (dataType === 'JSON') { 15665 return response.json(); 15666 } 15667 else { 15668 return response.text(); 15669 } 15670 }) 15671 .then((response) => { 15672 if (dataType === 'HTML') { 15673 addPortletReturn(response); 15674 } 15675 else if (response.refresh) { 15676 addPortletReturn(response.portletHTML); 15677 } 15678 else { 15679 Portlet._loadMarkupHeadElements(response); 15680 Portlet._loadPortletFiles(response, addPortletReturn); 15681 } 15682 15683 if (!data || !data.preventNotification) { 15684 Liferay.fire('updatedLayout'); 15685 } 15686 }) 15687 .catch((error) => { 15688 const message = 15689 typeof error === 'string' 15690 ? error 15691 : 'Ett\x20oväntat\x20fel\x20har\x20inträffat\x2e\x20Uppdatera\x20den\x20aktuella\x20sidan\x2e'; 15692 15693 Liferay.Util.openToast({ 15694 message, 15695 type: 'danger', 15696 }); 15697 }); 15698 }, 15699 ['aui-parse-content'] 15700 ); 15701 15702 Liferay.provide( 15703 Portlet, 15704 'close', 15705 function (portlet, skipConfirm, options) { 15706 const instance = this; 15707 15708 const _removeComponent = () => { 15709 const portletId = portlet.portletId; 15710 15711 const portletIndex = instance.list.indexOf(portletId); 15712 15713 if (portletIndex >= 0) { 15714 instance.list.splice(portletIndex, 1); 15715 } 15716 15717 options = Portlet._mergeOptions(portlet, options); 15718 15719 Portlet.destroyComponents(portletId); 15720 15721 Liferay.fire('destroyPortlet', options); 15722 15723 Liferay.fire('closePortlet', options); 15724 }; 15725 15726 portlet = A.one(portlet); 15727 15728 if (portlet) { 15729 if (!skipConfirm) { 15730 Liferay.Util.openConfirmModal({ 15731 message: 'Vill\x20du\x20verkligen\x20ta\x20bort\x20komponenten\x3f', 15732 onConfirm: (isConfirmed) => { 15733 if (isConfirmed) { 15734 _removeComponent(); 15735 } 15736 }, 15737 }); 15738 } 15739 else { 15740 _removeComponent(); 15741 } 15742 } 15743 else { 15744 A.config.win.focus(); 15745 } 15746 }, 15747 [] 15748 ); 15749 15750 Liferay.provide( 15751 Portlet, 15752 'destroy', 15753 (portlet, options) => { 15754 portlet = A.one(portlet); 15755 15756 if (portlet) { 15757 const portletId = 15758 portlet.portletId || Util.getPortletId(portlet.attr('id')); 15759 15760 Portlet.destroyComponents(portletId); 15761 15762 Liferay.fire( 15763 'destroyPortlet', 15764 Portlet._mergeOptions(portlet, options) 15765 ); 15766 } 15767 }, 15768 ['aui-node-base'] 15769 ); 15770 15771 Liferay.provide( 15772 Portlet, 15773 'onLoad', 15774 function (options) { 15775 const instance = this; 15776 15777 const canEditTitle = options.canEditTitle; 15778 const columnPos = options.columnPos; 15779 const isStatic = 15780 options.isStatic === 'no' ? null : options.isStatic; 15781 const namespacedId = options.namespacedId; 15782 const portletId = options.portletId; 15783 const refreshURL = options.refreshURL; 15784 const refreshURLData = options.refreshURLData; 15785 15786 if (isStatic) { 15787 instance.registerStatic(portletId); 15788 } 15789
15790 const portlet = A.one('#' + namespacedId); 15791 15792 if (portlet && !portlet.portletProcessed) { 15793 portlet.portletProcessed = true; 15794 portlet.portletId = portletId; 15795 portlet.columnPos = columnPos; 15796 portlet.isStatic = isStatic; 15797 portlet.refreshURL = refreshURL; 15798 portlet.refreshURLData = refreshURLData; 15799 15800 // Functions to run on portlet load 15801 15802 if (canEditTitle) { 15803 15804 // https://github.com/yui/yui3/issues/1808 15805 15806 let events = 'focus'; 15807 15808 if (!A.UA.touchEnabled) { 15809 events = ['focus', 'mousemove']; 15810 } 15811 15812 const handle = portlet.on(events, () => { 15813 Util.portletTitleEdit({ 15814 doAsUserId: themeDisplay.getDoAsUserIdEncoded(), 15815 15816 // eslint-disable-next-line @liferay/no-abbreviations 15817 obj: portlet, 15818 plid: themeDisplay.getPlid(), 15819 portletId, 15820 }); 15821 15822 handle.detach(); 15823 }); 15824 } 15825 } 15826 15827 Liferay.fire('portletReady', { 15828 portlet, 15829 portletId, 15830 }); 15831 15832 instance.readyCounter++; 15833 15834 if (instance.readyCounter === instance.list.length) { 15835 Liferay.fire('allPortletsReady', { 15836 portletId, 15837 }); 15838 } 15839 }, 15840 ['aui-base', 'aui-timer', 'event-move'] 15841 ); 15842 15843 Liferay.provide( 15844 Portlet, 15845 'refresh', 15846 function (portlet, data, mergeWithRefreshURLData) { 15847 const instance = this; 15848 15849 portlet = A.one(portlet); 15850 15851 if (portlet) { 15852 if (mergeWithRefreshURLData) { 15853 data = { 15854 ...(portlet.refreshURLData || {}), 15855 ...(data || {}), 15856 }; 15857 } 15858 else { 15859 data = data || portlet.refreshURLData || {}; 15860 } 15861 15862 if ( 15863 !Object.prototype.hasOwnProperty.call( 15864 data, 15865 'portletAjaxable' 15866 ) 15867 ) { 15868 data.portletAjaxable = true; 15869 } 15870 15871 const id = portlet.attr('portlet'); 15872 15873 let url = portlet.refreshURL; 15874 15875 const placeHolder = A.Node.create( 15876 '<div class="loading-animation" id="p_p_id' + id + '" />' 15877 ); 15878 15879 if (data.portletAjaxable && url) { 15880 portlet.placeBefore(placeHolder); 15881 15882 portlet.remove(true); 15883 15884 Portlet.destroyComponents(portlet.portletId); 15885 15886 let params = {}; 15887 15888 const urlPieces = url.split('?'); 15889 15890 if (urlPieces.length > 1) { 15891 params = A.QueryString.parse(urlPieces[1]); 15892 15893 delete params.dataType; 15894 15895 url = urlPieces[0]; 15896 } 15897 15898 instance.addHTML({ 15899 data: A.mix(params, data, true), 15900 onComplete(newPortlet, portletId) { 15901 newPortlet.refreshURL = portlet.refreshURL; 15902 15903 if (newPortlet) { 15904 newPortlet.attr('data-qa-id', 'app-refreshed'); 15905 } 15906 15907 Liferay.fire( 15908 newPortlet.portletId + ':portletRefreshed', 15909 { 15910 portlet: newPortlet, 15911 portletId, 15912 } 15913 ); 15914 }, 15915 placeHolder, 15916 url, 15917 }); 15918 } 15919 else if (!portlet.getData('pendingRefresh')) { 15920 portlet.setData('pendingRefresh', true); 15921 15922 const nonAjaxableContentMessage = Lang.sub( 15923 TPL_NOT_AJAXABLE, 15924 [ 15925 'Ãndringarna\x20syns\x20inte\x20förrän\x20du\x20laddar\x20om\x20sidan\x2e', 15926 ] 15927 ); 15928 15929 const portletBody = portlet.one('.portlet-body'); 15930 15931 portletBody.placeBefore(nonAjaxableContentMessage); 15932 15933 portletBody.hide(); 15934 } 15935 15936 Liferay.fire('refreshPortlet', {portletId: portlet.portletId}); 15937 } 15938 }, 15939 ['aui-base', 'querystring-parse'] 15940 ); 15941 15942 Liferay.provide( 15943 Portlet, 15944 'registerStatic', 15945 function (portletId) { 15946 const instance = this; 15947 15948 const Node = A.Node; 15949 15950 if (Node && portletId instanceof Node) { 15951 portletId = portletId.attr('id'); 15952 } 15953 else if (portletId.id) { 15954 portletId = portletId.id; 15955 } 15956 15957 const id = Util.getPortletId(portletId); 15958 15959 instance._staticPortlets[id] = true; 15960 }, 15961 ['aui-base'] 15962 ); 15963 15964 Liferay.publish('closePortlet', { 15965 defaultFn: Portlet._defCloseFn, 15966 }); 15967 15968 Liferay.publish('allPortletsReady', { 15969 fireOnce: true, 15970 }); 15971 15972 // Backwards compatability 15973 15974 Portlet.ready = function (fn) { 15975 Liferay.on('portletReady', (event) => { 15976 fn(event.portletId, event.portlet); 15977 }); 15978 }; 15979 15980 Liferay.Portlet = Portlet; 15981})(AUI()); 15982 15983/** 15984 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 15985 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 15986 */ 15987 15988Liferay.Workflow = { 15989 ACTION_PUBLISH: 1, 15990 15991 ACTION_SAVE_DRAFT: 2, 15992 15993 STATUS_ANY: -1, 15994 15995 STATUS_APPROVED: 0, 15996 15997 STATUS_DENIED: 4, 15998 15999 STATUS_DRAFT: 2, 16000 16001 STATUS_EXPIRED: 3, 16002 16003 STATUS_PENDING: 1, 16004}; 16005 16006(function () { 16007 document.addEventListener('DOMContentLoaded', function (event) { 16008 if (!Liferay.ThemeDisplay.isSignedIn()) { 16009 var dockbarSelector = '#sign-in, a.sign-in, div.sign-in, span.sign-in'; 16010 var elementDockbar = document.querySelector(dockbarSelector); 16011 if (elementDockbar) { 16012 elementDockbar.style.display = 'none'; 16013 var eventTarget = event.target; 16014 eventTarget.addEventListener('keydown', function (event) { 16015 // ctrl+shift/alt+l 16016 if ((event.shiftKey || event.altKey) && event.ctrlKey && event.keyCode === 76) { 16017 if (elementDockbar.style.display === "none") { 16018 elementDockbar.style.display = "block"; 16019 } else { 16020 elementDockbar.style.display = "none"; 16021 } 16022 return false;
16023 } else { 16024 return true; 16025 } 16026 }); 16027 } 16028 } 16029 }); 16030})(); 16031 16032
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.