@olenbetong/appframe-core 2.15.2 → 2.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- this.af=this.af||{},this.af.common=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return{all:e=e||/* @__PURE__ */ new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(e){e(n)}),(r=e.get(`*`))&&r.slice().map(function(e){e(t,n)})}}}function n(e){"@babel/helpers - typeof";return n=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},n(e)}function r(e,t){if(n(e)!=`object`||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,t||`default`);if(n(i)!=`object`)return i;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function i(e){var t=r(e,`string`);return n(t)==`symbol`?t:t+``}function a(e,t,n){return(t=i(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var o=class{constructor(){a(this,`eventHandler`,t())}authenticated(){this.eventHandler.emit(`onAuthenticated`)}async expired(e,t){try{let n=new Promise(t=>{let n=()=>{this.eventHandler.off(`onAuthenticated`,n),e?.(),t()};this.eventHandler.on(`onAuthenticated`,n)}),r=document.querySelector(`dialog.session-expired-dialog`);if(r)await n;else{r=document.createElement(`dialog`),r.className=`session-expired-dialog`,r.style.display=`flex`,r.style.padding=`0`,r.style.left=`50%`,r.style.transform=`translateX(-50%)`;let e=`/login?ReturnUrl=%2fapi/sessionexpired/remove`;t===`RequireTwoFactor`?e=`/login?RequireTwoFactor=1&ReturnUrl=%2fapi/sessionexpired/remove`:await fetch(`/logout`,{method:`POST`}),r.innerHTML=`<iframe sandbox="allow-same-origin allow-scripts allow-modals allow-top-navigation-by-user-activation allow-forms" src="${e}" style="border:0;width:min(500px,100vw);height:min(700px, 100vh);"></iframe>`,document.body.append(r),r.showModal(),await n,r.remove()}}catch{window.location.href=`/login?ReturnUrl=${encodeURIComponent(window.location.pathname)}${encodeURIComponent(window.location.search)}`}}attachEvent(e,t){return this.eventHandler.on(e,t)}detachEvent(e,t){return this.eventHandler.off(e,t)}},s=class extends o{constructor(e){super(),a(this,`amDesignator`,`a.m.`),a(this,`dayNames`,[`sunday`,`monday`,`tuesday`,`wednesday`,`thursday`,`friday`,`saturday`]),a(this,`dayNamesShort`,[`sun`,`mon`,`tue`,`wed`,`thu`,`fri`,`sat`]),a(this,`decimalSeparator`,`.`),a(this,`domain`,`OB`),a(this,`email`,void 0),a(this,`formats`,void 0),a(this,`groupSeparator`,null),a(this,`integratedSecurity`,!1),a(this,`isDeveloper`,!1),a(this,`login`,``),a(this,`loginType`,void 0),a(this,`monthNames`,[`january`,`february`,`march`,`april`,`may`,`june`,`july`,`august`,`september`,`october`,`november`,`december`,``]),a(this,`monthNamesShort`,[`jan`,`feb`,`mar`,`apr`,`may`,`jun`,`jul`,`augt`,`sep`,`oct`,`nov`,`dec`,``]),a(this,`name`,void 0),a(this,`pmDesignator`,`p.m.`),a(this,`shortDateFormat`,`dd.MM.yyyy`),a(this,`culture`,`en-GB`),a(this,`uiculture`,`en-GB`),this.formats={},Object.assign(this,e)}};let c=window.af?.article?.id??window.window?.location.pathname.substring(1).split(`/`)[0];async function l(e,t={},n=0){try{let r=await fetch(`/api/logging/log-activity`,{method:`POST`,body:JSON.stringify({article:c,timeElapsed:n,action:e,parameters:{...t,_session:_()}}),headers:{"Content-Type":`application/json`,Accept:`application/json`}});if(!r.ok){if(r.headers.get(`Content-Type`)?.includes(`application/json`)){let e=await r.json();console.error(e.error)}else console.error(`${r.status} ${r.statusText}`)}}catch{}}function u(e,t={}){let n=performance.now();return(r={})=>l(e,{...t,...r},performance.now()-n)}async function d(e){let t=performance.now();return[await e(),performance.now()-t]}async function f(e){try{if(!e)return;let t=typeof e==`string`?{error:e}:typeof e==`object`?`message`in e?{error:e.message,stack:e.stack??null}:{error:e.toString()}:{error:`Unspecified error`};console.error(e);let n=await fetch(`/data/Logger/LogError`,{method:`POST`,body:JSON.stringify(t),headers:{"Content-Type":`application/json; charset=utf-8`}});if(n.ok)return await n.json();console.error(Error(`Failed to log error`))}catch{}}function p(){return crypto.randomUUID?.()}function m(e,t){let n=RegExp(`/lib/@olenbetong/${e}/([^/]+)/`);for(let e of t){let t=typeof e==`string`?n.exec(e):null;if(t)return t[1]}}function ee(){let e={};try{let t=document.querySelector(`script[type="importmap"]`),n=t?m(`synergi-platform`,Object.values(JSON.parse(t.textContent??`{}`).imports??{})):void 0;n&&(e[`synergi-platform`]=n)}catch{}let t=m(`synergi-chrome`,Array.from(document.scripts,e=>e.src))??window.ob?.chrome?.version;return t&&(e[`synergi-chrome`]=t),e}let te=Date.now(),ne=p(),h=``,g=``;if(`document`in window){let e=()=>l(`AfSessionInit`,{"appframe-core":window.af?.common?.version,"appframe-data":window.af?.data?.version,"app-version":window.af?.article?.version,...ee()});document.addEventListener(`DOMContentLoaded`,()=>{h=localStorage.getItem(`_afDeviceId`),g=sessionStorage.getItem(`_afSessionId`),h||(h=p(),localStorage.setItem(`_afDeviceId`,h)),g||(g=ne,sessionStorage.setItem(`_afSessionId`,g)),e()}),document.addEventListener(`visibilitychange`,function(){document.visibilityState===`hidden`?navigator.sendBeacon(`/api/logging/log-activity`,JSON.stringify({article:c,action:`AfSessionEnd`,parameters:{_session:_()}})):e()})}function _(){return{browserSessionId:g,sessionStart:te,sessionLength:Date.now()-te,sessionId:ne,deviceId:h}}window.window?.addEventListener(`error`,e=>{typeof e==`object`&&`error`in e?f(e.error):typeof e==`object`&&`message`in e&&f(e)});function re(e){return[af?.article?.id||``,`common`,e].join(`.`)}var ie=new class{constructor(){a(this,`isPersisted`,()=>!0)}getLocalStorageKey(e,t){return t?[`common`,e].join(`.`):re(e)}get(e,t,n){let r=this.getLocalStorageKey(e,n),i=localStorage.getItem(r);return i===null?t:JSON.parse(i)}set(e,t,n){localStorage.setItem(this.getLocalStorageKey(e,n),JSON.stringify(t))}remove(e,t){let n=this.getLocalStorageKey(e,t);return localStorage.getItem(n)!==null&&(localStorage.removeItem(n),!0)}clear(){let e=re(``);for(let t in localStorage)t.slice(0,e.length)===e&&localStorage.removeItem(t)}};function ae(e){return e?oe(e).substring(0,10):null}function v(e,t=2){return String(e).padStart(t,`0`)}function oe(e){return e?`${e.getFullYear()}-${v(e.getMonth()+1)}-${v(e.getDate())}T${v(e.getHours())}:${v(e.getMinutes())}:${v(e.getSeconds())}.${v(e.getMilliseconds(),3)}`:null}function se(e){return e?e.toISOString().substring(0,16):``}function ce(e,t){return new Promise((n,r)=>{try{let r=URL.createObjectURL(e),i=document.body,a=document.createElement(`a`);a.setAttribute(`download`,t),a.href=r,i.append(a),a.click(),i.removeChild(a),setTimeout(()=>{URL.revokeObjectURL(r),n()},250)}catch(e){r(e)}})}function y(e,t){if(e)return;let n=typeof t==`function`?t():t;throw Error(n??`Invariant failed`)}async function le(e,{fileName:t,signal:n,onProgress:r}){let i=0;r?.({status:`requested`});try{let n=await fetch(e);if(!n.ok||!n.body){if(n.headers.get(`content-type`)?.includes(`application/json`)){let e=await n.json();y(!e.error,e.error)}throw Error(`${n.status} ${n.statusText}`)}try{let e=n.body.getReader(),t=new ReadableStream({start:t=>{function n(){return e.read().then(e=>{if(e.done){t.close();return}return i+=e.value.length,r?.({bytesReceived:i,status:`downloading`}),t.enqueue(e.value),n()})}return n()}});n=new Response(t)}catch{}let a=await n.blob();r?.({bytesReceived:i,status:`downloaded`}),await ce(a,t),r?.({bytesReceived:i,status:`completed`})}catch(e){n?.aborted?r?.({status:`cancelled`}):r?.({error:e.message,status:`error`})}}let ue=/^function(?:\s+([a-zA-Z$_][a-zA-Z0-9$_]*))?\s*\(((?:(?:\s*[a-zA-Z$_][a-zA-Z0-9$_]*)(?:\s*,\s*[a-zA-Z$_][a-zA-Z0-9$_]*)*)?)\s*\)\s*\{((?:.|\n|\r)*)\}$/,de=/^(?:\(([^)]*)\)|([a-zA-Z$_][a-zA-Z0-9$_]*))\s*=>\s*\{([\s\S]*)\}$/,fe=/^(?:\(([^)]*)\)|([a-zA-Z$_][a-zA-Z0-9$_]*))\s*=>\s*([\s\S]+)$/,b=e=>e.split(`,`).map(e=>e.trim()).filter(Boolean);function pe(e){let t=e.toString(),n=t.match(de);if(n){let t=b(n[1]??n[2]??``);return{name:e.name,args:t,body:n[3]}}let r=t.match(fe);if(r){let t=b(r[1]??r[2]??``);return{name:e.name,args:t,body:r[3]}}let i=t.match(ue);return y(i,`Unable to parse function!`),{name:e.name??i[1],args:b(i[2]),body:i[3]}}function me(){}me.prototype=Object.create(null);function he(e,t){if(typeof e==`object`){if(typeof t==`string`)return he(e,t.split(`.`));if(Array.isArray(t)){let n=e;for(let e=0;e<t.length;e++)n=n[t[e]]=n[t[e]]||new me;return n}}}function ge(e,t,n={}){if(Array.isArray(t))for(let n of t){let{name:t}=pe(n);y(t,`Unable to detect name of function! Name it, or only supply one function and include name in first parameter.`),ge(e,n)}else{let r,i;if(typeof t==`function`&&(r=pe(t).name),typeof e==`string`){let t=e.split(`.`);r||(r=t[t.length-1],t=t.slice(0,t.length-1)),i=he(window,t)}else r&&(typeof e==`object`||typeof e==`function`)?i=e:y(!1,`Invalid typeof parameter 'name', or unable to parse pValue!`);Object.hasOwn(i,r)&&n?.overwrite!==!0?console.warn(`${[e,r].join(`.`)} is already defined!`):i[r]=t}}async function _e(e,t){try{let n=await fetch(`/api/user/localize/new/${encodeURIComponent(t)}`,{body:JSON.stringify({text:e}),headers:{Accept:`application/json; */*`,"Content-Type":`application/json`,"X-Requested-With":`XMLHttpRequest`},method:`POST`});if(n.ok)return await n.json()}catch{}return e}function ve(e){let t=window.af;if(!t)return;if(e){let n=t.i18n?.[e];if(n)return{dictionary:n,harvestAs:e}}let n=t.article;if(n?.i18n)return{dictionary:n.i18n,harvestAs:n.id}}function x(e,t){if(typeof e==`string`&&e.trim().length===0)return e;if(e===void 0||e===``||e===null)return;let{project:n,wait:r}=typeof t==`object`?t:{wait:t},i=ve(n);if(i===void 0)return e;let{dictionary:a,harvestAs:o}=i;if(!Object.hasOwn(a,e)){a[e]=e;let t=_e(e,o).then(t=>(a[e]=t,t));if(r)return t}return a[e]}function ye(e){function t(t,n){return x(t,{project:e,wait:n})}function n(e,...n){let r=t(e.map((t,n)=>n===e.length-1?t:`${t}$${n}`).join(``));return n.forEach((e,t)=>{r=r.replace(`$${t}`,String(e))}),r}return{project:e,getLocalizedString:t,localize:n}}let be=[`isnull`,`isnotnull`,`istrue`,`isfalse`,`isblank`,`isnotblank`],xe=[`between`,`notbetween`,`datebetween`,`datenotbetween`],Se=[`inlist`,`notinlist`];function S(e){return be.includes(e)?`none`:xe.includes(e)?`pair`:Se.includes(e)?`list`:`single`}let Ce={equals:`Equal to`,notequals:`Not equal to`,greaterthan:`Greater than`,greaterthanorequal:`Greater than or equal to`,lessthan:`Less than`,lessthanorequal:`Less than or equal to`,beginswith:`Begins with`,notbeginswith:`Does not begin with`,endswith:`Ends with`,notendswith:`Does not end with`,contains:`Contains`,notcontains:`Does not contain`,like:`Like`,notlike:`Not like`,isnull:`Is null`,isnotnull:`Is not null`,isblank:`Is empty`,isnotblank:`Is not empty`,istrue:`Is true`,isfalse:`Is false`,inlist:`In list`,notinlist:`Not in list`,between:`Between`,notbetween:`Not between`,dateequals:`Equal to`,notdatequals:`Not equal to`,dategreaterthan:`After`,dategreaterthanorequal:`On or after`,datelessthan:`Before`,datelessthanorequal:`Up to`,datebetween:`Between`,datenotbetween:`Not between`},we={greaterthan:`After`,greaterthanorequal:`On or after`,lessthan:`Before`,lessthanorequal:`Up to`};function Te(e,t){return x((t===`date`||t===`datetime`?we[e]:void 0)??Ce[e]??e)}let C=[`equals`,`notequals`],w=[`inlist`,`notinlist`],T=[`between`,`notbetween`],E=[`greaterthan`,`greaterthanorequal`,`lessthan`,`lessthanorequal`],Ee=[`contains`,`notcontains`,`beginswith`,`notbeginswith`,`endswith`,`notendswith`,`isblank`,`isnotblank`],De={date:[...C,...w,...T,...E],datetime:[...C,...w,...T,...E],number:[...C,...w,...T,...E],boolean:[`istrue`,`isfalse`],string:[...C,...Ee,...w,...T,...E],uniqueidentifier:[...C,...Ee,...w,...T,...E]},Oe={date:`equals`,datetime:`equals`,number:`equals`,boolean:`istrue`,string:`contains`,uniqueidentifier:`beginswith`};function ke(e){let t=[...De[e.type]??De.string];return e.nullable&&e.type!==`boolean`&&t.push(`isnull`,`isnotnull`),t}function Ae(e){return Oe[e.type]??`equals`}function D(e,t){if(S(t)===`none`)return`null`;switch(e.type){case`number`:return`number`;case`boolean`:return`boolean`;case`date`:case`datetime`:return`datetime`;case`uniqueidentifier`:return`uniqueidentifier`;default:return`string`}}let je=[`Yesterday`,`Today`,`Tomorrow`,`ThisWeek`,`ThisMonth`,`ThisYear`,`LastWeek`,`LastMonth`,`LastYear`,`NextWeek`,`NextMonth`,`NextYear`],Me={CurrentUser:`Current user`,Yesterday:`Yesterday`,Today:`Today`,Tomorrow:`Tomorrow`,ThisWeek:`This week`,ThisMonth:`This month`,ThisYear:`This year`,LastWeek:`Last week`,LastMonth:`Last month`,LastYear:`Last year`,NextWeek:`Next week`,NextMonth:`Next month`,NextYear:`Next year`,UserYesterday:`Yesterday`,UserToday:`Today`,UserTomorrow:`Tomorrow`,UserThisWeek:`This week`,UserThisMonth:`This month`,UserThisYear:`This year`,UserLastWeek:`Last week`,UserLastMonth:`Last month`,UserLastYear:`Last year`,UserNextWeek:`Next week`,UserNextMonth:`Next month`,UserNextYear:`Next year`};function Ne(e){return x(Me[e]??e)}function Pe(e){return e.type===`date`||e.type===`datetime`?[...je]:e.type===`string`?[`CurrentUser`]:[]}let Fe={not:`notequals`,tweens:`notbetween`,notdate:`notdatequals`,notdateequals:`notdatequals`};function O(e){let t=e.toLowerCase().replace(/[\s,]/g,``);return Fe[t]??t}function k(){return A(`and`)}function A(e=`and`){return{type:`group`,mode:e,items:[]}}function j(e){return e.type===`group`}function M(e){return e.type===`expression`}function Ie(e){return e?M(e)?{type:`group`,mode:`and`,items:[e]}:e:k()}function Le(e){if(e.mode!==`or`||e.items.length!==1)return e;let[t]=e.items;return j(t)&&t.mode===`and`?t:e}function Re(e){return N(e)===0}function N(e){return e?M(e)?1:e.items.reduce((e,t)=>e+N(t),0):0}function ze(e){if(!e)return null;if(M(e))return P(e)?{type:`group`,mode:`and`,items:[e]}:null;let t=e.items.map(e=>j(e)?ze(e):P(e)?e:null).filter(e=>e!==null);return t.length===0?null:{...e,items:t}}function P(e){if(j(e))return e.items.some(P);if(!e.column||!e.operator)return!1;let t=S(O(e.operator));return t===`none`?!0:e.value===null||e.value===void 0||e.value===``?!1:t===`pair`?Array.isArray(e.value)&&e.value.length===2&&e.value.every(e=>e!==``&&e!=null):t!==`list`||Array.isArray(e.value)&&e.value.length>0}function Be(e,t){let n=t??Ae(e);return{type:`expression`,column:e.name,operator:n,value:Ve(n),valueType:D(e,n)}}function Ve(e){switch(S(e)){case`none`:return null;case`pair`:return[``,``];case`list`:return[];default:return``}}function He(e,t,n){let r=S(O(e.operator)),i=S(t),a=e.value;i!==r&&(a=Ve(t));let o=e.valueType===`special`&&i===r?`special`:D(n,t);return{...e,operator:t,value:a,valueType:o}}function Ue(e,t){let n=e;for(let e of t){if(!n||!j(n))return null;n=n.items[e]}return n??null}function F(e,t,n){if(t.length===0)return n(e)??e;if(!j(e))return e;let[r,...i]=t,a=e.items[r];if(!a)return e;let o=[...e.items];if(i.length===0){let e=n(a);e===null?o.splice(r,1):o[r]=e}else o[r]=F(a,i,n);return{...e,items:o}}function We(e,t,n){return F(e,t,e=>j(e)?{...e,items:[...e.items,n]}:e)}function Ge(e,t){return t.length===0?k():F(e,t,()=>null)}function Ke(e,t,n){return F(e,t,e=>j(e)?{...e,mode:n}:e)}function qe(e,t=[]){let n=Ue(e,t);return We(e,t,A(n&&j(n)&&n.mode===`and`?`or`:`and`))}async function Je(e,t){let n=await fetch(`/api/filter/convert`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),signal:t});if(!n.ok)throw Error(`Failed to convert filter: ${n.status} ${n.statusText}`);let r=await n.json();return{...r,filterObject:r.filterObject?Ie(r.filterObject):null}}function Ye(e,t={}){return e?Xe(e,new Map((t.fields??[]).map(e=>[e.name.toLowerCase(),e])),0):``}function Xe(e,t,n){if(M(e))return Ze(e,t);let r=e.items.map(e=>Xe(e,t,n+1)).filter(e=>e!==``);if(r.length===0)return``;if(r.length===1)return r[0];let i=e.mode===`or`?` OR `:` AND `,a=r.join(i);return n===0?a:`(${a})`}function Ze(e,t){if(!e.column||!e.operator)return``;let n=t.get(e.column.toLowerCase()),r=n?.caption??e.column,i=O(e.operator),a=Te(i,n?.type),o=S(i);return o===`none`?`[${r}] ${a}`:`[${r}] ${a} ${Qe(e,o)}`}function Qe(e,t){let{value:n,valueType:r}=e;if(r===`special`&&typeof n==`string`)return Ne(n);if(Array.isArray(n)){let e=n.map(e=>$e(e,r));return t===`pair`?e.join(` - `):`(${e.join(`, `)})`}return $e(n,r)}function $e(e,t){return e==null?``:e instanceof Date?e.toISOString().slice(0,10):typeof e==`number`||typeof e==`boolean`||t===`number`||t===`boolean`?String(e):`'${String(e)}'`}let et=[`string`,`number`,`boolean`,`date`,`datetime`,`uniqueidentifier`];function tt(e){let t=e?.trim().toLowerCase();return et.find(e=>e===t)??`string`}function nt(e){return e===!0||e===1}function rt(e){return{name:e.FieldName??``,type:tt(e.DataType),nullable:nt(e.Nullable),excludeFromFilter:nt(e.ExcludeFromFilter),valueListRecordSource:e.ValueListRecordSource||void 0}}function it(e){return e.map(rt).filter(e=>e.name!==``&&!e.excludeFromFilter).sort((e,t)=>e.name.localeCompare(t.name))}function at(e){return!e||M(e)||e.mode!==`or`?!1:e.items.every(e=>j(e)&&e.mode===`and`&&e.items.every(M))}function ot(e){if(!e)return{type:`group`,mode:`or`,items:[{type:`group`,mode:`and`,items:[]}]};if(M(e))return{type:`group`,mode:`or`,items:[{type:`group`,mode:`and`,items:[e]}]};if(e.mode===`or`){let t=e.items.map(e=>{let t=[];return I(e,t),{type:`group`,mode:`and`,items:t}});return{type:`group`,mode:`or`,items:t.length>0?t:[{type:`group`,mode:`and`,items:[]}]}}let t=[];return I(e,t),{type:`group`,mode:`or`,items:[{type:`group`,mode:`and`,items:t}]}}function I(e,t){if(M(e)){t.push(e);return}for(let n of e.items)I(n,t)}function st(e){return{filterId:e.FilterID??-1,primKey:e.PrimKey??``,name:e.FilterName??``,criteria:e.FilterCriteria??``,dbObjectId:e.DBObjectID??``,accessLevel:ct(e.AccessLevel),createdByUser:L(e.CreatedByUser),createdBy:e.CreatedBy??``,domain:e.Domain??null,crossDomain:L(e.CrossDomain),isPersonallyShared:L(e.IsPersonallyShared),hideCriteria:L(e.HideFilterCriteria),headerText:e.OptionalHeaderText||null,comment:e.OptionalComment||null,parameters:e.Parameters||null,reportTitle:e.ReportTitle||null,created:lt(e.Created),updated:lt(e.Updated)}}function ct(e){return e===`Manager`||e===`Editor`?e:`Reader`}function L(e){return typeof e==`string`?e.toLowerCase()===`true`:!!e}function lt(e){if(!e)return null;if(e instanceof Date)return e;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function ut(e){return e.filter(e=>(e.FilterID??-1)!==-1).map(st).sort((e,t)=>e.name.localeCompare(t.name))}function dt(e){let t=[],n=[];for(let r of e)r.createdByUser?t.push(r):n.push(r);return{mine:t,shared:n}}function ft(e,t){if(t!=null)return e.find(e=>e.filterId===t)}function pt(e){return e.accessLevel===`Editor`||e.accessLevel===`Manager`}function mt(e){return e.accessLevel===`Manager`}function R(e){return e.createdByUser}let ht=R,gt=R,_t={xs:64,sm:128,md:256,lg:512,xl:void 0};function vt(e,t,n,r=`xs`){if(e&&typeof e==`object`)return vt(e.primKey,e.login,e.hash,e.size);if(!e||!n)return``;let i=_t[r];return`/api/data/blob/EmployeesLookup/${e}/Image/${encodeURIComponent(t??``)}${t?`.`:``}${encodeURIComponent(n)}.jpg${i?`?width=${i}`:``}`}function yt(e,...t){y(Array.isArray(e)&&e.length===t.length+1,`Method 'localize' must be used as a tag function`);let n=x(e.map((t,n)=>n===e.length-1?t:`${t}$${n}`).join(``));return t.forEach((e,t)=>{n=n.replace(`$${t}`,e)}),n}let bt={amp:`&`,lt:`<`,gt:`>`,quot:`"`,apos:`'`};function z(e){return e.replace(/&(#x?[0-9a-f]+|[a-z]+);/gi,(e,t)=>t.startsWith(`#x`)||t.startsWith(`#X`)?String.fromCodePoint(Number.parseInt(t.slice(2),16)):t.startsWith(`#`)?String.fromCodePoint(Number.parseInt(t.slice(1),10)):bt[t.toLowerCase()]??e)}function B(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`)}function V(e,t){let n=RegExp(`<${t}(?:\\s[^>]*)?>([\\s\\S]*?)</${t}>`).exec(e);if(!n)return null;let r=z(n[1]).trim();return r===``?null:r}function xt(e,t){return[...e.matchAll(RegExp(`<${t}(?:\\s[^>]*)?>([\\s\\S]*?)</${t}>`,`g`))].map(e=>z(e[1]).trim())}let St={Byte:`number`,Decimal:`number`,Double:`number`,Int16:`number`,Int32:`number`,Int64:`number`,Single:`number`,Boolean:`boolean`,DateTime:`date`};function Ct(e){let t=/<SelectColumns>([\s\S]*?)<\/SelectColumns>/.exec(e)?.[1]??``,n=[];for(let e of t.matchAll(/<afSelectColumn>([\s\S]*?)<\/afSelectColumn>/g)){let t=V(e[1],`Name`);t&&n.push({name:t,type:St[V(e[1],`DataType`)??``]??`string`})}return n}function H(e){if(!e||!e.includes(`<afRecordSource`))return null;let t=V(e,`ViewName`);if(!t)return null;let n=V(e,`MaxRecords`);return{viewName:t,columns:Ct(e),whereClause:V(e,`WhereClause`),filterString:V(e,`FilterString`),maxRecords:n===null||n===`0`?null:Number(n)}}let wt=[`String`,`Integer`,`Double`,`Date`,`Boolean`],Tt=/^[a-z]stp_/i;function U(e){return typeof e==`string`&&Tt.test(e.trim())}function Et(e){return e?e.split(/\r\n|\r|\n/).map(e=>e.trim()).filter(e=>e!==``):[]}function Dt(e){return wt.find(t=>t.toLowerCase()===e?.trim().toLowerCase())??`String`}function Ot(e,t,n){if(t)return`lookup`;if(n)return`select`;switch(e){case`Integer`:case`Double`:return`number`;case`Date`:return`date`;case`Boolean`:return`boolean`;default:return`text`}}function kt(e){let t=e.Name??``,n=Dt(e.DataType),r=Et(e.Items),i=H(e.RecordSource),a=e.ValueMember??null;i&&!a&&(a=i.columns[0]?.name??null);let o=i?.columns.find(e=>e.name!==a)?.name??null,s=!!(i&&a);return{name:t,label:e.Label?.trim()||t,description:e.Description?.trim()||null,type:n,editor:Ot(n,s,r.length>0),defaultValue:e.DefaultValue??null,items:r,recordSource:s?i:null,valueMember:s?a:null,displayMember:s?o:null,sortOrder:e.SortOrder??0,lookupWidth:e.LookupWidth??null,lookupHeight:e.LookupHeight??null}}function At(e){return e.filter(e=>e.Name).map(kt).sort((e,t)=>e.sortOrder-t.sortOrder||e.label.localeCompare(t.label))}function W(e,t){if(t==null||t===``)return e.type!==`Boolean`&&null;switch(e.type){case`Boolean`:return typeof t==`boolean`?t:/^(true|1|ja|yes)$/i.test(String(t));case`Integer`:{let e=Number.parseInt(String(t),10);return Number.isNaN(e)?null:e}case`Double`:{let e=Number(String(t).replace(`,`,`.`));return Number.isNaN(e)?null:e}default:return String(t)}}function jt(e){let t={};for(let n of e)t[n.name]=U(n.defaultValue)?W(n,null):W(n,n.defaultValue);return t}function Mt(e,t){return t==null?``:typeof t==`boolean`?t?`True`:`False`:String(t)}function Nt(e,t){return`<Parameters Version="1">\n${e.map(e=>{let n=Mt(e,t[e.name]??null);return` <Parameter Name="${B(e.name)}" Type="${e.type}">${B(n)}</Parameter>`}).join(`
2
- `)}\n</Parameters>`}function Pt(e){if(!e)return{};let t={};for(let n of e.matchAll(/<Parameter\s+([^>]*?)\/?>(?:([\s\S]*?)<\/Parameter>)?/g)){let e=/Name\s*=\s*"([^"]*)"/.exec(n[1])?.[1];e&&(t[e]=V(n[0],`Parameter`)??``)}return t}function Ft(e,t){let n=Pt(t),r=jt(e);for(let t of e)t.name in n&&(r[t.name]=W(t,n[t.name]));return r}async function It(e,t,n){if(!t.defaultValue||!U(t.defaultValue))return null;let r=await fetch(`/api/reporting/filters/${encodeURIComponent(e)}/GetParameterDefaultValue`,{body:JSON.stringify({parameterName:t.name}),credentials:`same-origin`,headers:{"Content-Type":`application/json`,"X-Requested-With":`XMLHttpRequest`},method:`POST`,signal:n});if(!r.ok)throw Error(`${r.status} ${r.statusText}`);return Rt(await r.json())}async function Lt(e,t,n,r){let i=t.filter(e=>U(e.defaultValue??``));if(i.length===0)return n;let a=await Promise.all(i.map(async t=>{try{return[t.name,await It(e,t,r)]}catch{return[t.name,null]}})),o={...n};for(let[e,t]of a)t!==null&&(o[e]=t);return o}function Rt(e){let t=(Array.isArray(e)?e:Object.values(e).find(e=>Array.isArray(e)))?.[0];return t==null?null:Array.isArray(t)?t[0]??null:typeof t==`object`?Object.values(t)[0]??null:t}let zt={CSV:`csv`,HTML:`html`,IMAGE:`xbm`,MHT:`mht`,PDF:`pdf`,RTF:`rtf`,TEXT:`txt`,XLS:`xls`,XLSX:`xlsx`},Bt={CSV:`text/csv`,HTML:`text/html`,IMAGE:`image/x-xbitmap`,MHT:`message/rfc822`,PDF:`application/pdf`,RTF:`text/enriched`,TEXT:`text/plain`,XLS:`application/vnd.ms-excel`,XLSX:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`};function Vt(e){return zt[e]}function G(e){return Bt[e]}let Ht=/[\\/:*?"<>|.#&+%\u0000-\u001f]/g;function K(e){let t=(e.fileName??e.reportId).trim().replace(Ht,`-`).replace(/-{2,}/g,`-`).replace(/^-|-$/g,``).trim();return`${t===``?e.reportId:t}.${Vt(e.format)}`}function Ut(e){let t=window.location?.href;return t?new URL(e,t).toString():e}function q(e){let{domain:t,filter:n,headerText:r,hideFilterString:i,parameters:a,reportId:o,signal:s,timezone:c}=e,l=K(e),u=`/api/report/${encodeURIComponent(o)}/${encodeURIComponent(l)}`,d=new URLSearchParams,f=Kt(a),p=f.length>0||!!r||i===!0;if(t&&d.set(`Domain`,t),d.set(`timezone`,String(c??-(/* @__PURE__ */ new Date()).getTimezoneOffset()/60)),!p)return n&&d.set(`Filter`,n),new Request(Ut(`${u}?${d}`),{credentials:`same-origin`,signal:s});let m={filter:n??``,parameters:f};return r&&(m.optionalheader=r),i===!0&&(m.showfiltercriteria=`true`),new Request(Ut(`${u}?${d}`),{body:JSON.stringify(m),credentials:`same-origin`,headers:{"Content-Type":`application/json`,"X-Requested-With":`XMLHttpRequest`},method:`POST`,signal:s})}async function J(e){let t=await fetch(q(e));if((t.headers.get(`content-type`)??``).includes(`application/json`)){let e=await t.json();throw Error(e.error??`Failed to render report`)}if(!t.ok)throw Error(`${t.status} ${t.statusText}`);return t.blob()}function Wt(e){return le(q(e),{fileName:K(e),onProgress:e.onProgress,signal:e.signal})}async function Y(e){let t=await J(e),n=URL.createObjectURL(t.type?t:new Blob([t],{type:G(e.format)})),r=window.open(n,`_blank`);if(!r)throw URL.revokeObjectURL(n),Error(`The report could not be opened. Allow pop-ups for this site and try again.`);r.opener=null,window.setTimeout(()=>URL.revokeObjectURL(n),6e4)}async function Gt(e){let t=window.document;if(!t?.body)return Y(e);let n=await J(e),r=URL.createObjectURL(n.type?n:new Blob([n],{type:G(e.format)})),i=t.createElement(`iframe`);i.setAttribute(`aria-hidden`,`true`),i.style.cssText=`position:fixed;inset-block-start:0;inset-inline-start:0;inline-size:1px;block-size:1px;border:0;visibility:hidden`;let a=()=>{i.remove(),URL.revokeObjectURL(r)};try{await new Promise((e,n)=>{i.addEventListener(`load`,()=>e(),{once:!0}),i.addEventListener(`error`,()=>n(/* @__PURE__ */ Error(`The report could not be loaded for printing`)),{once:!0}),i.src=r,t.body.append(i)}),i.contentWindow?.focus(),i.contentWindow?.print()}catch{return a(),Y(e)}window.setTimeout(a,6e4)}function Kt(e){return e?Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,t])=>({name:e,value:typeof t==`boolean`?String(t):t})):[]}function X(e){return e===!0||e===1}function qt(e){let t=[];return X(e.FormatPDF)&&t.push(`PDF`),X(e.FormatCSV)&&t.push(`XLSX`,`XLS`,`CSV`),X(e.FormatHTML)&&t.push(`HTML`),X(e.FormatRTF)&&t.push(`RTF`),X(e.FormatMHT)&&t.push(`MHT`),X(e.FormatTEXT)&&t.push(`TEXT`),X(e.FormatIMAGE)&&t.push(`IMAGE`),t}function Jt(e){let t=H(e.RecordSource);return{reportId:e.ReportID??``,shortId:e.ShortID??null,title:e.Title?.trim()||null,description:e.Description?.trim()||null,viewName:t?.viewName??null,initialFilter:t?.filterString??null,hasTitle:X(e.HasTitle),hasHeader:X(e.HasHeader),formats:qt(e),timeout:e.Timeout??null}}function Z(){if(document.querySelector(`#AlertDialogTemplate`))return;let e=document.createElement(`template`);e.id=`AlertDialogTemplate`,e.innerHTML=`
1
+ this.af=this.af||{},this.af.common=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return{all:e=e||/* @__PURE__ */ new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(e){e(n)}),(r=e.get(`*`))&&r.slice().map(function(e){e(t,n)})}}}function n(e){"@babel/helpers - typeof";return n=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},n(e)}function r(e,t){if(n(e)!=`object`||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,t||`default`);if(n(i)!=`object`)return i;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function i(e){var t=r(e,`string`);return n(t)==`symbol`?t:t+``}function a(e,t,n){return(t=i(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var o=class{constructor(){a(this,`eventHandler`,t())}authenticated(){this.eventHandler.emit(`onAuthenticated`)}async expired(e,t){try{let n=new Promise(t=>{let n=()=>{this.eventHandler.off(`onAuthenticated`,n),e?.(),t()};this.eventHandler.on(`onAuthenticated`,n)}),r=document.querySelector(`dialog.session-expired-dialog`);if(r)await n;else{r=document.createElement(`dialog`),r.className=`session-expired-dialog`,r.style.display=`flex`,r.style.padding=`0`,r.style.left=`50%`,r.style.transform=`translateX(-50%)`;let e=`/login?ReturnUrl=%2fapi/sessionexpired/remove`;t===`RequireTwoFactor`?e=`/login?RequireTwoFactor=1&ReturnUrl=%2fapi/sessionexpired/remove`:await fetch(`/logout`,{method:`POST`}),r.innerHTML=`<iframe sandbox="allow-same-origin allow-scripts allow-modals allow-top-navigation-by-user-activation allow-forms" src="${e}" style="border:0;width:min(500px,100vw);height:min(700px, 100vh);"></iframe>`,document.body.append(r),r.showModal(),await n,r.remove()}}catch{window.location.href=`/login?ReturnUrl=${encodeURIComponent(window.location.pathname)}${encodeURIComponent(window.location.search)}`}}attachEvent(e,t){return this.eventHandler.on(e,t)}detachEvent(e,t){return this.eventHandler.off(e,t)}},s=class extends o{constructor(e){super(),a(this,`amDesignator`,`a.m.`),a(this,`dayNames`,[`sunday`,`monday`,`tuesday`,`wednesday`,`thursday`,`friday`,`saturday`]),a(this,`dayNamesShort`,[`sun`,`mon`,`tue`,`wed`,`thu`,`fri`,`sat`]),a(this,`decimalSeparator`,`.`),a(this,`domain`,`OB`),a(this,`email`,void 0),a(this,`formats`,void 0),a(this,`groupSeparator`,null),a(this,`integratedSecurity`,!1),a(this,`isDeveloper`,!1),a(this,`login`,``),a(this,`loginType`,void 0),a(this,`monthNames`,[`january`,`february`,`march`,`april`,`may`,`june`,`july`,`august`,`september`,`october`,`november`,`december`,``]),a(this,`monthNamesShort`,[`jan`,`feb`,`mar`,`apr`,`may`,`jun`,`jul`,`augt`,`sep`,`oct`,`nov`,`dec`,``]),a(this,`name`,void 0),a(this,`pmDesignator`,`p.m.`),a(this,`shortDateFormat`,`dd.MM.yyyy`),a(this,`culture`,`en-GB`),a(this,`uiculture`,`en-GB`),this.formats={},Object.assign(this,e)}};let c=window.af?.article?.id??window.window?.location.pathname.substring(1).split(`/`)[0];async function l(e,t={},n=0){try{let r=await fetch(`/api/logging/log-activity`,{method:`POST`,body:JSON.stringify({article:c,timeElapsed:n,action:e,parameters:{...t,_session:_()}}),headers:{"Content-Type":`application/json`,Accept:`application/json`}});if(!r.ok){if(r.headers.get(`Content-Type`)?.includes(`application/json`)){let e=await r.json();console.error(e.error)}else console.error(`${r.status} ${r.statusText}`)}}catch{}}function u(e,t={}){let n=performance.now();return(r={})=>l(e,{...t,...r},performance.now()-n)}async function d(e){let t=performance.now();return[await e(),performance.now()-t]}async function f(e){try{if(!e)return;let t=typeof e==`string`?{error:e}:typeof e==`object`?`message`in e?{error:e.message,stack:e.stack??null}:{error:e.toString()}:{error:`Unspecified error`};console.error(e);let n=await fetch(`/data/Logger/LogError`,{method:`POST`,body:JSON.stringify(t),headers:{"Content-Type":`application/json; charset=utf-8`}});if(n.ok)return await n.json();console.error(Error(`Failed to log error`))}catch{}}function p(){return crypto.randomUUID?.()}function m(e,t){let n=RegExp(`/lib/@olenbetong/${e}/([^/]+)/`);for(let e of t){let t=typeof e==`string`?n.exec(e):null;if(t)return t[1]}}function ee(){let e={};try{let t=document.querySelector(`script[type="importmap"]`),n=t?m(`synergi-platform`,Object.values(JSON.parse(t.textContent??`{}`).imports??{})):void 0;n&&(e[`synergi-platform`]=n)}catch{}let t=m(`synergi-chrome`,Array.from(document.scripts,e=>e.src))??window.ob?.chrome?.version;return t&&(e[`synergi-chrome`]=t),e}let te=Date.now(),ne=p(),h=``,g=``;if(`document`in window){let e=()=>l(`AfSessionInit`,{"appframe-core":window.af?.common?.version,"appframe-data":window.af?.data?.version,"app-version":window.af?.article?.version,...ee()});document.addEventListener(`DOMContentLoaded`,()=>{h=localStorage.getItem(`_afDeviceId`),g=sessionStorage.getItem(`_afSessionId`),h||(h=p(),localStorage.setItem(`_afDeviceId`,h)),g||(g=ne,sessionStorage.setItem(`_afSessionId`,g)),e()}),document.addEventListener(`visibilitychange`,function(){document.visibilityState===`hidden`?navigator.sendBeacon(`/api/logging/log-activity`,JSON.stringify({article:c,action:`AfSessionEnd`,parameters:{_session:_()}})):e()})}function _(){return{browserSessionId:g,sessionStart:te,sessionLength:Date.now()-te,sessionId:ne,deviceId:h}}window.window?.addEventListener(`error`,e=>{typeof e==`object`&&`error`in e?f(e.error):typeof e==`object`&&`message`in e&&f(e)});function re(e){return[af?.article?.id||``,`common`,e].join(`.`)}var ie=new class{constructor(){a(this,`isPersisted`,()=>!0)}getLocalStorageKey(e,t){return t?[`common`,e].join(`.`):re(e)}get(e,t,n){let r=this.getLocalStorageKey(e,n),i=localStorage.getItem(r);return i===null?t:JSON.parse(i)}set(e,t,n){localStorage.setItem(this.getLocalStorageKey(e,n),JSON.stringify(t))}remove(e,t){let n=this.getLocalStorageKey(e,t);return localStorage.getItem(n)!==null&&(localStorage.removeItem(n),!0)}clear(){let e=re(``);for(let t in localStorage)t.slice(0,e.length)===e&&localStorage.removeItem(t)}};function ae(e){return e?oe(e).substring(0,10):null}function v(e,t=2){return String(e).padStart(t,`0`)}function oe(e){return e?`${e.getFullYear()}-${v(e.getMonth()+1)}-${v(e.getDate())}T${v(e.getHours())}:${v(e.getMinutes())}:${v(e.getSeconds())}.${v(e.getMilliseconds(),3)}`:null}function se(e){return e?e.toISOString().substring(0,16):``}function ce(e,t){return new Promise((n,r)=>{try{let r=URL.createObjectURL(e),i=document.body,a=document.createElement(`a`);a.setAttribute(`download`,t),a.href=r,i.append(a),a.click(),i.removeChild(a),setTimeout(()=>{URL.revokeObjectURL(r),n()},250)}catch(e){r(e)}})}function y(e,t){if(e)return;let n=typeof t==`function`?t():t;throw Error(n??`Invariant failed`)}async function le(e,{fileName:t,signal:n,onProgress:r}){let i=0;r?.({status:`requested`});try{let n=await fetch(e);if(!n.ok||!n.body){if(n.headers.get(`content-type`)?.includes(`application/json`)){let e=await n.json();y(!e.error,e.error)}throw Error(`${n.status} ${n.statusText}`)}try{let e=n.body.getReader(),t=new ReadableStream({start:t=>{function n(){return e.read().then(e=>{if(e.done)t.close();else return i+=e.value.length,r?.({bytesReceived:i,status:`downloading`}),t.enqueue(e.value),n()})}return n()}});n=new Response(t)}catch{}let a=await n.blob();r?.({bytesReceived:i,status:`downloaded`}),await ce(a,t),r?.({bytesReceived:i,status:`completed`})}catch(e){n?.aborted?r?.({status:`cancelled`}):r?.({error:e.message,status:`error`})}}let ue=/^function(?:\s+([a-zA-Z$_][a-zA-Z0-9$_]*))?\s*\(((?:(?:\s*[a-zA-Z$_][a-zA-Z0-9$_]*)(?:\s*,\s*[a-zA-Z$_][a-zA-Z0-9$_]*)*)?)\s*\)\s*\{((?:.|\n|\r)*)\}$/,de=/^(?:\(([^)]*)\)|([a-zA-Z$_][a-zA-Z0-9$_]*))\s*=>\s*\{([\s\S]*)\}$/,fe=/^(?:\(([^)]*)\)|([a-zA-Z$_][a-zA-Z0-9$_]*))\s*=>\s*([\s\S]+)$/,b=e=>e.split(`,`).map(e=>e.trim()).filter(Boolean);function pe(e){let t=e.toString(),n=t.match(de);if(n){let t=b(n[1]??n[2]??``);return{name:e.name,args:t,body:n[3]}}let r=t.match(fe);if(r){let t=b(r[1]??r[2]??``);return{name:e.name,args:t,body:r[3]}}let i=t.match(ue);return y(i,`Unable to parse function!`),{name:e.name??i[1],args:b(i[2]),body:i[3]}}function me(){}me.prototype=Object.create(null);function he(e,t){if(typeof e==`object`){if(typeof t==`string`)return he(e,t.split(`.`));if(Array.isArray(t)){let n=e;for(let e=0;e<t.length;e++)n=n[t[e]]=n[t[e]]||new me;return n}}}function ge(e,t,n={}){if(Array.isArray(t))for(let n of t){let{name:t}=pe(n);y(t,`Unable to detect name of function! Name it, or only supply one function and include name in first parameter.`),ge(e,n)}else{let r,i;if(typeof t==`function`&&(r=pe(t).name),typeof e==`string`){let t=e.split(`.`);r||(r=t[t.length-1],t=t.slice(0,t.length-1)),i=he(window,t)}else r&&(typeof e==`object`||typeof e==`function`)?i=e:y(!1,`Invalid typeof parameter 'name', or unable to parse pValue!`);Object.hasOwn(i,r)&&n?.overwrite!==!0?console.warn(`${[e,r].join(`.`)} is already defined!`):i[r]=t}}async function _e(e,t){try{let n=await fetch(`/api/user/localize/new/${encodeURIComponent(t)}`,{body:JSON.stringify({text:e}),headers:{Accept:`application/json; */*`,"Content-Type":`application/json`,"X-Requested-With":`XMLHttpRequest`},method:`POST`});if(n.ok)return await n.json()}catch{}return e}function ve(e){let t=window.af;if(!t)return;if(e){let n=t.i18n?.[e];if(n)return{dictionary:n,harvestAs:e}}let n=t.article;if(n?.i18n)return{dictionary:n.i18n,harvestAs:n.id}}function x(e,t){if(typeof e==`string`&&e.trim().length===0)return e;if(e===void 0||e===``||e===null)return;let{project:n,wait:r}=typeof t==`object`?t:{wait:t},i=ve(n);if(i===void 0)return e;let{dictionary:a,harvestAs:o}=i;if(!Object.hasOwn(a,e)){a[e]=e;let t=_e(e,o).then(t=>(a[e]=t,t));if(r)return t}return a[e]}function ye(e){function t(t,n){return x(t,{project:e,wait:n})}function n(e,...n){let r=t(e.map((t,n)=>n===e.length-1?t:`${t}$${n}`).join(``));return n.forEach((e,t)=>{r=r.replace(`$${t}`,String(e))}),r}return{project:e,getLocalizedString:t,localize:n}}let be=[`isnull`,`isnotnull`,`istrue`,`isfalse`,`isblank`,`isnotblank`],S=[`isbeyondthisyear`,`islaterthisyear`,`islaterthismonth`,`isnextweek`,`islaterthisweek`,`istomorrow`,`istoday`,`isyesterday`,`isearlierthisweek`,`islastweek`,`isearlierthismonth`,`isearlierthisyear`,`ispriorthisyear`],xe=[`between`,`notbetween`,`datebetween`,`datenotbetween`],Se=[`inlist`,`notinlist`];function C(e){return be.includes(e)||S.includes(e)?`none`:xe.includes(e)?`pair`:Se.includes(e)?`list`:`single`}let Ce={equals:`Equal to`,notequals:`Not equal to`,greaterthan:`Greater than`,greaterthanorequal:`Greater than or equal to`,lessthan:`Less than`,lessthanorequal:`Less than or equal to`,beginswith:`Begins with`,notbeginswith:`Does not begin with`,endswith:`Ends with`,notendswith:`Does not end with`,contains:`Contains`,notcontains:`Does not contain`,like:`Like`,notlike:`Not like`,isnull:`Is null`,isnotnull:`Is not null`,isblank:`Is empty`,isnotblank:`Is not empty`,istrue:`Is true`,isfalse:`Is false`,inlist:`In list`,notinlist:`Not in list`,between:`Between`,notbetween:`Not between`,dateequals:`Equal to`,notdatequals:`Not equal to`,dategreaterthan:`After`,dategreaterthanorequal:`On or after`,datelessthan:`Before`,datelessthanorequal:`Up to`,datebetween:`Between`,datenotbetween:`Not between`,isbeyondthisyear:`Is beyond this year`,islaterthisyear:`Is later this year`,islaterthismonth:`Is later this month`,isnextweek:`Is next week`,islaterthisweek:`Is later this week`,istomorrow:`Is tomorrow`,istoday:`Is today`,isyesterday:`Is yesterday`,isearlierthisweek:`Is earlier this week`,islastweek:`Is last week`,isearlierthismonth:`Is earlier this month`,isearlierthisyear:`Is earlier this year`,ispriorthisyear:`Is prior to this year`},we={greaterthan:`After`,greaterthanorequal:`On or after`,lessthan:`Before`,lessthanorequal:`Up to`};function Te(e,t){return x((t===`date`||t===`datetime`?we[e]:void 0)??Ce[e]??e)}let w=[`equals`,`notequals`],T=[`inlist`,`notinlist`],E=[`between`,`notbetween`],D=[`greaterthan`,`greaterthanorequal`,`lessthan`,`lessthanorequal`],Ee=[`contains`,`notcontains`,`beginswith`,`notbeginswith`,`endswith`,`notendswith`,`isblank`,`isnotblank`],De={date:[...w,...T,...E,...D,...S],datetime:[...w,...T,...E,...D,...S],number:[...w,...T,...E,...D],boolean:[`istrue`,`isfalse`],string:[...w,...Ee,...T,...E,...D],uniqueidentifier:[...w,...Ee,...T,...E,...D]},Oe={date:`equals`,datetime:`equals`,number:`equals`,boolean:`istrue`,string:`contains`,uniqueidentifier:`beginswith`};function ke(e){let t=[...De[e.type]??De.string];return e.nullable&&e.type!==`boolean`&&t.push(`isnull`,`isnotnull`),t}function Ae(e){return Oe[e.type]??`equals`}function O(e,t){if(C(t)===`none`)return`null`;switch(e.type){case`number`:return`number`;case`boolean`:return`boolean`;case`date`:case`datetime`:return`datetime`;case`uniqueidentifier`:return`uniqueidentifier`;default:return`string`}}let je=[`Yesterday`,`Today`,`Now`,`Tomorrow`,`DayAfterTomorrow`,`TwoWeeksAway`,`ThisWeek`,`ThisMonth`,`ThisYear`,`LastWeek`,`LastMonth`,`LastYear`,`NextWeek`,`NextMonth`,`NextYear`],Me={CurrentUser:`Current user`,Yesterday:`Yesterday`,Today:`Today`,Now:`Now`,Tomorrow:`Tomorrow`,DayAfterTomorrow:`Day after tomorrow`,TwoWeeksAway:`Two weeks away`,ThisWeek:`This week`,ThisMonth:`This month`,ThisYear:`This year`,LastWeek:`Last week`,LastMonth:`Last month`,LastYear:`Last year`,NextWeek:`Next week`,NextMonth:`Next month`,NextYear:`Next year`,UserYesterday:`Yesterday`,UserToday:`Today`,UserTomorrow:`Tomorrow`,UserThisWeek:`This week`,UserThisMonth:`This month`,UserThisYear:`This year`,UserLastWeek:`Last week`,UserLastMonth:`Last month`,UserLastYear:`Last year`,UserNextWeek:`Next week`,UserNextMonth:`Next month`,UserNextYear:`Next year`};function Ne(e){return x(Me[e]??e)}function Pe(e){return e.type===`date`||e.type===`datetime`?[...je]:e.type===`string`?[`CurrentUser`]:[]}let Fe=[...w,...E,...D];function Ie(e){return Fe.includes(e)}function Le(e){return e===`datetime`?`date`:e}function Re(e,t){if(e.type===`boolean`)return[];let n=Le(e.type);return t.filter(t=>t.name!==e.name&&!t.excludeFromFilter&&Le(t.type)===n)}let ze={not:`notequals`,tweens:`notbetween`,notdate:`notdatequals`,notdateequals:`notdatequals`};function k(e){let t=e.toLowerCase().replace(/[\s,]/g,``);return ze[t]??t}function A(){return Be(`and`)}function Be(e=`and`){return{type:`group`,mode:e,items:[]}}function j(e){return e.type===`group`}function M(e){return e.type===`expression`}function Ve(e){return e?M(e)?{type:`group`,mode:`and`,items:[e]}:e:A()}function He(e){if(e.mode!==`or`||e.items.length!==1)return e;let[t]=e.items;return j(t)&&t.mode===`and`?t:e}function Ue(e){return N(e)===0}function N(e){return e?M(e)?1:e.items.reduce((e,t)=>e+N(t),0):0}function We(e){if(!e)return null;if(M(e))return P(e)?{type:`group`,mode:`and`,items:[e]}:null;let t=e.items.map(e=>j(e)?We(e):P(e)?e:null).filter(e=>e!==null);return t.length===0?null:{...e,items:t}}function P(e){if(j(e))return e.items.some(P);if(!e.column||!e.operator)return!1;let t=C(k(e.operator));return t===`none`?!0:e.value===null||e.value===void 0||e.value===``?!1:t===`pair`?Array.isArray(e.value)&&e.value.length===2&&e.value.every(e=>{let t=F(e)?e.value:e;return t!==``&&t!=null}):t!==`list`||Array.isArray(e.value)&&e.value.length>0}function F(e){return typeof e==`object`&&!!e&&!(e instanceof Date)&&`valueType`in e}let Ge=/* @__PURE__ */ new Set([`Now`,`DayAfterTomorrow`,`TwoWeeksAway`]);function Ke(e,t){return e===`column`||e===`special`&&typeof t==`string`&&Ge.has(t)}function qe(e){return e?j(e)?e.items.some(qe):S.includes(k(e.operator))||Ke(e.valueType,e.value)?!0:Array.isArray(e.value)&&e.value.some(e=>F(e)):!1}function Je(e,t){let n=t??Ae(e);return{type:`expression`,column:e.name,operator:n,value:Ye(n),valueType:O(e,n)}}function Ye(e){switch(C(e)){case`none`:return null;case`pair`:return[``,``];case`list`:return[];default:return``}}function Xe(e,t,n){let r=C(k(e.operator)),i=C(t),a=e.value,o=e.valueType===`column`||Array.isArray(a)&&a.some(e=>F(e)&&e.valueType===`column`);(i!==r||o&&!Ie(t))&&(a=Ye(t));let s=(e.valueType===`special`||e.valueType===`column`)&&a===e.value?e.valueType:O(n,t);return{...e,operator:t,value:a,valueType:s}}function Ze(e,t){let n=e;for(let e of t){if(!n||!j(n))return null;n=n.items[e]}return n??null}function I(e,t,n){if(t.length===0)return n(e)??e;if(!j(e))return e;let[r,...i]=t,a=e.items[r];if(!a)return e;let o=[...e.items];if(i.length===0){let e=n(a);e===null?o.splice(r,1):o[r]=e}else o[r]=I(a,i,n);return{...e,items:o}}function Qe(e,t,n){return I(e,t,e=>j(e)?{...e,items:[...e.items,n]}:e)}function $e(e,t){return t.length===0?A():I(e,t,()=>null)}function et(e,t,n){return I(e,t,e=>j(e)?{...e,mode:n}:e)}function tt(e,t=[]){let n=Ze(e,t);return Qe(e,t,Be(n&&j(n)&&n.mode===`and`?`or`:`and`))}async function nt(e,t){let n=await fetch(`/api/filter/convert`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),signal:t});if(!n.ok)throw Error(`Failed to convert filter: ${n.status} ${n.statusText}`);let r=await n.json();return{...r,filterObject:r.filterObject?Ve(r.filterObject):null}}function rt(e,t={}){return e?it(e,new Map((t.fields??[]).map(e=>[e.name.toLowerCase(),e])),0):``}function it(e,t,n){if(M(e))return at(e,t);let r=e.items.map(e=>it(e,t,n+1)).filter(e=>e!==``);if(r.length===0)return``;if(r.length===1)return r[0];let i=e.mode===`or`?` OR `:` AND `,a=r.join(i);return n===0?a:`(${a})`}function at(e,t){if(!e.column||!e.operator)return``;let n=t.get(e.column.toLowerCase()),r=n?.caption??e.column,i=k(e.operator),a=Te(i,n?.type),o=C(i);return o===`none`?`[${r}] ${a}`:`[${r}] ${a} ${ot(e,o,t)}`}function ot(e,t,n){let{value:r,valueType:i}=e;if(Array.isArray(r)){let e=r.map(e=>F(e)?L(e.value,e.valueType,n):L(e,i,n));return t===`pair`?e.join(` - `):`(${e.join(`, `)})`}return L(r,i,n)}function L(e,t,n){return t===`special`&&typeof e==`string`?Ne(e):t===`column`&&typeof e==`string`?`[${n.get(e.toLowerCase())?.caption??e}]`:e==null?``:e instanceof Date?e.toISOString().slice(0,10):typeof e==`number`||typeof e==`boolean`||t===`number`||t===`boolean`?String(e):`'${String(e)}'`}let st=[`string`,`number`,`boolean`,`date`,`datetime`,`uniqueidentifier`];function ct(e){let t=e?.trim().toLowerCase();return st.find(e=>e===t)??`string`}function lt(e){return e===!0||e===1}function ut(e){return{name:e.FieldName??``,type:ct(e.DataType),nullable:lt(e.Nullable),excludeFromFilter:lt(e.ExcludeFromFilter),valueListRecordSource:e.ValueListRecordSource||void 0}}function dt(e){return e.map(ut).filter(e=>e.name!==``&&!e.excludeFromFilter).sort((e,t)=>e.name.localeCompare(t.name))}function ft(e){return!e||M(e)||e.mode!==`or`?!1:e.items.every(e=>j(e)&&e.mode===`and`&&e.items.every(M))}function pt(e){if(!e)return{type:`group`,mode:`or`,items:[{type:`group`,mode:`and`,items:[]}]};if(M(e))return{type:`group`,mode:`or`,items:[{type:`group`,mode:`and`,items:[e]}]};if(e.mode===`or`){let t=e.items.map(e=>{let t=[];return R(e,t),{type:`group`,mode:`and`,items:t}});return{type:`group`,mode:`or`,items:t.length>0?t:[{type:`group`,mode:`and`,items:[]}]}}let t=[];return R(e,t),{type:`group`,mode:`or`,items:[{type:`group`,mode:`and`,items:t}]}}function R(e,t){if(M(e))t.push(e);else for(let n of e.items)R(n,t)}function mt(e){return{filterId:e.FilterID??-1,primKey:e.PrimKey??``,name:e.FilterName??``,criteria:e.FilterCriteria??``,dbObjectId:e.DBObjectID??``,accessLevel:ht(e.AccessLevel),createdByUser:z(e.CreatedByUser),createdBy:e.CreatedBy??``,domain:e.Domain??null,crossDomain:z(e.CrossDomain),isPersonallyShared:z(e.IsPersonallyShared),hideCriteria:z(e.HideFilterCriteria),headerText:e.OptionalHeaderText||null,comment:e.OptionalComment||null,parameters:e.Parameters||null,reportTitle:e.ReportTitle||null,created:gt(e.Created),updated:gt(e.Updated)}}function ht(e){return e===`Manager`||e===`Editor`?e:`Reader`}function z(e){return typeof e==`string`?e.toLowerCase()===`true`:!!e}function gt(e){if(!e)return null;if(e instanceof Date)return e;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function _t(e){return e.filter(e=>(e.FilterID??-1)!==-1).map(mt).sort((e,t)=>e.name.localeCompare(t.name))}function vt(e){let t=[],n=[];for(let r of e)r.createdByUser?t.push(r):n.push(r);return{mine:t,shared:n}}function yt(e,t){if(t!=null)return e.find(e=>e.filterId===t)}function bt(e){return e.accessLevel===`Editor`||e.accessLevel===`Manager`}function xt(e){return e.accessLevel===`Manager`}function B(e){return e.createdByUser}let St=B,Ct=B,wt={xs:64,sm:128,md:256,lg:512,xl:void 0};function Tt(e,t,n,r=`xs`){if(e&&typeof e==`object`)return Tt(e.primKey,e.login,e.hash,e.size);if(!e||!n)return``;let i=wt[r];return`/api/data/blob/EmployeesLookup/${e}/Image/${encodeURIComponent(t??``)}${t?`.`:``}${encodeURIComponent(n)}.jpg${i?`?width=${i}`:``}`}function Et(e,...t){y(Array.isArray(e)&&e.length===t.length+1,`Method 'localize' must be used as a tag function`);let n=x(e.map((t,n)=>n===e.length-1?t:`${t}$${n}`).join(``));return t.forEach((e,t)=>{n=n.replace(`$${t}`,e)}),n}let Dt={amp:`&`,lt:`<`,gt:`>`,quot:`"`,apos:`'`};function V(e){return e.replace(/&(#x?[0-9a-f]+|[a-z]+);/gi,(e,t)=>t.startsWith(`#x`)||t.startsWith(`#X`)?String.fromCodePoint(Number.parseInt(t.slice(2),16)):t.startsWith(`#`)?String.fromCodePoint(Number.parseInt(t.slice(1),10)):Dt[t.toLowerCase()]??e)}function H(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`)}function U(e,t){let n=RegExp(`<${t}(?:\\s[^>]*)?>([\\s\\S]*?)</${t}>`).exec(e);if(!n)return null;let r=V(n[1]).trim();return r===``?null:r}function Ot(e,t){return[...e.matchAll(RegExp(`<${t}(?:\\s[^>]*)?>([\\s\\S]*?)</${t}>`,`g`))].map(e=>V(e[1]).trim())}let kt={Byte:`number`,Decimal:`number`,Double:`number`,Int16:`number`,Int32:`number`,Int64:`number`,Single:`number`,Boolean:`boolean`,DateTime:`date`};function At(e){let t=/<SelectColumns>([\s\S]*?)<\/SelectColumns>/.exec(e)?.[1]??``,n=[];for(let e of t.matchAll(/<afSelectColumn>([\s\S]*?)<\/afSelectColumn>/g)){let t=U(e[1],`Name`);t&&n.push({name:t,type:kt[U(e[1],`DataType`)??``]??`string`})}return n}function W(e){if(!e||!e.includes(`<afRecordSource`))return null;let t=U(e,`ViewName`);if(!t)return null;let n=U(e,`MaxRecords`);return{viewName:t,columns:At(e),whereClause:U(e,`WhereClause`),filterString:U(e,`FilterString`),maxRecords:n===null||n===`0`?null:Number(n)}}let jt=[`String`,`Integer`,`Double`,`Date`,`Boolean`],Mt=/^[a-z]stp_/i;function G(e){return typeof e==`string`&&Mt.test(e.trim())}function Nt(e){return e?e.split(/\r\n|\r|\n/).map(e=>e.trim()).filter(e=>e!==``):[]}function Pt(e){return jt.find(t=>t.toLowerCase()===e?.trim().toLowerCase())??`String`}function Ft(e,t,n){if(t)return`lookup`;if(n)return`select`;switch(e){case`Integer`:case`Double`:return`number`;case`Date`:return`date`;case`Boolean`:return`boolean`;default:return`text`}}function It(e){let t=e.Name??``,n=Pt(e.DataType),r=Nt(e.Items),i=W(e.RecordSource),a=e.ValueMember??null;i&&!a&&(a=i.columns[0]?.name??null);let o=i?.columns.find(e=>e.name!==a)?.name??null,s=!!(i&&a);return{name:t,label:e.Label?.trim()||t,description:e.Description?.trim()||null,type:n,editor:Ft(n,s,r.length>0),defaultValue:e.DefaultValue??null,items:r,recordSource:s?i:null,valueMember:s?a:null,displayMember:s?o:null,sortOrder:e.SortOrder??0,lookupWidth:e.LookupWidth??null,lookupHeight:e.LookupHeight??null}}function Lt(e){return e.filter(e=>e.Name).map(It).sort((e,t)=>e.sortOrder-t.sortOrder||e.label.localeCompare(t.label))}function K(e,t){if(t==null||t===``)return e.type!==`Boolean`&&null;switch(e.type){case`Boolean`:return typeof t==`boolean`?t:/^(true|1|ja|yes)$/i.test(String(t));case`Integer`:{let e=Number.parseInt(String(t),10);return Number.isNaN(e)?null:e}case`Double`:{let e=Number(String(t).replace(`,`,`.`));return Number.isNaN(e)?null:e}default:return String(t)}}function Rt(e){let t={};for(let n of e)t[n.name]=G(n.defaultValue)?K(n,null):K(n,n.defaultValue);return t}function zt(e,t){return t==null?``:typeof t==`boolean`?t?`True`:`False`:String(t)}function Bt(e,t){return`<Parameters Version="1">\n${e.map(e=>{let n=zt(e,t[e.name]??null);return` <Parameter Name="${H(e.name)}" Type="${e.type}">${H(n)}</Parameter>`}).join(`
2
+ `)}\n</Parameters>`}function Vt(e){if(!e)return{};let t={};for(let n of e.matchAll(/<Parameter\s+([^>]*?)\/?>(?:([\s\S]*?)<\/Parameter>)?/g)){let e=/Name\s*=\s*"([^"]*)"/.exec(n[1])?.[1];e&&(t[e]=U(n[0],`Parameter`)??``)}return t}function Ht(e,t){let n=Vt(t),r=Rt(e);for(let t of e)t.name in n&&(r[t.name]=K(t,n[t.name]));return r}async function Ut(e,t,n){if(!t.defaultValue||!G(t.defaultValue))return null;let r=await fetch(`/api/reporting/filters/${encodeURIComponent(e)}/GetParameterDefaultValue`,{body:JSON.stringify({parameterName:t.name}),credentials:`same-origin`,headers:{"Content-Type":`application/json`,"X-Requested-With":`XMLHttpRequest`},method:`POST`,signal:n});if(!r.ok)throw Error(`${r.status} ${r.statusText}`);return Gt(await r.json())}async function Wt(e,t,n,r){let i=t.filter(e=>G(e.defaultValue??``));if(i.length===0)return n;let a=await Promise.all(i.map(async t=>{try{return[t.name,await Ut(e,t,r)]}catch{return[t.name,null]}})),o={...n};for(let[e,t]of a)t!==null&&(o[e]=t);return o}function Gt(e){let t=(Array.isArray(e)?e:Object.values(e).find(e=>Array.isArray(e)))?.[0];return t==null?null:Array.isArray(t)?t[0]??null:typeof t==`object`?Object.values(t)[0]??null:t}let Kt={CSV:`csv`,HTML:`html`,IMAGE:`xbm`,MHT:`mht`,PDF:`pdf`,RTF:`rtf`,TEXT:`txt`,XLS:`xls`,XLSX:`xlsx`},qt={CSV:`text/csv`,HTML:`text/html`,IMAGE:`image/x-xbitmap`,MHT:`message/rfc822`,PDF:`application/pdf`,RTF:`text/enriched`,TEXT:`text/plain`,XLS:`application/vnd.ms-excel`,XLSX:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`};function Jt(e){return Kt[e]}function q(e){return qt[e]}let Yt=/[\\/:*?"<>|.#&+%\u0000-\u001f]/g;function J(e){let t=(e.fileName??e.reportId).trim().replace(Yt,`-`).replace(/-{2,}/g,`-`).replace(/^-|-$/g,``).trim();return`${t===``?e.reportId:t}.${Jt(e.format)}`}function Xt(e){let t=window.location?.href;return t?new URL(e,t).toString():e}function Y(e){let{domain:t,filter:n,headerText:r,hideFilterString:i,parameters:a,reportId:o,signal:s,timezone:c}=e,l=J(e),u=`/api/report/${encodeURIComponent(o)}/${encodeURIComponent(l)}`,d=new URLSearchParams,f=$t(a),p=f.length>0||!!r||i===!0;if(t&&d.set(`Domain`,t),d.set(`timezone`,String(c??-(/* @__PURE__ */ new Date()).getTimezoneOffset()/60)),!p)return n&&d.set(`Filter`,n),new Request(Xt(`${u}?${d}`),{credentials:`same-origin`,signal:s});let m={filter:n??``,parameters:f};return r&&(m.optionalheader=r),i===!0&&(m.showfiltercriteria=`true`),new Request(Xt(`${u}?${d}`),{body:JSON.stringify(m),credentials:`same-origin`,headers:{"Content-Type":`application/json`,"X-Requested-With":`XMLHttpRequest`},method:`POST`,signal:s})}async function X(e){let t=await fetch(Y(e));if((t.headers.get(`content-type`)??``).includes(`application/json`)){let e=await t.json();throw Error(e.error??`Failed to render report`)}if(!t.ok)throw Error(`${t.status} ${t.statusText}`);return t.blob()}function Zt(e){return le(Y(e),{fileName:J(e),onProgress:e.onProgress,signal:e.signal})}async function Z(e){let t=await X(e),n=URL.createObjectURL(t.type?t:new Blob([t],{type:q(e.format)})),r=window.open(n,`_blank`);if(!r)throw URL.revokeObjectURL(n),Error(`The report could not be opened. Allow pop-ups for this site and try again.`);r.opener=null,window.setTimeout(()=>URL.revokeObjectURL(n),6e4)}async function Qt(e){let t=window.document;if(!t?.body)return Z(e);let n=await X(e),r=URL.createObjectURL(n.type?n:new Blob([n],{type:q(e.format)})),i=t.createElement(`iframe`);i.setAttribute(`aria-hidden`,`true`),i.style.cssText=`position:fixed;inset-block-start:0;inset-inline-start:0;inline-size:1px;block-size:1px;border:0;visibility:hidden`;let a=()=>{i.remove(),URL.revokeObjectURL(r)};try{await new Promise((e,n)=>{i.addEventListener(`load`,()=>e(),{once:!0}),i.addEventListener(`error`,()=>n(/* @__PURE__ */ Error(`The report could not be loaded for printing`)),{once:!0}),i.src=r,t.body.append(i)}),i.contentWindow?.focus(),i.contentWindow?.print()}catch{return a(),Z(e)}window.setTimeout(a,6e4)}function $t(e){return e?Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,t])=>({name:e,value:typeof t==`boolean`?String(t):t})):[]}function Q(e){return e===!0||e===1}function en(e){let t=[];return Q(e.FormatPDF)&&t.push(`PDF`),Q(e.FormatCSV)&&t.push(`XLSX`,`XLS`,`CSV`),Q(e.FormatHTML)&&t.push(`HTML`),Q(e.FormatRTF)&&t.push(`RTF`),Q(e.FormatMHT)&&t.push(`MHT`),Q(e.FormatTEXT)&&t.push(`TEXT`),Q(e.FormatIMAGE)&&t.push(`IMAGE`),t}function tn(e){let t=W(e.RecordSource);return{reportId:e.ReportID??``,shortId:e.ShortID??null,title:e.Title?.trim()||null,description:e.Description?.trim()||null,viewName:t?.viewName??null,initialFilter:t?.filterString??null,hasTitle:Q(e.HasTitle),hasHeader:Q(e.HasHeader),formats:en(e),timeout:e.Timeout??null}}function nn(){if(document.querySelector(`#AlertDialogTemplate`))return;let e=document.createElement(`template`);e.id=`AlertDialogTemplate`,e.innerHTML=`
3
3
  <dialog class="alert-dialog">
4
4
  <form method="dialog">
5
5
  <article></article>
@@ -8,5 +8,5 @@ this.af=this.af||{},this.af.common=(function(e){Object.defineProperty(e,Symbol.t
8
8
  </footer>
9
9
  </form>
10
10
  </dialog>
11
- `,document.body.append(e)}window.document&&(document.body?Z():document.addEventListener(`DOMContentLoaded`,Z,{once:!0}));function Yt(e,t=`No`){return new Promise(n=>{let r=new AbortController;e.addEventListener(`close`,()=>{n(e.returnValue),r.abort()},{signal:r.signal}),e.addEventListener(`cancel`,()=>{n(t),r.abort()},{signal:r.signal})})}let Q=/* @__PURE__ */ new Map;async function $({buttons:e,content:t,className:n,id:r,title:i}){if(r&&Q.has(r))return await Q.get(r);let a=document.querySelector(`#AlertDialogTemplate`);if(!a)throw Error(`No alert dialog template found`);let o=a.content.firstElementChild?.cloneNode(!0),s=o?.querySelector(`article`),c=o?.querySelector(`footer menu`);if(!o||!s||!c)throw Error(`Invalid alert dialog template`);if(n)for(let e of n.split(/\s+/))o?.classList.add(e);if(i){let e=document.createElement(`header`);e.append(i),s.parentNode?.insertBefore(e,s)}s.appendChild(typeof t==`string`?document.createTextNode(t):t);for(let{label:t,value:n,primary:r}of e){let e=document.createElement(`li`),i=document.createElement(`button`);i.value=n,r&&i.classList.add(`primary`),i.textContent=t,e.appendChild(i),c.appendChild(i)}document.body.appendChild(o),o.showModal();let l=Yt(o).then(e=>(r&&Q.has(r)&&Q.delete(r),o&&document.body.removeChild(o),e));return r&&Q.set(r,l),await l}let Xt=/* @__PURE__ */ function(e){return e[e.YesNo=0]=`YesNo`,e[e.OkCancel=1]=`OkCancel`,e}({});async function Zt(e,t={}){let{buttons:n=0,title:r}=t;return await $({content:e,buttons:n===1?[{label:x(`OK`),value:`yes`,primary:!0},{label:x(`Cancel`),value:`no`}]:[{label:x(`Yes`),value:`yes`,primary:!0},{label:x(`No`),value:`no`}],className:`alert-dialog-confirm`,title:r})===`yes`}async function Qt(e,t={}){await $({content:e,className:`alert-dialog-alert`,buttons:[{label:x(`OK`),value:`ok`,primary:!0}],...t})}function $t(e){return`${e??window.af?.article?.id??window.window?.location.pathname.substring(1).split(`/`)[0]}.${window.af?.userSession.login??`anonymous`}`}function en(e,t){if(!window.af?.userSession)return null;let n=$t(t),r=JSON.parse(localStorage.getItem(n)||`{}`);return e?r[e]||null:r}function tn(e,t,n){if(!window.af?.userSession)return;let r=$t(n),i=JSON.parse(localStorage.getItem(r)||`{}`);t===void 0?i=e:i[e]=t,localStorage.setItem(r,JSON.stringify(i))}return e.ConfirmButtons=Xt,e.NO_FILTER_ID=-1,e.RELATIVE_DATE_VALUES=je,e.SessionHandler=o,e.UserSession=s,e.addGroupAtPath=qe,e.alert=Qt,e.canDeleteSavedFilter=ht,e.canEditSavedFilter=pt,e.canRenameSavedFilter=R,e.canSetCrossDomain=gt,e.canShareSavedFilter=mt,e.changeOperator=He,e.coerceParameterValue=W,e.coerceToStandardLayout=ot,e.confirm=Zt,e.convertFilter=Je,e.countExpressions=N,e.createEmptyFilter=k,e.createEmptyGroup=A,e.createExpression=Be,e.createLocalizer=ye,e.decodeXml=z,e.describeFilter=Ye,e.downloadBlob=ce,e.downloadReport=Wt,e.downloadRequest=le,e.encodeXml=B,e.expose=ge,e.fetchParameterDefault=It,e.findSavedFilter=ft,e.getDefaultOperator=Ae,e.getDefaultParameterValues=jt,e.getDynamicValueLabel=Ne,e.getDynamicValuesForField=Pe,e.getLocalizedString=x,e.getNodeAtPath=Ue,e.getOperatorArity=S,e.getOperatorLabel=Te,e.getOperatorsForField=ke,e.getReportExtension=Vt,e.getReportFileName=K,e.getReportFormats=qt,e.getReportMediaType=G,e.getReportRequest=q,e.getSessionData=_,e.getSettings=en,e.getUserImage=vt,e.getValueType=D,e.insertNodeAtPath=We,e.invariant=y,e.isCompleteExpression=P,e.isEmptyFilter=Re,e.isExpression=M,e.isGroup=j,e.isProcedureDefault=U,e.isStandardLayout=at,e.localStorage=ie,e.localize=yt,e.logActivity=l,e.logError=f,e.mitt=t,e.normalizeOperator=O,e.openAlertDialog=$,e.openReport=Y,e.parseParameterItems=Et,e.parseParameters=Pt,e.parseRecordSource=H,e.partitionSavedFilters=dt,e.printReport=Gt,e.pruneFilter=ze,e.readElement=V,e.readElements=xt,e.removeNodeAtPath=Ge,e.renderReport=J,e.resolveParameterDefaults=Lt,e.restoreParameterValues=Ft,e.saveSettings=tn,e.serializeParameters=Nt,e.setGroupMode=Ke,e.startActivity=u,e.time=d,e.toFieldMetadata=rt,e.toFieldMetadataList=it,e.toFilterFieldType=tt,e.toFilterTree=Ie,e.toLocalDateTime=se,e.toLocalISODate=ae,e.toLocalISODateTime=oe,e.toReport=Jt,e.toReportParameter=kt,e.toReportParameters=At,e.toSavedFilter=st,e.toSavedFilters=ut,e.unwrapSingleAndGroup=Le,e.updateNodeAtPath=F,e.version=`2.15.2`,e.waitForDialog=Yt,e})({});
11
+ `,document.body.append(e)}window.document&&(document.body?nn():document.addEventListener(`DOMContentLoaded`,nn,{once:!0}));function rn(e,t=`No`){return new Promise(n=>{let r=new AbortController;e.addEventListener(`close`,()=>{n(e.returnValue),r.abort()},{signal:r.signal}),e.addEventListener(`cancel`,()=>{n(t),r.abort()},{signal:r.signal})})}let $=/* @__PURE__ */ new Map;async function an({buttons:e,content:t,className:n,id:r,title:i}){if(r&&$.has(r))return await $.get(r);let a=document.querySelector(`#AlertDialogTemplate`);if(!a)throw Error(`No alert dialog template found`);let o=a.content.firstElementChild?.cloneNode(!0),s=o?.querySelector(`article`),c=o?.querySelector(`footer menu`);if(!o||!s||!c)throw Error(`Invalid alert dialog template`);if(n)for(let e of n.split(/\s+/))o?.classList.add(e);if(i){let e=document.createElement(`header`);e.append(i),s.parentNode?.insertBefore(e,s)}s.appendChild(typeof t==`string`?document.createTextNode(t):t);for(let{label:t,value:n,primary:r}of e){let e=document.createElement(`li`),i=document.createElement(`button`);i.value=n,r&&i.classList.add(`primary`),i.textContent=t,e.appendChild(i),c.appendChild(i)}document.body.appendChild(o),o.showModal();let l=rn(o).then(e=>(r&&$.has(r)&&$.delete(r),o&&document.body.removeChild(o),e));return r&&$.set(r,l),await l}let on=/* @__PURE__ */ function(e){return e[e.YesNo=0]=`YesNo`,e[e.OkCancel=1]=`OkCancel`,e}({});async function sn(e,t={}){let{buttons:n=0,title:r}=t;return await an({content:e,buttons:n===1?[{label:x(`OK`),value:`yes`,primary:!0},{label:x(`Cancel`),value:`no`}]:[{label:x(`Yes`),value:`yes`,primary:!0},{label:x(`No`),value:`no`}],className:`alert-dialog-confirm`,title:r})===`yes`}async function cn(e,t={}){await an({content:e,className:`alert-dialog-alert`,buttons:[{label:x(`OK`),value:`ok`,primary:!0}],...t})}function ln(e){return`${e??window.af?.article?.id??window.window?.location.pathname.substring(1).split(`/`)[0]}.${window.af?.userSession.login??`anonymous`}`}function un(e,t){if(!window.af?.userSession)return null;let n=ln(t),r=JSON.parse(localStorage.getItem(n)||`{}`);return e?r[e]||null:r}function dn(e,t,n){if(!window.af?.userSession)return;let r=ln(n),i=JSON.parse(localStorage.getItem(r)||`{}`);t===void 0?i=e:i[e]=t,localStorage.setItem(r,JSON.stringify(i))}return e.ConfirmButtons=on,e.NO_FILTER_ID=-1,e.PERIOD_OPERATORS=S,e.RELATIVE_DATE_VALUES=je,e.SessionHandler=o,e.UserSession=s,e.addGroupAtPath=tt,e.alert=cn,e.canDeleteSavedFilter=St,e.canEditSavedFilter=bt,e.canRenameSavedFilter=B,e.canSetCrossDomain=Ct,e.canShareSavedFilter=xt,e.changeOperator=Xe,e.coerceParameterValue=K,e.coerceToStandardLayout=pt,e.confirm=sn,e.convertFilter=nt,e.countExpressions=N,e.createEmptyFilter=A,e.createEmptyGroup=Be,e.createExpression=Je,e.createLocalizer=ye,e.decodeXml=V,e.describeFilter=rt,e.downloadBlob=ce,e.downloadReport=Zt,e.downloadRequest=le,e.encodeXml=H,e.expose=ge,e.fetchParameterDefault=Ut,e.findSavedFilter=yt,e.getColumnsForField=Re,e.getDefaultOperator=Ae,e.getDefaultParameterValues=Rt,e.getDynamicValueLabel=Ne,e.getDynamicValuesForField=Pe,e.getLocalizedString=x,e.getNodeAtPath=Ze,e.getOperatorArity=C,e.getOperatorLabel=Te,e.getOperatorsForField=ke,e.getReportExtension=Jt,e.getReportFileName=J,e.getReportFormats=en,e.getReportMediaType=q,e.getReportRequest=Y,e.getSessionData=_,e.getSettings=un,e.getUserImage=Tt,e.getValueType=O,e.insertNodeAtPath=Qe,e.invariant=y,e.isCompleteExpression=P,e.isEmptyFilter=Ue,e.isExpression=M,e.isGroup=j,e.isProcedureDefault=G,e.isRangeEnd=F,e.isStandardLayout=ft,e.localStorage=ie,e.localize=Et,e.logActivity=l,e.logError=f,e.mitt=t,e.needsFilterString=qe,e.normalizeOperator=k,e.openAlertDialog=an,e.openReport=Z,e.parseParameterItems=Nt,e.parseParameters=Vt,e.parseRecordSource=W,e.partitionSavedFilters=vt,e.printReport=Qt,e.pruneFilter=We,e.readElement=U,e.readElements=Ot,e.removeNodeAtPath=$e,e.renderReport=X,e.resolveParameterDefaults=Wt,e.restoreParameterValues=Ht,e.saveSettings=dn,e.serializeParameters=Bt,e.setGroupMode=et,e.startActivity=u,e.supportsColumnValue=Ie,e.time=d,e.toFieldMetadata=ut,e.toFieldMetadataList=dt,e.toFilterFieldType=ct,e.toFilterTree=Ve,e.toLocalDateTime=se,e.toLocalISODate=ae,e.toLocalISODateTime=oe,e.toReport=tn,e.toReportParameter=It,e.toReportParameters=Lt,e.toSavedFilter=mt,e.toSavedFilters=_t,e.unwrapSingleAndGroup=He,e.updateNodeAtPath=I,e.version=`2.15.2`,e.waitForDialog=rn,e})({});
12
12
  //# sourceMappingURL=af.common.min.js.map