From 8e5160af2db85b2e7c674cfe9801f5e16dd15182 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Wed, 12 Aug 2026 14:07:57 +0200 Subject: [PATCH 1/4] refactor(balances): drop the unused availableFor() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The method's own docblock said it was "used by the create flow to warn about (not block) negative balances". Nothing called it. That warning is a client-side one — §5.1 puts it in the request dialog, and RequestDialog.vue computes it from the balance the store already holds — so the method was not an unfinished feature but a pointer at the wrong layer, complete with a local that was assigned and never read. Co-Authored-By: Claude Opus 5 (1M context) --- lib/Service/BalanceService.php | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/lib/Service/BalanceService.php b/lib/Service/BalanceService.php index 39f3d93..2502a3a 100644 --- a/lib/Service/BalanceService.php +++ b/lib/Service/BalanceService.php @@ -252,20 +252,6 @@ private function buildRow(string $employeeUid, int $year, LeaveType $type, float ]; } - /** - * The available balance for a single counting type in a year — used by the - * create flow to warn about (not block) negative balances. - */ - public function availableFor(string $employeeUid, int $typeId, int $year): ?float { - $type = null; - foreach ($this->getBalance($employeeUid, $year)['balances'] as $row) { - if ($row['typeId'] === $typeId) { - return $row['available']; - } - } - return null; - } - /** * Ensure an entitlement row exists for (employee, year, type); creates one from * the configured default when missing. Returns the row. From 8f26e2b68ba1caa06bee0c9795e755ec5354ee09 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Wed, 12 Aug 2026 14:07:57 +0200 Subject: [PATCH 2/4] fix(hr): let HR choose which leave type the sick-leave overview counts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ReportController::sickLeave() has always accepted a typeId, and ReportService documents that "HR can pass an explicit type instead" of the seeded `sick` key — but no caller ever sent one, so on an instance with no type keyed `sick` the page could only show a table of zeroes and say the type was missing. api.js now forwards typeId and the view offers a type picker, cleared by default so the server keeps resolving `sick` on its own. The three labels that named sickness outright now follow whatever the report says it aggregated, so picking Unpaid leave no longer leaves the page reading "days of sick leave". In the default case they resolve to the same wording as before. The options come from the full leave-type list rather than the enabled subset, for the same reason HrAbsences does it: a disabled type can still have history worth reporting on. Co-Authored-By: Claude Opus 5 (1M context) --- SPECIFICATION.md | 6 ++++ src/api.js | 4 ++- src/views/hr/HrSickLeave.vue | 62 ++++++++++++++++++++++++++++++++---- 3 files changed, 65 insertions(+), 7 deletions(-) diff --git a/SPECIFICATION.md b/SPECIFICATION.md index 3df1cfe..2d685a1 100644 --- a/SPECIFICATION.md +++ b/SPECIFICATION.md @@ -750,6 +750,12 @@ the SPA). All list endpoints paginate and accept filters. **HR reporting** - `GET /api/reports/balances` — balances report (filters). - `GET /api/reports/trends` — aggregated stats for charts. +- `GET /api/reports/sick-leave` — sick-leave overview, every employee ranked by days + lost. Counts the leave type keyed `sick` by default; `typeId` counts another type + instead, which the *Sick leave* view exposes as a type picker. The response carries + the types it aggregated, so the page can name what it is counting rather than + implying "sickness" is a fixed concept — and can say so plainly when an instance has + no matching type instead of showing a table of zeroes. - `GET /api/export/requests.csv|.xlsx`, `GET /api/export/balances.csv|.xlsx`. All write endpoints require CSRF protection (default AppFramework) and validate role diff --git a/src/api.js b/src/api.js index 3f85c6e..add967d 100644 --- a/src/api.js +++ b/src/api.js @@ -50,7 +50,9 @@ export default { // Reports & export reportBalances: (year, group) => axios.get(url('/api/reports/balances'), { params: { year, group } }).then((r) => r.data), reportTrends: (from, to) => axios.get(url('/api/reports/trends'), { params: { from, to } }).then((r) => r.data), - reportSickLeave: (year, group) => axios.get(url('/api/reports/sick-leave'), { params: { year, group } }).then((r) => r.data), + // `typeId` overrides which leave type is counted; omitted, the server falls + // back to the type keyed "sick". + reportSickLeave: (year, group, typeId) => axios.get(url('/api/reports/sick-leave'), { params: { year, group, typeId } }).then((r) => r.data), exportRequestsUrl: (from, to) => url(`/api/export/requests?from=${from}&to=${to}`), exportBalancesUrl: (year) => url(`/api/export/balances?year=${year}`), } diff --git a/src/views/hr/HrSickLeave.vue b/src/views/hr/HrSickLeave.vue index 66f568f..9f64de7 100755 --- a/src/views/hr/HrSickLeave.vue +++ b/src/views/hr/HrSickLeave.vue @@ -18,8 +18,21 @@ - {{ t('absence', 'Only employees with sick leave') }} + {{ t('absence', 'Only employees with {type}', { type: countedLabel }) }} + + + + + :description="t('absence', 'This overview counts the leave type with the key “sick” unless you pick another one above. Add or enable it in the admin settings to see figures here.')"> @@ -44,7 +57,7 @@ + : t('absence', 'Nobody has recorded {type} in {year}.', { type: countedLabel, year })"> @@ -170,6 +183,7 @@ import MeterBar from '../../components/MeterBar.vue' import SkeletonList from '../../components/SkeletonList.vue' import StatTile from '../../components/StatTile.vue' import api from '../../api.js' +import { store } from '../../store.js' export default { name: 'HrSickLeave', @@ -184,12 +198,34 @@ export default { totals: { employees: 0, affected: 0, days: 0, episodes: 0 }, search: '', onlyAffected: true, + // null means "let the server pick" — it counts the type keyed "sick". + type: null, year: y, years: [y - 2, y - 1, y, y + 1], } }, computed: { + typeOptions() { + // A disabled type can still have history worth reporting on, so offer the + // full list rather than the enabled subset — same reasoning as HrAbsences. + return store.leaveTypes + }, + + /** + * What the page is actually counting, in the report's own words. Taken from + * the server's answer rather than from the picker so the labels stay true in + * the default case too — where nothing is picked and the server resolved the + * "sick" key on its own. Lowercased because every use sits mid-sentence + * ("days of sick leave"). + */ + countedLabel() { + if (!this.types.length) { + return t('absence', 'sick leave') + } + return this.types.map((type) => type.label).join(' / ').toLowerCase() + }, + filtered() { const q = this.search.trim().toLowerCase() return this.rows.filter((row) => { @@ -227,6 +263,10 @@ export default { year() { this.reload() }, + + type() { + this.reload() + }, }, mounted() { @@ -273,7 +313,7 @@ export default { async reload() { this.loading = true try { - const report = await api.reportSickLeave(this.year) + const report = await api.reportSickLeave(this.year, null, this.type?.id ?? null) this.rows = report.rows ?? [] this.types = report.types ?? [] this.totals = report.totals ?? { employees: 0, affected: 0, days: 0, episodes: 0 } @@ -303,6 +343,16 @@ export default { font-weight: bold; } +.opt { + display: inline-flex; + align-items: center; + gap: 8px; + + &__icon { + font-size: 1.1em; + } +} + .emp { display: inline-flex; align-items: center; From 0e760ebb7440f48fa8db3fc1ec65d8ef47f56061 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Wed, 12 Aug 2026 14:07:57 +0200 Subject: [PATCH 3/4] fix(jobs): compare the escalation and reminder cut-offs in UTC MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit created_at holds UTC — ClockService::now() is deliberately UTC, because a timestamp records an instant rather than a day. The escalation and reminder jobs, equally deliberately, work their cut-offs out on the server's calendar: which day a request falls on is a company question. Formatting such a cut-off straight into the query wrote its local wall-clock and silently shifted every bound by the server's UTC offset. Escalation only slipped by hours, but the reminder band is exactly one working day wide, so off Berlin's or Auckland's offset it reminded a cohort a day early or skipped it altogether. Converted in the mapper, which is the layer that knows what the column holds, so both queries are covered at once. Rebuilt from the timestamp rather than via setTimezone() so a caller's mutable DateTime is never altered underneath it. Co-Authored-By: Claude Opus 5 (1M context) --- lib/Db/LeaveRequestMapper.php | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/lib/Db/LeaveRequestMapper.php b/lib/Db/LeaveRequestMapper.php index 546a204..18391f3 100644 --- a/lib/Db/LeaveRequestMapper.php +++ b/lib/Db/LeaveRequestMapper.php @@ -105,6 +105,26 @@ public function findEscalated(): array { return $this->findEntities($qb); } + /** + * Render an instant the way `created_at` is stored. + * + * The timestamp columns hold UTC ({@see \OCA\Absence\Service\ClockService::now()}), + * but the callers of the two queries below work out their cut-offs on the + * *server's* calendar — which day boundary a request falls on is a company + * question, not a UTC one. Formatting such a cut-off directly would write its + * local wall-clock into the query and silently shift every bound by the + * server's UTC offset: the reminder window is exactly one working day wide, so + * off Berlin's or Auckland's offset it reminds a day early or skips a cohort + * entirely. Converting here keeps the working-day arithmetic on the server's + * calendar while the comparison happens in the column's own zone. + * + * Rebuilt from the timestamp rather than via setTimezone() so a caller's + * mutable \DateTime is never altered as a side effect. + */ + private function asStoredTimestamp(\DateTimeInterface $moment): string { + return (new \DateTimeImmutable('@' . $moment->getTimestamp()))->format('Y-m-d H:i:s'); + } + /** * Pending requests created before the given cut-off (for escalation/reminders). * @@ -117,7 +137,7 @@ public function findPendingOlderThan(\DateTimeInterface $cutoff): array { ->where($qb->expr()->eq('status', $qb->createNamedParameter(LeaveRequest::STATUS_PENDING))) ->andWhere($qb->expr()->isNotNull('manager_uid')) ->andWhere($qb->expr()->lt('created_at', $qb->createNamedParameter( - $cutoff->format('Y-m-d H:i:s'), IQueryBuilder::PARAM_STR))); + $this->asStoredTimestamp($cutoff), IQueryBuilder::PARAM_STR))); return $this->findEntities($qb); } @@ -170,8 +190,8 @@ public function findPendingCreatedBetween(\DateTimeInterface $after, \DateTimeIn ->from($this->getTableName()) ->where($qb->expr()->eq('status', $qb->createNamedParameter(LeaveRequest::STATUS_PENDING))) ->andWhere($qb->expr()->isNotNull('manager_uid')) - ->andWhere($qb->expr()->lt('created_at', $qb->createNamedParameter($before->format('Y-m-d H:i:s'), IQueryBuilder::PARAM_STR))) - ->andWhere($qb->expr()->gte('created_at', $qb->createNamedParameter($after->format('Y-m-d H:i:s'), IQueryBuilder::PARAM_STR))); + ->andWhere($qb->expr()->lt('created_at', $qb->createNamedParameter($this->asStoredTimestamp($before), IQueryBuilder::PARAM_STR))) + ->andWhere($qb->expr()->gte('created_at', $qb->createNamedParameter($this->asStoredTimestamp($after), IQueryBuilder::PARAM_STR))); return $this->findEntities($qb); } From 2849b2cfd9decc04ff3487819f34da9724ff999e Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Wed, 12 Aug 2026 14:07:57 +0200 Subject: [PATCH 4/4] chore(assets): recompile Co-Authored-By: Claude Opus 5 (1M context) --- ...ckboxRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs} | 4 ++-- ...ioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs.license} | 0 ...xRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs.map} | 2 +- js/absence-main.mjs | 16 ++++++++-------- js/absence-main.mjs.map | 2 +- js/absence-personal-settings.mjs | 2 +- ...1WbbeK.chunk.mjs => index-CAVYKD4e.chunk.mjs} | 4 ++-- ....license => index-CAVYKD4e.chunk.mjs.license} | 0 ...hunk.mjs.map => index-CAVYKD4e.chunk.mjs.map} | 2 +- 9 files changed, 16 insertions(+), 16 deletions(-) rename js/{NcCheckboxRadioSwitch-DVdt5Hkq-DEWNkSin.chunk.mjs => NcCheckboxRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs} (99%) rename js/{NcCheckboxRadioSwitch-DVdt5Hkq-DEWNkSin.chunk.mjs.license => NcCheckboxRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs.license} (100%) rename js/{NcCheckboxRadioSwitch-DVdt5Hkq-DEWNkSin.chunk.mjs.map => NcCheckboxRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs.map} (99%) rename js/{index-BN1WbbeK.chunk.mjs => index-CAVYKD4e.chunk.mjs} (99%) rename js/{index-BN1WbbeK.chunk.mjs.license => index-CAVYKD4e.chunk.mjs.license} (100%) rename js/{index-BN1WbbeK.chunk.mjs.map => index-CAVYKD4e.chunk.mjs.map} (99%) diff --git a/js/NcCheckboxRadioSwitch-DVdt5Hkq-DEWNkSin.chunk.mjs b/js/NcCheckboxRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs similarity index 99% rename from js/NcCheckboxRadioSwitch-DVdt5Hkq-DEWNkSin.chunk.mjs rename to js/NcCheckboxRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs index 083b766..a1943dc 100644 --- a/js/NcCheckboxRadioSwitch-DVdt5Hkq-DEWNkSin.chunk.mjs +++ b/js/NcCheckboxRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs @@ -19,7 +19,7 @@ https://vue-select.org/api/props.html#getoptionlabel`):e}},getOptionKey:{type:Fu `);return i===-1?"":s.stack.slice(i+1)})();try{if(!u.stack)u.stack=n;else if(n){const i=n.indexOf(` `),o=i===-1?-1:n.indexOf(` `,i+1),a=o===-1?"":n.slice(o+1);String(u.stack).endsWith(a)||(u.stack+=` -`+n)}}catch{}}throw u}}_request(e,t){typeof e=="string"?(t=t||{},t.url=e):t=e||{},t=Is(this.defaults,t);const{transitional:u,paramsSerializer:s,headers:n}=t;u!==void 0&&Xi.assertOptions(u,{silentJSONParsing:xt.transitional(xt.boolean),forcedJSONParsing:xt.transitional(xt.boolean),clarifyTimeoutError:xt.transitional(xt.boolean),legacyInterceptorReqResOrdering:xt.transitional(xt.boolean),advertiseZstdAcceptEncoding:xt.transitional(xt.boolean),validateStatusUndefinedResolves:xt.transitional(xt.boolean)},!1),s!=null&&(D.isFunction(s)?t.paramsSerializer={serialize:s}:Xi.assertOptions(s,{encode:xt.function,serialize:xt.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),Xi.assertOptions(t,{baseUrl:xt.spelling("baseURL"),withXsrfToken:xt.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=n&&D.merge(n.common,n[t.method]);n&&D.forEach(["delete","get","head","post","put","patch","query","common"],h=>{delete n[h]}),t.headers=Ft.concat(i,n);const o=[];let a=!0;this.interceptors.request.forEach(function(h){if(typeof h.runWhen=="function"&&h.runWhen(t)===!1)return;a=a&&h.synchronous;const y=t.transitional||Er;y&&y.legacyInterceptorReqResOrdering?o.unshift(h.fulfilled,h.rejected):o.push(h.fulfilled,h.rejected)});const r=[];this.interceptors.response.forEach(function(h){r.push(h.fulfilled,h.rejected)});let m,l=0,g;if(!a){const h=[Q4.bind(this),void 0];for(h.unshift(...o),h.push(...r),g=h.length,m=Promise.resolve(t);l{if(!s._listeners)return;let i=s._listeners.length;for(;i-- >0;)s._listeners[i](n);s._listeners=null}),this.promise.then=n=>{let i;const o=new Promise(a=>{s.subscribe(a),i=a}).then(n);return o.cancel=function(){s.unsubscribe(i)},o},t(function(n,i,o){s.reason||(s.reason=new Bi(n,i,o),u(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const u=this._listeners.indexOf(t);u!==-1&&this._listeners.splice(u,1)}toAbortSignal(){const t=new AbortController,u=s=>{t.abort(s)};return this.subscribe(u),t.signal.unsubscribe=()=>this.unsubscribe(u),t.signal}static source(){let t;return{token:new hc(function(u){t=u}),cancel:t}}};function yB(e){return function(t){return e.apply(null,t)}}function xB(e){return D.isObject(e)&&e.isAxiosError===!0}const Ra={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Ra).forEach(([e,t])=>{Ra[t]=e});function vc(e){const t=new Ts(e),u=K3(Ts.prototype.request,t);return D.extend(u,Ts.prototype,t,{allOwnKeys:!0}),D.extend(u,t,null,{allOwnKeys:!0}),u.create=function(s){return vc(Is(e,s))},u}const Qe=vc(Ci);Qe.Axios=Ts,Qe.CanceledError=Bi,Qe.CancelToken=BB,Qe.isCancel=dc,Qe.VERSION=Br,Qe.toFormData=oo,Qe.AxiosError=te,Qe.Cancel=Qe.CanceledError,Qe.all=function(e){return Promise.all(e)},Qe.spread=yB,Qe.isAxiosError=xB,Qe.mergeConfig=Is,Qe.AxiosHeaders=Ft,Qe.formToJSON=e=>lc(D.isHTMLForm(e)?new FormData(e):e),Qe.getAdapter=pc.getAdapter,Qe.HttpStatusCode=Ra,Qe.default=Qe;const{Axios:b2,AxiosError:w2,CanceledError:D2,isCancel:F2,CancelToken:k2,VERSION:S2,all:N2,Cancel:_2,isAxiosError:xr,spread:O2,toFormData:T2,AxiosHeaders:z2,HttpStatusCode:P2,formToJSON:R2,getAdapter:L2,mergeConfig:j2,create:I2}=Qe;function AB(){const e=Qe.create({headers:{requesttoken:wv()??"","X-Requested-With":"XMLHttpRequest"}});return Fv(t=>{e.defaults.headers.requesttoken=t}),Object.assign(e,{CancelToken:Qe.CancelToken,isCancel:Qe.isCancel})}const td="_nextcloudCsrfTokenReloaded";function bB(e){return async t=>{if(!xr(t))throw t;const{config:u,response:s,request:n}=t,i=n?.responseURL;if(u&&!(td in u)&&s?.status===412&&s?.data?.message==="CSRF check failed"){console.warn(`Request to ${i} failed because of a CSRF mismatch. Fetching a new token.`);const o=await Dv();return e.defaults.headers.requesttoken=o,e({...u,[td]:!0,headers:{...u.headers,requesttoken:o}})}throw t}}const ud="_nextcloudMaintenanceModeRetryDelay";function wB(e){return async t=>{if(!xr(t))throw t;const{config:u,response:s,request:n}=t,i=n?.responseURL,o=s?.status,a=s?.headers;let r=u?.[ud]??1;if(o===503&&a?.["x-nextcloud-maintenance-mode"]==="1"&&u?.retryIfMaintenanceMode){if(r*=2,r>32)throw console.error("Retry delay exceeded one minute, giving up.",{responseURL:i}),t;return console.warn(`Request to ${i} failed because of maintenance mode. Retrying in ${r}s`),await new Promise(m=>{setTimeout(m,r*1e3)}),e({...u,[ud]:r})}throw t}}async function DB(e){if(xr(e)){const{config:t,response:u,request:s}=e,n=s?.responseURL;u?.status===401&&u?.data?.message==="Current user is not logged in"&&t?.reloadExpiredSession&&globalThis.location?.reload&&(console.error(`Request to ${n} failed because the user session expired. Reloading the page …`),globalThis.OC?.reload?globalThis.OC.reload():globalThis.location.reload())}throw e}const Te=AB();Te.interceptors.response.use(e=>e,bB(Te)),Te.interceptors.response.use(e=>e,wB(Te)),Te.interceptors.response.use(e=>e,DB);const $e=e=>id("/apps/absence"+e),M2={getSession:()=>Te.get($e("/api/session")).then(e=>e.data),getPersonalConfig:()=>Te.get($e("/api/personal/config")).then(e=>e.data),updatePersonalConfig:e=>Te.put($e("/api/personal/config"),{values:e}).then(t=>t.data),listRequests:e=>Te.get($e("/api/requests"),{params:e}).then(t=>t.data),getRequest:e=>Te.get($e(`/api/requests/${e}`)).then(t=>t.data),createRequest:e=>Te.post($e("/api/requests"),e).then(t=>t.data),updateRequest:(e,t)=>Te.put($e(`/api/requests/${e}`),t).then(u=>u.data),cancelRequest:e=>Te.post($e(`/api/requests/${e}/cancel`)).then(t=>t.data),approveRequest:(e,t)=>Te.post($e(`/api/requests/${e}/approve`),{comment:t}).then(u=>u.data),rejectRequest:(e,t)=>Te.post($e(`/api/requests/${e}/reject`),{comment:t}).then(u=>u.data),addComment:(e,t)=>Te.post($e(`/api/requests/${e}/comments`),{body:t}).then(u=>u.data),getMyBalance:e=>Te.get($e("/api/balance"),{params:{year:e}}).then(t=>t.data),getEmployeeBalance:(e,t)=>Te.get($e(`/api/employees/${encodeURIComponent(e)}/balance`),{params:{year:t}}).then(u=>u.data),listEntitlements:(e,t)=>Te.get($e("/api/entitlements"),{params:{employeeUid:e,year:t}}).then(u=>u.data),createEntitlement:e=>Te.post($e("/api/entitlements"),e).then(t=>t.data),updateEntitlement:(e,t)=>Te.put($e(`/api/entitlements/${e}`),t).then(u=>u.data),bulkEntitlements:e=>Te.post($e("/api/entitlements/bulk"),e).then(t=>t.data),getCoverage:(e,t,u)=>Te.get($e("/api/coverage"),{params:{from:e,to:t,scope:u}}).then(s=>s.data),getCalendar:(e,t,u)=>Te.get($e("/api/calendar"),{params:{from:e,to:t,scope:u}}).then(s=>s.data),listLeaveTypes:e=>Te.get($e("/api/leave-types"),{params:{onlyEnabled:e}}).then(t=>t.data),createLeaveType:e=>Te.post($e("/api/leave-types"),e).then(t=>t.data),updateLeaveType:(e,t)=>Te.put($e(`/api/leave-types/${e}`),t).then(u=>u.data),deleteLeaveType:e=>Te.delete($e(`/api/leave-types/${e}`)).then(t=>t.data),searchUsers:e=>Te.get($e("/api/employees/search"),{params:{search:e}}).then(t=>t.data),reportBalances:(e,t)=>Te.get($e("/api/reports/balances"),{params:{year:e,group:t}}).then(u=>u.data),reportTrends:(e,t)=>Te.get($e("/api/reports/trends"),{params:{from:e,to:t}}).then(u=>u.data),reportSickLeave:(e,t)=>Te.get($e("/api/reports/sick-leave"),{params:{year:e,group:t}}).then(u=>u.data),exportRequestsUrl:(e,t)=>$e(`/api/export/requests?from=${e}&to=${t}`),exportBalancesUrl:e=>$e(`/api/export/balances?year=${e}`)};function FB(e){const t=e.getFullYear(),u=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${t}-${u}-${s}`}function $2(e){const t=new Set;for(const u of String(e||"").split(",")){const s=parseInt(u,10);s>=1&&s<=7&&t.add(s)}return t}function U2(e,t,u,s){if(!e||!t||!u||u.size===0)return 0;const n=new Date(t+"T00:00:00");let i=0;for(const o=new Date(e+"T00:00:00");o<=n;o.setDate(o.getDate()+1)){const a=o.getDay()===0?7:o.getDay();u.has(a)&&!(s&&s(FB(o)))&&i++}return i}function ta(e){return e?new Date(e+"T00:00:00").toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):""}function V2(e,t){return e===t?ta(e):`${ta(e)} – ${ta(t)}`}function W2(e){const t=Math.max(0,Math.floor(e/1e3)),u=String(Math.floor(t%3600/60)).padStart(2,"0"),s=String(t%60).padStart(2,"0");return`${Math.floor(t/3600)}:${u}:${s}`}const kB=new Set(["AR","AU","BO","BR","BW","CL","FJ","LS","MG","MW","MZ","NA","NZ","PY","SZ","UY","ZA","ZM","ZW"]);function H2(e,t){const u=e.getMonth(),s=u===11||u<=1?"winter":u<=4?"spring":u<=7?"summer":"autumn";return kB.has(String(t||"").toUpperCase())?{winter:"summer",spring:"autumn",summer:"winter",autumn:"spring"}[s]:s}function G2(e,t,u,s,n){const i=new Date(t+"T00:00:00"),o=new Date(u+"T00:00:00"),a=Math.round((o-i)/864e5)+1;if(!(a<=0||!s))for(let r=0;r<12;r++){const m=new Date(n,r,1),l=new Date(n,r+1,0),g=i>m?i:m,p=o0&&(e[r]+=s*(h/a))}}async function q2(e,t){if(!e)return null;const{default:u}=await dr(async()=>{const{default:n}=await import("./index-BN1WbbeK.chunk.mjs");return{default:n}},[],import.meta.url),s=t?new u(e,t):new u(e);return n=>{const i=s.isHoliday(new Date(n+"T12:00:00"));return Array.isArray(i)&&i.some(o=>o.type==="public")}}async function K2(){const{default:e}=await dr(async()=>{const{default:u}=await import("./index-BN1WbbeK.chunk.mjs");return{default:u}},[],import.meta.url),t=new e().getCountries();return Object.keys(t).map(u=>({id:u,label:t[u]}))}async function Y2(e){if(!e)return[];const{default:t}=await dr(async()=>{const{default:s}=await import("./index-BN1WbbeK.chunk.mjs");return{default:s}},[],import.meta.url),u=new t().getStates(e)||{};return Object.keys(u).map(s=>({id:s,label:u[s]}))}const SB=`{delete n[h]}),t.headers=Ft.concat(i,n);const o=[];let a=!0;this.interceptors.request.forEach(function(h){if(typeof h.runWhen=="function"&&h.runWhen(t)===!1)return;a=a&&h.synchronous;const y=t.transitional||Er;y&&y.legacyInterceptorReqResOrdering?o.unshift(h.fulfilled,h.rejected):o.push(h.fulfilled,h.rejected)});const r=[];this.interceptors.response.forEach(function(h){r.push(h.fulfilled,h.rejected)});let m,l=0,g;if(!a){const h=[Q4.bind(this),void 0];for(h.unshift(...o),h.push(...r),g=h.length,m=Promise.resolve(t);l{if(!s._listeners)return;let i=s._listeners.length;for(;i-- >0;)s._listeners[i](n);s._listeners=null}),this.promise.then=n=>{let i;const o=new Promise(a=>{s.subscribe(a),i=a}).then(n);return o.cancel=function(){s.unsubscribe(i)},o},t(function(n,i,o){s.reason||(s.reason=new Bi(n,i,o),u(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const u=this._listeners.indexOf(t);u!==-1&&this._listeners.splice(u,1)}toAbortSignal(){const t=new AbortController,u=s=>{t.abort(s)};return this.subscribe(u),t.signal.unsubscribe=()=>this.unsubscribe(u),t.signal}static source(){let t;return{token:new hc(function(u){t=u}),cancel:t}}};function yB(e){return function(t){return e.apply(null,t)}}function xB(e){return D.isObject(e)&&e.isAxiosError===!0}const Ra={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Ra).forEach(([e,t])=>{Ra[t]=e});function vc(e){const t=new Ts(e),u=K3(Ts.prototype.request,t);return D.extend(u,Ts.prototype,t,{allOwnKeys:!0}),D.extend(u,t,null,{allOwnKeys:!0}),u.create=function(s){return vc(Is(e,s))},u}const Qe=vc(Ci);Qe.Axios=Ts,Qe.CanceledError=Bi,Qe.CancelToken=BB,Qe.isCancel=dc,Qe.VERSION=Br,Qe.toFormData=oo,Qe.AxiosError=te,Qe.Cancel=Qe.CanceledError,Qe.all=function(e){return Promise.all(e)},Qe.spread=yB,Qe.isAxiosError=xB,Qe.mergeConfig=Is,Qe.AxiosHeaders=Ft,Qe.formToJSON=e=>lc(D.isHTMLForm(e)?new FormData(e):e),Qe.getAdapter=pc.getAdapter,Qe.HttpStatusCode=Ra,Qe.default=Qe;const{Axios:b2,AxiosError:w2,CanceledError:D2,isCancel:F2,CancelToken:k2,VERSION:S2,all:N2,Cancel:_2,isAxiosError:xr,spread:O2,toFormData:T2,AxiosHeaders:z2,HttpStatusCode:P2,formToJSON:R2,getAdapter:L2,mergeConfig:j2,create:I2}=Qe;function AB(){const e=Qe.create({headers:{requesttoken:wv()??"","X-Requested-With":"XMLHttpRequest"}});return Fv(t=>{e.defaults.headers.requesttoken=t}),Object.assign(e,{CancelToken:Qe.CancelToken,isCancel:Qe.isCancel})}const td="_nextcloudCsrfTokenReloaded";function bB(e){return async t=>{if(!xr(t))throw t;const{config:u,response:s,request:n}=t,i=n?.responseURL;if(u&&!(td in u)&&s?.status===412&&s?.data?.message==="CSRF check failed"){console.warn(`Request to ${i} failed because of a CSRF mismatch. Fetching a new token.`);const o=await Dv();return e.defaults.headers.requesttoken=o,e({...u,[td]:!0,headers:{...u.headers,requesttoken:o}})}throw t}}const ud="_nextcloudMaintenanceModeRetryDelay";function wB(e){return async t=>{if(!xr(t))throw t;const{config:u,response:s,request:n}=t,i=n?.responseURL,o=s?.status,a=s?.headers;let r=u?.[ud]??1;if(o===503&&a?.["x-nextcloud-maintenance-mode"]==="1"&&u?.retryIfMaintenanceMode){if(r*=2,r>32)throw console.error("Retry delay exceeded one minute, giving up.",{responseURL:i}),t;return console.warn(`Request to ${i} failed because of maintenance mode. Retrying in ${r}s`),await new Promise(m=>{setTimeout(m,r*1e3)}),e({...u,[ud]:r})}throw t}}async function DB(e){if(xr(e)){const{config:t,response:u,request:s}=e,n=s?.responseURL;u?.status===401&&u?.data?.message==="Current user is not logged in"&&t?.reloadExpiredSession&&globalThis.location?.reload&&(console.error(`Request to ${n} failed because the user session expired. Reloading the page …`),globalThis.OC?.reload?globalThis.OC.reload():globalThis.location.reload())}throw e}const Te=AB();Te.interceptors.response.use(e=>e,bB(Te)),Te.interceptors.response.use(e=>e,wB(Te)),Te.interceptors.response.use(e=>e,DB);const $e=e=>id("/apps/absence"+e),M2={getSession:()=>Te.get($e("/api/session")).then(e=>e.data),getPersonalConfig:()=>Te.get($e("/api/personal/config")).then(e=>e.data),updatePersonalConfig:e=>Te.put($e("/api/personal/config"),{values:e}).then(t=>t.data),listRequests:e=>Te.get($e("/api/requests"),{params:e}).then(t=>t.data),getRequest:e=>Te.get($e(`/api/requests/${e}`)).then(t=>t.data),createRequest:e=>Te.post($e("/api/requests"),e).then(t=>t.data),updateRequest:(e,t)=>Te.put($e(`/api/requests/${e}`),t).then(u=>u.data),cancelRequest:e=>Te.post($e(`/api/requests/${e}/cancel`)).then(t=>t.data),approveRequest:(e,t)=>Te.post($e(`/api/requests/${e}/approve`),{comment:t}).then(u=>u.data),rejectRequest:(e,t)=>Te.post($e(`/api/requests/${e}/reject`),{comment:t}).then(u=>u.data),addComment:(e,t)=>Te.post($e(`/api/requests/${e}/comments`),{body:t}).then(u=>u.data),getMyBalance:e=>Te.get($e("/api/balance"),{params:{year:e}}).then(t=>t.data),getEmployeeBalance:(e,t)=>Te.get($e(`/api/employees/${encodeURIComponent(e)}/balance`),{params:{year:t}}).then(u=>u.data),listEntitlements:(e,t)=>Te.get($e("/api/entitlements"),{params:{employeeUid:e,year:t}}).then(u=>u.data),createEntitlement:e=>Te.post($e("/api/entitlements"),e).then(t=>t.data),updateEntitlement:(e,t)=>Te.put($e(`/api/entitlements/${e}`),t).then(u=>u.data),bulkEntitlements:e=>Te.post($e("/api/entitlements/bulk"),e).then(t=>t.data),getCoverage:(e,t,u)=>Te.get($e("/api/coverage"),{params:{from:e,to:t,scope:u}}).then(s=>s.data),getCalendar:(e,t,u)=>Te.get($e("/api/calendar"),{params:{from:e,to:t,scope:u}}).then(s=>s.data),listLeaveTypes:e=>Te.get($e("/api/leave-types"),{params:{onlyEnabled:e}}).then(t=>t.data),createLeaveType:e=>Te.post($e("/api/leave-types"),e).then(t=>t.data),updateLeaveType:(e,t)=>Te.put($e(`/api/leave-types/${e}`),t).then(u=>u.data),deleteLeaveType:e=>Te.delete($e(`/api/leave-types/${e}`)).then(t=>t.data),searchUsers:e=>Te.get($e("/api/employees/search"),{params:{search:e}}).then(t=>t.data),reportBalances:(e,t)=>Te.get($e("/api/reports/balances"),{params:{year:e,group:t}}).then(u=>u.data),reportTrends:(e,t)=>Te.get($e("/api/reports/trends"),{params:{from:e,to:t}}).then(u=>u.data),reportSickLeave:(e,t,u)=>Te.get($e("/api/reports/sick-leave"),{params:{year:e,group:t,typeId:u}}).then(s=>s.data),exportRequestsUrl:(e,t)=>$e(`/api/export/requests?from=${e}&to=${t}`),exportBalancesUrl:e=>$e(`/api/export/balances?year=${e}`)};function FB(e){const t=e.getFullYear(),u=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${t}-${u}-${s}`}function $2(e){const t=new Set;for(const u of String(e||"").split(",")){const s=parseInt(u,10);s>=1&&s<=7&&t.add(s)}return t}function U2(e,t,u,s){if(!e||!t||!u||u.size===0)return 0;const n=new Date(t+"T00:00:00");let i=0;for(const o=new Date(e+"T00:00:00");o<=n;o.setDate(o.getDate()+1)){const a=o.getDay()===0?7:o.getDay();u.has(a)&&!(s&&s(FB(o)))&&i++}return i}function ta(e){return e?new Date(e+"T00:00:00").toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):""}function V2(e,t){return e===t?ta(e):`${ta(e)} – ${ta(t)}`}function W2(e){const t=Math.max(0,Math.floor(e/1e3)),u=String(Math.floor(t%3600/60)).padStart(2,"0"),s=String(t%60).padStart(2,"0");return`${Math.floor(t/3600)}:${u}:${s}`}const kB=new Set(["AR","AU","BO","BR","BW","CL","FJ","LS","MG","MW","MZ","NA","NZ","PY","SZ","UY","ZA","ZM","ZW"]);function H2(e,t){const u=e.getMonth(),s=u===11||u<=1?"winter":u<=4?"spring":u<=7?"summer":"autumn";return kB.has(String(t||"").toUpperCase())?{winter:"summer",spring:"autumn",summer:"winter",autumn:"spring"}[s]:s}function G2(e,t,u,s,n){const i=new Date(t+"T00:00:00"),o=new Date(u+"T00:00:00"),a=Math.round((o-i)/864e5)+1;if(!(a<=0||!s))for(let r=0;r<12;r++){const m=new Date(n,r,1),l=new Date(n,r+1,0),g=i>m?i:m,p=o0&&(e[r]+=s*(h/a))}}async function q2(e,t){if(!e)return null;const{default:u}=await dr(async()=>{const{default:n}=await import("./index-CAVYKD4e.chunk.mjs");return{default:n}},[],import.meta.url),s=t?new u(e,t):new u(e);return n=>{const i=s.isHoliday(new Date(n+"T12:00:00"));return Array.isArray(i)&&i.some(o=>o.type==="public")}}async function K2(){const{default:e}=await dr(async()=>{const{default:u}=await import("./index-CAVYKD4e.chunk.mjs");return{default:u}},[],import.meta.url),t=new e().getCountries();return Object.keys(t).map(u=>({id:u,label:t[u]}))}async function Y2(e){if(!e)return[];const{default:t}=await dr(async()=>{const{default:s}=await import("./index-CAVYKD4e.chunk.mjs");return{default:s}},[],import.meta.url),u=new t().getStates(e)||{};return Object.keys(u).map(s=>({id:s,label:u[s]}))}const SB=` @@ -28,4 +28,4 @@ https://vue-select.org/api/props.html#getoptionlabel`):e}},getOptionKey:{type:Fu r="3" fill="var(--color-main-background)" /> `,NB=tu({__name:"NcIconToggleSwitch",props:{checked:{type:Boolean},size:{default:34},inline:{type:Boolean,default:!1}},setup(e){X0(s=>({v6bd152af:t.value,v16fd8ca9:u.value}));const t=Ue(()=>e.checked?"var(--color-primary-element)":"var(--color-text-maxcontrast)"),u=Ue(()=>e.checked?"calc(17 / 24 * 100%)":"calc(7 / 24 * 100%)");return(s,n)=>(X(),et(Es,{class:Bt(s.$style.iconToggleSwitch),svg:SB,size:e.size,inline:e.inline},null,8,["class","size","inline"]))}}),_B="_iconToggleSwitch_IKWaj",OB={"material-design-icon":"_material-design-icon_63AMQ",iconToggleSwitch:_B},TB={$style:OB},zB=rt(NB,[["__cssModules",TB]]),PB=Symbol.for("insideRadioGroup");function RB(){return Nu(PB,void 0)}const LB={name:"CheckboxBlankOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},jB=["aria-hidden","aria-label"],IB=["fill","width","height"],MB={d:"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z"},$B={key:0};function UB(e,t,u,s,n,i){return X(),me("span",ut(e.$attrs,{"aria-hidden":u.title?null:"true","aria-label":u.title,class:"material-design-icon checkbox-blank-outline-icon",role:"img",onClick:t[0]||(t[0]=o=>e.$emit("click",o))}),[(X(),me("svg",{fill:u.fillColor,class:"material-design-icon__svg",width:u.size,height:u.size,viewBox:"0 0 24 24"},[ve("path",MB,[u.title?(X(),me("title",$B,dt(u.title),1)):Ve("",!0)])],8,IB))],16,jB)}const VB=rt(LB,[["render",UB]]),WB={name:"CheckboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},HB=["aria-hidden","aria-label"],GB=["fill","width","height"],qB={d:"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"},KB={key:0};function YB(e,t,u,s,n,i){return X(),me("span",ut(e.$attrs,{"aria-hidden":u.title?null:"true","aria-label":u.title,class:"material-design-icon checkbox-marked-icon",role:"img",onClick:t[0]||(t[0]=o=>e.$emit("click",o))}),[(X(),me("svg",{fill:u.fillColor,class:"material-design-icon__svg",width:u.size,height:u.size,viewBox:"0 0 24 24"},[ve("path",qB,[u.title?(X(),me("title",KB,dt(u.title),1)):Ve("",!0)])],8,GB))],16,HB)}const ZB=rt(WB,[["render",YB]]),XB={name:"MinusBoxIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},JB=["aria-hidden","aria-label"],QB=["fill","width","height"],ey={d:"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"},ty={key:0};function uy(e,t,u,s,n,i){return X(),me("span",ut(e.$attrs,{"aria-hidden":u.title?null:"true","aria-label":u.title,class:"material-design-icon minus-box-icon",role:"img",onClick:t[0]||(t[0]=o=>e.$emit("click",o))}),[(X(),me("svg",{fill:u.fillColor,class:"material-design-icon__svg",width:u.size,height:u.size,viewBox:"0 0 24 24"},[ve("path",ey,[u.title?(X(),me("title",ty,dt(u.title),1)):Ve("",!0)])],8,QB))],16,JB)}const sy=rt(XB,[["render",uy]]),ny={name:"RadioboxBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},iy=["aria-hidden","aria-label"],oy=["fill","width","height"],ay={d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},ry={key:0};function ly(e,t,u,s,n,i){return X(),me("span",ut(e.$attrs,{"aria-hidden":u.title?null:"true","aria-label":u.title,class:"material-design-icon radiobox-blank-icon",role:"img",onClick:t[0]||(t[0]=o=>e.$emit("click",o))}),[(X(),me("svg",{fill:u.fillColor,class:"material-design-icon__svg",width:u.size,height:u.size,viewBox:"0 0 24 24"},[ve("path",ay,[u.title?(X(),me("title",ry,dt(u.title),1)):Ve("",!0)])],8,oy))],16,iy)}const dy=rt(ny,[["render",ly]]),my={name:"RadioboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},cy=["aria-hidden","aria-label"],gy=["fill","width","height"],fy={d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z"},py={key:0};function hy(e,t,u,s,n,i){return X(),me("span",ut(e.$attrs,{"aria-hidden":u.title?null:"true","aria-label":u.title,class:"material-design-icon radiobox-marked-icon",role:"img",onClick:t[0]||(t[0]=o=>e.$emit("click",o))}),[(X(),me("svg",{fill:u.fillColor,class:"material-design-icon__svg",width:u.size,height:u.size,viewBox:"0 0 24 24"},[ve("path",fy,[u.title?(X(),me("title",py,dt(u.title),1)):Ve("",!0)])],8,gy))],16,cy)}const vy=rt(my,[["render",hy]]),en="checkbox",Bs="radio",Zu="switch",qn="button",Ey={name:"NcCheckboxContent",components:{NcLoadingIcon:R3,NcIconToggleSwitch:zB},props:{iconClass:{type:[String,Object],default:null},textClass:{type:[String,Object],default:null},type:{type:String,default:"checkbox",validator:e=>[en,Bs,Zu,qn].includes(e)},buttonVariant:{type:Boolean,default:!1},isChecked:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},iconSize:{type:Number,default:24},labelId:{type:String,required:!0},descriptionId:{type:String,required:!0}},computed:{isButtonType(){return this.type===qn},isSwitchType(){return this.type===Zu},checkboxRadioIconElement(){return this.type===Bs?this.isChecked?vy:dy:this.indeterminate?sy:this.isChecked?ZB:VB}}},Cy={key:0,class:"checkbox-content__wrapper"},By=["id"],yy=["id"];function xy(e,t,u,s,n,i){const o=It("NcLoadingIcon"),a=It("NcIconToggleSwitch");return X(),me("span",{class:Bt(["checkbox-content",{["checkbox-content-"+u.type]:!0,"checkbox-content--button-variant":u.buttonVariant,"checkbox-content--has-text":!!e.$slots.default}])},[ve("span",{class:Bt(["checkbox-content__icon",{"checkbox-content__icon--checked":u.isChecked,"checkbox-content__icon--has-description":!i.isButtonType&&e.$slots.description,[u.iconClass]:!0}]),"aria-hidden":!0,inert:""},[ze(e.$slots,"icon",{checked:u.isChecked,loading:u.loading},()=>[u.loading?(X(),et(o,{key:0})):i.isSwitchType?(X(),et(a,{key:1,checked:u.isChecked,size:u.iconSize,inline:""},null,8,["checked","size"])):u.buttonVariant?Ve("",!0):(X(),et(rn(i.checkboxRadioIconElement),{key:2,size:u.iconSize},null,8,["size"]))],!0)],2),e.$slots.default||e.$slots.description?(X(),me("span",Cy,[e.$slots.default?(X(),me("span",{key:0,id:u.labelId,class:Bt(["checkbox-content__text",u.textClass])},[ze(e.$slots,"default",{},void 0,!0)],10,By)):Ve("",!0),!i.isButtonType&&e.$slots.description?(X(),me("span",{key:1,id:u.descriptionId,class:"checkbox-content__description"},[ze(e.$slots,"description",{},void 0,!0)],8,yy)):Ve("",!0)])):Ve("",!0)],2)}const Ay=rt(Ey,[["render",xy],["__scopeId","data-v-5ca1e30f"]]);pn();const Ar={name:"NcCheckboxRadioSwitch",components:{NcCheckboxContent:Ay},inheritAttrs:!1,props:{id:{type:String,default:()=>"checkbox-radio-switch-"+_s(),validator:e=>e.trim()!==""},wrapperId:{type:String,default:null},name:{type:String,default:null},ariaLabel:{type:String,default:""},type:{type:String,default:"checkbox",validator:e=>[en,Bs,Zu,qn].includes(e)},buttonVariant:{type:Boolean,default:!1},buttonVariantGrouped:{type:String,default:"no",validator:e=>["no","vertical","horizontal"].includes(e)},modelValue:{type:[Boolean,Array,String],default:!1},value:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},required:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},wrapperElement:{type:String,default:null},class:{type:[String,Array,Object],default:""},style:{type:[String,Array,Object],default:""},description:{type:String,default:null}},emits:["update:modelValue"],setup(e,{emit:t}){const u=RB();En(()=>u?.value.register(!1));const s=Ue(()=>u?.value?Bs:e.type),n=Ue({get(){return u?.value?u.value.modelValue:e.modelValue},set(i){u?.value?u.value.onUpdate(i):t("update:modelValue",i)}});return{internalType:s,internalModelValue:n,labelId:_s(),descriptionId:_s()}},computed:{isButtonType(){return this.internalType===qn},computedWrapperElement(){return this.isButtonType?"button":this.wrapperElement!==null?this.wrapperElement:"span"},listeners(){return this.isButtonType?{click:this.onToggle}:{change:this.onToggle}},iconSize(){return this.internalType===Zu?36:20},cssIconSize(){return this.iconSize+"px"},cssIconHeight(){return this.internalType===Zu?"16px":this.cssIconSize},inputType(){return[en,Bs,qn].includes(this.internalType)?this.internalType:en},isChecked(){return this.value!==null?Array.isArray(this.internalModelValue)?[...this.internalModelValue].indexOf(this.value)>-1:this.internalModelValue===this.value:this.internalModelValue===!0},hasIndeterminate(){return[en,Bs].includes(this.inputType)}},mounted(){if(this.name&&this.internalType===en&&!Array.isArray(this.internalModelValue))throw new Error("When using groups of checkboxes, the updated value will be an array.");if(this.name&&this.internalType===Zu)throw new Error("Switches are not made to be used for data sets. Please use checkboxes instead.");if(typeof this.internalModelValue!="boolean"&&this.internalType===Zu)throw new Error("Switches can only be used with boolean as modelValue prop.")},methods:{t:ft,n:qh,onToggle(e){if(!(this.disabled||e.target.tagName.toLowerCase()==="a")){if(this.internalType===Bs){this.internalModelValue=this.value;return}if(this.internalType===Zu){this.internalModelValue=!this.isChecked;return}if(typeof this.internalModelValue=="boolean"){this.internalModelValue=!this.internalModelValue;return}this.isChecked?this.internalModelValue=this.internalModelValue.filter(t=>t!==this.value):this.internalModelValue=[...this.internalModelValue,this.value]}}}},sd=()=>{X0(e=>({v5ac25550:e.cssIconSize,d98ce684:e.cssIconHeight}))},nd=Ar.setup;Ar.setup=nd?(e,t)=>(sd(),nd(e,t)):sd;const by=["id","aria-labelledby","aria-describedby","aria-label","disabled","type","value","checked",".indeterminate","required","name"];function wy(e,t,u,s,n,i){const o=It("NcCheckboxContent");return X(),et(rn(i.computedWrapperElement),ut({id:u.wrapperId??(i.isButtonType?u.id:null),"aria-label":i.isButtonType&&u.ariaLabel?u.ariaLabel:void 0,class:["checkbox-radio-switch",[e.$props.class,{["checkbox-radio-switch-"+s.internalType]:s.internalType,"checkbox-radio-switch--checked":i.isChecked,"checkbox-radio-switch--disabled":u.disabled,"checkbox-radio-switch--indeterminate":i.hasIndeterminate?u.indeterminate:!1,"checkbox-radio-switch--button-variant":u.buttonVariant,"checkbox-radio-switch--button-variant-v-grouped":u.buttonVariant&&u.buttonVariantGrouped==="vertical","checkbox-radio-switch--button-variant-h-grouped":u.buttonVariant&&u.buttonVariantGrouped==="horizontal","button-vue":i.isButtonType}]],style:u.style,type:i.isButtonType?"button":null},i.isButtonType?e.$attrs:{},n0(i.isButtonType?i.listeners:{})),{default:Pe(()=>[i.isButtonType?Ve("",!0):(X(),me("input",ut({key:0,id:u.id,"aria-labelledby":!i.isButtonType&&!u.ariaLabel?s.labelId:null,"aria-describedby":!i.isButtonType&&(u.description||e.$slots.description)?s.descriptionId:null,"aria-label":u.ariaLabel||void 0,class:"checkbox-radio-switch__input",disabled:u.disabled,type:i.inputType,value:u.value,checked:i.isChecked,".indeterminate":i.hasIndeterminate?u.indeterminate:null,required:u.required,name:u.name},e.$attrs,n0(i.listeners,!0)),null,48,by)),Be(o,{id:i.isButtonType?void 0:`${u.id}-label`,class:"checkbox-radio-switch__content",iconClass:"checkbox-radio-switch__icon",textClass:"checkbox-radio-switch__text",type:s.internalType,indeterminate:i.hasIndeterminate?u.indeterminate:!1,buttonVariant:u.buttonVariant,isChecked:i.isChecked,loading:u.loading,labelId:s.labelId,descriptionId:s.descriptionId,iconSize:i.iconSize,onClick:i.onToggle},am({icon:Pe(()=>[ze(e.$slots,"icon",{},void 0,!0)]),_:2},[e.$slots.description||u.description?{name:"description",fn:Pe(()=>[ze(e.$slots,"description",{},()=>[Ns(dt(u.description),1)],!0)]),key:"0"}:void 0,e.$slots.default?{name:"default",fn:Pe(()=>[ze(e.$slots,"default",{},void 0,!0)]),key:"1"}:void 0]),1032,["id","type","indeterminate","buttonVariant","isChecked","loading","labelId","descriptionId","iconSize","onClick"])]),_:3},16,["id","aria-label","class","style","type"])}const Z2=rt(Ar,[["render",wy],["__scopeId","data-v-c34c63a4"]]);export{Rh as $,sv as A,h2 as B,Jg as C,v2 as D,tv as E,ks as F,d2 as G,tu as H,Xn as I,g2 as J,p2 as K,f2 as L,Tv as M,pn as N,ah as O,dt as P,Ve as Q,it as R,Bt as S,Vi as T,ys as U,tn as V,ve as W,Be as X,Pe as Y,bh as Z,rt as _,Uf as a,vg as a$,v0 as a0,Hy as a1,It as a2,Es as a3,My as a4,ft as a5,As as a6,s2 as a7,Qy as a8,Gd as a9,t2 as aA,R3 as aB,_s as aC,D1 as aD,n2 as aE,zf as aF,Ff as aG,ky as aH,E2 as aI,Py as aJ,X1 as aK,Ly as aL,Jn as aM,zt as aN,jy as aO,i2 as aP,ml as aQ,nr as aR,Iy as aS,Jy as aT,am as aU,Wy as aV,Ql as aW,M2 as aX,x2 as aY,Ii as aZ,y2 as a_,Ym as aa,f3 as ab,ii as ac,gn as ad,Ah as ae,$m as af,gv as ag,yl as ah,Nf as ai,Zf as aj,Vy as ak,Uy as al,C1 as am,Ns as an,_t as ao,At as ap,ut as aq,Zy as ar,T1 as as,Oy as at,l1 as au,r1 as av,$h as aw,$y as ax,e2 as ay,o2 as az,im as b,B2 as b0,A2 as b1,C2 as b2,FB as b3,$2 as b4,U2 as b5,q2 as b6,id as b7,Ry as b8,Qr as b9,Y2 as bA,K2 as bB,Fy as bC,O0 as bD,Xy as ba,P3 as bb,Js as bc,Gy as bd,da as be,Mf as bf,zc as bg,od as bh,qy as bi,a2 as bj,Yy as bk,Te as bl,Dy as bm,Ky as bn,h1 as bo,Sv as bp,V2 as bq,Ny as br,_y as bs,Z2 as bt,ta as bu,H2 as bv,G2 as bw,W2 as bx,Ty as by,u2 as bz,et as c,me as d,ze as e,Fe as f,cn as g,Ue as h,Nu as i,uu as j,Ha as k,zy as l,X as m,ws as n,En as o,gt as p,Cf as q,rn as r,uv as s,ev as t,Sy as u,r2 as v,_u as w,c2 as x,l2 as y,m2 as z}; -//# sourceMappingURL=NcCheckboxRadioSwitch-DVdt5Hkq-DEWNkSin.chunk.mjs.map +//# sourceMappingURL=NcCheckboxRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs.map diff --git a/js/NcCheckboxRadioSwitch-DVdt5Hkq-DEWNkSin.chunk.mjs.license b/js/NcCheckboxRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs.license similarity index 100% rename from js/NcCheckboxRadioSwitch-DVdt5Hkq-DEWNkSin.chunk.mjs.license rename to js/NcCheckboxRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs.license diff --git a/js/NcCheckboxRadioSwitch-DVdt5Hkq-DEWNkSin.chunk.mjs.map b/js/NcCheckboxRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs.map similarity index 99% rename from js/NcCheckboxRadioSwitch-DVdt5Hkq-DEWNkSin.chunk.mjs.map rename to js/NcCheckboxRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs.map index b7d52d1..3e348c1 100644 --- a/js/NcCheckboxRadioSwitch-DVdt5Hkq-DEWNkSin.chunk.mjs.map +++ b/js/NcCheckboxRadioSwitch-DVdt5Hkq-Hp7kgx_A.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"mappings":"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","names":["url","params","options","version","getBaseUrl","_build","text","vars","r","allOptions","baseOrRootURL","getRootUrl","webroot","pos","index","_arrayLikeToArray","a","e","n","_arrayWithHoles","_iterableToArrayLimit","t","f","i","l","o","u","_nonIterableRest","serializedHTML","SAFE_FOR_TEMPLATES","_stripTemplateExpressions","RETURN_TRUSTED_TYPE","_createTrustedHTML","DOMPurify","message","msg","context","level","LogLevel","buildConsoleLogger","LoggerBuilder","factory","appId","user","self","onLoaded","getLoggerBuilder","isRtl","candidateSelector","candidateSelectors","NoElement","matches","_element$getRootNode","element","_isInert","node","lookUp","_node$getAttribute","inertAtt","inert","result","attValue","_node$getAttribute2","getCandidates","filter","candidates","includeContainer","_getCandidatesIteratively","elements","assigned","nestedCandidates","content","shadowRoot","validShadowRoot","_nestedCandidates","elementsToCheck","isContentEditable","getSortOrderTabIndex","isScope","getTabIndex","tabIndex","hasTabIndex","sortOrderedTabbables","b","isHiddenInput","isDetailsWithSummary","child","getCheckedRadio","nodes","radioScope","getRootNode","queryRadios","name","radioSet","err","checked","isInput","isRadio","isTabbableRadio","nodeRoot","_nodeRoot","_nodeRootHost","_nodeRootHost$ownerDo","attached","nodeRootHost","_node$ownerDocument","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","_node$getBoundingClie","width","isHidden","_ref","displayCheck","visible","_getComputedStyle","visibility","isDirectSummary","getShadowRoot","parentElement","rootNode","isZeroArea","isNodeAttached","isDisabledFromFieldset","parentNode","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isNonTabbableRadio","shadowHostNode","_sortByOrder","orderedTabbables","item","candidateTabindex","regularTabbables","acc","sortable","tabbable","isShadowRootTabbable","focusable","container","focusableCandidateSelector","_arrayWithoutHoles","F","_iterableToArray","option","sortAndStringify","warn","label","search","value","clearSearchOnSelect","component","top","left","dropdownList","open","uniqueId","listSlot","limitOptions","options2","optionList","createdOption","newOptions","shouldReset","val","isOpen","nextDeselect","index2","deselectToFocus","event","targetIsNotSearch","ref","predicate","match","_option","line","key","ignoreDuplicateOf","parsed","start","end","str","code","INVALID_UNICODE_HEADER_VALUE_CHARS","invalidChars","utils","sanitizeValue","trimSPorHTAB","thing","first","targets","target","$internals","defineAccessor","_header","accessors","buildAccessors","prototype","lHeader","AxiosHeaders","REDACTED","hasOwnOrPrototypeToJSON","source","config","lowerKeys","visit","seen","v","reducedValue","AxiosError","customProps","axiosError","error","response","request","redactKeys","serializedConfig","redactConfig","DEFAULT_FORM_DATA_MAX_DEPTH","isVisitable","removeBrackets","renderKey","path","token","dots","arr","predicates","toFormData","obj","formData","metaTokens","visitor","indexes","_Blob","useBlob","stack","convertValue","Buffer","depth","maxDepth","stringifyWithDepthLimit","ancestors","_key","currentValue","build","throwIfMaxDepthExceeded","el","exposedHelpers","AxiosURLSearchParams","encoder","_encode","encode","pair","buildURL","_options","serializeFn","serializedParams","fulfilled","id","fn","h","transitionalDefaults","FormData$1","Blob$1","platform$1","_navigator","hasStandardBrowserEnv","hasBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","platform","toURLEncodedForm","data","throwIfDepthExceeded","MAX_DEPTH","parsePropPath","len","keys","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","own","rawValue","defaults","headers","isObjectPayload","hasJSONContentType","isFileList","formSerializer","contentType","env","_FormData","transitional","forcedJSONParsing","JSONRequested","responseType","strictJSONParsing","status","transformData","fns","isCancel","reject","validateStatus","resolve","parseProtocol","speedometer","samplesCount","min","bytes","firstSampleTS","head","now","startedAt","bytesCount","throttle","freq","timestamp","threshold","invoke","args","lastArgs","timer","passed","bytesNotified","_speedometer","total","loaded","rawLoaded","progressBytes","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","sameSite","cookie","secure","eq","relativeURL","malformedHttpProtocol","stripLeadingC0ControlOrSpace","normalizeURLForProtocolCheck","httpProtocolControlCharacters","assertValidHttpProtocolURL","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","isAbsoluteURL","combineURLs","headersToObject","config1","config2","prop","mergeDeepProperties","getMergedValue","valueFromConfig2","defaultToConfig2","getMergedTransitionalOption","transitional2","transitional1","mergeDirectKeys","merge","mergeMap","configValue","FORM_DATA_CONTENT_HEADERS","setFormDataHeaders","formHeaders","policy","encodeUTF8","hex","resolveConfig","mergeConfig","newConfig","xsrfCookieName","auth","username","_config","requestData","requestHeaders","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","done","flushUpload","onloadend","responseHeaders","timeoutErrorMessage","toByteStringHeaderObject","flushDownload","progressEventReducer","cancel","protocol","composeSignals","signals","timeout","aborted","onabort","reason","controller","CanceledError","signal","unsubscribe","chunk","chunkSize","iterable","readStream","streamChunk","stream","reader","trackStream","onFinish","iterator","readBytes","onProgress","loadedBytes","isHexDigit","charCode","isPercentEncodedByte","estimateDataURLDecodedBytes","meta","body","effectiveLen","pad","tailIsPct3D","j","idx","c","next","VERSION","DEFAULT_CHUNK_SIZE","isFunction","_","decodeURIComponentSafe","test","protocolIndex","urlToCheck","globalObject","ReadableStream","TextEncoder","envFetch","Request","Response","isFetchSupported","isRequestSupported","isResponseSupported","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","isReadableStreamSupported","res","type","resolvers","method","getBodyLength","encodeText","resolveBodyLength","cancelToken","withCredentials","fetchOptions","maxContentLength","hasMaxContentLength","hasMaxBodyLength","maxBodyLength","_fetch","composedSignal","requestContentLength","pendingBodyError","maxBodyLengthError","configAuth","maybeWithAuthCredentials","parsedURL","urlUsername","urlPassword","outboundLength","mustEnforceStreamBody","trackRequestStream","flush","_request","contentTypeHeader","isCredentialsSupported","resolvedOptions","declaredLength","isStreamResponse","responseContentLength","bytesRead","materializedSize","responseData","settle","canceledError","networkError","seedCache","getFetch","map","knownAdapters","httpAdapter","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapter","getAdapter","adapters","length","rejectedReasons","nameOrAdapter","state","s","reasons","throwIfCancellationRequested","dispatchRequest","validators","deprecatedWarnings","opt","validator","opts","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","InterceptorManager","configOrUrl","dummy","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","paramsSerializer","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","promise","onRejected","onFulfilled","fullPath","Axios","generateHTTPMethod","isForm"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53],"sources":["../node_modules/@nextcloud/router/dist/index.mjs","../node_modules/dompurify/dist/purify.es.mjs","../node_modules/@nextcloud/logger/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/logger-D3RVzcfQ.mjs","../node_modules/@nextcloud/vue/dist/chunks/rtl-v0UOPAM7.mjs","../node_modules/tabbable/dist/index.esm.js","../node_modules/focus-trap/dist/focus-trap.esm.js","../node_modules/@nextcloud/dialogs/dist/chunks/index.mjs","../node_modules/@nextcloud/vue-select/dist/index.mjs","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/sanitizeHeaderValue.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/@nextcloud/vue/dist/chunks/NcIconToggleSwitch-CRvGt4su.mjs"],"sourcesContent":["function linkTo(app, file) {\n return generateFilePath(app, \"\", file);\n}\nconst linkToRemoteBase = (service) => \"/remote.php/\" + service;\nconst generateRemoteUrl = (service, options) => {\n const baseURL = options?.baseURL ?? getBaseUrl();\n return baseURL + linkToRemoteBase(service);\n};\nconst generateOcsUrl = (url, params, options) => {\n const allOptions = Object.assign({\n ocsVersion: 2\n }, options || {});\n const version = allOptions.ocsVersion === 1 ? 1 : 2;\n const baseURL = options?.baseURL ?? getBaseUrl();\n return baseURL + \"/ocs/v\" + version + \".php\" + _generateUrlPath(url, params, options);\n};\nconst _generateUrlPath = (url, params, options) => {\n const allOptions = Object.assign({\n escape: true\n }, options || {});\n const _build = function(text, vars) {\n vars = vars || {};\n return text.replace(\n /{([^{}]*)}/g,\n function(a, b) {\n const r = vars[b];\n if (allOptions.escape) {\n return typeof r === \"string\" || typeof r === \"number\" ? encodeURIComponent(r.toString()) : encodeURIComponent(a);\n } else {\n return typeof r === \"string\" || typeof r === \"number\" ? r.toString() : a;\n }\n }\n );\n };\n if (url.charAt(0) !== \"/\") {\n url = \"/\" + url;\n }\n return _build(url, params || {});\n};\nconst generateUrl = (url, params, options) => {\n const allOptions = Object.assign({\n noRewrite: false\n }, options || {});\n const baseOrRootURL = options?.baseURL ?? getRootUrl();\n if (window?.OC?.config?.modRewriteWorking === true && !allOptions.noRewrite) {\n return baseOrRootURL + _generateUrlPath(url, params, options);\n }\n return baseOrRootURL + \"/index.php\" + _generateUrlPath(url, params, options);\n};\nconst imagePath = (app, file) => {\n if (!file.includes(\".\")) {\n return generateFilePath(app, \"img\", `${file}.svg`);\n }\n return generateFilePath(app, \"img\", file);\n};\nconst generateFilePath = (app, type, file) => {\n const isCore = window?.OC?.coreApps?.includes(app) ?? false;\n const isPHP = file.slice(-3) === \"php\";\n let link = getRootUrl();\n if (isPHP && !isCore) {\n link += `/index.php/apps/${app}`;\n if (type) {\n link += `/${encodeURI(type)}`;\n }\n if (file !== \"index.php\") {\n link += `/${file}`;\n }\n } else if (!isPHP && !isCore) {\n link = getAppRootUrl(app);\n if (type) {\n link += `/${type}/`;\n }\n if (link.at(-1) !== \"/\") {\n link += \"/\";\n }\n link += file;\n } else {\n if ((app === \"settings\" || app === \"core\" || app === \"search\") && type === \"ajax\") {\n link += \"/index.php\";\n }\n if (app) {\n link += `/${app}`;\n }\n if (type) {\n link += `/${type}`;\n }\n link += `/${file}`;\n }\n return link;\n};\nconst getBaseUrl = () => window.location.protocol + \"//\" + window.location.host + getRootUrl();\nfunction getRootUrl() {\n let webroot = window._oc_webroot;\n if (typeof webroot === \"undefined\") {\n webroot = location.pathname;\n const pos = webroot.indexOf(\"/index.php/\");\n if (pos !== -1) {\n webroot = webroot.slice(0, pos);\n } else {\n const index = webroot.indexOf(\"/\", 1);\n webroot = webroot.slice(0, index > 0 ? index : void 0);\n }\n }\n return webroot;\n}\nfunction getAppRootUrl(app) {\n const webroots = window._oc_appswebroots ?? {};\n return webroots[app] ?? \"\";\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction generateAvatarUrl(user, options) {\n const size = (options?.size || 64) <= 64 ? 64 : 512;\n const guestUrl = options?.isGuestUser ? \"/guest\" : \"\";\n const themeUrl = options?.isDarkTheme ? \"/dark\" : \"\";\n return generateUrl(`/avatar${guestUrl}/{user}/{size}${themeUrl}`, {\n user,\n size\n });\n}\nexport {\n generateAvatarUrl,\n generateFilePath,\n generateOcsUrl,\n generateRemoteUrl,\n generateUrl,\n getAppRootUrl,\n getBaseUrl,\n getRootUrl,\n imagePath,\n linkTo\n};\n//# sourceMappingURL=index.mjs.map\n","/*! @license DOMPurify 3.4.12 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.12/LICENSE */\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = true,\n o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = true, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nconst entries = Object.entries,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nlet freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\nlet _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(func, thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n return func.apply(thisArg, args);\n };\n}\nif (!construct) {\n construct = function construct(Func) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst arrayIsArray = Array.isArray;\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst numberToString = unapply(Number.prototype.toString);\nconst booleanToString = unapply(Boolean.prototype.toString);\nconst bigintToString = typeof BigInt === 'undefined' ? null : unapply(BigInt.prototype.toString);\nconst symbolToString = typeof Symbol === 'undefined' ? null : unapply(Symbol.prototype.toString);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst objectToString = unapply(Object.prototype.toString);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(Func) {\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return construct(Func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n if (!arrayIsArray(array)) {\n return set;\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const _ref2 of entries(object)) {\n var _ref3 = _slicedToArray(_ref2, 2);\n const property = _ref3[0];\n const value = _ref3[1];\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (arrayIsArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * Convert non-node values into strings without depending on direct property access.\n *\n * @param value - The value to stringify.\n * @returns A string representation of the provided value.\n */\nfunction stringifyValue(value) {\n switch (typeof value) {\n case 'string':\n {\n return value;\n }\n case 'number':\n {\n return numberToString(value);\n }\n case 'boolean':\n {\n return booleanToString(value);\n }\n case 'bigint':\n {\n return bigintToString ? bigintToString(value) : '0';\n }\n case 'symbol':\n {\n return symbolToString ? symbolToString(value) : 'Symbol()';\n }\n case 'undefined':\n {\n return objectToString(value);\n }\n case 'function':\n case 'object':\n {\n if (value === null) {\n return objectToString(value);\n }\n const valueAsRecord = value;\n const valueToString = lookupGetter(valueAsRecord, 'toString');\n if (typeof valueToString === 'function') {\n const stringified = valueToString(valueAsRecord);\n return typeof stringified === 'string' ? stringified : objectToString(stringified);\n }\n return objectToString(value);\n }\n default:\n {\n return objectToString(value);\n }\n }\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\nfunction isRegex(value) {\n try {\n regExpTest(value, '');\n return true;\n } catch (_unused) {\n return false;\n }\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'command', 'commandfor', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dominant-baseline', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-orientation', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnalign', 'columnlines', 'columnspacing', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lquote', 'lspace', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\nconst MUSTACHE_EXPR = seal(/{{[\\w\\W]*|^[\\w\\W]*}}/g);\nconst ERB_EXPR = seal(/<%[\\w\\W]*|^[\\w\\W]*%>/g);\nconst TMPLIT_EXPR = seal(/\\${[\\w\\W]*/g);\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n// Markup-significant character probes used by _sanitizeElements.\n// Shared module-level instances are safe despite the sticky /g flags:\n// unapply() resets lastIndex for RegExp receivers before every call.\nconst ELEMENT_MARKUP_PROBE = seal(/<[/\\w!]/g);\nconst COMMENT_MARKUP_PROBE = seal(/<[/\\w]/g);\nconst FALLBACK_TAG_CLOSE = seal(/<\\/no(script|embed|frames)/i);\nconst SELF_CLOSING_TAG = seal(/\\/>/i);\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n processingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\n/**\n * Resolve a set-valued configuration option: a fresh set built from\n * cfg[key] when it is an own array property (seeded with a clone of\n * options.base when given, case-normalized via options.transform),\n * the fallback set otherwise.\n *\n * @param cfg the cloned, prototype-free configuration object\n * @param key the configuration property to read\n * @param fallback the set to use when the option is absent or not an array\n * @param options transform and optional base set to merge into\n * @returns the resolved set\n */\nconst _resolveSetOption = function _resolveSetOption(cfg, key, fallback, options) {\n return objectHasOwnProperty(cfg, key) && arrayIsArray(cfg[key]) ? addToSet(options.base ? clone(options.base) : {}, cfg[key], options.transform) : fallback;\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.4.12';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let document = window.document;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n window.DocumentFragment;\n const HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap;\n _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap;\n window.HTMLFormElement;\n const DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n const getShadowRoot = lookupGetter(ElementPrototype, 'shadowRoot');\n const getAttributes = lookupGetter(ElementPrototype, 'attributes');\n const getNodeType = Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeType') : null;\n const getNodeName = Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeName') : null;\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n // The instance's own internal Trusted Types policy. Unlike a caller-supplied\n // `TRUSTED_TYPES_POLICY`, this is created at most once — Trusted Types throws\n // on duplicate policy names — and is the only policy allowed to persist\n // across configurations and survive `clearConfig()`.\n let defaultTrustedTypesPolicy;\n let defaultTrustedTypesPolicyResolved = false;\n // Tracks whether we are already inside a call to the configured Trusted Types\n // policy (`createHTML` or `createScriptURL`). If a supplied policy callback\n // itself calls `DOMPurify.sanitize` (the cause of #1422), `sanitize` would\n // re-enter the policy and recurse until the stack overflows. We detect that\n // re-entry and throw a clear, actionable error instead. The guard is shared\n // across both callbacks, because either one re-entering `sanitize` triggers\n // the same unbounded recursion.\n let IN_TRUSTED_TYPES_POLICY = 0;\n const _assertNotInTrustedTypesPolicy = function _assertNotInTrustedTypesPolicy() {\n if (IN_TRUSTED_TYPES_POLICY > 0) {\n throw typeErrorCreate('A configured TRUSTED_TYPES_POLICY callback (createHTML or ' + 'createScriptURL) must not call DOMPurify.sanitize, as that causes ' + 'infinite recursion. Do not pass a policy whose callbacks wrap ' + 'DOMPurify as TRUSTED_TYPES_POLICY; see the \"DOMPurify and Trusted ' + 'Types\" section of the README.');\n }\n };\n const _createTrustedHTML = function _createTrustedHTML(html) {\n _assertNotInTrustedTypesPolicy();\n IN_TRUSTED_TYPES_POLICY++;\n try {\n return trustedTypesPolicy.createHTML(html);\n } finally {\n IN_TRUSTED_TYPES_POLICY--;\n }\n };\n const _createTrustedScriptURL = function _createTrustedScriptURL(scriptUrl) {\n _assertNotInTrustedTypesPolicy();\n IN_TRUSTED_TYPES_POLICY++;\n try {\n return trustedTypesPolicy.createScriptURL(scriptUrl);\n } finally {\n IN_TRUSTED_TYPES_POLICY--;\n }\n };\n // Lazily resolve (and cache) the instance's internal default policy.\n // Resolution is attempted at most once: a successful `createPolicy` cannot be\n // repeated (Trusted Types throws on duplicate names), and a failed or\n // unsupported attempt must not be retried on every parse.\n const _getDefaultTrustedTypesPolicy = function _getDefaultTrustedTypesPolicy() {\n if (!defaultTrustedTypesPolicyResolved) {\n defaultTrustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n defaultTrustedTypesPolicyResolved = true;\n }\n return defaultTrustedTypesPolicy;\n };\n const _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n const importNode = originalDocument.importNode;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const MUSTACHE_EXPR$1 = MUSTACHE_EXPR,\n ERB_EXPR$1 = ERB_EXPR,\n TMPLIT_EXPR$1 = TMPLIT_EXPR,\n DATA_ATTR$1 = DATA_ATTR,\n ARIA_ATTR$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$1 = ATTR_WHITESPACE,\n CUSTOM_ELEMENT$1 = CUSTOM_ELEMENT;\n let IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */\n const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {\n tagCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n }\n }));\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Pristine allowlist bindings captured at setConfig() time. On the\n * persistent-config path sanitize() restores the sets from these before\n * the per-walk hook clone-guard, so a hook's in-call widening cannot\n * carry across calls. Null until setConfig() is called; reset by\n * clearConfig(). */\n let SET_CONFIG_ALLOWED_TAGS = null;\n let SET_CONFIG_ALLOWED_ATTR = null;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script',\n // mirrors the selected `)\n whose queued resource event still fires in page scope after we throw.\n Clobber-safe reads; a doomed clobbered node's own attributes are\n irrelevant while its non-clobbered descendants are reached and scrubbed. */\n _neutralizeSubtree(root);\n const childNodes = getChildNodes(root);\n if (childNodes) {\n const snapshot = [];\n arrayForEach(childNodes, child => {\n arrayPush(snapshot, child);\n });\n arrayForEach(snapshot, child => {\n try {\n remove(child);\n } catch (_) {\n /* Best-effort teardown; a still-attached child is handled below */\n }\n });\n }\n const attributes = getAttributes(root);\n if (attributes) {\n for (let i = attributes.length - 1; i >= 0; --i) {\n const attribute = attributes[i];\n const name = attribute && attribute.name;\n if (typeof name === 'string') {\n try {\n root.removeAttribute(name);\n } catch (_) {\n /* Clobbered removeAttribute — ignore (fail-closed best effort) */\n }\n }\n }\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _stripDisallowedAttributes\n *\n * Removes every attribute the active configuration does not allow from a\n * single element, using the same allowlist as the main attribute pass (so\n * `on*` handlers go, but no `/^on/` blocklist is introduced). Used only to\n * neutralise nodes that are being discarded from an in-place tree.\n *\n * @param element the element to strip\n */\n const _stripDisallowedAttributes = function _stripDisallowedAttributes(element) {\n const attributes = getAttributes(element);\n if (!attributes) {\n return;\n }\n for (let i = attributes.length - 1; i >= 0; --i) {\n const attribute = attributes[i];\n const name = attribute && attribute.name;\n if (typeof name !== 'string' || ALLOWED_ATTR[transformCaseFunc(name)]) {\n continue;\n }\n try {\n element.removeAttribute(name);\n } catch (_) {\n /* Clobbered removeAttribute on a doomed node — ignore */\n }\n }\n };\n /**\n * _neutralizeSubtree\n *\n * Completes the audit-5 F1 fix across every removal path. The KEEP_CONTENT\n * move-hoist neutralises only disallowed-tag removals; clobber, mXSS-canary,\n * namespace, comment, processing-instruction and KEEP_CONTENT:false removals\n * all drop their subtree wholesale via `_forceRemove`. On the IN_PLACE path\n * those dropped nodes are detached from the caller's LIVE tree but a\n * handler-bearing original among them (an ``/`