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"use strict"; 1775(() => { 1776 var __create = Object.create; 1777 var __defProp = Object.defineProperty; 1778 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 1779 var __getOwnPropNames = Object.getOwnPropertyNames; 1780 var __getProtoOf = Object.getPrototypeOf; 1781 var __hasOwnProp = Object.prototype.hasOwnProperty; 1782 var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; 1783 var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { 1784 get: (a, b) => (typeof require !== "undefined" ? require : a)[b] 1785 }) : x)(function(x) { 1786 if (typeof require !== "undefined") 1787 return require.apply(this, arguments); 1788 throw Error('Dynamic require of "' + x + '" is not supported'); 1789 }); 1790 var __commonJS = (cb, mod) => function __require2() { 1791 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 1792 }; 1793 var __copyProps = (to, from, except, desc) => { 1794 if (from && typeof from === "object" || typeof from === "function") { 1795 for (let key of __getOwnPropNames(from)) 1796 if (!__hasOwnProp.call(to, key) && key !== except) 1797 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 1798 } 1799 return to; 1800 }; 1801 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( 1802 // If the importer is in node compatibility mode or this is not an ESM 1803 // file that has been converted to a CommonJS file using a Babel- 1804 // compatible transform (i.e. "__esModule" has not been set), then set 1805 // "default" to the CommonJS "module.exports" for node compatibility. 1806 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, 1807 mod 1808 )); 1809 var __publicField = (obj, key, value) => { 1810 __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); 1811 return value; 1812 }; 1813 1814 // (disabled):crypto 1815 var require_crypto = __commonJS({ 1816 "(disabled):crypto"() { 1817 } 1818 }); 1819 1820
vendor: 21,581 bytes, lines 1820-2428
1820// ../../../node_modules/crypto-js/core.js 1821 var require_core = __commonJS({ 1822 "../../../node_modules/crypto-js/core.js"(exports, module) { 1823 (function(root, factory) { 1824 if (typeof exports === "object") { 1825 module.exports = exports = factory(); 1826 } else if (typeof define === "function" && define.amd) { 1827 define([], factory); 1828 } else { 1829 root.CryptoJS = factory(); 1830 } 1831 })(exports, function() { 1832 var CryptoJS = CryptoJS || function(Math2, undefined2) { 1833 var crypto; 1834 if (typeof window !== "undefined" && window.crypto) { 1835 crypto = window.crypto; 1836 } 1837 if (typeof self !== "undefined" && self.crypto) { 1838 crypto = self.crypto; 1839 } 1840 if (typeof globalThis !== "undefined" && globalThis.crypto) { 1841 crypto = globalThis.crypto; 1842 } 1843 if (!crypto && typeof window !== "undefined" && window.msCrypto) { 1844 crypto = window.msCrypto; 1845 } 1846 if (!crypto && typeof global !== "undefined" && global.crypto) { 1847 crypto = global.crypto; 1848 } 1849 if (!crypto && typeof __require === "function") { 1850 try { 1851 crypto = require_crypto(); 1852 } catch (err) { 1853 } 1854 } 1855 var cryptoSecureRandomInt = function() { 1856 if (crypto) { 1857 if (typeof crypto.getRandomValues === "function") { 1858 try { 1859 return crypto.getRandomValues(new Uint32Array(1))[0]; 1860 } catch (err) { 1861 } 1862 } 1863 if (typeof crypto.randomBytes === "function") { 1864 try { 1865 return crypto.randomBytes(4).readInt32LE(); 1866 } catch (err) { 1867 } 1868 } 1869 } 1870 throw new Error("Native crypto module could not be used to get secure random number."); 1871 }; 1872 var create = Object.create || /* @__PURE__ */ function() { 1873 function F() { 1874 } 1875 return function(obj) { 1876 var subtype; 1877 F.prototype = obj; 1878 subtype = new F(); 1879 F.prototype = null; 1880 return subtype; 1881 }; 1882 }(); 1883 var C = {}; 1884 var C_lib = C.lib = {}; 1885 var Base = C_lib.Base = /* @__PURE__ */ function() { 1886 return { 1887 /** 1888 * Creates a new object that inherits from this object. 1889 * 1890 * @param {Object} overrides Properties to copy into the new object. 1891 * 1892 * @return {Object} The new object. 1893 * 1894 * @static 1895 * 1896 * @example 1897 * 1898 * var MyType = CryptoJS.lib.Base.extend({ 1899 * field: 'value', 1900 * 1901 * method: function () { 1902 * } 1903 * }); 1904 */ 1905 extend: function(overrides) { 1906 var subtype = create(this); 1907 if (overrides) { 1908 subtype.mixIn(overrides); 1909 } 1910 if (!subtype.hasOwnProperty("init") || this.init === subtype.init) { 1911 subtype.init = function() { 1912 subtype.$super.init.apply(this, arguments); 1913 }; 1914 } 1915 subtype.init.prototype = subtype; 1916 subtype.$super = this; 1917 return subtype; 1918 }, 1919 /** 1920 * Extends this object and runs the init method. 1921 * Arguments to create() will be passed to init(). 1922 * 1923 * @return {Object} The new object. 1924 * 1925 * @static 1926 * 1927 * @example 1928 * 1929 * var instance = MyType.create(); 1930 */ 1931 create: function() { 1932 var instance = this.extend(); 1933 instance.init.apply(instance, arguments); 1934 return instance; 1935 }, 1936 /** 1937 * Initializes a newly created object. 1938 * Override this method to add some logic when your objects are created. 1939 * 1940 * @example 1941 * 1942 * var MyType = CryptoJS.lib.Base.extend({ 1943 * init: function () { 1944 * // ... 1945 * } 1946 * }); 1947 */ 1948 init: function() { 1949 }, 1950 /** 1951 * Copies properties into this object. 1952 * 1953 * @param {Object} properties The properties to mix in. 1954 * 1955 * @example 1956 * 1957 * MyType.mixIn({ 1958 * field: 'value' 1959 * }); 1960 */ 1961 mixIn: function(properties) { 1962 for (var propertyName in properties) { 1963 if (properties.hasOwnProperty(propertyName)) { 1964 this[propertyName] = properties[propertyName]; 1965 } 1966 } 1967 if (properties.hasOwnProperty("toString")) { 1968 this.toString = properties.toString; 1969 } 1970 }, 1971 /** 1972 * Creates a copy of this object. 1973 * 1974 * @return {Object} The clone. 1975 * 1976 * @example 1977 * 1978 * var clone = instance.clone(); 1979 */ 1980 clone: function() { 1981 return this.init.prototype.extend(this); 1982 } 1983 }; 1984 }(); 1985 var WordArray = C_lib.WordArray = Base.extend({ 1986 /** 1987 * Initializes a newly created word array. 1988 * 1989 * @param {Array} words (Optional) An array of 32-bit words. 1990 * @param {number} sigBytes (Optional) The number of significant bytes in the words. 1991 * 1992 * @example 1993 * 1994 * var wordArray = CryptoJS.lib.WordArray.create(); 1995 * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); 1996 * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); 1997 */ 1998 init: function(words, sigBytes) { 1999 words = this.words = words || []; 2000 if (sigBytes != undefined2) { 2001 this.sigBytes = sigBytes; 2002 } else { 2003 this.sigBytes = words.length * 4; 2004 } 2005 }, 2006 /** 2007 * Converts this word array to a string. 2008 * 2009 * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex 2010 * 2011 * @return {string} The stringified word array. 2012 * 2013 * @example 2014 * 2015 * var string = wordArray + ''; 2016 * var string = wordArray.toString(); 2017 * var string = wordArray.toString(CryptoJS.enc.Utf8); 2018 */ 2019 toString: function(encoder) { 2020 return (encoder || Hex).stringify(this); 2021 }, 2022 /** 2023 * Concatenates a word array to this word array. 2024 * 2025 * @param {WordArray} wordArray The word array to append. 2026 * 2027 * @return {WordArray} This word array. 2028 * 2029 * @example 2030 * 2031 * wordArray1.concat(wordArray2); 2032 */ 2033 concat: function(wordArray) { 2034 var thisWords = this.words; 2035 var thatWords = wordArray.words; 2036 var thisSigBytes = this.sigBytes; 2037 var thatSigBytes = wordArray.sigBytes; 2038 this.clamp(); 2039 if (thisSigBytes % 4) { 2040 for (var i = 0; i < thatSigBytes; i++) { 2041 var thatByte = thatWords[i >>> 2] >>> 24 - i % 4 * 8 & 255; 2042 thisWords[thisSigBytes + i >>> 2] |= thatByte << 24 - (thisSigBytes + i) % 4 * 8; 2043 } 2044 } else { 2045 for (var j = 0; j < thatSigBytes; j += 4) { 2046 thisWords[thisSigBytes + j >>> 2] = thatWords[j >>> 2]; 2047 } 2048 } 2049 this.sigBytes += thatSigBytes; 2050 return this; 2051 }, 2052 /** 2053 * Removes insignificant bits. 2054 * 2055 * @example 2056 * 2057 * wordArray.clamp(); 2058 */ 2059 clamp: function() { 2060 var words = this.words; 2061 var sigBytes = this.sigBytes; 2062 words[sigBytes >>> 2] &= 4294967295 << 32 - sigBytes % 4 * 8; 2063 words.length = Math2.ceil(sigBytes / 4); 2064 }, 2065 /** 2066 * Creates a copy of this word array. 2067 * 2068 * @return {WordArray} The clone. 2069 * 2070 * @example 2071 * 2072 * var clone = wordArray.clone(); 2073 */ 2074 clone: function() { 2075 var clone = Base.clone.call(this); 2076 clone.words = this.words.slice(0); 2077 return clone; 2078 }, 2079 /** 2080 * Creates a word array filled with random bytes. 2081 * 2082 * @param {number} nBytes The number of random bytes to generate. 2083 * 2084 * @return {WordArray} The random word array. 2085 * 2086 * @static 2087 * 2088 * @example 2089 * 2090 * var wordArray = CryptoJS.lib.WordArray.random(16); 2091 */ 2092 random: function(nBytes) { 2093 var words = []; 2094 for (var i = 0; i < nBytes; i += 4) { 2095 words.push(cryptoSecureRandomInt()); 2096 } 2097 return new WordArray.init(words, nBytes); 2098 } 2099 }); 2100 var C_enc = C.enc = {}; 2101 var Hex = C_enc.Hex = { 2102 /** 2103 * Converts a word array to a hex string. 2104 * 2105 * @param {WordArray} wordArray The word array. 2106 * 2107 * @return {string} The hex string. 2108 * 2109 * @static 2110 * 2111 * @example 2112 * 2113 * var hexString = CryptoJS.enc.Hex.stringify(wordArray); 2114 */ 2115 stringify: function(wordArray) { 2116 var words = wordArray.words; 2117 var sigBytes = wordArray.sigBytes; 2118 var hexChars = []; 2119 for (var i = 0; i < sigBytes; i++) { 2120 var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 255; 2121 hexChars.push((bite >>> 4).toString(16)); 2122 hexChars.push((bite & 15).toString(16)); 2123 } 2124 return hexChars.join(""); 2125 }, 2126 /** 2127 * Converts a hex string to a word array. 2128 * 2129 * @param {string} hexStr The hex string. 2130 * 2131 * @return {WordArray} The word array. 2132 * 2133 * @static 2134 * 2135 * @example 2136 * 2137 * var wordArray = CryptoJS.enc.Hex.parse(hexString); 2138 */ 2139 parse: function(hexStr) { 2140 var hexStrLength = hexStr.length; 2141 var words = []; 2142 for (var i = 0; i < hexStrLength; i += 2) { 2143 words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << 24 - i % 8 * 4; 2144 } 2145 return new WordArray.init(words, hexStrLength / 2); 2146 } 2147 }; 2148 var Latin1 = C_enc.Latin1 = { 2149 /** 2150 * Converts a word array to a Latin1 string. 2151 * 2152 * @param {WordArray} wordArray The word array. 2153 * 2154 * @return {string} The Latin1 string. 2155 * 2156 * @static 2157 * 2158 * @example 2159 * 2160 * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); 2161 */ 2162 stringify: function(wordArray) { 2163 var words = wordArray.words; 2164 var sigBytes = wordArray.sigBytes; 2165 var latin1Chars = []; 2166 for (var i = 0; i < sigBytes; i++) { 2167 var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 255; 2168 latin1Chars.push(String.fromCharCode(bite)); 2169 } 2170 return latin1Chars.join(""); 2171 }, 2172 /** 2173 * Converts a Latin1 string to a word array. 2174 * 2175 * @param {string} latin1Str The Latin1 string. 2176 * 2177 * @return {WordArray} The word array. 2178 * 2179 * @static 2180 * 2181 * @example 2182 * 2183 * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); 2184 */ 2185 parse: function(latin1Str) { 2186 var latin1StrLength = latin1Str.length; 2187 var words = []; 2188 for (var i = 0; i < latin1StrLength; i++) { 2189 words[i >>> 2] |= (latin1Str.charCodeAt(i) & 255) << 24 - i % 4 * 8; 2190 } 2191 return new WordArray.init(words, latin1StrLength); 2192 } 2193 }; 2194 var Utf8 = C_enc.Utf8 = { 2195 /** 2196 * Converts a word array to a UTF-8 string. 2197 * 2198 * @param {WordArray} wordArray The word array. 2199 * 2200 * @return {string} The UTF-8 string. 2201 * 2202 * @static 2203 * 2204 * @example 2205 * 2206 * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); 2207 */ 2208 stringify: function(wordArray) { 2209 try { 2210 return decodeURIComponent(escape(Latin1.stringify(wordArray))); 2211 } catch (e) { 2212 throw new Error("Malformed UTF-8 data"); 2213 } 2214 }, 2215 /** 2216 * Converts a UTF-8 string to a word array. 2217 * 2218 * @param {string} utf8Str The UTF-8 string. 2219 * 2220 * @return {WordArray} The word array. 2221 * 2222 * @static 2223 * 2224 * @example 2225 * 2226 * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); 2227 */ 2228 parse: function(utf8Str) { 2229 return Latin1.parse(unescape(encodeURIComponent(utf8Str))); 2230 } 2231 }; 2232 var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ 2233 /** 2234 * Resets this block algorithm's data buffer to its initial state. 2235 * 2236 * @example 2237 * 2238 * bufferedBlockAlgorithm.reset(); 2239 */ 2240 reset: function() { 2241 this._data = new WordArray.init(); 2242 this._nDataBytes = 0; 2243 }, 2244 /** 2245 * Adds new data to this block algorithm's buffer. 2246 * 2247 * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. 2248 * 2249 * @example 2250 * 2251 * bufferedBlockAlgorithm._append('data'); 2252 * bufferedBlockAlgorithm._append(wordArray); 2253 */ 2254 _append: function(data) { 2255 if (typeof data == "string") { 2256 data = Utf8.parse(data); 2257 } 2258 this._data.concat(data); 2259 this._nDataBytes += data.sigBytes; 2260 }, 2261 /** 2262 * Processes available data blocks. 2263 * 2264 * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. 2265 * 2266 * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. 2267 * 2268 * @return {WordArray} The processed data. 2269 * 2270 * @example 2271 * 2272 * var processedData = bufferedBlockAlgorithm._process(); 2273 * var processedData = bufferedBlockAlgorithm._process(!!'flush'); 2274 */ 2275 _process: function(doFlush) { 2276 var processedWords; 2277 var data = this._data; 2278 var dataWords = data.words; 2279 var dataSigBytes = data.sigBytes; 2280 var blockSize = this.blockSize; 2281 var blockSizeBytes = blockSize * 4; 2282 var nBlocksReady = dataSigBytes / blockSizeBytes; 2283 if (doFlush) { 2284 nBlocksReady = Math2.ceil(nBlocksReady); 2285 } else { 2286 nBlocksReady = Math2.max((nBlocksReady | 0) - this._minBufferSize, 0); 2287 } 2288 var nWordsReady = nBlocksReady * blockSize; 2289 var nBytesReady = Math2.min(nWordsReady * 4, dataSigBytes); 2290 if (nWordsReady) { 2291 for (var offset = 0; offset < nWordsReady; offset += blockSize) { 2292 this._doProcessBlock(dataWords, offset); 2293 } 2294 processedWords = dataWords.splice(0, nWordsReady); 2295 data.sigBytes -= nBytesReady; 2296 } 2297 return new WordArray.init(processedWords, nBytesReady); 2298 }, 2299 /** 2300 * Creates a copy of this object. 2301 * 2302 * @return {Object} The clone. 2303 * 2304 * @example 2305 * 2306 * var clone = bufferedBlockAlgorithm.clone(); 2307 */ 2308 clone: function() { 2309 var clone = Base.clone.call(this); 2310 clone._data = this._data.clone(); 2311 return clone; 2312 }, 2313 _minBufferSize: 0 2314 }); 2315 var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ 2316 /** 2317 * Configuration options. 2318 */ 2319 cfg: Base.extend(), 2320 /** 2321 * Initializes a newly created hasher. 2322 * 2323 * @param {Object} cfg (Optional) The configuration options to use for this hash computation. 2324 * 2325 * @example 2326 * 2327 * var hasher = CryptoJS.algo.SHA256.create(); 2328 */ 2329 init: function(cfg) { 2330 this.cfg = this.cfg.extend(cfg); 2331 this.reset(); 2332 }, 2333 /** 2334 * Resets this hasher to its initial state. 2335 * 2336 * @example 2337 * 2338 * hasher.reset(); 2339 */ 2340 reset: function() { 2341 BufferedBlockAlgorithm.reset.call(this); 2342 this._doReset(); 2343 }, 2344 /** 2345 * Updates this hasher with a message. 2346 * 2347 * @param {WordArray|string} messageUpdate The message to append. 2348 * 2349 * @return {Hasher} This hasher. 2350 * 2351 * @example 2352 * 2353 * hasher.update('message'); 2354 * hasher.update(wordArray); 2355 */ 2356 update: function(messageUpdate) { 2357 this._append(messageUpdate); 2358 this._process(); 2359 return this; 2360 }, 2361 /** 2362 * Finalizes the hash computation. 2363 * Note that the finalize operation is effectively a destructive, read-once operation. 2364 * 2365 * @param {WordArray|string} messageUpdate (Optional) A final message update. 2366 * 2367 * @return {WordArray} The hash. 2368 * 2369 * @example 2370 * 2371 * var hash = hasher.finalize(); 2372 * var hash = hasher.finalize('message'); 2373 * var hash = hasher.finalize(wordArray); 2374 */ 2375 finalize: function(messageUpdate) { 2376 if (messageUpdate) { 2377 this._append(messageUpdate); 2378 } 2379 var hash = this._doFinalize(); 2380 return hash; 2381 }, 2382 blockSize: 512 / 32, 2383 /** 2384 * Creates a shortcut function to a hasher's object interface. 2385 * 2386 * @param {Hasher} hasher The hasher to create a helper for. 2387 * 2388 * @return {Function} The shortcut function. 2389 * 2390 * @static 2391 * 2392 * @example 2393 * 2394 * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); 2395 */ 2396 _createHelper: function(hasher) { 2397 return function(message, cfg) { 2398 return new hasher.init(cfg).finalize(message); 2399 }; 2400 }, 2401 /** 2402 * Creates a shortcut function to the HMAC's object interface. 2403 * 2404 * @param {Hasher} hasher The hasher to use in this HMAC helper. 2405 * 2406 * @return {Function} The shortcut function. 2407 * 2408 * @static 2409 * 2410 * @example 2411 * 2412 * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); 2413 */ 2414 _createHmacHelper: function(hasher) { 2415 return function(message, key) { 2416 return new C_algo.HMAC.init(hasher, key).finalize(message); 2417 }; 2418 } 2419 }); 2420 var C_algo = C.algo = {}; 2421 return C; 2422 }(Math); 2423 return CryptoJS; 2424 }); 2425 } 2426 }); 2427 2428
vendor: 9,121 bytes, lines 2428-2685
2428// ../../../node_modules/crypto-js/x64-core.js 2429 var require_x64_core = __commonJS({ 2430 "../../../node_modules/crypto-js/x64-core.js"(exports, module) { 2431 (function(root, factory) { 2432 if (typeof exports === "object") { 2433 module.exports = exports = factory(require_core()); 2434 } else if (typeof define === "function" && define.amd) { 2435 define(["./core"], factory); 2436 } else { 2437 factory(root.CryptoJS); 2438 } 2439 })(exports, function(CryptoJS) { 2440 (function(undefined2) { 2441 var C = CryptoJS; 2442 var C_lib = C.lib; 2443 var Base = C_lib.Base; 2444 var X32WordArray = C_lib.WordArray; 2445 var C_x64 = C.x64 = {}; 2446 var X64Word = C_x64.Word = Base.extend({ 2447 /** 2448 * Initializes a newly created 64-bit word. 2449 * 2450 * @param {number} high The high 32 bits. 2451 * @param {number} low The low 32 bits. 2452 * 2453 * @example 2454 * 2455 * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607); 2456 */ 2457 init: function(high, low) { 2458 this.high = high; 2459 this.low = low; 2460 } 2461 /** 2462 * Bitwise NOTs this word. 2463 * 2464 * @return {X64Word} A new x64-Word object after negating. 2465 * 2466 * @example 2467 * 2468 * var negated = x64Word.not(); 2469 */ 2470 // not: function () { 2471 // var high = ~this.high; 2472 // var low = ~this.low; 2473 // return X64Word.create(high, low); 2474 // }, 2475 /** 2476 * Bitwise ANDs this word with the passed word. 2477 * 2478 * @param {X64Word} word The x64-Word to AND with this word. 2479 * 2480 * @return {X64Word} A new x64-Word object after ANDing. 2481 * 2482 * @example 2483 * 2484 * var anded = x64Word.and(anotherX64Word); 2485 */ 2486 // and: function (word) { 2487 // var high = this.high & word.high; 2488 // var low = this.low & word.low; 2489 // return X64Word.create(high, low); 2490 // }, 2491 /** 2492 * Bitwise ORs this word with the passed word. 2493 * 2494 * @param {X64Word} word The x64-Word to OR with this word. 2495 * 2496 * @return {X64Word} A new x64-Word object after ORing. 2497 * 2498 * @example 2499 * 2500 * var ored = x64Word.or(anotherX64Word); 2501 */ 2502 // or: function (word) { 2503 // var high = this.high | word.high; 2504 // var low = this.low | word.low; 2505 // return X64Word.create(high, low); 2506 // }, 2507 /** 2508 * Bitwise XORs this word with the passed word. 2509 * 2510 * @param {X64Word} word The x64-Word to XOR with this word. 2511 * 2512 * @return {X64Word} A new x64-Word object after XORing. 2513 * 2514 * @example 2515 * 2516 * var xored = x64Word.xor(anotherX64Word); 2517 */ 2518 // xor: function (word) { 2519 // var high = this.high ^ word.high; 2520 // var low = this.low ^ word.low; 2521 // return X64Word.create(high, low); 2522 // }, 2523 /** 2524 * Shifts this word n bits to the left. 2525 * 2526 * @param {number} n The number of bits to shift. 2527 * 2528 * @return {X64Word} A new x64-Word object after shifting. 2529 * 2530 * @example 2531 * 2532 * var shifted = x64Word.shiftL(25); 2533 */ 2534 // shiftL: function (n) { 2535 // if (n < 32) { 2536 // var high = (this.high << n) | (this.low >>> (32 - n)); 2537 // var low = this.low << n; 2538 // } else { 2539 // var high = this.low << (n - 32); 2540 // var low = 0; 2541 // } 2542 // return X64Word.create(high, low); 2543 // }, 2544 /** 2545 * Shifts this word n bits to the right. 2546 * 2547 * @param {number} n The number of bits to shift. 2548 * 2549 * @return {X64Word} A new x64-Word object after shifting. 2550 * 2551 * @example 2552 * 2553 * var shifted = x64Word.shiftR(7); 2554 */ 2555 // shiftR: function (n) { 2556 // if (n < 32) { 2557 // var low = (this.low >>> n) | (this.high << (32 - n)); 2558 // var high = this.high >>> n; 2559 // } else { 2560 // var low = this.high >>> (n - 32); 2561 // var high = 0; 2562 // } 2563 // return X64Word.create(high, low); 2564 // }, 2565 /** 2566 * Rotates this word n bits to the left. 2567 * 2568 * @param {number} n The number of bits to rotate. 2569 * 2570 * @return {X64Word} A new x64-Word object after rotating. 2571 * 2572 * @example 2573 * 2574 * var rotated = x64Word.rotL(25); 2575 */ 2576 // rotL: function (n) { 2577 // return this.shiftL(n).or(this.shiftR(64 - n)); 2578 // }, 2579 /** 2580 * Rotates this word n bits to the right. 2581 * 2582 * @param {number} n The number of bits to rotate. 2583 * 2584 * @return {X64Word} A new x64-Word object after rotating. 2585 * 2586 * @example 2587 * 2588 * var rotated = x64Word.rotR(7); 2589 */ 2590 // rotR: function (n) { 2591 // return this.shiftR(n).or(this.shiftL(64 - n)); 2592 // }, 2593 /** 2594 * Adds this word with the passed word. 2595 * 2596 * @param {X64Word} word The x64-Word to add with this word. 2597 * 2598 * @return {X64Word} A new x64-Word object after adding. 2599 * 2600 * @example 2601 * 2602 * var added = x64Word.add(anotherX64Word); 2603 */ 2604 // add: function (word) { 2605 // var low = (this.low + word.low) | 0; 2606 // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0; 2607 // var high = (this.high + word.high + carry) | 0; 2608 // return X64Word.create(high, low); 2609 // } 2610 }); 2611 var X64WordArray = C_x64.WordArray = Base.extend({ 2612 /** 2613 * Initializes a newly created word array. 2614 * 2615 * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects. 2616 * @param {number} sigBytes (Optional) The number of significant bytes in the words. 2617 * 2618 * @example 2619 * 2620 * var wordArray = CryptoJS.x64.WordArray.create(); 2621 * 2622 * var wordArray = CryptoJS.x64.WordArray.create([ 2623 * CryptoJS.x64.Word.create(0x00010203, 0x04050607), 2624 * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) 2625 * ]); 2626 * 2627 * var wordArray = CryptoJS.x64.WordArray.create([ 2628 * CryptoJS.x64.Word.create(0x00010203, 0x04050607), 2629 * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) 2630 * ], 10); 2631 */ 2632 init: function(words, sigBytes) { 2633 words = this.words = words || []; 2634 if (sigBytes != undefined2) { 2635 this.sigBytes = sigBytes; 2636 } else { 2637 this.sigBytes = words.length * 8; 2638 } 2639 }, 2640 /** 2641 * Converts this 64-bit word array to a 32-bit word array. 2642 * 2643 * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array. 2644 * 2645 * @example 2646 * 2647 * var x32WordArray = x64WordArray.toX32(); 2648 */ 2649 toX32: function() { 2650 var x64Words = this.words; 2651 var x64WordsLength = x64Words.length; 2652 var x32Words = []; 2653 for (var i = 0; i < x64WordsLength; i++) { 2654 var x64Word = x64Words[i]; 2655 x32Words.push(x64Word.high); 2656 x32Words.push(x64Word.low); 2657 } 2658 return X32WordArray.create(x32Words, this.sigBytes); 2659 }, 2660 /** 2661 * Creates a copy of this word array. 2662 * 2663 * @return {X64WordArray} The clone. 2664 * 2665 * @example 2666 * 2667 * var clone = x64WordArray.clone(); 2668 */ 2669 clone: function() { 2670 var clone = Base.clone.call(this); 2671 var words = clone.words = this.words.slice(0); 2672 var wordsLength = words.length; 2673 for (var i = 0; i < wordsLength; i++) { 2674 words[i] = words[i].clone(); 2675 } 2676 return clone; 2677 } 2678 }); 2679 })(); 2680 return CryptoJS; 2681 }); 2682 } 2683 }); 2684 2685
vendor: 2,003 bytes, lines 2685-2730
2685// ../../../node_modules/crypto-js/lib-typedarrays.js 2686 var require_lib_typedarrays = __commonJS({ 2687 "../../../node_modules/crypto-js/lib-typedarrays.js"(exports, module) { 2688 (function(root, factory) { 2689 if (typeof exports === "object") { 2690 module.exports = exports = factory(require_core()); 2691 } else if (typeof define === "function" && define.amd) { 2692 define(["./core"], factory); 2693 } else { 2694 factory(root.CryptoJS); 2695 } 2696 })(exports, function(CryptoJS) { 2697 (function() { 2698 if (typeof ArrayBuffer != "function") { 2699 return; 2700 } 2701 var C = CryptoJS; 2702 var C_lib = C.lib; 2703 var WordArray = C_lib.WordArray; 2704 var superInit = WordArray.init; 2705 var subInit = WordArray.init = function(typedArray) { 2706 if (typedArray instanceof ArrayBuffer) { 2707 typedArray = new Uint8Array(typedArray); 2708 } 2709 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) { 2710 typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); 2711 } 2712 if (typedArray instanceof Uint8Array) { 2713 var typedArrayByteLength = typedArray.byteLength; 2714 var words = []; 2715 for (var i = 0; i < typedArrayByteLength; i++) { 2716 words[i >>> 2] |= typedArray[i] << 24 - i % 4 * 8; 2717 } 2718 superInit.call(this, words, typedArrayByteLength); 2719 } else { 2720 superInit.apply(this, arguments); 2721 } 2722 }; 2723 subInit.prototype = WordArray; 2724 })(); 2725 return CryptoJS.lib.WordArray; 2726 }); 2727 } 2728 }); 2729 2730
vendor: 4,169 bytes, lines 2730-2848
2730// ../../../node_modules/crypto-js/enc-utf16.js 2731 var require_enc_utf16 = __commonJS({ 2732 "../../../node_modules/crypto-js/enc-utf16.js"(exports, module) { 2733 (function(root, factory) { 2734 if (typeof exports === "object") { 2735 module.exports = exports = factory(require_core()); 2736 } else if (typeof define === "function" && define.amd) { 2737 define(["./core"], factory); 2738 } else { 2739 factory(root.CryptoJS); 2740 } 2741 })(exports, function(CryptoJS) { 2742 (function() { 2743 var C = CryptoJS; 2744 var C_lib = C.lib; 2745 var WordArray = C_lib.WordArray; 2746 var C_enc = C.enc; 2747 var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = { 2748 /** 2749 * Converts a word array to a UTF-16 BE string. 2750 * 2751 * @param {WordArray} wordArray The word array. 2752 * 2753 * @return {string} The UTF-16 BE string. 2754 * 2755 * @static 2756 * 2757 * @example 2758 * 2759 * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray); 2760 */ 2761 stringify: function(wordArray) { 2762 var words = wordArray.words; 2763 var sigBytes = wordArray.sigBytes; 2764 var utf16Chars = []; 2765 for (var i = 0; i < sigBytes; i += 2) { 2766 var codePoint = words[i >>> 2] >>> 16 - i % 4 * 8 & 65535; 2767 utf16Chars.push(String.fromCharCode(codePoint)); 2768 } 2769 return utf16Chars.join(""); 2770 }, 2771 /** 2772 * Converts a UTF-16 BE string to a word array. 2773 * 2774 * @param {string} utf16Str The UTF-16 BE string. 2775 * 2776 * @return {WordArray} The word array. 2777 * 2778 * @static 2779 * 2780 * @example 2781 * 2782 * var wordArray = CryptoJS.enc.Utf16.parse(utf16String); 2783 */ 2784 parse: function(utf16Str) { 2785 var utf16StrLength = utf16Str.length; 2786 var words = []; 2787 for (var i = 0; i < utf16StrLength; i++) { 2788 words[i >>> 1] |= utf16Str.charCodeAt(i) << 16 - i % 2 * 16; 2789 } 2790 return WordArray.create(words, utf16StrLength * 2); 2791 } 2792 }; 2793 C_enc.Utf16LE = { 2794 /** 2795 * Converts a word array to a UTF-16 LE string. 2796 * 2797 * @param {WordArray} wordArray The word array. 2798 * 2799 * @return {string} The UTF-16 LE string. 2800 * 2801 * @static 2802 * 2803 * @example 2804 * 2805 * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray); 2806 */ 2807 stringify: function(wordArray) { 2808 var words = wordArray.words; 2809 var sigBytes = wordArray.sigBytes; 2810 var utf16Chars = []; 2811 for (var i = 0; i < sigBytes; i += 2) { 2812 var codePoint = swapEndian(words[i >>> 2] >>> 16 - i % 4 * 8 & 65535); 2813 utf16Chars.push(String.fromCharCode(codePoint)); 2814 } 2815 return utf16Chars.join(""); 2816 }, 2817 /** 2818 * Converts a UTF-16 LE string to a word array. 2819 * 2820 * @param {string} utf16Str The UTF-16 LE string. 2821 * 2822 * @return {WordArray} The word array. 2823 * 2824 * @static 2825 * 2826 * @example 2827 * 2828 * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str); 2829 */ 2830 parse: function(utf16Str) { 2831 var utf16StrLength = utf16Str.length; 2832 var words = []; 2833 for (var i = 0; i < utf16StrLength; i++) { 2834 words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << 16 - i % 2 * 16); 2835 } 2836 return WordArray.create(words, utf16StrLength * 2); 2837 } 2838 }; 2839 function swapEndian(word) { 2840 return word << 8 & 4278255360 | word >>> 8 & 16711935; 2841 } 2842 })(); 2843 return CryptoJS.enc.Utf16; 2844 }); 2845 } 2846 }); 2847 2848
vendor: 4,098 bytes, lines 2848-2956
2848// ../../../node_modules/crypto-js/enc-base64.js 2849 var require_enc_base64 = __commonJS({ 2850 "../../../node_modules/crypto-js/enc-base64.js"(exports, module) { 2851 (function(root, factory) { 2852 if (typeof exports === "object") { 2853 module.exports = exports = factory(require_core()); 2854 } else if (typeof define === "function" && define.amd) { 2855 define(["./core"], factory); 2856 } else { 2857 factory(root.CryptoJS); 2858 } 2859 })(exports, function(CryptoJS) { 2860 (function() { 2861 var C = CryptoJS; 2862 var C_lib = C.lib; 2863 var WordArray = C_lib.WordArray; 2864 var C_enc = C.enc; 2865 var Base64 = C_enc.Base64 = { 2866 /** 2867 * Converts a word array to a Base64 string. 2868 * 2869 * @param {WordArray} wordArray The word array. 2870 * 2871 * @return {string} The Base64 string. 2872 * 2873 * @static 2874 * 2875 * @example 2876 * 2877 * var base64String = CryptoJS.enc.Base64.stringify(wordArray); 2878 */ 2879 stringify: function(wordArray) { 2880 var words = wordArray.words; 2881 var sigBytes = wordArray.sigBytes; 2882 var map = this._map; 2883 wordArray.clamp(); 2884 var base64Chars = []; 2885 for (var i = 0; i < sigBytes; i += 3) { 2886 var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 255; 2887 var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255; 2888 var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255; 2889 var triplet = byte1 << 16 | byte2 << 8 | byte3; 2890 for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) { 2891 base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 63)); 2892 } 2893 } 2894 var paddingChar = map.charAt(64); 2895 if (paddingChar) { 2896 while (base64Chars.length % 4) { 2897 base64Chars.push(paddingChar); 2898 } 2899 } 2900 return base64Chars.join(""); 2901 }, 2902 /** 2903 * Converts a Base64 string to a word array. 2904 * 2905 * @param {string} base64Str The Base64 string. 2906 * 2907 * @return {WordArray} The word array. 2908 * 2909 * @static 2910 * 2911 * @example 2912 * 2913 * var wordArray = CryptoJS.enc.Base64.parse(base64String); 2914 */ 2915 parse: function(base64Str) { 2916 var base64StrLength = base64Str.length; 2917 var map = this._map; 2918 var reverseMap = this._reverseMap; 2919 if (!reverseMap) { 2920 reverseMap = this._reverseMap = []; 2921 for (var j = 0; j < map.length; j++) { 2922 reverseMap[map.charCodeAt(j)] = j; 2923 } 2924 } 2925 var paddingChar = map.charAt(64); 2926 if (paddingChar) { 2927 var paddingIndex = base64Str.indexOf(paddingChar); 2928 if (paddingIndex !== -1) { 2929 base64StrLength = paddingIndex; 2930 } 2931 } 2932 return parseLoop(base64Str, base64StrLength, reverseMap); 2933 }, 2934 _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" 2935 }; 2936 function parseLoop(base64Str, base64StrLength, reverseMap) { 2937 var words = []; 2938 var nBytes = 0; 2939 for (var i = 0; i < base64StrLength; i++) { 2940 if (i % 4) { 2941 var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2; 2942 var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2; 2943 var bitsCombined = bits1 | bits2; 2944 words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8; 2945 nBytes++; 2946 } 2947 } 2948 return WordArray.create(words, nBytes); 2949 } 2950 })(); 2951 return CryptoJS.enc.Base64; 2952 }); 2953 } 2954 }); 2955 2956
vendor: 4,469 bytes, lines 2956-3069
2956// ../../../node_modules/crypto-js/enc-base64url.js 2957 var require_enc_base64url = __commonJS({ 2958 "../../../node_modules/crypto-js/enc-base64url.js"(exports, module) { 2959 (function(root, factory) { 2960 if (typeof exports === "object") { 2961 module.exports = exports = factory(require_core()); 2962 } else if (typeof define === "function" && define.amd) { 2963 define(["./core"], factory); 2964 } else { 2965 factory(root.CryptoJS); 2966 } 2967 })(exports, function(CryptoJS) { 2968 (function() { 2969 var C = CryptoJS; 2970 var C_lib = C.lib; 2971 var WordArray = C_lib.WordArray; 2972 var C_enc = C.enc; 2973 var Base64url = C_enc.Base64url = { 2974 /** 2975 * Converts a word array to a Base64url string. 2976 * 2977 * @param {WordArray} wordArray The word array. 2978 * 2979 * @param {boolean} urlSafe Whether to use url safe 2980 * 2981 * @return {string} The Base64url string. 2982 * 2983 * @static 2984 * 2985 * @example 2986 * 2987 * var base64String = CryptoJS.enc.Base64url.stringify(wordArray); 2988 */ 2989 stringify: function(wordArray, urlSafe = true) { 2990 var words = wordArray.words; 2991 var sigBytes = wordArray.sigBytes; 2992 var map = urlSafe ? this._safe_map : this._map; 2993 wordArray.clamp(); 2994 var base64Chars = []; 2995 for (var i = 0; i < sigBytes; i += 3) { 2996 var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 255; 2997 var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255; 2998 var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255; 2999 var triplet = byte1 << 16 | byte2 << 8 | byte3; 3000 for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) { 3001 base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 63)); 3002 } 3003 } 3004 var paddingChar = map.charAt(64); 3005 if (paddingChar) { 3006 while (base64Chars.length % 4) { 3007 base64Chars.push(paddingChar); 3008 } 3009 } 3010 return base64Chars.join(""); 3011 }, 3012 /** 3013 * Converts a Base64url string to a word array. 3014 * 3015 * @param {string} base64Str The Base64url string. 3016 * 3017 * @param {boolean} urlSafe Whether to use url safe 3018 * 3019 * @return {WordArray} The word array. 3020 * 3021 * @static 3022 * 3023 * @example 3024 * 3025 * var wordArray = CryptoJS.enc.Base64url.parse(base64String); 3026 */ 3027 parse: function(base64Str, urlSafe = true) { 3028 var base64StrLength = base64Str.length; 3029 var map = urlSafe ? this._safe_map : this._map; 3030 var reverseMap = this._reverseMap; 3031 if (!reverseMap) { 3032 reverseMap = this._reverseMap = []; 3033 for (var j = 0; j < map.length; j++) { 3034 reverseMap[map.charCodeAt(j)] = j; 3035 } 3036 } 3037 var paddingChar = map.charAt(64); 3038 if (paddingChar) { 3039 var paddingIndex = base64Str.indexOf(paddingChar); 3040 if (paddingIndex !== -1) { 3041 base64StrLength = paddingIndex; 3042 } 3043 } 3044 return parseLoop(base64Str, base64StrLength, reverseMap); 3045 }, 3046 _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", 3047 _safe_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_" 3048 }; 3049 function parseLoop(base64Str, base64StrLength, reverseMap) { 3050 var words = []; 3051 var nBytes = 0; 3052 for (var i = 0; i < base64StrLength; i++) { 3053 if (i % 4) { 3054 var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2; 3055 var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2; 3056 var bitsCombined = bits1 | bits2; 3057 words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8; 3058 nBytes++; 3059 } 3060 } 3061 return WordArray.create(words, nBytes); 3062 } 3063 })(); 3064 return CryptoJS.enc.Base64url; 3065 }); 3066 } 3067 }); 3068 3069
vendor: 8,269 bytes, lines 3069-3248
3069// ../../../node_modules/crypto-js/md5.js 3070 var require_md5 = __commonJS({ 3071 "../../../node_modules/crypto-js/md5.js"(exports, module) { 3072 (function(root, factory) { 3073 if (typeof exports === "object") { 3074 module.exports = exports = factory(require_core()); 3075 } else if (typeof define === "function" && define.amd) { 3076 define(["./core"], factory); 3077 } else { 3078 factory(root.CryptoJS); 3079 } 3080 })(exports, function(CryptoJS) { 3081 (function(Math2) { 3082 var C = CryptoJS; 3083 var C_lib = C.lib; 3084 var WordArray = C_lib.WordArray; 3085 var Hasher = C_lib.Hasher; 3086 var C_algo = C.algo; 3087 var T = []; 3088 (function() { 3089 for (var i = 0; i < 64; i++) { 3090 T[i] = Math2.abs(Math2.sin(i + 1)) * 4294967296 | 0; 3091 } 3092 })(); 3093 var MD5 = C_algo.MD5 = Hasher.extend({ 3094 _doReset: function() { 3095 this._hash = new WordArray.init([ 3096 1732584193, 3097 4023233417, 3098 2562383102, 3099 271733878 3100 ]); 3101 }, 3102 _doProcessBlock: function(M, offset) { 3103 for (var i = 0; i < 16; i++) { 3104 var offset_i = offset + i; 3105 var M_offset_i = M[offset_i]; 3106 M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 16711935 | (M_offset_i << 24 | M_offset_i >>> 8) & 4278255360; 3107 } 3108 var H = this._hash.words; 3109 var M_offset_0 = M[offset + 0]; 3110 var M_offset_1 = M[offset + 1]; 3111 var M_offset_2 = M[offset + 2]; 3112 var M_offset_3 = M[offset + 3]; 3113 var M_offset_4 = M[offset + 4]; 3114 var M_offset_5 = M[offset + 5]; 3115 var M_offset_6 = M[offset + 6]; 3116 var M_offset_7 = M[offset + 7]; 3117 var M_offset_8 = M[offset + 8]; 3118 var M_offset_9 = M[offset + 9]; 3119 var M_offset_10 = M[offset + 10]; 3120 var M_offset_11 = M[offset + 11]; 3121 var M_offset_12 = M[offset + 12]; 3122 var M_offset_13 = M[offset + 13]; 3123 var M_offset_14 = M[offset + 14]; 3124 var M_offset_15 = M[offset + 15]; 3125 var a = H[0]; 3126 var b = H[1]; 3127 var c = H[2]; 3128 var d = H[3]; 3129 a = FF(a, b, c, d, M_offset_0, 7, T[0]); 3130 d = FF(d, a, b, c, M_offset_1, 12, T[1]); 3131 c = FF(c, d, a, b, M_offset_2, 17, T[2]); 3132 b = FF(b, c, d, a, M_offset_3, 22, T[3]); 3133 a = FF(a, b, c, d, M_offset_4, 7, T[4]); 3134 d = FF(d, a, b, c, M_offset_5, 12, T[5]); 3135 c = FF(c, d, a, b, M_offset_6, 17, T[6]); 3136 b = FF(b, c, d, a, M_offset_7, 22, T[7]); 3137 a = FF(a, b, c, d, M_offset_8, 7, T[8]); 3138 d = FF(d, a, b, c, M_offset_9, 12, T[9]); 3139 c = FF(c, d, a, b, M_offset_10, 17, T[10]); 3140 b = FF(b, c, d, a, M_offset_11, 22, T[11]); 3141 a = FF(a, b, c, d, M_offset_12, 7, T[12]); 3142 d = FF(d, a, b, c, M_offset_13, 12, T[13]); 3143 c = FF(c, d, a, b, M_offset_14, 17, T[14]); 3144 b = FF(b, c, d, a, M_offset_15, 22, T[15]); 3145 a = GG(a, b, c, d, M_offset_1, 5, T[16]); 3146 d = GG(d, a, b, c, M_offset_6, 9, T[17]); 3147 c = GG(c, d, a, b, M_offset_11, 14, T[18]); 3148 b = GG(b, c, d, a, M_offset_0, 20, T[19]); 3149 a = GG(a, b, c, d, M_offset_5, 5, T[20]); 3150 d = GG(d, a, b, c, M_offset_10, 9, T[21]); 3151 c = GG(c, d, a, b, M_offset_15, 14, T[22]); 3152 b = GG(b, c, d, a, M_offset_4, 20, T[23]); 3153 a = GG(a, b, c, d, M_offset_9, 5, T[24]); 3154 d = GG(d, a, b, c, M_offset_14, 9, T[25]); 3155 c = GG(c, d, a, b, M_offset_3, 14, T[26]); 3156 b = GG(b, c, d, a, M_offset_8, 20, T[27]); 3157 a = GG(a, b, c, d, M_offset_13, 5, T[28]); 3158 d = GG(d, a, b, c, M_offset_2, 9, T[29]); 3159 c = GG(c, d, a, b, M_offset_7, 14, T[30]); 3160 b = GG(b, c, d, a, M_offset_12, 20, T[31]); 3161 a = HH(a, b, c, d, M_offset_5, 4, T[32]); 3162 d = HH(d, a, b, c, M_offset_8, 11, T[33]); 3163 c = HH(c, d, a, b, M_offset_11, 16, T[34]); 3164 b = HH(b, c, d, a, M_offset_14, 23, T[35]); 3165 a = HH(a, b, c, d, M_offset_1, 4, T[36]); 3166 d = HH(d, a, b, c, M_offset_4, 11, T[37]); 3167 c = HH(c, d, a, b, M_offset_7, 16, T[38]); 3168 b = HH(b, c, d, a, M_offset_10, 23, T[39]); 3169 a = HH(a, b, c, d, M_offset_13, 4, T[40]); 3170 d = HH(d, a, b, c, M_offset_0, 11, T[41]); 3171 c = HH(c, d, a, b, M_offset_3, 16, T[42]); 3172 b = HH(b, c, d, a, M_offset_6, 23, T[43]); 3173 a = HH(a, b, c, d, M_offset_9, 4, T[44]); 3174 d = HH(d, a, b, c, M_offset_12, 11, T[45]); 3175 c = HH(c, d, a, b, M_offset_15, 16, T[46]); 3176 b = HH(b, c, d, a, M_offset_2, 23, T[47]); 3177 a = II(a, b, c, d, M_offset_0, 6, T[48]); 3178 d = II(d, a, b, c, M_offset_7, 10, T[49]); 3179 c = II(c, d, a, b, M_offset_14, 15, T[50]); 3180 b = II(b, c, d, a, M_offset_5, 21, T[51]); 3181 a = II(a, b, c, d, M_offset_12, 6, T[52]); 3182 d = II(d, a, b, c, M_offset_3, 10, T[53]); 3183 c = II(c, d, a, b, M_offset_10, 15, T[54]); 3184 b = II(b, c, d, a, M_offset_1, 21, T[55]); 3185 a = II(a, b, c, d, M_offset_8, 6, T[56]); 3186 d = II(d, a, b, c, M_offset_15, 10, T[57]); 3187 c = II(c, d, a, b, M_offset_6, 15, T[58]); 3188 b = II(b, c, d, a, M_offset_13, 21, T[59]); 3189 a = II(a, b, c, d, M_offset_4, 6, T[60]); 3190 d = II(d, a, b, c, M_offset_11, 10, T[61]); 3191 c = II(c, d, a, b, M_offset_2, 15, T[62]); 3192 b = II(b, c, d, a, M_offset_9, 21, T[63]); 3193 H[0] = H[0] + a | 0; 3194 H[1] = H[1] + b | 0; 3195 H[2] = H[2] + c | 0; 3196 H[3] = H[3] + d | 0; 3197 }, 3198 _doFinalize: function() { 3199 var data = this._data; 3200 var dataWords = data.words; 3201 var nBitsTotal = this._nDataBytes * 8; 3202 var nBitsLeft = data.sigBytes * 8; 3203 dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32; 3204 var nBitsTotalH = Math2.floor(nBitsTotal / 4294967296); 3205 var nBitsTotalL = nBitsTotal; 3206 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = (nBitsTotalH << 8 | nBitsTotalH >>> 24) & 16711935 | (nBitsTotalH << 24 | nBitsTotalH >>> 8) & 4278255360; 3207 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotalL << 8 | nBitsTotalL >>> 24) & 16711935 | (nBitsTotalL << 24 | nBitsTotalL >>> 8) & 4278255360; 3208 data.sigBytes = (dataWords.length + 1) * 4; 3209 this._process(); 3210 var hash = this._hash; 3211 var H = hash.words; 3212 for (var i = 0; i < 4; i++) { 3213 var H_i = H[i]; 3214 H[i] = (H_i << 8 | H_i >>> 24) & 16711935 | (H_i << 24 | H_i >>> 8) & 4278255360; 3215 } 3216 return hash; 3217 }, 3218 clone: function() { 3219 var clone = Hasher.clone.call(this); 3220 clone._hash = this._hash.clone(); 3221 return clone; 3222 } 3223 }); 3224 function FF(a, b, c, d, x, s, t) { 3225 var n = a + (b & c | ~b & d) + x + t; 3226 return (n << s | n >>> 32 - s) + b; 3227 } 3228 function GG(a, b, c, d, x, s, t) { 3229 var n = a + (b & d | c & ~d) + x + t; 3230 return (n << s | n >>> 32 - s) + b; 3231 } 3232 function HH(a, b, c, d, x, s, t) { 3233 var n = a + (b ^ c ^ d) + x + t; 3234 return (n << s | n >>> 32 - s) + b; 3235 } 3236 function II(a, b, c, d, x, s, t) { 3237 var n = a + (c ^ (b | ~d)) + x + t; 3238 return (n << s | n >>> 32 - s) + b; 3239 } 3240 C.MD5 = Hasher._createHelper(MD5); 3241 C.HmacMD5 = Hasher._createHmacHelper(MD5); 3242 })(Math); 3243 return CryptoJS.MD5; 3244 }); 3245 } 3246 }); 3247 3248
vendor: 3,210 bytes, lines 3248-3339
3248// ../../../node_modules/crypto-js/sha1.js 3249 var require_sha1 = __commonJS({ 3250 "../../../node_modules/crypto-js/sha1.js"(exports, module) { 3251 (function(root, factory) { 3252 if (typeof exports === "object") { 3253 module.exports = exports = factory(require_core()); 3254 } else if (typeof define === "function" && define.amd) { 3255 define(["./core"], factory); 3256 } else { 3257 factory(root.CryptoJS); 3258 } 3259 })(exports, function(CryptoJS) { 3260 (function() { 3261 var C = CryptoJS; 3262 var C_lib = C.lib; 3263 var WordArray = C_lib.WordArray; 3264 var Hasher = C_lib.Hasher; 3265 var C_algo = C.algo; 3266 var W = []; 3267 var SHA1 = C_algo.SHA1 = Hasher.extend({ 3268 _doReset: function() { 3269 this._hash = new WordArray.init([ 3270 1732584193, 3271 4023233417, 3272 2562383102, 3273 271733878, 3274 3285377520 3275 ]); 3276 }, 3277 _doProcessBlock: function(M, offset) { 3278 var H = this._hash.words; 3279 var a = H[0]; 3280 var b = H[1]; 3281 var c = H[2]; 3282 var d = H[3]; 3283 var e = H[4]; 3284 for (var i = 0; i < 80; i++) { 3285 if (i < 16) { 3286 W[i] = M[offset + i] | 0; 3287 } else { 3288 var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; 3289 W[i] = n << 1 | n >>> 31; 3290 } 3291 var t = (a << 5 | a >>> 27) + e + W[i]; 3292 if (i < 20) { 3293 t += (b & c | ~b & d) + 1518500249; 3294 } else if (i < 40) { 3295 t += (b ^ c ^ d) + 1859775393; 3296 } else if (i < 60) { 3297 t += (b & c | b & d | c & d) - 1894007588; 3298 } else { 3299 t += (b ^ c ^ d) - 899497514; 3300 } 3301 e = d; 3302 d = c; 3303 c = b << 30 | b >>> 2; 3304 b = a; 3305 a = t; 3306 } 3307 H[0] = H[0] + a | 0; 3308 H[1] = H[1] + b | 0; 3309 H[2] = H[2] + c | 0; 3310 H[3] = H[3] + d | 0; 3311 H[4] = H[4] + e | 0; 3312 }, 3313 _doFinalize: function() { 3314 var data = this._data; 3315 var dataWords = data.words; 3316 var nBitsTotal = this._nDataBytes * 8; 3317 var nBitsLeft = data.sigBytes * 8; 3318 dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32; 3319 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 4294967296); 3320 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal; 3321 data.sigBytes = dataWords.length * 4; 3322 this._process(); 3323 return this._hash; 3324 }, 3325 clone: function() { 3326 var clone = Hasher.clone.call(this); 3327 clone._hash = this._hash.clone(); 3328 return clone; 3329 } 3330 }); 3331 C.SHA1 = Hasher._createHelper(SHA1); 3332 C.HmacSHA1 = Hasher._createHmacHelper(SHA1); 3333 })(); 3334 return CryptoJS.SHA1; 3335 }); 3336 } 3337 }); 3338 3339
vendor: 4,475 bytes, lines 3339-3460
3339// ../../../node_modules/crypto-js/sha256.js 3340 var require_sha256 = __commonJS({ 3341 "../../../node_modules/crypto-js/sha256.js"(exports, module) { 3342 (function(root, factory) { 3343 if (typeof exports === "object") { 3344 module.exports = exports = factory(require_core()); 3345 } else if (typeof define === "function" && define.amd) { 3346 define(["./core"], factory); 3347 } else { 3348 factory(root.CryptoJS); 3349 } 3350 })(exports, function(CryptoJS) { 3351 (function(Math2) { 3352 var C = CryptoJS; 3353 var C_lib = C.lib; 3354 var WordArray = C_lib.WordArray; 3355 var Hasher = C_lib.Hasher; 3356 var C_algo = C.algo; 3357 var H = []; 3358 var K = []; 3359 (function() { 3360 function isPrime(n2) { 3361 var sqrtN = Math2.sqrt(n2); 3362 for (var factor = 2; factor <= sqrtN; factor++) { 3363 if (!(n2 % factor)) { 3364 return false; 3365 } 3366 } 3367 return true; 3368 } 3369 function getFractionalBits(n2) { 3370 return (n2 - (n2 | 0)) * 4294967296 | 0; 3371 } 3372 var n = 2; 3373 var nPrime = 0; 3374 while (nPrime < 64) { 3375 if (isPrime(n)) { 3376 if (nPrime < 8) { 3377 H[nPrime] = getFractionalBits(Math2.pow(n, 1 / 2)); 3378 } 3379 K[nPrime] = getFractionalBits(Math2.pow(n, 1 / 3)); 3380 nPrime++; 3381 } 3382 n++; 3383 } 3384 })(); 3385 var W = []; 3386 var SHA256 = C_algo.SHA256 = Hasher.extend({ 3387 _doReset: function() { 3388 this._hash = new WordArray.init(H.slice(0)); 3389 }, 3390 _doProcessBlock: function(M, offset) { 3391 var H2 = this._hash.words; 3392 var a = H2[0]; 3393 var b = H2[1]; 3394 var c = H2[2]; 3395 var d = H2[3]; 3396 var e = H2[4]; 3397 var f = H2[5]; 3398 var g = H2[6]; 3399 var h = H2[7]; 3400 for (var i = 0; i < 64; i++) { 3401 if (i < 16) { 3402 W[i] = M[offset + i] | 0; 3403 } else { 3404 var gamma0x = W[i - 15]; 3405 var gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3; 3406 var gamma1x = W[i - 2]; 3407 var gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10; 3408 W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; 3409 } 3410 var ch = e & f ^ ~e & g; 3411 var maj = a & b ^ a & c ^ b & c; 3412 var sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22); 3413 var sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25); 3414 var t1 = h + sigma1 + ch + K[i] + W[i]; 3415 var t2 = sigma0 + maj; 3416 h = g; 3417 g = f; 3418 f = e; 3419 e = d + t1 | 0; 3420 d = c; 3421 c = b; 3422 b = a; 3423 a = t1 + t2 | 0; 3424 } 3425 H2[0] = H2[0] + a | 0; 3426 H2[1] = H2[1] + b | 0; 3427 H2[2] = H2[2] + c | 0; 3428 H2[3] = H2[3] + d | 0; 3429 H2[4] = H2[4] + e | 0; 3430 H2[5] = H2[5] + f | 0; 3431 H2[6] = H2[6] + g | 0; 3432 H2[7] = H2[7] + h | 0; 3433 }, 3434 _doFinalize: function() { 3435 var data = this._data; 3436 var dataWords = data.words; 3437 var nBitsTotal = this._nDataBytes * 8; 3438 var nBitsLeft = data.sigBytes * 8; 3439 dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32; 3440 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math2.floor(nBitsTotal / 4294967296); 3441 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal; 3442 data.sigBytes = dataWords.length * 4; 3443 this._process(); 3444 return this._hash; 3445 }, 3446 clone: function() { 3447 var clone = Hasher.clone.call(this); 3448 clone._hash = this._hash.clone(); 3449 return clone; 3450 } 3451 }); 3452 C.SHA256 = Hasher._createHelper(SHA256); 3453 C.HmacSHA256 = Hasher._createHmacHelper(SHA256); 3454 })(Math); 3455 return CryptoJS.SHA256; 3456 }); 3457 } 3458 }); 3459 3460
vendor: 1,474 bytes, lines 3460-3505
3460// ../../../node_modules/crypto-js/sha224.js 3461 var require_sha224 = __commonJS({ 3462 "../../../node_modules/crypto-js/sha224.js"(exports, module) { 3463 (function(root, factory, undef) { 3464 if (typeof exports === "object") { 3465 module.exports = exports = factory(require_core(), require_sha256()); 3466 } else if (typeof define === "function" && define.amd) { 3467 define(["./core", "./sha256"], factory); 3468 } else { 3469 factory(root.CryptoJS); 3470 } 3471 })(exports, function(CryptoJS) { 3472 (function() { 3473 var C = CryptoJS; 3474 var C_lib = C.lib; 3475 var WordArray = C_lib.WordArray; 3476 var C_algo = C.algo; 3477 var SHA256 = C_algo.SHA256; 3478 var SHA224 = C_algo.SHA224 = SHA256.extend({ 3479 _doReset: function() { 3480 this._hash = new WordArray.init([ 3481 3238371032, 3482 914150663, 3483 812702999, 3484 4144912697, 3485 4290775857, 3486 1750603025, 3487 1694076839, 3488 3204075428 3489 ]); 3490 }, 3491 _doFinalize: function() { 3492 var hash = SHA256._doFinalize.call(this); 3493 hash.sigBytes -= 4; 3494 return hash; 3495 } 3496 }); 3497 C.SHA224 = SHA256._createHelper(SHA224); 3498 C.HmacSHA224 = SHA256._createHmacHelper(SHA224); 3499 })(); 3500 return CryptoJS.SHA224; 3501 }); 3502 } 3503 }); 3504 3505
vendor: 12,582 bytes, lines 3505-3787
3505// ../../../node_modules/crypto-js/sha512.js 3506 var require_sha512 = __commonJS({ 3507 "../../../node_modules/crypto-js/sha512.js"(exports, module) { 3508 (function(root, factory, undef) { 3509 if (typeof exports === "object") { 3510 module.exports = exports = factory(require_core(), require_x64_core()); 3511 } else if (typeof define === "function" && define.amd) { 3512 define(["./core", "./x64-core"], factory); 3513 } else { 3514 factory(root.CryptoJS); 3515 } 3516 })(exports, function(CryptoJS) { 3517 (function() { 3518 var C = CryptoJS; 3519 var C_lib = C.lib; 3520 var Hasher = C_lib.Hasher; 3521 var C_x64 = C.x64; 3522 var X64Word = C_x64.Word; 3523 var X64WordArray = C_x64.WordArray; 3524 var C_algo = C.algo; 3525 function X64Word_create() { 3526 return X64Word.create.apply(X64Word, arguments); 3527 } 3528 var K = [ 3529 X64Word_create(1116352408, 3609767458), 3530 X64Word_create(1899447441, 602891725), 3531 X64Word_create(3049323471, 3964484399), 3532 X64Word_create(3921009573, 2173295548), 3533 X64Word_create(961987163, 4081628472), 3534 X64Word_create(1508970993, 3053834265), 3535 X64Word_create(2453635748, 2937671579), 3536 X64Word_create(2870763221, 3664609560), 3537 X64Word_create(3624381080, 2734883394), 3538 X64Word_create(310598401, 1164996542), 3539 X64Word_create(607225278, 1323610764), 3540 X64Word_create(1426881987, 3590304994), 3541 X64Word_create(1925078388, 4068182383), 3542 X64Word_create(2162078206, 991336113), 3543 X64Word_create(2614888103, 633803317), 3544 X64Word_create(3248222580, 3479774868), 3545 X64Word_create(3835390401, 2666613458), 3546 X64Word_create(4022224774, 944711139), 3547 X64Word_create(264347078, 2341262773), 3548 X64Word_create(604807628, 2007800933), 3549 X64Word_create(770255983, 1495990901), 3550 X64Word_create(1249150122, 1856431235), 3551 X64Word_create(1555081692, 3175218132), 3552 X64Word_create(1996064986, 2198950837), 3553 X64Word_create(2554220882, 3999719339), 3554 X64Word_create(2821834349, 766784016), 3555 X64Word_create(2952996808, 2566594879), 3556 X64Word_create(3210313671, 3203337956), 3557 X64Word_create(3336571891, 1034457026), 3558 X64Word_create(3584528711, 2466948901), 3559 X64Word_create(113926993, 3758326383), 3560 X64Word_create(338241895, 168717936), 3561 X64Word_create(666307205, 1188179964), 3562 X64Word_create(773529912, 1546045734), 3563 X64Word_create(1294757372, 1522805485), 3564 X64Word_create(1396182291, 2643833823), 3565 X64Word_create(1695183700, 2343527390), 3566 X64Word_create(1986661051, 1014477480), 3567 X64Word_create(2177026350, 1206759142), 3568 X64Word_create(2456956037, 344077627), 3569 X64Word_create(2730485921, 1290863460), 3570 X64Word_create(2820302411, 3158454273), 3571 X64Word_create(3259730800, 3505952657), 3572 X64Word_create(3345764771, 106217008), 3573 X64Word_create(3516065817, 3606008344), 3574 X64Word_create(3600352804, 1432725776), 3575 X64Word_create(4094571909, 1467031594), 3576 X64Word_create(275423344, 851169720), 3577 X64Word_create(430227734, 3100823752), 3578 X64Word_create(506948616, 1363258195), 3579 X64Word_create(659060556, 3750685593), 3580 X64Word_create(883997877, 3785050280), 3581 X64Word_create(958139571, 3318307427), 3582 X64Word_create(1322822218, 3812723403), 3583 X64Word_create(1537002063, 2003034995), 3584 X64Word_create(1747873779, 3602036899), 3585 X64Word_create(1955562222, 1575990012), 3586 X64Word_create(2024104815, 1125592928), 3587 X64Word_create(2227730452, 2716904306), 3588 X64Word_create(2361852424, 442776044), 3589 X64Word_create(2428436474, 593698344), 3590 X64Word_create(2756734187, 3733110249), 3591 X64Word_create(3204031479, 2999351573), 3592 X64Word_create(3329325298, 3815920427), 3593 X64Word_create(3391569614, 3928383900), 3594 X64Word_create(3515267271, 566280711), 3595 X64Word_create(3940187606, 3454069534), 3596 X64Word_create(4118630271, 4000239992), 3597 X64Word_create(116418474, 1914138554), 3598 X64Word_create(174292421, 2731055270), 3599 X64Word_create(289380356, 3203993006), 3600 X64Word_create(460393269, 320620315), 3601 X64Word_create(685471733, 587496836), 3602 X64Word_create(852142971, 1086792851), 3603 X64Word_create(1017036298, 365543100), 3604 X64Word_create(1126000580, 2618297676), 3605 X64Word_create(1288033470, 3409855158), 3606 X64Word_create(1501505948, 4234509866), 3607 X64Word_create(1607167915, 987167468), 3608 X64Word_create(1816402316, 1246189591) 3609 ]; 3610 var W = []; 3611 (function() { 3612 for (var i = 0; i < 80; i++) { 3613 W[i] = X64Word_create(); 3614 } 3615 })(); 3616 var SHA512 = C_algo.SHA512 = Hasher.extend({ 3617 _doReset: function() { 3618 this._hash = new X64WordArray.init([ 3619 new X64Word.init(1779033703, 4089235720), 3620 new X64Word.init(3144134277, 2227873595), 3621 new X64Word.init(1013904242, 4271175723), 3622 new X64Word.init(2773480762, 1595750129), 3623 new X64Word.init(1359893119, 2917565137), 3624 new X64Word.init(2600822924, 725511199), 3625 new X64Word.init(528734635, 4215389547), 3626 new X64Word.init(1541459225, 327033209) 3627 ]); 3628 }, 3629 _doProcessBlock: function(M, offset) { 3630 var H = this._hash.words; 3631 var H0 = H[0]; 3632 var H1 = H[1]; 3633 var H2 = H[2]; 3634 var H3 = H[3]; 3635 var H4 = H[4]; 3636 var H5 = H[5]; 3637 var H6 = H[6]; 3638 var H7 = H[7]; 3639 var H0h = H0.high; 3640 var H0l = H0.low; 3641 var H1h = H1.high; 3642 var H1l = H1.low; 3643 var H2h = H2.high; 3644 var H2l = H2.low; 3645 var H3h = H3.high; 3646 var H3l = H3.low; 3647 var H4h = H4.high; 3648 var H4l = H4.low; 3649 var H5h = H5.high; 3650 var H5l = H5.low; 3651 var H6h = H6.high; 3652 var H6l = H6.low; 3653 var H7h = H7.high; 3654 var H7l = H7.low; 3655 var ah = H0h; 3656 var al = H0l; 3657 var bh = H1h; 3658 var bl = H1l; 3659 var ch = H2h; 3660 var cl = H2l; 3661 var dh = H3h; 3662 var dl = H3l; 3663 var eh = H4h; 3664 var el = H4l; 3665 var fh = H5h; 3666 var fl = H5l; 3667 var gh = H6h; 3668 var gl = H6l; 3669 var hh = H7h; 3670 var hl = H7l; 3671 for (var i = 0; i < 80; i++) { 3672 var Wil; 3673 var Wih; 3674 var Wi = W[i]; 3675 if (i < 16) { 3676 Wih = Wi.high = M[offset + i * 2] | 0; 3677 Wil = Wi.low = M[offset + i * 2 + 1] | 0; 3678 } else { 3679 var gamma0x = W[i - 15]; 3680 var gamma0xh = gamma0x.high; 3681 var gamma0xl = gamma0x.low; 3682 var gamma0h = (gamma0xh >>> 1 | gamma0xl << 31) ^ (gamma0xh >>> 8 | gamma0xl << 24) ^ gamma0xh >>> 7; 3683 var gamma0l = (gamma0xl >>> 1 | gamma0xh << 31) ^ (gamma0xl >>> 8 | gamma0xh << 24) ^ (gamma0xl >>> 7 | gamma0xh << 25); 3684 var gamma1x = W[i - 2]; 3685 var gamma1xh = gamma1x.high; 3686 var gamma1xl = gamma1x.low; 3687 var gamma1h = (gamma1xh >>> 19 | gamma1xl << 13) ^ (gamma1xh << 3 | gamma1xl >>> 29) ^ gamma1xh >>> 6; 3688 var gamma1l = (gamma1xl >>> 19 | gamma1xh << 13) ^ (gamma1xl << 3 | gamma1xh >>> 29) ^ (gamma1xl >>> 6 | gamma1xh << 26); 3689 var Wi7 = W[i - 7]; 3690 var Wi7h = Wi7.high; 3691 var Wi7l = Wi7.low; 3692 var Wi16 = W[i - 16]; 3693 var Wi16h = Wi16.high; 3694 var Wi16l = Wi16.low; 3695 Wil = gamma0l + Wi7l; 3696 Wih = gamma0h + Wi7h + (Wil >>> 0 < gamma0l >>> 0 ? 1 : 0); 3697 Wil = Wil + gamma1l; 3698 Wih = Wih + gamma1h + (Wil >>> 0 < gamma1l >>> 0 ? 1 : 0); 3699 Wil = Wil + Wi16l; 3700 Wih = Wih + Wi16h + (Wil >>> 0 < Wi16l >>> 0 ? 1 : 0); 3701 Wi.high = Wih; 3702 Wi.low = Wil; 3703 } 3704 var chh = eh & fh ^ ~eh & gh; 3705 var chl = el & fl ^ ~el & gl; 3706 var majh = ah & bh ^ ah & ch ^ bh & ch; 3707 var majl = al & bl ^ al & cl ^ bl & cl; 3708 var sigma0h = (ah >>> 28 | al << 4) ^ (ah << 30 | al >>> 2) ^ (ah << 25 | al >>> 7); 3709 var sigma0l = (al >>> 28 | ah << 4) ^ (al << 30 | ah >>> 2) ^ (al << 25 | ah >>> 7); 3710 var sigma1h = (eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9); 3711 var sigma1l = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9); 3712 var Ki = K[i]; 3713 var Kih = Ki.high; 3714 var Kil = Ki.low; 3715 var t1l = hl + sigma1l; 3716 var t1h = hh + sigma1h + (t1l >>> 0 < hl >>> 0 ? 1 : 0); 3717 var t1l = t1l + chl; 3718 var t1h = t1h + chh + (t1l >>> 0 < chl >>> 0 ? 1 : 0); 3719 var t1l = t1l + Kil; 3720 var t1h = t1h + Kih + (t1l >>> 0 < Kil >>> 0 ? 1 : 0); 3721 var t1l = t1l + Wil; 3722 var t1h = t1h + Wih + (t1l >>> 0 < Wil >>> 0 ? 1 : 0); 3723 var t2l = sigma0l + majl; 3724 var t2h = sigma0h + majh + (t2l >>> 0 < sigma0l >>> 0 ? 1 : 0); 3725 hh = gh; 3726 hl = gl; 3727 gh = fh; 3728 gl = fl; 3729 fh = eh; 3730 fl = el; 3731 el = dl + t1l | 0; 3732 eh = dh + t1h + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; 3733 dh = ch; 3734 dl = cl; 3735 ch = bh; 3736 cl = bl; 3737 bh = ah; 3738 bl = al; 3739 al = t1l + t2l | 0; 3740 ah = t1h + t2h + (al >>> 0 < t1l >>> 0 ? 1 : 0) | 0; 3741 } 3742 H0l = H0.low = H0l + al; 3743 H0.high = H0h + ah + (H0l >>> 0 < al >>> 0 ? 1 : 0); 3744 H1l = H1.low = H1l + bl; 3745 H1.high = H1h + bh + (H1l >>> 0 < bl >>> 0 ? 1 : 0); 3746 H2l = H2.low = H2l + cl; 3747 H2.high = H2h + ch + (H2l >>> 0 < cl >>> 0 ? 1 : 0); 3748 H3l = H3.low = H3l + dl; 3749 H3.high = H3h + dh + (H3l >>> 0 < dl >>> 0 ? 1 : 0); 3750 H4l = H4.low = H4l + el; 3751 H4.high = H4h + eh + (H4l >>> 0 < el >>> 0 ? 1 : 0); 3752 H5l = H5.low = H5l + fl; 3753 H5.high = H5h + fh + (H5l >>> 0 < fl >>> 0 ? 1 : 0); 3754 H6l = H6.low = H6l + gl; 3755 H6.high = H6h + gh + (H6l >>> 0 < gl >>> 0 ? 1 : 0); 3756 H7l = H7.low = H7l + hl; 3757 H7.high = H7h + hh + (H7l >>> 0 < hl >>> 0 ? 1 : 0); 3758 }, 3759 _doFinalize: function() { 3760 var data = this._data; 3761 var dataWords = data.words; 3762 var nBitsTotal = this._nDataBytes * 8; 3763 var nBitsLeft = data.sigBytes * 8; 3764 dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32; 3765 dataWords[(nBitsLeft + 128 >>> 10 << 5) + 30] = Math.floor(nBitsTotal / 4294967296); 3766 dataWords[(nBitsLeft + 128 >>> 10 << 5) + 31] = nBitsTotal; 3767 data.sigBytes = dataWords.length * 4; 3768 this._process(); 3769 var hash = this._hash.toX32(); 3770 return hash; 3771 }, 3772 clone: function() { 3773 var clone = Hasher.clone.call(this); 3774 clone._hash = this._hash.clone(); 3775 return clone; 3776 }, 3777 blockSize: 1024 / 32 3778 }); 3779 C.SHA512 = Hasher._createHelper(SHA512); 3780 C.HmacSHA512 = Hasher._createHmacHelper(SHA512); 3781 })(); 3782 return CryptoJS.SHA512; 3783 }); 3784 } 3785 }); 3786 3787
vendor: 1,790 bytes, lines 3787-3833
3787// ../../../node_modules/crypto-js/sha384.js 3788 var require_sha384 = __commonJS({ 3789 "../../../node_modules/crypto-js/sha384.js"(exports, module) { 3790 (function(root, factory, undef) { 3791 if (typeof exports === "object") { 3792 module.exports = exports = factory(require_core(), require_x64_core(), require_sha512()); 3793 } else if (typeof define === "function" && define.amd) { 3794 define(["./core", "./x64-core", "./sha512"], factory); 3795 } else { 3796 factory(root.CryptoJS); 3797 } 3798 })(exports, function(CryptoJS) { 3799 (function() { 3800 var C = CryptoJS; 3801 var C_x64 = C.x64; 3802 var X64Word = C_x64.Word; 3803 var X64WordArray = C_x64.WordArray; 3804 var C_algo = C.algo; 3805 var SHA512 = C_algo.SHA512; 3806 var SHA384 = C_algo.SHA384 = SHA512.extend({ 3807 _doReset: function() { 3808 this._hash = new X64WordArray.init([ 3809 new X64Word.init(3418070365, 3238371032), 3810 new X64Word.init(1654270250, 914150663), 3811 new X64Word.init(2438529370, 812702999), 3812 new X64Word.init(355462360, 4144912697), 3813 new X64Word.init(1731405415, 4290775857), 3814 new X64Word.init(2394180231, 1750603025), 3815 new X64Word.init(3675008525, 1694076839), 3816 new X64Word.init(1203062813, 3204075428) 3817 ]); 3818 }, 3819 _doFinalize: function() { 3820 var hash = SHA512._doFinalize.call(this); 3821 hash.sigBytes -= 16; 3822 return hash; 3823 } 3824 }); 3825 C.SHA384 = SHA512._createHelper(SHA384); 3826 C.HmacSHA384 = SHA512._createHmacHelper(SHA384); 3827 })(); 3828 return CryptoJS.SHA384; 3829 }); 3830 } 3831 }); 3832 3833
vendor: 8,255 bytes, lines 3833-4035
3833// ../../../node_modules/crypto-js/sha3.js 3834 var require_sha3 = __commonJS({ 3835 "../../../node_modules/crypto-js/sha3.js"(exports, module) { 3836 (function(root, factory, undef) { 3837 if (typeof exports === "object") { 3838 module.exports = exports = factory(require_core(), require_x64_core()); 3839 } else if (typeof define === "function" && define.amd) { 3840 define(["./core", "./x64-core"], factory); 3841 } else { 3842 factory(root.CryptoJS); 3843 } 3844 })(exports, function(CryptoJS) { 3845 (function(Math2) { 3846 var C = CryptoJS; 3847 var C_lib = C.lib; 3848 var WordArray = C_lib.WordArray; 3849 var Hasher = C_lib.Hasher; 3850 var C_x64 = C.x64; 3851 var X64Word = C_x64.Word; 3852 var C_algo = C.algo; 3853 var RHO_OFFSETS = []; 3854 var PI_INDEXES = []; 3855 var ROUND_CONSTANTS = []; 3856 (function() { 3857 var x = 1, y = 0; 3858 for (var t = 0; t < 24; t++) { 3859 RHO_OFFSETS[x + 5 * y] = (t + 1) * (t + 2) / 2 % 64; 3860 var newX = y % 5; 3861 var newY = (2 * x + 3 * y) % 5; 3862 x = newX; 3863 y = newY; 3864 } 3865 for (var x = 0; x < 5; x++) { 3866 for (var y = 0; y < 5; y++) { 3867 PI_INDEXES[x + 5 * y] = y + (2 * x + 3 * y) % 5 * 5; 3868 } 3869 } 3870 var LFSR = 1; 3871 for (var i = 0; i < 24; i++) { 3872 var roundConstantMsw = 0; 3873 var roundConstantLsw = 0; 3874 for (var j = 0; j < 7; j++) { 3875 if (LFSR & 1) { 3876 var bitPosition = (1 << j) - 1; 3877 if (bitPosition < 32) { 3878 roundConstantLsw ^= 1 << bitPosition; 3879 } else { 3880 roundConstantMsw ^= 1 << bitPosition - 32; 3881 } 3882 } 3883 if (LFSR & 128) { 3884 LFSR = LFSR << 1 ^ 113; 3885 } else { 3886 LFSR <<= 1; 3887 } 3888 } 3889 ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw); 3890 } 3891 })(); 3892 var T = []; 3893 (function() { 3894 for (var i = 0; i < 25; i++) { 3895 T[i] = X64Word.create(); 3896 } 3897 })(); 3898 var SHA3 = C_algo.SHA3 = Hasher.extend({ 3899 /** 3900 * Configuration options. 3901 * 3902 * @property {number} outputLength 3903 * The desired number of bits in the output hash. 3904 * Only values permitted are: 224, 256, 384, 512. 3905 * Default: 512 3906 */ 3907 cfg: Hasher.cfg.extend({ 3908 outputLength: 512 3909 }), 3910 _doReset: function() { 3911 var state = this._state = []; 3912 for (var i = 0; i < 25; i++) { 3913 state[i] = new X64Word.init(); 3914 } 3915 this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; 3916 }, 3917 _doProcessBlock: function(M, offset) { 3918 var state = this._state; 3919 var nBlockSizeLanes = this.blockSize / 2; 3920 for (var i = 0; i < nBlockSizeLanes; i++) { 3921 var M2i = M[offset + 2 * i]; 3922 var M2i1 = M[offset + 2 * i + 1]; 3923 M2i = (M2i << 8 | M2i >>> 24) & 16711935 | (M2i << 24 | M2i >>> 8) & 4278255360; 3924 M2i1 = (M2i1 << 8 | M2i1 >>> 24) & 16711935 | (M2i1 << 24 | M2i1 >>> 8) & 4278255360; 3925 var lane = state[i]; 3926 lane.high ^= M2i1; 3927 lane.low ^= M2i; 3928 } 3929 for (var round = 0; round < 24; round++) { 3930 for (var x = 0; x < 5; x++) { 3931 var tMsw = 0, tLsw = 0; 3932 for (var y = 0; y < 5; y++) { 3933 var lane = state[x + 5 * y]; 3934 tMsw ^= lane.high; 3935 tLsw ^= lane.low; 3936 } 3937 var Tx = T[x]; 3938 Tx.high = tMsw; 3939 Tx.low = tLsw; 3940 } 3941 for (var x = 0; x < 5; x++) { 3942 var Tx4 = T[(x + 4) % 5]; 3943 var Tx1 = T[(x + 1) % 5]; 3944 var Tx1Msw = Tx1.high; 3945 var Tx1Lsw = Tx1.low; 3946 var tMsw = Tx4.high ^ (Tx1Msw << 1 | Tx1Lsw >>> 31); 3947 var tLsw = Tx4.low ^ (Tx1Lsw << 1 | Tx1Msw >>> 31); 3948 for (var y = 0; y < 5; y++) { 3949 var lane = state[x + 5 * y]; 3950 lane.high ^= tMsw; 3951 lane.low ^= tLsw; 3952 } 3953 } 3954 for (var laneIndex = 1; laneIndex < 25; laneIndex++) { 3955 var tMsw; 3956 var tLsw; 3957 var lane = state[laneIndex]; 3958 var laneMsw = lane.high; 3959 var laneLsw = lane.low; 3960 var rhoOffset = RHO_OFFSETS[laneIndex]; 3961 if (rhoOffset < 32) { 3962 tMsw = laneMsw << rhoOffset | laneLsw >>> 32 - rhoOffset; 3963 tLsw = laneLsw << rhoOffset | laneMsw >>> 32 - rhoOffset; 3964 } else { 3965 tMsw = laneLsw << rhoOffset - 32 | laneMsw >>> 64 - rhoOffset; 3966 tLsw = laneMsw << rhoOffset - 32 | laneLsw >>> 64 - rhoOffset; 3967 } 3968 var TPiLane = T[PI_INDEXES[laneIndex]]; 3969 TPiLane.high = tMsw; 3970 TPiLane.low = tLsw; 3971 } 3972 var T0 = T[0]; 3973 var state0 = state[0]; 3974 T0.high = state0.high; 3975 T0.low = state0.low; 3976 for (var x = 0; x < 5; x++) { 3977 for (var y = 0; y < 5; y++) { 3978 var laneIndex = x + 5 * y; 3979 var lane = state[laneIndex]; 3980 var TLane = T[laneIndex]; 3981 var Tx1Lane = T[(x + 1) % 5 + 5 * y]; 3982 var Tx2Lane = T[(x + 2) % 5 + 5 * y]; 3983 lane.high = TLane.high ^ ~Tx1Lane.high & Tx2Lane.high; 3984 lane.low = TLane.low ^ ~Tx1Lane.low & Tx2Lane.low; 3985 } 3986 } 3987 var lane = state[0]; 3988 var roundConstant = ROUND_CONSTANTS[round]; 3989 lane.high ^= roundConstant.high; 3990 lane.low ^= roundConstant.low; 3991 } 3992 }, 3993 _doFinalize: function() { 3994 var data = this._data; 3995 var dataWords = data.words; 3996 var nBitsTotal = this._nDataBytes * 8; 3997 var nBitsLeft = data.sigBytes * 8; 3998 var blockSizeBits = this.blockSize * 32; 3999 dataWords[nBitsLeft >>> 5] |= 1 << 24 - nBitsLeft % 32; 4000 dataWords[(Math2.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits >>> 5) - 1] |= 128; 4001 data.sigBytes = dataWords.length * 4; 4002 this._process(); 4003 var state = this._state; 4004 var outputLengthBytes = this.cfg.outputLength / 8; 4005 var outputLengthLanes = outputLengthBytes / 8; 4006 var hashWords = []; 4007 for (var i = 0; i < outputLengthLanes; i++) { 4008 var lane = state[i]; 4009 var laneMsw = lane.high; 4010 var laneLsw = lane.low; 4011 laneMsw = (laneMsw << 8 | laneMsw >>> 24) & 16711935 | (laneMsw << 24 | laneMsw >>> 8) & 4278255360; 4012 laneLsw = (laneLsw << 8 | laneLsw >>> 24) & 16711935 | (laneLsw << 24 | laneLsw >>> 8) & 4278255360; 4013 hashWords.push(laneLsw); 4014 hashWords.push(laneMsw); 4015 } 4016 return new WordArray.init(hashWords, outputLengthBytes); 4017 }, 4018 clone: function() { 4019 var clone = Hasher.clone.call(this); 4020 var state = clone._state = this._state.slice(0); 4021 for (var i = 0; i < 25; i++) { 4022 state[i] = state[i].clone(); 4023 } 4024 return clone; 4025 } 4026 }); 4027 C.SHA3 = Hasher._createHelper(SHA3); 4028 C.HmacSHA3 = Hasher._createHmacHelper(SHA3); 4029 })(Math); 4030 return CryptoJS.SHA3; 4031 }); 4032 } 4033 }); 4034 4035
vendor: 10,473 bytes, lines 4035-4506
4035// ../../../node_modules/crypto-js/ripemd160.js 4036 var require_ripemd160 = __commonJS({ 4037 "../../../node_modules/crypto-js/ripemd160.js"(exports, module) { 4038 (function(root, factory) { 4039 if (typeof exports === "object") { 4040 module.exports = exports = factory(require_core()); 4041 } else if (typeof define === "function" && define.amd) { 4042 define(["./core"], factory); 4043 } else { 4044 factory(root.CryptoJS); 4045 } 4046 })(exports, function(CryptoJS) { 4047 (function(Math2) { 4048 var C = CryptoJS; 4049 var C_lib = C.lib; 4050 var WordArray = C_lib.WordArray; 4051 var Hasher = C_lib.Hasher; 4052 var C_algo = C.algo; 4053 var _zl = WordArray.create([ 4054 0, 4055 1, 4056 2, 4057 3, 4058 4, 4059 5, 4060 6, 4061 7, 4062 8, 4063 9, 4064 10, 4065 11, 4066 12, 4067 13, 4068 14, 4069 15, 4070 7, 4071 4, 4072 13, 4073 1, 4074 10, 4075 6, 4076 15, 4077 3, 4078 12, 4079 0, 4080 9, 4081 5, 4082 2, 4083 14, 4084 11, 4085 8, 4086 3, 4087 10, 4088 14, 4089 4, 4090 9, 4091 15, 4092 8, 4093 1, 4094 2, 4095 7, 4096 0, 4097 6, 4098 13, 4099 11, 4100 5, 4101 12, 4102 1, 4103 9, 4104 11, 4105 10, 4106 0, 4107 8, 4108 12, 4109 4, 4110 13, 4111 3, 4112 7, 4113 15, 4114 14, 4115 5, 4116 6, 4117 2, 4118 4, 4119 0, 4120 5, 4121 9, 4122 7, 4123 12, 4124 2, 4125 10, 4126 14, 4127 1, 4128 3, 4129 8, 4130 11, 4131 6, 4132 15, 4133 13 4134 ]); 4135 var _zr = WordArray.create([ 4136 5, 4137 14, 4138 7, 4139 0, 4140 9, 4141 2, 4142 11, 4143 4, 4144 13, 4145 6, 4146 15, 4147 8, 4148 1, 4149 10, 4150 3, 4151 12, 4152 6, 4153 11, 4154 3, 4155 7, 4156 0, 4157 13, 4158 5, 4159 10, 4160 14, 4161 15, 4162 8, 4163 12, 4164 4, 4165 9, 4166 1, 4167 2, 4168 15, 4169 5, 4170 1, 4171 3, 4172 7, 4173 14, 4174 6, 4175 9, 4176 11, 4177 8, 4178 12, 4179 2, 4180 10, 4181 0, 4182 4, 4183 13, 4184 8, 4185 6, 4186 4, 4187 1, 4188 3, 4189 11, 4190 15, 4191 0, 4192 5, 4193 12, 4194 2, 4195 13, 4196 9, 4197 7, 4198 10, 4199 14, 4200 12, 4201 15, 4202 10, 4203 4, 4204 1, 4205 5, 4206 8, 4207 7, 4208 6, 4209 2, 4210 13, 4211 14, 4212 0, 4213 3, 4214 9, 4215 11 4216 ]); 4217 var _sl = WordArray.create([ 4218 11, 4219 14, 4220 15, 4221 12, 4222 5, 4223 8, 4224 7, 4225 9, 4226 11, 4227 13, 4228 14, 4229 15, 4230 6, 4231 7, 4232 9, 4233 8, 4234 7, 4235 6, 4236 8, 4237 13, 4238 11, 4239 9, 4240 7, 4241 15, 4242 7, 4243 12, 4244 15, 4245 9, 4246 11, 4247 7, 4248 13, 4249 12, 4250 11, 4251 13, 4252 6, 4253 7, 4254 14, 4255 9, 4256 13, 4257 15, 4258 14, 4259 8, 4260 13, 4261 6, 4262 5, 4263 12, 4264 7, 4265 5, 4266 11, 4267 12, 4268 14, 4269 15, 4270 14, 4271 15, 4272 9, 4273 8, 4274 9, 4275 14, 4276 5, 4277 6, 4278 8, 4279 6, 4280 5, 4281 12, 4282 9, 4283 15, 4284 5, 4285 11, 4286 6, 4287 8, 4288 13, 4289 12, 4290 5, 4291 12, 4292 13, 4293 14, 4294 11, 4295 8, 4296 5, 4297 6 4298 ]); 4299 var _sr = WordArray.create([ 4300 8, 4301 9, 4302 9, 4303 11, 4304 13, 4305 15, 4306 15, 4307 5, 4308 7, 4309 7, 4310 8, 4311 11, 4312 14, 4313 14, 4314 12, 4315 6, 4316 9, 4317 13, 4318 15, 4319 7, 4320 12, 4321 8, 4322 9, 4323 11, 4324 7, 4325 7, 4326 12, 4327 7, 4328 6, 4329 15, 4330 13, 4331 11, 4332 9, 4333 7, 4334 15, 4335 11, 4336 8, 4337 6, 4338 6, 4339 14, 4340 12, 4341 13, 4342 5, 4343 14, 4344 13, 4345 13, 4346 7, 4347 5, 4348 15, 4349 5, 4350 8, 4351 11, 4352 14, 4353 14, 4354 6, 4355 14, 4356 6, 4357 9, 4358 12, 4359 9, 4360 12, 4361 5, 4362 15, 4363 8, 4364 8, 4365 5, 4366 12, 4367 9, 4368 12, 4369 5, 4370 14, 4371 6, 4372 8, 4373 13, 4374 6, 4375 5, 4376 15, 4377 13, 4378 11, 4379 11 4380 ]); 4381 var _hl = WordArray.create([0, 1518500249, 1859775393, 2400959708, 2840853838]); 4382 var _hr = WordArray.create([1352829926, 1548603684, 1836072691, 2053994217, 0]); 4383 var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({ 4384 _doReset: function() { 4385 this._hash = WordArray.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); 4386 }, 4387 _doProcessBlock: function(M, offset) { 4388 for (var i = 0; i < 16; i++) { 4389 var offset_i = offset + i; 4390 var M_offset_i = M[offset_i]; 4391 M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 16711935 | (M_offset_i << 24 | M_offset_i >>> 8) & 4278255360; 4392 } 4393 var H = this._hash.words; 4394 var hl = _hl.words; 4395 var hr = _hr.words; 4396 var zl = _zl.words; 4397 var zr = _zr.words; 4398 var sl = _sl.words; 4399 var sr = _sr.words; 4400 var al, bl, cl, dl, el; 4401 var ar, br, cr, dr, er; 4402 ar = al = H[0]; 4403 br = bl = H[1]; 4404 cr = cl = H[2]; 4405 dr = dl = H[3]; 4406 er = el = H[4]; 4407 var t; 4408 for (var i = 0; i < 80; i += 1) { 4409 t = al + M[offset + zl[i]] | 0; 4410 if (i < 16) { 4411 t += f1(bl, cl, dl) + hl[0]; 4412 } else if (i < 32) { 4413 t += f2(bl, cl, dl) + hl[1]; 4414 } else if (i < 48) { 4415 t += f3(bl, cl, dl) + hl[2]; 4416 } else if (i < 64) { 4417 t += f4(bl, cl, dl) + hl[3]; 4418 } else { 4419 t += f5(bl, cl, dl) + hl[4]; 4420 } 4421 t = t | 0; 4422 t = rotl(t, sl[i]); 4423 t = t + el | 0; 4424 al = el; 4425 el = dl; 4426 dl = rotl(cl, 10); 4427 cl = bl; 4428 bl = t; 4429 t = ar + M[offset + zr[i]] | 0; 4430 if (i < 16) { 4431 t += f5(br, cr, dr) + hr[0]; 4432 } else if (i < 32) { 4433 t += f4(br, cr, dr) + hr[1]; 4434 } else if (i < 48) { 4435 t += f3(br, cr, dr) + hr[2]; 4436 } else if (i < 64) { 4437 t += f2(br, cr, dr) + hr[3]; 4438 } else { 4439 t += f1(br, cr, dr) + hr[4]; 4440 } 4441 t = t | 0; 4442 t = rotl(t, sr[i]); 4443 t = t + er | 0; 4444 ar = er; 4445 er = dr; 4446 dr = rotl(cr, 10); 4447 cr = br; 4448 br = t; 4449 } 4450 t = H[1] + cl + dr | 0; 4451 H[1] = H[2] + dl + er | 0; 4452 H[2] = H[3] + el + ar | 0; 4453 H[3] = H[4] + al + br | 0; 4454 H[4] = H[0] + bl + cr | 0; 4455 H[0] = t; 4456 }, 4457 _doFinalize: function() { 4458 var data = this._data; 4459 var dataWords = data.words; 4460 var nBitsTotal = this._nDataBytes * 8; 4461 var nBitsLeft = data.sigBytes * 8; 4462 dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32; 4463 dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotal << 8 | nBitsTotal >>> 24) & 16711935 | (nBitsTotal << 24 | nBitsTotal >>> 8) & 4278255360; 4464 data.sigBytes = (dataWords.length + 1) * 4; 4465 this._process(); 4466 var hash = this._hash; 4467 var H = hash.words; 4468 for (var i = 0; i < 5; i++) { 4469 var H_i = H[i]; 4470 H[i] = (H_i << 8 | H_i >>> 24) & 16711935 | (H_i << 24 | H_i >>> 8) & 4278255360; 4471 } 4472 return hash; 4473 }, 4474 clone: function() { 4475 var clone = Hasher.clone.call(this); 4476 clone._hash = this._hash.clone(); 4477 return clone; 4478 } 4479 }); 4480 function f1(x, y, z) { 4481 return x ^ y ^ z; 4482 } 4483 function f2(x, y, z) { 4484 return x & y | ~x & z; 4485 } 4486 function f3(x, y, z) { 4487 return (x | ~y) ^ z; 4488 } 4489 function f4(x, y, z) { 4490 return x & z | y & ~z; 4491 } 4492 function f5(x, y, z) { 4493 return x ^ (y | ~z); 4494 } 4495 function rotl(x, n) { 4496 return x << n | x >>> 32 - n; 4497 } 4498 C.RIPEMD160 = Hasher._createHelper(RIPEMD160); 4499 C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160); 4500 })(Math); 4501 return CryptoJS.RIPEMD160; 4502 }); 4503 } 4504 }); 4505 4506
vendor: 3,816 bytes, lines 4506-4613
4506// ../../../node_modules/crypto-js/hmac.js 4507 var require_hmac = __commonJS({ 4508 "../../../node_modules/crypto-js/hmac.js"(exports, module) { 4509 (function(root, factory) { 4510 if (typeof exports === "object") { 4511 module.exports = exports = factory(require_core()); 4512 } else if (typeof define === "function" && define.amd) { 4513 define(["./core"], factory); 4514 } else { 4515 factory(root.CryptoJS); 4516 } 4517 })(exports, function(CryptoJS) { 4518 (function() { 4519 var C = CryptoJS; 4520 var C_lib = C.lib; 4521 var Base = C_lib.Base; 4522 var C_enc = C.enc; 4523 var Utf8 = C_enc.Utf8; 4524 var C_algo = C.algo; 4525 var HMAC = C_algo.HMAC = Base.extend({ 4526 /** 4527 * Initializes a newly created HMAC. 4528 * 4529 * @param {Hasher} hasher The hash algorithm to use. 4530 * @param {WordArray|string} key The secret key. 4531 * 4532 * @example 4533 * 4534 * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); 4535 */ 4536 init: function(hasher, key) { 4537 hasher = this._hasher = new hasher.init(); 4538 if (typeof key == "string") { 4539 key = Utf8.parse(key); 4540 } 4541 var hasherBlockSize = hasher.blockSize; 4542 var hasherBlockSizeBytes = hasherBlockSize * 4; 4543 if (key.sigBytes > hasherBlockSizeBytes) { 4544 key = hasher.finalize(key); 4545 } 4546 key.clamp(); 4547 var oKey = this._oKey = key.clone(); 4548 var iKey = this._iKey = key.clone(); 4549 var oKeyWords = oKey.words; 4550 var iKeyWords = iKey.words; 4551 for (var i = 0; i < hasherBlockSize; i++) { 4552 oKeyWords[i] ^= 1549556828; 4553 iKeyWords[i] ^= 909522486; 4554 } 4555 oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; 4556 this.reset(); 4557 }, 4558 /** 4559 * Resets this HMAC to its initial state. 4560 * 4561 * @example 4562 * 4563 * hmacHasher.reset(); 4564 */ 4565 reset: function() { 4566 var hasher = this._hasher; 4567 hasher.reset(); 4568 hasher.update(this._iKey); 4569 }, 4570 /** 4571 * Updates this HMAC with a message. 4572 * 4573 * @param {WordArray|string} messageUpdate The message to append. 4574 * 4575 * @return {HMAC} This HMAC instance. 4576 * 4577 * @example 4578 * 4579 * hmacHasher.update('message'); 4580 * hmacHasher.update(wordArray); 4581 */ 4582 update: function(messageUpdate) { 4583 this._hasher.update(messageUpdate); 4584 return this; 4585 }, 4586 /** 4587 * Finalizes the HMAC computation. 4588 * Note that the finalize operation is effectively a destructive, read-once operation. 4589 * 4590 * @param {WordArray|string} messageUpdate (Optional) A final message update. 4591 * 4592 * @return {WordArray} The HMAC. 4593 * 4594 * @example 4595 * 4596 * var hmac = hmacHasher.finalize(); 4597 * var hmac = hmacHasher.finalize('message'); 4598 * var hmac = hmacHasher.finalize(wordArray); 4599 */ 4600 finalize: function(messageUpdate) { 4601 var hasher = this._hasher; 4602 var innerHash = hasher.finalize(messageUpdate); 4603 hasher.reset(); 4604 var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); 4605 return hmac; 4606 } 4607 }); 4608 })(); 4609 }); 4610 } 4611 }); 4612 4613
vendor: 3,868 bytes, lines 4613-4711
4613// ../../../node_modules/crypto-js/pbkdf2.js 4614 var require_pbkdf2 = __commonJS({ 4615 "../../../node_modules/crypto-js/pbkdf2.js"(exports, module) { 4616 (function(root, factory, undef) { 4617 if (typeof exports === "object") { 4618 module.exports = exports = factory(require_core(), require_sha1(), require_hmac()); 4619 } else if (typeof define === "function" && define.amd) { 4620 define(["./core", "./sha1", "./hmac"], factory); 4621 } else { 4622 factory(root.CryptoJS); 4623 } 4624 })(exports, function(CryptoJS) { 4625 (function() { 4626 var C = CryptoJS; 4627 var C_lib = C.lib; 4628 var Base = C_lib.Base; 4629 var WordArray = C_lib.WordArray; 4630 var C_algo = C.algo; 4631 var SHA1 = C_algo.SHA1; 4632 var HMAC = C_algo.HMAC; 4633 var PBKDF2 = C_algo.PBKDF2 = Base.extend({ 4634 /** 4635 * Configuration options. 4636 * 4637 * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) 4638 * @property {Hasher} hasher The hasher to use. Default: SHA1 4639 * @property {number} iterations The number of iterations to perform. Default: 1 4640 */ 4641 cfg: Base.extend({ 4642 keySize: 128 / 32, 4643 hasher: SHA1, 4644 iterations: 1 4645 }), 4646 /** 4647 * Initializes a newly created key derivation function. 4648 * 4649 * @param {Object} cfg (Optional) The configuration options to use for the derivation. 4650 * 4651 * @example 4652 * 4653 * var kdf = CryptoJS.algo.PBKDF2.create(); 4654 * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 }); 4655 * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 }); 4656 */ 4657 init: function(cfg) { 4658 this.cfg = this.cfg.extend(cfg); 4659 }, 4660 /** 4661 * Computes the Password-Based Key Derivation Function 2. 4662 * 4663 * @param {WordArray|string} password The password. 4664 * @param {WordArray|string} salt A salt. 4665 * 4666 * @return {WordArray} The derived key. 4667 * 4668 * @example 4669 * 4670 * var key = kdf.compute(password, salt); 4671 */ 4672 compute: function(password, salt) { 4673 var cfg = this.cfg; 4674 var hmac = HMAC.create(cfg.hasher, password); 4675 var derivedKey = WordArray.create(); 4676 var blockIndex = WordArray.create([1]); 4677 var derivedKeyWords = derivedKey.words; 4678 var blockIndexWords = blockIndex.words; 4679 var keySize = cfg.keySize; 4680 var iterations = cfg.iterations; 4681 while (derivedKeyWords.length < keySize) { 4682 var block = hmac.update(salt).finalize(blockIndex); 4683 hmac.reset(); 4684 var blockWords = block.words; 4685 var blockWordsLength = blockWords.length; 4686 var intermediate = block; 4687 for (var i = 1; i < iterations; i++) { 4688 intermediate = hmac.finalize(intermediate); 4689 hmac.reset(); 4690 var intermediateWords = intermediate.words; 4691 for (var j = 0; j < blockWordsLength; j++) { 4692 blockWords[j] ^= intermediateWords[j]; 4693 } 4694 } 4695 derivedKey.concat(block); 4696 blockIndexWords[0]++; 4697 } 4698 derivedKey.sigBytes = keySize * 4; 4699 return derivedKey; 4700 } 4701 }); 4702 C.PBKDF2 = function(password, salt, cfg) { 4703 return PBKDF2.create(cfg).compute(password, salt); 4704 }; 4705 })(); 4706 return CryptoJS.PBKDF2; 4707 }); 4708 } 4709 }); 4710 4711
vendor: 3,406 bytes, lines 4711-4802
4711// ../../../node_modules/crypto-js/evpkdf.js 4712 var require_evpkdf = __commonJS({ 4713 "../../../node_modules/crypto-js/evpkdf.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 MD5 = C_algo.MD5; 4730 var EvpKDF = C_algo.EvpKDF = Base.extend({ 4731 /** 4732 * Configuration options. 4733 * 4734 * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) 4735 * @property {Hasher} hasher The hash algorithm to use. Default: MD5 4736 * @property {number} iterations The number of iterations to perform. Default: 1 4737 */ 4738 cfg: Base.extend({ 4739 keySize: 128 / 32, 4740 hasher: MD5, 4741 iterations: 1 4742 }), 4743 /** 4744 * Initializes a newly created key derivation function. 4745 * 4746 * @param {Object} cfg (Optional) The configuration options to use for the derivation. 4747 * 4748 * @example 4749 * 4750 * var kdf = CryptoJS.algo.EvpKDF.create(); 4751 * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 }); 4752 * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 }); 4753 */ 4754 init: function(cfg) { 4755 this.cfg = this.cfg.extend(cfg); 4756 }, 4757 /** 4758 * Derives a key from a password. 4759 * 4760 * @param {WordArray|string} password The password. 4761 * @param {WordArray|string} salt A salt. 4762 * 4763 * @return {WordArray} The derived key. 4764 * 4765 * @example 4766 * 4767 * var key = kdf.compute(password, salt); 4768 */ 4769 compute: function(password, salt) { 4770 var block; 4771 var cfg = this.cfg; 4772 var hasher = cfg.hasher.create(); 4773 var derivedKey = WordArray.create(); 4774 var derivedKeyWords = derivedKey.words; 4775 var keySize = cfg.keySize; 4776 var iterations = cfg.iterations; 4777 while (derivedKeyWords.length < keySize) { 4778 if (block) { 4779 hasher.update(block); 4780 } 4781 block = hasher.update(password).finalize(salt); 4782 hasher.reset(); 4783 for (var i = 1; i < iterations; i++) { 4784 block = hasher.finalize(block); 4785 hasher.reset(); 4786 } 4787 derivedKey.concat(block); 4788 } 4789 derivedKey.sigBytes = keySize * 4; 4790 return derivedKey; 4791 } 4792 }); 4793 C.EvpKDF = function(password, salt, cfg) { 4794 return EvpKDF.create(cfg).compute(password, salt); 4795 }; 4796 })(); 4797 return CryptoJS.EvpKDF; 4798 }); 4799 } 4800 }); 4801 4802
vendor: 26,100 bytes, lines 4802-5442
4802// ../../../node_modules/crypto-js/cipher-core.js 4803 var require_cipher_core = __commonJS({ 4804 "../../../node_modules/crypto-js/cipher-core.js"(exports, module) { 4805 (function(root, factory, undef) { 4806 if (typeof exports === "object") { 4807 module.exports = exports = factory(require_core(), require_evpkdf()); 4808 } else if (typeof define === "function" && define.amd) { 4809 define(["./core", "./evpkdf"], factory); 4810 } else { 4811 factory(root.CryptoJS); 4812 } 4813 })(exports, function(CryptoJS) { 4814 CryptoJS.lib.Cipher || function(undefined2) { 4815 var C = CryptoJS; 4816 var C_lib = C.lib; 4817 var Base = C_lib.Base; 4818 var WordArray = C_lib.WordArray; 4819 var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; 4820 var C_enc = C.enc; 4821 var Utf8 = C_enc.Utf8; 4822 var Base64 = C_enc.Base64; 4823 var C_algo = C.algo; 4824 var EvpKDF = C_algo.EvpKDF; 4825 var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ 4826 /** 4827 * Configuration options. 4828 * 4829 * @property {WordArray} iv The IV to use for this operation. 4830 */ 4831 cfg: Base.extend(), 4832 /** 4833 * Creates this cipher in encryption mode. 4834 * 4835 * @param {WordArray} key The key. 4836 * @param {Object} cfg (Optional) The configuration options to use for this operation. 4837 * 4838 * @return {Cipher} A cipher instance. 4839 * 4840 * @static 4841 * 4842 * @example 4843 * 4844 * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray }); 4845 */ 4846 createEncryptor: function(key, cfg) { 4847 return this.create(this._ENC_XFORM_MODE, key, cfg); 4848 }, 4849 /** 4850 * Creates this cipher in decryption mode. 4851 * 4852 * @param {WordArray} key The key. 4853 * @param {Object} cfg (Optional) The configuration options to use for this operation. 4854 * 4855 * @return {Cipher} A cipher instance. 4856 * 4857 * @static 4858 * 4859 * @example 4860 * 4861 * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray }); 4862 */ 4863 createDecryptor: function(key, cfg) { 4864 return this.create(this._DEC_XFORM_MODE, key, cfg); 4865 }, 4866 /** 4867 * Initializes a newly created cipher. 4868 * 4869 * @param {number} xformMode Either the encryption or decryption transormation mode constant. 4870 * @param {WordArray} key The key. 4871 * @param {Object} cfg (Optional) The configuration options to use for this operation. 4872 * 4873 * @example 4874 * 4875 * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray }); 4876 */ 4877 init: function(xformMode, key, cfg) { 4878 this.cfg = this.cfg.extend(cfg); 4879 this._xformMode = xformMode; 4880 this._key = key; 4881 this.reset(); 4882 }, 4883 /** 4884 * Resets this cipher to its initial state. 4885 * 4886 * @example 4887 * 4888 * cipher.reset(); 4889 */ 4890 reset: function() { 4891 BufferedBlockAlgorithm.reset.call(this); 4892 this._doReset(); 4893 }, 4894 /** 4895 * Adds data to be encrypted or decrypted. 4896 * 4897 * @param {WordArray|string} dataUpdate The data to encrypt or decrypt. 4898 * 4899 * @return {WordArray} The data after processing. 4900 * 4901 * @example 4902 * 4903 * var encrypted = cipher.process('data'); 4904 * var encrypted = cipher.process(wordArray); 4905 */ 4906 process: function(dataUpdate) { 4907 this._append(dataUpdate); 4908 return this._process(); 4909 }, 4910 /** 4911 * Finalizes the encryption or decryption process. 4912 * Note that the finalize operation is effectively a destructive, read-once operation. 4913 * 4914 * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt. 4915 * 4916 * @return {WordArray} The data after final processing. 4917 * 4918 * @example 4919 * 4920 * var encrypted = cipher.finalize(); 4921 * var encrypted = cipher.finalize('data'); 4922 * var encrypted = cipher.finalize(wordArray); 4923 */ 4924 finalize: function(dataUpdate) { 4925 if (dataUpdate) { 4926 this._append(dataUpdate); 4927 } 4928 var finalProcessedData = this._doFinalize(); 4929 return finalProcessedData; 4930 }, 4931 keySize: 128 / 32, 4932 ivSize: 128 / 32, 4933 _ENC_XFORM_MODE: 1, 4934 _DEC_XFORM_MODE: 2, 4935 /** 4936 * Creates shortcut functions to a cipher's object interface. 4937 * 4938 * @param {Cipher} cipher The cipher to create a helper for. 4939 * 4940 * @return {Object} An object with encrypt and decrypt shortcut functions. 4941 * 4942 * @static 4943 * 4944 * @example 4945 * 4946 * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES); 4947 */ 4948 _createHelper: /* @__PURE__ */ function() { 4949 function selectCipherStrategy(key) { 4950 if (typeof key == "string") { 4951 return PasswordBasedCipher; 4952 } else { 4953 return SerializableCipher; 4954 } 4955 } 4956 return function(cipher) { 4957 return { 4958 encrypt: function(message, key, cfg) { 4959 return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); 4960 }, 4961 decrypt: function(ciphertext, key, cfg) { 4962 return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); 4963 } 4964 }; 4965 }; 4966 }() 4967 }); 4968 var StreamCipher = C_lib.StreamCipher = Cipher.extend({ 4969 _doFinalize: function() { 4970 var finalProcessedBlocks = this._process(true); 4971 return finalProcessedBlocks; 4972 }, 4973 blockSize: 1 4974 }); 4975 var C_mode = C.mode = {}; 4976 var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ 4977 /** 4978 * Creates this mode for encryption. 4979 * 4980 * @param {Cipher} cipher A block cipher instance. 4981 * @param {Array} iv The IV words. 4982 * 4983 * @static 4984 * 4985 * @example 4986 * 4987 * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words); 4988 */ 4989 createEncryptor: function(cipher, iv) { 4990 return this.Encryptor.create(cipher, iv); 4991 }, 4992 /** 4993 * Creates this mode for decryption. 4994 * 4995 * @param {Cipher} cipher A block cipher instance. 4996 * @param {Array} iv The IV words. 4997 * 4998 * @static 4999 * 5000 * @example 5001 * 5002 * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words); 5003 */ 5004 createDecryptor: function(cipher, iv) { 5005 return this.Decryptor.create(cipher, iv); 5006 }, 5007 /** 5008 * Initializes a newly created mode. 5009 * 5010 * @param {Cipher} cipher A block cipher instance. 5011 * @param {Array} iv The IV words. 5012 * 5013 * @example 5014 * 5015 * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words); 5016 */ 5017 init: function(cipher, iv) { 5018 this._cipher = cipher; 5019 this._iv = iv; 5020 } 5021 }); 5022 var CBC = C_mode.CBC = function() { 5023 var CBC2 = BlockCipherMode.extend(); 5024 CBC2.Encryptor = CBC2.extend({ 5025 /** 5026 * Processes the data block at offset. 5027 * 5028 * @param {Array} words The data words to operate on. 5029 * @param {number} offset The offset where the block starts. 5030 * 5031 * @example 5032 * 5033 * mode.processBlock(data.words, offset); 5034 */ 5035 processBlock: function(words, offset) { 5036 var cipher = this._cipher; 5037 var blockSize = cipher.blockSize; 5038 xorBlock.call(this, words, offset, blockSize); 5039 cipher.encryptBlock(words, offset); 5040 this._prevBlock = words.slice(offset, offset + blockSize); 5041 } 5042 }); 5043 CBC2.Decryptor = CBC2.extend({ 5044 /** 5045 * Processes the data block at offset. 5046 * 5047 * @param {Array} words The data words to operate on. 5048 * @param {number} offset The offset where the block starts. 5049 * 5050 * @example 5051 * 5052 * mode.processBlock(data.words, offset); 5053 */ 5054 processBlock: function(words, offset) { 5055 var cipher = this._cipher; 5056 var blockSize = cipher.blockSize; 5057 var thisBlock = words.slice(offset, offset + blockSize); 5058 cipher.decryptBlock(words, offset); 5059 xorBlock.call(this, words, offset, blockSize); 5060 this._prevBlock = thisBlock; 5061 } 5062 }); 5063 function xorBlock(words, offset, blockSize) { 5064 var block; 5065 var iv = this._iv; 5066 if (iv) { 5067 block = iv; 5068 this._iv = undefined2; 5069 } else { 5070 block = this._prevBlock; 5071 } 5072 for (var i = 0; i < blockSize; i++) { 5073 words[offset + i] ^= block[i]; 5074 } 5075 } 5076 return CBC2; 5077 }(); 5078 var C_pad = C.pad = {}; 5079 var Pkcs7 = C_pad.Pkcs7 = { 5080 /** 5081 * Pads data using the algorithm defined in PKCS #5/7. 5082 * 5083 * @param {WordArray} data The data to pad. 5084 * @param {number} blockSize The multiple that the data should be padded to. 5085 * 5086 * @static 5087 * 5088 * @example 5089 * 5090 * CryptoJS.pad.Pkcs7.pad(wordArray, 4); 5091 */ 5092 pad: function(data, blockSize) { 5093 var blockSizeBytes = blockSize * 4; 5094 var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; 5095 var paddingWord = nPaddingBytes << 24 | nPaddingBytes << 16 | nPaddingBytes << 8 | nPaddingBytes; 5096 var paddingWords = []; 5097 for (var i = 0; i < nPaddingBytes; i += 4) { 5098 paddingWords.push(paddingWord); 5099 } 5100 var padding = WordArray.create(paddingWords, nPaddingBytes); 5101 data.concat(padding); 5102 }, 5103 /** 5104 * Unpads data that had been padded using the algorithm defined in PKCS #5/7. 5105 * 5106 * @param {WordArray} data The data to unpad. 5107 * 5108 * @static 5109 * 5110 * @example 5111 * 5112 * CryptoJS.pad.Pkcs7.unpad(wordArray); 5113 */ 5114 unpad: function(data) { 5115 var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 255; 5116 data.sigBytes -= nPaddingBytes; 5117 } 5118 }; 5119 var BlockCipher = C_lib.BlockCipher = Cipher.extend({ 5120 /** 5121 * Configuration options. 5122 * 5123 * @property {Mode} mode The block mode to use. Default: CBC 5124 * @property {Padding} padding The padding strategy to use. Default: Pkcs7 5125 */ 5126 cfg: Cipher.cfg.extend({ 5127 mode: CBC, 5128 padding: Pkcs7 5129 }), 5130 reset: function() { 5131 var modeCreator; 5132 Cipher.reset.call(this); 5133 var cfg = this.cfg; 5134 var iv = cfg.iv; 5135 var mode = cfg.mode; 5136 if (this._xformMode == this._ENC_XFORM_MODE) { 5137 modeCreator = mode.createEncryptor; 5138 } else { 5139 modeCreator = mode.createDecryptor; 5140 this._minBufferSize = 1; 5141 } 5142 if (this._mode && this._mode.__creator == modeCreator) { 5143 this._mode.init(this, iv && iv.words); 5144 } else { 5145 this._mode = modeCreator.call(mode, this, iv && iv.words); 5146 this._mode.__creator = modeCreator; 5147 } 5148 }, 5149 _doProcessBlock: function(words, offset) { 5150 this._mode.processBlock(words, offset); 5151 }, 5152 _doFinalize: function() { 5153 var finalProcessedBlocks; 5154 var padding = this.cfg.padding; 5155 if (this._xformMode == this._ENC_XFORM_MODE) { 5156 padding.pad(this._data, this.blockSize); 5157 finalProcessedBlocks = this._process(true); 5158 } else { 5159 finalProcessedBlocks = this._process(true); 5160 padding.unpad(finalProcessedBlocks); 5161 } 5162 return finalProcessedBlocks; 5163 }, 5164 blockSize: 128 / 32 5165 }); 5166 var CipherParams = C_lib.CipherParams = Base.extend({ 5167 /** 5168 * Initializes a newly created cipher params object. 5169 * 5170 * @param {Object} cipherParams An object with any of the possible cipher parameters. 5171 * 5172 * @example 5173 * 5174 * var cipherParams = CryptoJS.lib.CipherParams.create({ 5175 * ciphertext: ciphertextWordArray, 5176 * key: keyWordArray, 5177 * iv: ivWordArray, 5178 * salt: saltWordArray, 5179 * algorithm: CryptoJS.algo.AES, 5180 * mode: CryptoJS.mode.CBC, 5181 * padding: CryptoJS.pad.PKCS7, 5182 * blockSize: 4, 5183 * formatter: CryptoJS.format.OpenSSL 5184 * }); 5185 */ 5186 init: function(cipherParams) { 5187 this.mixIn(cipherParams); 5188 }, 5189 /** 5190 * Converts this cipher params object to a string. 5191 * 5192 * @param {Format} formatter (Optional) The formatting strategy to use. 5193 * 5194 * @return {string} The stringified cipher params. 5195 * 5196 * @throws Error If neither the formatter nor the default formatter is set. 5197 * 5198 * @example 5199 * 5200 * var string = cipherParams + ''; 5201 * var string = cipherParams.toString(); 5202 * var string = cipherParams.toString(CryptoJS.format.OpenSSL); 5203 */ 5204 toString: function(formatter) { 5205 return (formatter || this.formatter).stringify(this); 5206 } 5207 }); 5208 var C_format = C.format = {}; 5209 var OpenSSLFormatter = C_format.OpenSSL = { 5210 /** 5211 * Converts a cipher params object to an OpenSSL-compatible string. 5212 * 5213 * @param {CipherParams} cipherParams The cipher params object. 5214 * 5215 * @return {string} The OpenSSL-compatible string. 5216 * 5217 * @static 5218 * 5219 * @example 5220 * 5221 * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams); 5222 */ 5223 stringify: function(cipherParams) { 5224 var wordArray; 5225 var ciphertext = cipherParams.ciphertext; 5226 var salt = cipherParams.salt; 5227 if (salt) { 5228 wordArray = WordArray.create([1398893684, 1701076831]).concat(salt).concat(ciphertext); 5229 } else { 5230 wordArray = ciphertext; 5231 } 5232 return wordArray.toString(Base64); 5233 }, 5234 /** 5235 * Converts an OpenSSL-compatible string to a cipher params object. 5236 * 5237 * @param {string} openSSLStr The OpenSSL-compatible string. 5238 * 5239 * @return {CipherParams} The cipher params object. 5240 * 5241 * @static 5242 * 5243 * @example 5244 * 5245 * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString); 5246 */ 5247 parse: function(openSSLStr) { 5248 var salt; 5249 var ciphertext = Base64.parse(openSSLStr); 5250 var ciphertextWords = ciphertext.words; 5251 if (ciphertextWords[0] == 1398893684 && ciphertextWords[1] == 1701076831) { 5252 salt = WordArray.create(ciphertextWords.slice(2, 4)); 5253 ciphertextWords.splice(0, 4); 5254 ciphertext.sigBytes -= 16; 5255 } 5256 return CipherParams.create({ ciphertext, salt }); 5257 } 5258 }; 5259 var SerializableCipher = C_lib.SerializableCipher = Base.extend({ 5260 /** 5261 * Configuration options. 5262 * 5263 * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL 5264 */ 5265 cfg: Base.extend({ 5266 format: OpenSSLFormatter 5267 }), 5268 /** 5269 * Encrypts a message. 5270 * 5271 * @param {Cipher} cipher The cipher algorithm to use. 5272 * @param {WordArray|string} message The message to encrypt. 5273 * @param {WordArray} key The key. 5274 * @param {Object} cfg (Optional) The configuration options to use for this operation. 5275 * 5276 * @return {CipherParams} A cipher params object. 5277 * 5278 * @static 5279 * 5280 * @example 5281 * 5282 * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key); 5283 * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv }); 5284 * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL }); 5285 */ 5286 encrypt: function(cipher, message, key, cfg) { 5287 cfg = this.cfg.extend(cfg); 5288 var encryptor = cipher.createEncryptor(key, cfg); 5289 var ciphertext = encryptor.finalize(message); 5290 var cipherCfg = encryptor.cfg; 5291 return CipherParams.create({ 5292 ciphertext, 5293 key, 5294 iv: cipherCfg.iv, 5295 algorithm: cipher, 5296 mode: cipherCfg.mode, 5297 padding: cipherCfg.padding, 5298 blockSize: cipher.blockSize, 5299 formatter: cfg.format 5300 }); 5301 }, 5302 /** 5303 * Decrypts serialized ciphertext. 5304 * 5305 * @param {Cipher} cipher The cipher algorithm to use. 5306 * @param {CipherParams|string} ciphertext The ciphertext to decrypt. 5307 * @param {WordArray} key The key. 5308 * @param {Object} cfg (Optional) The configuration options to use for this operation. 5309 * 5310 * @return {WordArray} The plaintext. 5311 * 5312 * @static 5313 * 5314 * @example 5315 * 5316 * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL }); 5317 * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL }); 5318 */ 5319 decrypt: function(cipher, ciphertext, key, cfg) { 5320 cfg = this.cfg.extend(cfg); 5321 ciphertext = this._parse(ciphertext, cfg.format); 5322 var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); 5323 return plaintext; 5324 }, 5325 /** 5326 * Converts serialized ciphertext to CipherParams, 5327 * else assumed CipherParams already and returns ciphertext unchanged. 5328 * 5329 * @param {CipherParams|string} ciphertext The ciphertext. 5330 * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext. 5331 * 5332 * @return {CipherParams} The unserialized ciphertext. 5333 * 5334 * @static 5335 * 5336 * @example 5337 * 5338 * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format); 5339 */ 5340 _parse: function(ciphertext, format) { 5341 if (typeof ciphertext == "string") { 5342 return format.parse(ciphertext, this); 5343 } else { 5344 return ciphertext; 5345 } 5346 } 5347 }); 5348 var C_kdf = C.kdf = {}; 5349 var OpenSSLKdf = C_kdf.OpenSSL = { 5350 /** 5351 * Derives a key and IV from a password. 5352 * 5353 * @param {string} password The password to derive from. 5354 * @param {number} keySize The size in words of the key to generate. 5355 * @param {number} ivSize The size in words of the IV to generate. 5356 * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly. 5357 * 5358 * @return {CipherParams} A cipher params object with the key, IV, and salt. 5359 * 5360 * @static 5361 * 5362 * @example 5363 * 5364 * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32); 5365 * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt'); 5366 */ 5367 execute: function(password, keySize, ivSize, salt) { 5368 if (!salt) { 5369 salt = WordArray.random(64 / 8); 5370 } 5371 var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); 5372 var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); 5373 key.sigBytes = keySize * 4; 5374 return CipherParams.create({ key, iv, salt }); 5375 } 5376 }; 5377 var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ 5378 /** 5379 * Configuration options. 5380 * 5381 * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL 5382 */ 5383 cfg: SerializableCipher.cfg.extend({ 5384 kdf: OpenSSLKdf 5385 }), 5386 /** 5387 * Encrypts a message using a password. 5388 * 5389 * @param {Cipher} cipher The cipher algorithm to use. 5390 * @param {WordArray|string} message The message to encrypt. 5391 * @param {string} password The password. 5392 * @param {Object} cfg (Optional) The configuration options to use for this operation. 5393 * 5394 * @return {CipherParams} A cipher params object. 5395 * 5396 * @static 5397 * 5398 * @example 5399 * 5400 * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password'); 5401 * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL }); 5402 */ 5403 encrypt: function(cipher, message, password, cfg) { 5404 cfg = this.cfg.extend(cfg); 5405 var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize); 5406 cfg.iv = derivedParams.iv; 5407 var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); 5408 ciphertext.mixIn(derivedParams); 5409 return ciphertext; 5410 }, 5411 /** 5412 * Decrypts serialized ciphertext using a password. 5413 * 5414 * @param {Cipher} cipher The cipher algorithm to use. 5415 * @param {CipherParams|string} ciphertext The ciphertext to decrypt. 5416 * @param {string} password The password. 5417 * @param {Object} cfg (Optional) The configuration options to use for this operation. 5418 * 5419 * @return {WordArray} The plaintext. 5420 * 5421 * @static 5422 * 5423 * @example 5424 * 5425 * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL }); 5426 * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL }); 5427 */ 5428 decrypt: function(cipher, ciphertext, password, cfg) { 5429 cfg = this.cfg.extend(cfg); 5430 ciphertext = this._parse(ciphertext, cfg.format); 5431 var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt); 5432 cfg.iv = derivedParams.iv; 5433 var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); 5434 return plaintext; 5435 } 5436 }); 5437 }(); 5438 }); 5439 } 5440 }); 5441 5442
vendor: 2,001 bytes, lines 5442-5494
5442// ../../../node_modules/crypto-js/mode-cfb.js 5443 var require_mode_cfb = __commonJS({ 5444 "../../../node_modules/crypto-js/mode-cfb.js"(exports, module) { 5445 (function(root, factory, undef) { 5446 if (typeof exports === "object") { 5447 module.exports = exports = factory(require_core(), require_cipher_core()); 5448 } else if (typeof define === "function" && define.amd) { 5449 define(["./core", "./cipher-core"], factory); 5450 } else { 5451 factory(root.CryptoJS); 5452 } 5453 })(exports, function(CryptoJS) { 5454 CryptoJS.mode.CFB = function() { 5455 var CFB = CryptoJS.lib.BlockCipherMode.extend(); 5456 CFB.Encryptor = CFB.extend({ 5457 processBlock: function(words, offset) { 5458 var cipher = this._cipher; 5459 var blockSize = cipher.blockSize; 5460 generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); 5461 this._prevBlock = words.slice(offset, offset + blockSize); 5462 } 5463 }); 5464 CFB.Decryptor = CFB.extend({ 5465 processBlock: function(words, offset) { 5466 var cipher = this._cipher; 5467 var blockSize = cipher.blockSize; 5468 var thisBlock = words.slice(offset, offset + blockSize); 5469 generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); 5470 this._prevBlock = thisBlock; 5471 } 5472 }); 5473 function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) { 5474 var keystream; 5475 var iv = this._iv; 5476 if (iv) { 5477 keystream = iv.slice(0); 5478 this._iv = void 0; 5479 } else { 5480 keystream = this._prevBlock; 5481 } 5482 cipher.encryptBlock(keystream, 0); 5483 for (var i = 0; i < blockSize; i++) { 5484 words[offset + i] ^= keystream[i]; 5485 } 5486 } 5487 return CFB; 5488 }(); 5489 return CryptoJS.mode.CFB; 5490 }); 5491 } 5492 }); 5493 5494
vendor: 1,491 bytes, lines 5494-5534
5494// ../../../node_modules/crypto-js/mode-ctr.js 5495 var require_mode_ctr = __commonJS({ 5496 "../../../node_modules/crypto-js/mode-ctr.js"(exports, module) { 5497 (function(root, factory, undef) { 5498 if (typeof exports === "object") { 5499 module.exports = exports = factory(require_core(), require_cipher_core()); 5500 } else if (typeof define === "function" && define.amd) { 5501 define(["./core", "./cipher-core"], factory); 5502 } else { 5503 factory(root.CryptoJS); 5504 } 5505 })(exports, function(CryptoJS) { 5506 CryptoJS.mode.CTR = function() { 5507 var CTR = CryptoJS.lib.BlockCipherMode.extend(); 5508 var Encryptor = CTR.Encryptor = CTR.extend({ 5509 processBlock: function(words, offset) { 5510 var cipher = this._cipher; 5511 var blockSize = cipher.blockSize; 5512 var iv = this._iv; 5513 var counter = this._counter; 5514 if (iv) { 5515 counter = this._counter = iv.slice(0); 5516 this._iv = void 0; 5517 } 5518 var keystream = counter.slice(0); 5519 cipher.encryptBlock(keystream, 0); 5520 counter[blockSize - 1] = counter[blockSize - 1] + 1 | 0; 5521 for (var i = 0; i < blockSize; i++) { 5522 words[offset + i] ^= keystream[i]; 5523 } 5524 } 5525 }); 5526 CTR.Decryptor = Encryptor; 5527 return CTR; 5528 }(); 5529 return CryptoJS.mode.CTR; 5530 }); 5531 } 5532 }); 5533 5534
vendor: 2,525 bytes, lines 5534-5609
5534// ../../../node_modules/crypto-js/mode-ctr-gladman.js 5535 var require_mode_ctr_gladman = __commonJS({ 5536 "../../../node_modules/crypto-js/mode-ctr-gladman.js"(exports, module) { 5537 (function(root, factory, undef) { 5538 if (typeof exports === "object") { 5539 module.exports = exports = factory(require_core(), require_cipher_core()); 5540 } else if (typeof define === "function" && define.amd) { 5541 define(["./core", "./cipher-core"], factory); 5542 } else { 5543 factory(root.CryptoJS); 5544 } 5545 })(exports, function(CryptoJS) { 5546 CryptoJS.mode.CTRGladman = function() { 5547 var CTRGladman = CryptoJS.lib.BlockCipherMode.extend(); 5548 function incWord(word) { 5549 if ((word >> 24 & 255) === 255) { 5550 var b1 = word >> 16 & 255; 5551 var b2 = word >> 8 & 255; 5552 var b3 = word & 255; 5553 if (b1 === 255) { 5554 b1 = 0; 5555 if (b2 === 255) { 5556 b2 = 0; 5557 if (b3 === 255) { 5558 b3 = 0; 5559 } else { 5560 ++b3; 5561 } 5562 } else { 5563 ++b2; 5564 } 5565 } else { 5566 ++b1; 5567 } 5568 word = 0; 5569 word += b1 << 16; 5570 word += b2 << 8; 5571 word += b3; 5572 } else { 5573 word += 1 << 24; 5574 } 5575 return word; 5576 } 5577 function incCounter(counter) { 5578 if ((counter[0] = incWord(counter[0])) === 0) { 5579 counter[1] = incWord(counter[1]); 5580 } 5581 return counter; 5582 } 5583 var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({ 5584 processBlock: function(words, offset) { 5585 var cipher = this._cipher; 5586 var blockSize = cipher.blockSize; 5587 var iv = this._iv; 5588 var counter = this._counter; 5589 if (iv) { 5590 counter = this._counter = iv.slice(0); 5591 this._iv = void 0; 5592 } 5593 incCounter(counter); 5594 var keystream = counter.slice(0); 5595 cipher.encryptBlock(keystream, 0); 5596 for (var i = 0; i < blockSize; i++) { 5597 words[offset + i] ^= keystream[i]; 5598 } 5599 } 5600 }); 5601 CTRGladman.Decryptor = Encryptor; 5602 return CTRGladman; 5603 }(); 5604 return CryptoJS.mode.CTRGladman; 5605 }); 5606 } 5607 }); 5608 5609
vendor: 1,380 bytes, lines 5609-5647
5609// ../../../node_modules/crypto-js/mode-ofb.js 5610 var require_mode_ofb = __commonJS({ 5611 "../../../node_modules/crypto-js/mode-ofb.js"(exports, module) { 5612 (function(root, factory, undef) { 5613 if (typeof exports === "object") { 5614 module.exports = exports = factory(require_core(), require_cipher_core()); 5615 } else if (typeof define === "function" && define.amd) { 5616 define(["./core", "./cipher-core"], factory); 5617 } else { 5618 factory(root.CryptoJS); 5619 } 5620 })(exports, function(CryptoJS) { 5621 CryptoJS.mode.OFB = function() { 5622 var OFB = CryptoJS.lib.BlockCipherMode.extend(); 5623 var Encryptor = OFB.Encryptor = OFB.extend({ 5624 processBlock: function(words, offset) { 5625 var cipher = this._cipher; 5626 var blockSize = cipher.blockSize; 5627 var iv = this._iv; 5628 var keystream = this._keystream; 5629 if (iv) { 5630 keystream = this._keystream = iv.slice(0); 5631 this._iv = void 0; 5632 } 5633 cipher.encryptBlock(keystream, 0); 5634 for (var i = 0; i < blockSize; i++) { 5635 words[offset + i] ^= keystream[i]; 5636 } 5637 } 5638 }); 5639 OFB.Decryptor = Encryptor; 5640 return OFB; 5641 }(); 5642 return CryptoJS.mode.OFB; 5643 }); 5644 } 5645 }); 5646 5647
vendor: 1,087 bytes, lines 5647-5678
5647// ../../../node_modules/crypto-js/mode-ecb.js 5648 var require_mode_ecb = __commonJS({ 5649 "../../../node_modules/crypto-js/mode-ecb.js"(exports, module) { 5650 (function(root, factory, undef) { 5651 if (typeof exports === "object") { 5652 module.exports = exports = factory(require_core(), require_cipher_core()); 5653 } else if (typeof define === "function" && define.amd) { 5654 define(["./core", "./cipher-core"], factory); 5655 } else { 5656 factory(root.CryptoJS); 5657 } 5658 })(exports, function(CryptoJS) { 5659 CryptoJS.mode.ECB = function() { 5660 var ECB = CryptoJS.lib.BlockCipherMode.extend(); 5661 ECB.Encryptor = ECB.extend({ 5662 processBlock: function(words, offset) { 5663 this._cipher.encryptBlock(words, offset); 5664 } 5665 }); 5666 ECB.Decryptor = ECB.extend({ 5667 processBlock: function(words, offset) { 5668 this._cipher.decryptBlock(words, offset); 5669 } 5670 }); 5671 return ECB; 5672 }(); 5673 return CryptoJS.mode.ECB; 5674 }); 5675 } 5676 }); 5677 5678
vendor: 1,280 bytes, lines 5678-5710
5678// ../../../node_modules/crypto-js/pad-ansix923.js 5679 var require_pad_ansix923 = __commonJS({ 5680 "../../../node_modules/crypto-js/pad-ansix923.js"(exports, module) { 5681 (function(root, factory, undef) { 5682 if (typeof exports === "object") { 5683 module.exports = exports = factory(require_core(), require_cipher_core()); 5684 } else if (typeof define === "function" && define.amd) { 5685 define(["./core", "./cipher-core"], factory); 5686 } else { 5687 factory(root.CryptoJS); 5688 } 5689 })(exports, function(CryptoJS) { 5690 CryptoJS.pad.AnsiX923 = { 5691 pad: function(data, blockSize) { 5692 var dataSigBytes = data.sigBytes; 5693 var blockSizeBytes = blockSize * 4; 5694 var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; 5695 var lastBytePos = dataSigBytes + nPaddingBytes - 1; 5696 data.clamp(); 5697 data.words[lastBytePos >>> 2] |= nPaddingBytes << 24 - lastBytePos % 4 * 8; 5698 data.sigBytes += nPaddingBytes; 5699 }, 5700 unpad: function(data) { 5701 var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 255; 5702 data.sigBytes -= nPaddingBytes; 5703 } 5704 }; 5705 return CryptoJS.pad.Ansix923; 5706 }); 5707 } 5708 }); 5709 5710
vendor: 1,152 bytes, lines 5710-5738
5710// ../../../node_modules/crypto-js/pad-iso10126.js 5711 var require_pad_iso10126 = __commonJS({ 5712 "../../../node_modules/crypto-js/pad-iso10126.js"(exports, module) { 5713 (function(root, factory, undef) { 5714 if (typeof exports === "object") { 5715 module.exports = exports = factory(require_core(), require_cipher_core()); 5716 } else if (typeof define === "function" && define.amd) { 5717 define(["./core", "./cipher-core"], factory); 5718 } else { 5719 factory(root.CryptoJS); 5720 } 5721 })(exports, function(CryptoJS) { 5722 CryptoJS.pad.Iso10126 = { 5723 pad: function(data, blockSize) { 5724 var blockSizeBytes = blockSize * 4; 5725 var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; 5726 data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1)); 5727 }, 5728 unpad: function(data) { 5729 var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 255; 5730 data.sigBytes -= nPaddingBytes; 5731 } 5732 }; 5733 return CryptoJS.pad.Iso10126; 5734 }); 5735 } 5736 }); 5737 5738
vendor: 976 bytes, lines 5738-5765
5738// ../../../node_modules/crypto-js/pad-iso97971.js 5739 var require_pad_iso97971 = __commonJS({ 5740 "../../../node_modules/crypto-js/pad-iso97971.js"(exports, module) { 5741 (function(root, factory, undef) { 5742 if (typeof exports === "object") { 5743 module.exports = exports = factory(require_core(), require_cipher_core()); 5744 } else if (typeof define === "function" && define.amd) { 5745 define(["./core", "./cipher-core"], factory); 5746 } else { 5747 factory(root.CryptoJS); 5748 } 5749 })(exports, function(CryptoJS) { 5750 CryptoJS.pad.Iso97971 = { 5751 pad: function(data, blockSize) { 5752 data.concat(CryptoJS.lib.WordArray.create([2147483648], 1)); 5753 CryptoJS.pad.ZeroPadding.pad(data, blockSize); 5754 }, 5755 unpad: function(data) { 5756 CryptoJS.pad.ZeroPadding.unpad(data); 5757 data.sigBytes--; 5758 } 5759 }; 5760 return CryptoJS.pad.Iso97971; 5761 }); 5762 } 5763 }); 5764 5765
vendor: 1,247 bytes, lines 5765-5799
5765// ../../../node_modules/crypto-js/pad-zeropadding.js 5766 var require_pad_zeropadding = __commonJS({ 5767 "../../../node_modules/crypto-js/pad-zeropadding.js"(exports, module) { 5768 (function(root, factory, undef) { 5769 if (typeof exports === "object") { 5770 module.exports = exports = factory(require_core(), require_cipher_core()); 5771 } else if (typeof define === "function" && define.amd) { 5772 define(["./core", "./cipher-core"], factory); 5773 } else { 5774 factory(root.CryptoJS); 5775 } 5776 })(exports, function(CryptoJS) { 5777 CryptoJS.pad.ZeroPadding = { 5778 pad: function(data, blockSize) { 5779 var blockSizeBytes = blockSize * 4; 5780 data.clamp(); 5781 data.sigBytes += blockSizeBytes - (data.sigBytes % blockSizeBytes || blockSizeBytes); 5782 }, 5783 unpad: function(data) { 5784 var dataWords = data.words; 5785 var i = data.sigBytes - 1; 5786 for (var i = data.sigBytes - 1; i >= 0; i--) { 5787 if (dataWords[i >>> 2] >>> 24 - i % 4 * 8 & 255) { 5788 data.sigBytes = i + 1; 5789 break; 5790 } 5791 } 5792 } 5793 }; 5794 return CryptoJS.pad.ZeroPadding; 5795 }); 5796 } 5797 }); 5798 5799
vendor: 751 bytes, lines 5799-5822
5799// ../../../node_modules/crypto-js/pad-nopadding.js 5800 var require_pad_nopadding = __commonJS({ 5801 "../../../node_modules/crypto-js/pad-nopadding.js"(exports, module) { 5802 (function(root, factory, undef) { 5803 if (typeof exports === "object") { 5804 module.exports = exports = factory(require_core(), require_cipher_core()); 5805 } else if (typeof define === "function" && define.amd) { 5806 define(["./core", "./cipher-core"], factory); 5807 } else { 5808 factory(root.CryptoJS); 5809 } 5810 })(exports, function(CryptoJS) { 5811 CryptoJS.pad.NoPadding = { 5812 pad: function() { 5813 }, 5814 unpad: function() { 5815 } 5816 }; 5817 return CryptoJS.pad.NoPadding; 5818 }); 5819 } 5820 }); 5821 5822
vendor: 2,131 bytes, lines 5822-5882
5822// ../../../node_modules/crypto-js/format-hex.js 5823 var require_format_hex = __commonJS({ 5824 "../../../node_modules/crypto-js/format-hex.js"(exports, module) { 5825 (function(root, factory, undef) { 5826 if (typeof exports === "object") { 5827 module.exports = exports = factory(require_core(), require_cipher_core()); 5828 } else if (typeof define === "function" && define.amd) { 5829 define(["./core", "./cipher-core"], factory); 5830 } else { 5831 factory(root.CryptoJS); 5832 } 5833 })(exports, function(CryptoJS) { 5834 (function(undefined2) { 5835 var C = CryptoJS; 5836 var C_lib = C.lib; 5837 var CipherParams = C_lib.CipherParams; 5838 var C_enc = C.enc; 5839 var Hex = C_enc.Hex; 5840 var C_format = C.format; 5841 var HexFormatter = C_format.Hex = { 5842 /** 5843 * Converts the ciphertext of a cipher params object to a hexadecimally encoded string. 5844 * 5845 * @param {CipherParams} cipherParams The cipher params object. 5846 * 5847 * @return {string} The hexadecimally encoded string. 5848 * 5849 * @static 5850 * 5851 * @example 5852 * 5853 * var hexString = CryptoJS.format.Hex.stringify(cipherParams); 5854 */ 5855 stringify: function(cipherParams) { 5856 return cipherParams.ciphertext.toString(Hex); 5857 }, 5858 /** 5859 * Converts a hexadecimally encoded ciphertext string to a cipher params object. 5860 * 5861 * @param {string} input The hexadecimally encoded string. 5862 * 5863 * @return {CipherParams} The cipher params object. 5864 * 5865 * @static 5866 * 5867 * @example 5868 * 5869 * var cipherParams = CryptoJS.format.Hex.parse(hexString); 5870 */ 5871 parse: function(input) { 5872 var ciphertext = Hex.parse(input); 5873 return CipherParams.create({ ciphertext }); 5874 } 5875 }; 5876 })(); 5877 return CryptoJS.format.Hex; 5878 }); 5879 } 5880 }); 5881 5882
vendor: 7,187 bytes, lines 5882-6036
5882// ../../../node_modules/crypto-js/aes.js 5883 var require_aes = __commonJS({ 5884 "../../../node_modules/crypto-js/aes.js"(exports, module) { 5885 (function(root, factory, undef) { 5886 if (typeof exports === "object") { 5887 module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core()); 5888 } else if (typeof define === "function" && define.amd) { 5889 define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); 5890 } else { 5891 factory(root.CryptoJS); 5892 } 5893 })(exports, function(CryptoJS) { 5894 (function() { 5895 var C = CryptoJS; 5896 var C_lib = C.lib; 5897 var BlockCipher = C_lib.BlockCipher; 5898 var C_algo = C.algo; 5899 var SBOX = []; 5900 var INV_SBOX = []; 5901 var SUB_MIX_0 = []; 5902 var SUB_MIX_1 = []; 5903 var SUB_MIX_2 = []; 5904 var SUB_MIX_3 = []; 5905 var INV_SUB_MIX_0 = []; 5906 var INV_SUB_MIX_1 = []; 5907 var INV_SUB_MIX_2 = []; 5908 var INV_SUB_MIX_3 = []; 5909 (function() { 5910 var d = []; 5911 for (var i = 0; i < 256; i++) { 5912 if (i < 128) { 5913 d[i] = i << 1; 5914 } else { 5915 d[i] = i << 1 ^ 283; 5916 } 5917 } 5918 var x = 0; 5919 var xi = 0; 5920 for (var i = 0; i < 256; i++) { 5921 var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4; 5922 sx = sx >>> 8 ^ sx & 255 ^ 99; 5923 SBOX[x] = sx; 5924 INV_SBOX[sx] = x; 5925 var x2 = d[x]; 5926 var x4 = d[x2]; 5927 var x8 = d[x4]; 5928 var t = d[sx] * 257 ^ sx * 16843008; 5929 SUB_MIX_0[x] = t << 24 | t >>> 8; 5930 SUB_MIX_1[x] = t << 16 | t >>> 16; 5931 SUB_MIX_2[x] = t << 8 | t >>> 24; 5932 SUB_MIX_3[x] = t; 5933 var t = x8 * 16843009 ^ x4 * 65537 ^ x2 * 257 ^ x * 16843008; 5934 INV_SUB_MIX_0[sx] = t << 24 | t >>> 8; 5935 INV_SUB_MIX_1[sx] = t << 16 | t >>> 16; 5936 INV_SUB_MIX_2[sx] = t << 8 | t >>> 24; 5937 INV_SUB_MIX_3[sx] = t; 5938 if (!x) { 5939 x = xi = 1; 5940 } else { 5941 x = x2 ^ d[d[d[x8 ^ x2]]]; 5942 xi ^= d[d[xi]]; 5943 } 5944 } 5945 })(); 5946 var RCON = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]; 5947 var AES = C_algo.AES = BlockCipher.extend({ 5948 _doReset: function() { 5949 var t; 5950 if (this._nRounds && this._keyPriorReset === this._key) { 5951 return; 5952 } 5953 var key = this._keyPriorReset = this._key; 5954 var keyWords = key.words; 5955 var keySize = key.sigBytes / 4; 5956 var nRounds = this._nRounds = keySize + 6; 5957 var ksRows = (nRounds + 1) * 4; 5958 var keySchedule = this._keySchedule = []; 5959 for (var ksRow = 0; ksRow < ksRows; ksRow++) { 5960 if (ksRow < keySize) { 5961 keySchedule[ksRow] = keyWords[ksRow]; 5962 } else { 5963 t = keySchedule[ksRow - 1]; 5964 if (!(ksRow % keySize)) { 5965 t = t << 8 | t >>> 24; 5966 t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 255] << 16 | SBOX[t >>> 8 & 255] << 8 | SBOX[t & 255]; 5967 t ^= RCON[ksRow / keySize | 0] << 24; 5968 } else if (keySize > 6 && ksRow % keySize == 4) { 5969 t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 255] << 16 | SBOX[t >>> 8 & 255] << 8 | SBOX[t & 255]; 5970 } 5971 keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; 5972 } 5973 } 5974 var invKeySchedule = this._invKeySchedule = []; 5975 for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { 5976 var ksRow = ksRows - invKsRow; 5977 if (invKsRow % 4) { 5978 var t = keySchedule[ksRow]; 5979 } else { 5980 var t = keySchedule[ksRow - 4]; 5981 } 5982 if (invKsRow < 4 || ksRow <= 4) { 5983 invKeySchedule[invKsRow] = t; 5984 } else { 5985 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]]; 5986 } 5987 } 5988 }, 5989 encryptBlock: function(M, offset) { 5990 this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); 5991 }, 5992 decryptBlock: function(M, offset) { 5993 var t = M[offset + 1]; 5994 M[offset + 1] = M[offset + 3]; 5995 M[offset + 3] = t; 5996 this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); 5997 var t = M[offset + 1]; 5998 M[offset + 1] = M[offset + 3]; 5999 M[offset + 3] = t; 6000 }, 6001 _doCryptBlock: function(M, offset, keySchedule, SUB_MIX_02, SUB_MIX_12, SUB_MIX_22, SUB_MIX_32, SBOX2) { 6002 var nRounds = this._nRounds; 6003 var s0 = M[offset] ^ keySchedule[0]; 6004 var s1 = M[offset + 1] ^ keySchedule[1]; 6005 var s2 = M[offset + 2] ^ keySchedule[2]; 6006 var s3 = M[offset + 3] ^ keySchedule[3]; 6007 var ksRow = 4; 6008 for (var round = 1; round < nRounds; round++) { 6009 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++]; 6010 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++]; 6011 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++]; 6012 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++]; 6013 s0 = t0; 6014 s1 = t1; 6015 s2 = t2; 6016 s3 = t3; 6017 } 6018 var t0 = (SBOX2[s0 >>> 24] << 24 | SBOX2[s1 >>> 16 & 255] << 16 | SBOX2[s2 >>> 8 & 255] << 8 | SBOX2[s3 & 255]) ^ keySchedule[ksRow++]; 6019 var t1 = (SBOX2[s1 >>> 24] << 24 | SBOX2[s2 >>> 16 & 255] << 16 | SBOX2[s3 >>> 8 & 255] << 8 | SBOX2[s0 & 255]) ^ keySchedule[ksRow++]; 6020 var t2 = (SBOX2[s2 >>> 24] << 24 | SBOX2[s3 >>> 16 & 255] << 16 | SBOX2[s0 >>> 8 & 255] << 8 | SBOX2[s1 & 255]) ^ keySchedule[ksRow++]; 6021 var t3 = (SBOX2[s3 >>> 24] << 24 | SBOX2[s0 >>> 16 & 255] << 16 | SBOX2[s1 >>> 8 & 255] << 8 | SBOX2[s2 & 255]) ^ keySchedule[ksRow++]; 6022 M[offset] = t0; 6023 M[offset + 1] = t1; 6024 M[offset + 2] = t2; 6025 M[offset + 3] = t3; 6026 }, 6027 keySize: 256 / 32 6028 }); 6029 C.AES = BlockCipher._createHelper(AES); 6030 })(); 6031 return CryptoJS.AES; 6032 }); 6033 } 6034 }); 6035 6036
vendor: 23,864 bytes, lines 6036-6817
6036// ../../../node_modules/crypto-js/tripledes.js 6037 var require_tripledes = __commonJS({ 6038 "../../../node_modules/crypto-js/tripledes.js"(exports, module) { 6039 (function(root, factory, undef) { 6040 if (typeof exports === "object") { 6041 module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core()); 6042 } else if (typeof define === "function" && define.amd) { 6043 define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); 6044 } else { 6045 factory(root.CryptoJS); 6046 } 6047 })(exports, function(CryptoJS) { 6048 (function() { 6049 var C = CryptoJS; 6050 var C_lib = C.lib; 6051 var WordArray = C_lib.WordArray; 6052 var BlockCipher = C_lib.BlockCipher; 6053 var C_algo = C.algo; 6054 var PC1 = [ 6055 57, 6056 49, 6057 41, 6058 33, 6059 25, 6060 17, 6061 9, 6062 1, 6063 58, 6064 50, 6065 42, 6066 34, 6067 26, 6068 18, 6069 10, 6070 2, 6071 59, 6072 51, 6073 43, 6074 35, 6075 27, 6076 19, 6077 11, 6078 3, 6079 60, 6080 52, 6081 44, 6082 36, 6083 63, 6084 55, 6085 47, 6086 39, 6087 31, 6088 23, 6089 15, 6090 7, 6091 62, 6092 54, 6093 46, 6094 38, 6095 30, 6096 22, 6097 14, 6098 6, 6099 61, 6100 53, 6101 45, 6102 37, 6103 29, 6104 21, 6105 13, 6106 5, 6107 28, 6108 20, 6109 12, 6110 4 6111 ]; 6112 var PC2 = [ 6113 14, 6114 17, 6115 11, 6116 24, 6117 1, 6118 5, 6119 3, 6120 28, 6121 15, 6122 6, 6123 21, 6124 10, 6125 23, 6126 19, 6127 12, 6128 4, 6129 26, 6130 8, 6131 16, 6132 7, 6133 27, 6134 20, 6135 13, 6136 2, 6137 41, 6138 52, 6139 31, 6140 37, 6141 47, 6142 55, 6143 30, 6144 40, 6145 51, 6146 45, 6147 33, 6148 48, 6149 44, 6150 49, 6151 39, 6152 56, 6153 34, 6154 53, 6155 46, 6156 42, 6157 50, 6158 36, 6159 29, 6160 32 6161 ]; 6162 var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; 6163 var SBOX_P = [ 6164 { 6165 0: 8421888, 6166 268435456: 32768, 6167 536870912: 8421378, 6168 805306368: 2, 6169 1073741824: 512, 6170 1342177280: 8421890, 6171 1610612736: 8389122, 6172 1879048192: 8388608, 6173 2147483648: 514, 6174 2415919104: 8389120, 6175 2684354560: 33280, 6176 2952790016: 8421376, 6177 3221225472: 32770, 6178 3489660928: 8388610, 6179 3758096384: 0, 6180 4026531840: 33282, 6181 134217728: 0, 6182 402653184: 8421890, 6183 671088640: 33282, 6184 939524096: 32768, 6185 1207959552: 8421888, 6186 1476395008: 512, 6187 1744830464: 8421378, 6188 2013265920: 2, 6189 2281701376: 8389120, 6190 2550136832: 33280, 6191 2818572288: 8421376, 6192 3087007744: 8389122, 6193 3355443200: 8388610, 6194 3623878656: 32770, 6195 3892314112: 514, 6196 4160749568: 8388608, 6197 1: 32768, 6198 268435457: 2, 6199 536870913: 8421888, 6200 805306369: 8388608, 6201 1073741825: 8421378, 6202 1342177281: 33280, 6203 1610612737: 512, 6204 1879048193: 8389122, 6205 2147483649: 8421890, 6206 2415919105: 8421376, 6207 2684354561: 8388610, 6208 2952790017: 33282, 6209 3221225473: 514, 6210 3489660929: 8389120, 6211 3758096385: 32770, 6212 4026531841: 0, 6213 134217729: 8421890, 6214 402653185: 8421376, 6215 671088641: 8388608, 6216 939524097: 512, 6217 1207959553: 32768, 6218 1476395009: 8388610, 6219 1744830465: 2, 6220 2013265921: 33282, 6221 2281701377: 32770, 6222 2550136833: 8389122, 6223 2818572289: 514, 6224 3087007745: 8421888, 6225 3355443201: 8389120, 6226 3623878657: 0, 6227 3892314113: 33280, 6228 4160749569: 8421378 6229 }, 6230 { 6231 0: 1074282512, 6232 16777216: 16384, 6233 33554432: 524288, 6234 50331648: 1074266128, 6235 67108864: 1073741840, 6236 83886080: 1074282496, 6237 100663296: 1073758208, 6238 117440512: 16, 6239 134217728: 540672, 6240 150994944: 1073758224, 6241 167772160: 1073741824, 6242 184549376: 540688, 6243 201326592: 524304, 6244 218103808: 0, 6245 234881024: 16400, 6246 251658240: 1074266112, 6247 8388608: 1073758208, 6248 25165824: 540688, 6249 41943040: 16, 6250 58720256: 1073758224, 6251 75497472: 1074282512, 6252 92274688: 1073741824, 6253 109051904: 524288, 6254 125829120: 1074266128, 6255 142606336: 524304, 6256 159383552: 0, 6257 176160768: 16384, 6258 192937984: 1074266112, 6259 209715200: 1073741840, 6260 226492416: 540672, 6261 243269632: 1074282496, 6262 260046848: 16400, 6263 268435456: 0, 6264 285212672: 1074266128, 6265 301989888: 1073758224, 6266 318767104: 1074282496, 6267 335544320: 1074266112, 6268 352321536: 16, 6269 369098752: 540688, 6270 385875968: 16384, 6271 402653184: 16400, 6272 419430400: 524288, 6273 436207616: 524304, 6274 452984832: 1073741840, 6275 469762048: 540672, 6276 486539264: 1073758208, 6277 503316480: 1073741824, 6278 520093696: 1074282512, 6279 276824064: 540688, 6280 293601280: 524288, 6281 310378496: 1074266112, 6282 327155712: 16384, 6283 343932928: 1073758208, 6284 360710144: 1074282512, 6285 377487360: 16, 6286 394264576: 1073741824, 6287 411041792: 1074282496, 6288 427819008: 1073741840, 6289 444596224: 1073758224, 6290 461373440: 524304, 6291 478150656: 0, 6292 494927872: 16400, 6293 511705088: 1074266128, 6294 528482304: 540672 6295 }, 6296 { 6297 0: 260, 6298 1048576: 0, 6299 2097152: 67109120, 6300 3145728: 65796, 6301 4194304: 65540, 6302 5242880: 67108868, 6303 6291456: 67174660, 6304 7340032: 67174400, 6305 8388608: 67108864, 6306 9437184: 67174656, 6307 10485760: 65792, 6308 11534336: 67174404, 6309 12582912: 67109124, 6310 13631488: 65536, 6311 14680064: 4, 6312 15728640: 256, 6313 524288: 67174656, 6314 1572864: 67174404, 6315 2621440: 0, 6316 3670016: 67109120, 6317 4718592: 67108868, 6318 5767168: 65536, 6319 6815744: 65540, 6320 7864320: 260, 6321 8912896: 4, 6322 9961472: 256, 6323 11010048: 67174400, 6324 12058624: 65796, 6325 13107200: 65792, 6326 14155776: 67109124, 6327 15204352: 67174660, 6328 16252928: 67108864, 6329 16777216: 67174656, 6330 17825792: 65540, 6331 18874368: 65536, 6332 19922944: 67109120, 6333 20971520: 256, 6334 22020096: 67174660, 6335 23068672: 67108868, 6336 24117248: 0, 6337 25165824: 67109124, 6338 26214400: 67108864, 6339 27262976: 4, 6340 28311552: 65792, 6341 29360128: 67174400, 6342 30408704: 260, 6343 31457280: 65796, 6344 32505856: 67174404, 6345 17301504: 67108864, 6346 18350080: 260, 6347 19398656: 67174656, 6348 20447232: 0, 6349 21495808: 65540, 6350 22544384: 67109120, 6351 23592960: 256, 6352 24641536: 67174404, 6353 25690112: 65536, 6354 26738688: 67174660, 6355 27787264: 65796, 6356 28835840: 67108868, 6357 29884416: 67109124, 6358 30932992: 67174400, 6359 31981568: 4, 6360 33030144: 65792 6361 }, 6362 { 6363 0: 2151682048, 6364 65536: 2147487808, 6365 131072: 4198464, 6366 196608: 2151677952, 6367 262144: 0, 6368 327680: 4198400, 6369 393216: 2147483712, 6370 458752: 4194368, 6371 524288: 2147483648, 6372 589824: 4194304, 6373 655360: 64, 6374 720896: 2147487744, 6375 786432: 2151678016, 6376 851968: 4160, 6377 917504: 4096, 6378 983040: 2151682112, 6379 32768: 2147487808, 6380 98304: 64, 6381 163840: 2151678016, 6382 229376: 2147487744, 6383 294912: 4198400, 6384 360448: 2151682112, 6385 425984: 0, 6386 491520: 2151677952, 6387 557056: 4096, 6388 622592: 2151682048, 6389 688128: 4194304, 6390 753664: 4160, 6391 819200: 2147483648, 6392 884736: 4194368, 6393 950272: 4198464, 6394 1015808: 2147483712, 6395 1048576: 4194368, 6396 1114112: 4198400, 6397 1179648: 2147483712, 6398 1245184: 0, 6399 1310720: 4160, 6400 1376256: 2151678016, 6401 1441792: 2151682048, 6402 1507328: 2147487808, 6403 1572864: 2151682112, 6404 1638400: 2147483648, 6405 1703936: 2151677952, 6406 1769472: 4198464, 6407 1835008: 2147487744, 6408 1900544: 4194304, 6409 1966080: 64, 6410 2031616: 4096, 6411 1081344: 2151677952, 6412 1146880: 2151682112, 6413 1212416: 0, 6414 1277952: 4198400, 6415 1343488: 4194368, 6416 1409024: 2147483648, 6417 1474560: 2147487808, 6418 1540096: 64, 6419 1605632: 2147483712, 6420 1671168: 4096, 6421 1736704: 2147487744, 6422 1802240: 2151678016, 6423 1867776: 4160, 6424 1933312: 2151682048, 6425 1998848: 4194304, 6426 2064384: 4198464 6427 }, 6428 { 6429 0: 128, 6430 4096: 17039360, 6431 8192: 262144, 6432 12288: 536870912, 6433 16384: 537133184, 6434 20480: 16777344, 6435 24576: 553648256, 6436 28672: 262272, 6437 32768: 16777216, 6438 36864: 537133056, 6439 40960: 536871040, 6440 45056: 553910400, 6441 49152: 553910272, 6442 53248: 0, 6443 57344: 17039488, 6444 61440: 553648128, 6445 2048: 17039488, 6446 6144: 553648256, 6447 10240: 128, 6448 14336: 17039360, 6449 18432: 262144, 6450 22528: 537133184, 6451 26624: 553910272, 6452 30720: 536870912, 6453 34816: 537133056, 6454 38912: 0, 6455 43008: 553910400, 6456 47104: 16777344, 6457 51200: 536871040, 6458 55296: 553648128, 6459 59392: 16777216, 6460 63488: 262272, 6461 65536: 262144, 6462 69632: 128, 6463 73728: 536870912, 6464 77824: 553648256, 6465 81920: 16777344, 6466 86016: 553910272, 6467 90112: 537133184, 6468 94208: 16777216, 6469 98304: 553910400, 6470 102400: 553648128, 6471 106496: 17039360, 6472 110592: 537133056, 6473 114688: 262272, 6474 118784: 536871040, 6475 122880: 0, 6476 126976: 17039488, 6477 67584: 553648256, 6478 71680: 16777216, 6479 75776: 17039360, 6480 79872: 537133184, 6481 83968: 536870912, 6482 88064: 17039488, 6483 92160: 128, 6484 96256: 553910272, 6485 100352: 262272, 6486 104448: 553910400, 6487 108544: 0, 6488 112640: 553648128, 6489 116736: 16777344, 6490 120832: 262144, 6491 124928: 537133056, 6492 129024: 536871040 6493 }, 6494 { 6495 0: 268435464, 6496 256: 8192, 6497 512: 270532608, 6498 768: 270540808, 6499 1024: 268443648, 6500 1280: 2097152, 6501 1536: 2097160, 6502 1792: 268435456, 6503 2048: 0, 6504 2304: 268443656, 6505 2560: 2105344, 6506 2816: 8, 6507 3072: 270532616, 6508 3328: 2105352, 6509 3584: 8200, 6510 3840: 270540800, 6511 128: 270532608, 6512 384: 270540808, 6513 640: 8, 6514 896: 2097152, 6515 1152: 2105352, 6516 1408: 268435464, 6517 1664: 268443648, 6518 1920: 8200, 6519 2176: 2097160, 6520 2432: 8192, 6521 2688: 268443656, 6522 2944: 270532616, 6523 3200: 0, 6524 3456: 270540800, 6525 3712: 2105344, 6526 3968: 268435456, 6527 4096: 268443648, 6528 4352: 270532616, 6529 4608: 270540808, 6530 4864: 8200, 6531 5120: 2097152, 6532 5376: 268435456, 6533 5632: 268435464, 6534 5888: 2105344, 6535 6144: 2105352, 6536 6400: 0, 6537 6656: 8, 6538 6912: 270532608, 6539 7168: 8192, 6540 7424: 268443656, 6541 7680: 270540800, 6542 7936: 2097160, 6543 4224: 8, 6544 4480: 2105344, 6545 4736: 2097152, 6546 4992: 268435464, 6547 5248: 268443648, 6548 5504: 8200, 6549 5760: 270540808, 6550 6016: 270532608, 6551 6272: 270540800, 6552 6528: 270532616, 6553 6784: 8192, 6554 7040: 2105352, 6555 7296: 2097160, 6556 7552: 0, 6557 7808: 268435456, 6558 8064: 268443656 6559 }, 6560 { 6561 0: 1048576, 6562 16: 33555457, 6563 32: 1024, 6564 48: 1049601, 6565 64: 34604033, 6566 80: 0, 6567 96: 1, 6568 112: 34603009, 6569 128: 33555456, 6570 144: 1048577, 6571 160: 33554433, 6572 176: 34604032, 6573 192: 34603008, 6574 208: 1025, 6575 224: 1049600, 6576 240: 33554432, 6577 8: 34603009, 6578 24: 0, 6579 40: 33555457, 6580 56: 34604032, 6581 72: 1048576, 6582 88: 33554433, 6583 104: 33554432, 6584 120: 1025, 6585 136: 1049601, 6586 152: 33555456, 6587 168: 34603008, 6588 184: 1048577, 6589 200: 1024, 6590 216: 34604033, 6591 232: 1, 6592 248: 1049600, 6593 256: 33554432, 6594 272: 1048576, 6595 288: 33555457, 6596 304: 34603009, 6597 320: 1048577, 6598 336: 33555456, 6599 352: 34604032, 6600 368: 1049601, 6601 384: 1025, 6602 400: 34604033, 6603 416: 1049600, 6604 432: 1, 6605 448: 0, 6606 464: 34603008, 6607 480: 33554433, 6608 496: 1024, 6609 264: 1049600, 6610 280: 33555457, 6611 296: 34603009, 6612 312: 1, 6613 328: 33554432, 6614 344: 1048576, 6615 360: 1025, 6616 376: 34604032, 6617 392: 33554433, 6618 408: 34603008, 6619 424: 0, 6620 440: 34604033, 6621 456: 1049601, 6622 472: 1024, 6623 488: 33555456, 6624 504: 1048577 6625 }, 6626 { 6627 0: 134219808, 6628 1: 131072, 6629 2: 134217728, 6630 3: 32, 6631 4: 131104, 6632 5: 134350880, 6633 6: 134350848, 6634 7: 2048, 6635 8: 134348800, 6636 9: 134219776, 6637 10: 133120, 6638 11: 134348832, 6639 12: 2080, 6640 13: 0, 6641 14: 134217760, 6642 15: 133152, 6643 2147483648: 2048, 6644 2147483649: 134350880, 6645 2147483650: 134219808, 6646 2147483651: 134217728, 6647 2147483652: 134348800, 6648 2147483653: 133120, 6649 2147483654: 133152, 6650 2147483655: 32, 6651 2147483656: 134217760, 6652 2147483657: 2080, 6653 2147483658: 131104, 6654 2147483659: 134350848, 6655 2147483660: 0, 6656 2147483661: 134348832, 6657 2147483662: 134219776, 6658 2147483663: 131072, 6659 16: 133152, 6660 17: 134350848, 6661 18: 32, 6662 19: 2048, 6663 20: 134219776, 6664 21: 134217760, 6665 22: 134348832, 6666 23: 131072, 6667 24: 0, 6668 25: 131104, 6669 26: 134348800, 6670 27: 134219808, 6671 28: 134350880, 6672 29: 133120, 6673 30: 2080, 6674 31: 134217728, 6675 2147483664: 131072, 6676 2147483665: 2048, 6677 2147483666: 134348832, 6678 2147483667: 133152, 6679 2147483668: 32, 6680 2147483669: 134348800, 6681 2147483670: 134217728, 6682 2147483671: 134219808, 6683 2147483672: 134350880, 6684 2147483673: 134217760, 6685 2147483674: 134219776, 6686 2147483675: 0, 6687 2147483676: 133120, 6688 2147483677: 2080, 6689 2147483678: 131104, 6690 2147483679: 134350848 6691 } 6692 ]; 6693 var SBOX_MASK = [ 6694 4160749569, 6695 528482304, 6696 33030144, 6697 2064384, 6698 129024, 6699 8064, 6700 504, 6701 2147483679 6702 ]; 6703 var DES = C_algo.DES = BlockCipher.extend({ 6704 _doReset: function() { 6705 var key = this._key; 6706 var keyWords = key.words; 6707 var keyBits = []; 6708 for (var i = 0; i < 56; i++) { 6709 var keyBitPos = PC1[i] - 1; 6710 keyBits[i] = keyWords[keyBitPos >>> 5] >>> 31 - keyBitPos % 32 & 1; 6711 } 6712 var subKeys = this._subKeys = []; 6713 for (var nSubKey = 0; nSubKey < 16; nSubKey++) { 6714 var subKey = subKeys[nSubKey] = []; 6715 var bitShift = BIT_SHIFTS[nSubKey]; 6716 for (var i = 0; i < 24; i++) { 6717 subKey[i / 6 | 0] |= keyBits[(PC2[i] - 1 + bitShift) % 28] << 31 - i % 6; 6718 subKey[4 + (i / 6 | 0)] |= keyBits[28 + (PC2[i + 24] - 1 + bitShift) % 28] << 31 - i % 6; 6719 } 6720 subKey[0] = subKey[0] << 1 | subKey[0] >>> 31; 6721 for (var i = 1; i < 7; i++) { 6722 subKey[i] = subKey[i] >>> (i - 1) * 4 + 3; 6723 } 6724 subKey[7] = subKey[7] << 5 | subKey[7] >>> 27; 6725 } 6726 var invSubKeys = this._invSubKeys = []; 6727 for (var i = 0; i < 16; i++) { 6728 invSubKeys[i] = subKeys[15 - i]; 6729 } 6730 }, 6731 encryptBlock: function(M, offset) { 6732 this._doCryptBlock(M, offset, this._subKeys); 6733 }, 6734 decryptBlock: function(M, offset) { 6735 this._doCryptBlock(M, offset, this._invSubKeys); 6736 }, 6737 _doCryptBlock: function(M, offset, subKeys) { 6738 this._lBlock = M[offset]; 6739 this._rBlock = M[offset + 1]; 6740 exchangeLR.call(this, 4, 252645135); 6741 exchangeLR.call(this, 16, 65535); 6742 exchangeRL.call(this, 2, 858993459); 6743 exchangeRL.call(this, 8, 16711935); 6744 exchangeLR.call(this, 1, 1431655765); 6745 for (var round = 0; round < 16; round++) { 6746 var subKey = subKeys[round]; 6747 var lBlock = this._lBlock; 6748 var rBlock = this._rBlock; 6749 var f = 0; 6750 for (var i = 0; i < 8; i++) { 6751 f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0]; 6752 } 6753 this._lBlock = rBlock; 6754 this._rBlock = lBlock ^ f; 6755 } 6756 var t = this._lBlock; 6757 this._lBlock = this._rBlock; 6758 this._rBlock = t; 6759 exchangeLR.call(this, 1, 1431655765); 6760 exchangeRL.call(this, 8, 16711935); 6761 exchangeRL.call(this, 2, 858993459); 6762 exchangeLR.call(this, 16, 65535); 6763 exchangeLR.call(this, 4, 252645135); 6764 M[offset] = this._lBlock; 6765 M[offset + 1] = this._rBlock; 6766 }, 6767 keySize: 64 / 32, 6768 ivSize: 64 / 32, 6769 blockSize: 64 / 32 6770 }); 6771 function exchangeLR(offset, mask) { 6772 var t = (this._lBlock >>> offset ^ this._rBlock) & mask; 6773 this._rBlock ^= t; 6774 this._lBlock ^= t << offset; 6775 } 6776 function exchangeRL(offset, mask) { 6777 var t = (this._rBlock >>> offset ^ this._lBlock) & mask; 6778 this._lBlock ^= t; 6779 this._rBlock ^= t << offset; 6780 } 6781 C.DES = BlockCipher._createHelper(DES); 6782 var TripleDES = C_algo.TripleDES = BlockCipher.extend({ 6783 _doReset: function() { 6784 var key = this._key; 6785 var keyWords = key.words; 6786 if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) { 6787 throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192."); 6788 } 6789 var key1 = keyWords.slice(0, 2); 6790 var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4); 6791 var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6); 6792 this._des1 = DES.createEncryptor(WordArray.create(key1)); 6793 this._des2 = DES.createEncryptor(WordArray.create(key2)); 6794 this._des3 = DES.createEncryptor(WordArray.create(key3)); 6795 }, 6796 encryptBlock: function(M, offset) { 6797 this._des1.encryptBlock(M, offset); 6798 this._des2.decryptBlock(M, offset); 6799 this._des3.encryptBlock(M, offset); 6800 }, 6801 decryptBlock: function(M, offset) { 6802 this._des3.decryptBlock(M, offset); 6803 this._des2.encryptBlock(M, offset); 6804 this._des1.decryptBlock(M, offset); 6805 }, 6806 keySize: 192 / 32, 6807 ivSize: 64 / 32, 6808 blockSize: 64 / 32 6809 }); 6810 C.TripleDES = BlockCipher._createHelper(TripleDES); 6811 })(); 6812 return CryptoJS.TripleDES; 6813 }); 6814 } 6815 }); 6816 6817
vendor: 2,951 bytes, lines 6817-6900
6817// ../../../node_modules/crypto-js/rc4.js 6818 var require_rc4 = __commonJS({ 6819 "../../../node_modules/crypto-js/rc4.js"(exports, module) { 6820 (function(root, factory, undef) { 6821 if (typeof exports === "object") { 6822 module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core()); 6823 } else if (typeof define === "function" && define.amd) { 6824 define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); 6825 } else { 6826 factory(root.CryptoJS); 6827 } 6828 })(exports, function(CryptoJS) { 6829 (function() { 6830 var C = CryptoJS; 6831 var C_lib = C.lib; 6832 var StreamCipher = C_lib.StreamCipher; 6833 var C_algo = C.algo; 6834 var RC4 = C_algo.RC4 = StreamCipher.extend({ 6835 _doReset: function() { 6836 var key = this._key; 6837 var keyWords = key.words; 6838 var keySigBytes = key.sigBytes; 6839 var S = this._S = []; 6840 for (var i = 0; i < 256; i++) { 6841 S[i] = i; 6842 } 6843 for (var i = 0, j = 0; i < 256; i++) { 6844 var keyByteIndex = i % keySigBytes; 6845 var keyByte = keyWords[keyByteIndex >>> 2] >>> 24 - keyByteIndex % 4 * 8 & 255; 6846 j = (j + S[i] + keyByte) % 256; 6847 var t = S[i]; 6848 S[i] = S[j]; 6849 S[j] = t; 6850 } 6851 this._i = this._j = 0; 6852 }, 6853 _doProcessBlock: function(M, offset) { 6854 M[offset] ^= generateKeystreamWord.call(this); 6855 }, 6856 keySize: 256 / 32, 6857 ivSize: 0 6858 }); 6859 function generateKeystreamWord() { 6860 var S = this._S; 6861 var i = this._i; 6862 var j = this._j; 6863 var keystreamWord = 0; 6864 for (var n = 0; n < 4; n++) { 6865 i = (i + 1) % 256; 6866 j = (j + S[i]) % 256; 6867 var t = S[i]; 6868 S[i] = S[j]; 6869 S[j] = t; 6870 keystreamWord |= S[(S[i] + S[j]) % 256] << 24 - n * 8; 6871 } 6872 this._i = i; 6873 this._j = j; 6874 return keystreamWord; 6875 } 6876 C.RC4 = StreamCipher._createHelper(RC4); 6877 var RC4Drop = C_algo.RC4Drop = RC4.extend({ 6878 /** 6879 * Configuration options. 6880 * 6881 * @property {number} drop The number of keystream words to drop. Default 192 6882 */ 6883 cfg: RC4.cfg.extend({ 6884 drop: 192 6885 }), 6886 _doReset: function() { 6887 RC4._doReset.call(this); 6888 for (var i = this.cfg.drop; i > 0; i--) { 6889 generateKeystreamWord.call(this); 6890 } 6891 } 6892 }); 6893 C.RC4Drop = StreamCipher._createHelper(RC4Drop); 6894 })(); 6895 return CryptoJS.RC4; 6896 }); 6897 } 6898 }); 6899 6900
vendor: 5,511 bytes, lines 6900-7029
6900// ../../../node_modules/crypto-js/rabbit.js 6901 var require_rabbit = __commonJS({ 6902 "../../../node_modules/crypto-js/rabbit.js"(exports, module) { 6903 (function(root, factory, undef) { 6904 if (typeof exports === "object") { 6905 module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core()); 6906 } else if (typeof define === "function" && define.amd) { 6907 define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); 6908 } else { 6909 factory(root.CryptoJS); 6910 } 6911 })(exports, function(CryptoJS) { 6912 (function() { 6913 var C = CryptoJS; 6914 var C_lib = C.lib; 6915 var StreamCipher = C_lib.StreamCipher; 6916 var C_algo = C.algo; 6917 var S = []; 6918 var C_ = []; 6919 var G = []; 6920 var Rabbit = C_algo.Rabbit = StreamCipher.extend({ 6921 _doReset: function() { 6922 var K = this._key.words; 6923 var iv = this.cfg.iv; 6924 for (var i = 0; i < 4; i++) { 6925 K[i] = (K[i] << 8 | K[i] >>> 24) & 16711935 | (K[i] << 24 | K[i] >>> 8) & 4278255360; 6926 } 6927 var X = this._X = [ 6928 K[0], 6929 K[3] << 16 | K[2] >>> 16, 6930 K[1], 6931 K[0] << 16 | K[3] >>> 16, 6932 K[2], 6933 K[1] << 16 | K[0] >>> 16, 6934 K[3], 6935 K[2] << 16 | K[1] >>> 16 6936 ]; 6937 var C2 = this._C = [ 6938 K[2] << 16 | K[2] >>> 16, 6939 K[0] & 4294901760 | K[1] & 65535, 6940 K[3] << 16 | K[3] >>> 16, 6941 K[1] & 4294901760 | K[2] & 65535, 6942 K[0] << 16 | K[0] >>> 16, 6943 K[2] & 4294901760 | K[3] & 65535, 6944 K[1] << 16 | K[1] >>> 16, 6945 K[3] & 4294901760 | K[0] & 65535 6946 ]; 6947 this._b = 0; 6948 for (var i = 0; i < 4; i++) { 6949 nextState.call(this); 6950 } 6951 for (var i = 0; i < 8; i++) { 6952 C2[i] ^= X[i + 4 & 7]; 6953 } 6954 if (iv) { 6955 var IV = iv.words; 6956 var IV_0 = IV[0]; 6957 var IV_1 = IV[1]; 6958 var i0 = (IV_0 << 8 | IV_0 >>> 24) & 16711935 | (IV_0 << 24 | IV_0 >>> 8) & 4278255360; 6959 var i2 = (IV_1 << 8 | IV_1 >>> 24) & 16711935 | (IV_1 << 24 | IV_1 >>> 8) & 4278255360; 6960 var i1 = i0 >>> 16 | i2 & 4294901760; 6961 var i3 = i2 << 16 | i0 & 65535; 6962 C2[0] ^= i0; 6963 C2[1] ^= i1; 6964 C2[2] ^= i2; 6965 C2[3] ^= i3; 6966 C2[4] ^= i0; 6967 C2[5] ^= i1; 6968 C2[6] ^= i2; 6969 C2[7] ^= i3; 6970 for (var i = 0; i < 4; i++) { 6971 nextState.call(this); 6972 } 6973 } 6974 }, 6975 _doProcessBlock: function(M, offset) { 6976 var X = this._X; 6977 nextState.call(this); 6978 S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16; 6979 S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16; 6980 S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16; 6981 S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16; 6982 for (var i = 0; i < 4; i++) { 6983 S[i] = (S[i] << 8 | S[i] >>> 24) & 16711935 | (S[i] << 24 | S[i] >>> 8) & 4278255360; 6984 M[offset + i] ^= S[i]; 6985 } 6986 }, 6987 blockSize: 128 / 32, 6988 ivSize: 64 / 32 6989 }); 6990 function nextState() { 6991 var X = this._X; 6992 var C2 = this._C; 6993 for (var i = 0; i < 8; i++) { 6994 C_[i] = C2[i]; 6995 } 6996 C2[0] = C2[0] + 1295307597 + this._b | 0; 6997 C2[1] = C2[1] + 3545052371 + (C2[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0; 6998 C2[2] = C2[2] + 886263092 + (C2[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0; 6999 C2[3] = C2[3] + 1295307597 + (C2[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0; 7000 C2[4] = C2[4] + 3545052371 + (C2[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0; 7001 C2[5] = C2[5] + 886263092 + (C2[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0; 7002 C2[6] = C2[6] + 1295307597 + (C2[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0; 7003 C2[7] = C2[7] + 3545052371 + (C2[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0; 7004 this._b = C2[7] >>> 0 < C_[7] >>> 0 ? 1 : 0; 7005 for (var i = 0; i < 8; i++) { 7006 var gx = X[i] + C2[i]; 7007 var ga = gx & 65535; 7008 var gb = gx >>> 16; 7009 var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb; 7010 var gl = ((gx & 4294901760) * gx | 0) + ((gx & 65535) * gx | 0); 7011 G[i] = gh ^ gl; 7012 } 7013 X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0; 7014 X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0; 7015 X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0; 7016 X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0; 7017 X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0; 7018 X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0; 7019 X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0; 7020 X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0; 7021 } 7022 C.Rabbit = StreamCipher._createHelper(Rabbit); 7023 })(); 7024 return CryptoJS.Rabbit; 7025 }); 7026 } 7027 }); 7028 7029
vendor: 5,400 bytes, lines 7029-7155
7029// ../../../node_modules/crypto-js/rabbit-legacy.js 7030 var require_rabbit_legacy = __commonJS({ 7031 "../../../node_modules/crypto-js/rabbit-legacy.js"(exports, module) { 7032 (function(root, factory, undef) { 7033 if (typeof exports === "object") { 7034 module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core()); 7035 } else if (typeof define === "function" && define.amd) { 7036 define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); 7037 } else { 7038 factory(root.CryptoJS); 7039 } 7040 })(exports, function(CryptoJS) { 7041 (function() { 7042 var C = CryptoJS; 7043 var C_lib = C.lib; 7044 var StreamCipher = C_lib.StreamCipher; 7045 var C_algo = C.algo; 7046 var S = []; 7047 var C_ = []; 7048 var G = []; 7049 var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({ 7050 _doReset: function() { 7051 var K = this._key.words; 7052 var iv = this.cfg.iv; 7053 var X = this._X = [ 7054 K[0], 7055 K[3] << 16 | K[2] >>> 16, 7056 K[1], 7057 K[0] << 16 | K[3] >>> 16, 7058 K[2], 7059 K[1] << 16 | K[0] >>> 16, 7060 K[3], 7061 K[2] << 16 | K[1] >>> 16 7062 ]; 7063 var C2 = this._C = [ 7064 K[2] << 16 | K[2] >>> 16, 7065 K[0] & 4294901760 | K[1] & 65535, 7066 K[3] << 16 | K[3] >>> 16, 7067 K[1] & 4294901760 | K[2] & 65535, 7068 K[0] << 16 | K[0] >>> 16, 7069 K[2] & 4294901760 | K[3] & 65535, 7070 K[1] << 16 | K[1] >>> 16, 7071 K[3] & 4294901760 | K[0] & 65535 7072 ]; 7073 this._b = 0; 7074 for (var i = 0; i < 4; i++) { 7075 nextState.call(this); 7076 } 7077 for (var i = 0; i < 8; i++) { 7078 C2[i] ^= X[i + 4 & 7]; 7079 } 7080 if (iv) { 7081 var IV = iv.words; 7082 var IV_0 = IV[0]; 7083 var IV_1 = IV[1]; 7084 var i0 = (IV_0 << 8 | IV_0 >>> 24) & 16711935 | (IV_0 << 24 | IV_0 >>> 8) & 4278255360; 7085 var i2 = (IV_1 << 8 | IV_1 >>> 24) & 16711935 | (IV_1 << 24 | IV_1 >>> 8) & 4278255360; 7086 var i1 = i0 >>> 16 | i2 & 4294901760; 7087 var i3 = i2 << 16 | i0 & 65535; 7088 C2[0] ^= i0; 7089 C2[1] ^= i1; 7090 C2[2] ^= i2; 7091 C2[3] ^= i3; 7092 C2[4] ^= i0; 7093 C2[5] ^= i1; 7094 C2[6] ^= i2; 7095 C2[7] ^= i3; 7096 for (var i = 0; i < 4; i++) { 7097 nextState.call(this); 7098 } 7099 } 7100 }, 7101 _doProcessBlock: function(M, offset) { 7102 var X = this._X; 7103 nextState.call(this); 7104 S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16; 7105 S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16; 7106 S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16; 7107 S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16; 7108 for (var i = 0; i < 4; i++) { 7109 S[i] = (S[i] << 8 | S[i] >>> 24) & 16711935 | (S[i] << 24 | S[i] >>> 8) & 4278255360; 7110 M[offset + i] ^= S[i]; 7111 } 7112 }, 7113 blockSize: 128 / 32, 7114 ivSize: 64 / 32 7115 }); 7116 function nextState() { 7117 var X = this._X; 7118 var C2 = this._C; 7119 for (var i = 0; i < 8; i++) { 7120 C_[i] = C2[i]; 7121 } 7122 C2[0] = C2[0] + 1295307597 + this._b | 0; 7123 C2[1] = C2[1] + 3545052371 + (C2[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0; 7124 C2[2] = C2[2] + 886263092 + (C2[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0; 7125 C2[3] = C2[3] + 1295307597 + (C2[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0; 7126 C2[4] = C2[4] + 3545052371 + (C2[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0; 7127 C2[5] = C2[5] + 886263092 + (C2[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0; 7128 C2[6] = C2[6] + 1295307597 + (C2[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0; 7129 C2[7] = C2[7] + 3545052371 + (C2[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0; 7130 this._b = C2[7] >>> 0 < C_[7] >>> 0 ? 1 : 0; 7131 for (var i = 0; i < 8; i++) { 7132 var gx = X[i] + C2[i]; 7133 var ga = gx & 65535; 7134 var gb = gx >>> 16; 7135 var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb; 7136 var gl = ((gx & 4294901760) * gx | 0) + ((gx & 65535) * gx | 0); 7137 G[i] = gh ^ gl; 7138 } 7139 X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0; 7140 X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0; 7141 X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0; 7142 X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0; 7143 X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0; 7144 X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0; 7145 X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0; 7146 X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0; 7147 } 7148 C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy); 7149 })(); 7150 return CryptoJS.RabbitLegacy; 7151 }); 7152 } 7153 }); 7154 7155
vendor: 1,722 bytes, lines 7155-7172
7155// ../../../node_modules/crypto-js/index.js 7156 var require_crypto_js = __commonJS({ 7157 "../../../node_modules/crypto-js/index.js"(exports, module) { 7158 (function(root, factory, undef) { 7159 if (typeof exports === "object") { 7160 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()); 7161 } else if (typeof define === "function" && define.amd) { 7162 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); 7163 } else { 7164 root.CryptoJS = factory(root.CryptoJS); 7165 } 7166 })(exports, function(CryptoJS) { 7167 return CryptoJS; 7168 }); 7169 } 7170 }); 7171 7172
vendor: 1,810 bytes, lines 7172-7220
7172// ../../../node_modules/pkce-challenge/dist/module.js 7173 var import_crypto_js = __toESM(require_crypto_js()); 7174 function $d415641d0cfd8c85$var$toBytesInt32(num) { 7175 const arr = new ArrayBuffer(4); 7176 const view = new DataView(arr); 7177 view.setUint32(0, num, false); 7178 return arr; 7179 } 7180 function $d415641d0cfd8c85$var$getRandomValues(size) { 7181 const randoms = import_crypto_js.lib.WordArray.random(size); 7182 const randoms1byte = []; 7183 randoms.words.forEach((word) => { 7184 const arr = $d415641d0cfd8c85$var$toBytesInt32(word); 7185 const fourByteWord = new Uint8Array(arr); 7186 for (let i = 0; i < 4; i++) 7187 randoms1byte.push(fourByteWord[i]); 7188 }); 7189 return randoms1byte; 7190 } 7191 function $d415641d0cfd8c85$var$random(size) { 7192 const mask = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~"; 7193 let result = ""; 7194 const randomUints = $d415641d0cfd8c85$var$getRandomValues(size); 7195 for (let i = 0; i < size; i++) { 7196 const randomIndex = randomUints[i] % mask.length; 7197 result += mask[randomIndex]; 7198 } 7199 return result; 7200 } 7201 function $d415641d0cfd8c85$var$generateVerifier(length) { 7202 return $d415641d0cfd8c85$var$random(length); 7203 } 7204 function $d415641d0cfd8c85$export$6a61b14641fe7480(code_verifier) { 7205 return (0, import_crypto_js.SHA256)(code_verifier).toString(import_crypto_js.enc.Base64url); 7206 } 7207 function $d415641d0cfd8c85$export$2e2bcd8739ae039(length) { 7208 if (!length) 7209 length = 43; 7210 if (length < 43 || length > 128) 7211 throw `Expected a length between 43 and 128. Received ${length}.`; 7212 const verifier = $d415641d0cfd8c85$var$generateVerifier(length); 7213 const challenge = $d415641d0cfd8c85$export$6a61b14641fe7480(verifier); 7214 return { 7215 code_verifier: verifier, 7216 code_challenge: challenge 7217 }; 7218 } 7219 7220
7220// src/main/resources/META-INF/resources/js/OAuth2Client.ts 7221 var OAuth2Client = class { 7222 constructor(options) { 7223 __publicField(this, "authorizeURL"); 7224 __publicField(this, "clientId"); 7225 __publicField(this, "debug"); 7226 __publicField(this, "homePageURL"); 7227 __publicField(this, "redirectURIs"); 7228 __publicField(this, "tokenURL"); 7229 this.authorizeURL = options.authorizeURL; 7230 this.clientId = options.clientId; 7231 this.debug = options.debug || false; 7232 this.homePageURL = options.homePageURL; 7233 this.redirectURIs = options.redirectURIs; 7234 this.tokenURL = options.tokenURL; 7235 } 7236 async fetch(url, options = {}) { 7237 const oauth2Client = this; 7238 return oauth2Client._fetch(url, options).then((response) => { 7239 if (response.ok) { 7240 const contentType = response.headers.get("content-type"); 7241 if (contentType && contentType.indexOf("application/json") !== -1) { 7242 return response.json(); 7243 } else { 7244 return Promise.resolve(response); 7245 } 7246 } 7247 return Promise.reject(response); 7248 }); 7249 } 7250 _createIframe(challenge, sessionKey) { 7251 const oauth2Client = this; 7252 const origin = window.location.origin; 7253 const redirectURI = oauth2Client.redirectURIs.find( 7254 (uri) => uri.startsWith(origin) 7255 ); 7256 if (!redirectURI) { 7257 return Promise.reject( 7258 `No redirectURI in ${oauth2Client.redirectURIs} matching origin ${origin}` 7259 ); 7260 } 7261 const ifrm = document.createElement("iframe"); 7262 ifrm.src = `${oauth2Client.authorizeURL}?client_id=${oauth2Client.clientId}&code_challenge=${challenge.code_challenge}&code_challenge_method=S256&redirect_uri=${encodeURIComponent( 7263 redirectURI 7264 )}&response_type=code&prompt=none&state=${sessionKey}`; 7265 ifrm.style.display = "none"; 7266 document.body.appendChild(ifrm); 7267 return new Promise((resolve, reject) => { 7268 const eventHandler = (event) => { 7269 if (oauth2Client.debug) { 7270 console.debug("OAuth2Client._createIframe.event", event); 7271 } 7272 if (event.data.error) { 7273 if (event.target && event.target.parentElement) { 7274 event.target.parentElement.removeChild(event.target); 7275 } 7276 reject(event.data.error); 7277 return; 7278 } else if (!event.data.code) { 7279 return; 7280 } 7281 if (event.data.state !== sessionKey) { 7282 if (event.target && event.target.parentElement) { 7283 event.target.parentElement.removeChild(event.target); 7284 } 7285 reject("state does not match"); 7286 return; 7287 } 7288 const tokenResponse = oauth2Client._requestToken( 7289 challenge.code_verifier, 7290 event.data.code, 7291 redirectURI 7292 ); 7293 resolve(tokenResponse); 7294 tokenResponse.then( 7295 (response) => Liferay.Util.SessionStorage.setItem( 7296 sessionKey, 7297 JSON.stringify({ 7298 ...response, 7299 expires_after_ms: (/* @__PURE__ */ new Date()).getTime() + response.expires_in * 1e3 7300 }), 7301 Liferay.Util.SessionStorage.TYPES.NECESSARY 7302 ) 7303 ).then(() => { 7304 if (event.target && event.target.parentElement) { 7305 event.target.parentElement.removeChild( 7306 event.target 7307 ); 7308 } 7309 }); 7310 }; 7311 if (ifrm.contentWindow) { 7312 ifrm.contentWindow.addEventListener("message", eventHandler); 7313 } 7314 }); 7315 } 7316 async _fetch(resource, options = {}) { 7317 const oauth2Client = this; 7318 let resourceUrl = resource instanceof Request ? resource.url : resource.toString(); 7319 if (resourceUrl.includes("//") && !resourceUrl.startsWith(oauth2Client.homePageURL)) { 7320 throw new Error( 7321 `This client only supports calls to ${oauth2Client.homePageURL}` 7322 ); 7323 } 7324 if (!resourceUrl.startsWith(oauth2Client.homePageURL)) { 7325 if (resourceUrl.startsWith("/")) { 7326 resourceUrl = resourceUrl.substring(1); 7327 } 7328 resourceUrl = `${oauth2Client.homePageURL}/${resourceUrl}`; 7329 } 7330 const tokenData = await oauth2Client._getOrRequestToken(); 7331 resource = resource instanceof Request ? { ...resource, url: resourceUrl } : resourceUrl; 7332 return await fetch(resource, { 7333 ...options, 7334 headers: { 7335 ...options?.headers, 7336 Authorization: `Bearer ${tokenData.access_token}` 7337 } 7338 }); 7339 } 7340 _getOrRequestToken() { 7341 const oauth2Client = this; 7342 const sessionKey = `${oauth2Client.clientId}-${Liferay.authToken}-token`; 7343 return new Promise((resolve) => { 7344 const cachedTokenData = Liferay.Util.SessionStorage.getItem( 7345 sessionKey, 7346 Liferay.Util.SessionStorage.TYPES.NECESSARY 7347 ); 7348 if (oauth2Client.debug && cachedTokenData) { 7349 console.debug( 7350 "OAuth2Client._getOrRequestToken.cachedTokenData", 7351 cachedTokenData 7352 ); 7353 } 7354 if (cachedTokenData !== null && cachedTokenData !== void 0) { 7355 const cachedToken = JSON.parse( 7356 cachedTokenData 7357 ); 7358 if ((/* @__PURE__ */ new Date()).getTime() < cachedToken.expires_after_ms) { 7359 resolve(cachedToken); 7360 return; 7361 } 7362 } 7363 resolve(oauth2Client._requestTokenSilently(sessionKey)); 7364 }); 7365 } 7366 _requestTokenSilently(sessionKey) { 7367 const oauth2Client = this; 7368 const challenge = $d415641d0cfd8c85$export$2e2bcd8739ae039(128); 7369 return oauth2Client._createIframe(challenge, sessionKey); 7370 } 7371 async _requestToken(codeVerifier, code, redirectURI) { 7372 const oauth2Client = this; 7373 const response = await fetch(oauth2Client.tokenURL, { 7374 body: new URLSearchParams({ 7375 client_id: oauth2Client.clientId, 7376 code, 7377 code_verifier: codeVerifier, 7378 grant_type: "authorization_code", 7379 redirect_uri: redirectURI 7380 }), 7381 cache: "no-cache", 7382 headers: { 7383 "Content-Type": "application/x-www-form-urlencoded" 7384 }, 7385 method: "POST", 7386 mode: "cors" 7387 }); 7388 if (response.ok) { 7389 return response.json(); 7390 } 7391 return await Promise.reject(response); 7392 } 7393 }; 7394 function FromParameters(options) { 7395 return new OAuth2Client({ 7396 authorizeURL: options.authorizeURL || Liferay.OAuth2.getAuthorizeURL(), 7397 clientId: options.clientId, 7398 debug: options.debug, 7399 homePageURL: options.homePageURL, 7400 redirectURIs: options.redirectURIs || [ 7401 Liferay.OAuth2.getBuiltInRedirectURL() 7402 ], 7403 tokenURL: options.tokenURL || Liferay.OAuth2.getTokenURL() 7404 }); 7405 } 7406 function FromUserAgentApplication(userAgentApplicationName, debug) { 7407 const userAgentApplication = Liferay.OAuth2.getUserAgentApplication( 7408 userAgentApplicationName 7409 ); 7410 if (!userAgentApplication) { 7411 throw new Error( 7412 `No Application User Agent profile found for ${userAgentApplicationName}` 7413 ); 7414 } 7415 return new OAuth2Client({ 7416 authorizeURL: Liferay.OAuth2.getAuthorizeURL(), 7417 clientId: userAgentApplication.clientId, 7418 debug, 7419 homePageURL: userAgentApplication.homePageURL, 7420 redirectURIs: userAgentApplication.redirectURIs, 7421 tokenURL: Liferay.OAuth2.getTokenURL() 7422 }); 7423 } 7424 7425
7425// src/main/resources/META-INF/resources/js/liferay.ts 7426 window.Liferay = window.Liferay || {}; 7427 window.Liferay.OAuth2Client = { 7428 // Definitions are declared in liferay.d.ts 7429 // @ts-ignore 7430 FromParameters, 7431 // Definitions are declared in liferay.d.ts 7432 // @ts-ignore 7433 FromUserAgentApplication 7434 }; 7435})(); 7436/*! Bundled license information: 7437 7438crypto-js/ripemd160.js: 7439 (** @preserve 7440 (c) 2012 by Cédric Mesnil. All rights reserved. 7441 7442 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 7443 7444 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7445 - 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. 7446 7447 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. 7448 *) 7449 7450crypto-js/mode-ctr-gladman.js: 7451 (** @preserve 7452 * Counter block mode compatible with Dr Brian Gladman fileenc.c 7453 * derived from CryptoJS.mode.CTR 7454 * Jan Hruby [email protected] 7455 *) 7456*/ 7457 7458 7459/** 7460 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 7461 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 7462 */ 7463 7464(function () { 7465 const DOMTaskRunner = { 7466 _scheduledTasks: [], 7467 7468 _taskStates: [], 7469 7470 addTask(task) { 7471 const instance = this; 7472 7473 instance._scheduledTasks.push(task); 7474 }, 7475 7476 addTaskState(state) { 7477 const instance = this; 7478 7479 instance._taskStates.push(state); 7480 }, 7481 7482 reset() { 7483 const instance = this; 7484 7485 instance._taskStates.length = 0; 7486 instance._scheduledTasks.length = 0; 7487 }, 7488 7489 runTasks(node) { 7490 const instance = this; 7491 7492 const scheduledTasks = instance._scheduledTasks; 7493 const taskStates = instance._taskStates; 7494 7495 const tasksLength = scheduledTasks.length; 7496 const taskStatesLength = taskStates.length; 7497 7498 for (let i = 0; i < tasksLength; i++) { 7499 const task = scheduledTasks[i]; 7500 7501 const taskParams = task.params; 7502 7503 for (let j = 0; j < taskStatesLength; j++) { 7504 const state = taskStates[j]; 7505 7506 if (task.condition(state, taskParams, node)) { 7507 task.action(state, taskParams, node); 7508 } 7509 } 7510 } 7511 }, 7512 }; 7513 7514 Liferay.DOMTaskRunner = DOMTaskRunner; 7515})(); 7516 7517/** 7518 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 7519 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 7520 */ 7521 7522(function (A) { 7523 const CLICK_EVENTS = {}; 7524 const Util = Liferay.Util; 7525 7526 A.use('attribute', 'oop', (A) => { 7527 A.augment(Liferay, A.Attribute, true); 7528 }); 7529 7530 Liferay.provide( 7531 Liferay, 7532 'delegateClick', 7533 (id, fn) => { 7534 const element = A.config.doc.getElementById(id); 7535 7536 if (!element || element.id !== id) { 7537 return; 7538 } 7539 7540 // eslint-disable-next-line @liferay/aui/no-one 7541 const guid = A.one(element).addClass('lfr-delegate-click').guid(); 7542 7543 CLICK_EVENTS[guid] = fn; 7544 7545 if (!Liferay._baseDelegateHandle) { 7546 7547 // eslint-disable-next-line @liferay/aui/no-get-body 7548 Liferay._baseDelegateHandle = A.getBody().delegate( 7549 'click', 7550 Liferay._baseDelegate, 7551 '.lfr-delegate-click' 7552 ); 7553 } 7554 }, 7555 ['aui-base'] 7556 ); 7557 7558 Liferay._baseDelegate = function (event) { 7559 const id = event.currentTarget.attr('id'); 7560 7561 const fn = CLICK_EVENTS[id]; 7562 7563 if (fn) { 7564 fn.apply(this, arguments); 7565 } 7566 }; 7567 7568 Liferay._CLICK_EVENTS = CLICK_EVENTS; 7569 7570 Liferay.provide( 7571 window, 7572 'submitForm', 7573 (form, action, singleSubmit, validate) => { 7574 if (!Util._submitLocked) { 7575 if (form.jquery) { 7576 form = form[0]; 7577 } 7578 7579 Liferay.fire('submitForm', { 7580 action, 7581 7582 // eslint-disable-next-line @liferay/aui/no-one 7583 form: A.one(form), 7584 singleSubmit, 7585 validate: validate !== false, 7586 }); 7587 } 7588 }, 7589 ['aui-base', 'aui-form-validator', 'aui-url', 'liferay-form'] 7590 ); 7591 7592 Liferay.publish('submitForm', { 7593 defaultFn(event) { 7594 const form = event.form; 7595 7596 let hasErrors = false;
7597 7598 if (event.validate) { 7599 const liferayForm = Liferay.Form.get(form.attr('id')); 7600 7601 if (liferayForm) { 7602 const validator = liferayForm.formValidator; 7603 7604 if (A.instanceOf(validator, A.FormValidator)) { 7605 validator.validate(); 7606 7607 hasErrors = validator.hasErrors(); 7608 7609 if (hasErrors) { 7610 validator.focusInvalidField(); 7611 } 7612 } 7613 } 7614 } 7615 7616 function enableFormButtons(inputs) { 7617 Util._submitLocked = null; 7618 7619 Util.toggleDisabled(inputs, false); 7620 } 7621 7622 if (!hasErrors) { 7623 let action = event.action || form.getAttribute('action'); 7624 7625 const singleSubmit = event.singleSubmit; 7626 7627 const inputs = form.all( 7628 'button[type=submit], input[type=button], input[type=image], input[type=reset], input[type=submit]' 7629 ); 7630 7631 const inputsArray = Array.from(inputs._nodes); 7632 7633 if (inputsArray.length) { 7634 inputsArray.map((input) => { 7635 input.disabled = true; 7636 input.style.opacity = 0.5; 7637 }); 7638 } 7639 7640 if (singleSubmit === false) { 7641 Util._submitLocked = A.later( 7642 1000, 7643 Util, 7644 enableFormButtons, 7645 [inputs, form] 7646 ); 7647 } 7648 else { 7649 Util._submitLocked = true; 7650 } 7651 7652 let baseURL; 7653 let queryString; 7654 const searchParamsIndex = action.indexOf('?'); 7655 7656 if (searchParamsIndex === -1) { 7657 baseURL = action; 7658 queryString = ''; 7659 } 7660 else { 7661 baseURL = action.slice(0, searchParamsIndex); 7662 queryString = action.slice(searchParamsIndex + 1); 7663 } 7664 7665 const searchParams = new URLSearchParams(queryString); 7666 7667 let authToken = searchParams.get('p_auth') || ''; 7668 7669 if (authToken.includes('#')) { 7670 authToken = authToken.substring(0, authToken.indexOf('#')); 7671 } 7672 7673 if (authToken) { 7674 form.append( 7675 '<input name="p_auth" type="hidden" value="' + 7676 authToken + 7677 '" />' 7678 ); 7679 7680 searchParams.delete('p_auth'); 7681 7682 action = baseURL + '?' + searchParams.toString(); 7683 } 7684 7685 form.attr('action', action); 7686 7687 Util.submitForm(form); 7688 7689 form.attr('target', ''); 7690 7691 Util._submitLocked = null; 7692 } 7693 }, 7694 }); 7695 7696 Liferay.after('closeWindow', (event) => { 7697 const id = event.id; 7698 7699 const dialog = Util.getTop().Liferay.Util.Window.getById(id); 7700 7701 if (dialog && dialog.iframe) { 7702 const dialogWindow = dialog.iframe.node 7703 .get('contentWindow') 7704 .getDOM(); 7705 7706 const openingWindow = dialogWindow.Liferay.Util.getOpener(); 7707 const redirect = event.redirect; 7708 7709 if (redirect) { 7710 openingWindow.Liferay.Util.navigate(redirect); 7711 } 7712 else { 7713 const refresh = event.refresh; 7714 7715 if (refresh && openingWindow) { 7716 let data; 7717 7718 if (!event.portletAjaxable) { 7719 data = { 7720 portletAjaxable: false, 7721 }; 7722 } 7723 7724 openingWindow.Liferay.Portlet.refresh( 7725 '#p_p_id_' + refresh + '_', 7726 data 7727 ); 7728 } 7729 } 7730 7731 dialog.hide(); 7732 } 7733 }); 7734})(AUI()); 7735 7736/** 7737 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 7738 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 7739 */ 7740 7741(function () { 7742 Liferay.lazyLoad = function () { 7743 let failureCallback; 7744 7745 const isFunction = function (val) { 7746 return typeof val === 'function'; 7747 }; 7748 7749 let modules; 7750 let successCallback; 7751 7752 if (Array.isArray(arguments[0])) { 7753 modules = arguments[0]; 7754 7755 successCallback = isFunction(arguments[1]) ? arguments[1] : null; 7756 failureCallback = isFunction(arguments[2]) ? arguments[2] : null; 7757 } 7758 else { 7759 modules = []; 7760 7761 for (let i = 0; i < arguments.length; ++i) { 7762 if (typeof arguments[i] === 'string') { 7763 modules[i] = arguments[i]; 7764 } 7765 else if (isFunction(arguments[i])) { 7766 successCallback = arguments[i]; 7767 failureCallback = isFunction(arguments[++i]) 7768 ? arguments[i] 7769 : null; 7770 break; 7771 } 7772 } 7773 } 7774 7775 return function () { 7776 const args = []; 7777 7778 for (let i = 0; i < arguments.length; ++i) { 7779 args.push(arguments[i]); 7780 } 7781 7782 Liferay.Loader.require( 7783 modules, 7784 function () { 7785 for (let i = 0; i < arguments.length; ++i) { 7786 args.splice(i, 0, arguments[i]); 7787 } 7788 7789 successCallback.apply(successCallback, args); 7790 }, 7791 failureCallback 7792 ); 7793 }; 7794 }; 7795})(); 7796 7797/** 7798 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 7799 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 7800 */ 7801 7802Liferay = window.Liferay || {}; 7803 7804(function () { 7805 const isFunction = function (val) { 7806 return typeof val === 'function'; 7807 }; 7808 7809 const isNode = function (node) { 7810 return node && (node._node || node.jquery || node.nodeType); 7811 }; 7812 7813 const REGEX_METHOD_GET = /^get$/i; 7814 7815 const STR_MULTIPART = 'multipart/form-data'; 7816 7817 Liferay.namespace = function namespace(object, path) { 7818 if (path === undefined) { 7819 path = object; 7820 7821 object = this; 7822 } 7823 7824 const parts = path.split('.'); 7825 7826 for (let part; parts.length && (part = parts.shift()); ) { 7827 if (object[part] && object[part] !== Object.prototype[part]) { 7828 object = object[part]; 7829 } 7830 else { 7831 object = object[part] = {}; 7832 } 7833 } 7834 7835 return object; 7836 }; 7837 7838 /** 7839 * OPTIONS 7840 * 7841 * Required 7842 * 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. 7843 * 7844 * Optional 7845 * 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. 7846 * successCallback {function}: A function to execute when the server returns a response. It receives a JSON object as it's first parameter. 7847 * 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. 7848 */ 7849 7850 const Service = function () { 7851 const args = Service.parseInvokeArgs( 7852 Array.prototype.slice.call(arguments, 0) 7853 ); 7854 7855 return Service.invoke.apply(Service, args); 7856 }; 7857 7858 Service.URL_INVOKE = themeDisplay.getPathContext() + '/api/jsonws/invoke'; 7859 7860 Service.bind = function () { 7861 const args = Array.prototype.slice.call(arguments, 0); 7862 7863 return function () { 7864 const newArgs = Array.prototype.slice.call(arguments, 0); 7865 7866 return Service.apply(Service, args.concat(newArgs)); 7867 }; 7868 }; 7869 7870 Service.parseInvokeArgs = function (args) { 7871 const instance = this; 7872 7873 let payload = args[0]; 7874 7875 const ioConfig = instance.parseIOConfig(args); 7876 7877 if (typeof payload === 'string') { 7878 payload = instance.parseStringPayload(args); 7879 7880 instance.parseIOFormConfig(ioConfig, args); 7881 7882 const lastArg = args[args.length - 1]; 7883 7884 if (typeof lastArg === 'object' && lastArg.method) { 7885 ioConfig.method = lastArg.method; 7886 } 7887 } 7888 7889 return [payload, ioConfig]; 7890 }; 7891 7892 Service.parseIOConfig = function (args) { 7893 const payload = args[0]; 7894 7895 const ioConfig = payload.io || {}; 7896 7897 delete payload.io; 7898 7899 if (!ioConfig.success) { 7900 const callbacks = args.filter(isFunction); 7901 7902 let callbackException = callbacks[1]; 7903 const callbackSuccess = callbacks[0]; 7904 7905 if (!callbackException) { 7906 callbackException = callbackSuccess; 7907 } 7908 7909 ioConfig.error = callbackException; 7910 7911 ioConfig.complete = function (response) { 7912 if ( 7913 !Object.prototype.hasOwnProperty.call(response, 'exception') 7914 ) { 7915 if (callbackSuccess) { 7916 callbackSuccess.call(this, response); 7917 } 7918 } 7919 else if (callbackException) { 7920 const exception = response 7921 ? response.exception 7922 : 'The server returned an empty response'; 7923 7924 callbackException.call(this, exception, response); 7925 } 7926 }; 7927 } 7928 7929 if ( 7930 !Object.prototype.hasOwnProperty.call(ioConfig, 'cache') && 7931 REGEX_METHOD_GET.test(ioConfig.type) 7932 ) { 7933 ioConfig.cache = false;
7934 } 7935 7936 return ioConfig; 7937 }; 7938 7939 Service.parseIOFormConfig = function (ioConfig, args) { 7940 const form = args[1]; 7941 7942 if (isNode(form)) { 7943 if (form.enctype === STR_MULTIPART) { 7944 ioConfig.contentType = 'multipart/form-data'; 7945 } 7946 7947 ioConfig.formData = new FormData(form); 7948 } 7949 }; 7950 7951 Service.parseStringPayload = function (args) { 7952 let params = {}; 7953 const payload = {}; 7954 7955 const config = args[1]; 7956 7957 if (!isFunction(config) && !isNode(config)) { 7958 params = config; 7959 } 7960 7961 payload[args[0]] = params; 7962 7963 return payload; 7964 }; 7965 7966 Service.invoke = function (payload, ioConfig) { 7967 const instance = this; 7968 7969 const cmd = JSON.stringify(payload); 7970 7971 let data = cmd; 7972 7973 if (ioConfig.formData) { 7974 ioConfig.formData.append('cmd', cmd); 7975 data = ioConfig.formData; 7976 } 7977 7978 return Liferay.Util.fetch(instance.URL_INVOKE, { 7979 body: data, 7980 headers: { 7981 contentType: ioConfig.contentType, 7982 }, 7983 method: 'POST', 7984 }) 7985 .then((response) => 7986 Promise.all([Promise.resolve(response), response.json()]) 7987 ) 7988 .then(([response, content]) => { 7989 if (response.ok) { 7990 ioConfig.complete(content); 7991 } 7992 else { 7993 ioConfig.error(); 7994 } 7995 }) 7996 .catch(ioConfig.error); 7997 }; 7998 7999 function getHttpMethodFunction(httpMethodName) { 8000 return function () { 8001 const args = Array.prototype.slice.call(arguments, 0); 8002 8003 const method = {method: httpMethodName}; 8004 8005 args.push(method); 8006 8007 return Service.apply(Service, args); 8008 }; 8009 } 8010 8011 Service.get = getHttpMethodFunction('get'); 8012 Service.del = getHttpMethodFunction('delete'); 8013 Service.post = getHttpMethodFunction('post'); 8014 Service.put = getHttpMethodFunction('put'); 8015 Service.update = getHttpMethodFunction('update'); 8016 8017 Liferay.Service = Service; 8018 8019 Liferay.Template = { 8020 PORTLET: 8021 '<div class="portlet"><div class="portlet-topper"><div class="portlet-title"></div></div><div class="portlet-content"></div><div class="forbidden-action"></div></div>', 8022 }; 8023})(); 8024 8025"use strict"; 8026(() => { 8027 var __create = Object.create; 8028 var __defProp = Object.defineProperty; 8029 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 8030 var __getOwnPropNames = Object.getOwnPropertyNames; 8031 var __getProtoOf = Object.getPrototypeOf; 8032 var __hasOwnProp = Object.prototype.hasOwnProperty; 8033 var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; 8034 var __commonJS = (cb, mod) => function __require() { 8035 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 8036 }; 8037 var __copyProps = (to, from, except, desc) => { 8038 if (from && typeof from === "object" || typeof from === "function") { 8039 for (let key of __getOwnPropNames(from)) 8040 if (!__hasOwnProp.call(to, key) && key !== except) 8041 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 8042 } 8043 return to; 8044 }; 8045 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( 8046 // If the importer is in node compatibility mode or this is not an ESM 8047 // file that has been converted to a CommonJS file using a Babel- 8048 // compatible transform (i.e. "__esModule" has not been set), then set 8049 // "default" to the CommonJS "module.exports" for node compatibility. 8050 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, 8051 mod 8052 )); 8053 var __publicField = (obj, key, value) => { 8054 __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); 8055 return value; 8056 }; 8057 8058
vendor: 34,172 bytes, lines 8058-8928
8058// ../../../node_modules/lodash.groupby/index.js 8059 var require_lodash = __commonJS({ 8060 "../../../node_modules/lodash.groupby/index.js"(exports, module) { 8061 var LARGE_ARRAY_SIZE = 200; 8062 var FUNC_ERROR_TEXT = "Expected a function"; 8063 var HASH_UNDEFINED = "__lodash_hash_undefined__"; 8064 var UNORDERED_COMPARE_FLAG = 1; 8065 var PARTIAL_COMPARE_FLAG = 2; 8066 var INFINITY = 1 / 0; 8067 var MAX_SAFE_INTEGER = 9007199254740991; 8068 var argsTag = "[object Arguments]"; 8069 var arrayTag = "[object Array]"; 8070 var boolTag = "[object Boolean]"; 8071 var dateTag = "[object Date]"; 8072 var errorTag = "[object Error]"; 8073 var funcTag = "[object Function]"; 8074 var genTag = "[object GeneratorFunction]"; 8075 var mapTag = "[object Map]"; 8076 var numberTag = "[object Number]"; 8077 var objectTag = "[object Object]"; 8078 var promiseTag = "[object Promise]"; 8079 var regexpTag = "[object RegExp]"; 8080 var setTag = "[object Set]"; 8081 var stringTag = "[object String]"; 8082 var symbolTag = "[object Symbol]"; 8083 var weakMapTag = "[object WeakMap]"; 8084 var arrayBufferTag = "[object ArrayBuffer]"; 8085 var dataViewTag = "[object DataView]"; 8086 var float32Tag = "[object Float32Array]"; 8087 var float64Tag = "[object Float64Array]"; 8088 var int8Tag = "[object Int8Array]"; 8089 var int16Tag = "[object Int16Array]"; 8090 var int32Tag = "[object Int32Array]"; 8091 var uint8Tag = "[object Uint8Array]"; 8092 var uint8ClampedTag = "[object Uint8ClampedArray]"; 8093 var uint16Tag = "[object Uint16Array]"; 8094 var uint32Tag = "[object Uint32Array]"; 8095 var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/; 8096 var reIsPlainProp = /^\w*$/; 8097 var reLeadingDot = /^\./; 8098 var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; 8099 var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; 8100 var reEscapeChar = /\\(\\)?/g; 8101 var reIsHostCtor = /^\[object .+?Constructor\]$/; 8102 var reIsUint = /^(?:0|[1-9]\d*)$/; 8103 var typedArrayTags = {}; 8104 typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; 8105 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; 8106 var freeGlobal = typeof global == "object" && global && global.Object === Object && global; 8107 var freeSelf = typeof self == "object" && self && self.Object === Object && self; 8108 var root = freeGlobal || freeSelf || Function("return this")(); 8109 var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; 8110 var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; 8111 var moduleExports = freeModule && freeModule.exports === freeExports; 8112 var freeProcess = moduleExports && freeGlobal.process; 8113 var nodeUtil = function() { 8114 try { 8115 return freeProcess && freeProcess.binding("util"); 8116 } catch (e) { 8117 } 8118 }(); 8119 var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; 8120 function arrayAggregator(array, setter, iteratee, accumulator) { 8121 var index = -1, length = array ? array.length : 0; 8122 while (++index < length) { 8123 var value = array[index]; 8124 setter(accumulator, value, iteratee(value), array); 8125 } 8126 return accumulator; 8127 } 8128 function arraySome(array, predicate) { 8129 var index = -1, length = array ? array.length : 0; 8130 while (++index < length) { 8131 if (predicate(array[index], index, array)) { 8132 return true; 8133 } 8134 } 8135 return false; 8136 } 8137 function baseProperty(key) { 8138 return function(object) { 8139 return object == null ? void 0 : object[key]; 8140 }; 8141 } 8142 function baseTimes(n, iteratee) { 8143 var index = -1, result = Array(n); 8144 while (++index < n) { 8145 result[index] = iteratee(index); 8146 } 8147 return result; 8148 } 8149 function baseUnary(func) { 8150 return function(value) { 8151 return func(value); 8152 }; 8153 } 8154 function getValue(object, key) { 8155 return object == null ? void 0 : object[key]; 8156 } 8157 function isHostObject(value) { 8158 var result = false; 8159 if (value != null && typeof value.toString != "function") { 8160 try { 8161 result = !!(value + ""); 8162 } catch (e) { 8163 } 8164 } 8165 return result; 8166 } 8167 function mapToArray(map) { 8168 var index = -1, result = Array(map.size); 8169 map.forEach(function(value, key) { 8170 result[++index] = [key, value]; 8171 }); 8172 return result; 8173 } 8174 function overArg(func, transform) { 8175 return function(arg) { 8176 return func(transform(arg)); 8177 }; 8178 } 8179 function setToArray(set) { 8180 var index = -1, result = Array(set.size); 8181 set.forEach(function(value) { 8182 result[++index] = value; 8183 }); 8184 return result; 8185 } 8186 var arrayProto = Array.prototype; 8187 var funcProto = Function.prototype; 8188 var objectProto = Object.prototype; 8189 var coreJsData = root["__core-js_shared__"]; 8190 var maskSrcKey = function() { 8191 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); 8192 return uid ? "Symbol(src)_1." + uid : ""; 8193 }(); 8194 var funcToString = funcProto.toString; 8195 var hasOwnProperty = objectProto.hasOwnProperty; 8196 var objectToString = objectProto.toString; 8197 var reIsNative = RegExp( 8198 "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" 8199 ); 8200 var Symbol2 = root.Symbol; 8201 var Uint8Array2 = root.Uint8Array; 8202 var propertyIsEnumerable = objectProto.propertyIsEnumerable; 8203 var splice = arrayProto.splice; 8204 var nativeKeys = overArg(Object.keys, Object); 8205 var DataView = getNative(root, "DataView"); 8206 var Map2 = getNative(root, "Map"); 8207 var Promise2 = getNative(root, "Promise"); 8208 var Set2 = getNative(root, "Set"); 8209 var WeakMap2 = getNative(root, "WeakMap"); 8210 var nativeCreate = getNative(Object, "create"); 8211 var dataViewCtorString = toSource(DataView); 8212 var mapCtorString = toSource(Map2); 8213 var promiseCtorString = toSource(Promise2); 8214 var setCtorString = toSource(Set2); 8215 var weakMapCtorString = toSource(WeakMap2); 8216 var symbolProto = Symbol2 ? Symbol2.prototype : void 0; 8217 var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; 8218 var symbolToString = symbolProto ? symbolProto.toString : void 0; 8219 function Hash(entries) { 8220 var index = -1, length = entries ? entries.length : 0; 8221 this.clear(); 8222 while (++index < length) { 8223 var entry = entries[index]; 8224 this.set(entry[0], entry[1]); 8225 } 8226 } 8227 function hashClear() { 8228 this.__data__ = nativeCreate ? nativeCreate(null) : {}; 8229 } 8230 function hashDelete(key) { 8231 return this.has(key) && delete this.__data__[key]; 8232 } 8233 function hashGet(key) { 8234 var data = this.__data__; 8235 if (nativeCreate) { 8236 var result = data[key]; 8237 return result === HASH_UNDEFINED ? void 0 : result; 8238 } 8239 return hasOwnProperty.call(data, key) ? data[key] : void 0; 8240 } 8241 function hashHas(key) { 8242 var data = this.__data__; 8243 return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key); 8244 } 8245 function hashSet(key, value) { 8246 var data = this.__data__; 8247 data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value; 8248 return this; 8249 } 8250 Hash.prototype.clear = hashClear; 8251 Hash.prototype["delete"] = hashDelete; 8252 Hash.prototype.get = hashGet; 8253 Hash.prototype.has = hashHas; 8254 Hash.prototype.set = hashSet; 8255 function ListCache(entries) { 8256 var index = -1, length = entries ? entries.length : 0; 8257 this.clear(); 8258 while (++index < length) { 8259 var entry = entries[index]; 8260 this.set(entry[0], entry[1]); 8261 } 8262 } 8263 function listCacheClear() { 8264 this.__data__ = []; 8265 } 8266 function listCacheDelete(key) { 8267 var data = this.__data__, index = assocIndexOf(data, key); 8268 if (index < 0) { 8269 return false; 8270 } 8271 var lastIndex = data.length - 1; 8272 if (index == lastIndex) { 8273 data.pop(); 8274 } else { 8275 splice.call(data, index, 1); 8276 } 8277 return true; 8278 } 8279 function listCacheGet(key) { 8280 var data = this.__data__, index = assocIndexOf(data, key); 8281 return index < 0 ? void 0 : data[index][1]; 8282 } 8283 function listCacheHas(key) { 8284 return assocIndexOf(this.__data__, key) > -1; 8285 } 8286 function listCacheSet(key, value) { 8287 var data = this.__data__, index = assocIndexOf(data, key); 8288 if (index < 0) { 8289 data.push([key, value]); 8290 } else { 8291 data[index][1] = value; 8292 } 8293 return this; 8294 } 8295 ListCache.prototype.clear = listCacheClear; 8296 ListCache.prototype["delete"] = listCacheDelete; 8297 ListCache.prototype.get = listCacheGet; 8298 ListCache.prototype.has = listCacheHas; 8299 ListCache.prototype.set = listCacheSet; 8300 function MapCache(entries) { 8301 var index = -1, length = entries ? entries.length : 0; 8302 this.clear(); 8303 while (++index < length) { 8304 var entry = entries[index]; 8305 this.set(entry[0], entry[1]); 8306 } 8307 } 8308 function mapCacheClear() { 8309 this.__data__ = { 8310 "hash": new Hash(), 8311 "map": new (Map2 || ListCache)(), 8312 "string": new Hash() 8313 }; 8314 } 8315 function mapCacheDelete(key) { 8316 return getMapData(this, key)["delete"](key); 8317 } 8318 function mapCacheGet(key) { 8319 return getMapData(this, key).get(key); 8320 } 8321 function mapCacheHas(key) { 8322 return getMapData(this, key).has(key); 8323 } 8324 function mapCacheSet(key, value) { 8325 getMapData(this, key).set(key, value); 8326 return this; 8327 } 8328 MapCache.prototype.clear = mapCacheClear; 8329 MapCache.prototype["delete"] = mapCacheDelete; 8330 MapCache.prototype.get = mapCacheGet; 8331 MapCache.prototype.has = mapCacheHas; 8332 MapCache.prototype.set = mapCacheSet; 8333 function SetCache(values) { 8334 var index = -1, length = values ? values.length : 0; 8335 this.__data__ = new MapCache(); 8336 while (++index < length) { 8337 this.add(values[index]); 8338 } 8339 } 8340 function setCacheAdd(value) { 8341 this.__data__.set(value, HASH_UNDEFINED); 8342 return this; 8343 } 8344 function setCacheHas(value) { 8345 return this.__data__.has(value); 8346 } 8347 SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; 8348 SetCache.prototype.has = setCacheHas; 8349 function Stack(entries) { 8350 this.__data__ = new ListCache(entries); 8351 } 8352 function stackClear() { 8353 this.__data__ = new ListCache(); 8354 } 8355 function stackDelete(key) { 8356 return this.__data__["delete"](key); 8357 } 8358 function stackGet(key) { 8359 return this.__data__.get(key); 8360 } 8361 function stackHas(key) { 8362 return this.__data__.has(key); 8363 } 8364 function stackSet(key, value) { 8365 var cache = this.__data__; 8366 if (cache instanceof ListCache) { 8367 var pairs = cache.__data__; 8368 if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { 8369 pairs.push([key, value]); 8370 return this; 8371 } 8372 cache = this.__data__ = new MapCache(pairs); 8373 } 8374 cache.set(key, value); 8375 return this; 8376 } 8377 Stack.prototype.clear = stackClear; 8378 Stack.prototype["delete"] = stackDelete; 8379 Stack.prototype.get = stackGet; 8380 Stack.prototype.has = stackHas; 8381 Stack.prototype.set = stackSet; 8382 function arrayLikeKeys(value, inherited) { 8383 var result = isArray(value) || isArguments(value) ? baseTimes(value.length, String) : []; 8384 var length = result.length, skipIndexes = !!length; 8385 for (var key in value) { 8386 if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == "length" || isIndex(key, length)))) { 8387 result.push(key); 8388 } 8389 } 8390 return result; 8391 } 8392 function assocIndexOf(array, key) { 8393 var length = array.length; 8394 while (length--) { 8395 if (eq(array[length][0], key)) { 8396 return length; 8397 } 8398 } 8399 return -1; 8400 } 8401 function baseAggregator(collection, setter, iteratee, accumulator) { 8402 baseEach(collection, function(value, key, collection2) { 8403 setter(accumulator, value, iteratee(value), collection2); 8404 }); 8405 return accumulator; 8406 } 8407 var baseEach = createBaseEach(baseForOwn); 8408 var baseFor = createBaseFor(); 8409 function baseForOwn(object, iteratee) { 8410 return object && baseFor(object, iteratee, keys); 8411 } 8412 function baseGet(object, path) { 8413 path = isKey(path, object) ? [path] : castPath(path); 8414 var index = 0, length = path.length; 8415 while (object != null && index < length) { 8416 object = object[toKey(path[index++])]; 8417 } 8418 return index && index == length ? object : void 0; 8419 } 8420 function baseGetTag(value) { 8421 return objectToString.call(value); 8422 } 8423 function baseHasIn(object, key) { 8424 return object != null && key in Object(object); 8425 } 8426 function baseIsEqual(value, other, customizer, bitmask, stack) { 8427 if (value === other) { 8428 return true; 8429 } 8430 if (value == null || other == null || !isObject2(value) && !isObjectLike(other)) { 8431 return value !== value && other !== other; 8432 } 8433 return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack); 8434 } 8435 function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) { 8436 var objIsArr = isArray(object), othIsArr = isArray(other), objTag = arrayTag, othTag = arrayTag; 8437 if (!objIsArr) { 8438 objTag = getTag(object); 8439 objTag = objTag == argsTag ? objectTag : objTag; 8440 } 8441 if (!othIsArr) { 8442 othTag = getTag(other); 8443 othTag = othTag == argsTag ? objectTag : othTag; 8444 } 8445 var objIsObj = objTag == objectTag && !isHostObject(object), othIsObj = othTag == objectTag && !isHostObject(other), isSameTag = objTag == othTag; 8446 if (isSameTag && !objIsObj) { 8447 stack || (stack = new Stack()); 8448 return objIsArr || isTypedArray(object) ? equalArrays(object, other, equalFunc, customizer, bitmask, stack) : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack); 8449 } 8450 if (!(bitmask & PARTIAL_COMPARE_FLAG)) { 8451 var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); 8452 if (objIsWrapped || othIsWrapped) { 8453 var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; 8454 stack || (stack = new Stack()); 8455 return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack); 8456 } 8457 } 8458 if (!isSameTag) { 8459 return false; 8460 } 8461 stack || (stack = new Stack()); 8462 return equalObjects(object, other, equalFunc, customizer, bitmask, stack); 8463 } 8464 function baseIsMatch(object, source, matchData, customizer) { 8465 var index = matchData.length, length = index, noCustomizer = !customizer; 8466 if (object == null) { 8467 return !length; 8468 } 8469 object = Object(object); 8470 while (index--) { 8471 var data = matchData[index]; 8472 if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { 8473 return false; 8474 } 8475 } 8476 while (++index < length) { 8477 data = matchData[index]; 8478 var key = data[0], objValue = object[key], srcValue = data[1]; 8479 if (noCustomizer && data[2]) { 8480 if (objValue === void 0 && !(key in object)) { 8481 return false; 8482 } 8483 } else { 8484 var stack = new Stack(); 8485 if (customizer) { 8486 var result = customizer(objValue, srcValue, key, object, source, stack); 8487 } 8488 if (!(result === void 0 ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack) : result)) { 8489 return false; 8490 } 8491 } 8492 } 8493 return true; 8494 } 8495 function baseIsNative(value) { 8496 if (!isObject2(value) || isMasked(value)) { 8497 return false; 8498 } 8499 var pattern = isFunction(value) || isHostObject(value) ? reIsNative : reIsHostCtor; 8500 return pattern.test(toSource(value)); 8501 } 8502 function baseIsTypedArray(value) { 8503 return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objectToString.call(value)]; 8504 } 8505 function baseIteratee(value) { 8506 if (typeof value == "function") { 8507 return value; 8508 } 8509 if (value == null) { 8510 return identity; 8511 } 8512 if (typeof value == "object") { 8513 return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); 8514 } 8515 return property(value); 8516 } 8517 function baseKeys(object) { 8518 if (!isPrototype(object)) { 8519 return nativeKeys(object); 8520 } 8521 var result = []; 8522 for (var key in Object(object)) { 8523 if (hasOwnProperty.call(object, key) && key != "constructor") { 8524 result.push(key); 8525 } 8526 } 8527 return result; 8528 } 8529 function baseMatches(source) { 8530 var matchData = getMatchData(source); 8531 if (matchData.length == 1 && matchData[0][2]) { 8532 return matchesStrictComparable(matchData[0][0], matchData[0][1]); 8533 } 8534 return function(object) { 8535 return object === source || baseIsMatch(object, source, matchData); 8536 }; 8537 } 8538 function baseMatchesProperty(path, srcValue) { 8539 if (isKey(path) && isStrictComparable(srcValue)) { 8540 return matchesStrictComparable(toKey(path), srcValue); 8541 } 8542 return function(object) { 8543 var objValue = get(object, path); 8544 return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, void 0, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG); 8545 }; 8546 } 8547 function basePropertyDeep(path) { 8548 return function(object) { 8549 return baseGet(object, path); 8550 }; 8551 } 8552 function baseToString(value) { 8553 if (typeof value == "string") { 8554 return value; 8555 } 8556 if (isSymbol(value)) { 8557 return symbolToString ? symbolToString.call(value) : ""; 8558 } 8559 var result = value + ""; 8560 return result == "0" && 1 / value == -INFINITY ? "-0" : result; 8561 } 8562 function castPath(value) { 8563 return isArray(value) ? value : stringToPath(value); 8564 } 8565 function createAggregator(setter, initializer) { 8566 return function(collection, iteratee) { 8567 var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; 8568 return func(collection, setter, baseIteratee(iteratee, 2), accumulator); 8569 }; 8570 } 8571 function createBaseEach(eachFunc, fromRight) { 8572 return function(collection, iteratee) { 8573 if (collection == null) { 8574 return collection; 8575 } 8576 if (!isArrayLike2(collection)) { 8577 return eachFunc(collection, iteratee); 8578 } 8579 var length = collection.length, index = fromRight ? length : -1, iterable = Object(collection); 8580 while (fromRight ? index-- : ++index < length) { 8581 if (iteratee(iterable[index], index, iterable) === false) { 8582 break; 8583 } 8584 } 8585 return collection; 8586 }; 8587 } 8588 function createBaseFor(fromRight) { 8589 return function(object, iteratee, keysFunc) { 8590 var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length; 8591 while (length--) { 8592 var key = props[fromRight ? length : ++index]; 8593 if (iteratee(iterable[key], key, iterable) === false) { 8594 break; 8595 } 8596 } 8597 return object; 8598 }; 8599 } 8600 function equalArrays(array, other, equalFunc, customizer, bitmask, stack) { 8601 var isPartial = bitmask & PARTIAL_COMPARE_FLAG, arrLength = array.length, othLength = other.length; 8602 if (arrLength != othLength && !(isPartial && othLength > arrLength)) { 8603 return false; 8604 } 8605 var stacked = stack.get(array); 8606 if (stacked && stack.get(other)) { 8607 return stacked == other; 8608 } 8609 var index = -1, result = true, seen = bitmask & UNORDERED_COMPARE_FLAG ? new SetCache() : void 0; 8610 stack.set(array, other); 8611 stack.set(other, array); 8612 while (++index < arrLength) { 8613 var arrValue = array[index], othValue = other[index]; 8614 if (customizer) { 8615 var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); 8616 } 8617 if (compared !== void 0) { 8618 if (compared) { 8619 continue; 8620 } 8621 result = false; 8622 break; 8623 } 8624 if (seen) { 8625 if (!arraySome(other, function(othValue2, othIndex) { 8626 if (!seen.has(othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, customizer, bitmask, stack))) { 8627 return seen.add(othIndex); 8628 } 8629 })) { 8630 result = false; 8631 break; 8632 } 8633 } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) { 8634 result = false; 8635 break; 8636 } 8637 } 8638 stack["delete"](array); 8639 stack["delete"](other); 8640 return result; 8641 } 8642 function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) { 8643 switch (tag) { 8644 case dataViewTag: 8645 if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { 8646 return false; 8647 } 8648 object = object.buffer; 8649 other = other.buffer; 8650 case arrayBufferTag: 8651 if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) { 8652 return false; 8653 } 8654 return true; 8655 case boolTag: 8656 case dateTag: 8657 case numberTag: 8658 return eq(+object, +other); 8659 case errorTag: 8660 return object.name == other.name && object.message == other.message; 8661 case regexpTag: 8662 case stringTag: 8663 return object == other + ""; 8664 case mapTag: 8665 var convert = mapToArray; 8666 case setTag: 8667 var isPartial = bitmask & PARTIAL_COMPARE_FLAG; 8668 convert || (convert = setToArray); 8669 if (object.size != other.size && !isPartial) { 8670 return false; 8671 } 8672 var stacked = stack.get(object); 8673 if (stacked) { 8674 return stacked == other; 8675 } 8676 bitmask |= UNORDERED_COMPARE_FLAG; 8677 stack.set(object, other); 8678 var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack); 8679 stack["delete"](object); 8680 return result; 8681 case symbolTag: 8682 if (symbolValueOf) { 8683 return symbolValueOf.call(object) == symbolValueOf.call(other); 8684 } 8685 } 8686 return false; 8687 } 8688 function equalObjects(object, other, equalFunc, customizer, bitmask, stack) { 8689 var isPartial = bitmask & PARTIAL_COMPARE_FLAG, objProps = keys(object), objLength = objProps.length, othProps = keys(other), othLength = othProps.length; 8690 if (objLength != othLength && !isPartial) { 8691 return false; 8692 } 8693 var index = objLength; 8694 while (index--) { 8695 var key = objProps[index]; 8696 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { 8697 return false; 8698 } 8699 } 8700 var stacked = stack.get(object); 8701 if (stacked && stack.get(other)) { 8702 return stacked == other; 8703 } 8704 var result = true; 8705 stack.set(object, other); 8706 stack.set(other, object); 8707 var skipCtor = isPartial; 8708 while (++index < objLength) { 8709 key = objProps[index]; 8710 var objValue = object[key], othValue = other[key]; 8711 if (customizer) { 8712 var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); 8713 } 8714 if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack) : compared)) { 8715 result = false; 8716 break; 8717 } 8718 skipCtor || (skipCtor = key == "constructor"); 8719 } 8720 if (result && !skipCtor) { 8721 var objCtor = object.constructor, othCtor = other.constructor; 8722 if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { 8723 result = false; 8724 } 8725 } 8726 stack["delete"](object); 8727 stack["delete"](other); 8728 return result; 8729 } 8730 function getMapData(map, key) { 8731 var data = map.__data__; 8732 return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; 8733 } 8734 function getMatchData(object) { 8735 var result = keys(object), length = result.length; 8736 while (length--) { 8737 var key = result[length], value = object[key]; 8738 result[length] = [key, value, isStrictComparable(value)]; 8739 } 8740 return result; 8741 } 8742 function getNative(object, key) { 8743 var value = getValue(object, key); 8744 return baseIsNative(value) ? value : void 0; 8745 } 8746 var getTag = baseGetTag; 8747 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) { 8748 getTag = function(value) { 8749 var result = objectToString.call(value), Ctor = result == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : void 0; 8750 if (ctorString) { 8751 switch (ctorString) { 8752 case dataViewCtorString: 8753 return dataViewTag; 8754 case mapCtorString: 8755 return mapTag; 8756 case promiseCtorString: 8757 return promiseTag; 8758 case setCtorString: 8759 return setTag; 8760 case weakMapCtorString: 8761 return weakMapTag; 8762 } 8763 } 8764 return result; 8765 }; 8766 } 8767 function hasPath(object, path, hasFunc) { 8768 path = isKey(path, object) ? [path] : castPath(path); 8769 var result, index = -1, length = path.length; 8770 while (++index < length) { 8771 var key = toKey(path[index]); 8772 if (!(result = object != null && hasFunc(object, key))) { 8773 break; 8774 } 8775 object = object[key]; 8776 } 8777 if (result) { 8778 return result; 8779 } 8780 var length = object ? object.length : 0; 8781 return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); 8782 } 8783 function isIndex(value, length) { 8784 length = length == null ? MAX_SAFE_INTEGER : length; 8785 return !!length && (typeof value == "number" || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); 8786 } 8787 function isKey(value, object) { 8788 if (isArray(value)) { 8789 return false; 8790 } 8791 var type = typeof value; 8792 if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) { 8793 return true; 8794 } 8795 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); 8796 } 8797 function isKeyable(value) { 8798 var type = typeof value; 8799 return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; 8800 } 8801 function isMasked(func) { 8802 return !!maskSrcKey && maskSrcKey in func; 8803 } 8804 function isPrototype(value) { 8805 var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; 8806 return value === proto; 8807 } 8808 function isStrictComparable(value) { 8809 return value === value && !isObject2(value); 8810 } 8811 function matchesStrictComparable(key, srcValue) { 8812 return function(object) { 8813 if (object == null) { 8814 return false; 8815 } 8816 return object[key] === srcValue && (srcValue !== void 0 || key in Object(object)); 8817 }; 8818 } 8819 var stringToPath = memoize2(function(string) { 8820 string = toString(string); 8821 var result = []; 8822 if (reLeadingDot.test(string)) { 8823 result.push(""); 8824 } 8825 string.replace(rePropName, function(match, number, quote, string2) { 8826 result.push(quote ? string2.replace(reEscapeChar, "$1") : number || match); 8827 }); 8828 return result; 8829 }); 8830 function toKey(value) { 8831 if (typeof value == "string" || isSymbol(value)) { 8832 return value; 8833 } 8834 var result = value + ""; 8835 return result == "0" && 1 / value == -INFINITY ? "-0" : result; 8836 } 8837 function toSource(func) { 8838 if (func != null) { 8839 try { 8840 return funcToString.call(func); 8841 } catch (e) { 8842 } 8843 try { 8844 return func + ""; 8845 } catch (e) { 8846 } 8847 } 8848 return ""; 8849 } 8850 var groupBy2 = createAggregator(function(result, value, key) { 8851 if (hasOwnProperty.call(result, key)) { 8852 result[key].push(value); 8853 } else { 8854 result[key] = [value]; 8855 } 8856 }); 8857 function memoize2(func, resolver) { 8858 if (typeof func != "function" || resolver && typeof resolver != "function") { 8859 throw new TypeError(FUNC_ERROR_TEXT); 8860 } 8861 var memoized = function() { 8862 var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; 8863 if (cache.has(key)) { 8864 return cache.get(key); 8865 } 8866 var result = func.apply(this, args); 8867 memoized.cache = cache.set(key, result); 8868 return result; 8869 }; 8870 memoized.cache = new (memoize2.Cache || MapCache)(); 8871 return memoized; 8872 } 8873 memoize2.Cache = MapCache; 8874 function eq(value, other) { 8875 return value === other || value !== value && other !== other; 8876 } 8877 function isArguments(value) { 8878 return isArrayLikeObject(value) && hasOwnProperty.call(value, "callee") && (!propertyIsEnumerable.call(value, "callee") || objectToString.call(value) == argsTag); 8879 } 8880 var isArray = Array.isArray; 8881 function isArrayLike2(value) { 8882 return value != null && isLength(value.length) && !isFunction(value); 8883 } 8884 function isArrayLikeObject(value) { 8885 return isObjectLike(value) && isArrayLike2(value); 8886 } 8887 function isFunction(value) { 8888 var tag = isObject2(value) ? objectToString.call(value) : ""; 8889 return tag == funcTag || tag == genTag; 8890 } 8891 function isLength(value) { 8892 return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; 8893 } 8894 function isObject2(value) { 8895 var type = typeof value; 8896 return !!value && (type == "object" || type == "function"); 8897 } 8898 function isObjectLike(value) { 8899 return !!value && typeof value == "object"; 8900 } 8901 function isSymbol(value) { 8902 return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag; 8903 } 8904 var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; 8905 function toString(value) { 8906 return value == null ? "" : baseToString(value); 8907 } 8908 function get(object, path, defaultValue) { 8909 var result = object == null ? void 0 : baseGet(object, path); 8910 return result === void 0 ? defaultValue : result; 8911 } 8912 function hasIn(object, path) { 8913 return object != null && hasPath(object, path, baseHasIn); 8914 } 8915 function keys(object) { 8916 return isArrayLike2(object) ? arrayLikeKeys(object) : baseKeys(object); 8917 } 8918 function identity(value) { 8919 return value; 8920 } 8921 function property(path) { 8922 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); 8923 } 8924 module.exports = groupBy2; 8925 } 8926 }); 8927 8928
vendor: 27,968 bytes, lines 8928-9629
8928// ../../../node_modules/lodash.isequal/index.js 8929 var require_lodash2 = __commonJS({ 8930 "../../../node_modules/lodash.isequal/index.js"(exports, module) { 8931 var LARGE_ARRAY_SIZE = 200; 8932 var HASH_UNDEFINED = "__lodash_hash_undefined__"; 8933 var COMPARE_PARTIAL_FLAG = 1; 8934 var COMPARE_UNORDERED_FLAG = 2; 8935 var MAX_SAFE_INTEGER = 9007199254740991; 8936 var argsTag = "[object Arguments]"; 8937 var arrayTag = "[object Array]"; 8938 var asyncTag = "[object AsyncFunction]"; 8939 var boolTag = "[object Boolean]"; 8940 var dateTag = "[object Date]"; 8941 var errorTag = "[object Error]"; 8942 var funcTag = "[object Function]"; 8943 var genTag = "[object GeneratorFunction]"; 8944 var mapTag = "[object Map]"; 8945 var numberTag = "[object Number]"; 8946 var nullTag = "[object Null]"; 8947 var objectTag = "[object Object]"; 8948 var promiseTag = "[object Promise]"; 8949 var proxyTag = "[object Proxy]"; 8950 var regexpTag = "[object RegExp]"; 8951 var setTag = "[object Set]"; 8952 var stringTag = "[object String]"; 8953 var symbolTag = "[object Symbol]"; 8954 var undefinedTag = "[object Undefined]"; 8955 var weakMapTag = "[object WeakMap]"; 8956 var arrayBufferTag = "[object ArrayBuffer]"; 8957 var dataViewTag = "[object DataView]"; 8958 var float32Tag = "[object Float32Array]"; 8959 var float64Tag = "[object Float64Array]"; 8960 var int8Tag = "[object Int8Array]"; 8961 var int16Tag = "[object Int16Array]"; 8962 var int32Tag = "[object Int32Array]"; 8963 var uint8Tag = "[object Uint8Array]"; 8964 var uint8ClampedTag = "[object Uint8ClampedArray]"; 8965 var uint16Tag = "[object Uint16Array]"; 8966 var uint32Tag = "[object Uint32Array]"; 8967 var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; 8968 var reIsHostCtor = /^\[object .+?Constructor\]$/; 8969 var reIsUint = /^(?:0|[1-9]\d*)$/; 8970 var typedArrayTags = {}; 8971 typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; 8972 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; 8973 var freeGlobal = typeof global == "object" && global && global.Object === Object && global; 8974 var freeSelf = typeof self == "object" && self && self.Object === Object && self; 8975 var root = freeGlobal || freeSelf || Function("return this")(); 8976 var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; 8977 var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; 8978 var moduleExports = freeModule && freeModule.exports === freeExports; 8979 var freeProcess = moduleExports && freeGlobal.process; 8980 var nodeUtil = function() { 8981 try { 8982 return freeProcess && freeProcess.binding && freeProcess.binding("util"); 8983 } catch (e) { 8984 } 8985 }(); 8986 var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; 8987 function arrayFilter(array, predicate) { 8988 var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; 8989 while (++index < length) { 8990 var value = array[index]; 8991 if (predicate(value, index, array)) { 8992 result[resIndex++] = value; 8993 } 8994 } 8995 return result; 8996 } 8997 function arrayPush(array, values) { 8998 var index = -1, length = values.length, offset = array.length; 8999 while (++index < length) { 9000 array[offset + index] = values[index]; 9001 } 9002 return array; 9003 } 9004 function arraySome(array, predicate) { 9005 var index = -1, length = array == null ? 0 : array.length; 9006 while (++index < length) { 9007 if (predicate(array[index], index, array)) { 9008 return true; 9009 } 9010 } 9011 return false; 9012 } 9013 function baseTimes(n, iteratee) { 9014 var index = -1, result = Array(n); 9015 while (++index < n) { 9016 result[index] = iteratee(index); 9017 } 9018 return result; 9019 } 9020 function baseUnary(func) { 9021 return function(value) { 9022 return func(value); 9023 }; 9024 } 9025 function cacheHas(cache, key) { 9026 return cache.has(key); 9027 } 9028 function getValue(object, key) { 9029 return object == null ? void 0 : object[key]; 9030 } 9031 function mapToArray(map) { 9032 var index = -1, result = Array(map.size); 9033 map.forEach(function(value, key) { 9034 result[++index] = [key, value]; 9035 }); 9036 return result; 9037 } 9038 function overArg(func, transform) { 9039 return function(arg) { 9040 return func(transform(arg)); 9041 }; 9042 } 9043 function setToArray(set) { 9044 var index = -1, result = Array(set.size); 9045 set.forEach(function(value) { 9046 result[++index] = value; 9047 }); 9048 return result; 9049 } 9050 var arrayProto = Array.prototype; 9051 var funcProto = Function.prototype; 9052 var objectProto = Object.prototype; 9053 var coreJsData = root["__core-js_shared__"]; 9054 var funcToString = funcProto.toString; 9055 var hasOwnProperty = objectProto.hasOwnProperty; 9056 var maskSrcKey = function() { 9057 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); 9058 return uid ? "Symbol(src)_1." + uid : ""; 9059 }(); 9060 var nativeObjectToString = objectProto.toString; 9061 var reIsNative = RegExp( 9062 "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" 9063 ); 9064 var Buffer2 = moduleExports ? root.Buffer : void 0; 9065 var Symbol2 = root.Symbol; 9066 var Uint8Array2 = root.Uint8Array; 9067 var propertyIsEnumerable = objectProto.propertyIsEnumerable; 9068 var splice = arrayProto.splice; 9069 var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0; 9070 var nativeGetSymbols = Object.getOwnPropertySymbols; 9071 var nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0; 9072 var nativeKeys = overArg(Object.keys, Object); 9073 var DataView = getNative(root, "DataView"); 9074 var Map2 = getNative(root, "Map"); 9075 var Promise2 = getNative(root, "Promise"); 9076 var Set2 = getNative(root, "Set"); 9077 var WeakMap2 = getNative(root, "WeakMap"); 9078 var nativeCreate = getNative(Object, "create"); 9079 var dataViewCtorString = toSource(DataView); 9080 var mapCtorString = toSource(Map2); 9081 var promiseCtorString = toSource(Promise2); 9082 var setCtorString = toSource(Set2); 9083 var weakMapCtorString = toSource(WeakMap2); 9084 var symbolProto = Symbol2 ? Symbol2.prototype : void 0; 9085 var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; 9086 function Hash(entries) { 9087 var index = -1, length = entries == null ? 0 : entries.length; 9088 this.clear(); 9089 while (++index < length) { 9090 var entry = entries[index]; 9091 this.set(entry[0], entry[1]); 9092 } 9093 } 9094 function hashClear() { 9095 this.__data__ = nativeCreate ? nativeCreate(null) : {}; 9096 this.size = 0; 9097 } 9098 function hashDelete(key) { 9099 var result = this.has(key) && delete this.__data__[key]; 9100 this.size -= result ? 1 : 0; 9101 return result; 9102 } 9103 function hashGet(key) { 9104 var data = this.__data__; 9105 if (nativeCreate) { 9106 var result = data[key]; 9107 return result === HASH_UNDEFINED ? void 0 : result; 9108 } 9109 return hasOwnProperty.call(data, key) ? data[key] : void 0; 9110 } 9111 function hashHas(key) { 9112 var data = this.__data__; 9113 return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key); 9114 } 9115 function hashSet(key, value) { 9116 var data = this.__data__; 9117 this.size += this.has(key) ? 0 : 1; 9118 data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value; 9119 return this; 9120 } 9121 Hash.prototype.clear = hashClear; 9122 Hash.prototype["delete"] = hashDelete; 9123 Hash.prototype.get = hashGet; 9124 Hash.prototype.has = hashHas; 9125 Hash.prototype.set = hashSet; 9126 function ListCache(entries) { 9127 var index = -1, length = entries == null ? 0 : entries.length; 9128 this.clear(); 9129 while (++index < length) { 9130 var entry = entries[index]; 9131 this.set(entry[0], entry[1]); 9132 } 9133 } 9134 function listCacheClear() { 9135 this.__data__ = []; 9136 this.size = 0; 9137 } 9138 function listCacheDelete(key) { 9139 var data = this.__data__, index = assocIndexOf(data, key); 9140 if (index < 0) { 9141 return false; 9142 } 9143 var lastIndex = data.length - 1; 9144 if (index == lastIndex) { 9145 data.pop(); 9146 } else { 9147 splice.call(data, index, 1); 9148 } 9149 --this.size; 9150 return true; 9151 } 9152 function listCacheGet(key) { 9153 var data = this.__data__, index = assocIndexOf(data, key); 9154 return index < 0 ? void 0 : data[index][1]; 9155 } 9156 function listCacheHas(key) { 9157 return assocIndexOf(this.__data__, key) > -1; 9158 } 9159 function listCacheSet(key, value) { 9160 var data = this.__data__, index = assocIndexOf(data, key); 9161 if (index < 0) { 9162 ++this.size; 9163 data.push([key, value]); 9164 } else { 9165 data[index][1] = value; 9166 } 9167 return this; 9168 } 9169 ListCache.prototype.clear = listCacheClear; 9170 ListCache.prototype["delete"] = listCacheDelete; 9171 ListCache.prototype.get = listCacheGet; 9172 ListCache.prototype.has = listCacheHas; 9173 ListCache.prototype.set = listCacheSet; 9174 function MapCache(entries) { 9175 var index = -1, length = entries == null ? 0 : entries.length; 9176 this.clear(); 9177 while (++index < length) { 9178 var entry = entries[index]; 9179 this.set(entry[0], entry[1]); 9180 } 9181 } 9182 function mapCacheClear() { 9183 this.size = 0; 9184 this.__data__ = { 9185 "hash": new Hash(), 9186 "map": new (Map2 || ListCache)(), 9187 "string": new Hash() 9188 }; 9189 } 9190 function mapCacheDelete(key) { 9191 var result = getMapData(this, key)["delete"](key); 9192 this.size -= result ? 1 : 0; 9193 return result; 9194 } 9195 function mapCacheGet(key) { 9196 return getMapData(this, key).get(key); 9197 } 9198 function mapCacheHas(key) { 9199 return getMapData(this, key).has(key); 9200 } 9201 function mapCacheSet(key, value) { 9202 var data = getMapData(this, key), size = data.size; 9203 data.set(key, value); 9204 this.size += data.size == size ? 0 : 1; 9205 return this; 9206 } 9207 MapCache.prototype.clear = mapCacheClear; 9208 MapCache.prototype["delete"] = mapCacheDelete; 9209 MapCache.prototype.get = mapCacheGet; 9210 MapCache.prototype.has = mapCacheHas; 9211 MapCache.prototype.set = mapCacheSet; 9212 function SetCache(values) { 9213 var index = -1, length = values == null ? 0 : values.length; 9214 this.__data__ = new MapCache(); 9215 while (++index < length) { 9216 this.add(values[index]); 9217 } 9218 } 9219 function setCacheAdd(value) { 9220 this.__data__.set(value, HASH_UNDEFINED); 9221 return this; 9222 } 9223 function setCacheHas(value) { 9224 return this.__data__.has(value); 9225 } 9226 SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; 9227 SetCache.prototype.has = setCacheHas; 9228 function Stack(entries) { 9229 var data = this.__data__ = new ListCache(entries); 9230 this.size = data.size; 9231 } 9232 function stackClear() { 9233 this.__data__ = new ListCache(); 9234 this.size = 0; 9235 } 9236 function stackDelete(key) { 9237 var data = this.__data__, result = data["delete"](key); 9238 this.size = data.size; 9239 return result; 9240 } 9241 function stackGet(key) { 9242 return this.__data__.get(key); 9243 } 9244 function stackHas(key) { 9245 return this.__data__.has(key); 9246 } 9247 function stackSet(key, value) { 9248 var data = this.__data__; 9249 if (data instanceof ListCache) { 9250 var pairs = data.__data__; 9251 if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { 9252 pairs.push([key, value]); 9253 this.size = ++data.size; 9254 return this; 9255 } 9256 data = this.__data__ = new MapCache(pairs); 9257 } 9258 data.set(key, value); 9259 this.size = data.size; 9260 return this; 9261 } 9262 Stack.prototype.clear = stackClear; 9263 Stack.prototype["delete"] = stackDelete; 9264 Stack.prototype.get = stackGet; 9265 Stack.prototype.has = stackHas; 9266 Stack.prototype.set = stackSet; 9267 function arrayLikeKeys(value, inherited) { 9268 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; 9269 for (var key in value) { 9270 if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode. 9271 (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers. 9272 isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays. 9273 isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties. 9274 isIndex(key, length)))) { 9275 result.push(key); 9276 } 9277 } 9278 return result; 9279 } 9280 function assocIndexOf(array, key) { 9281 var length = array.length; 9282 while (length--) { 9283 if (eq(array[length][0], key)) { 9284 return length; 9285 } 9286 } 9287 return -1; 9288 } 9289 function baseGetAllKeys(object, keysFunc, symbolsFunc) { 9290 var result = keysFunc(object); 9291 return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); 9292 } 9293 function baseGetTag(value) { 9294 if (value == null) { 9295 return value === void 0 ? undefinedTag : nullTag; 9296 } 9297 return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); 9298 } 9299 function baseIsArguments(value) { 9300 return isObjectLike(value) && baseGetTag(value) == argsTag; 9301 } 9302 function baseIsEqual(value, other, bitmask, customizer, stack) { 9303 if (value === other) { 9304 return true; 9305 } 9306 if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { 9307 return value !== value && other !== other; 9308 } 9309 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); 9310 } 9311 function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { 9312 var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); 9313 objTag = objTag == argsTag ? objectTag : objTag; 9314 othTag = othTag == argsTag ? objectTag : othTag; 9315 var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; 9316 if (isSameTag && isBuffer(object)) { 9317 if (!isBuffer(other)) { 9318 return false; 9319 } 9320 objIsArr = true; 9321 objIsObj = false; 9322 } 9323 if (isSameTag && !objIsObj) { 9324 stack || (stack = new Stack()); 9325 return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); 9326 } 9327 if (!(bitmask & COMPARE_PARTIAL_FLAG)) { 9328 var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); 9329 if (objIsWrapped || othIsWrapped) { 9330 var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; 9331 stack || (stack = new Stack()); 9332 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); 9333 } 9334 } 9335 if (!isSameTag) { 9336 return false; 9337 } 9338 stack || (stack = new Stack()); 9339 return equalObjects(object, other, bitmask, customizer, equalFunc, stack); 9340 } 9341 function baseIsNative(value) { 9342 if (!isObject2(value) || isMasked(value)) { 9343 return false; 9344 } 9345 var pattern = isFunction(value) ? reIsNative : reIsHostCtor; 9346 return pattern.test(toSource(value)); 9347 } 9348 function baseIsTypedArray(value) { 9349 return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; 9350 } 9351 function baseKeys(object) { 9352 if (!isPrototype(object)) { 9353 return nativeKeys(object); 9354 } 9355 var result = []; 9356 for (var key in Object(object)) { 9357 if (hasOwnProperty.call(object, key) && key != "constructor") { 9358 result.push(key); 9359 } 9360 } 9361 return result; 9362 } 9363 function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { 9364 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; 9365 if (arrLength != othLength && !(isPartial && othLength > arrLength)) { 9366 return false; 9367 } 9368 var stacked = stack.get(array); 9369 if (stacked && stack.get(other)) { 9370 return stacked == other; 9371 } 9372 var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : void 0; 9373 stack.set(array, other); 9374 stack.set(other, array); 9375 while (++index < arrLength) { 9376 var arrValue = array[index], othValue = other[index]; 9377 if (customizer) { 9378 var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); 9379 } 9380 if (compared !== void 0) { 9381 if (compared) { 9382 continue; 9383 } 9384 result = false; 9385 break; 9386 } 9387 if (seen) { 9388 if (!arraySome(other, function(othValue2, othIndex) { 9389 if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { 9390 return seen.push(othIndex); 9391 } 9392 })) { 9393 result = false; 9394 break; 9395 } 9396 } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { 9397 result = false; 9398 break; 9399 } 9400 } 9401 stack["delete"](array); 9402 stack["delete"](other); 9403 return result; 9404 } 9405 function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { 9406 switch (tag) { 9407 case dataViewTag: 9408 if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { 9409 return false; 9410 } 9411 object = object.buffer; 9412 other = other.buffer; 9413 case arrayBufferTag: 9414 if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) { 9415 return false; 9416 } 9417 return true; 9418 case boolTag: 9419 case dateTag: 9420 case numberTag: 9421 return eq(+object, +other); 9422 case errorTag: 9423 return object.name == other.name && object.message == other.message; 9424 case regexpTag: 9425 case stringTag: 9426 return object == other + ""; 9427 case mapTag: 9428 var convert = mapToArray; 9429 case setTag: 9430 var isPartial = bitmask & COMPARE_PARTIAL_FLAG; 9431 convert || (convert = setToArray); 9432 if (object.size != other.size && !isPartial) { 9433 return false; 9434 } 9435 var stacked = stack.get(object); 9436 if (stacked) { 9437 return stacked == other; 9438 } 9439 bitmask |= COMPARE_UNORDERED_FLAG; 9440 stack.set(object, other); 9441 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); 9442 stack["delete"](object); 9443 return result; 9444 case symbolTag: 9445 if (symbolValueOf) { 9446 return symbolValueOf.call(object) == symbolValueOf.call(other); 9447 } 9448 } 9449 return false; 9450 } 9451 function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { 9452 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; 9453 if (objLength != othLength && !isPartial) { 9454 return false; 9455 } 9456 var index = objLength; 9457 while (index--) { 9458 var key = objProps[index]; 9459 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { 9460 return false; 9461 } 9462 } 9463 var stacked = stack.get(object); 9464 if (stacked && stack.get(other)) { 9465 return stacked == other; 9466 } 9467 var result = true; 9468 stack.set(object, other); 9469 stack.set(other, object); 9470 var skipCtor = isPartial; 9471 while (++index < objLength) { 9472 key = objProps[index]; 9473 var objValue = object[key], othValue = other[key]; 9474 if (customizer) { 9475 var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); 9476 } 9477 if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { 9478 result = false; 9479 break; 9480 } 9481 skipCtor || (skipCtor = key == "constructor"); 9482 } 9483 if (result && !skipCtor) { 9484 var objCtor = object.constructor, othCtor = other.constructor; 9485 if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { 9486 result = false; 9487 } 9488 } 9489 stack["delete"](object); 9490 stack["delete"](other); 9491 return result; 9492 } 9493 function getAllKeys(object) { 9494 return baseGetAllKeys(object, keys, getSymbols); 9495 } 9496 function getMapData(map, key) { 9497 var data = map.__data__; 9498 return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; 9499 } 9500 function getNative(object, key) { 9501 var value = getValue(object, key); 9502 return baseIsNative(value) ? value : void 0; 9503 } 9504 function getRawTag(value) { 9505 var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; 9506 try { 9507 value[symToStringTag] = void 0; 9508 var unmasked = true; 9509 } catch (e) { 9510 } 9511 var result = nativeObjectToString.call(value); 9512 if (unmasked) { 9513 if (isOwn) { 9514 value[symToStringTag] = tag; 9515 } else { 9516 delete value[symToStringTag]; 9517 } 9518 } 9519 return result; 9520 } 9521 var getSymbols = !nativeGetSymbols ? stubArray : function(object) { 9522 if (object == null) { 9523 return []; 9524 } 9525 object = Object(object); 9526 return arrayFilter(nativeGetSymbols(object), function(symbol) { 9527 return propertyIsEnumerable.call(object, symbol); 9528 }); 9529 }; 9530 var getTag = baseGetTag; 9531 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) { 9532 getTag = function(value) { 9533 var result = baseGetTag(value), Ctor = result == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : ""; 9534 if (ctorString) { 9535 switch (ctorString) { 9536 case dataViewCtorString: 9537 return dataViewTag; 9538 case mapCtorString: 9539 return mapTag; 9540 case promiseCtorString: 9541 return promiseTag; 9542 case setCtorString: 9543 return setTag; 9544 case weakMapCtorString: 9545 return weakMapTag; 9546 } 9547 } 9548 return result; 9549 }; 9550 } 9551 function isIndex(value, length) { 9552 length = length == null ? MAX_SAFE_INTEGER : length; 9553 return !!length && (typeof value == "number" || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); 9554 } 9555 function isKeyable(value) { 9556 var type = typeof value; 9557 return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; 9558 } 9559 function isMasked(func) { 9560 return !!maskSrcKey && maskSrcKey in func; 9561 } 9562 function isPrototype(value) { 9563 var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; 9564 return value === proto; 9565 } 9566 function objectToString(value) { 9567 return nativeObjectToString.call(value); 9568 } 9569 function toSource(func) { 9570 if (func != null) { 9571 try { 9572 return funcToString.call(func); 9573 } catch (e) { 9574 } 9575 try { 9576 return func + ""; 9577 } catch (e) { 9578 } 9579 } 9580 return ""; 9581 } 9582 function eq(value, other) { 9583 return value === other || value !== value && other !== other; 9584 } 9585 var isArguments = baseIsArguments(/* @__PURE__ */ function() { 9586 return arguments; 9587 }()) ? baseIsArguments : function(value) { 9588 return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); 9589 }; 9590 var isArray = Array.isArray; 9591 function isArrayLike2(value) { 9592 return value != null && isLength(value.length) && !isFunction(value); 9593 } 9594 var isBuffer = nativeIsBuffer || stubFalse; 9595 function isEqual2(value, other) { 9596 return baseIsEqual(value, other); 9597 } 9598 function isFunction(value) { 9599 if (!isObject2(value)) { 9600 return false; 9601 } 9602 var tag = baseGetTag(value); 9603 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; 9604 } 9605 function isLength(value) { 9606 return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; 9607 } 9608 function isObject2(value) { 9609 var type = typeof value; 9610 return value != null && (type == "object" || type == "function"); 9611 } 9612 function isObjectLike(value) { 9613 return value != null && typeof value == "object"; 9614 } 9615 var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; 9616 function keys(object) { 9617 return isArrayLike2(object) ? arrayLikeKeys(object) : baseKeys(object); 9618 } 9619 function stubArray() { 9620 return []; 9621 } 9622 function stubFalse() { 9623 return false; 9624 } 9625 module.exports = isEqual2; 9626 } 9627 }); 9628 9629
9629// src/main/resources/META-INF/resources/liferay/global.es.js 9630 var import_lodash = __toESM(require_lodash()); 9631 var import_lodash2 = __toESM(require_lodash2()); 9632 9633
9633// src/main/resources/META-INF/resources/utils/client_extensions/loadModule.ts 9634 async function loadModule(importDeclarationOrAMDModule) { 9635 if (importDeclarationOrAMDModule.includes(" from ")) { 9636 const [moduleName, symbolName] = getModuleAndSymbolNames( 9637 importDeclarationOrAMDModule 9638 ); 9639 const module = await import( 9640 /* webpackIgnore: true */ 9641 moduleName 9642 ); 9643 return module[symbolName]; 9644 } else { 9645 return new Promise((resolve, reject) => { 9646 Liferay.Loader.require( 9647 importDeclarationOrAMDModule, 9648 (jsModule) => resolve(jsModule.default || jsModule), 9649 (error) => reject(error) 9650 ); 9651 }); 9652 } 9653 } 9654 function getModuleAndSymbolNames(importDeclaration) { 9655 const parts = importDeclaration.split(" from "); 9656 const moduleName = parts[1].trim(); 9657 let symbolName = parts[0].trim(); 9658 if (symbolName.startsWith("{") && symbolName.endsWith("}")) { 9659 symbolName = symbolName.substring(1, symbolName.length - 1).trim(); 9660 } 9661 return [moduleName, symbolName]; 9662 } 9663 9664
9664// src/main/resources/META-INF/resources/utils/client_extensions/loadClientExtensions.ts 9665 function loadClientExtensions(clientExtensionDefinitionsHandlers) { 9666 for (const { 9667 clientExtensionDefinitions, 9668 onLoad 9669 } of clientExtensionDefinitionsHandlers) { 9670 if (!clientExtensionDefinitions.length) { 9671 continue; 9672 } 9673 const promises = clientExtensionDefinitions.map( 9674 ({ context, importDeclaration }) => { 9675 return loadModule(importDeclaration).then((binding) => ({ 9676 binding, 9677 context 9678 })).catch((error) => ({ 9679 context, 9680 error 9681 })); 9682 } 9683 ); 9684 Promise.all(promises).then(onLoad); 9685 } 9686 } 9687 9688
9688// src/main/resources/META-INF/resources/utils/client_extensions/loadEditorClientExtensions.ts 9689 function loadEditorClientExtensions({ 9690 config, 9691 onLoad 9692 }) { 9693 loadClientExtensions([ 9694 { 9695 clientExtensionDefinitions: config.editorTransformerURLs.map( 9696 (url) => ({ 9697 importDeclaration: `default from ${url}` 9698 }) 9699 ), 9700 onLoad: (bindingContexts) => { 9701 let transformedConfig = JSON.parse(JSON.stringify(config)); 9702 bindingContexts.forEach( 9703 ({ binding: editorTransformer, error }) => { 9704 if (error) { 9705 console.error(error); 9706 } 9707 const editorConfigTransformer = editorTransformer?.editorConfigTransformer; 9708 if (editorConfigTransformer) { 9709 transformedConfig = editorConfigTransformer(transformedConfig); 9710 } 9711 } 9712 ); 9713 onLoad({ transformedConfig }); 9714 } 9715 } 9716 ]); 9717 } 9718 9719
9719// src/main/resources/META-INF/resources/liferay/util/is_object.js 9720 function isObject(val) { 9721 const type = typeof val; 9722 return type === "object" && val !== null || type === "function"; 9723 } 9724 9725
9725// src/main/resources/META-INF/resources/liferay/util/form/object_to_form_data.es.js 9726 function objectToFormData(object = {}, formData = new FormData(), namespace) { 9727 Object.entries(object).forEach(([key, value]) => { 9728 const formKey = namespace ? `${namespace}[${key}]` : key; 9729 if (Array.isArray(value)) { 9730 value.forEach((item) => { 9731 objectToFormData( 9732 { 9733 [formKey]: item 9734 }, 9735 formData 9736 ); 9737 }); 9738 } else if (isObject(value) && !(value instanceof File)) { 9739 objectToFormData(value, formData, formKey); 9740 } else { 9741 formData.append(formKey, value); 9742 } 9743 }); 9744 return formData; 9745 } 9746 9747
9747// src/main/resources/META-INF/resources/liferay/PortletBase.es.js 9748 function toElementHelper(elementOrSelector) { 9749 if (typeof elementOrSelector === "string") { 9750 elementOrSelector = document.querySelector(elementOrSelector); 9751 } 9752 return elementOrSelector; 9753 } 9754 var LifeCycles = class { 9755 get namespace() { 9756 return this._STATE_.namespace; 9757 } 9758 get portletNamespace() { 9759 return this._STATE_.portletNamespace; 9760 } 9761 get rootNode() { 9762 return this._STATE_.rootNode; 9763 } 9764 set portletNamespace(portletNamespace) { 9765 this.rootNode = `#p_p_id${portletNamespace}`; 9766 this._STATE_.portletNamespace = portletNamespace; 9767 } 9768 set namespace(namespace) { 9769 this.rootNode = `#p_p_id${namespace}`; 9770 this._STATE_.namespace = namespace; 9771 } 9772 set rootNode(rootNode) { 9773 if (typeof rootNode === "string") { 9774 rootNode = document.getElementById( 9775 rootNode[0] === "#" ? rootNode.slice(1) : rootNode 9776 ); 9777 } 9778 this._STATE_.rootNode = rootNode; 9779 } 9780 constructor(props) { 9781 this._EVENTS_ = {}; 9782 this._STATE_ = { 9783 namespace: null, 9784 portletNamespace: null, 9785 rootNode: null 9786 }; 9787 const { namespace, portletNamespace, rootNode } = props; 9788 if (namespace) { 9789 this.namespace = namespace; 9790 } 9791 if (portletNamespace) { 9792 this.portletNamespace = portletNamespace; 9793 } 9794 if (rootNode) { 9795 this.rootNode = rootNode; 9796 } 9797 this.created(props); 9798 this.attached(props); 9799 } 9800 dispose() { 9801 this.disposeInternal(); 9802 this.detached(); 9803 this.disposed(); 9804 } 9805 attached() { 9806 } 9807 created() { 9808 } 9809 detached() { 9810 } 9811 disposed() { 9812 } 9813 disposeInternal() { 9814 } 9815 emit(eventName, data) { 9816 const callbacks = this._EVENTS_[eventName]; 9817 if (callbacks && callbacks.length) { 9818 for (let i = 0; i < callbacks.length; i++) { 9819 callbacks[i](data); 9820 } 9821 } 9822 } 9823 on(eventName, callback) { 9824 if (!this._EVENTS_[eventName]) { 9825 this._EVENTS_[eventName] = []; 9826 } 9827 this._EVENTS_[eventName].push(callback); 9828 } 9829 }; 9830 var PortletBase = class extends LifeCycles { 9831 /** 9832 * Returns a Node List containing all the matching element nodes within the 9833 * subtrees of the root object, in tree order. If there are no matching 9834 * nodes, the method returns an empty Node List. 9835 * 9836 * @param {string} selectors A list of one or more CSS relative selectors. 9837 * @param {(string|Element|Document)=} root The root node of the search. If 9838 * not specified, the element search will start in the portlet's 9839 * root node or in the document. 9840 * @return {NodeList<Element>} A list of elements matching the selectors, in 9841 * tree order. 9842 */ 9843 all(selectors, root) { 9844 root = toElementHelper(root) || this.rootNode || document; 9845 return root.querySelectorAll( 9846 this.namespaceSelectors_( 9847 this.portletNamespace || this.namespace, 9848 selectors 9849 ) 9850 ); 9851 } 9852 /** 9853 * Performs an HTTP POST request to the given URL with the given body. 9854 * 9855 * @deprecated As of Athanasius (7.3.x), replaced by `Liferay.Util.fetch`. 9856 * @param {!string} url The URL to send the post request to. 9857 * @param {!Object|!FormData} body The request body. 9858 * @return {Promise} A promise. 9859 */ 9860 fetch(url, body) { 9861 const requestBody = this.getRequestBody_(body); 9862 return fetch(url, { 9863 body: requestBody, 9864 credentials: "include", 9865 method: "POST" 9866 }); 9867 } 9868 /** 9869 * Transforms the given body into a valid <code>FormData</code> element. 9870 * 9871 * @param {!FormData|!HTMLFormElement|!Object} body The original data. 9872 * @return {FormData} The transformed form data. 9873 */ 9874 getRequestBody_(body) { 9875 let requestBody; 9876 if (body instanceof FormData) { 9877 requestBody = body; 9878 } else if (body instanceof HTMLFormElement) { 9879 requestBody = new FormData(body); 9880 } else if (typeof body === "object") { 9881 requestBody = objectToFormData(this.ns(body)); 9882 } else { 9883 requestBody = body; 9884 } 9885 return requestBody; 9886 } 9887 /** 9888 * Namespaces the list of selectors, appending the portlet namespace to the 9889 * selectors of type ID. Selectors of other types remain unaltered. 9890 * 9891 * @param {string} namespace The portlet's namespace. 9892 * @param {string} selectors A list of one or more CSS relative selectors. 9893 * @protected 9894 * @return {string} The namespaced ID selectors. 9895 */ 9896 namespaceSelectors_(namespace, selectors) { 9897 return selectors.replace( 9898 new RegExp(`(#|\\[id=(\\"|\\'))(?!` + namespace + ")", "g"), 9899 "$1" + namespace 9900 ); 9901 } 9902 /** 9903 * Appends the portlet's namespace to the given string or object properties. 9904 * 9905 * @param {!Object|string} obj The object or string to namespace. 9906 * @return {Object|string} An object with its properties namespaced, using 9907 * the portlet namespace or a namespaced string. 9908 */ 9909 ns(object) { 9910 return Liferay.Util.ns(this.portletNamespace || this.namespace, object); 9911 } 9912 /** 9913 * Returns the first matching Element node within the subtrees of the 9914 * root object. If there is no matching Element, the method returns null. 9915 * 9916 * @param {string} selectors A list of one or more CSS relative selectors. 9917 * @param {(string|Element|Document)=} root The root node of the search. If 9918 * not specified, the element search will start in the portlet's 9919 * root node or in the document. 9920 * @return {Element|null} A list of the first element matching the selectors 9921 * or <code>null</code>. 9922 */ 9923 one(selectors, root) { 9924 root = toElementHelper(root) || this.rootNode || document; 9925 return root.querySelector( 9926 this.namespaceSelectors_( 9927 this.portletNamespace || this.namespace, 9928 selectors 9929 ) 9930 ); 9931 } 9932 }; 9933 var PortletBase_es_default = PortletBase; 9934 9935
9935// src/main/resources/META-INF/resources/liferay/delegate/delegate.es.js 9936 var USE_CAPTURE = { 9937 blur: true, 9938 error: true, 9939 focus: true, 9940 invalid: true, 9941 load: true, 9942 scroll: true 9943 }; 9944 function isDisabled(node) { 9945 return !!(node.disabled || node.closest("[disabled]")); 9946 } 9947 function delegate(element, eventName, selector, callback) { 9948 const eventHandler = (event) => { 9949 const { defaultPrevented, target } = event; 9950 if (defaultPrevented || eventName === "click" && isDisabled(target)) { 9951 return; 9952 } 9953 const delegateTarget = target.closest(selector); 9954 if (delegateTarget) { 9955 event.delegateTarget = delegateTarget; 9956 callback(event); 9957 } 9958 }; 9959 element.addEventListener(eventName, eventHandler, !!USE_CAPTURE[eventName]); 9960 return { 9961 dispose() { 9962 element.removeEventListener(eventName, eventHandler); 9963 } 9964 }; 9965 } 9966 var delegate_es_default = delegate; 9967 9968
9968// src/main/resources/META-INF/resources/liferay/DynamicInlineScroll.es.js 9969 var DynamicInlineScroll = class extends PortletBase_es_default { 9970 /** 9971 * @inheritDoc 9972 */ 9973 attached() { 9974 let { rootNode } = this; 9975 rootNode = rootNode || document.body; 9976 this.inlineScrollEventHandler_ = delegate_es_default( 9977 rootNode, 9978 "scroll", 9979 "ul.pagination ul.inline-scroller", 9980 this.onScroll_.bind(this) 9981 ); 9982 } 9983 /** 9984 * @inheritDoc 9985 */ 9986 created(props) { 9987 this.cur = Number(props.cur); 9988 this.curParam = props.curParam; 9989 this.forcePost = props.forcePost; 9990 this.formName = props.formName; 9991 this.initialPages = Number(props.initialPages); 9992 this.jsCall = props.jsCall; 9993 this.namespace = props.namespace; 9994 this.pages = Number(props.pages); 9995 this.randomNamespace = props.randomNamespace; 9996 this.url = props.url; 9997 this.urlAnchor = props.urlAnchor; 9998 this.handleListItemClick_ = this.handleListItemClick_.bind(this); 9999 } 10000 /** 10001 * @inheritDoc 10002 */ 10003 detached() { 10004 super.detached(); 10005 this.inlineScrollEventHandler_.dispose(); 10006 const listItem = document.createElement("li"); 10007 listItem.removeEventListener("click", this.handleListItemClick_); 10008 } 10009 /** 10010 * Dynamically adds list item elements to the dropdown menu. 10011 * 10012 * @param {element} listElement The list element's DOM node. 10013 * @param {number} pageIndex The Index of the page with an inline-scroller. 10014 * @protected 10015 */ 10016 addListItem_(listElement, pageIndex) { 10017 const listItem = document.createElement("li"); 10018 listItem.innerHTML = `<a class="dropdown-item" href="${this.getHREF_( 10019 pageIndex 10020 )}"><span class="sr-only">${'Page'} </span>${pageIndex}</a>`; 10021 pageIndex++; 10022 listElement.appendChild(listItem); 10023 listElement.setAttribute("data-page-index", pageIndex); 10024 listItem.addEventListener("click", this.handleListItemClick_); 10025 } 10026 /** 10027 * Returns the <code>href</code> attribute value for each page. 10028 * 10029 * @param {number} pageIndex The Index of the page. 10030 * @protected 10031 * @return {string} The <code>href</code> value as a string. 10032 */ 10033 getHREF_(pageIndex) { 10034 const { curParam, formName, jsCall, namespace, url, urlAnchor } = this; 10035 let href = `javascript:document.${formName}.${namespace}${curParam}.value = "${pageIndex}; ${jsCall}`; 10036 if (this.url !== null) { 10037 href = `${url}&${namespace}${curParam}=${pageIndex}${urlAnchor}`; 10038 } 10039 return href; 10040 } 10041 /** 10042 * Returns the numerical value of the parameter passed in. 10043 * 10044 * @param {string|!Object} val The string or object to be converted to a number. 10045 * @protected 10046 * @return {number} The parameter's numberical value. 10047 */ 10048 getNumber_(val) { 10049 return Number(val ?? 0); 10050 } 10051 /** 10052 * Handles the click event of the dynmaically added list item, preventing 10053 * the default behavior and submitting the search container form. 10054 * 10055 * @param {Event} event The click event of the dynamically added list item. 10056 * @protected 10057 */ 10058 handleListItemClick_(event) { 10059 if (this.forcePost) { 10060 event.preventDefault(); 10061 const { curParam, namespace, randomNamespace } = this; 10062 const form = document.getElementById( 10063 randomNamespace + namespace + "pageIteratorFm" 10064 ); 10065 form.elements[namespace + curParam].value = event.currentTarget.textContent; 10066 form.submit(); 10067 } 10068 } 10069 /** 10070 * An event triggered when a dropdown menu with an inline-scroller is 10071 * scrolled. This dynamically adds list item elements to the dropdown menu 10072 * as it is scrolled down. 10073 * 10074 * @param {Event} event The scroll event triggered by scrolling a dropdown 10075 * menu with an inline-scroller. 10076 * @protected 10077 */ 10078 onScroll_(event) { 10079 const { cur, initialPages, pages } = this; 10080 const { target } = event; 10081 if (target.nodeName !== "UL") { 10082 return; 10083 } 10084 let pageIndex = this.getNumber_(target.dataset.pageIndex); 10085 let pageIndexMax = this.getNumber_(target.dataset.maxIndex); 10086 if (pageIndex === 0) { 10087 const pageIndexCurrent = this.getNumber_( 10088 target.dataset.currentIndex 10089 ); 10090 if (pageIndexCurrent === 0) { 10091 pageIndex = initialPages; 10092 } else { 10093 pageIndex = pageIndexCurrent + initialPages; 10094 } 10095 } 10096 if (pageIndexMax === 0) { 10097 pageIndexMax = pages; 10098 } 10099 if (cur <= pages && pageIndex < pageIndexMax && target.scrollTop >= target.scrollHeight - 300) { 10100 this.addListItem_(target, pageIndex); 10101 } 10102 } 10103 }; 10104 var DynamicInlineScroll_es_default = DynamicInlineScroll; 10105 10106
10106// src/main/resources/META-INF/resources/liferay/util/html_util.js 10107 var MAP_HTML_CHARS_ESCAPED = { 10108 '"': """, 10109 "&": "&", 10110 "'": "'", 10111 "/": "/", 10112 "<": "<", 10113 ">": ">", 10114 "`": "`" 10115 }; 10116 var MAP_HTML_CHARS_UNESCAPED = {}; 10117 Object.entries(MAP_HTML_CHARS_ESCAPED).forEach(([char, escapedChar]) => { 10118 MAP_HTML_CHARS_UNESCAPED[escapedChar] = char; 10119 }); 10120 var HTML_UNESCAPED_VALUES = Object.keys(MAP_HTML_CHARS_ESCAPED); 10121 var HTML_ESCAPE = new RegExp(`[${HTML_UNESCAPED_VALUES.join("")}]`, "g"); 10122 var HTML_UNESCAPE = /&([^\s;]+);/g; 10123 function escapeHTML(string) { 10124 return string.replace( 10125 HTML_ESCAPE, 10126 (match) => MAP_HTML_CHARS_ESCAPED[match] 10127 ); 10128 } 10129 function unescapeHTML(string) { 10130 return string.replace(HTML_UNESCAPE, (match) => { 10131 return new DOMParser().parseFromString(match, "text/html").documentElement.textContent; 10132 }); 10133 } 10134 10135
10135// src/main/resources/META-INF/resources/liferay/util/toggle_disabled.js 10136 function toggleDisabled(nodes, state) { 10137 if (typeof nodes === "string") { 10138 nodes = document.querySelectorAll(nodes); 10139 } else if (nodes._node) { 10140 nodes = [nodes._node]; 10141 } else if (nodes._nodes) { 10142 nodes = nodes._nodes; 10143 } else if (nodes.nodeType === Node.ELEMENT_NODE) { 10144 nodes = [nodes]; 10145 } 10146 nodes.forEach((node) => { 10147 node.disabled = state; 10148 if (state) { 10149 node.classList.add("disabled"); 10150 } else { 10151 node.classList.remove("disabled"); 10152 } 10153 }); 10154 } 10155 10156
10156// src/main/resources/META-INF/resources/liferay/DynamicSelect.js 10157 function sortByValue(a, b) { 10158 let position = a.indexOf('">'); 10159 const nameA = a.substring(position); 10160 position = b.indexOf('">'); 10161 const nameB = b.substring(position); 10162 if (nameA < nameB) { 10163 return -1; 10164 } else if (nameA > nameB) { 10165 return 1; 10166 } else { 10167 return 0; 10168 } 10169 } 10170 function isArrayLike(value) { 10171 if (Array.isArray(value)) { 10172 return true; 10173 } 10174 return !!(value && typeof value === "object" && typeof value.length === "number" && !value.tagName && !value.scrollTo && !value.document); 10175 } 10176 function toArray(value) { 10177 return isArrayLike(value) ? Array.from(value) : [value]; 10178 } 10179 function updateSelect(array, index, list) { 10180 const options = array[index]; 10181 const select = document.getElementById(options.select); 10182 if (!select) { 10183 return; 10184 } 10185 const selectVal = toArray(options.selectVal); 10186 const selectOptions = []; 10187 if (options.selectNullable !== false) { 10188 selectOptions.push('<option selected value="0"></option>'); 10189 } 10190 list.forEach((item) => { 10191 const key = escapeHTML(item[options.selectId]); 10192 const value = escapeHTML(item[options.selectDesc]); 10193 let selected = ""; 10194 if (selectVal.indexOf(key) > -1) { 10195 selected = 'selected="selected"'; 10196 } 10197 selectOptions.push( 10198 `<option ${selected} value="${key}">${value}</option>` 10199 ); 10200 }); 10201 if (options.selectSort) { 10202 selectOptions.sort(sortByValue); 10203 } 10204 while (select.lastChild) { 10205 select.removeChild(select.lastChild); 10206 } 10207 select.innerHTML = selectOptions.join(""); 10208 if (options.selectDisableOnEmpty) { 10209 toggleDisabled(select, !list.length); 10210 } 10211 } 10212 function callSelectData(array, index) { 10213 if (index + 1 < array.length) { 10214 const currentSelect = document.getElementById(array[index].select); 10215 const nextSelectData = array[index + 1].selectData; 10216 nextSelectData((list) => { 10217 updateSelect(array, index + 1, list); 10218 }, currentSelect && currentSelect.value); 10219 } 10220 } 10221 function process2(array) { 10222 array.forEach((item, index) => { 10223 const id = item.select; 10224 const select = document.getElementById(id); 10225 const selectData = item.selectData; 10226 if (select) { 10227 select.setAttribute("data-componentType", "dynamic_select"); 10228 let prevSelectVal; 10229 if (index > 0) { 10230 prevSelectVal = array[index - 1].selectVal; 10231 } 10232 selectData((list) => { 10233 updateSelect(array, index, list); 10234 }, prevSelectVal); 10235 if (!select.getAttribute("name")) { 10236 select.setAttribute("name", id); 10237 } 10238 select.addEventListener("change", () => { 10239 callSelectData(array, index); 10240 }); 10241 } 10242 }); 10243 } 10244 var DynamicSelect = class { 10245 constructor(array) { 10246 process2(array); 10247 } 10248 }; 10249 10250
10250// src/main/resources/META-INF/resources/liferay/autosize/autosize.es.js 10251 var DEFAULT_APPEND_CONTENT = " "; 10252 var AutoSize = class { 10253 constructor(inputElement) { 10254 __publicField(this, "handleInput", (event) => { 10255 requestAnimationFrame(() => { 10256 this._resizeInput(event.target); 10257 }); 10258 }); 10259 this.inputElement = inputElement; 10260 this.computedStyle = getComputedStyle(this.inputElement); 10261 this.minHeight = parseInt( 10262 this.computedStyle.height.replace("px", ""), 10263 10 10264 ); 10265 this.paddingHeight = parseInt(this.computedStyle.paddingTop.replace("px", ""), 10) + parseInt(this.computedStyle.paddingBottom.replace("px", ""), 10); 10266 this.template = this.createTemplate(this.computedStyle); 10267 document.body.appendChild(this.template); 10268 this.inputElement.addEventListener("input", this.handleInput); 10269 this._resizeInput(this.inputElement); 10270 } 10271 createTemplate(computedStyle) { 10272 const template = document.createElement("pre"); 10273 template.style.clip = "rect(0, 0, 0, 0) !important"; 10274 template.style.left = "0"; 10275 template.style.overflowWrap = "break-word"; 10276 template.style.position = "absolute"; 10277 template.style.top = "0"; 10278 template.style.transform = "scale(0)"; 10279 template.style.whiteSpace = "pre-wrap"; 10280 template.style.wordBreak = "break-word"; 10281 template.style.fontFamily = computedStyle.fontFamily; 10282 template.style.fontSize = computedStyle.fontSize; 10283 template.style.fontStyle = computedStyle.fontStyle; 10284 template.style.fontWeight = computedStyle.fontWeight; 10285 template.style.lineHeight = computedStyle.lineHeight; 10286 template.style.letterSpacing = computedStyle.letterSpacing; 10287 template.style.textTransform = computedStyle.textTransform; 10288 template.style.width = computedStyle.width; 10289 template.textContent = DEFAULT_APPEND_CONTENT; 10290 return template; 10291 } 10292 _resizeInput(inputElement) { 10293 if (this.template.style.width !== this.computedStyle.width) { 10294 this.template.style.width = this.computedStyle.width; 10295 } 10296 this.template.innerHTML = escapeHTML(inputElement.value) + DEFAULT_APPEND_CONTENT; 10297 inputElement.style.height = `${this.template.scrollHeight + this.paddingHeight < this.minHeight ? this.minHeight : this.template.scrollHeight + this.paddingHeight}px`; 10298 } 10299 }; 10300 var autosize_es_default = AutoSize; 10301 10302
10302// src/main/resources/META-INF/resources/liferay/breakpoints.js 10303 var breakpoints_default = { 10304 PHONE: 768, 10305 TABLET: 980 10306 }; 10307 10308
10308// src/main/resources/META-INF/resources/liferay/component.es.js 10309 var componentConfigs = {}; 10310 var componentPromiseWrappers = {}; 10311 var components = {}; 10312 var componentsCache = {}; 10313 var componentsFn = {}; 10314 var DEFAULT_CACHE_VALIDATION_PARAMS = ["p_p_id", "p_p_lifecycle"]; 10315 var DEFAULT_CACHE_VALIDATION_PORTLET_PARAMS = [ 10316 "ddmStructureKey", 10317 "fileEntryTypeId", 10318 "folderId", 10319 "navigation", 10320 "status" 10321 ]; 10322 var LIFERAY_COMPONENT = "liferay.component"; 10323 var _createPromiseWrapper = function(value) { 10324 let promiseWrapper; 10325 if (value) { 10326 promiseWrapper = { 10327 promise: Promise.resolve(value), 10328 resolve() { 10329 } 10330 }; 10331 } else { 10332 let promiseResolve; 10333 const promise = new Promise((resolve) => { 10334 promiseResolve = resolve; 10335 }); 10336 promiseWrapper = { 10337 promise, 10338 resolve: promiseResolve 10339 }; 10340 } 10341 return promiseWrapper; 10342 }; 10343 var _restoreTask = function(state, params, node) { 10344 const cache = state.data; 10345 const componentIds = Object.keys(cache); 10346 componentIds.forEach((componentId) => { 10347 const container = node.querySelector(`#${componentId}`); 10348 if (container) { 10349 container.innerHTML = cache[componentId].html; 10350 } 10351 }); 10352 }; 10353 var _onStartNavigate = function(event) { 10354 const currentUri = new URL(window.location.href); 10355 const uri = new URL(event.path, window.location.href); 10356 const cacheableUri = DEFAULT_CACHE_VALIDATION_PARAMS.every((param) => { 10357 return uri.searchParams.get(param) === currentUri.searchParams.get(param); 10358 }); 10359 if (cacheableUri) { 10360 let componentIds = Object.keys(components); 10361 componentIds = componentIds.filter((componentId) => { 10362 const component2 = components[componentId]; 10363 if (!component2) { 10364 return false; 10365 } 10366 const componentConfig = componentConfigs[componentId]; 10367 const cacheablePortletUri = DEFAULT_CACHE_VALIDATION_PORTLET_PARAMS.every((param) => { 10368 let cacheable = false; 10369 if (componentConfig) { 10370 const namespacedParam = `_${componentConfig.portletId}_${param}`; 10371 cacheable = uri.searchParams.get(namespacedParam) === currentUri.searchParams.get(namespacedParam); 10372 } 10373 return cacheable; 10374 }); 10375 const cacheableComponent = typeof component2.isCacheable === "function" ? component2.isCacheable(uri) : false; 10376 return cacheableComponent && cacheablePortletUri && componentConfig && componentConfig.cacheState && component2.element && component2.getState; 10377 }); 10378 componentsCache = componentIds.reduce((cache, componentId) => { 10379 const component2 = components[componentId]; 10380 const componentConfig = componentConfigs[componentId]; 10381 const componentState = component2.getState(); 10382 const componentCache = componentConfig.cacheState.reduce( 10383 (cache2, stateKey) => { 10384 cache2[stateKey] = componentState[stateKey]; 10385 return cache2; 10386 }, 10387 {} 10388 ); 10389 cache[componentId] = { 10390 html: component2.element.innerHTML, 10391 state: componentCache 10392 }; 10393 return cache; 10394 }, []); 10395 Liferay.DOMTaskRunner.addTask({ 10396 action: _restoreTask, 10397 condition: (state) => state.owner === LIFERAY_COMPONENT 10398 }); 10399 Liferay.DOMTaskRunner.addTaskState({ 10400 data: componentsCache, 10401 owner: LIFERAY_COMPONENT 10402 }); 10403 } else { 10404 componentsCache = {}; 10405 } 10406 }; 10407 var component = function(id, value, componentConfig) { 10408 let retVal; 10409 if (arguments.length === 1) { 10410 let component2 = components[id]; 10411 if (component2 && typeof component2 === "function") { 10412 componentsFn[id] = component2; 10413 component2 = component2(); 10414 components[id] = component2; 10415 } 10416 retVal = component2; 10417 } else { 10418 if (components[id] && value !== null) { 10419 delete componentConfigs[id]; 10420 delete componentPromiseWrappers[id]; 10421 console.warn( 10422 '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.' 10423 ); 10424 } 10425 retVal = components[id] = value; 10426 if (value === null) { 10427 delete componentConfigs[id]; 10428 delete componentPromiseWrappers[id]; 10429 } else { 10430 componentConfigs[id] = componentConfig; 10431 Liferay.fire(id + ":registered"); 10432 const componentPromiseWrapper = componentPromiseWrappers[id]; 10433 if (componentPromiseWrapper) { 10434 componentPromiseWrapper.resolve(value); 10435 } else { 10436 componentPromiseWrappers[id] = _createPromiseWrapper(value); 10437 } 10438 } 10439 } 10440 return retVal; 10441 }; 10442 var componentReady = function() {
10443 let component2; 10444 let componentPromise; 10445 if (arguments.length === 1) { 10446 component2 = arguments[0]; 10447 } else { 10448 component2 = []; 10449 for (let i = 0; i < arguments.length; i++) { 10450 component2[i] = arguments[i]; 10451 } 10452 } 10453 if (Array.isArray(component2)) { 10454 componentPromise = Promise.all( 10455 component2.map((id) => componentReady(id)) 10456 ); 10457 } else { 10458 let componentPromiseWrapper = componentPromiseWrappers[component2]; 10459 if (!componentPromiseWrapper) { 10460 componentPromiseWrappers[component2] = componentPromiseWrapper = _createPromiseWrapper(); 10461 } 10462 componentPromise = componentPromiseWrapper.promise; 10463 } 10464 return componentPromise; 10465 }; 10466 var destroyComponent = function(componentId) { 10467 const component2 = components[componentId]; 10468 if (component2) { 10469 const destroyFn = component2.destroy || component2.dispose; 10470 if (destroyFn) { 10471 destroyFn.call(component2); 10472 } 10473 delete componentConfigs[componentId]; 10474 delete componentPromiseWrappers[componentId]; 10475 delete componentsFn[componentId]; 10476 delete components[componentId]; 10477 } 10478 }; 10479 var destroyComponents = function(filterFn) {
10480 let componentIds = Object.keys(components); 10481 if (filterFn) { 10482 componentIds = componentIds.filter((componentId) => { 10483 return filterFn( 10484 components[componentId], 10485 componentConfigs[componentId] || {} 10486 ); 10487 }); 10488 } 10489 componentIds.forEach(destroyComponent); 10490 }; 10491 var destroyUnfulfilledPromises = function() { 10492 componentPromiseWrappers = {}; 10493 }; 10494 var getComponentCache = function(componentId) { 10495 const componentCache = componentsCache[componentId]; 10496 return componentCache ? componentCache.state : {}; 10497 }; 10498 var initComponentCache = function() { 10499 Liferay.on("startNavigate", _onStartNavigate); 10500 }; 10501 10502
10502// src/main/resources/META-INF/resources/liferay/debounce/debounce.es.js 10503 function debounce(fn, delay) { 10504 return function debounced() { 10505 const args = arguments; 10506 cancelDebounce(debounced); 10507 debounced.id = setTimeout(() => { 10508 fn(...args); 10509 }, delay); 10510 }; 10511 } 10512 function cancelDebounce(debounced) { 10513 clearTimeout(debounced.id); 10514 } 10515 var debounce_es_default = debounce; 10516 10517
10517// src/main/resources/META-INF/resources/liferay/util/get_top.js 10518 var SIMULATION_DEVICE_IFRAME = "simulationDeviceIframe"; 10519 var _topWindow; 10520 function getTop() { 10521 let topWindow = _topWindow; 10522 if (!topWindow) { 10523 let parentWindow = window.parent; 10524 let parentThemeDisplay; 10525 while (parentWindow !== window) { 10526 try { 10527 if (typeof parentWindow.location.href === "undefined") { 10528 break; 10529 } 10530 parentThemeDisplay = parentWindow.themeDisplay; 10531 } catch (error) { 10532 break; 10533 } 10534 if (!parentThemeDisplay || window.name === SIMULATION_DEVICE_IFRAME) { 10535 break; 10536 } else if (!parentThemeDisplay.isStatePopUp() || parentWindow === parentWindow.parent) { 10537 topWindow = parentWindow; 10538 break; 10539 } 10540 parentWindow = parentWindow.parent; 10541 } 10542 if (!topWindow) { 10543 topWindow = window; 10544 } 10545 _topWindow = topWindow; 10546 } 10547 return topWindow; 10548 } 10549 10550
10550// src/main/resources/META-INF/resources/liferay/util/open_window.js 10551 function openWindow(config, callback) { 10552 const topUtil = getTop(); 10553 config.openingWindow = window; 10554 topUtil.Liferay.Util._openWindowProvider(config, callback); 10555 } 10556 10557
10557// src/main/resources/META-INF/resources/liferay/layout_exporter.es.js 10558 function hideLayoutPane(options) { 10559 options = options || {}; 10560 const object = options.obj; 10561 let pane = options.pane; 10562 if (object && object.checked) { 10563 pane = document.querySelector(pane); 10564 if (pane) { 10565 pane.classList.add("hide"); 10566 } 10567 } 10568 } 10569 function getLayoutIcons() { 10570 return { 10571 minus: themeDisplay.getPathThemeImages() + "/arrows/01_minus.png", 10572 plus: themeDisplay.getPathThemeImages() + "/arrows/01_plus.png" 10573 }; 10574 } 10575 function proposeLayout(options) { 10576 options = options || {}; 10577 const namespace = options.namespace; 10578 const reviewers = options.reviewers; 10579 let contents = '<div><form action="' + options.url + '" method="post">'; 10580 if (reviewers.length) { 10581 contents += '<textarea name="' + namespace + 'description" style="height: 100px; width: 284px;"></textarea><br /><br />' + 'Reviewer' + ' <select name="' + namespace + 'reviewUserId">'; 10582 for (let i = 0; i < reviewers.length; i++) { 10583 contents += '<option value="' + reviewers[i].userId + '">' + reviewers[i].fullName + "</option>"; 10584 } 10585 contents += '</select><br /><br /><input type="submit" value="' + 'Proceed' + '" />'; 10586 } else { 10587 contents += 'No\x20reviewers\x20were\x20found\x2e' + "<br />" + 'Please\x20contact\x20the\x20administrator\x20to\x20assign\x20reviewers\x2e' + "<br /><br />"; 10588 } 10589 contents += "</form></div>"; 10590 openWindow({ 10591 dialog: { 10592 destroyOnHide: true 10593 }, 10594 title: contents 10595 }); 10596 } 10597 function publishToLive(options) { 10598 options = options || {}; 10599 openWindow({ 10600 dialog: { 10601 constrain: true, 10602 modal: true, 10603 on: { 10604 visibleChange(event) { 10605 const instance = this; 10606 if (!event.newVal) { 10607 instance.destroy(); 10608 } 10609 } 10610 } 10611 }, 10612 title: options.title, 10613 uri: options.url 10614 }); 10615 } 10616 function showLayoutPane(options) { 10617 options = options || {}; 10618 const object = options.obj; 10619 let pane = options.pane; 10620 if (object && object.checked) { 10621 pane = document.querySelector(pane); 10622 if (pane) { 10623 pane.classList.remove("hide"); 10624 } 10625 } 10626 } 10627 function toggleLayoutDetails(options) { 10628 options = options || {}; 10629 const detail = document.querySelector(options.detail); 10630 const image = document.querySelector(options.toggle); 10631 if (detail && image) { 10632 let icon = themeDisplay.getPathThemeImages() + "/arrows/01_plus.png"; 10633 if (detail.classList.contains("hide")) { 10634 detail.classList.remove("hide"); 10635 icon = themeDisplay.getPathThemeImages() + "/arrows/01_minus.png"; 10636 } else { 10637 detail.classList.add("hide"); 10638 } 10639 image.setAttribute("src", icon); 10640 } 10641 } 10642 10643
10643// src/main/resources/META-INF/resources/liferay/util/memoize.js 10644 function memoize(fn) { 10645 if (typeof fn !== "function") { 10646 throw new TypeError(`Parameter fn must be a function`); 10647 } 10648 const cache = /* @__PURE__ */ new Map(); 10649 const memoized = (...args) => { 10650 let key; 10651 if (args.find((arg) => typeof arg === "object")) { 10652 const objectArguments = args.filter( 10653 (arg) => typeof arg === "object" 10654 ); 10655 key = objectArguments.map((objArg) => JSON.stringify(objArg)); 10656 if (args.length > 1 && objectArguments.length < args.length) { 10657 args.forEach((arg) => typeof arg !== "object" && key.push(arg)); 10658 } 10659 key = key.join(","); 10660 } else { 10661 key = args.length > 1 ? args.join(",") : args[0]; 10662 } 10663 if (cache.has(key)) { 10664 return cache.get(key); 10665 } else { 10666 const result = fn.apply(null, args); 10667 cache.set(key, result); 10668 return result; 10669 } 10670 }; 10671 memoized.getCache = () => cache; 10672 return memoized; 10673 } 10674 10675
10675// src/main/resources/META-INF/resources/liferay/util/to_char_code.es.js 10676 var toCharCode = memoize( 10677 (name) => name.split("").map((val) => val.charCodeAt()).join("") 10678 ); 10679 var to_char_code_es_default = toCharCode; 10680 10681
10681// src/main/resources/META-INF/resources/liferay/portal/tabs.es.js 10682 var EVENT_SHOW_TAB = "showTab"; 10683 function showTab(namespace, names, id, callback) { 10684 const namespacedId = namespace + to_char_code_es_default(id); 10685 const selectedTab = document.getElementById(namespacedId + "TabsId"); 10686 const selectedTabSection = document.getElementById( 10687 namespacedId + "TabsSection" 10688 ); 10689 if (selectedTab && selectedTabSection) { 10690 const details = { 10691 id, 10692 names, 10693 namespace, 10694 selectedTab, 10695 selectedTabSection 10696 }; 10697 if (callback && typeof callback === "function") { 10698 callback.call(this, namespace, names, id, details); 10699 } 10700 try { 10701 Liferay.on(EVENT_SHOW_TAB, applyTabSelectionDOMChanges); 10702 Liferay.fire(EVENT_SHOW_TAB, details); 10703 } finally { 10704 Liferay.detach(EVENT_SHOW_TAB, applyTabSelectionDOMChanges); 10705 } 10706 } 10707 } 10708 function applyTabSelectionDOMChanges({ 10709 id, 10710 names, 10711 namespace, 10712 selectedTab, 10713 selectedTabSection 10714 }) { 10715 const selectedTabLink = selectedTab.querySelector("a"); 10716 if (selectedTab && selectedTabLink) { 10717 const activeTab = selectedTab.parentElement.querySelector(".active"); 10718 if (activeTab) { 10719 activeTab.classList.remove("active"); 10720 } 10721 selectedTabLink.classList.add("active"); 10722 } 10723 if (selectedTabSection) { 10724 selectedTabSection.classList.remove("hide"); 10725 } 10726 const tabTitle = document.getElementById(namespace + "dropdownTitle"); 10727 if (tabTitle && selectedTabLink) { 10728 tabTitle.innerHTML = selectedTabLink.textContent; 10729 } 10730 names.splice(names.indexOf(id), 1); 10731 let tabSection; 10732 for (let i = 0; i < names.length; i++) { 10733 tabSection = document.getElementById( 10734 namespace + to_char_code_es_default(names[i]) + "TabsSection" 10735 ); 10736 if (tabSection) { 10737 tabSection.classList.add("hide"); 10738 } 10739 } 10740 } 10741 10742
10742// src/main/resources/META-INF/resources/liferay/portal/tooltip.es.js 10743 function showTooltip(element, text) { 10744 element.setAttribute("title", text); 10745 element.classList.add("lfr-portal-tooltip"); 10746 } 10747 10748
10748// src/main/resources/META-INF/resources/liferay/util/fetch.es.js 10749 function setNewLocation(resource, newLocation) { 10750 if (typeof resource === "string") { 10751 resource = newLocation; 10752 } else if (resource instanceof URL) { 10753 resource = new URL(newLocation); 10754 } else if (resource instanceof Request) { 10755 resource = new Request(newLocation, resource); 10756 } else { 10757 console.warn( 10758 "Resource passed to `fetch()` must either be a string, Request, or URL." 10759 ); 10760 } 10761 return resource; 10762 } 10763 function defaultFetch(resource, init = {}) { 10764 if (!resource) { 10765 resource = "/o/"; 10766 } 10767 let resourceLocation = resource.url ? resource.url : resource.toString(); 10768 if (resourceLocation.startsWith("/")) { 10769 const pathContext = Liferay.ThemeDisplay.getPathContext(); 10770 if (pathContext && !resourceLocation.startsWith(pathContext)) { 10771 resourceLocation = pathContext + resourceLocation; 10772 resource = setNewLocation(resource, resourceLocation); 10773 } 10774 resourceLocation = window.location.origin + resourceLocation; 10775 } 10776 const resourceURL = new URL(resourceLocation); 10777 const headers = new Headers({}); 10778 const config = {}; 10779 if (resourceURL.origin === window.location.origin) { 10780 headers.set("x-csrf-token", Liferay.authToken); 10781 config.credentials = "include"; 10782 const doAsUserIdEncoded = Liferay.ThemeDisplay.getDoAsUserIdEncoded(); 10783 if (doAsUserIdEncoded) { 10784 resourceURL.searchParams.set("doAsUserId", doAsUserIdEncoded); 10785 resourceLocation = resourceURL.toString(); 10786 resource = setNewLocation(resource, resourceLocation); 10787 } 10788 } 10789 new Headers(init.headers || {}).forEach((value, key) => { 10790 headers.set(key, value); 10791 }); 10792 return fetch(resource, { ...config, ...init, headers }); 10793 } 10794 10795
10795// src/main/resources/META-INF/resources/liferay/util/get_portlet_id.js 10796 var REGEX_PORTLET_ID = /^(?:p_p_id)?_(.*)_.*$/; 10797 function getPortletId(portletId) { 10798 return portletId.replace(REGEX_PORTLET_ID, "$1"); 10799 } 10800 10801
10801// src/main/resources/META-INF/resources/liferay/util/get_portlet_namespace.es.js 10802 function getPortletNamespace(portletId) { 10803 if (typeof portletId !== "string") { 10804 throw new TypeError("portletId must be a string"); 10805 } 10806 return `_${portletId}_`; 10807 } 10808 10809
10809// src/main/resources/META-INF/resources/liferay/util/portlet_url/create_portlet_url.es.js 10810 var SCHEME_REGEXP = /^[a-z][a-z0-9+.-]*:/i; 10811 function isAbsolute_(urlString) { 10812 return SCHEME_REGEXP.test(urlString); 10813 } 10814 function createPortletURL(basePortletURL, parameters = {}) { 10815 if (typeof basePortletURL !== "string") { 10816 throw new TypeError("basePortletURL parameter must be a string"); 10817 } 10818 if (!parameters || typeof parameters !== "object") { 10819 throw new TypeError("parameters argument must be an object"); 10820 } 10821 const reservedParameters = /* @__PURE__ */ new Set([ 10822 "doAsGroupId", 10823 "doAsUserId", 10824 "doAsUserLanguageId", 10825 "p_auth", 10826 "p_auth_secret", 10827 "p_f_id", 10828 "p_j_a_id", 10829 "p_l_id", 10830 "p_l_reset", 10831 "p_p_auth", 10832 "p_p_cacheability", 10833 "p_p_i_id", 10834 "p_p_id", 10835 "p_p_isolated", 10836 "p_p_lifecycle", 10837 "p_p_mode", 10838 "p_p_resource_id", 10839 "p_p_state", 10840 "p_p_state_rcv", 10841 "p_p_static", 10842 "p_p_url_type", 10843 "p_p_width", 10844 "p_t_lifecycle", 10845 "p_v_l_s_g_id", 10846 "refererGroupId", 10847 "refererPlid", 10848 "saveLastPath", 10849 "scroll" 10850 ]); 10851 if (basePortletURL.indexOf(Liferay.ThemeDisplay.getPortalURL()) !== 0 && !isAbsolute_(basePortletURL)) { 10852 if (basePortletURL.indexOf("/") !== 0) { 10853 basePortletURL = `${Liferay.ThemeDisplay.getPortalURL()}/${basePortletURL}`; 10854 } else { 10855 basePortletURL = Liferay.ThemeDisplay.getPortalURL() + basePortletURL; 10856 } 10857 } 10858 const portletURL = new URL(basePortletURL); 10859 const urlSearchParams = new URLSearchParams(portletURL.search); 10860 const portletID = parameters.p_p_id || urlSearchParams.get("p_p_id"); 10861 if (Object.entries(parameters).length && !portletID) { 10862 throw new TypeError( 10863 "Portlet ID must not be null if parameters are provided" 10864 ); 10865 } 10866 let namespace = ""; 10867 if (Object.entries(parameters).length) { 10868 namespace = getPortletNamespace(portletID); 10869 } 10870 Object.keys(parameters).forEach((key) => { 10871 let param; 10872 if (reservedParameters.has(key)) { 10873 param = key; 10874 } else { 10875 param = `${namespace}${key}`; 10876 } 10877 urlSearchParams.set(param, parameters[key]); 10878 }); 10879 portletURL.search = urlSearchParams.toString(); 10880 return portletURL; 10881 } 10882 10883
vendor: 497 bytes, lines 10883-10896
10883// ../../../node_modules/uuid/dist/esm-browser/rng.js 10884 var getRandomValues; 10885 var rnds8 = new Uint8Array(16); 10886 function rng() { 10887 if (!getRandomValues) { 10888 getRandomValues = typeof crypto !== "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto); 10889 if (!getRandomValues) { 10890 throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported"); 10891 } 10892 } 10893 return getRandomValues(rnds8); 10894 } 10895 10896
vendor: 746 bytes, lines 10896-10905
10896// ../../../node_modules/uuid/dist/esm-browser/stringify.js 10897 var byteToHex = []; 10898 for (let i = 0; i < 256; ++i) { 10899 byteToHex.push((i + 256).toString(16).slice(1)); 10900 } 10901 function unsafeStringify(arr, offset = 0) { 10902 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(); 10903 } 10904 10905
vendor: 210 bytes, lines 10905-10911
10905// ../../../node_modules/uuid/dist/esm-browser/native.js 10906 var randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto); 10907 var native_default = { 10908 randomUUID 10909 }; 10910 10911
vendor: 562 bytes, lines 10911-10931
10911// ../../../node_modules/uuid/dist/esm-browser/v4.js 10912 function v4(options, buf, offset) { 10913 if (native_default.randomUUID && !buf && !options) { 10914 return native_default.randomUUID(); 10915 } 10916 options = options || {}; 10917 const rnds = options.random || (options.rng || rng)(); 10918 rnds[6] = rnds[6] & 15 | 64; 10919 rnds[8] = rnds[8] & 63 | 128; 10920 if (buf) { 10921 offset = offset || 0; 10922 for (let i = 0; i < 16; ++i) { 10923 buf[offset + i] = rnds[i]; 10924 } 10925 return buf; 10926 } 10927 return unsafeStringify(rnds); 10928 } 10929 var v4_default = v4; 10930 10931
10931// src/main/resources/META-INF/resources/liferay/portlet/portlet_constants.es.js 10932 var PortletConstants = { 10933 // Portlet mode 10934 EDIT: "edit", 10935 HELP: "help", 10936 VIEW: "view", 10937 // Window state 10938 MAXIMIZED: "maximized", 10939 MINIMIZED: "minimized", 10940 NORMAL: "normal", 10941 // Resource URL cacheability 10942 FULL: "cacheLevelFull", 10943 PAGE: "cacheLevelPage", 10944 PORTLET: "cacheLevelPortlet" 10945 }; 10946 var portlet_constants_es_default = PortletConstants; 10947 10948
10948// src/main/resources/META-INF/resources/liferay/portlet/RenderState.es.js 10949 var RenderState = class _RenderState { 10950 constructor(state) { 10951 if (isObject(state)) { 10952 this.from(state); 10953 } else { 10954 this.parameters = {}; 10955 this.portletMode = portlet_constants_es_default.VIEW; 10956 this.windowState = portlet_constants_es_default.NORMAL; 10957 } 10958 } 10959 /** 10960 * Clone returns a copy of this RenderState instance. 10961 * @memberof RenderState 10962 * @return {RenderState} A RenderState instance with same properties. 10963 * @review 10964 */ 10965 clone() { 10966 return new _RenderState(this); 10967 } 10968 /** 10969 * Set the properties of a RenderState instance based on another RenderState 10970 * @memberof RenderState 10971 * @review 10972 */ 10973 from(renderState) { 10974 this.parameters = {}; 10975 Object.keys(renderState.parameters).forEach((name) => { 10976 if (Array.isArray(renderState.parameters[name])) { 10977 this.parameters[name] = renderState.parameters[name].slice(0); 10978 } 10979 }); 10980 this.setPortletMode(renderState.portletMode); 10981 this.setWindowState(renderState.windowState); 10982 } 10983 /** 10984 * Returns the portletMode for this RenderState. 10985 * @memberof RenderState 10986 * @return {String} The portletMode for this render state 10987 * @review 10988 */ 10989 getPortletMode() { 10990 return this.portletMode; 10991 } 10992 /** 10993 * Returns the string parameter value for the given name. 10994 * If name designates a multi-valued parameter this function returns 10995 * the first value in the values array. If the parameter is undefined 10996 * this function returns the optional default parameter <code>defaultValue</code>. 10997 * @memberof RenderState 10998 * @param {String} name The name of the parameter to retreive. 10999 * @param {?String} defaultValue The default value of the parameter in case it is undefined. 11000 * @return {String} The value of the parameter 11001 * @review 11002 */ 11003 getValue(name, defaultValue) { 11004 if (typeof name !== "string") { 11005 throw new TypeError("Parameter name must be a string"); 11006 } 11007 let value = this.parameters[name]; 11008 if (Array.isArray(value)) { 11009 value = value[0]; 11010 } 11011 if (value === void 0 && defaultValue !== void 0) { 11012 value = defaultValue; 11013 } 11014 return value; 11015 } 11016 /** 11017 * Gets the string array parameter value for the given <code>name</code>. 11018 * If the parameter for the given name is undefined, this function 11019 * returns the optional default value array <code>def</code>. 11020 * @memberof RenderState 11021 * @param {String} name The name of the parameter to retrieve. 11022 * @param {?Array} defaultValue The default value for the parameter if it is undefined. 11023 * @return {Array} 11024 * @review 11025 */ 11026 getValues(name, defaultValue) { 11027 if (typeof name !== "string") { 11028 throw new TypeError("Parameter name must be a string"); 11029 } 11030 const value = this.parameters[name]; 11031 return value ? value : defaultValue; 11032 } 11033 /** 11034 * Returns the windowState for this RenderState. 11035 * @memberof RenderState 11036 * @return {String} the window state for this render state 11037 * @review 11038 */ 11039 getWindowState() { 11040 return this.windowState; 11041 } 11042 /** 11043 * Removes the parameter with the given name. 11044 * @memberof RenderState 11045 * @param {String} name The name of the parameter to be removed. 11046 * @review 11047 */ 11048 remove(name) { 11049 if (typeof name !== "string") { 11050 throw new TypeError("Parameter name must be a string"); 11051 } 11052 if (this.parameters[name] !== void 0) { 11053 delete this.parameters[name]; 11054 } 11055 } 11056 /** 11057 * Sets the portletMode to the specified value. 11058 * @memberof RenderState 11059 * @param {String} portletMode The portlet mode to be set. 11060 * @review 11061 * @see {PortletConstants} 11062 */ 11063 setPortletMode(portletMode) { 11064 if (typeof portletMode !== "string") { 11065 throw new TypeError("Portlet Mode must be a string"); 11066 } 11067 if (portletMode === portlet_constants_es_default.EDIT || portletMode === portlet_constants_es_default.HELP || portletMode === portlet_constants_es_default.VIEW) { 11068 this.portletMode = portletMode; 11069 } 11070 } 11071 /** 11072 * Sets a parameter with a given name and value. 11073 * The value may be a string or an array.
11074 * @memberof RenderState 11075 * @param {String} name The name of the parameter. 11076 * @param {Array|String} value The value of the parameter. 11077 * @review 11078 */ 11079 setValue(name, value) { 11080 if (typeof name !== "string") { 11081 throw new TypeError("Parameter name must be a string"); 11082 } 11083 if (typeof value !== "string" && value !== null && !Array.isArray(value)) { 11084 throw new TypeError( 11085 "Parameter value must be a string, an array or null" 11086 ); 11087 } 11088 if (!Array.isArray(value)) { 11089 value = [value]; 11090 } 11091 this.parameters[name] = value; 11092 } 11093 /** 11094 * Sets a parameter with a given name and value. 11095 * The value may be a string or an array. 11096 * @memberof RenderState 11097 * @param {String} name The name of the parameter. 11098 * @param {Array|String} value The value of the parameter. 11099 * @review 11100 */ 11101 setValues(name, value) { 11102 this.setValue(name, value); 11103 } 11104 /** 11105 * Sets the windowState to the specified value. 11106 * @memberof RenderState 11107 * @param {String} windowSstate The window state to be set. 11108 * @return {String} 11109 * @review 11110 * @see {PortletConstants} 11111 */ 11112 setWindowState(windowState) { 11113 if (typeof windowState !== "string") { 11114 throw new TypeError("Window State must be a string"); 11115 } 11116 if (windowState === portlet_constants_es_default.MAXIMIZED || windowState === portlet_constants_es_default.MINIMIZED || windowState === portlet_constants_es_default.NORMAL) { 11117 this.windowState = windowState; 11118 } 11119 } 11120 }; 11121 var RenderState_es_default = RenderState; 11122 11123
11123// src/main/resources/META-INF/resources/liferay/portlet/portlet_util.es.js 11124 var AJAX_ACTION_VALUE = "0"; 11125 var CACHE_LEVEL_KEY = "p_p_cacheability"; 11126 var HUB_ACTION_KEY = "p_p_hub"; 11127 var PARTIAL_ACTION_VALUE = "1"; 11128 var PORTLET_MODE_KEY = "p_p_mode"; 11129 var PUBLIC_RENDER_PARAM_KEY = "p_r_p_"; 11130 var RENDER_PARAM_KEY = "priv_r_p_"; 11131 var RESOURCE_ID_KEY = "p_p_resource_id"; 11132 var TOKEN_DELIM = "&"; 11133 var VALUE_ARRAY_EMPTY = ""; 11134 var VALUE_DELIM = "="; 11135 var VALUE_NULL = ""; 11136 var WINDOW_STATE_KEY = "p_p_state"; 11137 var isParameterEqual = function(parameter1, parameter2) { 11138 let result = false; 11139 if (parameter1 === void 0 && parameter2 === void 0) { 11140 result = true; 11141 } 11142 if (parameter1 === void 0 || parameter2 === void 0) { 11143 result = false; 11144 } 11145 if (parameter1.length !== parameter2.length) { 11146 result = false; 11147 } 11148 for (let i = parameter1.length - 1; i >= 0; i--) { 11149 if (parameter1[i] !== parameter2[i]) { 11150 result = false; 11151 } 11152 } 11153 return result; 11154 }; 11155 var stateChanged = function(pageRenderState2, newState, portletId) { 11156 let result = false;
11157 if (pageRenderState2 && pageRenderState2.portlets) { 11158 const portletData = pageRenderState2.portlets[portletId]; 11159 if (portletData) { 11160 const oldState = pageRenderState2.portlets[portletId].state; 11161 if (!newState.portletMode || !newState.windowState || !newState.parameters) { 11162 throw new Error(`Error decoding state: ${newState}`); 11163 } 11164 if (newState.porletMode !== oldState.portletMode || newState.windowState !== oldState.windowState) { 11165 result = true; 11166 } else { 11167 const newKeys = Object.keys(newState.parameters); 11168 newKeys.forEach((key) => { 11169 const newParameter = newState.parameters[key]; 11170 const oldParameter = oldState.parameters[key]; 11171 if (!isParameterEqual(newParameter, oldParameter)) { 11172 result = true; 11173 } 11174 }); 11175 const oldKeys = Object.keys(oldState.parameters); 11176 oldKeys.forEach((key) => { 11177 if (!newState.parameters[key]) { 11178 result = true; 11179 } 11180 }); 11181 } 11182 } 11183 } 11184 return result; 11185 }; 11186 var decodeUpdateString = function(pageRenderState2, updateString) { 11187 const portlets = pageRenderState2 && pageRenderState2.portlets ? pageRenderState2.portlets : {}; 11188 try { 11189 const newRenderState = JSON.parse(updateString); 11190 if (newRenderState.portlets) { 11191 const keys = Object.keys(portlets); 11192 keys.forEach((key) => { 11193 const newState = newRenderState.portlets[key].state; 11194 const oldState = portlets[key].state; 11195 if (!newState || !oldState) { 11196 throw new Error( 11197 `Invalid update string. 11198old state=${oldState} 11199new state=${newState}` 11200 ); 11201 } 11202 if (stateChanged(pageRenderState2, newState, key)) { 11203 portlets[key] = newRenderState.portlets[key]; 11204 } 11205 }); 11206 } 11207 } catch (error) { 11208 } 11209 return portlets; 11210 }; 11211 var encodeFormAsString = function(portletId, form) { 11212 const parameters = []; 11213 for (let i = 0; i < form.elements.length; i++) { 11214 const element = form.elements[i]; 11215 const name = element.name; 11216 const tag = element.nodeName.toUpperCase(); 11217 const type = tag === "INPUT" ? element.type.toUpperCase() : ""; 11218 const value = element.value; 11219 if (name && !element.disabled && type !== "FILE") { 11220 if (tag === "SELECT" && element.multiple) { 11221 const options = [...element.options]; 11222 options.forEach((opt) => { 11223 if (opt.checked) { 11224 const value2 = opt.value; 11225 const parameter = encodeURIComponent(portletId + name) + "=" + encodeURIComponent(value2); 11226 parameters.push(parameter); 11227 } 11228 }); 11229 } else if (type !== "CHECKBOX" && type !== "RADIO" || element.checked) { 11230 const param = encodeURIComponent(portletId + name) + "=" + encodeURIComponent(value); 11231 parameters.push(param); 11232 } 11233 } 11234 } 11235 return parameters.join("&"); 11236 }; 11237 var encodeParameter = function(name, values) { 11238 let str = ""; 11239 if (Array.isArray(values)) { 11240 if (!values.length) { 11241 str += TOKEN_DELIM + encodeURIComponent(name) + VALUE_DELIM + VALUE_ARRAY_EMPTY; 11242 } else { 11243 values.forEach((value) => { 11244 str += TOKEN_DELIM + encodeURIComponent(name); 11245 if (value === null) { 11246 str += VALUE_DELIM + VALUE_NULL; 11247 } else { 11248 str += VALUE_DELIM + encodeURIComponent(value); 11249 } 11250 }); 11251 } 11252 } 11253 return str; 11254 }; 11255 var generateActionUrl = function(portletId, url, form) { 11256 const request = { 11257 credentials: "same-origin", 11258 method: "POST", 11259 url 11260 }; 11261 if (form) { 11262 const enctype = form.enctype; 11263 if (enctype === "multipart/form-data") { 11264 const formData = new FormData(form); 11265 request.body = formData; 11266 } else { 11267 const formAsString = encodeFormAsString(portletId, form); 11268 const method = form.method ? form.method.toUpperCase() : "GET"; 11269 if (method === "GET") { 11270 if (url.indexOf("?") >= 0) { 11271 url += `&${formAsString}`; 11272 } else { 11273 url += `?${formAsString}`; 11274 } 11275 request.url = url; 11276 } else { 11277 request.body = formAsString; 11278 request.headers = { 11279 "Content-Type": "application/x-www-form-urlencoded" 11280 }; 11281 } 11282 } 11283 } 11284 return request; 11285 }; 11286 var generateParameterString = function(pageRenderState2, portletId, name, type, group) { 11287 let str = ""; 11288 if (pageRenderState2.portlets && pageRenderState2.portlets[portletId]) { 11289 const portletData = pageRenderState2.portlets[portletId]; 11290 if (portletData && portletData.state && portletData.state.parameters) { 11291 const values = portletData.state.parameters[name]; 11292 if (values !== void 0) { 11293 if (type === PUBLIC_RENDER_PARAM_KEY) { 11294 str += encodeParameter(group, values); 11295 } else if (type === RENDER_PARAM_KEY) { 11296 str += encodeParameter( 11297 portletId + RENDER_PARAM_KEY + name, 11298 values 11299 ); 11300 } else { 11301 str += encodeParameter(portletId + name, values); 11302 } 11303 } 11304 } 11305 } 11306 return str; 11307 }; 11308 var generatePortletModeAndWindowStateString = function(pageRenderState2, portletId) { 11309 let str = ""; 11310 if (pageRenderState2.portlets) { 11311 const portletData = pageRenderState2.portlets[portletId]; 11312 if (portletData.state) { 11313 const state = portletData.state; 11314 str += TOKEN_DELIM + PORTLET_MODE_KEY + VALUE_DELIM + encodeURIComponent(state.portletMode); 11315 str += TOKEN_DELIM + WINDOW_STATE_KEY + VALUE_DELIM + encodeURIComponent(state.windowState); 11316 } 11317 } 11318 return str; 11319 }; 11320 var isParameterInStateEqual = function(pageRenderState2, portletId, state, name) { 11321 let result = false;
11322 if (pageRenderState2 && pageRenderState2.portlets) { 11323 const portletData = pageRenderState2.portlets[portletId]; 11324 if (state.parameters[name] && portletData.state.parameters[name]) { 11325 const newParameter = state.parameters[name]; 11326 const oldParameter = portletData.state.parameters[name]; 11327 result = isParameterEqual(newParameter, oldParameter); 11328 } 11329 } 11330 return result; 11331 }; 11332 var getUpdatedPublicRenderParameters = function(pageRenderState2, portletId, state) { 11333 const publicRenderParameters = {}; 11334 if (pageRenderState2 && pageRenderState2.portlets) { 11335 const portletData = pageRenderState2.portlets[portletId]; 11336 if (portletData && portletData.pubParms) { 11337 const portletPublicParameters = portletData.pubParms; 11338 const keys = Object.keys(portletPublicParameters); 11339 keys.forEach((key) => { 11340 if (!isParameterInStateEqual( 11341 pageRenderState2, 11342 portletId, 11343 state, 11344 key 11345 )) { 11346 const group = portletPublicParameters[key]; 11347 publicRenderParameters[group] = state.parameters[key]; 11348 } 11349 }); 11350 } 11351 } 11352 return publicRenderParameters; 11353 }; 11354 var isPublicParameter = function(pageRenderState2, portletId, name) { 11355 let result = false;
11356 if (pageRenderState2 && pageRenderState2.portlets) { 11357 const portletData = pageRenderState2.portlets[portletId]; 11358 if (portletData && portletData.pubParms) { 11359 const keys = Object.keys(portletData.pubParms); 11360 result = keys.includes(name); 11361 } 11362 } 11363 return result; 11364 }; 11365 var getUrl = function(pageRenderState2, type, portletId, parameters, cache, resourceId) { 11366 let cacheability = "cacheLevelPage"; 11367 let str = ""; 11368 let url = ""; 11369 if (pageRenderState2 && pageRenderState2.portlets) { 11370 if (type === "RENDER" && portletId === void 0) { 11371 portletId = null; 11372 } 11373 const portletData = pageRenderState2.portlets[portletId]; 11374 if (portletData) { 11375 if (type === "RESOURCE") { 11376 url = decodeURIComponent(portletData.encodedResourceURL); 11377 if (cache) { 11378 cacheability = cache; 11379 } 11380 url += TOKEN_DELIM + CACHE_LEVEL_KEY + VALUE_DELIM + encodeURIComponent(cacheability); 11381 if (resourceId) { 11382 url += TOKEN_DELIM + RESOURCE_ID_KEY + VALUE_DELIM + encodeURIComponent(resourceId); 11383 } 11384 } else if (type === "RENDER" && portletId !== null) { 11385 url = decodeURIComponent(portletData.encodedRenderURL); 11386 } else if (type === "RENDER") { 11387 url = decodeURIComponent(pageRenderState2.encodedCurrentURL); 11388 } else if (type === "ACTION") { 11389 url = decodeURIComponent(portletData.encodedActionURL); 11390 url += TOKEN_DELIM + HUB_ACTION_KEY + VALUE_DELIM + encodeURIComponent(AJAX_ACTION_VALUE); 11391 } else if (type === "PARTIAL_ACTION") { 11392 url = decodeURIComponent(portletData.encodedActionURL); 11393 url += TOKEN_DELIM + HUB_ACTION_KEY + VALUE_DELIM + encodeURIComponent(PARTIAL_ACTION_VALUE); 11394 } 11395 if (type !== "RESOURCE" || cacheability !== "cacheLevelFull") { 11396 if (portletId) { 11397 url += generatePortletModeAndWindowStateString( 11398 pageRenderState2, 11399 portletId 11400 ); 11401 } 11402 if (portletId) { 11403 str = ""; 11404 if (portletData.state && portletData.state.parameters) { 11405 const stateParameters = portletData.state.parameters; 11406 const keys = Object.keys(stateParameters); 11407 keys.forEach((key) => { 11408 if (!isPublicParameter( 11409 pageRenderState2, 11410 portletId, 11411 key 11412 )) { 11413 str += generateParameterString( 11414 pageRenderState2, 11415 portletId, 11416 key, 11417 RENDER_PARAM_KEY 11418 ); 11419 } 11420 }); 11421 url += str; 11422 } 11423 } 11424 if (pageRenderState2.prpMap) { 11425 str = ""; 11426 const publicRenderParameters = {}; 11427 const mapKeys = Object.keys(pageRenderState2.prpMap); 11428 mapKeys.forEach((mapKey) => { 11429 const groupKeys = Object.keys( 11430 pageRenderState2.prpMap[mapKey] 11431 ); 11432 groupKeys.forEach((groupKey) => { 11433 const groupName = pageRenderState2.prpMap[mapKey][groupKey]; 11434 const parts = groupName.split("|"); 11435 if (!Object.hasOwnProperty.call( 11436 publicRenderParameters, 11437 mapKey 11438 )) { 11439 publicRenderParameters[mapKey] = generateParameterString( 11440 pageRenderState2, 11441 parts[0], 11442 parts[1], 11443 PUBLIC_RENDER_PARAM_KEY, 11444 mapKey 11445 ); 11446 str += publicRenderParameters[mapKey]; 11447 } 11448 }); 11449 }); 11450 url += str; 11451 } 11452 } 11453 } 11454 } 11455 if (parameters) { 11456 str = ""; 11457 const parameterKeys = Object.keys(parameters); 11458 parameterKeys.forEach((parameterKey) => { 11459 str += encodeParameter( 11460 portletId + parameterKey, 11461 parameters[parameterKey] 11462 ); 11463 }); 11464 url += str; 11465 } 11466 return Promise.resolve(url); 11467 };
11468 var validateArguments = function(args = [], min = 0, max = 1, types = []) { 11469 if (args.length < min) { 11470 throw new TypeError( 11471 `Too few arguments provided: Number of arguments: ${args.length}` 11472 ); 11473 } else if (args.length > max) { 11474 throw new TypeError( 11475 `Too many arguments provided: ${[].join.call(args, ", ")}` 11476 ); 11477 } else if (Array.isArray(types)) { 11478 let i = Math.min(args.length, types.length) - 1; 11479 for (i; i >= 0; i--) { 11480 if (typeof args[i] !== types[i]) { 11481 throw new TypeError( 11482 `Parameter ${i} is of type ${typeof args[i]} rather than the expected type ${types[i]}` 11483 ); 11484 } 11485 if (args[i] === null || args[i] === void 0) { 11486 throw new TypeError(`Argument is ${typeof args[i]}`); 11487 } 11488 } 11489 } 11490 }; 11491 var validateForm = function(form) { 11492 if (!(form instanceof HTMLFormElement)) { 11493 throw new TypeError("Element must be an HTMLFormElement"); 11494 } 11495 const method = form.method ? form.method.toUpperCase() : void 0; 11496 if (method && method !== "GET" && method !== "POST") { 11497 throw new TypeError( 11498 `Invalid form method ${method}. Allowed methods are GET & POST` 11499 ); 11500 } 11501 const enctype = form.enctype; 11502 if (enctype && enctype !== "application/x-www-form-urlencoded" && enctype !== "multipart/form-data") { 11503 throw new TypeError( 11504 `Invalid form enctype ${enctype}. Allowed: 'application/x-www-form-urlencoded' & 'multipart/form-data'` 11505 ); 11506 } 11507 if (enctype && enctype === "multipart/form-data" && method !== "POST") { 11508 throw new TypeError( 11509 "Invalid method with multipart/form-data. Must be POST" 11510 ); 11511 } 11512 if (!enctype || enctype === "application/x-www-form-urlencoded") { 11513 const l = form.elements.length; 11514 for (let i = 0; i < l; i++) { 11515 if (form.elements[i].nodeName.toUpperCase() === "INPUT" && form.elements[i].type.toUpperCase() === "FILE") { 11516 throw new TypeError( 11517 "Must use enctype = 'multipart/form-data' with input type FILE." 11518 ); 11519 } 11520 } 11521 } 11522 }; 11523 var validateParameters = function(parameters) { 11524 if (!(parameters !== void 0 && parameters !== null)) { 11525 throw new TypeError(`The parameter object is: ${typeof parameters}`); 11526 } 11527 const keys = Object.keys(parameters); 11528 keys.forEach((key) => { 11529 if (!Array.isArray(parameters[key])) { 11530 throw new TypeError(`${key} parameter is not an array`); 11531 } 11532 if (!parameters[key].length) { 11533 throw new TypeError(`${key} parameter is an empty array`); 11534 } 11535 }); 11536 }; 11537 var validatePortletId = function(pageRenderState2 = {}, portletId = "") { 11538 return pageRenderState2.portlets && Object.keys(pageRenderState2.portlets).includes(portletId); 11539 }; 11540 var validateState = function(state = {}, portletData = {}) { 11541 validateParameters(state.parameters); 11542 const portletMode = state.portletMode; 11543 if (typeof portletMode !== "string") { 11544 throw new TypeError( 11545 `Invalid parameters. portletMode is ${typeof portletMode}` 11546 ); 11547 } else { 11548 const allowedPortletModes = portletData.allowedPM; 11549 if (!allowedPortletModes.includes(portletMode.toLowerCase())) { 11550 throw new TypeError( 11551 `Invalid portletMode=${portletMode} is not in ${allowedPortletModes}` 11552 ); 11553 } 11554 } 11555 const windowState = state.windowState; 11556 if (typeof windowState !== "string") { 11557 throw new TypeError( 11558 `Invalid parameters. windowState is ${typeof windowState}` 11559 ); 11560 } else { 11561 const allowedWindowStates = portletData.allowedWS; 11562 if (!allowedWindowStates.includes(windowState.toLowerCase())) { 11563 throw new TypeError( 11564 `Invalid windowState=${windowState} is not in ${allowedWindowStates}` 11565 ); 11566 } 11567 } 11568 }; 11569 11570
11570// src/main/resources/META-INF/resources/liferay/portlet/PortletInit.es.js 11571 var doHistory = window.history && window.history.pushState; 11572 var portletRegex = "^portlet[.].*"; 11573 var busy = false; 11574 var eventListeners = {}; 11575 var eventListenersQueue = []; 11576 var pageRenderState; 11577 var PortletInit = class { 11578 constructor(portletId) { 11579 this._portletId = portletId; 11580 this.constants = { ...portlet_constants_es_default }; 11581 if (!pageRenderState) { 11582 pageRenderState = global.portlet.data.pageRenderState; 11583 this._updateHistory(true); 11584 } 11585 this.portletModes = pageRenderState.portlets[this._portletId].allowedPM.slice(0); 11586 this.windowStates = pageRenderState.portlets[this._portletId].allowedWS.slice(0); 11587 } 11588 /** 11589 * Performs the actual action. 11590 * @param {Object} parameters Additional parameters to be set. 11591 * @param {HTMLFormElement} element Form to be submitted. May be <code>null</code>. 11592 * @protected 11593 * @review 11594 */ 11595 _executeAction(parameters, element) { 11596 return new Promise((resolve, reject) => { 11597 getUrl(pageRenderState, "ACTION", this._portletId, parameters).then( 11598 (url) => { 11599 const options = generateActionUrl( 11600 this._portletId, 11601 url, 11602 element 11603 ); 11604 defaultFetch(options.url, options).then((res) => res.text()).then((text) => { 11605 const updatedIds = this._updatePageStateFromString( 11606 text, 11607 this._portletId 11608 ); 11609 resolve(updatedIds); 11610 }).catch((error) => { 11611 reject(error); 11612 }); 11613 } 11614 ); 11615 }); 11616 } 11617 /** 11618 * Returns true if an onStateChange listener is registered for the portlet. 11619 * @memberof PortletInit 11620 * @param {string} portletId The portlet ID. 11621 * @return {boolean} Returns true if a listener is registered. 11622 * @protected 11623 * @review 11624 */ 11625 _hasListener(portletId) { 11626 const eventListenerPortletIds = Object.keys(eventListeners).map( 11627 (key) => eventListeners[key].id 11628 ); 11629 return eventListenerPortletIds.includes(portletId); 11630 } 11631 /** 11632 * Sends an onError event to all registered error event handlers for a given 11633 * portlet. 11634 * @memberof PortletInit 11635 * @param {string} portletId The portlet ID. 11636 * @param {string} err The error message. 11637 * @protected 11638 * @review 11639 */ 11640 _reportError(portletId, error) { 11641 Object.keys(eventListeners).map((key) => { 11642 const listener = eventListeners[key]; 11643 if (listener.id === portletId && listener.type === "portlet.onError") { 11644 setTimeout(() => { 11645 listener.handler("portlet.onError", error); 11646 }); 11647 } 11648 return false; 11649 }); 11650 } 11651 /** 11652 * Callback function that must be called after a partial action has been 11653 * started. 11654 * 11655 * The page state is generated by the portal and transmitted to the client by 11656 * the portlet. The portlet client that initiated the partial action must 11657 * pass the page state string to this function. 11658 * 11659 * The callback should only be called once to conclude a partial action sequence. 11660 * @memberof PortletInit 11661 * @param {string} portletId The portlet ID. 11662 * @param {string} updateString The new page state in string form. 11663 * @throws {TypeError} Thrown if the parameter is not a string. 11664 * @protected 11665 * @review 11666 */ 11667 _setPageState(portletId, updateString) { 11668 if (typeof updateString !== "string") { 11669 throw new TypeError(`Invalid update string: ${updateString}`); 11670 } 11671 this._updatePageState(updateString, portletId).then( 11672 (updatedIds) => { 11673 this._updatePortletStates(updatedIds); 11674 }, 11675 (error) => { 11676 busy = false; 11677 this._reportError(portletId, error); 11678 } 11679 ); 11680 } 11681 /** 11682 * Sets state for the portlet. 11683 * returns array of IDs for portlets that were affected by the change, 11684 * taking into account the public render parameters. 11685 * @memberof PortletInit 11686 * @param {Object} state The state to be set. 11687 * @return {Array} 11688 * @protected 11689 * @review 11690 */ 11691 _setState(state) { 11692 const publicRenderParameters = getUpdatedPublicRenderParameters( 11693 pageRenderState, 11694 this._portletId, 11695 state 11696 ); 11697 const updatedIds = []; 11698 const parameterKeys = Object.keys(publicRenderParameters); 11699 parameterKeys.forEach((parameterKey) => { 11700 const newValue = publicRenderParameters[parameterKey]; 11701 const groupMap = pageRenderState.prpMap[parameterKey]; 11702 const groupKeys = Object.keys(groupMap); 11703 groupKeys.forEach((groupKey) => { 11704 if (groupKey !== this._portletId) { 11705 const parts = groupMap[groupKey].split("|"); 11706 const portletId2 = parts[0]; 11707 const parameterName = parts[1]; 11708 if (newValue === void 0) { 11709 delete pageRenderState.portlets[portletId2].state.parameters[parameterName]; 11710 } else { 11711 pageRenderState.portlets[portletId2].state.parameters[parameterName] = [...newValue]; 11712 } 11713 updatedIds.push(portletId2); 11714 } 11715 }); 11716 }); 11717 const portletId = this._portletId; 11718 pageRenderState.portlets[portletId].state = state; 11719 updatedIds.push(portletId); 11720 updatedIds.forEach((updatedId) => { 11721 pageRenderState.portlets[updatedId].renderData.content = null; 11722 }); 11723 this._updateHistory(); 11724 return Promise.resolve(updatedIds); 11725 } 11726 /** 11727 * Sets up for the action. 11728 * @memberof PortletInit 11729 * @param {Object} parameters Additional parameters. May be <code>null</code>. 11730 * @param {HTMLFormElement} element Form to be submitted May be <code>null</code>. 11731 * @throws {AccessDeniedException} Thrown if a blocking operation is already in progress. 11732 * @throws {NotInitializedException} Thrown if a portlet ID is provided, but no onStateChange 11733 * listener has been registered. 11734 * @protected 11735 * @review 11736 */ 11737 _setupAction(parameters, element) { 11738 if (this.isInProgress()) { 11739 throw { 11740 message: "Operation is already in progress", 11741 name: "AccessDeniedException" 11742 }; 11743 } 11744 if (!this._hasListener(this._portletId)) { 11745 throw { 11746 message: `No onStateChange listener registered for portlet: ${this._portletId}`, 11747 name: "NotInitializedException" 11748 }; 11749 } 11750 busy = true; 11751 return this._executeAction(parameters, element).then( 11752 (updatedIds) => { 11753 return this._updatePortletStates(updatedIds).then( 11754 (updatedIds2) => { 11755 busy = false;
11756 return updatedIds2; 11757 } 11758 ); 11759 }, 11760 (error) => { 11761 busy = false; 11762 this._reportError(this._portletId, error); 11763 } 11764 ); 11765 } 11766 /** 11767 * Called when the page state has been updated to allow 11768 * the browser history to be taken care of. 11769 * @memberof PortletInit 11770 * @param {boolean} replace Replace the state rather than pushing. 11771 * @protected 11772 * @review 11773 */ 11774 _updateHistory(replace) { 11775 if (doHistory) { 11776 getUrl(pageRenderState, "RENDER", null, {}).then((url) => { 11777 const token = JSON.stringify(pageRenderState); 11778 if (replace) { 11779 history.replaceState(token, ""); 11780 } else { 11781 try { 11782 history.pushState(token, "", url); 11783 } catch (error) { 11784 } 11785 } 11786 }); 11787 } 11788 } 11789 /** 11790 * Update page state passed in after partial action. The list of 11791 * ID's of updated portlets is passed back through a promise in order 11792 * to decouple the layers. 11793 * 11794 * @memberof PortletInit 11795 * @param {string} updateString The updated render state string. 11796 * @review 11797 */ 11798 _updatePageState(updateString) { 11799 return new Promise((resolve, reject) => { 11800 try { 11801 const updatedIds = this._updatePageStateFromString( 11802 updateString, 11803 this._portletId 11804 ); 11805 resolve(updatedIds); 11806 } catch (error) { 11807 reject( 11808 new Error(`Partial Action decode status: ${error.message}`) 11809 ); 11810 } 11811 }); 11812 } 11813 /** 11814 * Updates page state from string and returns array of portlet IDs 11815 * to be updated. 11816 * 11817 * @memberof PortletInit 11818 * @param {string} updateString The update string. 11819 * @param {string} portletId The portlet ID. 11820 * @protected 11821 * @review 11822 */ 11823 _updatePageStateFromString(updateString, portletId) { 11824 const portlets = decodeUpdateString(pageRenderState, updateString); 11825 const updatedIds = []; 11826 let stateUpdated = false; 11827 const entries = Object.entries(portlets); 11828 entries.forEach(([key, portletData]) => { 11829 pageRenderState.portlets[key] = portletData; 11830 updatedIds.push(key); 11831 stateUpdated = true; 11832 }); 11833 if (stateUpdated && portletId) { 11834 this._updateHistory(); 11835 } 11836 return updatedIds; 11837 } 11838 /** 11839 *
11840 * Accepts an object containing changed render states. 11841 * Updates the state for each portlet present. 11842 * 11843 * @memberof PortletInit 11844 * @param {Array} updatedIds Array of portlet IDs to be updated. 11845 * @return {Promsise.<string>} 11846 * @protected 11847 * @review 11848 */ 11849 _updatePortletStates(updatedIds) { 11850 return new Promise((resolve) => { 11851 if (!updatedIds.length) { 11852 busy = false; 11853 } else { 11854 updatedIds.forEach((updatedId) => { 11855 this._updateStateForPortlet(updatedId); 11856 }); 11857 } 11858 resolve(updatedIds); 11859 }); 11860 } 11861 /** 11862 * Updates the page render state 11863 * 11864 * @memberof PortletInit 11865 * @param {Object} state The new state to be set. 11866 * @protected 11867 * @review 11868 */ 11869 _updateState(state) { 11870 if (busy) { 11871 throw { 11872 message: "Operation in progress", 11873 name: "AccessDeniedException" 11874 }; 11875 } else if (!this._hasListener(this._portletId)) { 11876 throw { 11877 message: `No onStateChange listener registered for portlet: ${this._portletId}`, 11878 name: "NotInitializedException" 11879 }; 11880 } 11881 busy = true; 11882 this._setState(state).then((updatedIds) => { 11883 this._updatePortletStates(updatedIds); 11884 }).catch((error) => { 11885 busy = false; 11886 this._reportError(this._portletId, error); 11887 }); 11888 } 11889 /** 11890 * Calls the portlet onStateChange method in an asynchronous manner in order 11891 * to decouple the public API. This method is intended for use after 11892 * portlet client registers an onStateChange listener. 11893 * 11894 * @memberof PortletInit 11895 * @param {string} portletId The portlet ID. 11896 * @protected 11897 * @review 11898 */ 11899 _updateStateForPortlet(portletId) { 11900 const updateQueueIds = eventListenersQueue.map((item) => item.handle); 11901 const entries = Object.entries(eventListeners); 11902 entries.forEach(([key, eventData]) => { 11903 if (eventData.type !== "portlet.onStateChange") { 11904 return; 11905 } 11906 if (eventData.id === portletId && !updateQueueIds.includes(key)) { 11907 eventListenersQueue.push(eventData); 11908 } 11909 }); 11910 if (eventListenersQueue.length) { 11911 setTimeout(() => { 11912 busy = true; 11913 while (eventListenersQueue.length) { 11914 const eventData = eventListenersQueue.shift(); 11915 const handler = eventData.handler; 11916 const id = eventData.id; 11917 if (!pageRenderState.portlets[id]) { 11918 continue; 11919 } 11920 const renderData = pageRenderState.portlets[id].renderData; 11921 const renderState = new RenderState_es_default( 11922 pageRenderState.portlets[id].state 11923 ); 11924 if (renderData && renderData.content) { 11925 handler( 11926 "portlet.onStateChange", 11927 renderState, 11928 renderData 11929 ); 11930 } else { 11931 handler("portlet.onStateChange", renderState); 11932 } 11933 } 11934 busy = false; 11935 }); 11936 } 11937 } 11938 /** 11939 * Initiates a portlet action using the specified action parameters and 11940 * element arguments. 11941 * 11942 * @memberof PortletInit 11943 * @param {PortletParameters} parameters Action parameters to be added to the URL 11944 * @param {HTMLFormElement} element DOM element of form to be submitted 11945 * @return {Promise} A Promise object that is resolved with no argument when the action request has completed. 11946 * @throws {TypeError} Thrown if the input parameters are invalid 11947 * @throws {AccessDeniedException} Thrown if a blocking operation is already in progress. 11948 * @throws {NotInitializedException} Thrown if a portlet ID is provided, but no onStateChange listener has been registered. 11949 * @review 11950 */ 11951 action(...args) { 11952 let actionParameters = null; 11953 let argCount = 0; 11954 let element = null; 11955 args.forEach((arg) => { 11956 if (arg instanceof HTMLFormElement) { 11957 if (element !== null) { 11958 throw new TypeError( 11959 `Too many [object HTMLFormElement] arguments: ${arg}, ${element}` 11960 ); 11961 } 11962 element = arg; 11963 } else if (isObject(arg)) { 11964 validateParameters(arg); 11965 if (actionParameters !== null) { 11966 throw new TypeError("Too many parameters arguments"); 11967 } 11968 actionParameters = arg;
11969 } else if (arg !== void 0) { 11970 const type = Object.prototype.toString.call(arg); 11971 throw new TypeError( 11972 `Invalid argument type. Argument ${argCount + 1} is of type ${type}` 11973 ); 11974 } 11975 argCount++; 11976 }); 11977 if (element) { 11978 validateForm(element); 11979 } 11980 return this._setupAction(actionParameters, element).then((val) => { 11981 Promise.resolve(val); 11982 }).catch((error) => { 11983 Promise.reject(error); 11984 }); 11985 } 11986 /** 11987 * Adds a listener function for specified event type. 11988 * 11989 * @memberof PortletInit 11990 * @param {string} type The type of listener 11991 * @param {function} handler Function called when event occurs 11992 * @return {Object} A handle that can be used to remove the event listener 11993 * @throws {TypeError} Thrown if the input parameters are invalid 11994 * @review 11995 */ 11996 addEventListener(type, handler) { 11997 if (arguments.length > 2) { 11998 throw new TypeError( 11999 "Too many arguments passed to addEventListener" 12000 ); 12001 } 12002 if (typeof type !== "string" || typeof handler !== "function") { 12003 throw new TypeError("Invalid arguments passed to addEventListener"); 12004 } 12005 const id = this._portletId; 12006 if (type.startsWith("portlet.")) { 12007 if (type !== "portlet.onStateChange" && type !== "portlet.onError") { 12008 throw new TypeError( 12009 `The system event type is invalid: ${type}` 12010 ); 12011 } 12012 } 12013 const handle = v4_default(); 12014 const listener = { 12015 handle, 12016 handler, 12017 id, 12018 type 12019 }; 12020 eventListeners[handle] = listener; 12021 if (type === "portlet.onStateChange") { 12022 this._updateStateForPortlet(this._portletId); 12023 } 12024 return handle; 12025 } 12026 /** 12027 * Returns a promise for a resource URL with parameters set appropriately 12028 * for the page state according to the resource parameters, cacheability 12029 * option, and resource ID provided. 12030 * @memberof PortletInit 12031 * @param {Object} parameters Resource parameters to be added to the URL 12032 * @param {string} cache Cacheability option. The strings defined under 12033 * {@link PortletConstants} should be used to specifiy cacheability. 12034 * @param {string} resourceId Resource ID. 12035 * @return {Promise} A Promise object. Returns a string representing the 12036 * resource URL on successful resolution. Returns an Error object containing 12037 * a descriptive message on failure. 12038 * @throws {TypeError} Thrown if the input parameters are invalid 12039 * @review 12040 */ 12041 createResourceUrl(parameters, cache, resourceId) { 12042 if (arguments.length > 3) { 12043 throw new TypeError("Too many arguments. 3 arguments are allowed."); 12044 } 12045 if (parameters) { 12046 if (isObject(parameters)) { 12047 validateParameters(parameters); 12048 } else { 12049 throw new TypeError( 12050 "Invalid argument type. Resource parameters must be a parameters object." 12051 ); 12052 } 12053 } 12054 let cacheability = null; 12055 if (cache) { 12056 if (typeof cache === "string") { 12057 if (cache === "cacheLevelPage" || cache === "cacheLevelPortlet" || cache === "cacheLevelFull") { 12058 cacheability = cache; 12059 } else { 12060 throw new TypeError( 12061 `Invalid cacheability argument: ${cache}` 12062 ); 12063 } 12064 } else { 12065 throw new TypeError( 12066 "Invalid argument type. Cacheability argument must be a string." 12067 ); 12068 } 12069 } 12070 if (!cacheability) { 12071 cacheability = "cacheLevelPage"; 12072 } 12073 if (resourceId && typeof resourceId !== "string") { 12074 throw new TypeError( 12075 "Invalid argument type. Resource ID argument must be a string." 12076 ); 12077 } 12078 return getUrl( 12079 pageRenderState, 12080 "RESOURCE", 12081 this._portletId, 12082 parameters, 12083 cacheability, 12084 resourceId 12085 ); 12086 } 12087 /** 12088 * Dispatches a client event. 12089 * @memberof PortletInit 12090 * @param {string} type The type of listener. 12091 * @param {any} payload The payload to be delivered. 12092 * @return {number} The number of events queued for delivery. 12093 * @throws {TypeError} Thrown if the type is a system event type. 12094 * @review 12095 */ 12096 dispatchClientEvent(type, payload) { 12097 validateArguments(arguments, 2, 2, ["string"]); 12098 if (type.match(new RegExp(portletRegex))) {
12099 throw new TypeError("The event type is invalid: " + type); 12100 } 12101 return Object.keys(eventListeners).reduce((amount, key) => { 12102 const listener = eventListeners[key]; 12103 if (type.match(listener.type)) { 12104 listener.handler(type, payload); 12105 amount++; 12106 } 12107 return amount; 12108 }, 0); 12109 } 12110 /** 12111 * Tests whether a blocking operation is in progress. 12112 * @memberof PortletInit 12113 * @return {boolean} 12114 * @review 12115 */ 12116 isInProgress() { 12117 return busy; 12118 } 12119 /** 12120 * Creates and returns a new PortletParameters object. 12121 * @memberof PortletInit 12122 * @param {?Object} optParameters The optional parameters to be copied. 12123 * @return {Object} The new parameters object. 12124 * @review 12125 */ 12126 newParameters(optParameters = {}) { 12127 const newParameters = {}; 12128 Object.keys(optParameters).forEach((key) => { 12129 if (Array.isArray(optParameters[key])) { 12130 newParameters[key] = [...optParameters[key]]; 12131 } 12132 }); 12133 return newParameters; 12134 } 12135 /** 12136 * Creates and returns a new RenderState object. 12137 * @memberof PortletInit 12138 * @param {?RenderState} optState An optional RenderState object to be copied. 12139 * @return {RenderState} The new RenderState object. 12140 * @review 12141 */ 12142 newState(optState) { 12143 return new RenderState_es_default(optState); 12144 } 12145 /** 12146 * Removes a previously added listener function designated by the handle. 12147 * The handle must be the same object previously returned by the 12148 * addEventListener function. 12149 * @memberof PortletInit 12150 * @param {Object} handle The handle of the listener to be removed. 12151 * @throws {TypeError} Thrown if the input parameters are invalid. 12152 * @throws {AccessDeniedException} Thrown if the event listener associated 12153 * with this handle was registered by a different portlet. 12154 * @review 12155 */ 12156 removeEventListener(handle) { 12157 if (arguments.length > 1) { 12158 throw new TypeError( 12159 "Too many arguments passed to removeEventListener" 12160 ); 12161 } 12162 if (handle === void 0 || handle === null) { 12163 throw new TypeError( 12164 `The event handle provided is ${typeof handle}` 12165 ); 12166 } 12167 let found = false; 12168 if (isObject(eventListeners[handle])) { 12169 if (eventListeners[handle].id === this._portletId) { 12170 delete eventListeners[handle]; 12171 const l = eventListenersQueue.length; 12172 for (let i = 0; i < l; i++) { 12173 const eventData = eventListenersQueue[i]; 12174 if (eventData && eventData.handle === handle) { 12175 eventListenersQueue.splice(i, 1); 12176 } 12177 } 12178 found = true; 12179 } 12180 } 12181 if (!found) { 12182 throw new TypeError( 12183 "The event listener handle doesn't match any listeners." 12184 ); 12185 } 12186 } 12187 /** 12188 * Sets the render state, which consists of the public and private render 12189 * parameters, the portlet mode, and the window state. 12190 * @memberof PortletInit 12191 * @param {RenderState} state The new state to be set. 12192 * @throws {TypeError} Thrown if the input parameters are invalid. 12193 * @throws {AccessDeniedException} Thrown if a blocking operation is already in progress. 12194 * @throws {NotInitializedException} Thrown if a portlet ID is provided, but no onStateChange 12195 * listener has been registered. 12196 * @review 12197 */ 12198 setRenderState(state) { 12199 validateArguments(arguments, 1, 1, ["object"]); 12200 if (pageRenderState.portlets && pageRenderState.portlets[this._portletId]) { 12201 const portletData = pageRenderState.portlets[this._portletId]; 12202 validateState(state, portletData); 12203 this._updateState(state); 12204 } 12205 } 12206 /** 12207 * Starts partial action processing and returns a {@link PartialActionInit} object to the caller. 12208 * @memberof PortletInit 12209 * @param {PortletParameters} actionParameters Action parameters to be added to the URL. 12210 * @return {Promise} A Promise. Returns a {@link PortletActionInit} object 12211 * containing a partial action URL and the _setPageState callback function
12212 * on successful resolution. Returns an Error object containing a 12213 * descriptive message on failure. 12214 * @throws {TypeError} Thrown if the input parameters are invalid. 12215 * @throws {AccessDeniedException} Thrown if a blocking operation is already in progress. 12216 * @throws {NotInitializedException} Thrown if a portlet ID is provided, but 12217 * no onStateChange listener has been registered. 12218 * @review 12219 */ 12220 startPartialAction(actionParameters) { 12221 const instance = this; 12222 let parameters = null; 12223 if (arguments.length > 1) { 12224 throw new TypeError("Too many arguments. 1 arguments are allowed"); 12225 } else if (actionParameters !== void 0) { 12226 if (isObject(actionParameters)) { 12227 validateParameters(actionParameters); 12228 parameters = actionParameters; 12229 } else { 12230 throw new TypeError( 12231 `Invalid argument type. Argument is of type ${typeof actionParameters}` 12232 ); 12233 } 12234 } 12235 if (busy === true) { 12236 throw { 12237 message: "Operation in progress", 12238 name: "AccessDeniedException" 12239 }; 12240 } else if (!this._hasListener(this._portletId)) { 12241 throw { 12242 message: `No onStateChange listener registered for portlet: ${this._portletId}`, 12243 name: "NotInitializedException" 12244 }; 12245 } 12246 busy = true; 12247 const partialActionInitObject = { 12248 setPageState(updateString) { 12249 instance._setPageState(instance._portletId, updateString); 12250 }, 12251 url: "" 12252 }; 12253 return getUrl( 12254 pageRenderState, 12255 "PARTIAL_ACTION", 12256 this._portletId, 12257 parameters 12258 ).then((url) => { 12259 partialActionInitObject.url = url; 12260 return partialActionInitObject; 12261 }); 12262 } 12263 }; 12264 var PortletInit_es_default = PortletInit; 12265 12266
12266// src/main/resources/META-INF/resources/liferay/portlet/register.es.js 12267 var register = function(portletId) { 12268 validateArguments(arguments, 1, 1, ["string"]); 12269 const pageRenderState2 = global.portlet.data.pageRenderState; 12270 return new Promise((resolve, reject) => { 12271 if (validatePortletId(pageRenderState2, portletId)) { 12272 resolve(new PortletInit_es_default(portletId)); 12273 } else { 12274 reject(new Error("Invalid portlet ID")); 12275 } 12276 }); 12277 }; 12278 var register_es_default = register; 12279 12280
12280// src/main/resources/META-INF/resources/liferay/portlet/portlet.es.js 12281 function minimizePortlet(portletSelector, trigger, options) { 12282 options = { 12283 doAsUserId: themeDisplay.getDoAsUserIdEncoded(), 12284 plid: themeDisplay.getPlid(), 12285 ...options 12286 }; 12287 const portlet = document.querySelector(portletSelector); 12288 if (portlet) { 12289 const content = portlet.querySelector(".portlet-content-container"); 12290 if (content) { 12291 const minimized = content.classList.contains("d-none"); 12292 if (minimized) { 12293 content.classList.remove("d-none"); 12294 portlet.classList.remove("portlet-minimized"); 12295 } else { 12296 content.classList.add("d-none"); 12297 portlet.classList.add("portlet-minimized"); 12298 } 12299 if (trigger) { 12300 const title = minimized ? 'Minimize' : 'Restore'; 12301 trigger.setAttribute("alt", title); 12302 trigger.setAttribute("title", title); 12303 trigger.innerHTML = title; 12304 const icon = trigger.querySelector("i"); 12305 if (icon) { 12306 icon.classList.remove("icon-minus", "icon-resize-vertical"); 12307 if (minimized) { 12308 icon.classList.add("icon-minus"); 12309 icon.classList.remove("icon-resize-vertical"); 12310 } else { 12311 icon.classList.add("icon-resize-vertical"); 12312 icon.classList.remove("icon-minus"); 12313 } 12314 } 12315 } 12316 const portletId = getPortletId(portlet.id); 12317 const formData = objectToFormData({ 12318 cmd: "minimize", 12319 doAsUserId: options.doAsUserId, 12320 p_auth: Liferay.authToken, 12321 p_l_id: options.plid, 12322 p_p_id: portletId, 12323 p_p_restore: minimized, 12324 p_v_l_s_g_id: themeDisplay.getSiteGroupId() 12325 }); 12326 defaultFetch(themeDisplay.getPathMain() + "/portal/update_layout", { 12327 body: formData, 12328 method: "POST" 12329 }).then((response) => { 12330 if (response.ok && minimized) { 12331 const params = { 12332 doAsUserId: options.doAsUserId, 12333 p_l_id: options.plid, 12334 p_p_boundary: false, 12335 p_p_id: portletId, 12336 p_p_isolated: true 12337 }; 12338 defaultFetch( 12339 createPortletURL( 12340 themeDisplay.getPathMain() + "/portal/render_portlet", 12341 params 12342 ) 12343 ).then((response2) => response2.text()).then((response2) => { 12344 const range = document.createRange(); 12345 range.selectNode(portlet); 12346 portlet.innerHTML = ""; 12347 const fragment = range.createContextualFragment(response2); 12348 portlet.appendChild(fragment); 12349 }).catch((error) => { 12350 if (true) { 12351 console.error(error); 12352 } 12353 }); 12354 } 12355 }).catch((error) => { 12356 if (true) { 12357 console.error(error); 12358 } 12359 }); 12360 } 12361 } 12362 } 12363 var portlet_es_default = { 12364 register: register_es_default 12365 }; 12366 12367
12367// src/main/resources/META-INF/resources/liferay/events/Disposable.js 12368 var Disposable = class { 12369 /** 12370 * Disposable constructor 12371 */ 12372 constructor() { 12373 this._disposed = false; 12374 } 12375 /** 12376 * Disposes of this instance's object references. Calls `disposeInternal`. 12377 */ 12378 dispose() { 12379 if (!this._disposed) { 12380 this.disposeInternal(); 12381 this._disposed = true; 12382 } 12383 } 12384 /** 12385 * Subclasses should override this method to implement any specific 12386 * disposing logic (like clearing references and calling `dispose` on other 12387 * disposables). 12388 */ 12389 disposeInternal() { 12390 } 12391 /** 12392 * Checks if this instance has already been disposed. 12393 * @return {boolean} 12394 */ 12395 isDisposed() { 12396 return this._disposed; 12397 } 12398 }; 12399 var Disposable_default = Disposable; 12400 12401
12401// src/main/resources/META-INF/resources/liferay/events/EventHandle.js 12402 var EventHandle = class extends Disposable_default { 12403 /** 12404 * EventHandle constructor 12405 * @param {!EventEmitter} emitter Emitter the event was subscribed to. 12406 * @param {string} event The name of the event that was subscribed to. 12407 * @param {!Function} listener The listener subscribed to the event. 12408 */ 12409 constructor(emitter, event, listener) { 12410 super(); 12411 this._emitter = emitter; 12412 this._event = event; 12413 this._listener = listener; 12414 } 12415 /** 12416 * Disposes of this instance's object references. 12417 * @override 12418 */ 12419 disposeInternal() { 12420 this.removeListener(); 12421 this._emitter = null; 12422 this._listener = null; 12423 } 12424 /** 12425 * Removes the listener subscription from the emitter. 12426 */ 12427 removeListener() { 12428 if (!this._emitter.isDisposed()) { 12429 this._emitter.removeListener(this._event, this._listener); 12430 } 12431 } 12432 }; 12433 var EventHandle_default = EventHandle; 12434 12435
12435// src/main/resources/META-INF/resources/liferay/events/EventEmitter.js 12436 var singleArray = [0]; 12437 var EventEmitter = class extends Disposable_default { 12438 /** 12439 * EventEmitter constructor 12440 */ 12441 constructor() { 12442 super(); 12443 this._events = null; 12444 this._listenerHandlers = null; 12445 this._shouldUseFacade = false; 12446 } 12447 /** 12448 * Adds a handler to given holder variable. If the holder doesn't have a 12449 * value yet, it will receive the handler directly. If the holder is an array, 12450 * the value will just be added to it. Otherwise, the holder will be set to a 12451 * new array containing its previous value plus the new handler. 12452 * @param {*} holder 12453 * @param {!function()|Object} handler 12454 * @return {*} The holder's new value. 12455 * @protected 12456 */ 12457 _addHandler(holder, handler) { 12458 if (!holder) { 12459 holder = handler; 12460 } else { 12461 if (!Array.isArray(holder)) { 12462 holder = [holder]; 12463 } 12464 holder.push(handler); 12465 } 12466 return holder; 12467 } 12468 /** 12469 * Adds a listener to the end of the listeners array for the specified events. 12470 * @param {!(Array|string)} event 12471 * @param {!Function} listener 12472 * @param {boolean} defaultListener Flag indicating if this listener is a default 12473 * action for this event. Default actions are run last, and only if no previous 12474 * listener call `preventDefault()` on the received event facade. 12475 * @return {!EventHandle} Can be used to remove the listener. 12476 */ 12477 addListener(event, listener, defaultListener) { 12478 this._validateListener(listener); 12479 const events = this._toEventsArray(event); 12480 for (let i = 0; i < events.length; i++) { 12481 this._addSingleListener(events[i], listener, defaultListener); 12482 } 12483 return new EventHandle_default(this, event, listener); 12484 } 12485 /** 12486 * Adds a listener to the end of the listeners array for a single event. 12487 * @param {string} event 12488 * @param {!Function} listener 12489 * @param {boolean} defaultListener Flag indicating if this listener is a default 12490 * action for this event. Default actions are run last, and only if no previous 12491 * listener call `preventDefault()` on the received event facade. 12492 * @param {Function=} origin The original function that was added as a 12493 * listener, if there is any. 12494 * @protected 12495 */ 12496 _addSingleListener(event, listener, defaultListener, origin) { 12497 this._runListenerHandlers(event); 12498 if (defaultListener || origin) { 12499 listener = { 12500 default: defaultListener, 12501 fn: listener, 12502 origin 12503 }; 12504 } 12505 this._events = this._events || {}; 12506 this._events[event] = this._addHandler(this._events[event], listener); 12507 } 12508 /** 12509 * Builds facade for the given event. 12510 * @param {string} event 12511 * @return {Object} 12512 * @protected 12513 */ 12514 _buildFacade(event) { 12515 if (this.getShouldUseFacade()) { 12516 const facade = { 12517 preventDefault() { 12518 facade.preventedDefault = true; 12519 }, 12520 target: this, 12521 type: event 12522 }; 12523 return facade; 12524 } 12525 } 12526 /** 12527 * Disposes of this instance's object references. 12528 * @override 12529 */ 12530 disposeInternal() { 12531 this._events = null; 12532 } 12533 /** 12534 * Execute each of the listeners in order with the supplied arguments. 12535 * @param {string} event 12536 * @param {*} opt_args [arg1], [arg2], [...] 12537 * @return {boolean} Returns true if event had listeners, false otherwise. 12538 */ 12539 emit(event) { 12540 const listeners = this._getRawListeners(event); 12541 if (!listeners.length) { 12542 return false; 12543 } 12544 const args = Array.prototype.slice.call(arguments, 1); 12545 this._runListeners(listeners, args, this._buildFacade(event)); 12546 return true; 12547 } 12548 /** 12549 * Gets the listener objects for the given event, if there are any. 12550 * @param {string} event 12551 * @return {!Array} 12552 * @protected 12553 */ 12554 _getRawListeners(event) { 12555 const directListeners = toArray2(this._events && this._events[event]); 12556 return directListeners.concat( 12557 toArray2(this._events && this._events["*"]) 12558 ); 12559 } 12560 /** 12561 * Gets the configuration option which determines if an event facade should 12562 * be sent as a param of listeners when emitting events. If set to true, the 12563 * facade will be passed as the first argument of the listener. 12564 * @return {boolean} 12565 */ 12566 getShouldUseFacade() { 12567 return this._shouldUseFacade; 12568 } 12569 /** 12570 * Returns an array of listeners for the specified event. 12571 * @param {string} event 12572 * @return {Array} Array of listeners. 12573 */ 12574 listeners(event) { 12575 return this._getRawListeners(event).map( 12576 (listener) => listener.fn ? listener.fn : listener 12577 ); 12578 } 12579 /** 12580 * Adds a listener that will be invoked a fixed number of times for the 12581 * events. After each event is triggered the specified amount of times, the 12582 * listener is removed for it. 12583 * @param {!(Array|string)} event 12584 * @param {number} amount The amount of times this event should be listened 12585 * to. 12586 * @param {!Function} listener 12587 * @return {!EventHandle} Can be used to remove the listener. 12588 */ 12589 many(event, amount, listener) { 12590 const events = this._toEventsArray(event); 12591 for (let i = 0; i < events.length; i++) { 12592 this._many(events[i], amount, listener); 12593 } 12594 return new EventHandle_default(this, event, listener); 12595 } 12596 /** 12597 * Adds a listener that will be invoked a fixed number of times for a single 12598 * event. After the event is triggered the specified amount of times, the 12599 * listener is removed. 12600 * @param {string} event 12601 * @param {number} amount The amount of times this event should be listened 12602 * to. 12603 * @param {!Function} listener 12604 * @protected 12605 */ 12606 _many(event, amount, listener) { 12607 const self2 = this; 12608 if (amount <= 0) { 12609 return; 12610 } 12611 function handlerInternal() { 12612 if (--amount === 0) { 12613 self2.removeListener(event, handlerInternal); 12614 } 12615 listener.apply(self2, arguments); 12616 } 12617 self2._addSingleListener(event, handlerInternal, false, listener); 12618 } 12619 /** 12620 * Checks if a listener object matches the given listener function. To match, 12621 * it needs to either point to that listener or have it as its origin. 12622 * @param {!Object} listenerObj 12623 * @param {!Function} listener 12624 * @return {boolean} 12625 * @protected 12626 */ 12627 _matchesListener(listenerObj, listener) { 12628 const fn = listenerObj.fn || listenerObj; 12629 return fn === listener || listenerObj.origin && listenerObj.origin === listener; 12630 } 12631 /** 12632 * Removes a listener for the specified events. 12633 * Caution: changes array indices in the listener array behind the listener. 12634 * @param {!(Array|string)} event 12635 * @param {!Function} listener 12636 * @return {!Object} Returns emitter, so calls can be chained. 12637 */ 12638 off(event, listener) {
12639 this._validateListener(listener); 12640 if (!this._events) { 12641 return this; 12642 } 12643 const events = this._toEventsArray(event); 12644 for (let i = 0; i < events.length; i++) { 12645 this._events[events[i]] = this._removeMatchingListenerObjs( 12646 toArray2(this._events[events[i]]), 12647 listener 12648 ); 12649 } 12650 return this; 12651 } 12652 /** 12653 * Adds a listener to the end of the listeners array for the specified events. 12654 * @param {!(Array|string)} events 12655 * @param {!Function} listener 12656 * @return {!EventHandle} Can be used to remove the listener. 12657 */ 12658 on() { 12659 return this.addListener.apply(this, arguments); 12660 } 12661 /** 12662 * Adds handler that gets triggered when an event is listened to on this 12663 * instance. 12664 * @param {!function()} handler 12665 */ 12666 onListener(handler) { 12667 this._listenerHandlers = this._addHandler( 12668 this._listenerHandlers, 12669 handler 12670 ); 12671 } 12672 /** 12673 * Adds a one time listener for the events. This listener is invoked only the 12674 * next time each event is fired, after which it is removed. 12675 * @param {!(Array|string)} events 12676 * @param {!Function} listener 12677 * @return {!EventHandle} Can be used to remove the listener. 12678 */ 12679 once(events, listener) { 12680 return this.many(events, 1, listener); 12681 } 12682 /** 12683 * Removes all listeners, or those of the specified events. It's not a good 12684 * idea to remove listeners that were added elsewhere in the code, 12685 * especially when it's on an emitter that you didn't create. 12686 * @param {(Array|string)=} event 12687 * @return {!Object} Returns emitter, so calls can be chained. 12688 */ 12689 removeAllListeners(event) { 12690 if (this._events) { 12691 if (event) { 12692 const events = this._toEventsArray(event); 12693 for (let i = 0; i < events.length; i++) { 12694 this._events[events[i]] = null; 12695 } 12696 } else { 12697 this._events = null; 12698 } 12699 } 12700 return this; 12701 } 12702 /** 12703 * Removes all listener objects from the given array that match the given 12704 * listener function. 12705 * @param {Array.<Object>} listenerObjs 12706 * @param {!Function} listener 12707 * @return {Array.<Object>|Object} The new listeners array for this event. 12708 * @protected 12709 */ 12710 _removeMatchingListenerObjs(listenerObjs, listener) { 12711 const finalListeners = []; 12712 for (let i = 0; i < listenerObjs.length; i++) { 12713 if (!this._matchesListener(listenerObjs[i], listener)) { 12714 finalListeners.push(listenerObjs[i]); 12715 } 12716 } 12717 return finalListeners.length ? finalListeners : null; 12718 } 12719 /** 12720 * Removes a listener for the specified events. 12721 * Caution: changes array indices in the listener array behind the listener. 12722 * @param {!(Array|string)} events 12723 * @param {!Function} listener 12724 * @return {!Object} Returns emitter, so calls can be chained. 12725 */ 12726 removeListener() { 12727 return this.off.apply(this, arguments); 12728 } 12729 /** 12730 * Runs the handlers when an event is listened to. 12731 * @param {string} event 12732 * @protected 12733 */ 12734 _runListenerHandlers(event) { 12735 let handlers = this._listenerHandlers; 12736 if (handlers) { 12737 handlers = toArray2(handlers); 12738 for (let i = 0; i < handlers.length; i++) { 12739 handlers[i](event); 12740 } 12741 } 12742 } 12743 /** 12744 * Runs the given listeners. 12745 * @param {!Array} listeners 12746 * @param {!Array} args 12747 * @param {Object} facade 12748 * @protected 12749 */ 12750 _runListeners(listeners, args, facade) { 12751 if (facade) { 12752 args.push(facade); 12753 } 12754 const defaultListeners = []; 12755 for (let i = 0; i < listeners.length; i++) { 12756 const listener = listeners[i].fn || listeners[i]; 12757 if (listeners[i].default) { 12758 defaultListeners.push(listener); 12759 } else { 12760 listener.apply(this, args); 12761 } 12762 } 12763 if (!facade || !facade.preventedDefault) { 12764 for (let j = 0; j < defaultListeners.length; j++) { 12765 defaultListeners[j].apply(this, args); 12766 } 12767 } 12768 } 12769 /** 12770 * Sets the configuration option which determines if an event facade should 12771 * be sent as a param of listeners when emitting events. If set to true, the 12772 * facade will be passed as the first argument of the listener. 12773 * @param {boolean} shouldUseFacade 12774 * @return {!Object} Returns emitter, so calls can be chained. 12775 */ 12776 setShouldUseFacade(shouldUseFacade) { 12777 this._shouldUseFacade = shouldUseFacade; 12778 return this; 12779 } 12780 /** 12781 * Converts the parameter to an array if only one event is given. Reuses the 12782 * same array each time this conversion is done, to avoid using more memory 12783 * than necessary. 12784 * @param {!(Array|string)} events 12785 * @return {!Array} 12786 * @protected 12787 */ 12788 _toEventsArray(events) { 12789 if (typeof events === "string") { 12790 singleArray[0] = events; 12791 events = singleArray; 12792 } 12793 return events; 12794 } 12795 /** 12796 * Checks if the given listener is valid, throwing an exception when it's not. 12797 * @param {*} listener 12798 * @protected 12799 */ 12800 _validateListener(listener) { 12801 if (typeof listener !== "function") { 12802 throw new TypeError("Listener must be a function"); 12803 } 12804 } 12805 }; 12806 function toArray2(val) { 12807 val = val || []; 12808 return Array.isArray(val) ? val : [val]; 12809 } 12810 var EventEmitter_default = EventEmitter; 12811 12812
12812// src/main/resources/META-INF/resources/liferay/throttle.es.js 12813 function throttle(fn, interval) { 12814 let timeout = null; 12815 let last; 12816 return function(...args) { 12817 const context = this; 12818 const now = Date.now(); 12819 const schedule = () => { 12820 timeout = setTimeout(() => { 12821 timeout = null; 12822 }, interval); 12823 last = now; 12824 fn.apply(context, args); 12825 }; 12826 if (timeout === null) { 12827 schedule(); 12828 } else { 12829 const remaining = Math.max(last + interval - now, 0); 12830 clearTimeout(timeout); 12831 timeout = setTimeout(schedule, remaining); 12832 } 12833 }; 12834 } 12835 12836
12836// src/main/resources/META-INF/resources/liferay/side_navigation.es.js 12837 var DEFAULTS = { 12838 breakpoint: 576, 12839 content: ".sidenav-content", 12840 gutter: "12px", 12841 loadingIndicatorTPL: '<div class="loading-animation loading-animation-md"></div>', 12842 navigation: ".sidenav-menu-slider", 12843 position: "left", 12844 type: "relative", 12845 typeMobile: "relative", 12846 url: null, 12847 width: "225px" 12848 }; 12849 var INSTANCE_MAP = /* @__PURE__ */ new WeakMap(); 12850 function getElement(element) { 12851 if (element && element.jquery) { 12852 if (element.length > 1) { 12853 throw new Error( 12854 `getElement(): Expected at most one element, got ${element.length}` 12855 ); 12856 } 12857 element = element.get(0); 12858 } 12859 if (element && !(element instanceof HTMLElement)) { 12860 element = element.element; 12861 } 12862 return element; 12863 } 12864 function getInstance(element) { 12865 element = getElement(element); 12866 const instance = INSTANCE_MAP.get(element); 12867 return instance; 12868 } 12869 var IDENTITY_ATTRIBUTES = [/^aria-/, /^data-/, /^type$/]; 12870 function getUniqueSelector(element) { 12871 element = getElement(element); 12872 if (element.id) { 12873 return `#${element.id}`; 12874 } 12875 let ancestorWithId = element.parentNode; 12876 while (ancestorWithId) { 12877 if (ancestorWithId.id) { 12878 break; 12879 } 12880 ancestorWithId = ancestorWithId.parentNode; 12881 } 12882 const attributes = Array.from(element.attributes).map(({ name, value }) => { 12883 const isIdentifying = IDENTITY_ATTRIBUTES.some((regExp) => { 12884 return regExp.test(name); 12885 }); 12886 return isIdentifying ? `[${name}=${JSON.stringify(value)}]` : null; 12887 }).filter(Boolean).sort(); 12888 return [ 12889 ancestorWithId ? `#${ancestorWithId.id} ` : "", 12890 element.tagName.toLowerCase(), 12891 ...attributes 12892 ].join(""); 12893 } 12894 function dispatchCustomEvent(element, eventName, detail = null) { 12895 const customEvent = new CustomEvent(eventName, { detail }); 12896 element.dispatchEvent(customEvent); 12897 } 12898 function addClass(element, className) { 12899 setClasses(element, { 12900 [className]: true 12901 }); 12902 } 12903 function removeClass(element, className) { 12904 setClasses(element, { 12905 [className]: false 12906 }); 12907 } 12908 function setClasses(element, classes) { 12909 element = getElement(element); 12910 if (element) { 12911 Object.entries(classes).forEach(([className, present]) => { 12912 className.split(/\s+/).forEach((name) => { 12913 if (present) { 12914 element.classList.add(name); 12915 } else { 12916 element.classList.remove(name); 12917 } 12918 }); 12919 }); 12920 } 12921 } 12922 function hasClass(element, className) { 12923 element = getElement(element); 12924 return className.split(/\s+/).every((name) => { 12925 return element.classList.contains(name); 12926 }); 12927 } 12928 function setStyles(element, styles) { 12929 element = getElement(element); 12930 if (element) { 12931 Object.entries(styles).forEach(([property, value]) => { 12932 element.style[property] = value; 12933 }); 12934 } 12935 } 12936 function px(dimension) { 12937 if (typeof dimension === "number") { 12938 return dimension + "px"; 12939 } else if (typeof dimension === "string" && dimension.match(/^\s*\d+\s*$/)) { 12940 return dimension.trim() + "px"; 12941 } else { 12942 return dimension; 12943 } 12944 } 12945 function offsetLeft(element) { 12946 const elementLeft = element.getBoundingClientRect().left; 12947 const documentOffset = element.ownerDocument.defaultView.pageOffsetX || 0; 12948 return elementLeft + documentOffset; 12949 } 12950 var eventNamesToSelectors = {}; 12951 function handleEvent(eventName, event) { 12952 Object.keys(eventNamesToSelectors[eventName]).forEach((selector) => { 12953 let matches = false; 12954 let target = event.target; 12955 while (target) { 12956 matches = target.matches && target.matches(selector); 12957 if (matches) { 12958 break; 12959 } 12960 target = target.parentNode; 12961 } 12962 if (matches) { 12963 const emitter = eventNamesToSelectors[eventName][selector]; 12964 emitter.emit("click", event); 12965 } 12966 }); 12967 } 12968 var handleWindowResize; 12969 function setupResizeListener() { 12970 if (!handleWindowResize) { 12971 handleWindowResize = throttle(() => { 12972 dispatchCustomEvent(document, "screenChange.lexicon.sidenav"); 12973 }, 150); 12974 window.addEventListener("resize", handleWindowResize); 12975 } 12976 } 12977 function subscribe(elementOrSelector, eventName, handler) { 12978 if (elementOrSelector) { 12979 if (!eventNamesToSelectors[eventName]) { 12980 eventNamesToSelectors[eventName] = {}; 12981 document.addEventListener( 12982 eventName, 12983 (event) => handleEvent(eventName, event) 12984 ); 12985 } 12986 const emitters = eventNamesToSelectors[eventName]; 12987 const selector = typeof elementOrSelector === "string" ? elementOrSelector : getUniqueSelector(elementOrSelector); 12988 if (!emitters[selector]) { 12989 emitters[selector] = new EventEmitter_default(); 12990 } 12991 const emitter = emitters[selector]; 12992 const subscription = emitter.on(eventName, (event) => { 12993 if (!event.defaultPrevented) { 12994 handler(event); 12995 } 12996 }); 12997 return { 12998 dispose() { 12999 subscription.dispose(); 13000 } 13001 }; 13002 } 13003 return null; 13004 } 13005 function toInt(str) { 13006 return parseInt(str, 10) || 0; 13007 } 13008 function SideNavigation(toggler, options) { 13009 toggler = getElement(toggler); 13010 this.init(toggler, options); 13011 } 13012 SideNavigation.TRANSITION_DURATION = 500; 13013 SideNavigation.prototype = { 13014 _bindUI() { 13015 this._subscribeClickTrigger(); 13016 this._subscribeReducedMotion(); 13017 this._subscribeClickSidenavClose(); 13018 }, 13019 _emit(event) { 13020 this._emitter.emit(event, this); 13021 }, 13022 _focusNavigation() { 13023 const container = document.querySelector(this.options.container); 13024 if (!container) { 13025 return; 13026 } 13027 const navigation = container.querySelector(this.options.navigation); 13028 if (!navigation) { 13029 container.focus(); 13030 return; 13031 } 13032 navigation.focus(); 13033 }, 13034 _focusTrigger() { 13035 const toggler = this.toggler; 13036 if (!toggler || !document.activeElement.classList.contains("sidenav-close")) { 13037 return; 13038 } 13039 toggler.focus(); 13040 }, 13041 _getSidenavWidth() { 13042 const options = this.options; 13043 const widthOriginal = options.widthOriginal; 13044 let width = widthOriginal; 13045 const winWidth = window.innerWidth; 13046 if (winWidth < widthOriginal + 40) { 13047 width = winWidth - 40; 13048 } 13049 return width; 13050 }, 13051 _getSimpleSidenavType() { 13052 const type = this._getType(); 13053 if (this._isDesktop() && type === "fixed-push") { 13054 return "desktop-fixed-push"; 13055 } else if (!this._isDesktop() && type === "fixed-push") { 13056 return "mobile-fixed-push"; 13057 } 13058 return "fixed"; 13059 }, 13060 _getType() { 13061 return this._isDesktop() ? this.options.type : this.options.typeMobile; 13062 }, 13063 _isDesktop() { 13064 return window.innerWidth >= this.options.breakpoint; 13065 }, 13066 _isSidenavRight() { 13067 const options = this.options; 13068 const container = document.querySelector(options.container); 13069 if (!container) { 13070 return; 13071 } 13072 const isSidenavRight = hasClass(container, "sidenav-right"); 13073 return isSidenavRight; 13074 }, 13075 _isSimpleSidenavClosed() { 13076 const options = this.options; 13077 const openClass = options.openClass; 13078 const container = document.querySelector(options.container); 13079 if (!container) { 13080 return; 13081 } 13082 return !hasClass(container, openClass); 13083 }, 13084 _loadUrl(element, url) { 13085 const instance = this; 13086 const sidebar = element.querySelector(".sidebar-body"); 13087 if (!instance._fetchPromise && sidebar) { 13088 while (sidebar.firstChild) { 13089 sidebar.removeChild(sidebar.firstChild); 13090 } 13091 const loading = document.createElement("div"); 13092 addClass(loading, "sidenav-loading"); 13093 loading.innerHTML = instance.options.loadingIndicatorTPL; 13094 sidebar.appendChild(loading); 13095 instance._fetchPromise = defaultFetch(url); 13096 instance._fetchPromise.then((response) => { 13097 if (!response.ok) { 13098 throw new Error(`Failed to fetch ${url}`); 13099 } 13100 return response.text(); 13101 }).then((text) => { 13102 const range = document.createRange(); 13103 range.selectNode(sidebar); 13104 const fragment = range.createContextualFragment(text); 13105 sidebar.removeChild(loading); 13106 sidebar.appendChild(fragment); 13107 instance.setHeight(); 13108 }).catch((error) => { 13109 console.error(error); 13110 }); 13111 } 13112 }, 13113 _onClosed() { 13114 const options = this.options; 13115 const container = document.querySelector(options.container); 13116 if (!container) { 13117 return; 13118 } 13119 if (!this._handleClosed) { 13120 this._handleClosed = () => { 13121 const type = this._getType(); 13122 if (type === "relative" && hasClass(container, "open")) { 13123 removeClass(container, "sidenav-transition"); 13124 } 13125 }; 13126 document.addEventListener( 13127 "closed.lexicon.sidenav", 13128 this._handleClosed 13129 ); 13130 } 13131 }, 13132 _onClosedStart() { 13133 const options = this.options; 13134 const container = document.querySelector(options.container); 13135 const content = document.querySelector(options.content); 13136 if (!container || !content) { 13137 return; 13138 } 13139 if (!this._handleClosedStart) { 13140 this._handleClosedStart = () => { 13141 const type = this._getType(); 13142 if (type === "relative" && hasClass(container, "open") && content.closest(".page-maximized")) { 13143 let contentMargin = document.body.scrollWidth - content.getBoundingClientRect().right; 13144 let paddingRight = options.gutter + options.width; 13145 const contentMaxWidth = getComputedStyle(content).maxWidth || getComputedStyle(content).width; 13146 if (/px$/.test(contentMaxWidth)) { 13147 contentMargin = (document.body.scrollWidth - toInt(contentMaxWidth)) / 2; 13148 if (contentMargin > options.width) { 13149 paddingRight = ""; 13150 } else if (contentMargin > 0 && contentMargin < options.width) { 13151 paddingRight = options.gutter + options.width - contentMargin; 13152 } 13153 } 13154 if (!this.isReducedMotion()) { 13155 addClass(container, "sidenav-transition"); 13156 } 13157 setStyles(content, { 13158 "padding-right": px(paddingRight) 13159 }); 13160 } 13161 }; 13162 document.addEventListener( 13163 "closedStart.lexicon.sidenav", 13164 this._handleClosedStart 13165 ); 13166 } 13167 }, 13168 _onOpen() { 13169 const options = this.options; 13170 const container = document.querySelector(options.container); 13171 if (!container) { 13172 return; 13173 } 13174 if (!this._handleOpen) { 13175 this._handleOpen = () => { 13176 const type = this._getType(); 13177 if (type === "relative" && hasClass(container, "open")) { 13178 removeClass(container, "sidenav-transition"); 13179 } 13180 }; 13181 document.addEventListener("open.lexicon.sidenav", this._handleOpen); 13182 } 13183 }, 13184 _onOpenStart() { 13185 const options = this.options; 13186 const container = document.querySelector(options.container); 13187 const content = document.querySelector(options.content); 13188 if (!container || !content) { 13189 return; 13190 } 13191 if (!this._handleOpenStart) { 13192 this._handleOpenStart = (event) => { 13193 const type = this._getType(); 13194 if (type === "relative" && hasClass(container, "open") && content.closest(".page-maximized")) { 13195 const otherMenu = document.querySelector( 13196 event.detail.options.container + " .sidenav-menu" 13197 ); 13198 if (!otherMenu) { 13199 return; 13200 } 13201 const otherMenuWidth = otherMenu.getBoundingClientRect().width; 13202 const contentMargin = document.body.scrollWidth - content.getBoundingClientRect().right - otherMenuWidth / 2; 13203 const paddingRight = contentMargin > 0 ? options.width + options.gutter - contentMargin : options.width + options.gutter; 13204 if (!this.isReducedMotion()) { 13205 addClass(container, "sidenav-transition"); 13206 } 13207 setStyles(content, { 13208 "padding-right": px(paddingRight) 13209 }); 13210 } 13211 }; 13212 document.addEventListener( 13213 "openStart.lexicon.sidenav", 13214 this._handleOpenStart 13215 ); 13216 } 13217 }, 13218 _onScreenChange() { 13219 const options = this.options; 13220 const container = document.querySelector(options.container); 13221 const content = document.querySelector(options.content); 13222 if (!container || !content) { 13223 return; 13224 } 13225 let originalIsDesktop = this._isDesktop(); 13226 if (!this._handleOnScreenChange) { 13227 this._handleOnScreenChange = () => { 13228 const type = this._getType(); 13229 if (type === "relative" && hasClass(container, "open")) { 13230 this.setHeight(); 13231 this.setWidth(); 13232 } 13233 if (this._isDesktop() !== originalIsDesktop) { 13234 if (type !== "relative") { 13235 addClass(container, "sidenav-fixed"); 13236 content.style.paddingRight = ""; 13237 content.style.minHeight = ""; 13238 } else { 13239 removeClass(container, "sidenav-fixed"); 13240 } 13241 originalIsDesktop = this._isDesktop(); 13242 } 13243 }; 13244 document.addEventListener( 13245 "screenChange.lexicon.sidenav", 13246 this._handleOnScreenChange 13247 ); 13248 } 13249 }, 13250 _renderNav() { 13251 const options = this.options; 13252 const container = document.querySelector(options.container); 13253 const navigation = container.querySelector(options.navigation); 13254 if (!container || !navigation) { 13255 return; 13256 } 13257 const menu = navigation.querySelector(".sidenav-menu"); 13258 const closed = hasClass(container, "closed"); 13259 const sidenavRight = this._isSidenavRight(); 13260 const width = this._getSidenavWidth(); 13261 if (closed) { 13262 setStyles(menu, { 13263 width: px(width) 13264 }); 13265 if (sidenavRight) { 13266 const positionDirection = options.rtl ? "left" : "right"; 13267 setStyles(menu, { 13268 [positionDirection]: px(width) 13269 }); 13270 } 13271 } else { 13272 this.showSidenav(); 13273 this.setHeight(); 13274 } 13275 }, 13276 _renderUI() { 13277 const options = this.options; 13278 const container = document.querySelector(options.container); 13279 if (!container) { 13280 return; 13281 } 13282 const toggler = this.toggler; 13283 const type = this._getType(); 13284 if (!this.useDataAttribute) { 13285 setupResizeListener(); 13286 this._onClosedStart(); 13287 this._onClosed(); 13288 this._onOpenStart(); 13289 this._onOpen(); 13290 this._onScreenChange(); 13291 if (!this._isDesktop()) { 13292 setClasses(container, { 13293 closed: true, 13294 open: false 13295 }); 13296 setClasses(toggler, { 13297 active: false, 13298 open: false 13299 }); 13300 } 13301 if (options.position === "right") { 13302 addClass(container, "sidenav-right"); 13303 } 13304 if (type !== "relative") { 13305 addClass(container, "sidenav-fixed"); 13306 } 13307 this._renderNav(); 13308 } 13309 setStyles(container, { 13310 display: "" 13311 }); 13312 }, 13313 _subscribeClickSidenavClose() { 13314 const instance = this; 13315 const options = instance.options; 13316 const containerSelector = options.container; 13317 if (!instance._sidenavCloseSubscription) { 13318 const closeButtonSelector = `${containerSelector} .sidenav-close`; 13319 instance._sidenavCloseSubscription = subscribe( 13320 closeButtonSelector, 13321 "click", 13322 function handleSidenavClose(event) { 13323 event.preventDefault();
13324 instance.toggle(); 13325 } 13326 ); 13327 } 13328 }, 13329 _subscribeClickTrigger() { 13330 const instance = this; 13331 if (!instance._togglerSubscription) { 13332 const toggler = instance.toggler; 13333 instance._togglerSubscription = subscribe( 13334 toggler, 13335 "click", 13336 function handleTogglerClick(event) { 13337 instance.toggle(); 13338 event.preventDefault(); 13339 } 13340 ); 13341 } 13342 }, 13343 _subscribeReducedMotion() { 13344 const instance = this; 13345 import( 13346 // eslint-disable-next-line lines-around-comment 13347 /* webpackIgnore: true */ 13348 themeDisplay.getPathContext() + "/o/frontend-js-web/__liferay__/index.js" 13349 ).then(({ isReducedMotion }) => { 13350 instance.isReducedMotion = isReducedMotion; 13351 }); 13352 }, 13353 _subscribeSidenavTransitionEnd(element, fn) { 13354 if (this.isReducedMotion()) { 13355 removeClass(element, "sidenav-transition"); 13356 fn(); 13357 } else { 13358 setTimeout(() => { 13359 removeClass(element, "sidenav-transition"); 13360 fn(); 13361 }, SideNavigation.TRANSITION_DURATION); 13362 } 13363 }, 13364 clearHeight() { 13365 const options = this.options; 13366 const container = document.querySelector(options.container); 13367 if (container) { 13368 const content = container.querySelector(options.content); 13369 const navigation = container.querySelector(options.navigation); 13370 const menu = container.querySelector(".sidenav-menu"); 13371 [content, navigation, menu].forEach((element) => { 13372 setStyles(element, { 13373 "height": "", 13374 "min-height": "" 13375 }); 13376 }); 13377 } 13378 }, 13379 destroy() { 13380 const instance = this; 13381 if (instance._sidenavCloseSubscription) { 13382 instance._sidenavCloseSubscription.dispose(); 13383 instance._sidenavCloseSubscription = null; 13384 } 13385 if (instance._togglerSubscription) { 13386 instance._togglerSubscription.dispose(); 13387 instance._togglerSubscription = null; 13388 } 13389 INSTANCE_MAP.delete(instance.toggler); 13390 document.removeEventListener( 13391 "closedStart.lexicon.sidenav", 13392 instance._handleClosedStart 13393 ); 13394 document.removeEventListener( 13395 "closed.lexicon.sidenav", 13396 instance._handleClosed 13397 ); 13398 document.removeEventListener( 13399 "openStart.lexicon.sidenav", 13400 instance._handleOpenStart 13401 ); 13402 document.removeEventListener( 13403 "open.lexicon.sidenav", 13404 instance._handleOpen 13405 ); 13406 document.removeEventListener( 13407 "screenChange.lexicon.sidenav", 13408 instance._handleOnScreenChange 13409 ); 13410 if (handleWindowResize) { 13411 window.removeEventListener("resize", handleWindowResize); 13412 handleWindowResize = null; 13413 } 13414 }, 13415 hide() { 13416 if (this.useDataAttribute) { 13417 this.hideSimpleSidenav(); 13418 } else { 13419 this.toggleNavigation(false); 13420 } 13421 }, 13422 hideSidenav() { 13423 const instance = this; 13424 const options = instance.options; 13425 const container = document.querySelector(options.container); 13426 if (container) { 13427 const content = container.querySelector(options.content); 13428 const navigation = container.querySelector(options.navigation); 13429 const menu = navigation.querySelector(".sidenav-menu"); 13430 const sidenavRight = instance._isSidenavRight(); 13431 let positionDirection = options.rtl ? "right" : "left"; 13432 if (sidenavRight) { 13433 positionDirection = options.rtl ? "left" : "right"; 13434 } 13435 const paddingDirection = "padding-" + positionDirection; 13436 setStyles(content, { 13437 [paddingDirection]: "", 13438 [positionDirection]: "" 13439 }); 13440 setStyles(navigation, { 13441 width: "" 13442 }); 13443 if (sidenavRight) { 13444 setStyles(menu, { 13445 [positionDirection]: px(instance._getSidenavWidth()) 13446 }); 13447 } 13448 instance._subscribeSidenavTransitionEnd(menu, () => { 13449 instance._focusTrigger(); 13450 }); 13451 } 13452 }, 13453 hideSimpleSidenav() { 13454 const instance = this; 13455 const options = instance.options; 13456 const simpleSidenavClosed = instance._isSimpleSidenavClosed(); 13457 if (!simpleSidenavClosed) { 13458 const container = document.querySelector(options.container); 13459 const content = document.querySelector(options.content); 13460 if (!container || !content) { 13461 return; 13462 } 13463 const closedClass = options.closedClass; 13464 const openClass = options.openClass; 13465 const toggler = instance.toggler; 13466 const target = toggler.dataset.target || toggler.getAttribute("href");
13467 instance._emit("closedStart.lexicon.sidenav"); 13468 dispatchCustomEvent( 13469 document, 13470 "closedStart.lexicon.sidenav", 13471 instance 13472 ); 13473 instance._subscribeSidenavTransitionEnd(content, () => { 13474 removeClass(container, "sidenav-transition"); 13475 removeClass(toggler, "sidenav-transition"); 13476 instance._emit("closed.lexicon.sidenav"); 13477 dispatchCustomEvent( 13478 document, 13479 "closed.lexicon.sidenav", 13480 instance 13481 ); 13482 instance._focusTrigger(); 13483 }); 13484 const isReducedMotion = instance.isReducedMotion(); 13485 if (hasClass(content, openClass)) { 13486 setClasses(content, { 13487 [closedClass]: true, 13488 [openClass]: false, 13489 "sidenav-transition": !isReducedMotion 13490 }); 13491 } 13492 if (!isReducedMotion) { 13493 addClass(container, "sidenav-transition"); 13494 addClass(toggler, "sidenav-transition"); 13495 } 13496 setClasses(container, { 13497 [closedClass]: true, 13498 [openClass]: false 13499 }); 13500 const nodes = document.querySelectorAll( 13501 `[data-target="${target}"], [href="${target}"]` 13502 ); 13503 Array.from(nodes).forEach((node) => { 13504 setClasses(node, { 13505 active: false, 13506 [openClass]: false 13507 }); 13508 setClasses(node, { 13509 active: false, 13510 [openClass]: false 13511 }); 13512 }); 13513 } 13514 }, 13515 init(toggler, options) { 13516 const useDataAttribute = toggler.dataset.toggle === "liferay-sidenav"; 13517 options = { ...DEFAULTS, ...options }; 13518 options.breakpoint = toInt(options.breakpoint); 13519 options.container = options.container || toggler.dataset.target || toggler.getAttribute("href"); 13520 options.gutter = toInt(options.gutter); 13521 options.rtl = document.dir === "rtl"; 13522 options.width = toInt(options.width); 13523 options.widthOriginal = options.width; 13524 if (useDataAttribute) { 13525 options.closedClass = toggler.dataset.closedClass || "closed"; 13526 options.content = toggler.dataset.content; 13527 options.loadingIndicatorTPL = toggler.dataset.loadingIndicatorTpl || options.loadingIndicatorTPL; 13528 options.openClass = toggler.dataset.openClass || "open"; 13529 options.type = toggler.dataset.type; 13530 options.typeMobile = toggler.dataset.typeMobile; 13531 options.url = toggler.dataset.url; 13532 options.width = ""; 13533 } 13534 this.toggler = toggler; 13535 this.options = options; 13536 this.useDataAttribute = useDataAttribute; 13537 this._emitter = new EventEmitter_default(); 13538 this._bindUI(); 13539 this._renderUI(); 13540 }, 13541 on(event, listener) { 13542 return this._emitter.on(event, listener); 13543 }, 13544 setHeight() { 13545 const options = this.options; 13546 const container = document.querySelector(options.container); 13547 if (!container) { 13548 return; 13549 } 13550 const type = this._getType(); 13551 if (type !== "fixed" && type !== "fixed-push") { 13552 const content = container.querySelector(options.content); 13553 const navigation = container.querySelector(options.navigation); 13554 const menu = container.querySelector(".sidenav-menu"); 13555 const contentHeight = content.closest(".page-maximized") ? window.innerHeight - menu.getBoundingClientRect().top : content.getBoundingClientRect().height; 13556 const navigationHeight = navigation.getBoundingClientRect().height; 13557 const tallest = px(Math.max(contentHeight, navigationHeight)); 13558 setStyles(content, { 13559 "min-height": tallest 13560 }); 13561 setStyles(navigation, { 13562 "height": "100%", 13563 "min-height": tallest 13564 }); 13565 setStyles(menu, { 13566 "height": "100%", 13567 "min-height": tallest 13568 }); 13569 } 13570 }, 13571 setWidth() { 13572 const options = this.options; 13573 const container = document.querySelector(options.container); 13574 const content = container.querySelector(options.content); 13575 const navigation = container.querySelector(options.navigation); 13576 if (!container || !content || !navigation) { 13577 return; 13578 } 13579 const menu = navigation.querySelector(".sidenav-menu"); 13580 const sidenavRight = this._isSidenavRight(); 13581 const width = this._getSidenavWidth(); 13582 const offset = width + options.gutter; 13583 const url = options.url; 13584 if (url) { 13585 this._loadUrl(menu, url); 13586 } 13587 setStyles(navigation, { 13588 width: px(width) 13589 }); 13590 setStyles(menu, { 13591 width: px(width) 13592 }); 13593 let positionDirection = options.rtl ? "right" : "left"; 13594 if (sidenavRight) { 13595 positionDirection = options.rtl ? "left" : "right"; 13596 } 13597 const paddingDirection = "padding-" + positionDirection; 13598 const pushContentCssProperty = this._isDesktop() ? paddingDirection : positionDirection; 13599 const type = this._getType(); 13600 if (type !== "relative") { 13601 addClass(container, "sidenav-fixed"); 13602 } 13603 if (type !== "fixed") { 13604 let navigationStartX = hasClass(container, "open") ? offsetLeft(navigation) - options.gutter : offsetLeft(navigation) - offset; 13605 const contentStartX = offsetLeft(content); 13606 const contentWidth = toInt(getComputedStyle(content).width); 13607 let padding = ""; 13608 if (options.rtl && sidenavRight || !options.rtl && options.position === "left") { 13609 navigationStartX = offsetLeft(navigation) + offset; 13610 if (navigationStartX > contentStartX) { 13611 padding = navigationStartX - contentStartX; 13612 } 13613 } else if (options.rtl && options.position === "left" || !options.rtl && sidenavRight) { 13614 if (navigationStartX < contentStartX + contentWidth) { 13615 padding = contentStartX + contentWidth - navigationStartX; 13616 if (padding >= offset) { 13617 padding = offset; 13618 } 13619 } 13620 } 13621 setStyles(content, { 13622 [pushContentCssProperty]: px(padding) 13623 }); 13624 } 13625 }, 13626 show() { 13627 if (this.useDataAttribute) { 13628 this.showSimpleSidenav(); 13629 } else { 13630 this.toggleNavigation(true); 13631 } 13632 }, 13633 showSidenav() { 13634 const instance = this; 13635 const options = instance.options; 13636 const container = document.querySelector(options.container); 13637 const navigation = container.querySelector(options.navigation); 13638 if (!container || !navigation) { 13639 return; 13640 } 13641 const menu = navigation.querySelector(".sidenav-menu"); 13642 const url = options.url; 13643 if (url) { 13644 instance._loadUrl(menu, url); 13645 } 13646 instance.setWidth(); 13647 instance._subscribeSidenavTransitionEnd(menu, () => { 13648 instance._focusNavigation(); 13649 }); 13650 }, 13651 showSimpleSidenav() { 13652 const instance = this; 13653 const options = instance.options; 13654 const simpleSidenavClosed = instance._isSimpleSidenavClosed(); 13655 if (simpleSidenavClosed) { 13656 const container = document.querySelector(options.container); 13657 const content = document.querySelector(options.content); 13658 if (!container || !content) { 13659 return; 13660 } 13661 const closedClass = options.closedClass; 13662 const openClass = options.openClass; 13663 const toggler = instance.toggler; 13664 const url = toggler.dataset.url; 13665 if (url) { 13666 instance._loadUrl(container, url); 13667 }
13668 instance._emit("openStart.lexicon.sidenav"); 13669 dispatchCustomEvent( 13670 document, 13671 "openStart.lexicon.sidenav", 13672 instance 13673 ); 13674 const isReducedMotion = instance.isReducedMotion(); 13675 setClasses(content, { 13676 [closedClass]: false, 13677 [openClass]: true, 13678 "sidenav-transition": !isReducedMotion 13679 }); 13680 setClasses(container, { 13681 [closedClass]: false, 13682 [openClass]: true, 13683 "sidenav-transition": !isReducedMotion 13684 }); 13685 setClasses(toggler, { 13686 "active": true, 13687 [openClass]: true, 13688 "sidenav-transition": !isReducedMotion 13689 }); 13690 instance._subscribeSidenavTransitionEnd(content, () => { 13691 if (!isReducedMotion) { 13692 removeClass(container, "sidenav-transition"); 13693 removeClass(toggler, "sidenav-transition"); 13694 } 13695 instance._emit("open.lexicon.sidenav"); 13696 dispatchCustomEvent(document, "open.lexicon.sidenav", instance); 13697 this._focusNavigation(); 13698 }); 13699 } 13700 }, 13701 toggle() { 13702 if (this.useDataAttribute) { 13703 this.toggleSimpleSidenav(); 13704 } else { 13705 this.toggleNavigation(); 13706 } 13707 }, 13708 toggleNavigation(force) { 13709 const instance = this; 13710 const options = instance.options; 13711 const type = instance._getType(); 13712 const container = document.querySelector(options.container); 13713 const menu = container.querySelector(".sidenav-menu"); 13714 if (!container || !menu) { 13715 return; 13716 } 13717 const toggler = instance.toggler; 13718 const width = options.width; 13719 const closed = typeof force === "boolean" ? force : hasClass(container, "closed"); 13720 const sidenavRight = instance._isSidenavRight(); 13721 if (closed) { 13722 instance._emit("openStart.lexicon.sidenav"); 13723 dispatchCustomEvent( 13724 document, 13725 "openStart.lexicon.sidenav", 13726 instance 13727 ); 13728 } else { 13729 instance._emit("closedStart.lexicon.sidenav"); 13730 dispatchCustomEvent( 13731 document, 13732 "closedStart.lexicon.sidenav", 13733 instance 13734 ); 13735 } 13736 instance._subscribeSidenavTransitionEnd(container, () => { 13737 const menu2 = container.querySelector(".sidenav-menu"); 13738 if (hasClass(container, "closed")) { 13739 instance.clearHeight(); 13740 setClasses(toggler, { 13741 "open": false, 13742 "sidenav-transition": false 13743 }); 13744 instance._emit("closed.lexicon.sidenav"); 13745 dispatchCustomEvent( 13746 document, 13747 "closed.lexicon.sidenav", 13748 instance 13749 ); 13750 } else { 13751 setClasses(toggler, { 13752 "open": true, 13753 "sidenav-transition": false 13754 }); 13755 instance._emit("open.lexicon.sidenav"); 13756 dispatchCustomEvent(document, "open.lexicon.sidenav", instance); 13757 } 13758 if (!instance._isDesktop()) { 13759 menu2.focus(); 13760 } 13761 }); 13762 if (closed) { 13763 if (type === "relative") { 13764 instance.setHeight(); 13765 } 13766 setStyles(menu, { 13767 width: px(width) 13768 }); 13769 const positionDirection = options.rtl ? "left" : "right"; 13770 if (sidenavRight) { 13771 setStyles(menu, { 13772 [positionDirection]: "" 13773 }); 13774 } 13775 } 13776 if (!instance.isReducedMotion()) { 13777 addClass(container, "sidenav-transition"); 13778 addClass(toggler, "sidenav-transition"); 13779 } 13780 if (closed) { 13781 instance.showSidenav(); 13782 } else { 13783 instance.hideSidenav(); 13784 } 13785 setClasses(container, { 13786 closed: !closed, 13787 open: closed 13788 }); 13789 setClasses(toggler, { 13790 active: closed, 13791 open: closed 13792 }); 13793 }, 13794 toggleSimpleSidenav() { 13795 const simpleSidenavClosed = this._isSimpleSidenavClosed(); 13796 if (simpleSidenavClosed) { 13797 this.showSimpleSidenav(); 13798 } else { 13799 this.hideSimpleSidenav(); 13800 } 13801 }, 13802 visible() { 13803 let closed; 13804 if (this.useDataAttribute) { 13805 closed = this._isSimpleSidenavClosed(); 13806 } else { 13807 const container = document.querySelector(this.options.container); 13808 if (!container) { 13809 return; 13810 } 13811 closed = hasClass(container, "sidenav-transition") ? !hasClass(container, "closed") : hasClass(container, "closed"); 13812 } 13813 return !closed; 13814 } 13815 }; 13816 SideNavigation.destroy = function destroy(element) { 13817 const instance = getInstance(element); 13818 if (instance) { 13819 instance.destroy(); 13820 } 13821 }; 13822 SideNavigation.hide = function hide(element) { 13823 const instance = getInstance(element); 13824 if (instance) { 13825 instance.hide(); 13826 } 13827 }; 13828 SideNavigation.initialize = function initialize(toggler, options = {}) { 13829 toggler = getElement(toggler); 13830 let instance = INSTANCE_MAP.get(toggler); 13831 if (!instance) { 13832 instance = new SideNavigation(toggler, options); 13833 INSTANCE_MAP.set(toggler, instance); 13834 } 13835 return instance; 13836 }; 13837 SideNavigation.instance = getInstance; 13838 function onReady() { 13839 const togglers = document.querySelectorAll( 13840 '[data-toggle="liferay-sidenav"]' 13841 );
13842 Array.from(togglers).forEach(SideNavigation.initialize); 13843 } 13844 if (document.readyState !== "loading") { 13845 onReady(); 13846 } else { 13847 document.addEventListener("DOMContentLoaded", () => { 13848 onReady(); 13849 }); 13850 } 13851 var side_navigation_es_default = SideNavigation; 13852 13853
13853// src/main/resources/META-INF/resources/liferay/status_code.js 13854 var status_code_default = { 13855 BAD_REQUEST: 400, 13856 INTERNAL_SERVER_ERROR: 500, 13857 OK: 200, 13858 SC_DUPLICATE_FILE_EXCEPTION: 490, 13859 SC_FILE_ANTIVIRUS_EXCEPTION: 494, 13860 SC_FILE_CUSTOM_EXCEPTION: 499, 13861 SC_FILE_EXTENSION_EXCEPTION: 491, 13862 SC_FILE_NAME_EXCEPTION: 492, 13863 SC_FILE_SIZE_EXCEPTION: 493, 13864 SC_UPLOAD_REQUEST_SIZE_EXCEPTION: 495 13865 }; 13866 13867
13867// src/main/resources/META-INF/resources/liferay/util/add_params.js 13868 function addParams(params, baseUrl) { 13869 if (!params || typeof params !== "object" && typeof params !== "string") { 13870 throw new TypeError("Parameter params must be an object or string"); 13871 } 13872 if (typeof baseUrl !== "string") { 13873 throw new TypeError("Parameter baseUrl must be a string"); 13874 } 13875 const url = baseUrl.startsWith("/") ? new URL(baseUrl, location.href) : new URL(baseUrl); 13876 if (typeof params === "object") { 13877 Object.entries(params).forEach(([key, value]) => { 13878 url.searchParams.append(key, value); 13879 }); 13880 } else { 13881 const searchParams = new URLSearchParams(params.trim()); 13882 searchParams.forEach((value, key) => { 13883 if (value) { 13884 url.searchParams.append(key, value); 13885 } else { 13886 url.searchParams.append(key, ""); 13887 } 13888 }); 13889 } 13890 return url.toString(); 13891 } 13892 13893
13893// src/main/resources/META-INF/resources/liferay/util/address/get_countries.es.js 13894 function getCountries(callback) { 13895 if (typeof callback !== "function") { 13896 throw new TypeError("Parameter callback must be a function"); 13897 } 13898 Liferay.Service( 13899 "/country/get-company-countries", 13900 { 13901 active: true, 13902 companyId: Liferay.ThemeDisplay.getCompanyId() 13903 }, 13904 callback 13905 ); 13906 } 13907 13908
13908// src/main/resources/META-INF/resources/liferay/util/address/get_regions.es.js 13909 function getRegions(callback, selectKey) { 13910 if (typeof callback !== "function") { 13911 throw new TypeError("Parameter callback must be a function"); 13912 } 13913 if (typeof selectKey !== "string") { 13914 throw new TypeError("Parameter selectKey must be a string"); 13915 } 13916 Liferay.Service( 13917 "/region/get-regions", 13918 { 13919 active: true, 13920 countryId: parseInt(selectKey, 10) 13921 }, 13922 callback 13923 ); 13924 } 13925 13926
13926// src/main/resources/META-INF/resources/liferay/util/consent.js 13927 var CONSENT_TYPES = { 13928 FUNCTIONAL: "CONSENT_TYPE_FUNCTIONAL", 13929 NECESSARY: "CONSENT_TYPE_NECESSARY", 13930 PERFORMANCE: "CONSENT_TYPE_PERFORMANCE", 13931 PERSONALIZATION: "CONSENT_TYPE_PERSONALIZATION" 13932 }; 13933 function checkConsent(type) { 13934 return type === CONSENT_TYPES.NECESSARY || getCookie(type, CONSENT_TYPES.NECESSARY) !== "false"; 13935 } 13936 13937
13937// src/main/resources/META-INF/resources/liferay/util/cookie/cookie.js 13938 var generateCookie = (name, value, options = {}) => { 13939 let cookie = `${name}=${value}`; 13940 if (!options.path) { 13941 cookie += `; path=/`; 13942 } 13943 if (!options.expires && !("max-age" in options)) { 13944 cookie += `; max-age=${365 * 24 * 60 * 60}`; 13945 } 13946 for (const [key, value2] of Object.entries(options)) { 13947 if (value2 === false) { 13948 continue; 13949 } else if (value2 === true) { 13950 cookie += `; ${key}`; 13951 } else { 13952 cookie += `; ${key}=${value2}`; 13953 } 13954 } 13955 return cookie; 13956 }; 13957 function getCookie(name, type) { 13958 if (!checkConsent(type)) { 13959 return void 0; 13960 } 13961 return document.cookie.split("; ").find((v) => v.startsWith(`${name}=`))?.split("=")[1]; 13962 } 13963 function removeCookie(name) { 13964 document.cookie = generateCookie(name, "", { "max-age": 0 }); 13965 } 13966 function setCookie(name, value, type, options) { 13967 if (checkConsent(type)) { 13968 document.cookie = generateCookie(name, value, options); 13969 return true; 13970 } 13971 return false; 13972 } 13973 var cookie_default = { 13974 TYPES: CONSENT_TYPES, 13975 get: getCookie, 13976 remove: removeCookie, 13977 set: setCookie 13978 }; 13979 13980
13980// src/main/resources/META-INF/resources/liferay/util/get_dom.js 13981 function getDOM(element) { 13982 if (element._node || element._nodes) { 13983 return element.nodeType ? element : element._node || null; 13984 } 13985 return element; 13986 } 13987 13988
13988// src/main/resources/META-INF/resources/liferay/util/get_element.js 13989 function getElement2(element) { 13990 const currentElement = getDOM(element); 13991 return typeof currentElement === "string" ? document.querySelector(currentElement) : currentElement.jquery ? currentElement[0] : currentElement; 13992 } 13993 13994
13994// src/main/resources/META-INF/resources/liferay/util/in_browser_view.js 13995 function inBrowserView(node, baseWindow, nodeRegion) { 13996 let viewable = false; 13997 node = getElement2(node); 13998 if (node) { 13999 if (!nodeRegion) { 14000 nodeRegion = node.getBoundingClientRect(); 14001 nodeRegion = { 14002 left: nodeRegion.left + window.scrollX, 14003 top: nodeRegion.top + window.scrollY 14004 }; 14005 nodeRegion.bottom = nodeRegion.top + node.offsetHeight; 14006 nodeRegion.right = nodeRegion.left + node.offsetWidth; 14007 } 14008 if (!baseWindow) { 14009 baseWindow = window; 14010 } 14011 baseWindow = getElement2(baseWindow); 14012 const winRegion = {}; 14013 winRegion.left = baseWindow.scrollX; 14014 winRegion.right = winRegion.left + baseWindow.innerWidth; 14015 winRegion.top = baseWindow.scrollY; 14016 winRegion.bottom = winRegion.top + baseWindow.innerHeight; 14017 viewable = nodeRegion.bottom <= winRegion.bottom && nodeRegion.left >= winRegion.left && nodeRegion.right <= winRegion.right && nodeRegion.top >= winRegion.top; 14018 if (viewable) { 14019 const frameElement = baseWindow.frameElement; 14020 if (frameElement) { 14021 let frameOffset = frameElement.getBoundingClientRect(); 14022 frameOffset = { 14023 left: frameOffset.left + window.scrollX, 14024 top: frameOffset.top + window.scrollY 14025 }; 14026 const xOffset = frameOffset.left - winRegion.left; 14027 nodeRegion.left += xOffset; 14028 nodeRegion.right += xOffset; 14029 const yOffset = frameOffset.top - winRegion.top; 14030 nodeRegion.top += yOffset; 14031 nodeRegion.bottom += yOffset; 14032 viewable = inBrowserView(node, baseWindow.parent, nodeRegion); 14033 } 14034 } 14035 } 14036 return viewable; 14037 } 14038 14039
14039// src/main/resources/META-INF/resources/liferay/util/focus_form_field.js 14040 function getDisabledParents(element) { 14041 const result = []; 14042 while (element.parentElement) { 14043 if (element.parentElement.getAttribute("disabled")) { 14044 result.push(element.parentElement); 14045 } 14046 element = element.parentElement; 14047 } 14048 return result; 14049 } 14050 function focusFormField(element) { 14051 element = getElement2(element); 14052 if (inBrowserView(element)) { 14053 const disabledParents = getDisabledParents(element); 14054 const focusable = !element.getAttribute("disabled") && element.offsetWidth > 0 && element.offsetHeight > 0 && !disabledParents.length; 14055 const form = element.closest("form"); 14056 if (!form || focusable) { 14057 element.focus(); 14058 } else if (form) { 14059 const portletName = form.dataset.fmNamespace; 14060 const formReadyEventName = portletName + "formReady"; 14061 const formReadyHandler = (event) => { 14062 const elFormName = form.getAttribute("name"); 14063 const formName = event.formName; 14064 if (elFormName === formName) { 14065 element.focus(); 14066 Liferay.detach(formReadyEventName, formReadyHandler); 14067 } 14068 }; 14069 Liferay.on(formReadyEventName, formReadyHandler); 14070 } 14071 } 14072 } 14073 14074
14074// src/main/resources/META-INF/resources/liferay/util/form/get_form_element.es.js 14075 function getFormElement(form, elementName) { 14076 let formElement = null; 14077 if (form !== void 0 && form.nodeName === "FORM" && typeof elementName === "string") { 14078 const ns2 = form.dataset.fmNamespace || ""; 14079 formElement = form.elements[ns2 + elementName] || null; 14080 } 14081 return formElement; 14082 } 14083 14084
14084// src/main/resources/META-INF/resources/liferay/util/form/set_form_values.es.js 14085 function setFormValues(form, data) { 14086 if (form === void 0 || form.nodeName !== "FORM" || !isObject(data)) { 14087 return; 14088 } 14089 const entries = Object.entries(data); 14090 entries.forEach(([elementName, elementValue]) => { 14091 const element = getFormElement(form, elementName); 14092 if (element) { 14093 element.value = elementValue; 14094 } 14095 }); 14096 } 14097 14098
14098// src/main/resources/META-INF/resources/liferay/util/form/post_form.es.js 14099 function postForm(form, options) { 14100 if (typeof form === "string") { 14101 form = document.querySelector(form); 14102 } 14103 if (form && form.nodeName === "FORM") { 14104 form.setAttribute("method", "post"); 14105 if (isObject(options)) { 14106 const { data, url } = options; 14107 if (isObject(data)) { 14108 setFormValues(form, data); 14109 } else { 14110 return; 14111 } 14112 if (url === void 0) { 14113 submitForm(form); 14114 } else if (typeof url === "string") { 14115 submitForm(form, url); 14116 } 14117 } else { 14118 submitForm(form); 14119 } 14120 } 14121 } 14122 14123
14123// src/main/resources/META-INF/resources/liferay/util/format_storage.es.js 14124 var DEFAULT_OPTIONS = { 14125 addSpaceBeforeSuffix: false, 14126 decimalSeparator: ".", 14127 denominator: 1024, 14128 suffixGB: "GB", 14129 suffixKB: "KB", 14130 suffixMB: "MB" 14131 }; 14132 function formatStorage(size, options = {}) { 14133 const { 14134 addSpaceBeforeSuffix, 14135 decimalSeparator, 14136 denominator, 14137 suffixGB, 14138 suffixKB, 14139 suffixMB 14140 } = { 14141 ...DEFAULT_OPTIONS, 14142 ...options 14143 }; 14144 if (typeof size !== "number") { 14145 throw new TypeError("Parameter size must be a number"); 14146 } 14147 let decimalPlaces = 0; 14148 let suffix = suffixKB; 14149 size /= denominator; 14150 if (size >= denominator) { 14151 suffix = suffixMB; 14152 size /= denominator; 14153 decimalPlaces = 1; 14154 } 14155 if (size >= denominator) { 14156 suffix = suffixGB; 14157 size /= denominator; 14158 decimalPlaces = 1; 14159 } 14160 let fixedSize = size.toFixed(decimalPlaces); 14161 if (decimalSeparator !== ".") { 14162 fixedSize = fixedSize.replace(/\./, decimalSeparator); 14163 } 14164 return fixedSize + (addSpaceBeforeSuffix ? " " : "") + suffix; 14165 } 14166 14167
14167// src/main/resources/META-INF/resources/liferay/util/format_xml.es.js 14168 var NEW_LINE = "\r\n"; 14169 var REGEX_CDATA = /<!\[CDATA\[.*?\]\]>/gs; 14170 var REGEX_DECLARATIVE_CLOSE = /-->|\]>/; 14171 var REGEX_DECLARATIVE_OPEN = /<!/; 14172 var REGEX_DIRECTIVE = /<\?/; 14173 var REGEX_DOCTYPE = /!DOCTYPE/; 14174 var REGEX_ELEMENT = /^<\w/; 14175 var REGEX_ELEMENT_CLOSE = /^<\/\w/; 14176 var REGEX_ELEMENT_NAMESPACED = /^<[\w:\-.,]+/; 14177 var REGEX_ELEMENT_NAMESPACED_CLOSE = /^<\/[\w:\-.,]+/; 14178 var REGEX_ELEMENT_OPEN = /<\w/; 14179 var REGEX_NAMESPACE_XML = /xmlns(?::|=)/g; 14180 var REGEX_NAMESPACE_XML_ATTR = /\s*(xmlns)(:|=)/g; 14181 var REGEX_TAG_CLOSE = /<\//; 14182 var REGEX_TAG_OPEN = /</g; 14183 var REGEX_TAG_SINGLE_CLOSE = /\/>/; 14184 var REGEX_WHITESPACE_BETWEEN_TAGS = />\s+</g; 14185 var STR_BLANK = ""; 14186 var STR_TOKEN = "~::~"; 14187 var STR_TOKEN_CDATA = "<" + STR_TOKEN + "CDATA" + STR_TOKEN + ">"; 14188 var REGEX_TOKEN_CDATA = new RegExp(STR_TOKEN_CDATA, "g"); 14189 var TAG_INDENT = " "; 14190 var DEFAULT_OPTIONS2 = { 14191 newLine: NEW_LINE, 14192 tagIndent: TAG_INDENT 14193 }; 14194 function formatXML(content, options = {}) { 14195 const { newLine, tagIndent } = { 14196 ...DEFAULT_OPTIONS2, 14197 ...options 14198 }; 14199 if (typeof content !== "string") { 14200 throw new TypeError("Parameter content must be a string"); 14201 } 14202 const cdata = []; 14203 content = content.trim(); 14204 content = content.replace(REGEX_CDATA, (match) => { 14205 cdata.push(match); 14206 return STR_TOKEN_CDATA; 14207 }); 14208 content = content.replace(REGEX_WHITESPACE_BETWEEN_TAGS, "><"); 14209 content = content.replace(REGEX_TAG_OPEN, STR_TOKEN + "<"); 14210 content = content.replace(REGEX_NAMESPACE_XML_ATTR, STR_TOKEN + "$1$2"); 14211 content = content.replace(REGEX_TOKEN_CDATA, () => cdata.shift()); 14212 let commentCounter = 0; 14213 let inComment = false; 14214 const items = content.split(STR_TOKEN); 14215 let level = 0; 14216 let result = ""; 14217 items.forEach((item, index) => { 14218 if (REGEX_CDATA.test(item)) { 14219 result += indent(level, newLine, tagIndent) + item; 14220 } else if (REGEX_DECLARATIVE_OPEN.test(item)) { 14221 result += indent(level, newLine, tagIndent) + item; 14222 commentCounter++; 14223 inComment = true; 14224 if (REGEX_DECLARATIVE_CLOSE.test(item) || REGEX_DOCTYPE.test(item)) { 14225 commentCounter--; 14226 inComment = commentCounter !== 0; 14227 } 14228 } else if (REGEX_DECLARATIVE_CLOSE.test(item)) { 14229 result += item; 14230 commentCounter--; 14231 inComment = commentCounter !== 0; 14232 } 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()) { 14233 result += item; 14234 if (!inComment) { 14235 --level; 14236 } 14237 } else if (REGEX_ELEMENT_OPEN.test(item) && !REGEX_TAG_CLOSE.test(item) && !REGEX_TAG_SINGLE_CLOSE.test(item)) { 14238 if (inComment) { 14239 result += item; 14240 } else { 14241 result += indent(level++, newLine, tagIndent) + item; 14242 } 14243 } else if (REGEX_ELEMENT_OPEN.test(item) && REGEX_TAG_CLOSE.test(item)) { 14244 if (inComment) { 14245 result += item; 14246 } else { 14247 result += indent(level, newLine, tagIndent) + item; 14248 } 14249 } else if (REGEX_TAG_CLOSE.test(item)) { 14250 if (inComment) { 14251 result += item; 14252 } else { 14253 result += indent(--level, newLine, tagIndent) + item; 14254 } 14255 } else if (REGEX_TAG_SINGLE_CLOSE.test(item)) { 14256 if (inComment) { 14257 result += item; 14258 } else { 14259 result += indent(level, newLine, tagIndent) + item; 14260 } 14261 } else if (REGEX_DIRECTIVE.test(item)) { 14262 result += indent(level, newLine, tagIndent) + item; 14263 } else if (REGEX_NAMESPACE_XML) { 14264 result += indent(level, newLine, tagIndent) + item; 14265 } else { 14266 result += item; 14267 } 14268 if (new RegExp("^" + newLine).test(result)) { 14269 result = result.slice(newLine.length); 14270 } 14271 }); 14272 return result; 14273 } 14274 function indent(level, newLine, tagIndent) { 14275 return newLine + new Array(level + 1).join(tagIndent); 14276 } 14277 14278
14278// src/main/resources/META-INF/resources/liferay/util/get_checkboxes.js 14279 function getCheckboxes(form, except, name, state) { 14280 if (typeof form === "string") { 14281 form = document.querySelector(form); 14282 } else { 14283 form = form._node || form; 14284 } 14285 let selector = "input[type=checkbox]"; 14286 if (name) { 14287 selector += `[name=${name}]`; 14288 } 14289 const checkboxes = Array.from(form.querySelectorAll(selector)); 14290 if (!checkboxes.length) { 14291 return ""; 14292 } 14293 return checkboxes.reduce((previous, item) => { 14294 const { checked, disabled, name: name2, value } = item; 14295 if (value && name2 !== except && checked === state && !disabled) { 14296 previous.push(value); 14297 } 14298 return previous; 14299 }, []).join(); 14300 } 14301 function getCheckedCheckboxes(form, except, name) { 14302 return getCheckboxes(form, except, name, true); 14303 } 14304 function getUncheckedCheckboxes(form, except, name) { 14305 return getCheckboxes(form, except, name, false); 14306 } 14307 14308
14308// src/main/resources/META-INF/resources/liferay/util/get_crop_region.es.js 14309 function getCropRegion(imagePreview, region) { 14310 if (!isObject(imagePreview) || isObject(imagePreview) && imagePreview.tagName !== "IMG") { 14311 throw new TypeError("Parameter imagePreview must be an image"); 14312 } 14313 if (!isObject(region)) { 14314 throw new TypeError("Parameter region must be an object"); 14315 } 14316 const scaleX = imagePreview.naturalWidth / imagePreview.offsetWidth; 14317 const scaleY = imagePreview.naturalHeight / imagePreview.offsetHeight; 14318 const height = region.height ? region.height * scaleY : imagePreview.naturalHeight; 14319 const width = region.width ? region.width * scaleX : imagePreview.naturalWidth; 14320 const x = region.x ? Math.max(region.x * scaleX, 0) : 0; 14321 const y = region.y ? Math.max(region.y * scaleY, 0) : 0; 14322 return { 14323 height, 14324 width, 14325 x, 14326 y 14327 }; 14328 } 14329 14330
14330// src/main/resources/META-INF/resources/liferay/util/get_geolocation.js 14331 function getGeolocation(success, fallback, options) { 14332 if (success && navigator.geolocation) { 14333 navigator.geolocation.getCurrentPosition( 14334 (position) => { 14335 success( 14336 position.coords.latitude, 14337 position.coords.longitude, 14338 position 14339 ); 14340 }, 14341 fallback, 14342 options 14343 ); 14344 } else if (fallback) { 14345 fallback(); 14346 } 14347 } 14348 14349
14349// src/main/resources/META-INF/resources/liferay/util/get_lexicon_icon.js 14350 function getLexiconIcon(icon, cssClass = "") { 14351 if (!icon) { 14352 throw new TypeError("Parameter icon must be provided"); 14353 } 14354 function getLexiconIconHTML(iconName, cssClass2) { 14355 return `<svg 14356 aria-hidden="true" 14357 class="lexicon-icon lexicon-icon-${iconName} ${cssClass2}" 14358 focusable="false" 14359 role="presentation" 14360 > 14361 <use href="${Liferay.Icons.spritemap}#${iconName}" /> 14362 </svg>`; 14363 } 14364 const lexiconIconTemplate = getLexiconIconHTML(icon, cssClass); 14365 const tempElement = document.createElement("div"); 14366 tempElement.innerHTML = lexiconIconTemplate; 14367 return tempElement.firstChild; 14368 } 14369 14370
14370// src/main/resources/META-INF/resources/liferay/util/get_lexicon_icon_template.js 14371 function getLexiconIconTpl(icon, cssClass = "") { 14372 return `<svg aria-hidden="true" class="lexicon-icon lexicon-icon-${icon} ${cssClass}" focusable="false" role="presentation"><use href="${Liferay.Icons.spritemap}#${icon}" /></svg>`; 14373 } 14374 14375
14375// src/main/resources/META-INF/resources/liferay/util/get_opener.js 14376 var _opener; 14377 function getOpener() { 14378 let openingWindow = _opener; 14379 if (!openingWindow) { 14380 const topUtil = getTop().Liferay.Util; 14381 const windowName = window.name; 14382 const dialog = topUtil.Window.getById(windowName); 14383 if (dialog) { 14384 openingWindow = dialog._opener; 14385 _opener = openingWindow; 14386 } 14387 } 14388 return openingWindow || window.opener || window.parent; 14389 } 14390 14391
14391// src/main/resources/META-INF/resources/liferay/util/get_selected_option_values.js 14392 function getSelectedOptionValues(select, delimiter = ",") { 14393 const optionsArray = Array.from(select.getElementsByTagName("option")); 14394 return optionsArray.reduce((previous, item) => { 14395 const { value } = item; 14396 if (value) { 14397 previous.push(value); 14398 } 14399 return previous; 14400 }, []).join(delimiter); 14401 } 14402 14403
14403// src/main/resources/META-INF/resources/liferay/util/get_url_with_session_id.js 14404 function getURLWithSessionId(url) { 14405 if (!themeDisplay.isAddSessionIdToURL()) { 14406 return url; 14407 } 14408 let separatorIndex = url.indexOf(";"); 14409 if (separatorIndex > -1) { 14410 return url; 14411 } 14412 const sessionId = `;jsessionid=${themeDisplay.getSessionId()}`; 14413 separatorIndex = url.indexOf("?"); 14414 if (separatorIndex > -1) { 14415 return `${url.substring(0, separatorIndex)}${sessionId}${url.substring( 14416 separatorIndex 14417 )}`; 14418 } 14419 separatorIndex = url.indexOf("//"); 14420 if (separatorIndex > -1) { 14421 const lastSeparatorIndex = url.lastIndexOf("/"); 14422 if (separatorIndex + 1 === lastSeparatorIndex) { 14423 return `${url}/${sessionId}`; 14424 } 14425 } 14426 return `${url}${sessionId}`; 14427 } 14428 14429
14429// src/main/resources/META-INF/resources/liferay/util/get_window.js 14430 function getWindow(windowId = window.name) { 14431 const topWindow = getTop(); 14432 return topWindow.Liferay.Util.Window.getById(windowId); 14433 } 14434 14435
14435// src/main/resources/META-INF/resources/liferay/util/is_phone.js 14436 function isPhone() { 14437 return window.innerWidth < breakpoints_default.PHONE; 14438 } 14439 14440
14440// src/main/resources/META-INF/resources/liferay/util/is_tablet.js 14441 function isTablet() { 14442 return window.innerWidth < breakpoints_default.TABLET; 14443 } 14444 14445
14445// src/main/resources/META-INF/resources/liferay/util/storage.js 14446 var Storage = class { 14447 constructor(storage) { 14448 __publicField(this, "TYPES", CONSENT_TYPES); 14449 this.storage = storage; 14450 } 14451 clear() { 14452 return this.storage.clear(); 14453 } 14454 getItem(key, type) { 14455 if (!checkConsent(type)) { 14456 return null; 14457 } 14458 return this.storage.getItem(key); 14459 } 14460 key(index, type) { 14461 if (!checkConsent(type)) { 14462 return null; 14463 } 14464 return this.storage.key(index); 14465 } 14466 removeItem(key) { 14467 return this.storage.removeItem(key); 14468 } 14469 setItem(key, value, type) { 14470 if (!checkConsent(type)) { 14471 return false; 14472 } 14473 this.storage.setItem(key, value); 14474 return true; 14475 } 14476 get length() { 14477 return this.storage.length; 14478 } 14479 }; 14480 14481
14481// src/main/resources/META-INF/resources/liferay/util/local_storage.js 14482 var local_storage_default = new Storage(localStorage); 14483 14484
14484// src/main/resources/META-INF/resources/liferay/util/navigate.es.js 14485 function navigate_es_default(url, listeners) { 14486 let urlString = url; 14487 if (url?.constructor?.name === "URL") { 14488 urlString = String(url); 14489 } 14490 if (Liferay.SPA?.app?.canNavigate(urlString)) { 14491 Liferay.SPA.app.navigate(urlString); 14492 if (listeners) { 14493 Object.keys(listeners).forEach((key) => { 14494 Liferay.once(key, listeners[key]); 14495 }); 14496 } 14497 } else if (isValidURL(urlString)) { 14498 window.location.href = urlString; 14499 } 14500 } 14501 function isValidURL(url) { 14502 let urlObject; 14503 try { 14504 if (url.startsWith("/")) { 14505 urlObject = new URL(url, window.location.origin); 14506 } else { 14507 urlObject = new URL(url); 14508 } 14509 } catch (error) { 14510 return false; 14511 } 14512 return urlObject.protocol === "http:" || urlObject.protocol === "https:"; 14513 } 14514 14515
14515// src/main/resources/META-INF/resources/liferay/util/normalize_friendly_url.js 14516 function normalizeFriendlyURL(text) { 14517 if (typeof text !== "string") { 14518 throw new TypeError("parameter text must be a string"); 14519 } 14520 return text.replace(/[^a-z0-9_-]/gi, "-").replace(/^-+/, "").replace(/--+/, "-").toLowerCase(); 14521 } 14522 14523
14523// src/main/resources/META-INF/resources/liferay/util/ns.es.js 14524 var nsCached = memoize((namespace, str) => { 14525 if (typeof str !== "undefined" && !(str.lastIndexOf(namespace, 0) === 0)) { 14526 str = `${namespace}${str}`; 14527 } 14528 return str; 14529 }); 14530 function ns(namespace, object) { 14531 let value; 14532 if (typeof object !== "object") { 14533 value = nsCached(namespace, object); 14534 } else { 14535 value = {}; 14536 const keys = Object.keys(object); 14537 keys.forEach((item) => { 14538 const originalItem = item; 14539 item = nsCached(namespace, item); 14540 value[item] = object[originalItem]; 14541 }); 14542 } 14543 return value; 14544 } 14545 14546
14546// src/main/resources/META-INF/resources/liferay/util/object_to_url_search_params.es.js 14547 function objectToURLSearchParams(object) { 14548 if (!isObject(object)) { 14549 throw new TypeError("Parameter obj must be an object"); 14550 } 14551 const urlSearchParams = new URLSearchParams(); 14552 Object.entries(object).forEach(([key, value]) => { 14553 if (Array.isArray(value)) { 14554 for (let i = 0; i < value.length; i++) { 14555 urlSearchParams.append(key, value[i]); 14556 } 14557 } else { 14558 urlSearchParams.append(key, value); 14559 } 14560 }); 14561 return urlSearchParams; 14562 } 14563 14564
14564// src/main/resources/META-INF/resources/liferay/util/portlet_configuration_icon_action.js 14565 var portletConfigurationIconActions = /* @__PURE__ */ new Map(); 14566 function getPortletConfigurationIconAction(id) { 14567 return portletConfigurationIconActions.get(id); 14568 } 14569 function setPortletConfigurationIconAction(id, callback) { 14570 portletConfigurationIconActions.set(id, callback); 14571 } 14572 14573
14573// src/main/resources/META-INF/resources/liferay/util/portlet_url/create_action_url.es.js 14574 function createActionURL(basePortletURL, parameters = {}) { 14575 return createPortletURL(basePortletURL, { 14576 ...parameters, 14577 p_p_lifecycle: "1" 14578 }); 14579 } 14580 14581
14581// src/main/resources/META-INF/resources/liferay/util/portlet_url/create_render_url.es.js 14582 function createRenderURL(basePortletURL, parameters = {}) { 14583 return createPortletURL(basePortletURL, { 14584 ...parameters, 14585 p_p_lifecycle: "0" 14586 }); 14587 } 14588 14589
14589// src/main/resources/META-INF/resources/liferay/util/portlet_url/create_resource_url.es.js 14590 function createResourceURL(basePortletURL, parameters = {}) { 14591 return createPortletURL(basePortletURL, { 14592 ...parameters, 14593 p_p_lifecycle: "2" 14594 }); 14595 } 14596 14597
14597// src/main/resources/META-INF/resources/liferay/util/remove_entity_selection.js 14598 function removeEntitySelection(entityIdString, entityNameString, removeEntityButton, namespace) { 14599 const elementByEntityId = document.getElementById( 14600 `${namespace}${entityIdString}` 14601 ); 14602 if (elementByEntityId) { 14603 elementByEntityId.value = 0; 14604 } 14605 const elementByEntityName = document.getElementById( 14606 `${namespace}${entityNameString}` 14607 ); 14608 if (elementByEntityName) { 14609 elementByEntityName.value = ""; 14610 } 14611 toggleDisabled(removeEntityButton, true); 14612 Liferay.fire("entitySelectionRemoved"); 14613 } 14614 14615
14615// src/main/resources/META-INF/resources/liferay/util/run_scripts_in_element.es.js 14616 function runJSFromText(sourceScriptElement, next, appendFn) { 14617 const { text, type } = sourceScriptElement; 14618 const scriptElement = document.createElement("script"); 14619 if (Liferay.CSP.nonce) { 14620 scriptElement.setAttribute("nonce", Liferay.CSP.nonce); 14621 } 14622 scriptElement.text = text; 14623 scriptElement.type = type; 14624 if (appendFn) { 14625 appendFn(scriptElement); 14626 } else { 14627 document.head.appendChild(scriptElement); 14628 } 14629 scriptElement.remove(); 14630 next(); 14631 } 14632 function runJSFromFile(sourceScriptElement, next, appendFn) { 14633 const { src, type } = sourceScriptElement; 14634 const scriptElement = document.createElement("script"); 14635 if (Liferay.CSP.nonce) { 14636 scriptElement.setAttribute("nonce", Liferay.CSP.nonce); 14637 } 14638 scriptElement.src = src; 14639 scriptElement.type = type; 14640 const callback = function() { 14641 scriptElement.remove(); 14642 next(); 14643 }; 14644 scriptElement.addEventListener("load", callback, { once: true }); 14645 scriptElement.addEventListener("error", callback, { once: true }); 14646 if (appendFn) { 14647 appendFn(scriptElement); 14648 } else { 14649 document.head.appendChild(scriptElement); 14650 } 14651 } 14652 function runScriptsInOrder(scripts, i, defaultFn, appendFn) { 14653 const scriptElement = scripts[i]; 14654 const runNextScript = () => { 14655 if (i < scripts.length - 1) { 14656 runScriptsInOrder(scripts, i + 1, defaultFn, appendFn); 14657 } else if (defaultFn) { 14658 setTimeout(defaultFn); 14659 } 14660 }; 14661 if (!scriptElement) { 14662 return; 14663 } else if (scriptElement.type && scriptElement.type !== "text/javascript" && scriptElement.type !== "module" && scriptElement.type !== "module-shim") { 14664 runNextScript(); 14665 } else { 14666 scriptElement.remove(); 14667 if (scriptElement.src) { 14668 runJSFromFile(scriptElement, runNextScript, appendFn); 14669 } else { 14670 runJSFromText(scriptElement, runNextScript, appendFn); 14671 } 14672 } 14673 } 14674 function run_scripts_in_element_es_default(element, defaultFn, appendFn) { 14675 const scripts = element.querySelectorAll("script"); 14676 if (!scripts.length && defaultFn) { 14677 setTimeout(defaultFn); 14678 return; 14679 } 14680 runScriptsInOrder(scripts, 0, defaultFn, appendFn); 14681 } 14682 14683
14683// src/main/resources/META-INF/resources/liferay/util/select_folder.js 14684 function selectFolder(folderData, namespace) { 14685 const folderDataElement = document.getElementById( 14686 `${namespace}${folderData.idString}` 14687 ); 14688 if (folderDataElement) { 14689 folderDataElement.value = folderData.idValue; 14690 } 14691 const folderNameElement = document.getElementById( 14692 `${namespace}${folderData.nameString}` 14693 ); 14694 if (folderNameElement) { 14695 folderNameElement.value = Liferay.Util.unescape(folderData.nameValue); 14696 } 14697 const removeFolderButton = document.getElementById( 14698 `${namespace}removeFolderButton` 14699 ); 14700 if (removeFolderButton) { 14701 toggleDisabled(removeFolderButton, false); 14702 } 14703 } 14704 14705
14705// src/main/resources/META-INF/resources/liferay/util/session.es.js 14706 var TOKEN_SERIALIZE = "serialize://"; 14707 function getSessionClickFormData(cmd) { 14708 const doAsUserIdEncoded = Liferay.ThemeDisplay.getDoAsUserIdEncoded(); 14709 const formData = new FormData(); 14710 formData.append("cmd", cmd); 14711 formData.append("p_auth", Liferay.authToken); 14712 if (doAsUserIdEncoded) { 14713 formData.append("doAsUserId", doAsUserIdEncoded); 14714 } 14715 return formData; 14716 } 14717 function getSessionClickURL() { 14718 return `${Liferay.ThemeDisplay.getPortalURL()}${Liferay.ThemeDisplay.getPathMain()}/portal/session_click`; 14719 } 14720 function getSessionValue(key, options = {}) { 14721 const formData = getSessionClickFormData("get"); 14722 formData.append("key", key); 14723 if (options.useHttpSession) { 14724 formData.append("useHttpSession", true); 14725 } 14726 return defaultFetch(getSessionClickURL(), { 14727 body: formData, 14728 method: "POST" 14729 }).then((response) => response.text()).then((responseText) => { 14730 if (responseText.startsWith(TOKEN_SERIALIZE)) { 14731 const value = responseText.substring(TOKEN_SERIALIZE.length); 14732 responseText = JSON.parse(value); 14733 } 14734 return responseText; 14735 }); 14736 } 14737 function setSessionValue(key, value, options = {}) { 14738 const formData = getSessionClickFormData("set"); 14739 if (value && typeof value === "object") { 14740 value = TOKEN_SERIALIZE + JSON.stringify(value); 14741 } 14742 formData.append(key, value); 14743 if (options.useHttpSession) { 14744 formData.append("useHttpSession", true); 14745 } 14746 return defaultFetch(getSessionClickURL(), { 14747 body: formData, 14748 method: "POST" 14749 }); 14750 } 14751 14752
14752// src/main/resources/META-INF/resources/liferay/util/session_storage.js 14753 var session_storage_default = new Storage(sessionStorage); 14754 14755
14755// src/main/resources/META-INF/resources/liferay/util/show_caps_lock.js 14756 function showCapsLock(event, elementId) { 14757 const element = document.getElementById(elementId); 14758 if (element) { 14759 element.style.display = "none"; 14760 if (event.getModifierState("CapsLock")) { 14761 element.style.display = ""; 14762 } 14763 } 14764 } 14765 14766
14766// src/main/resources/META-INF/resources/liferay/util/sub.ts 14767 var SPLIT_REGEX = /({\d+})/g; 14768 function sub(langKey, ...params) { 14769 const paramList = params.reduce( 14770 (paramList2, param) => Array.isArray(param) ? [...paramList2, ...param] : [...paramList2, param], 14771 [] 14772 ); 14773 const keyArray = langKey.split(SPLIT_REGEX).filter((val) => val.length !== 0); 14774 for (let i = 0; i < paramList.length; i++) { 14775 const param = paramList[i]; 14776 const indexKey = `{${i}}`; 14777 let paramIndex = keyArray.indexOf(indexKey); 14778 while (paramIndex >= 0) { 14779 keyArray.splice(paramIndex, 1, param); 14780 paramIndex = keyArray.indexOf(indexKey); 14781 } 14782 } 14783 return keyArray.some((value) => value && typeof value === "object") ? keyArray : keyArray.join(""); 14784 } 14785 14786
14786// src/main/resources/META-INF/resources/liferay/util/toggle_boxes.js 14787 function toggleBoxes(checkBoxId, toggleBoxId, displayWhenUnchecked, toggleChildCheckboxes) { 14788 const checkBox = document.getElementById(checkBoxId); 14789 const toggleBox = document.getElementById(toggleBoxId); 14790 if (checkBox && toggleBox) { 14791 let checked = checkBox.checked; 14792 if (displayWhenUnchecked) { 14793 checked = !checked; 14794 } 14795 if (checked) { 14796 toggleBox.classList.remove("hide"); 14797 } else { 14798 toggleBox.classList.add("hide"); 14799 } 14800 checkBox.addEventListener("click", () => { 14801 toggleBox.classList.toggle("hide"); 14802 if (toggleChildCheckboxes) { 14803 const childCheckboxes = toggleBox.querySelectorAll( 14804 "input[type=checkbox]" 14805 ); 14806 childCheckboxes.forEach((childCheckbox) => { 14807 childCheckbox.checked = checkBox.checked; 14808 }); 14809 } 14810 }); 14811 } 14812 } 14813 14814
14814// src/main/resources/META-INF/resources/liferay/util/toggle_controls.js 14815 var MAP_TOGGLE_STATE = { 14816 false: { 14817 cssClass: "controls-hidden", 14818 iconCssClass: "hidden", 14819 state: "hidden" 14820 }, 14821 true: { 14822 cssClass: "controls-visible", 14823 iconCssClass: "view", 14824 state: "visible" 14825 } 14826 }; 14827 function toggleControls(node) { 14828 const body = document.body; 14829 node = node._node || body; 14830 const trigger = node.querySelector(".toggle-controls"); 14831 if (!trigger) { 14832 return; 14833 } 14834 let controlsVisible = Liferay._editControlsState === "visible"; 14835 let currentState = MAP_TOGGLE_STATE[controlsVisible]; 14836 let icon = trigger.querySelector(".lexicon-icon"); 14837 if (icon) { 14838 currentState.icon = icon; 14839 } 14840 body.classList.add(currentState.cssClass); 14841 Liferay.fire("toggleControls", { 14842 enabled: controlsVisible 14843 }); 14844 trigger.addEventListener("click", () => { 14845 controlsVisible = !controlsVisible; 14846 const previousState = currentState; 14847 currentState = MAP_TOGGLE_STATE[controlsVisible]; 14848 body.classList.toggle(previousState.cssClass); 14849 body.classList.toggle(currentState.cssClass);
14850 const editControlsIconClass = currentState.iconCssClass; 14851 const editControlsState = currentState.state; 14852 const newIcon = getLexiconIcon(editControlsIconClass); 14853 currentState.icon = newIcon; 14854 icon.replaceWith(newIcon); 14855 icon = newIcon; 14856 Liferay._editControlsState = editControlsState; 14857 setSessionValue( 14858 "com.liferay.frontend.js.web_toggleControls", 14859 editControlsState 14860 ); 14861 Liferay.fire("toggleControls", { 14862 enabled: controlsVisible, 14863 src: "ui" 14864 }); 14865 }); 14866 } 14867 14868
14868// src/main/resources/META-INF/resources/liferay/util/toggle_radio.js 14869 function toggleRadio(radioId, showBoxIds, hideBoxIds) { 14870 const radioButton = document.getElementById(radioId); 14871 if (radioButton) { 14872 let showBoxes; 14873 if (showBoxIds) { 14874 if (Array.isArray(showBoxIds)) { 14875 showBoxIds = showBoxIds.join(",#"); 14876 } 14877 showBoxes = document.querySelectorAll(`#${showBoxIds}`); 14878 showBoxes.forEach((showBox) => { 14879 if (radioButton.checked) { 14880 showBox.classList.remove("hide"); 14881 } else { 14882 showBox.classList.add("hide"); 14883 } 14884 }); 14885 } 14886 radioButton.addEventListener("change", () => { 14887 if (showBoxes) { 14888 showBoxes.forEach((showBox) => { 14889 showBox.classList.remove("hide"); 14890 }); 14891 } 14892 if (hideBoxIds) { 14893 if (Array.isArray(hideBoxIds)) { 14894 hideBoxIds = hideBoxIds.join(",#"); 14895 } 14896 const hideBoxes = document.querySelectorAll(`#${hideBoxIds}`); 14897 hideBoxes.forEach((hideBox) => { 14898 hideBox.classList.add("hide"); 14899 }); 14900 } 14901 }); 14902 } 14903 } 14904 14905
14905// src/main/resources/META-INF/resources/liferay/util/toggle_select_box.js 14906 var toggle = (selectBox, toggleBox, dynamicValue, value) => { 14907 const currentValue = selectBox.value; 14908 const visible = dynamicValue ? value(currentValue, value) : value === currentValue; 14909 toggleBox.classList.toggle("hide", !visible); 14910 }; 14911 function toggleSelectBox(selectBoxId, value, toggleBoxId) { 14912 const selectBox = document.getElementById(selectBoxId); 14913 const toggleBox = document.getElementById(toggleBoxId); 14914 if (!selectBox || !toggleBox) { 14915 return; 14916 } 14917 const dynamicValue = typeof value === "function"; 14918 toggle(selectBox, toggleBox, dynamicValue, value); 14919 selectBox.addEventListener( 14920 "change", 14921 () => toggle(selectBox, toggleBox, dynamicValue, value) 14922 ); 14923 } 14924 14925
14925// src/main/resources/META-INF/resources/liferay/zIndex.js 14926 var zIndex_default = { 14927 ALERT: 430, 14928 DOCK: 10, 14929 DOCK_PARENT: 20, 14930 DRAG_ITEM: 460, 14931 DROP_AREA: 440, 14932 DROP_POSITION: 450, 14933 MENU: 5e3, 14934 OVERLAY: 1e3, 14935 POPOVER: 1600, 14936 TOOLTIP: 1e4, 14937 WINDOW: 1200 14938 }; 14939 14940
14940// src/main/resources/META-INF/resources/liferay/global.es.js 14941 var PATH_CONTEXT = Liferay.ThemeDisplay.getPathContext(); 14942 Liferay = window.Liferay || {}; 14943 Liferay.BREAKPOINTS = breakpoints_default; 14944 Liferay.STATUS_CODE = status_code_default; 14945 Liferay.zIndex = zIndex_default; 14946 Liferay.component = component; 14947 Liferay.componentReady = componentReady; 14948 Liferay.destroyComponent = destroyComponent; 14949 Liferay.destroyComponents = destroyComponents; 14950 Liferay.destroyUnfulfilledPromises = destroyUnfulfilledPromises; 14951 Liferay.getComponentCache = getComponentCache; 14952 Liferay.initComponentCache = initComponentCache; 14953 Liferay.Address = { 14954 getCountries, 14955 getRegions 14956 }; 14957 Liferay.DynamicSelect = DynamicSelect; 14958 Liferay.LayoutExporter = { 14959 all: hideLayoutPane, 14960 details: toggleLayoutDetails, 14961 icons: getLayoutIcons(), 14962 proposeLayout, 14963 publishToLive, 14964 selected: showLayoutPane 14965 }; 14966 Liferay.Portal = { 14967 Tabs: { 14968 show: showTab 14969 }, 14970 ToolTip: { 14971 show: showTooltip 14972 } 14973 }; 14974 Liferay.Portlet = Liferay.Portlet || {}; 14975 Liferay.Portlet.minimize = minimizePortlet; 14976 Liferay.Portlet.openModal = (...args) => { 14977 import( 14978 // eslint-disable-next-line lines-around-comment 14979 /* webpackIgnore: true */ 14980 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 14981 ).then(({ openPortletModal }) => openPortletModal(...args)); 14982 }; 14983 Liferay.Portlet.openWindow = (...args) => { 14984 import( 14985 // eslint-disable-next-line lines-around-comment 14986 /* webpackIgnore: true */ 14987 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 14988 ).then(({ openPortletWindow }) => openPortletWindow(...args)); 14989 }; 14990 Liferay.SideNavigation = side_navigation_es_default; 14991 Liferay.Util = Liferay.Util || {}; 14992 Liferay.Util.MAP_HTML_CHARS_ESCAPED = MAP_HTML_CHARS_ESCAPED; 14993 Liferay.Util.addParams = addParams; 14994 Liferay.Util.openAlertModal = (...args) => { 14995 import( 14996 // eslint-disable-next-line lines-around-comment 14997 /* webpackIgnore: true */ 14998 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 14999 ).then(({ openAlertModal }) => openAlertModal(...args)); 15000 }; 15001 Liferay.Util.openSimpleInputModal = (...args) => { 15002 import( 15003 // eslint-disable-next-line lines-around-comment 15004 /* webpackIgnore: true */ 15005 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 15006 ).then(({ openSimpleInputModal }) => openSimpleInputModal(...args)); 15007 }; 15008 Liferay.Util.AutoSize = autosize_es_default; 15009 Liferay.Util.debounce = debounce_es_default; 15010 Liferay.Util.delegate = delegate_es_default; 15011 Liferay.Util.DynamicInlineScroll = DynamicInlineScroll_es_default; 15012 Liferay.Util.runScriptsInElement = run_scripts_in_element_es_default; 15013 Liferay.Util.disableEsc = () => { 15014 if (document.all && window.event.keyCode === 27) { 15015 window.event.returnValue = false; 15016 } 15017 }; 15018 var htmlEscapes = { 15019 '"': """, 15020 "&": "&", 15021 "'": "'", 15022 "<": "<", 15023 ">": ">" 15024 }; 15025 var reUnescapedHtml = /[&<>"']/g; 15026 var reHasUnescapedHtml = RegExp(reUnescapedHtml.source); 15027 Liferay.Util.escape = (string) => { 15028 return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, (chr) => htmlEscapes[chr]) : string || ""; 15029 }; 15030 Liferay.Util.escapeHTML = escapeHTML; 15031 Liferay.Util.fetch = defaultFetch; 15032 Liferay.Util.focusFormField = focusFormField; 15033 Liferay.Util.formatStorage = formatStorage; 15034 Liferay.Util.formatXML = formatXML; 15035 Liferay.Util.getCheckedCheckboxes = getCheckedCheckboxes; 15036 Liferay.Util.getUncheckedCheckboxes = getUncheckedCheckboxes; 15037 Liferay.Util.getCropRegion = getCropRegion; 15038 Liferay.Util.getDOM = getDOM; 15039 Liferay.Util.getElement = getElement2; 15040 Liferay.Util.getGeolocation = getGeolocation; 15041 Liferay.Util.getFormElement = getFormElement; 15042 Liferay.Util.getLexiconIcon = getLexiconIcon; 15043 Liferay.Util.getLexiconIconTpl = getLexiconIconTpl; 15044 Liferay.Util.getOpener = getOpener; 15045 Liferay.Util.getPortletConfigurationIconAction = getPortletConfigurationIconAction; 15046 Liferay.Util.getPortletId = getPortletId; 15047 Liferay.Util.getPortletNamespace = getPortletNamespace; 15048 Liferay.Util.getSelectedOptionValues = getSelectedOptionValues; 15049 Liferay.Util.getTop = getTop; 15050 Liferay.Util.getURLWithSessionId = getURLWithSessionId; 15051 Liferay.Util.getWindow = getWindow; 15052 Liferay.Util.groupBy = import_lodash.default; 15053 Liferay.Util.inBrowserView = inBrowserView; 15054 Liferay.Util.isEqual = import_lodash2.default; 15055 Liferay.Util.isPhone = isPhone; 15056 Liferay.Util.isTablet = isTablet;
15057 Liferay.Util.loadClientExtensions = loadClientExtensions; 15058 Liferay.Util.loadEditorClientExtensions = loadEditorClientExtensions; 15059 Liferay.Util.navigate = navigate_es_default; 15060 Liferay.Util.ns = ns; 15061 Liferay.Util.objectToFormData = objectToFormData; 15062 Liferay.Util.objectToURLSearchParams = objectToURLSearchParams; 15063 Liferay.Util.normalizeFriendlyURL = normalizeFriendlyURL; 15064 Liferay.Util.PortletURL = { 15065 createActionURL, 15066 createPortletURL, 15067 createRenderURL, 15068 createResourceURL 15069 }; 15070 Liferay.Util.postForm = postForm; 15071 Liferay.Util.setFormValues = setFormValues; 15072 Liferay.Util.toCharCode = to_char_code_es_default; 15073 Liferay.Util.toggleDisabled = toggleDisabled; 15074 Liferay.Util.openConfirmModal = (...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(({ openConfirmModal }) => openConfirmModal(...args)); 15080 }; 15081 Liferay.Util.openModal = (...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(({ openModal }) => openModal(...args)); 15087 }; 15088 Liferay.Util.openSelectionModal = (...args) => { 15089 import( 15090 // eslint-disable-next-line lines-around-comment 15091 /* webpackIgnore: true */ 15092 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 15093 ).then(({ openSelectionModal }) => openSelectionModal(...args)); 15094 }; 15095 Liferay.Util.openToast = (...args) => { 15096 import( 15097 // eslint-disable-next-line lines-around-comment 15098 /* webpackIgnore: true */ 15099 PATH_CONTEXT + "/o/frontend-js-web/__liferay__/index.js" 15100 ).then(({ openToast }) => openToast(...args)); 15101 }; 15102 Liferay.Util.openWindow = openWindow; 15103 Liferay.Util.removeEntitySelection = removeEntitySelection; 15104 Liferay.Util.selectFolder = selectFolder; 15105 Liferay.Util.setPortletConfigurationIconAction = setPortletConfigurationIconAction; 15106 Liferay.Util.showCapsLock = showCapsLock; 15107 Liferay.Util.sub = sub; 15108 Liferay.Util.Session = { 15109 get: getSessionValue, 15110 set: setSessionValue 15111 }; 15112 Liferay.Util.toggleBoxes = toggleBoxes; 15113 Liferay.Util.toggleControls = toggleControls; 15114 Liferay.Util.toggleRadio = toggleRadio; 15115 Liferay.Util.toggleSelectBox = toggleSelectBox; 15116 var htmlUnescapes = { 15117 "'": "'", 15118 "&": "&", 15119 ">": ">", 15120 "<": "<", 15121 """: '"' 15122 }; 15123 var reEscapedHtml = /&(?:amp|lt|gt|quot|#(0+)?39);/g; 15124 var reHasEscapedHtml = RegExp(reEscapedHtml.source); 15125 Liferay.Util.unescape = (string) => { 15126 return string && reHasEscapedHtml.test(string) ? string.replace( 15127 reEscapedHtml, 15128 (entity) => htmlUnescapes[entity] || "'" 15129 ) : string || ""; 15130 }; 15131 Liferay.Util.unescapeHTML = unescapeHTML; 15132 Liferay.Util.Cookie = cookie_default; 15133 Liferay.Util.LocalStorage = local_storage_default; 15134 Liferay.Util.SessionStorage = session_storage_default; 15135 window.portlet = portlet_es_default; 15136})(); 15137 15138 15139/** 15140 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 15141 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 15142 */ 15143 15144/* eslint-disable @liferay/aui/no-node */ 15145 15146/* eslint-disable @liferay/aui/no-one */ 15147 15148(function (A) { 15149 const Lang = A.Lang; 15150 15151 const Util = Liferay.Util; 15152 15153 const STR_HEAD = 'head'; 15154 15155 const TPL_NOT_AJAXABLE = '<div class="alert alert-info">{0}</div>'; 15156 15157 const Portlet = { 15158 ...Liferay.Portlet, 15159 15160 _defCloseFn(event) { 15161 event.portlet.remove(true); 15162 15163 if (!event.nestedPortlet) { 15164 const formData = Liferay.Util.objectToFormData({ 15165 cmd: 'delete', 15166 doAsUserId: event.doAsUserId, 15167 p_auth: Liferay.authToken, 15168 p_l_id: event.plid, 15169 p_p_id: event.portletId, 15170 p_v_l_s_g_id: themeDisplay.getSiteGroupId(), 15171 }); 15172 15173 Liferay.Util.fetch( 15174 themeDisplay.getPathMain() + '/portal/update_layout', 15175 { 15176 body: formData, 15177 method: 'POST', 15178 } 15179 ).then((response) => { 15180 if (response.ok) { 15181 Liferay.fire('updatedLayout'); 15182 } 15183 }); 15184 } 15185 }, 15186 15187 _loadMarkupHeadElements(response) { 15188 const markupHeadElements = response.markupHeadElements; 15189 15190 if (markupHeadElements && markupHeadElements.length) { 15191 const head = A.one(STR_HEAD); 15192 15193 head.append(markupHeadElements); 15194 15195 const container = A.Node.create('<div />'); 15196 15197 container.plug(A.Plugin.ParseContent); 15198 15199 container.setContent(markupHeadElements); 15200 } 15201 }, 15202 15203 _loadModules(moduleJavascriptPaths) { 15204 return Promise.all( 15205 moduleJavascriptPaths.map( 15206 (path) => 15207 new Promise((resolve) => { 15208 const script = document.createElement('script'); 15209 15210 script.src = path; 15211 script.type = 'module';
15212 15213 script.onload = script.onreadystatechange = () => { 15214 if ( 15215 this.readyState && 15216 this.readyState !== 'complete' && 15217 this.readyState !== 'load' 15218 ) { 15219 return; 15220 } 15221 15222 script.onload = script.onreadystatechange = 15223 null; 15224 script.onerror = null; 15225 15226 resolve(); 15227 }; 15228 15229 script.onerror = () => { 15230 script.onload = script.onreadystatechange = 15231 null; 15232 script.onerror = null; 15233 15234 console.error('Unable to load', path); 15235 15236 resolve(); 15237 }; 15238 15239 document.head.appendChild(script); 15240 }) 15241 ) 15242 ); 15243 }, 15244 15245 _loadPortletFiles(response, loadHTML) { 15246 const footerCssPaths = response.footerCssPaths || []; 15247 const headerCssPaths = response.headerCssPaths || []; 15248 15249 const head = A.one(STR_HEAD); 15250 15251 if (headerCssPaths.length) { 15252 A.Get.css(headerCssPaths, { 15253 insertBefore: head.get('firstChild').getDOM(), 15254 }); 15255 } 15256 15257 const lastChild = document.body.lastChild; 15258 15259 if (footerCssPaths.length) { 15260 A.Get.css(footerCssPaths, { 15261 insertBefore: lastChild, 15262 }); 15263 } 15264 15265 const responseHTML = response.portletHTML; 15266 15267 let javascriptPaths = response.headerJavaScriptPaths || []; 15268 15269 javascriptPaths = javascriptPaths.concat( 15270 response.footerJavaScriptPaths || [] 15271 ); 15272 15273 if (javascriptPaths.length) { 15274 const moduleJavascriptPaths = javascriptPaths 15275 .filter((path) => path.startsWith('module:')) 15276 .map((path) => path.substring(7)); 15277 15278 javascriptPaths = javascriptPaths.filter( 15279 (path) => !path.startsWith('module:') 15280 ); 15281 15282 Portlet._loadModules(moduleJavascriptPaths).then(() => { 15283 A.Get.script(javascriptPaths, { 15284 onEnd() { 15285 loadHTML(responseHTML); 15286 }, 15287 }); 15288 }); 15289 } 15290 else { 15291 loadHTML(responseHTML); 15292 } 15293 }, 15294 15295 _mergeOptions(portlet, options) { 15296 options = options || {}; 15297 15298 options.doAsUserId = 15299 options.doAsUserId || themeDisplay.getDoAsUserIdEncoded(); 15300 options.plid = options.plid || themeDisplay.getPlid(); 15301 options.portlet = portlet; 15302 options.portletId = portlet.portletId; 15303 15304 return options; 15305 }, 15306 15307 _staticPortlets: {}, 15308 15309 destroyComponents(portletId) { 15310 Liferay.destroyComponents((_component, componentConfig) => { 15311 return portletId === componentConfig.portletId; 15312 }); 15313 }, 15314 15315 isStatic(portletId) { 15316 const instance = this; 15317 15318 const id = Util.getPortletId(portletId.id || portletId); 15319 15320 return id in instance._staticPortlets; 15321 }, 15322 15323 list: [], 15324 15325 readyCounter: 0, 15326 15327 refreshLayout(_portletBoundary) {}, 15328 15329 register(portletId) { 15330 const instance = this; 15331 15332 if (instance.list.indexOf(portletId) < 0) { 15333 instance.list.push(portletId); 15334 } 15335 }, 15336 }; 15337 15338 Liferay.provide( 15339 Portlet, 15340 'add', 15341 function (options) { 15342 const instance = this; 15343 15344 Liferay.fire('initLayout'); 15345 15346 const doAsUserId = 15347 options.doAsUserId || themeDisplay.getDoAsUserIdEncoded(); 15348 const plid = options.plid || themeDisplay.getPlid(); 15349 const portletData = options.portletData; 15350 const portletId = options.portletId; 15351 const portletItemId = options.portletItemId; 15352 15353 let placeHolder = options.placeHolder; 15354 15355 if (!placeHolder) { 15356 placeHolder = A.Node.create( 15357 '<div class="loading-animation" />' 15358 ); 15359 } 15360 else { 15361 placeHolder = A.one(placeHolder); 15362 } 15363 15364 const beforePortletLoaded = options.beforePortletLoaded; 15365 const onCompleteFn = options.onComplete; 15366 15367 const onComplete = function (portlet, portletId) { 15368 if (onCompleteFn) { 15369 onCompleteFn(portlet, portletId); 15370 } 15371 15372 instance.list.push(portlet.portletId); 15373 15374 if (portlet) { 15375 portlet.attr('data-qa-id', 'app-loaded'); 15376 } 15377 15378 Liferay.fire('addPortlet', { 15379 portlet, 15380 }); 15381 }; 15382 15383 let container = null; 15384 15385 if (Liferay.Layout && Liferay.Layout.INITIALIZED) { 15386 container = Liferay.Layout.getActiveDropContainer(); 15387 } 15388 15389 if (!container) { 15390 return; 15391 } 15392 15393 const containerId = container.attr('id'); 15394 15395 let currentColumnId = containerId.replace(/layout-column_/, ''); 15396 15397 let portletPosition = 0; 15398 15399 if (options.placeHolder) { 15400 const column = placeHolder.get('parentNode'); 15401 15402 if (!column) { 15403 return; 15404 } 15405 15406 placeHolder.addClass('portlet-boundary'); 15407 15408 const columnPortlets = column.all('.portlet-boundary'); 15409 const nestedPortlets = column.all('.portlet-nested-portlets'); 15410 15411 portletPosition = columnPortlets.indexOf(placeHolder); 15412 15413 let nestedPortletOffset = 0; 15414
15415 nestedPortlets.some((nestedPortlet) => { 15416 const nestedPortletIndex = 15417 columnPortlets.indexOf(nestedPortlet); 15418 15419 if ( 15420 nestedPortletIndex !== -1 && 15421 nestedPortletIndex < portletPosition 15422 ) { 15423 nestedPortletOffset += nestedPortlet 15424 .all('.portlet-boundary') 15425 .size(); 15426 } 15427 else if (nestedPortletIndex >= portletPosition) { 15428 return true; 15429 } 15430 }); 15431 15432 portletPosition -= nestedPortletOffset; 15433 15434 currentColumnId = Util.getColumnId(column.attr('id')); 15435 } 15436 15437 const url = themeDisplay.getPathMain() + '/portal/update_layout'; 15438 15439 const data = { 15440 cmd: 'add', 15441 dataType: 'JSON', 15442 doAsUserId, 15443 p_auth: Liferay.authToken, 15444 p_l_id: plid, 15445 p_p_col_id: currentColumnId, 15446 p_p_col_pos: portletPosition, 15447 p_p_i_id: portletItemId, 15448 p_p_id: portletId, 15449 p_p_isolated: true, 15450 p_v_l_s_g_id: themeDisplay.getSiteGroupId(), 15451 portletData, 15452 }; 15453 15454 const firstPortlet = container.one('.portlet-boundary'); 15455 const hasStaticPortlet = firstPortlet && firstPortlet.isStatic; 15456 15457 if (!options.placeHolder && !options.plid) { 15458 if (!hasStaticPortlet) { 15459 container.prepend(placeHolder); 15460 } 15461 else { 15462 firstPortlet.placeAfter(placeHolder); 15463 } 15464 } 15465 15466 data.currentURL = Liferay.currentURL; 15467 15468 instance.addHTML({ 15469 beforePortletLoaded, 15470 data, 15471 onComplete, 15472 placeHolder, 15473 url, 15474 }); 15475 }, 15476 ['aui-base'] 15477 ); 15478 15479 Liferay.provide( 15480 Portlet, 15481 'addHTML', 15482 function (options) { 15483 const instance = this; 15484 15485 let portletBoundary = null; 15486 15487 const beforePortletLoaded = options.beforePortletLoaded; 15488 const data = options.data; 15489 let dataType = 'HTML'; 15490 const onComplete = options.onComplete; 15491 const placeHolder = options.placeHolder; 15492 const url = options.url; 15493 15494 if (data && Lang.isString(data.dataType)) { 15495 dataType = data.dataType; 15496 } 15497 15498 dataType = dataType.toUpperCase(); 15499 15500 const addPortletReturn = function (html) { 15501 const container = placeHolder.get('parentNode'); 15502 15503 let portletBound = A.Node.create('<div></div>'); 15504 15505 portletBound.plug(A.Plugin.ParseContent); 15506 15507 portletBound.setContent(html); 15508 15509 portletBound = portletBound.one('> *'); 15510 15511 let portletId; 15512 15513 if (portletBound) { 15514 const id = portletBound.attr('id'); 15515 15516 portletId = Util.getPortletId(id); 15517 15518 portletBound.portletId = portletId; 15519 15520 placeHolder.hide(); 15521 placeHolder.placeAfter(portletBound); 15522 15523 placeHolder.remove(); 15524 15525 instance.refreshLayout(portletBound); 15526 15527 if (window.location.hash) { 15528 window.location.href = encodeURI(window.location.hash); 15529 } 15530 15531 portletBoundary = portletBound; 15532 15533 const Layout = Liferay.Layout; 15534 15535 if (Layout && Layout.INITIALIZED) { 15536 Layout.updateCurrentPortletInfo(portletBoundary); 15537 15538 if (container) { 15539 Layout.syncEmptyColumnClassUI(container); 15540 } 15541 15542 Layout.syncDraggableClassUI(); 15543 Layout.updatePortletDropZones(portletBoundary); 15544 } 15545 15546 if (onComplete) { 15547 onComplete(portletBoundary, portletId); 15548 } 15549 } 15550 else { 15551 placeHolder.remove(); 15552 } 15553 15554 return portletId; 15555 }; 15556 15557 if (beforePortletLoaded) { 15558 beforePortletLoaded(placeHolder); 15559 } 15560 15561 Liferay.Util.fetch(url, { 15562 body: Liferay.Util.objectToURLSearchParams(data), 15563 method: 'POST', 15564 }) 15565 .then((response) => { 15566 if (dataType === 'JSON') { 15567 return response.json(); 15568 } 15569 else { 15570 return response.text(); 15571 } 15572 }) 15573 .then((response) => { 15574 if (dataType === 'HTML') { 15575 addPortletReturn(response); 15576 } 15577 else if (response.refresh) { 15578 addPortletReturn(response.portletHTML); 15579 } 15580 else { 15581 Portlet._loadMarkupHeadElements(response); 15582 Portlet._loadPortletFiles(response, addPortletReturn); 15583 } 15584 15585 if (!data || !data.preventNotification) { 15586 Liferay.fire('updatedLayout'); 15587 } 15588 }) 15589 .catch((error) => { 15590 const message = 15591 typeof error === 'string' 15592 ? error 15593 : 'There\x20was\x20an\x20unexpected\x20error\x2e\x20Please\x20refresh\x20the\x20current\x20page\x2e'; 15594 15595 Liferay.Util.openToast({ 15596 message, 15597 type: 'danger', 15598 }); 15599 }); 15600 }, 15601 ['aui-parse-content'] 15602 ); 15603 15604 Liferay.provide( 15605 Portlet, 15606 'close', 15607 function (portlet, skipConfirm, options) { 15608 const instance = this; 15609 15610 const _removeComponent = () => { 15611 const portletId = portlet.portletId; 15612 15613 const portletIndex = instance.list.indexOf(portletId); 15614 15615 if (portletIndex >= 0) { 15616 instance.list.splice(portletIndex, 1); 15617 } 15618 15619 options = Portlet._mergeOptions(portlet, options); 15620 15621 Portlet.destroyComponents(portletId); 15622 15623 Liferay.fire('destroyPortlet', options); 15624 15625 Liferay.fire('closePortlet', options); 15626 }; 15627 15628 portlet = A.one(portlet); 15629 15630 if (portlet) { 15631 if (!skipConfirm) { 15632 Liferay.Util.openConfirmModal({ 15633 message: 'Are\x20you\x20sure\x20you\x20want\x20to\x20remove\x20this\x20component\x3f', 15634 onConfirm: (isConfirmed) => { 15635 if (isConfirmed) { 15636 _removeComponent(); 15637 } 15638 }, 15639 }); 15640 } 15641 else { 15642 _removeComponent(); 15643 } 15644 } 15645 else { 15646 A.config.win.focus(); 15647 } 15648 }, 15649 [] 15650 ); 15651 15652 Liferay.provide( 15653 Portlet, 15654 'destroy', 15655 (portlet, options) => { 15656 portlet = A.one(portlet); 15657 15658 if (portlet) { 15659 const portletId = 15660 portlet.portletId || Util.getPortletId(portlet.attr('id')); 15661 15662 Portlet.destroyComponents(portletId); 15663 15664 Liferay.fire( 15665 'destroyPortlet', 15666 Portlet._mergeOptions(portlet, options) 15667 ); 15668 } 15669 }, 15670 ['aui-node-base'] 15671 ); 15672 15673 Liferay.provide( 15674 Portlet, 15675 'onLoad', 15676 function (options) { 15677 const instance = this; 15678 15679 const canEditTitle = options.canEditTitle; 15680 const columnPos = options.columnPos; 15681 const isStatic = 15682 options.isStatic === 'no' ? null : options.isStatic; 15683 const namespacedId = options.namespacedId; 15684 const portletId = options.portletId; 15685 const refreshURL = options.refreshURL; 15686 const refreshURLData = options.refreshURLData; 15687 15688 if (isStatic) { 15689 instance.registerStatic(portletId); 15690 } 15691
15692 const portlet = A.one('#' + namespacedId); 15693 15694 if (portlet && !portlet.portletProcessed) { 15695 portlet.portletProcessed = true; 15696 portlet.portletId = portletId; 15697 portlet.columnPos = columnPos; 15698 portlet.isStatic = isStatic; 15699 portlet.refreshURL = refreshURL; 15700 portlet.refreshURLData = refreshURLData; 15701 15702 // Functions to run on portlet load 15703 15704 if (canEditTitle) { 15705 15706 // https://github.com/yui/yui3/issues/1808 15707 15708 let events = 'focus'; 15709 15710 if (!A.UA.touchEnabled) { 15711 events = ['focus', 'mousemove']; 15712 } 15713 15714 const handle = portlet.on(events, () => { 15715 Util.portletTitleEdit({ 15716 doAsUserId: themeDisplay.getDoAsUserIdEncoded(), 15717 15718 // eslint-disable-next-line @liferay/no-abbreviations 15719 obj: portlet, 15720 plid: themeDisplay.getPlid(), 15721 portletId, 15722 }); 15723 15724 handle.detach(); 15725 }); 15726 } 15727 } 15728 15729 Liferay.fire('portletReady', { 15730 portlet, 15731 portletId, 15732 }); 15733 15734 instance.readyCounter++; 15735 15736 if (instance.readyCounter === instance.list.length) { 15737 Liferay.fire('allPortletsReady', { 15738 portletId, 15739 }); 15740 } 15741 }, 15742 ['aui-base', 'aui-timer', 'event-move'] 15743 ); 15744 15745 Liferay.provide( 15746 Portlet, 15747 'refresh', 15748 function (portlet, data, mergeWithRefreshURLData) { 15749 const instance = this; 15750 15751 portlet = A.one(portlet); 15752 15753 if (portlet) { 15754 if (mergeWithRefreshURLData) { 15755 data = { 15756 ...(portlet.refreshURLData || {}), 15757 ...(data || {}), 15758 }; 15759 } 15760 else { 15761 data = data || portlet.refreshURLData || {}; 15762 } 15763 15764 if ( 15765 !Object.prototype.hasOwnProperty.call( 15766 data, 15767 'portletAjaxable' 15768 ) 15769 ) { 15770 data.portletAjaxable = true; 15771 } 15772 15773 const id = portlet.attr('portlet'); 15774 15775 let url = portlet.refreshURL; 15776 15777 const placeHolder = A.Node.create( 15778 '<div class="loading-animation" id="p_p_id' + id + '" />' 15779 ); 15780 15781 if (data.portletAjaxable && url) { 15782 portlet.placeBefore(placeHolder); 15783 15784 portlet.remove(true); 15785 15786 Portlet.destroyComponents(portlet.portletId); 15787 15788 let params = {}; 15789 15790 const urlPieces = url.split('?'); 15791 15792 if (urlPieces.length > 1) { 15793 params = A.QueryString.parse(urlPieces[1]); 15794 15795 delete params.dataType; 15796 15797 url = urlPieces[0]; 15798 } 15799 15800 instance.addHTML({ 15801 data: A.mix(params, data, true), 15802 onComplete(newPortlet, portletId) { 15803 newPortlet.refreshURL = portlet.refreshURL; 15804 15805 if (newPortlet) { 15806 newPortlet.attr('data-qa-id', 'app-refreshed'); 15807 } 15808 15809 Liferay.fire( 15810 newPortlet.portletId + ':portletRefreshed', 15811 { 15812 portlet: newPortlet, 15813 portletId, 15814 } 15815 ); 15816 }, 15817 placeHolder, 15818 url, 15819 }); 15820 } 15821 else if (!portlet.getData('pendingRefresh')) { 15822 portlet.setData('pendingRefresh', true); 15823 15824 const nonAjaxableContentMessage = Lang.sub( 15825 TPL_NOT_AJAXABLE, 15826 [ 15827 'This\x20change\x20will\x20only\x20be\x20shown\x20after\x20you\x20refresh\x20the\x20current\x20page\x2e', 15828 ] 15829 ); 15830 15831 const portletBody = portlet.one('.portlet-body'); 15832 15833 portletBody.placeBefore(nonAjaxableContentMessage); 15834 15835 portletBody.hide(); 15836 } 15837 15838 Liferay.fire('refreshPortlet', {portletId: portlet.portletId}); 15839 } 15840 }, 15841 ['aui-base', 'querystring-parse'] 15842 ); 15843 15844 Liferay.provide( 15845 Portlet, 15846 'registerStatic', 15847 function (portletId) { 15848 const instance = this; 15849 15850 const Node = A.Node; 15851 15852 if (Node && portletId instanceof Node) { 15853 portletId = portletId.attr('id'); 15854 } 15855 else if (portletId.id) { 15856 portletId = portletId.id; 15857 } 15858 15859 const id = Util.getPortletId(portletId); 15860 15861 instance._staticPortlets[id] = true; 15862 }, 15863 ['aui-base'] 15864 ); 15865 15866 Liferay.publish('closePortlet', { 15867 defaultFn: Portlet._defCloseFn, 15868 }); 15869 15870 Liferay.publish('allPortletsReady', { 15871 fireOnce: true, 15872 }); 15873 15874 // Backwards compatability 15875 15876 Portlet.ready = function (fn) { 15877 Liferay.on('portletReady', (event) => { 15878 fn(event.portletId, event.portlet); 15879 }); 15880 }; 15881 15882 Liferay.Portlet = Portlet; 15883})(AUI()); 15884 15885/** 15886 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 15887 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 15888 */ 15889 15890Liferay.Workflow = { 15891 ACTION_PUBLISH: 1, 15892 15893 ACTION_SAVE_DRAFT: 2, 15894 15895 STATUS_ANY: -1, 15896 15897 STATUS_APPROVED: 0, 15898 15899 STATUS_DENIED: 4, 15900 15901 STATUS_DRAFT: 2, 15902 15903 STATUS_EXPIRED: 3, 15904 15905 STATUS_PENDING: 1, 15906}; 15907
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.