function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}AUI.add("liferay-session",(e=>{const t=e.Lang,n=[],i=e.config,s=i.doc,r={active:"activated"},a={},o={src:a},g="sessionToast",l=themeDisplay.getPathMain()+"/portal/",c=e.Component.create({ATTRS:{autoExtend:{value:!1},redirectOnExpire:{value:!0},redirectUrl:{value:""},sessionLength:{getter:"_getLengthInMillis",value:0},sessionState:{value:"active"},sessionTimeoutOffset:{getter:"_getLengthInMillis",value:0},timestamp:{getter:"_getTimestamp",setter:"_setTimestamp",value:0},warningLength:{getter:"_getLengthInMillis",setter:"_setWarningLength",value:0},warningTime:{getter:"_getWarningTime",value:0}},EXTENDS:e.Base,NAME:"liferaysession",prototype:{_afterSessionStateChange(e){const t=e.details,n=e.newVal;let i=null;"src"in e&&t.length&&(i=t[0]),this.fire(r[n]||n,i)},_defActivatedFn(e){const t=this;t.set("timestamp"),e.src===a&&Liferay.Util.fetch(l+"extend_session").then((e=>{500===e.status&&t.expire()}))},_defExpiredFn(t){const n=this;e.clearInterval(n._intervalId),t.src===a&&n._expireSession()},_expireSession(){const t=this;Liferay.Util.fetch(l+"expire_session").then((n=>{n.ok?(Liferay.fire("sessionExpired"),t.get("redirectOnExpire")&&(location.href=t.get("redirectUrl"))):e.setTimeout((()=>{t._expireSession()}),1e3)}))},_getLengthInMillis:e=>1e3*e,_getTimestamp(){const t=this;return e.Cookie.get(t._cookieKey,t._cookieOptions)||t._initTimestamp},_getWarningTime(){return this.get("sessionLength")-this.get("warningLength")},_initEvents(){const n=this;n.publish("activated",{defaultFn:e.bind("_defActivatedFn",n)}),n.publish("expired",{defaultFn:e.bind("_defExpiredFn",n)}),n.publish("warned"),n._eventHandlers=[n.on("sessionStateChange",n._onSessionStateChange),n.after("sessionStateChange",n._afterSessionStateChange),e.on("io:complete",((e,i,s)=>{(!s||s&&s.sessionExtend||!t.isBoolean(s.sessionExtend))&&n.resetInterval()})),Liferay.once("screenLoad",(()=>{n.destroy()}))]},_onSessionStateChange(e){const t=this,n=e.newVal,i=e.prevVal;"expired"===i&&i!==n?e.preventDefault():"active"===i&&i===n&&t._afterSessionStateChange(e)},_setTimestamp(t){const n=this;t=String(t||Date.now()),n._initTimestamp=t,navigator.cookieEnabled&&e.Cookie.set(n._cookieKey,t,n._cookieOptions)},_setWarningLength(e){return Math.min(this.get("sessionLength"),e)},_startTimer(){const t=this,n=t.get("sessionLength"),i=t.get("sessionTimeoutOffset"),s=t.get("warningTime");t._intervalId=e.setInterval((()=>{const e=t.get("sessionState"),r=t.get("timestamp");t._initTimestamp!==r&&(t.set("timestamp",r),"active"!==e&&t.set("sessionState","active",o));const a=1e3*Math.floor((Date.now()-r)/1e3),g=t.get("autoExtend"),l=a>=n,c=a>=n-i,d=a>=s;l&&"expired"!==e?t.expire():g&&c?t.extend():!g&&d&&"warned"!==e&&t.warn();const p=t._registered;for(const e in p)p[e](a,d,l)}),1e3)},_stopTimer(){e.clearInterval(this._intervalId)},destructor(){new e.EventHandle(this._eventHandlers).detach(),this._stopTimer()},expire(){this.set("sessionState","expired",o)},extend(){this.set("sessionState","active",o)},initializer(){const t=this;t._cookieKey="LFR_SESSION_STATE_"+themeDisplay.getRealUserId(),t._cookieOptions={path:"/",secure:e.UA.secure},t._registered={},t.set("timestamp"),t._initEvents(),t._startTimer(),Liferay.fire("sessionInitialized",{session:t})},registerInterval(n){let i;const s=this._registered;return t.isFunction(n)&&(i=e.stamp(n),s[i]=n),i},resetInterval(){this._stopTimer(),this._startTimer()},unregisterInterval(e){const t=this._registered;return Object.prototype.hasOwnProperty.call(t,e)&&delete t[e],e},warn(){this.set("sessionState","warned",o)}}});c.SRC=a;const d=e.Component.create({ATTRS:{openToast:{validator:t.isFunction},pageTitle:{value:s.title}},EXTENDS:e.Plugin.Base,NAME:"liferaysessiondisplay",NS:"display",prototype:{_afterDefActivatedFn(){this._uiSetActivated()},_afterDefExpiredFn(){const e=this;e._host.unregisterInterval(e._intervalId),e._uiSetExpired()},_beforeHostWarned(){const e=this,n=e._host,i=n.get("sessionLength"),s=n.get("timestamp"),r=n.get("warningLength");let a=i;t.toInt(s)&&(a=1e3*Math.floor((Date.now()-s)/1e3));let o=i-a;o>r&&(o=r),e._getBanner();const l=document.querySelector("#".concat(g," .countdown-timer"));e._uiSetRemainingTime(o,l),e._intervalId=n.registerInterval(((t,n,s)=>{n?s||e._uiSetRemainingTime(i-t,l):e._uiSetActivated()}))},_destroyBanner(){const e=document.getElementById(g),t=null==e?void 0:e.parentElement;Liferay.destroyComponent(g),t&&t.remove(),this._banner=!1},_formatNumber:e=>t.String.padNumber(Math.floor(e),2),_formatTime(e){const i=this;return e=Number(e),t.isNumber(e)&&e>0?(e/=1e3,n[0]=i._formatNumber(e/3600),e%=3600,n[1]=i._formatNumber(e/60),e%=60,n[2]=i._formatNumber(e),e=n.join(":")):e=0,e},_getBanner(){const e=this;let t=e._banner;if(!t){const n=e.get("openToast"),i={onClick({event:t}){t.target.classList.contains("alert-link")&&e._host.extend()},renderData:{componentId:g},toastProps:{autoClose:!1,id:g,role:"alert"}};n(_objectSpread({message:e._warningText,type:"warning"},i));t=_objectSpread({open(t){e._destroyBanner(),n(_objectSpread(_objectSpread({},t),i))}},Liferay.component(g)),e._banner=t}return t},_onHostSessionStateChange(e){const t=this;"warned"===e.newVal&&t._beforeHostWarned(e)},_uiSetActivated(){const e=this;s.title=e.reset("pageTitle").get("pageTitle"),e._host.unregisterInterval(e._intervalId),e._banner&&e._destroyBanner()},_uiSetExpired(){const e=this;e._getBanner().open({message:e._expiredText,title:'Nebezpečenstvo',type:"danger"}),s.title=e.get("pageTitle")},_uiSetRemainingTime(e,n){const i=this;if(e=i._formatTime(e),!i._alertClosed){const t=n.closest('div[role="alert"]');t&&(t.removeAttribute("role"),i._alert=t),n.innerHTML=e}s.title=t.sub('Session\x20expires\x20in\x20\x7b0\x7d\x2e',[e])+" | "+i.get("pageTitle")},destructor(){const e=this;e._banner&&e._destroyBanner()},initializer(){const e=this,n=e.get("host");Liferay.Util.getTop()===i.win?(e._host=n,e._toggleText={hide:'Skryť',show:'Ukázať'},e._expiredText='Due\x20to\x20inactivity\x2c\x20your\x20session\x20has\x20expired\x2e\x20Before\x20you\x20continue\x2c\x20make\x20sure\x20your\x20entered\x20data\x20is\x20saved\x20locally\x2e',e._warningText='Due\x20to\x20inactivity\x2c\x20your\x20session\x20will\x20expire\x20in\x20\x7b0\x7d\x2e\x20To\x20extend\x20your\x20session\x20another\x20\x7b1\x7d\x20minute\x28s\x29\x2c\x20please\x20press\x20the\x20\x3cem\x3eExtend\x3c\x2fem\x3e\x20button\x2e\x20\x7b2\x7d',e._warningText=t.sub(e._warningText,['<span class="countdown-timer">{0}</span>',n.get("sessionLength")/6e4,'<a class="alert-link" href="javascript:void(0);">'+'Predĺžiť'+"</a>"]),n.on("sessionStateChange",e._onHostSessionStateChange,e),e.afterHostMethod("_defActivatedFn",e._afterDefActivatedFn),e.afterHostMethod("_defExpiredFn",e._afterDefExpiredFn)):n.unplug(e)}}});Liferay.SessionBase=c,Liferay.SessionDisplay=d}),"",{requires:["aui-base","aui-component","aui-timer","cookie","plugin"]});
//# sourceMappingURL=session.js.map
