YUI.add("cookie",function(e,t){function h(e){throw new TypeError(e)}function p(e){(!s(e)||e==="")&&h("Cookie name must be a non-empty string.")}function d(e){(!s(e)||e==="")&&h("Subcookie name must be a non-empty string.")}var n=e.Lang,r=e.Object,i=null,s=n.isString,o=n.isObject,u=n.isUndefined,a=n.isFunction,f=encodeURIComponent,l=decodeURIComponent,c=e.config.doc;e.Cookie={_createCookieString:function(e,t,n,r){r=r||{};var i=f(e)+"="+(n?f(t):t),u=r.expires,a=r.path,l=r.domain;return o(r)&&(u instanceof Date&&(i+="; expires="+u.toUTCString()),s(a)&&a!==""&&(i+="; path="+a),s(l)&&l!==""&&(i+="; domain="+l),r.secure===!0&&(i+="; secure")),i},_createCookieHashString:function(e){o(e)||h("Cookie._createCookieHashString(): Argument must be an object.");var t=[];return r.each(e,function(e,n){!a(e)&&!u(e)&&t.push(f(n)+"="+f(String(e)))}),t.join("&")},_parseCookieHash:function(e){var t=e.split("&"),n=i,r={};if(e.length)for(var s=0,o=t.length;s<o;s++)n=t[s].split("="),r[l(n[0])]=l(n[1]);return r},_parseCookieString:function(e,t,n){var r={};if(s(e)&&e.length>0){var o=t===!1?function(e){return e}:l,a=e.split(/;\s/g),f=i,c=i,h=i;for(var p=0,d=a.length;p<d;p++){h=a[p].match(/([^=]+)=/i);if(h instanceof Array)try{f=l(h[1]),c=o(a[p].substring(h[1].length+1))}catch(v){}else f=l(a[p]),c="";!u(n)&&n.reverseCookieLoading?u(r[f])&&(r[f]=c):r[f]=c}}return r},_setDoc:function(e){c=e},exists:function(e){p(e);var t=this._parseCookieString(c.cookie,!0);return t.hasOwnProperty(e)},get:function(e,t){p(e);var n,r,s;return a(t)?(s=t,t={}):o(t)?s=t.converter:t={},n=this._parseCookieString(c.cookie,!t.raw,t),r=n[e],u(r)?i:a(s)?s(r):r},getSub:function(e,t,n,r){var s=this.getSubs(e,r);return s!==i?(d(t),u(s[t])?i:a(n)?n(s[t]):s[t]):i},getSubs:function(e,t){p(e);var n=this._parseCookieString(c.cookie,!1,t);return s(n[e])?this._parseCookieHash(n[e]):i},remove:function(t,n){return p(t),n=e.merge(n||{},{expires:new Date(0)}),this.set(t,"",n)},removeSub:function(e,t,n){p(e),d(t),n=n||{};var r=this.getSubs(e);if(o(r)&&r.hasOwnProperty(t)){delete r[t];if(!n.removeIfEmpty)return this.setSubs(e,r,n);for(var i in r)if(r.hasOwnProperty(i)&&!a(r[i])&&!u(r[i]))return this.setSubs(e,r,n);return this.remove(e,n)}return""},set:function(e,t,n){p(e),u(t)&&h("Cookie.set(): Value cannot be undefined."),n=n||{};var r=this._createCookieString(e,t,!n.raw,n);return c.cookie=r,r},setSub:function(e,t,n,r){p(e),d(t),u(n)&&h("Cookie.setSub(): Subcookie value cannot be undefined.");var i=this.getSubs(e);return o(i)||(i={}),i[t]=n,this.setSubs(e,i,r)},setSubs:function(e,t,n){p(e),o(t)||h("Cookie.setSubs(): Cookie value must be an object.");var r=this._createCookieString(e,this._createCookieHashString(t),!1,n);return c.cookie=r,r}}},"patched-v3.18.1",{requires:["yui-base"]});

function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable});keys.push.apply(keys,symbols)}return keys}
function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2)ownKeys(Object(source),true).forEach(function(key){_defineProperty(target,key,source[key])});else if(Object.getOwnPropertyDescriptors)Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));else ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}
function _defineProperty(obj,key,value){if(key in obj)Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});else obj[key]=value;return obj}
AUI.add("liferay-session",function(A){var Lang=A.Lang;var BUFFER_TIME=[];var CONFIG=A.config;var DOC=CONFIG.doc;var MAP_SESSION_STATE_EVENTS={active:"activated"};var SRC={};var SRC_EVENT_OBJ={src:SRC};var URL_BASE=themeDisplay.getPathMain()+"/portal/";var SessionBase=A.Component.create({ATTRS:{autoExtend:{value:false},redirectOnExpire:{value:true},redirectUrl:{value:""},sessionLength:{getter:"_getLengthInMillis",value:0},sessionState:{value:"active"},timestamp:{getter:"_getTimestamp",setter:"_setTimestamp",
value:0},warningLength:{getter:"_getLengthInMillis",setter:"_setWarningLength",value:0},warningTime:{getter:"_getWarningTime",value:0}},EXTENDS:A.Base,NAME:"liferaysession",prototype:{_afterSessionStateChange:function _afterSessionStateChange(event){var instance=this;var details=event.details;var newVal=event.newVal;var src=null;if("src"in event&&details.length)src=details[0];instance.fire(MAP_SESSION_STATE_EVENTS[newVal]||newVal,src)},_defActivatedFn:function _defActivatedFn(event){var instance=
this;instance.set("timestamp");if(event.src==SRC)Liferay.Util.fetch(URL_BASE+"extend_session")},_defExpiredFn:function _defExpiredFn(event){var instance=this;A.clearInterval(instance._intervalId);instance.set("timestamp","expired");if(event.src===SRC)instance._expireSession()},_expireSession:function _expireSession(){var instance=this;Liferay.Util.fetch(URL_BASE+"expire_session").then(function(response){if(response.ok){Liferay.fire("sessionExpired");if(instance.get("redirectOnExpire"))location.href=
instance.get("redirectUrl")}else A.setTimeout(function(){instance._expireSession()},1E3)})},_getLengthInMillis:function _getLengthInMillis(value){return value*1E3},_getTimestamp:function _getTimestamp(){var instance=this;return A.Cookie.get(instance._cookieKey,instance._cookieOptions)||instance._initTimestamp},_getWarningTime:function _getWarningTime(){var instance=this;return instance.get("sessionLength")-instance.get("warningLength")},_initEvents:function _initEvents(){var instance=this;instance.publish("activated",
{defaultFn:A.bind("_defActivatedFn",instance)});instance.publish("expired",{defaultFn:A.bind("_defExpiredFn",instance)});instance.publish("warned");instance._eventHandlers=[instance.on("sessionStateChange",instance._onSessionStateChange),instance.after("sessionStateChange",instance._afterSessionStateChange),A.on("io:complete",function(transactionId,response,args){if(!args||args&&args.sessionExtend||!Lang.isBoolean(args.sessionExtend))instance.resetInterval()}),Liferay.once("screenLoad",function(){instance.destroy()})]},
_onSessionStateChange:function _onSessionStateChange(event){var instance=this;var newVal=event.newVal;var prevVal=event.prevVal;if(prevVal=="expired"&&prevVal!=newVal)event.preventDefault();else if(prevVal=="active"&&prevVal==newVal)instance._afterSessionStateChange(event)},_setTimestamp:function _setTimestamp(value){var instance=this;value=String(value||Date.now());instance._initTimestamp=value;if(navigator.cookieEnabled)A.Cookie.set(instance._cookieKey,value,instance._cookieOptions)},_setWarningLength:function _setWarningLength(value){var instance=
this;return Math.min(instance.get("sessionLength"),value)},_startTimer:function _startTimer(){var instance=this;var sessionLength=instance.get("sessionLength");var warningTime=instance.get("warningTime");var registered=instance._registered;var interval=1E3;instance._intervalId=A.setInterval(function(){var sessionState=instance.get("sessionState");var timeOffset;var timestamp=instance.get("timestamp");var elapsed=sessionLength;if(Lang.toInt(timestamp)){timeOffset=Math.floor((Date.now()-timestamp)/
1E3)*1E3;elapsed=timeOffset;if(instance._initTimestamp!==timestamp){instance.set("timestamp",timestamp);if(sessionState!="active")instance.set("sessionState","active",SRC_EVENT_OBJ)}}else timestamp="expired";var extend=instance.get("autoExtend");var expirationMoment=false;var warningMoment=false;var hasExpired=elapsed>=sessionLength;var hasWarned=elapsed>=warningTime;if(hasWarned){if(timestamp=="expired"){expirationMoment=true;extend=false;hasExpired=true}if(hasExpired&&sessionState!="expired")if(extend){expirationMoment=
false;hasExpired=false;hasWarned=false;warningMoment=false;instance.extend()}else{instance.expire();expirationMoment=true}else if(hasWarned&&!hasExpired&&!extend&&sessionState!="warned"){instance.warn();warningMoment=true}}for(var i in registered)registered[i](elapsed,interval,hasWarned,hasExpired,warningMoment,expirationMoment)},interval)},_stopTimer:function _stopTimer(){var instance=this;A.clearInterval(instance._intervalId)},destructor:function destructor(){var instance=this;(new A.EventHandle(instance._eventHandlers)).detach();
instance._stopTimer()},expire:function expire(){var instance=this;instance.set("sessionState","expired",SRC_EVENT_OBJ)},extend:function extend(){var instance=this;instance.set("sessionState","active",SRC_EVENT_OBJ)},initializer:function initializer(){var instance=this;instance._cookieKey="LFR_SESSION_STATE_"+themeDisplay.getUserId();instance._cookieOptions={path:"/",secure:A.UA.secure};instance._registered={};instance.set("timestamp");instance._initEvents();instance._startTimer()},registerInterval:function registerInterval(fn){var instance=
this;var fnId;var registered=instance._registered;if(Lang.isFunction(fn)){fnId=A.stamp(fn);registered[fnId]=fn}return fnId},resetInterval:function resetInterval(){var instance=this;instance._stopTimer();instance._startTimer()},unregisterInterval:function unregisterInterval(fnId){var instance=this;var registered=instance._registered;if(Object.prototype.hasOwnProperty.call(registered,fnId))delete registered[fnId];return fnId},warn:function warn(){var instance=this;instance.set("sessionState","warned",
SRC_EVENT_OBJ)}}});SessionBase.SRC=SRC;var SessionDisplay=A.Component.create({ATTRS:{openToast:{validator:Lang.isFunction},pageTitle:{value:DOC.title}},EXTENDS:A.Plugin.Base,NAME:"liferaysessiondisplay",NS:"display",prototype:{_afterDefActivatedFn:function _afterDefActivatedFn(){var instance=this;instance._uiSetActivated()},_afterDefExpiredFn:function _afterDefExpiredFn(){var instance=this;instance._host.unregisterInterval(instance._intervalId);instance._uiSetExpired()},_beforeHostWarned:function _beforeHostWarned(){var instance=
this;var host=instance._host;var sessionLength=host.get("sessionLength");var timestamp=host.get("timestamp");var warningLength=host.get("warningLength");var elapsed=sessionLength;if(Lang.toInt(timestamp))elapsed=Math.floor((Date.now()-timestamp)/1E3)*1E3;var remainingTime=sessionLength-elapsed;if(remainingTime>warningLength)remainingTime=warningLength;var banner=instance._getBanner();var counterTextNode=banner.one(".countdown-timer").getDOMNode();instance._uiSetRemainingTime(remainingTime,counterTextNode);
banner.show();instance._intervalId=host.registerInterval(function(elapsed,interval,hasWarned,hasExpired,warningMoment){if(!hasWarned)instance._uiSetActivated();else if(!hasExpired){if(warningMoment){if(remainingTime<=0)remainingTime=warningLength;banner.show()}elapsed=Math.floor((Date.now()-timestamp)/1E3)*1E3;remainingTime=sessionLength-elapsed;instance._uiSetRemainingTime(remainingTime,counterTextNode)}remainingTime-=interval})},_destroyBanner:function _destroyBanner(){var instance=this;if(Lang.isFunction(instance._banner.destroy))instance._banner.destroy();
instance._banner=false},_formatNumber:function _formatNumber(value){return Lang.String.padNumber(Math.floor(value),2)},_formatTime:function _formatTime(time){var instance=this;time=Number(time);if(Lang.isNumber(time)&&time>0){time/=1E3;BUFFER_TIME[0]=instance._formatNumber(time/3600);time%=3600;BUFFER_TIME[1]=instance._formatNumber(time/60);time%=60;BUFFER_TIME[2]=instance._formatNumber(time);time=BUFFER_TIME.join(":")}else time=0;return time},_getBanner:function _getBanner(){var instance=this;var banner=
instance._banner;if(!banner){var openToast=instance.get("openToast");var toastId="sessionToast";var toastDefaultConfig={onClick:function onClick(_ref){var event=_ref.event;if(event.target.classList.contains("alert-link"))instance._host.extend()},onClose:function onClose(_ref2){var event=_ref2.event;event.preventDefault();A.one("#".concat(toastId)).toggleClass("hide",true)},renderData:{componentId:toastId},toastProps:{autoClose:false,id:toastId,role:"alert"}};openToast(_objectSpread({message:instance._warningText,
type:"warning"},toastDefaultConfig));var toastComponent=Liferay.component(toastId);banner=_objectSpread({one:A.one("#".concat(toastId)).one,setAttrs:function setAttrs(attrs){toastComponent.destroy();openToast(_objectSpread(_objectSpread({},attrs),toastDefaultConfig))},show:function show(){A.one("#".concat(toastId)).toggleClass("hide",false)}},toastComponent);instance._banner=banner}return banner},_onHostSessionStateChange:function _onHostSessionStateChange(event){var instance=this;if(event.newVal==
"warned")instance._beforeHostWarned(event)},_uiSetActivated:function _uiSetActivated(){var instance=this;DOC.title=instance.reset("pageTitle").get("pageTitle");instance._host.unregisterInterval(instance._intervalId);var banner=instance._getBanner();if(banner)instance._destroyBanner()},_uiSetExpired:function _uiSetExpired(){var instance=this;var banner=instance._getBanner();banner.setAttrs({message:instance._expiredText,title:"Danger",type:"danger"});DOC.title=instance.get("pageTitle")},_uiSetRemainingTime:function _uiSetRemainingTime(remainingTime,
counterTextNode){var instance=this;remainingTime=instance._formatTime(remainingTime);if(!instance._alertClosed){var alert=counterTextNode.closest('div[role\x3d"alert"]');if(alert){alert.removeAttribute("role");instance._alert=alert}counterTextNode.innerHTML=remainingTime}DOC.title=Lang.sub("Session expires in {0}.",[remainingTime])+" | "+instance.get("pageTitle")},destructor:function destructor(){var instance=this;if(instance._banner)instance._destroyBanner()},initializer:function initializer(){var instance=
this;var host=instance.get("host");if(Liferay.Util.getTop()==CONFIG.win){instance._host=host;instance._toggleText={hide:"Skry\u0165",show:"Uk\u00e1za\u0165"};instance._expiredText="Due to inactivity, your session has expired. Please save any data you may have entered before refreshing the page.";instance._warningText="Due to inactivity, your session will expire in {0}. To extend your session another {1} minute(s), please press the \x3cem\x3eExtend\x3c/em\x3e button. {2}";instance._warningText=Lang.sub(instance._warningText,
['\x3cspan class\x3d"countdown-timer"\x3e{0}\x3c/span\x3e',host.get("sessionLength")/6E4,'\x3ca class\x3d"alert-link" href\x3d"javascript:;"\x3e'+"Pred\u013a\u017ei\u0165"+"\x3c/a\x3e"]);host.on("sessionStateChange",instance._onHostSessionStateChange,instance);instance.afterHostMethod("_defActivatedFn",instance._afterDefActivatedFn);instance.afterHostMethod("_defExpiredFn",instance._afterDefExpiredFn)}else host.unplug(instance)}}});Liferay.SessionBase=SessionBase;Liferay.SessionDisplay=SessionDisplay},
"",{requires:["aui-base","aui-component","aui-timer","cookie","plugin"]});
