From 7c72bdf33711f0571d7c897736da902c7425870b Mon Sep 17 00:00:00 2001 From: codyllord Date: Wed, 14 Oct 2026 16:48:03 +0000 Subject: [PATCH 1/2] fix(ai-usage): resolve system MCP services and admin users in MCP panels The External MCP traffic panels showed "service #37" for the system MCP service and "user #N" for admins. The service lookup filtered on type = mcp only, so system_mcp services never resolved; the user lookup only read /system/user, and most MCP traffic is admins signing in via OAuth from Claude Desktop and friends. Include system_mcp in the service filter and fetch /system/admin alongside /system/user, treating a failed admin lookup (restricted admins under df-compliance) as no names rather than an error. --- .../adf-ai-usage/services/usage.service.ts | 43 +++++++++++-------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/src/app/adf-ai-usage/services/usage.service.ts b/src/app/adf-ai-usage/services/usage.service.ts index ec4b5b82..3fb1fd33 100644 --- a/src/app/adf-ai-usage/services/usage.service.ts +++ b/src/app/adf-ai-usage/services/usage.service.ts @@ -433,7 +433,7 @@ export class UsageService { params: { fields: 'id,name,label,type', filter: - '(type = "ai_connection") or (type = "ai_chat") or (type = "mcp")', + '(type = "ai_connection") or (type = "ai_chat") or (type = "mcp") or (type = "system_mcp")', }, context: silent(), }) @@ -448,25 +448,30 @@ export class UsageService { } private listUsers(): Observable> { - // /api/v2/system/admin requires root-admin and is gated by df-compliance - // (returns 500/403 for restricted admins). We only fetch /system/user - // here — admin names not appearing in the dashboard is acceptable; the - // by_user breakdown falls back to "user #N". - return this.http - .get<{ resource: UserLookupRow[] }>(`${BASE_URL}/system/user`, { - params: { fields: 'id,name,username,email' }, - context: silent(), - }) - .pipe( - map(res => { - const m = new Map(); - (res.resource ?? []).forEach(u => - m.set(u.id, u.name || u.username || u.email || `user #${u.id}`) - ); - return m; - }), - catchError(() => of(new Map())) + // MCP traffic is mostly admins (OAuth sign-in from Claude Desktop etc.), + // and admins are not in /system/user. /system/admin needs root-admin and + // is gated by df-compliance (500/403 for restricted admins), so fetch both + // and treat a failed admin lookup as "no names" rather than an error. + const toMap = (rows: UserLookupRow[] | undefined) => { + const m = new Map(); + (rows ?? []).forEach(u => + m.set(u.id, u.name || u.username || u.email || `user #${u.id}`) ); + return m; + }; + const fetch = (path: 'user' | 'admin') => + this.http + .get<{ resource: UserLookupRow[] }>(`${BASE_URL}/system/${path}`, { + params: { fields: 'id,name,username,email' }, + context: silent(), + }) + .pipe( + map(res => toMap(res.resource)), + catchError(() => of(new Map())) + ); + return forkJoin([fetch('user'), fetch('admin')]).pipe( + map(([users, admins]) => new Map([...users, ...admins])) + ); } private listRoles(): Observable> { From 80335f3cebf47a5496336944e319fe6c16f1cb22 Mon Sep 17 00:00:00 2001 From: codyllord Date: Wed, 14 Oct 2026 16:52:39 +0000 Subject: [PATCH 2/2] chore(ai-usage): rebuild dist --- dist/common.8add9df0f3c751ac.js | 1 - dist/common.bf1766ef303ad096.js | 1 + dist/index.html | 2 +- ...{runtime.a3b9d0562d04d59d.js => runtime.70b3ff8deb75852a.js} | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 dist/common.8add9df0f3c751ac.js create mode 100644 dist/common.bf1766ef303ad096.js rename dist/{runtime.a3b9d0562d04d59d.js => runtime.70b3ff8deb75852a.js} (71%) diff --git a/dist/common.8add9df0f3c751ac.js b/dist/common.8add9df0f3c751ac.js deleted file mode 100644 index 43f0380a..00000000 --- a/dist/common.8add9df0f3c751ac.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdf_admin_interface=self.webpackChunkdf_admin_interface||[]).push([[2076],{70491:(y,h,n)=>{n.d(h,{s:()=>u});var _=n(1843),e=n(62572),s=n(68686);let u=(()=>{class i{constructor(){this.http=(0,_.WQX)(e.Qq)}listChatServices(){return this.http.get(`${s.C}/system/service`,{params:{filter:'type = "ai_chat"',fields:"id,name,label,type,description,is_active",sort:"name"}})}listSessions(o,t="active"){return this.http.get(`${s.C}/${o}/session`,{params:{status:t}})}getSession(o,t,l=200){return this.http.get(`${s.C}/${o}/session/${t}`,{params:{message_limit:String(l)}})}createSession(o,t={}){return this.http.post(`${s.C}/${o}/session`,t)}sendMessage(o,t,l){return this.http.post(`${s.C}/${o}/session/${t}`,{message:l})}deleteSession(o,t){return this.http.delete(`${s.C}/${o}/session/${t}`)}static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275prov=_.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}}return i})()},66460:(y,h,n)=>{n.d(h,{D_:()=>d,hM:()=>r,n:()=>p});var _=n(62572),e=n(1843),s=n(86606),u=n(73151),i=n(52483),D=n(12324),o=n(29810),t=n(68686),l=n(48444);function r(){return{provider:[],service_id:[],model:[],user_id:[],role_id:[],app_id:[],resource:[],status:[]}}let d=(()=>{class C{constructor(){this.http=(0,e.WQX)(_.Qq)}loadAll(f,c={provider:[],service_id:[],model:[],user_id:[],role_id:[],app_id:[],resource:[],status:[]}){const m="all"===f?"3650d":f;let v=(new _.Nl).set("period",m).set("compare","1");return Object.keys(c).forEach(E=>{c[E].forEach(P=>{v=v.append(E,String(P))})}),(0,s.p)({raw:this.http.get("/_internal/ai/usage",{params:v,context:(0,l.Ku)()}).pipe((0,i.W)(()=>(0,u.of)({period:m,since:new Date(Date.now()-6048e5).toISOString(),total_requests:0,total_input_tokens:0,total_output_tokens:0,total_cost_usd:0,errors:0,avg_latency_ms:0,latency_p50_ms:0,latency_p95_ms:0,latency_p99_ms:0,partials:0,by_service:[],by_user:[],by_role:[],by_app:[],by_provider:[],by_model:[],by_resource:[],by_error_class:[],series:[],series_by_model:[],series_by_user:[],series_by_app:[],series_by_provider:[],most_expensive_calls:[],filters:{},budgets:[],default_rates:{}}))),mcp:this.http.get("/_internal/ai/mcp-usage",{params:v,context:(0,l.Ku)()}).pipe((0,i.W)(()=>(0,u.of)({period:m,since:new Date(Date.now()-6048e5).toISOString(),total_requests:0,total_bytes_in:0,total_bytes_out:0,errors:0,avg_duration_ms:0,by_service:[],by_user:[],by_role:[],by_app:[],by_client:[],by_tool:[],by_method:[],series:[]}))),services:this.getServicesLookup(),users:this.getUsersLookup(),roles:this.getRolesLookup(),apps:this.getAppsLookup()}).pipe((0,D.T)(E=>E))}loadWindow(f,c={}){let m=(new _.Nl).set("period",f);return null!=c.app_id&&(m=m.set("app_id",String(c.app_id))),null!=c.service_id&&(m=m.set("service_id",String(c.service_id))),this.http.get("/_internal/ai/usage",{params:m,context:(0,l.Ku)()}).pipe((0,i.W)(()=>(0,u.of)(null)))}getServicesLookup(){return this.servicesLookup$??=this.listServices().pipe((0,o.t)(1)),this.servicesLookup$}getUsersLookup(){return this.usersLookup$??=this.listUsers().pipe((0,o.t)(1)),this.usersLookup$}getRolesLookup(){return this.rolesLookup$??=this.listRoles().pipe((0,o.t)(1)),this.rolesLookup$}getAppsLookup(){return this.appsLookup$??=this.listApps().pipe((0,o.t)(1)),this.appsLookup$}listServices(){return this.http.get(`${t.C}/system/service`,{params:{fields:"id,name,label,type",filter:'(type = "ai_connection") or (type = "ai_chat") or (type = "mcp")'},context:(0,l.Ku)()}).pipe((0,D.T)(f=>{const c=new Map;return(f.resource??[]).forEach(m=>c.set(m.id,m)),c}),(0,i.W)(()=>(0,u.of)(new Map)))}listUsers(){return this.http.get(`${t.C}/system/user`,{params:{fields:"id,name,username,email"},context:(0,l.Ku)()}).pipe((0,D.T)(f=>{const c=new Map;return(f.resource??[]).forEach(m=>c.set(m.id,m.name||m.username||m.email||`user #${m.id}`)),c}),(0,i.W)(()=>(0,u.of)(new Map)))}listRoles(){return this.http.get(`${t.C}/system/role`,{params:{fields:"id,name"},context:(0,l.Ku)()}).pipe((0,D.T)(f=>{const c=new Map;return(f.resource??[]).forEach(m=>c.set(m.id,m.name)),c}),(0,i.W)(()=>(0,u.of)(new Map)))}listApps(){return this.http.get(`${t.C}/system/app`,{params:{fields:"id,name"},context:(0,l.Ku)()}).pipe((0,D.T)(f=>{const c=new Map;return(f.resource??[]).forEach(m=>c.set(m.id,m.name)),c}),(0,i.W)(()=>(0,u.of)(new Map)))}static{this.\u0275fac=function(c){return new(c||C)}}static{this.\u0275prov=e.jDH({token:C,factory:C.\u0275fac,providedIn:"root"})}}return C})();function p(C){if("number"==typeof C)return C;if("string"==typeof C){const g=Number(C);return Number.isFinite(g)?g:0}return 0}},54762:(y,h,n)=>{n.d(h,{Kp:()=>u,Om:()=>i,a3:()=>s,ap:()=>_,az:()=>D,eS:()=>e});const _={anthropic:{provider:"anthropic",inputPer1k:.003,outputPer1k:.015},openai:{provider:"openai",inputPer1k:.0025,outputPer1k:.01},xai:{provider:"xai",inputPer1k:.002,outputPer1k:.01},ollama:{provider:"ollama",inputPer1k:0,outputPer1k:0},openai_compatible:{provider:"openai_compatible",inputPer1k:0,outputPer1k:0}};function e(o){if(!o)return _;const t={};for(const[l,r]of Object.entries(o))t[l]={provider:l,inputPer1k:r.input_per_1k,outputPer1k:r.output_per_1k};return{..._,...t}}function s(o,t,l){return o/1e3*l.inputPer1k+t/1e3*l.outputPer1k}const u=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:2}),i=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:4});function D(o){return Number.isFinite(o)?o<.01&&o>0?"<$0.01":(o<1?i:u).format(o):"$0.00"}},4511:(y,h,n)=>{n.d(h,{F:()=>_});const _={Database:[{endpoint:"/_schema",title:"View Available Schemas",description:"This command fetches a list of schemas from your connected database"},{endpoint:"/_table",title:"View Tables in Your Database",description:"This command lists all tables in your database"}],File:[{endpoint:"/",title:"View Available Folders",description:"This command fetches a list of folders from your connected file storage"}]}},23667:(y,h,n)=>{n.d(h,{d:()=>l});var _=n(52483),e=n(73151),s=n(12324),u=n(29810),i=n(75066),D=n(16994),o=n(1843);n(69099);let l=(()=>{class r{constructor(d){this.roleService=d}getContext(){return this.context$||(this.context$=this.roleService.getAll({related:"role_service_access_by_role_id",fields:"id,name,is_active",limit:1e3,showSpinner:!1,errorHandling:"toast-off"}).pipe((0,_.W)(()=>(0,e.of)({resource:[]})),(0,s.T)(d=>this.buildContext(d.resource??[])),(0,u.t)(1))),this.context$}reset(){this.context$=void 0}buildContext(d){const p=new Set;let C=!1;for(const g of d)if(!1!==g?.isActive)for(const f of g?.roleServiceAccessByRoleId??[])f?.verbMask&&(null==f.serviceId?C=!0:p.add(f.serviceId));return{grantedServiceIds:p,hasGlobalGrant:C}}withProbe(d,p){const C=(d?.rules??[]).filter(g=>"cannotConnect"!==g.id);return p?{level:"danger",rules:[{id:"cannotConnect",level:"danger"},...C]}:{level:C.some(g=>"danger"===g.level)?"danger":C.length?"warning":"success",rules:C}}derive(d,p){const C=[];return!p.hasGlobalGrant&&!p.grantedServiceIds.has(d.id)&&C.push({id:"noAccess",level:"danger",fix:["/",D.b.API_CONNECTIONS,D.b.ROLE_BASED_ACCESS,D.b.CREATE]}),!0===d.deprecated&&C.push({id:"deprecated",level:"danger"}),{level:C.some(f=>"danger"===f.level)?"danger":C.length?"warning":"success",rules:C}}static{this.\u0275fac=function(p){return new(p||r)(o.KVO(i.h1))}}static{this.\u0275prov=o.jDH({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})()},43521:(y,h,n)=>{n.d(h,{j:()=>d});var _=n(73151),e=n(12324),s=n(52483),u=n(28930),i=n(29810),D=n(68686),o=n(56579),t=n(48444),l=n(4511),r=n(1843),a=n(62572);let d=(()=>{class p{constructor(g){this.http=g,this.cache=new Map}endpointFor(g){return g?l.F[g]?.[0]?.endpoint:void 0}probe(g,f){const c=this.endpointFor(f);if(!g||!c)return(0,_.of)({state:"unsupported"});const m=`${g}:${c}`;let v=this.cache.get(m);if(!v){const E=`${D.C}/${g}${c}`;v=this.http.get(E,{context:(0,t.PH)()}).pipe((0,e.T)(()=>({state:"ok"})),(0,s.W)(M=>(0,_.of)({state:"failed",error:(0,o.cQ)(M,{url:E,method:"GET"})})),(0,u.Z)({state:"checking"}),(0,i.t)(1)),this.cache.set(m,v)}return v}refresh(g){if(g)for(const f of Array.from(this.cache.keys()))f.startsWith(`${g}:`)&&this.cache.delete(f);else this.cache.clear()}static{this.\u0275fac=function(f){return new(f||p)(r.KVO(a.Qq))}}static{this.\u0275prov=r.jDH({token:p,factory:p.\u0275fac,providedIn:"root"})}}return p})()},17291:(y,h,n)=>{n.d(h,{B:()=>d});var _=n(68660),e=n(78227),s=n(62633),u=n(54688),i=n(453),D=n(31147),o=n(18331),t=n(1843);function l(p,C){1&p&&(t.j41(0,"mat-error"),t.EFF(1),t.nI1(2,"transloco"),t.k0s()),2&p&&(t.R7$(1),t.SpI(" ",t.bMT(2,1,"validation.required")," "))}function r(p,C){1&p&&(t.j41(0,"mat-error"),t.EFF(1),t.nI1(2,"transloco"),t.k0s()),2&p&&(t.R7$(1),t.SpI(" ",t.bMT(2,1,"validation.nameExists")," "))}function a(p,C){1&p&&(t.j41(0,"mat-error"),t.EFF(1),t.nI1(2,"transloco"),t.k0s()),2&p&&(t.R7$(1),t.SpI(" ",t.bMT(2,1,"validation.sameAsOriginal")," "))}let d=(()=>{class p{constructor(g,f){this.dialogRef=g,this.data=f,this.nameControl=new e.MJ("",[e.k0.required,this.uniqueNameValidator.bind(this)])}uniqueNameValidator(g){return this.data.existingNames&&this.data.existingNames.includes(g.value)?{nameExists:!0}:g.value===this.data.originalName?{sameName:!0}:null}onDuplicate(){this.nameControl.valid&&this.dialogRef.close(this.nameControl.value)}onCancel(){this.dialogRef.close(null)}static{this.\u0275fac=function(f){return new(f||p)(t.rXU(s.CP),t.rXU(s.Vh))}}static{this.\u0275cmp=t.VBU({type:p,selectors:[["df-duplicate-dialog"]],standalone:!0,features:[t.aNF],decls:22,vars:21,consts:[["mat-dialog-title",""],["mat-dialog-content",""],["appearance","outline",1,"full-width"],["matInput","","cdkFocusInitial","",3,"formControl","placeholder"],[4,"ngIf"],["mat-dialog-actions",""],["mat-flat-button","","type","button",1,"cancel-btn",3,"click"],["mat-flat-button","","type","button","color","primary",1,"save-btn",3,"disabled","click"]],template:function(f,c){1&f&&(t.j41(0,"h1",0),t.EFF(1),t.nI1(2,"transloco"),t.k0s(),t.j41(3,"div",1)(4,"p"),t.EFF(5),t.nI1(6,"transloco"),t.k0s(),t.j41(7,"mat-form-field",2)(8,"mat-label"),t.EFF(9),t.nI1(10,"transloco"),t.k0s(),t.nrm(11,"input",3),t.DNE(12,l,3,3,"mat-error",4),t.DNE(13,r,3,3,"mat-error",4),t.DNE(14,a,3,3,"mat-error",4),t.k0s()(),t.j41(15,"div",5)(16,"button",6),t.bIt("click",function(){return c.onCancel()}),t.EFF(17),t.nI1(18,"transloco"),t.k0s(),t.j41(19,"button",7),t.bIt("click",function(){return c.onDuplicate()}),t.EFF(20),t.nI1(21,"transloco"),t.k0s()()),2&f&&(t.R7$(1),t.JRh(t.bMT(2,11,c.data.title)),t.R7$(4),t.JRh(t.bMT(6,13,c.data.message)),t.R7$(4),t.JRh(t.bMT(10,15,c.data.label)),t.R7$(2),t.Y8G("formControl",c.nameControl)("placeholder",c.data.originalName),t.R7$(1),t.Y8G("ngIf",c.nameControl.hasError("required")),t.R7$(1),t.Y8G("ngIf",c.nameControl.hasError("nameExists")),t.R7$(1),t.Y8G("ngIf",c.nameControl.hasError("sameName")),t.R7$(3),t.SpI(" ",t.bMT(18,17,"cancel")," "),t.R7$(2),t.Y8G("disabled",!c.nameControl.valid),t.R7$(1),t.SpI(" ",t.bMT(21,19,"duplicate")," "))},dependencies:[s.hM,s.BI,s.Yi,s.E7,_.Hl,_.$z,u.RG,u.rl,u.nJ,u.TL,i.fS,i.fg,e.X1,e.me,e.BC,e.l_,D.Kj,o.bT],styles:["[_nghost-%COMP%]{display:block;background:var(--df-surface);color:var(--df-text);--mdc-dialog-subhead-color: var(--df-text);--mdc-dialog-supporting-text-color: var(--df-text-2)}mat-dialog-actions[_ngcontent-%COMP%], [mat-dialog-actions][_ngcontent-%COMP%]{border-top:1px solid var(--df-border-2)}.full-width[_ngcontent-%COMP%]{width:100%}"]})}}return p})()},81137:(y,h,n)=>{n.d(h,{K:()=>o});var _=n(18331),e=n(1843);function s(t,l){if(1&t&&(e.j41(0,"span",9),e.EFF(1),e.k0s()),2&t){const r=e.XpG();e.R7$(1),e.JRh(r.eyebrow)}}function u(t,l){if(1&t&&(e.j41(0,"p",10),e.EFF(1),e.k0s()),2&t){const r=e.XpG();e.R7$(1),e.SpI(" ",r.description," ")}}const i=[[["","pageHeaderBreadcrumb",""]],[["","pageHeaderActions",""]],[["","pageHeaderTabs",""]]],D=["[pageHeaderBreadcrumb]","[pageHeaderActions]","[pageHeaderTabs]"];let o=(()=>{class t{constructor(){this.title=""}static{this.\u0275fac=function(a){return new(a||t)}}static{this.\u0275cmp=e.VBU({type:t,selectors:[["df-page-header"]],inputs:{eyebrow:"eyebrow",title:"title",description:"description"},standalone:!0,features:[e.aNF],ngContentSelectors:D,decls:13,vars:3,consts:[[1,"page-header"],[1,"page-header__inner"],[1,"page-header__bar"],[1,"page-header__heading"],["class","page-header__eyebrow",4,"ngIf"],[1,"page-header__title"],["class","page-header__description",4,"ngIf"],[1,"page-header__actions"],[1,"page-header__tabs"],[1,"page-header__eyebrow"],[1,"page-header__description"]],template:function(a,d){1&a&&(e.NAR(i),e.j41(0,"header",0)(1,"div",1),e.SdG(2),e.j41(3,"div",2)(4,"div",3),e.DNE(5,s,2,1,"span",4),e.j41(6,"h1",5),e.EFF(7),e.k0s(),e.DNE(8,u,2,1,"p",6),e.k0s(),e.j41(9,"div",7),e.SdG(10,1),e.k0s()(),e.j41(11,"div",8),e.SdG(12,2),e.k0s()()()),2&a&&(e.R7$(5),e.Y8G("ngIf",d.eyebrow),e.R7$(2),e.JRh(d.title),e.R7$(1),e.Y8G("ngIf",d.description))},dependencies:[_.bT],styles:[".page-header[_ngcontent-%COMP%]{padding:var(--df-space-6) var(--df-page-gutter) 0}.page-header__inner[_ngcontent-%COMP%]{border-bottom:1px solid var(--df-border);margin:0 auto;max-width:var(--df-content-max);padding-bottom:var(--df-space-5)}.page-header__bar[_ngcontent-%COMP%]{align-items:flex-start;display:flex;gap:var(--df-space-5);justify-content:space-between}.page-header__heading[_ngcontent-%COMP%]{min-width:0}.page-header__eyebrow[_ngcontent-%COMP%]{color:var(--df-text-muted);display:block;font-size:var(--df-font-size-xs);font-weight:var(--df-font-weight-medium);letter-spacing:var(--df-tracking-eyebrow);margin-bottom:var(--df-space-2);text-transform:uppercase}.page-header__title[_ngcontent-%COMP%]{color:var(--df-text);font-size:var(--df-font-size-2xl);font-weight:var(--df-font-weight-heading);letter-spacing:var(--df-tracking-tight);line-height:var(--df-lh-tight);margin:0}.page-header__description[_ngcontent-%COMP%]{color:var(--df-text-2);font-size:var(--df-font-size-sm);line-height:var(--df-lh-base);margin:var(--df-space-2) 0 0;max-width:68ch}.page-header__actions[_ngcontent-%COMP%]{align-items:center;display:flex;flex-shrink:0;flex-wrap:wrap;gap:var(--df-space-2);justify-content:flex-end}.page-header__tabs[_ngcontent-%COMP%]:has( > *)[_ngcontent-%COMP%]{margin-top:var(--df-space-4)}@media (max-width: 820px){.page-header__bar[_ngcontent-%COMP%]{flex-direction:column}.page-header__actions[_ngcontent-%COMP%]{justify-content:flex-start}}"],changeDetection:0})}}return t})()},58359:(y,h,n)=>{n.d(h,{C:()=>o});var _=n(31147),e=n(1843),s=n(89905),u=n(16396),i=n(35877);const D=["calendlyWidget"];let o=(()=>{class t{constructor(r,a,d){this.userDataService=r,this.systemConfigService=a,this.dfPaywallService=d}ngOnInit(){const a=this.userDataService.userData?.email,d=this.systemConfigService?.environment?.client?.ipAddress;this.dfPaywallService.trackPaywallHit(a,d,this.serviceName)}ngAfterViewInit(){window.Calendly.initInlineWidget({url:"https://calendly.com/dreamfactory-platform/unlock-all-features",parentElement:this.calendlyWidget.nativeElement,autoLoad:!1})}static{this.\u0275fac=function(a){return new(a||t)(e.rXU(s.T),e.rXU(u.f),e.rXU(i.o))}}static{this.\u0275cmp=e.VBU({type:t,selectors:[["df-paywall"]],viewQuery:function(a,d){if(1&a&&e.GBs(D,5),2&a){let p;e.mGM(p=e.lsd())&&(d.calendlyWidget=p.first)}},inputs:{serviceName:"serviceName"},standalone:!0,features:[e.aNF],decls:35,vars:27,consts:[[1,"paywall-container"],[1,"details-section"],[1,"info-columns"],[1,"info-column"],[3,"innerHTML"],[1,"calendly-inline-widget"],["calendlyWidget",""],[1,"paywall-contact"],["href","tel:+1 415-993-5877"],["href","mailto:info@dreamfactory.com"]],template:function(a,d){1&a&&(e.j41(0,"div",0)(1,"h2"),e.EFF(2),e.nI1(3,"transloco"),e.k0s(),e.j41(4,"h2"),e.EFF(5),e.nI1(6,"transloco"),e.k0s(),e.j41(7,"div",1)(8,"div",2)(9,"div",3)(10,"h4"),e.EFF(11),e.nI1(12,"transloco"),e.k0s(),e.nrm(13,"p",4),e.nI1(14,"transloco"),e.k0s(),e.j41(15,"div",3)(16,"h4"),e.EFF(17),e.nI1(18,"transloco"),e.k0s(),e.j41(19,"p"),e.EFF(20),e.nI1(21,"transloco"),e.k0s()()()(),e.j41(22,"h2"),e.EFF(23),e.nI1(24,"transloco"),e.k0s()(),e.nrm(25,"div",5,6),e.j41(27,"h3",7)(28,"a",8),e.EFF(29),e.nI1(30,"transloco"),e.k0s(),e.EFF(31," | "),e.j41(32,"a",9),e.EFF(33),e.nI1(34,"transloco"),e.k0s()()),2&a&&(e.R7$(2),e.JRh(e.bMT(3,9,"paywall.header")),e.R7$(3),e.JRh(e.bMT(6,11,"paywall.subheader")),e.R7$(6),e.JRh(e.bMT(12,13,"paywall.hostedTrial")),e.R7$(2),e.Y8G("innerHTML",e.bMT(14,15,"paywall.bookTime"),e.npT),e.R7$(4),e.JRh(e.bMT(18,17,"paywall.learnMoreTitle")),e.R7$(3),e.JRh(e.bMT(21,19,"paywall.gain")),e.R7$(3),e.JRh(e.bMT(24,21,"paywall.speakToHuman")),e.R7$(6),e.SpI("",e.bMT(30,23,"phone"),": +1 415-993-5877"),e.R7$(4),e.SpI("",e.bMT(34,25,"email"),": info@dreamfactory.com"))},dependencies:[_.Kj],styles:[".paywall-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;max-width:1200px;margin:0 auto;padding:20px}.calendly-inline-widget[_ngcontent-%COMP%]{min-width:320px;width:100%;height:700px;margin:20px 0}.details-section[_ngcontent-%COMP%]{margin:32px 0;max-width:690px;width:100%;background:var(--df-surface);border:1px solid var(--df-border);border-radius:var(--df-radius);padding:20px 24px}.info-column[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{color:var(--df-text-muted);font-size:11px;font-weight:600;letter-spacing:.06em;margin:0 0 8px;text-transform:uppercase}.info-column[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--df-text-2);font-size:1.4rem;line-height:1.5;margin:0}.info-columns[_ngcontent-%COMP%]{display:flex;gap:32px;justify-content:space-between}@media (max-width: 768px){.info-columns[_ngcontent-%COMP%]{flex-direction:column}}.info-column[_ngcontent-%COMP%]{flex:1;min-width:0}.paywall-contact[_ngcontent-%COMP%]{width:100%;text-align:center;padding:32px 0;margin-top:20px}"]})}}return t})()},1803:(y,h,n)=>{n.d(h,{N:()=>c});var _=n(21406),e=n(18331),s=n(78227),u=n(54688),i=n(91900),D=n(31147),o=n(98337),t=n(54342),l=n(94093),r=n(97828),a=n(1843),d=n(19206),p=n(42250);function C(m,v){if(1&m&&(a.j41(0,"mat-label"),a.EFF(1),a.k0s()),2&m){const E=a.XpG();a.R7$(1),a.JRh(E.schema.label)}}function g(m,v){if(1&m&&(a.j41(0,"mat-option",5),a.EFF(1),a.k0s()),2&m){const E=v.$implicit;a.Y8G("value",E.value),a.R7$(1),a.SpI(" ",E.label," ")}}function f(m,v){if(1&m&&a.nrm(0,"fa-icon",6),2&m){const E=a.XpG();a.Y8G("icon",E.faCircleInfo)("matTooltip",E.schema.description)}}let c=class b{constructor(v,E){this.controlDir=v,this.themeService=E,this.type="verb",this.showLabel=!0,this.faCircleInfo=l.mEO,this.control=new s.MJ,this.verbs=[{value:1,altValue:"GET",label:(0,D.Tl)("verbs.get")},{value:2,altValue:"POST",label:(0,D.Tl)("verbs.post")},{value:4,altValue:"PUT",label:(0,D.Tl)("verbs.put")},{value:8,altValue:"PATCH",label:(0,D.Tl)("verbs.patch")},{value:16,altValue:"DELETE",label:(0,D.Tl)("verbs.delete")}],this.isDarkMode=this.themeService.darkMode$,v.valueAccessor=this}ngDoCheck(){this.controlDir.control instanceof s.MJ&&this.controlDir.control.hasValidator(s.k0.required)&&this.control.addValidators(s.k0.required)}writeValue(v){if(v)if("number"===this.type&&"number"==typeof v){const E=this.verbs.filter(M=>(v&M.value)===M.value).map(M=>M.value);this.control.setValue(E,{emitEvent:!1})}else this.control.setValue("verb"===this.type&&"string"==typeof v?this.verbs.find(E=>E.altValue===v)?.value??"":v.map(E=>this.verbs.find(M=>M.altValue===E)?.value??0),{emitEvent:!1})}registerOnChange(v){this.onChange=v,this.control.valueChanges.subscribe(E=>{const M="number"===this.type?(E||[]).reduce((P,O)=>P|O,0):"verb_multiple"===this.type?(E||[]).map(P=>this.verbs.find(O=>O.value===P)?.altValue??""):this.verbs.find(P=>P.value===E)?.altValue??"";this.onChange(M)})}registerOnTouched(v){this.onTouched=v}setDisabledState(v){v?this.control.disable():this.control.enable()}static{this.\u0275fac=function(E){return new(E||b)(a.rXU(s.vO,2),a.rXU(d.n))}}static{this.\u0275cmp=a.VBU({type:b,selectors:[["df-verb-picker"]],inputs:{type:"type",schema:"schema",showLabel:"showLabel"},standalone:!0,features:[a.aNF],decls:6,vars:6,consts:[["subscriptSizing","dynamic","appearance","outline"],[4,"ngIf"],[3,"formControl","multiple"],[3,"value",4,"ngFor","ngForOf"],["class","tool-tip-trigger","matSuffix","",3,"icon","matTooltip",4,"ngIf"],[3,"value"],["matSuffix","",1,"tool-tip-trigger",3,"icon","matTooltip"]],template:function(E,M){1&E&&(a.j41(0,"div")(1,"mat-form-field",0),a.DNE(2,C,2,1,"mat-label",1),a.j41(3,"mat-select",2),a.DNE(4,g,2,2,"mat-option",3),a.k0s(),a.DNE(5,f,1,2,"fa-icon",4),a.k0s()()),2&E&&(a.R7$(2),a.Y8G("ngIf",M.showLabel),a.R7$(1),a.Y8G("formControl",M.control)("multiple","verb_multiple"===M.type||"number"===M.type),a.BMQ("aria-label",M.schema.label),a.R7$(1),a.Y8G("ngForOf",M.verbs),a.R7$(1),a.Y8G("ngIf",M.schema.description))},dependencies:[i.Ve,u.rl,u.nJ,u.yw,i.VO,p.wT,u.RG,s.X1,s.BC,s.l_,e.pM,e.bT,o.uc,o.oV,t.dX,t.aY],encapsulation:2})}};c=(0,_.Cg)([(0,r.d)({checkProperties:!0})],c)},89087:(y,h,n)=>{n.d(h,{l:()=>_});const _=["csv","json","xml"]},92084:(y,h,n)=>{n.d(h,{K:()=>_});const _=[{columnDef:"active",cell:e=>e.active,header:"active"},{columnDef:"email",cell:e=>e.email,header:"email"},{columnDef:"displayName",cell:e=>e.displayName,header:"name"},{columnDef:"firstName",cell:e=>e.firstName,header:"firstName"},{columnDef:"lastName",cell:e=>e.lastName,header:"lastName"},{columnDef:"registration",cell:e=>e.registration,header:"registration"},{columnDef:"actions"}]},68788:(y,h,n)=>{n.d(h,{M:()=>u});var _=n(85390),e=n(1843);const s="currentServiceId";let u=(()=>{class i{constructor(){const o=localStorage.getItem(s);this.currentServiceId=new _.t(o?parseInt(o,10):-1)}setCurrentServiceId(o){localStorage.setItem(s,o.toString()),this.currentServiceId.next(o)}getCurrentServiceId(){return this.currentServiceId.asObservable()}clearCurrentServiceId(){localStorage.removeItem(s),this.currentServiceId.next(-1)}static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275prov=e.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}}return i})()},43015:(y,h,n)=>{n.d(h,{X:()=>e});var _=n(18724);function e(u,i){return s.apply(this,arguments)}function s(){return(s=(0,_.A)(function*(u,i){const o=(new TextEncoder).encode(`${u}${i}${Date.now()}`),t=yield crypto.subtle.digest("SHA-256",o);return Array.from(new Uint8Array(t)).map(a=>a.toString(16).padStart(2,"0")).join("")})).apply(this,arguments)}},37530:(y,h,n)=>{function _(e){if(e.value.length>0)try{JSON.parse(e.value)}catch{return{jsonInvalid:!0}}return null}n.d(h,{V:()=>_})},36661:(y,h,n)=>{n.d(h,{_:()=>s});var _=n(90308),e=n(13665);function s(u,i){const D="object"==typeof i;return new Promise((o,t)=>{const l=new e.Ms({next:r=>{o(r),l.unsubscribe()},error:t,complete:()=>{D?o(i.defaultValue):t(new _.G)}});u.subscribe(l)})}},60875:(y,h,n)=>{n.d(h,{B0:()=>u});var _=n(18331),e=n(1843);class s{constructor(l,r){this._document=r;const a=this._textarea=this._document.createElement("textarea"),d=a.style;d.position="fixed",d.top=d.opacity="0",d.left="-999em",a.setAttribute("aria-hidden","true"),a.value=l,a.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(a)}copy(){const l=this._textarea;let r=!1;try{if(l){const a=this._document.activeElement;l.select(),l.setSelectionRange(0,l.value.length),r=this._document.execCommand("copy"),a&&a.focus()}}catch{}return r}destroy(){const l=this._textarea;l&&(l.remove(),this._textarea=void 0)}}let u=(()=>{class t{constructor(r){this._document=r}copy(r){const a=this.beginCopy(r),d=a.copy();return a.destroy(),d}beginCopy(r){return new s(r,this._document)}static{this.\u0275fac=function(a){return new(a||t)(e.KVO(_.qQ))}}static{this.\u0275prov=e.jDH({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})()}}]); \ No newline at end of file diff --git a/dist/common.bf1766ef303ad096.js b/dist/common.bf1766ef303ad096.js new file mode 100644 index 00000000..97a356e6 --- /dev/null +++ b/dist/common.bf1766ef303ad096.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdf_admin_interface=self.webpackChunkdf_admin_interface||[]).push([[2076],{70491:(y,E,n)=>{n.d(E,{s:()=>u});var _=n(1843),e=n(62572),s=n(68686);let u=(()=>{class i{constructor(){this.http=(0,_.WQX)(e.Qq)}listChatServices(){return this.http.get(`${s.C}/system/service`,{params:{filter:'type = "ai_chat"',fields:"id,name,label,type,description,is_active",sort:"name"}})}listSessions(o,t="active"){return this.http.get(`${s.C}/${o}/session`,{params:{status:t}})}getSession(o,t,l=200){return this.http.get(`${s.C}/${o}/session/${t}`,{params:{message_limit:String(l)}})}createSession(o,t={}){return this.http.post(`${s.C}/${o}/session`,t)}sendMessage(o,t,l){return this.http.post(`${s.C}/${o}/session/${t}`,{message:l})}deleteSession(o,t){return this.http.delete(`${s.C}/${o}/session/${t}`)}static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275prov=_.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}}return i})()},66460:(y,E,n)=>{n.d(E,{D_:()=>d,hM:()=>r,n:()=>p});var _=n(62572),e=n(1843),s=n(86606),u=n(73151),i=n(52483),C=n(12324),o=n(29810),t=n(68686),l=n(48444);function r(){return{provider:[],service_id:[],model:[],user_id:[],role_id:[],app_id:[],resource:[],status:[]}}let d=(()=>{class D{constructor(){this.http=(0,e.WQX)(_.Qq)}loadAll(g,c={provider:[],service_id:[],model:[],user_id:[],role_id:[],app_id:[],resource:[],status:[]}){const m="all"===g?"3650d":g;let f=(new _.Nl).set("period",m).set("compare","1");return Object.keys(c).forEach(h=>{c[h].forEach(P=>{f=f.append(h,String(P))})}),(0,s.p)({raw:this.http.get("/_internal/ai/usage",{params:f,context:(0,l.Ku)()}).pipe((0,i.W)(()=>(0,u.of)({period:m,since:new Date(Date.now()-6048e5).toISOString(),total_requests:0,total_input_tokens:0,total_output_tokens:0,total_cost_usd:0,errors:0,avg_latency_ms:0,latency_p50_ms:0,latency_p95_ms:0,latency_p99_ms:0,partials:0,by_service:[],by_user:[],by_role:[],by_app:[],by_provider:[],by_model:[],by_resource:[],by_error_class:[],series:[],series_by_model:[],series_by_user:[],series_by_app:[],series_by_provider:[],most_expensive_calls:[],filters:{},budgets:[],default_rates:{}}))),mcp:this.http.get("/_internal/ai/mcp-usage",{params:f,context:(0,l.Ku)()}).pipe((0,i.W)(()=>(0,u.of)({period:m,since:new Date(Date.now()-6048e5).toISOString(),total_requests:0,total_bytes_in:0,total_bytes_out:0,errors:0,avg_duration_ms:0,by_service:[],by_user:[],by_role:[],by_app:[],by_client:[],by_tool:[],by_method:[],series:[]}))),services:this.getServicesLookup(),users:this.getUsersLookup(),roles:this.getRolesLookup(),apps:this.getAppsLookup()}).pipe((0,C.T)(h=>h))}loadWindow(g,c={}){let m=(new _.Nl).set("period",g);return null!=c.app_id&&(m=m.set("app_id",String(c.app_id))),null!=c.service_id&&(m=m.set("service_id",String(c.service_id))),this.http.get("/_internal/ai/usage",{params:m,context:(0,l.Ku)()}).pipe((0,i.W)(()=>(0,u.of)(null)))}getServicesLookup(){return this.servicesLookup$??=this.listServices().pipe((0,o.t)(1)),this.servicesLookup$}getUsersLookup(){return this.usersLookup$??=this.listUsers().pipe((0,o.t)(1)),this.usersLookup$}getRolesLookup(){return this.rolesLookup$??=this.listRoles().pipe((0,o.t)(1)),this.rolesLookup$}getAppsLookup(){return this.appsLookup$??=this.listApps().pipe((0,o.t)(1)),this.appsLookup$}listServices(){return this.http.get(`${t.C}/system/service`,{params:{fields:"id,name,label,type",filter:'(type = "ai_connection") or (type = "ai_chat") or (type = "mcp") or (type = "system_mcp")'},context:(0,l.Ku)()}).pipe((0,C.T)(g=>{const c=new Map;return(g.resource??[]).forEach(m=>c.set(m.id,m)),c}),(0,i.W)(()=>(0,u.of)(new Map)))}listUsers(){const c=m=>this.http.get(`${t.C}/system/${m}`,{params:{fields:"id,name,username,email"},context:(0,l.Ku)()}).pipe((0,C.T)(f=>(m=>{const f=new Map;return(m??[]).forEach(h=>f.set(h.id,h.name||h.username||h.email||`user #${h.id}`)),f})(f.resource)),(0,i.W)(()=>(0,u.of)(new Map)));return(0,s.p)([c("user"),c("admin")]).pipe((0,C.T)(([m,f])=>new Map([...m,...f])))}listRoles(){return this.http.get(`${t.C}/system/role`,{params:{fields:"id,name"},context:(0,l.Ku)()}).pipe((0,C.T)(g=>{const c=new Map;return(g.resource??[]).forEach(m=>c.set(m.id,m.name)),c}),(0,i.W)(()=>(0,u.of)(new Map)))}listApps(){return this.http.get(`${t.C}/system/app`,{params:{fields:"id,name"},context:(0,l.Ku)()}).pipe((0,C.T)(g=>{const c=new Map;return(g.resource??[]).forEach(m=>c.set(m.id,m.name)),c}),(0,i.W)(()=>(0,u.of)(new Map)))}static{this.\u0275fac=function(c){return new(c||D)}}static{this.\u0275prov=e.jDH({token:D,factory:D.\u0275fac,providedIn:"root"})}}return D})();function p(D){if("number"==typeof D)return D;if("string"==typeof D){const v=Number(D);return Number.isFinite(v)?v:0}return 0}},54762:(y,E,n)=>{n.d(E,{Kp:()=>u,Om:()=>i,a3:()=>s,ap:()=>_,az:()=>C,eS:()=>e});const _={anthropic:{provider:"anthropic",inputPer1k:.003,outputPer1k:.015},openai:{provider:"openai",inputPer1k:.0025,outputPer1k:.01},xai:{provider:"xai",inputPer1k:.002,outputPer1k:.01},ollama:{provider:"ollama",inputPer1k:0,outputPer1k:0},openai_compatible:{provider:"openai_compatible",inputPer1k:0,outputPer1k:0}};function e(o){if(!o)return _;const t={};for(const[l,r]of Object.entries(o))t[l]={provider:l,inputPer1k:r.input_per_1k,outputPer1k:r.output_per_1k};return{..._,...t}}function s(o,t,l){return o/1e3*l.inputPer1k+t/1e3*l.outputPer1k}const u=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:2}),i=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:4});function C(o){return Number.isFinite(o)?o<.01&&o>0?"<$0.01":(o<1?i:u).format(o):"$0.00"}},4511:(y,E,n)=>{n.d(E,{F:()=>_});const _={Database:[{endpoint:"/_schema",title:"View Available Schemas",description:"This command fetches a list of schemas from your connected database"},{endpoint:"/_table",title:"View Tables in Your Database",description:"This command lists all tables in your database"}],File:[{endpoint:"/",title:"View Available Folders",description:"This command fetches a list of folders from your connected file storage"}]}},23667:(y,E,n)=>{n.d(E,{d:()=>l});var _=n(52483),e=n(73151),s=n(12324),u=n(29810),i=n(75066),C=n(16994),o=n(1843);n(69099);let l=(()=>{class r{constructor(d){this.roleService=d}getContext(){return this.context$||(this.context$=this.roleService.getAll({related:"role_service_access_by_role_id",fields:"id,name,is_active",limit:1e3,showSpinner:!1,errorHandling:"toast-off"}).pipe((0,_.W)(()=>(0,e.of)({resource:[]})),(0,s.T)(d=>this.buildContext(d.resource??[])),(0,u.t)(1))),this.context$}reset(){this.context$=void 0}buildContext(d){const p=new Set;let D=!1;for(const v of d)if(!1!==v?.isActive)for(const g of v?.roleServiceAccessByRoleId??[])g?.verbMask&&(null==g.serviceId?D=!0:p.add(g.serviceId));return{grantedServiceIds:p,hasGlobalGrant:D}}withProbe(d,p){const D=(d?.rules??[]).filter(v=>"cannotConnect"!==v.id);return p?{level:"danger",rules:[{id:"cannotConnect",level:"danger"},...D]}:{level:D.some(v=>"danger"===v.level)?"danger":D.length?"warning":"success",rules:D}}derive(d,p){const D=[];return!p.hasGlobalGrant&&!p.grantedServiceIds.has(d.id)&&D.push({id:"noAccess",level:"danger",fix:["/",C.b.API_CONNECTIONS,C.b.ROLE_BASED_ACCESS,C.b.CREATE]}),!0===d.deprecated&&D.push({id:"deprecated",level:"danger"}),{level:D.some(g=>"danger"===g.level)?"danger":D.length?"warning":"success",rules:D}}static{this.\u0275fac=function(p){return new(p||r)(o.KVO(i.h1))}}static{this.\u0275prov=o.jDH({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})()},43521:(y,E,n)=>{n.d(E,{j:()=>d});var _=n(73151),e=n(12324),s=n(52483),u=n(28930),i=n(29810),C=n(68686),o=n(56579),t=n(48444),l=n(4511),r=n(1843),a=n(62572);let d=(()=>{class p{constructor(v){this.http=v,this.cache=new Map}endpointFor(v){return v?l.F[v]?.[0]?.endpoint:void 0}probe(v,g){const c=this.endpointFor(g);if(!v||!c)return(0,_.of)({state:"unsupported"});const m=`${v}:${c}`;let f=this.cache.get(m);if(!f){const h=`${C.C}/${v}${c}`;f=this.http.get(h,{context:(0,t.PH)()}).pipe((0,e.T)(()=>({state:"ok"})),(0,s.W)(M=>(0,_.of)({state:"failed",error:(0,o.cQ)(M,{url:h,method:"GET"})})),(0,u.Z)({state:"checking"}),(0,i.t)(1)),this.cache.set(m,f)}return f}refresh(v){if(v)for(const g of Array.from(this.cache.keys()))g.startsWith(`${v}:`)&&this.cache.delete(g);else this.cache.clear()}static{this.\u0275fac=function(g){return new(g||p)(r.KVO(a.Qq))}}static{this.\u0275prov=r.jDH({token:p,factory:p.\u0275fac,providedIn:"root"})}}return p})()},17291:(y,E,n)=>{n.d(E,{B:()=>d});var _=n(68660),e=n(78227),s=n(62633),u=n(54688),i=n(453),C=n(31147),o=n(18331),t=n(1843);function l(p,D){1&p&&(t.j41(0,"mat-error"),t.EFF(1),t.nI1(2,"transloco"),t.k0s()),2&p&&(t.R7$(1),t.SpI(" ",t.bMT(2,1,"validation.required")," "))}function r(p,D){1&p&&(t.j41(0,"mat-error"),t.EFF(1),t.nI1(2,"transloco"),t.k0s()),2&p&&(t.R7$(1),t.SpI(" ",t.bMT(2,1,"validation.nameExists")," "))}function a(p,D){1&p&&(t.j41(0,"mat-error"),t.EFF(1),t.nI1(2,"transloco"),t.k0s()),2&p&&(t.R7$(1),t.SpI(" ",t.bMT(2,1,"validation.sameAsOriginal")," "))}let d=(()=>{class p{constructor(v,g){this.dialogRef=v,this.data=g,this.nameControl=new e.MJ("",[e.k0.required,this.uniqueNameValidator.bind(this)])}uniqueNameValidator(v){return this.data.existingNames&&this.data.existingNames.includes(v.value)?{nameExists:!0}:v.value===this.data.originalName?{sameName:!0}:null}onDuplicate(){this.nameControl.valid&&this.dialogRef.close(this.nameControl.value)}onCancel(){this.dialogRef.close(null)}static{this.\u0275fac=function(g){return new(g||p)(t.rXU(s.CP),t.rXU(s.Vh))}}static{this.\u0275cmp=t.VBU({type:p,selectors:[["df-duplicate-dialog"]],standalone:!0,features:[t.aNF],decls:22,vars:21,consts:[["mat-dialog-title",""],["mat-dialog-content",""],["appearance","outline",1,"full-width"],["matInput","","cdkFocusInitial","",3,"formControl","placeholder"],[4,"ngIf"],["mat-dialog-actions",""],["mat-flat-button","","type","button",1,"cancel-btn",3,"click"],["mat-flat-button","","type","button","color","primary",1,"save-btn",3,"disabled","click"]],template:function(g,c){1&g&&(t.j41(0,"h1",0),t.EFF(1),t.nI1(2,"transloco"),t.k0s(),t.j41(3,"div",1)(4,"p"),t.EFF(5),t.nI1(6,"transloco"),t.k0s(),t.j41(7,"mat-form-field",2)(8,"mat-label"),t.EFF(9),t.nI1(10,"transloco"),t.k0s(),t.nrm(11,"input",3),t.DNE(12,l,3,3,"mat-error",4),t.DNE(13,r,3,3,"mat-error",4),t.DNE(14,a,3,3,"mat-error",4),t.k0s()(),t.j41(15,"div",5)(16,"button",6),t.bIt("click",function(){return c.onCancel()}),t.EFF(17),t.nI1(18,"transloco"),t.k0s(),t.j41(19,"button",7),t.bIt("click",function(){return c.onDuplicate()}),t.EFF(20),t.nI1(21,"transloco"),t.k0s()()),2&g&&(t.R7$(1),t.JRh(t.bMT(2,11,c.data.title)),t.R7$(4),t.JRh(t.bMT(6,13,c.data.message)),t.R7$(4),t.JRh(t.bMT(10,15,c.data.label)),t.R7$(2),t.Y8G("formControl",c.nameControl)("placeholder",c.data.originalName),t.R7$(1),t.Y8G("ngIf",c.nameControl.hasError("required")),t.R7$(1),t.Y8G("ngIf",c.nameControl.hasError("nameExists")),t.R7$(1),t.Y8G("ngIf",c.nameControl.hasError("sameName")),t.R7$(3),t.SpI(" ",t.bMT(18,17,"cancel")," "),t.R7$(2),t.Y8G("disabled",!c.nameControl.valid),t.R7$(1),t.SpI(" ",t.bMT(21,19,"duplicate")," "))},dependencies:[s.hM,s.BI,s.Yi,s.E7,_.Hl,_.$z,u.RG,u.rl,u.nJ,u.TL,i.fS,i.fg,e.X1,e.me,e.BC,e.l_,C.Kj,o.bT],styles:["[_nghost-%COMP%]{display:block;background:var(--df-surface);color:var(--df-text);--mdc-dialog-subhead-color: var(--df-text);--mdc-dialog-supporting-text-color: var(--df-text-2)}mat-dialog-actions[_ngcontent-%COMP%], [mat-dialog-actions][_ngcontent-%COMP%]{border-top:1px solid var(--df-border-2)}.full-width[_ngcontent-%COMP%]{width:100%}"]})}}return p})()},81137:(y,E,n)=>{n.d(E,{K:()=>o});var _=n(18331),e=n(1843);function s(t,l){if(1&t&&(e.j41(0,"span",9),e.EFF(1),e.k0s()),2&t){const r=e.XpG();e.R7$(1),e.JRh(r.eyebrow)}}function u(t,l){if(1&t&&(e.j41(0,"p",10),e.EFF(1),e.k0s()),2&t){const r=e.XpG();e.R7$(1),e.SpI(" ",r.description," ")}}const i=[[["","pageHeaderBreadcrumb",""]],[["","pageHeaderActions",""]],[["","pageHeaderTabs",""]]],C=["[pageHeaderBreadcrumb]","[pageHeaderActions]","[pageHeaderTabs]"];let o=(()=>{class t{constructor(){this.title=""}static{this.\u0275fac=function(a){return new(a||t)}}static{this.\u0275cmp=e.VBU({type:t,selectors:[["df-page-header"]],inputs:{eyebrow:"eyebrow",title:"title",description:"description"},standalone:!0,features:[e.aNF],ngContentSelectors:C,decls:13,vars:3,consts:[[1,"page-header"],[1,"page-header__inner"],[1,"page-header__bar"],[1,"page-header__heading"],["class","page-header__eyebrow",4,"ngIf"],[1,"page-header__title"],["class","page-header__description",4,"ngIf"],[1,"page-header__actions"],[1,"page-header__tabs"],[1,"page-header__eyebrow"],[1,"page-header__description"]],template:function(a,d){1&a&&(e.NAR(i),e.j41(0,"header",0)(1,"div",1),e.SdG(2),e.j41(3,"div",2)(4,"div",3),e.DNE(5,s,2,1,"span",4),e.j41(6,"h1",5),e.EFF(7),e.k0s(),e.DNE(8,u,2,1,"p",6),e.k0s(),e.j41(9,"div",7),e.SdG(10,1),e.k0s()(),e.j41(11,"div",8),e.SdG(12,2),e.k0s()()()),2&a&&(e.R7$(5),e.Y8G("ngIf",d.eyebrow),e.R7$(2),e.JRh(d.title),e.R7$(1),e.Y8G("ngIf",d.description))},dependencies:[_.bT],styles:[".page-header[_ngcontent-%COMP%]{padding:var(--df-space-6) var(--df-page-gutter) 0}.page-header__inner[_ngcontent-%COMP%]{border-bottom:1px solid var(--df-border);margin:0 auto;max-width:var(--df-content-max);padding-bottom:var(--df-space-5)}.page-header__bar[_ngcontent-%COMP%]{align-items:flex-start;display:flex;gap:var(--df-space-5);justify-content:space-between}.page-header__heading[_ngcontent-%COMP%]{min-width:0}.page-header__eyebrow[_ngcontent-%COMP%]{color:var(--df-text-muted);display:block;font-size:var(--df-font-size-xs);font-weight:var(--df-font-weight-medium);letter-spacing:var(--df-tracking-eyebrow);margin-bottom:var(--df-space-2);text-transform:uppercase}.page-header__title[_ngcontent-%COMP%]{color:var(--df-text);font-size:var(--df-font-size-2xl);font-weight:var(--df-font-weight-heading);letter-spacing:var(--df-tracking-tight);line-height:var(--df-lh-tight);margin:0}.page-header__description[_ngcontent-%COMP%]{color:var(--df-text-2);font-size:var(--df-font-size-sm);line-height:var(--df-lh-base);margin:var(--df-space-2) 0 0;max-width:68ch}.page-header__actions[_ngcontent-%COMP%]{align-items:center;display:flex;flex-shrink:0;flex-wrap:wrap;gap:var(--df-space-2);justify-content:flex-end}.page-header__tabs[_ngcontent-%COMP%]:has( > *)[_ngcontent-%COMP%]{margin-top:var(--df-space-4)}@media (max-width: 820px){.page-header__bar[_ngcontent-%COMP%]{flex-direction:column}.page-header__actions[_ngcontent-%COMP%]{justify-content:flex-start}}"],changeDetection:0})}}return t})()},58359:(y,E,n)=>{n.d(E,{C:()=>o});var _=n(31147),e=n(1843),s=n(89905),u=n(16396),i=n(35877);const C=["calendlyWidget"];let o=(()=>{class t{constructor(r,a,d){this.userDataService=r,this.systemConfigService=a,this.dfPaywallService=d}ngOnInit(){const a=this.userDataService.userData?.email,d=this.systemConfigService?.environment?.client?.ipAddress;this.dfPaywallService.trackPaywallHit(a,d,this.serviceName)}ngAfterViewInit(){window.Calendly.initInlineWidget({url:"https://calendly.com/dreamfactory-platform/unlock-all-features",parentElement:this.calendlyWidget.nativeElement,autoLoad:!1})}static{this.\u0275fac=function(a){return new(a||t)(e.rXU(s.T),e.rXU(u.f),e.rXU(i.o))}}static{this.\u0275cmp=e.VBU({type:t,selectors:[["df-paywall"]],viewQuery:function(a,d){if(1&a&&e.GBs(C,5),2&a){let p;e.mGM(p=e.lsd())&&(d.calendlyWidget=p.first)}},inputs:{serviceName:"serviceName"},standalone:!0,features:[e.aNF],decls:35,vars:27,consts:[[1,"paywall-container"],[1,"details-section"],[1,"info-columns"],[1,"info-column"],[3,"innerHTML"],[1,"calendly-inline-widget"],["calendlyWidget",""],[1,"paywall-contact"],["href","tel:+1 415-993-5877"],["href","mailto:info@dreamfactory.com"]],template:function(a,d){1&a&&(e.j41(0,"div",0)(1,"h2"),e.EFF(2),e.nI1(3,"transloco"),e.k0s(),e.j41(4,"h2"),e.EFF(5),e.nI1(6,"transloco"),e.k0s(),e.j41(7,"div",1)(8,"div",2)(9,"div",3)(10,"h4"),e.EFF(11),e.nI1(12,"transloco"),e.k0s(),e.nrm(13,"p",4),e.nI1(14,"transloco"),e.k0s(),e.j41(15,"div",3)(16,"h4"),e.EFF(17),e.nI1(18,"transloco"),e.k0s(),e.j41(19,"p"),e.EFF(20),e.nI1(21,"transloco"),e.k0s()()()(),e.j41(22,"h2"),e.EFF(23),e.nI1(24,"transloco"),e.k0s()(),e.nrm(25,"div",5,6),e.j41(27,"h3",7)(28,"a",8),e.EFF(29),e.nI1(30,"transloco"),e.k0s(),e.EFF(31," | "),e.j41(32,"a",9),e.EFF(33),e.nI1(34,"transloco"),e.k0s()()),2&a&&(e.R7$(2),e.JRh(e.bMT(3,9,"paywall.header")),e.R7$(3),e.JRh(e.bMT(6,11,"paywall.subheader")),e.R7$(6),e.JRh(e.bMT(12,13,"paywall.hostedTrial")),e.R7$(2),e.Y8G("innerHTML",e.bMT(14,15,"paywall.bookTime"),e.npT),e.R7$(4),e.JRh(e.bMT(18,17,"paywall.learnMoreTitle")),e.R7$(3),e.JRh(e.bMT(21,19,"paywall.gain")),e.R7$(3),e.JRh(e.bMT(24,21,"paywall.speakToHuman")),e.R7$(6),e.SpI("",e.bMT(30,23,"phone"),": +1 415-993-5877"),e.R7$(4),e.SpI("",e.bMT(34,25,"email"),": info@dreamfactory.com"))},dependencies:[_.Kj],styles:[".paywall-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;max-width:1200px;margin:0 auto;padding:20px}.calendly-inline-widget[_ngcontent-%COMP%]{min-width:320px;width:100%;height:700px;margin:20px 0}.details-section[_ngcontent-%COMP%]{margin:32px 0;max-width:690px;width:100%;background:var(--df-surface);border:1px solid var(--df-border);border-radius:var(--df-radius);padding:20px 24px}.info-column[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{color:var(--df-text-muted);font-size:11px;font-weight:600;letter-spacing:.06em;margin:0 0 8px;text-transform:uppercase}.info-column[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--df-text-2);font-size:1.4rem;line-height:1.5;margin:0}.info-columns[_ngcontent-%COMP%]{display:flex;gap:32px;justify-content:space-between}@media (max-width: 768px){.info-columns[_ngcontent-%COMP%]{flex-direction:column}}.info-column[_ngcontent-%COMP%]{flex:1;min-width:0}.paywall-contact[_ngcontent-%COMP%]{width:100%;text-align:center;padding:32px 0;margin-top:20px}"]})}}return t})()},1803:(y,E,n)=>{n.d(E,{N:()=>c});var _=n(21406),e=n(18331),s=n(78227),u=n(54688),i=n(91900),C=n(31147),o=n(98337),t=n(54342),l=n(94093),r=n(97828),a=n(1843),d=n(19206),p=n(42250);function D(m,f){if(1&m&&(a.j41(0,"mat-label"),a.EFF(1),a.k0s()),2&m){const h=a.XpG();a.R7$(1),a.JRh(h.schema.label)}}function v(m,f){if(1&m&&(a.j41(0,"mat-option",5),a.EFF(1),a.k0s()),2&m){const h=f.$implicit;a.Y8G("value",h.value),a.R7$(1),a.SpI(" ",h.label," ")}}function g(m,f){if(1&m&&a.nrm(0,"fa-icon",6),2&m){const h=a.XpG();a.Y8G("icon",h.faCircleInfo)("matTooltip",h.schema.description)}}let c=class b{constructor(f,h){this.controlDir=f,this.themeService=h,this.type="verb",this.showLabel=!0,this.faCircleInfo=l.mEO,this.control=new s.MJ,this.verbs=[{value:1,altValue:"GET",label:(0,C.Tl)("verbs.get")},{value:2,altValue:"POST",label:(0,C.Tl)("verbs.post")},{value:4,altValue:"PUT",label:(0,C.Tl)("verbs.put")},{value:8,altValue:"PATCH",label:(0,C.Tl)("verbs.patch")},{value:16,altValue:"DELETE",label:(0,C.Tl)("verbs.delete")}],this.isDarkMode=this.themeService.darkMode$,f.valueAccessor=this}ngDoCheck(){this.controlDir.control instanceof s.MJ&&this.controlDir.control.hasValidator(s.k0.required)&&this.control.addValidators(s.k0.required)}writeValue(f){if(f)if("number"===this.type&&"number"==typeof f){const h=this.verbs.filter(M=>(f&M.value)===M.value).map(M=>M.value);this.control.setValue(h,{emitEvent:!1})}else this.control.setValue("verb"===this.type&&"string"==typeof f?this.verbs.find(h=>h.altValue===f)?.value??"":f.map(h=>this.verbs.find(M=>M.altValue===h)?.value??0),{emitEvent:!1})}registerOnChange(f){this.onChange=f,this.control.valueChanges.subscribe(h=>{const M="number"===this.type?(h||[]).reduce((P,O)=>P|O,0):"verb_multiple"===this.type?(h||[]).map(P=>this.verbs.find(O=>O.value===P)?.altValue??""):this.verbs.find(P=>P.value===h)?.altValue??"";this.onChange(M)})}registerOnTouched(f){this.onTouched=f}setDisabledState(f){f?this.control.disable():this.control.enable()}static{this.\u0275fac=function(h){return new(h||b)(a.rXU(s.vO,2),a.rXU(d.n))}}static{this.\u0275cmp=a.VBU({type:b,selectors:[["df-verb-picker"]],inputs:{type:"type",schema:"schema",showLabel:"showLabel"},standalone:!0,features:[a.aNF],decls:6,vars:6,consts:[["subscriptSizing","dynamic","appearance","outline"],[4,"ngIf"],[3,"formControl","multiple"],[3,"value",4,"ngFor","ngForOf"],["class","tool-tip-trigger","matSuffix","",3,"icon","matTooltip",4,"ngIf"],[3,"value"],["matSuffix","",1,"tool-tip-trigger",3,"icon","matTooltip"]],template:function(h,M){1&h&&(a.j41(0,"div")(1,"mat-form-field",0),a.DNE(2,D,2,1,"mat-label",1),a.j41(3,"mat-select",2),a.DNE(4,v,2,2,"mat-option",3),a.k0s(),a.DNE(5,g,1,2,"fa-icon",4),a.k0s()()),2&h&&(a.R7$(2),a.Y8G("ngIf",M.showLabel),a.R7$(1),a.Y8G("formControl",M.control)("multiple","verb_multiple"===M.type||"number"===M.type),a.BMQ("aria-label",M.schema.label),a.R7$(1),a.Y8G("ngForOf",M.verbs),a.R7$(1),a.Y8G("ngIf",M.schema.description))},dependencies:[i.Ve,u.rl,u.nJ,u.yw,i.VO,p.wT,u.RG,s.X1,s.BC,s.l_,e.pM,e.bT,o.uc,o.oV,t.dX,t.aY],encapsulation:2})}};c=(0,_.Cg)([(0,r.d)({checkProperties:!0})],c)},89087:(y,E,n)=>{n.d(E,{l:()=>_});const _=["csv","json","xml"]},92084:(y,E,n)=>{n.d(E,{K:()=>_});const _=[{columnDef:"active",cell:e=>e.active,header:"active"},{columnDef:"email",cell:e=>e.email,header:"email"},{columnDef:"displayName",cell:e=>e.displayName,header:"name"},{columnDef:"firstName",cell:e=>e.firstName,header:"firstName"},{columnDef:"lastName",cell:e=>e.lastName,header:"lastName"},{columnDef:"registration",cell:e=>e.registration,header:"registration"},{columnDef:"actions"}]},68788:(y,E,n)=>{n.d(E,{M:()=>u});var _=n(85390),e=n(1843);const s="currentServiceId";let u=(()=>{class i{constructor(){const o=localStorage.getItem(s);this.currentServiceId=new _.t(o?parseInt(o,10):-1)}setCurrentServiceId(o){localStorage.setItem(s,o.toString()),this.currentServiceId.next(o)}getCurrentServiceId(){return this.currentServiceId.asObservable()}clearCurrentServiceId(){localStorage.removeItem(s),this.currentServiceId.next(-1)}static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275prov=e.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}}return i})()},43015:(y,E,n)=>{n.d(E,{X:()=>e});var _=n(18724);function e(u,i){return s.apply(this,arguments)}function s(){return(s=(0,_.A)(function*(u,i){const o=(new TextEncoder).encode(`${u}${i}${Date.now()}`),t=yield crypto.subtle.digest("SHA-256",o);return Array.from(new Uint8Array(t)).map(a=>a.toString(16).padStart(2,"0")).join("")})).apply(this,arguments)}},37530:(y,E,n)=>{function _(e){if(e.value.length>0)try{JSON.parse(e.value)}catch{return{jsonInvalid:!0}}return null}n.d(E,{V:()=>_})},36661:(y,E,n)=>{n.d(E,{_:()=>s});var _=n(90308),e=n(13665);function s(u,i){const C="object"==typeof i;return new Promise((o,t)=>{const l=new e.Ms({next:r=>{o(r),l.unsubscribe()},error:t,complete:()=>{C?o(i.defaultValue):t(new _.G)}});u.subscribe(l)})}},60875:(y,E,n)=>{n.d(E,{B0:()=>u});var _=n(18331),e=n(1843);class s{constructor(l,r){this._document=r;const a=this._textarea=this._document.createElement("textarea"),d=a.style;d.position="fixed",d.top=d.opacity="0",d.left="-999em",a.setAttribute("aria-hidden","true"),a.value=l,a.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(a)}copy(){const l=this._textarea;let r=!1;try{if(l){const a=this._document.activeElement;l.select(),l.setSelectionRange(0,l.value.length),r=this._document.execCommand("copy"),a&&a.focus()}}catch{}return r}destroy(){const l=this._textarea;l&&(l.remove(),this._textarea=void 0)}}let u=(()=>{class t{constructor(r){this._document=r}copy(r){const a=this.beginCopy(r),d=a.copy();return a.destroy(),d}beginCopy(r){return new s(r,this._document)}static{this.\u0275fac=function(a){return new(a||t)(e.KVO(_.qQ))}}static{this.\u0275prov=e.jDH({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})()}}]); \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index da308df0..c2f368f9 100644 --- a/dist/index.html +++ b/dist/index.html @@ -10,5 +10,5 @@ - + diff --git a/dist/runtime.a3b9d0562d04d59d.js b/dist/runtime.70b3ff8deb75852a.js similarity index 71% rename from dist/runtime.a3b9d0562d04d59d.js rename to dist/runtime.70b3ff8deb75852a.js index 0c58fd82..10dd3130 100644 --- a/dist/runtime.a3b9d0562d04d59d.js +++ b/dist/runtime.70b3ff8deb75852a.js @@ -1 +1 @@ -(()=>{"use strict";var e,_={},v={};function f(e){var d=v[e];if(void 0!==d)return d.exports;var a=v[e]={id:e,loaded:!1,exports:{}};return _[e].call(a.exports,a,a.exports,f),a.loaded=!0,a.exports}f.m=_,f.amdD=function(){throw new Error("define cannot be used indirect")},e=[],f.O=(d,a,r,b)=>{if(!a){var t=1/0;for(c=0;c=b)&&Object.keys(f.O).every(p=>f.O[p](a[n]))?a.splice(n--,1):(s=!1,b0&&e[c-1][2]>b;c--)e[c]=e[c-1];e[c]=[a,r,b]},f.n=e=>{var d=e&&e.__esModule?()=>e.default:()=>e;return f.d(d,{a:d}),d},(()=>{var d,e=Object.getPrototypeOf?a=>Object.getPrototypeOf(a):a=>a.__proto__;f.t=function(a,r){if(1&r&&(a=this(a)),8&r||"object"==typeof a&&a&&(4&r&&a.__esModule||16&r&&"function"==typeof a.then))return a;var b=Object.create(null);f.r(b);var c={};d=d||[null,e({}),e([]),e(e)];for(var t=2&r&&a;"object"==typeof t&&!~d.indexOf(t);t=e(t))Object.getOwnPropertyNames(t).forEach(s=>c[s]=()=>a[s]);return c.default=()=>a,f.d(b,c),b}})(),f.d=(e,d)=>{for(var a in d)f.o(d,a)&&!f.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:d[a]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce((d,a)=>(f.f[a](e,d),d),[])),f.u=e=>(2076===e?"common":e)+"."+{214:"676648eec53f0ec7",399:"841dcb3c92cfff2e",485:"912e3e802f37c120",583:"e8891b7cc791de6f",669:"98f064f5a937aec8",796:"6988d10857687016",870:"bd2cd719f9ad1540",986:"15ef69176e0c7448",1068:"275a15c7ea3f54f5",1524:"0427308cbd09bc81",1643:"4893b3dc0dbd730c",1900:"a12604cdc6136544",2066:"01138641db2ae347",2076:"8add9df0f3c751ac",2262:"e1b1581ef5ffc005",2317:"87abf625347bbc67",2430:"f7d33b75ef0f9d4a",2564:"96bb51de0b3423bc",2661:"4723cda3623aa906",2967:"e5f225277a409e25",3101:"5b940d454995f053",3138:"04acce1458a7ef9a",3307:"e67abeb3c237b9b4",3392:"dfa5337deb7a37f5",3451:"68ce099758dfcefb",3492:"4563bbd0ec2cdd6f",3533:"91066031d8fe1453",3645:"8c6548ca9b1a641d",3649:"69c49f317f65f68e",3678:"b856ac5ef4971ffe",3685:"88541102f64bdb90",3695:"0215f99bd71a088d",3751:"23b0e86a0a4e6e9d",3756:"9f335ae0f5636fe2",3828:"d30a9d66224578e5",3956:"50bb85ac336f0f5e",4207:"6549a98040f7b707",4255:"ac57882452d90abb",4461:"3d5cd6d4513d76db",4588:"19f974787da3fe15",4673:"fb747af965cc59a0",4705:"2f5fb87d0c1e3592",5036:"9e5458a6279b6951",5201:"8f0dbf2bc1a2e854",5372:"3feb13c0050a8360",5453:"5e29b39d5d102b3b",5469:"98bf5af86094c49f",5624:"605e50332c22f7df",5629:"5e427cca66ca2ba1",5969:"b64292feb5bcfb3a",6214:"981118ca14b0d356",6242:"11c5b631cf93c664",6377:"a34e85c7dc59559c",6557:"e1e2097c6cf8f99e",6968:"c6af7114ccc40b36",6984:"2ab977c129d686c9",7058:"f66bee5fee6bbbcf",7067:"0bf0fc7ac44a8276",7129:"7c39d873d3b8d92e",7251:"ef64ccb7ad3ebfff",7252:"5c5b25226b515af8",7263:"b2c1b33aa6efae16",7303:"3621328ea8c0d850",7418:"4d59c7947daff731",7741:"b1494e07e5316066",7888:"47d1ba4b95b4aa71",8001:"df27a0963b4a3e68",8221:"7d29ff8933c706c8",8272:"a7ef6eaf1af75d7e",8328:"58d36ccb3a10d953",8337:"96252439a08a6a13",8497:"05b3e2db41552bec",8747:"4aa72a816a9e2b1a",8781:"08c7eef2edf7ad5e",8816:"7d97eea967c9810d",8859:"3b307639b11cdb16",9106:"7c66719d514008a6",9167:"9edee1862e426be4",9675:"5bc46c37954a8ea1",9841:"9c713cb73db35467"}[e]+".js",f.miniCssF=e=>{},f.o=(e,d)=>Object.prototype.hasOwnProperty.call(e,d),(()=>{var e={},d="df-admin-interface:";f.l=(a,r,b,c)=>{if(e[a])e[a].push(r);else{var t,s;if(void 0!==b)for(var n=document.getElementsByTagName("script"),o=0;o{t.onerror=t.onload=null,clearTimeout(l);var m=e[a];if(delete e[a],t.parentNode&&t.parentNode.removeChild(t),m&&m.forEach(h=>h(p)),g)return g(p)},l=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),s&&document.head.appendChild(t)}}})(),f.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;f.tt=()=>(void 0===e&&(e={createScriptURL:d=>d},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),f.tu=e=>f.tt().createScriptURL(e),f.p="",(()=>{var e={9121:0};f.f.j=(r,b)=>{var c=f.o(e,r)?e[r]:void 0;if(0!==c)if(c)b.push(c[2]);else if(9121!=r){var t=new Promise((i,u)=>c=e[r]=[i,u]);b.push(c[2]=t);var s=f.p+f.u(r),n=new Error;f.l(s,i=>{if(f.o(e,r)&&(0!==(c=e[r])&&(e[r]=void 0),c)){var u=i&&("load"===i.type?"missing":i.type),l=i&&i.target&&i.target.src;n.message="Loading chunk "+r+" failed.\n("+u+": "+l+")",n.name="ChunkLoadError",n.type=u,n.request=l,c[1](n)}},"chunk-"+r,r)}else e[r]=0},f.O.j=r=>0===e[r];var d=(r,b)=>{var n,o,[c,t,s]=b,i=0;if(c.some(l=>0!==e[l])){for(n in t)f.o(t,n)&&(f.m[n]=t[n]);if(s)var u=s(f)}for(r&&r(b);i{"use strict";var e,_={},v={};function f(e){var d=v[e];if(void 0!==d)return d.exports;var a=v[e]={id:e,loaded:!1,exports:{}};return _[e].call(a.exports,a,a.exports,f),a.loaded=!0,a.exports}f.m=_,f.amdD=function(){throw new Error("define cannot be used indirect")},e=[],f.O=(d,a,r,n)=>{if(!a){var t=1/0;for(c=0;c=n)&&Object.keys(f.O).every(p=>f.O[p](a[b]))?a.splice(b--,1):(s=!1,n0&&e[c-1][2]>n;c--)e[c]=e[c-1];e[c]=[a,r,n]},f.n=e=>{var d=e&&e.__esModule?()=>e.default:()=>e;return f.d(d,{a:d}),d},(()=>{var d,e=Object.getPrototypeOf?a=>Object.getPrototypeOf(a):a=>a.__proto__;f.t=function(a,r){if(1&r&&(a=this(a)),8&r||"object"==typeof a&&a&&(4&r&&a.__esModule||16&r&&"function"==typeof a.then))return a;var n=Object.create(null);f.r(n);var c={};d=d||[null,e({}),e([]),e(e)];for(var t=2&r&&a;"object"==typeof t&&!~d.indexOf(t);t=e(t))Object.getOwnPropertyNames(t).forEach(s=>c[s]=()=>a[s]);return c.default=()=>a,f.d(n,c),n}})(),f.d=(e,d)=>{for(var a in d)f.o(d,a)&&!f.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:d[a]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce((d,a)=>(f.f[a](e,d),d),[])),f.u=e=>(2076===e?"common":e)+"."+{214:"676648eec53f0ec7",399:"841dcb3c92cfff2e",485:"912e3e802f37c120",583:"e8891b7cc791de6f",669:"98f064f5a937aec8",796:"6988d10857687016",870:"bd2cd719f9ad1540",986:"15ef69176e0c7448",1068:"275a15c7ea3f54f5",1524:"0427308cbd09bc81",1643:"4893b3dc0dbd730c",1900:"a12604cdc6136544",2066:"01138641db2ae347",2076:"bf1766ef303ad096",2262:"e1b1581ef5ffc005",2317:"87abf625347bbc67",2430:"f7d33b75ef0f9d4a",2564:"96bb51de0b3423bc",2661:"4723cda3623aa906",2967:"e5f225277a409e25",3101:"5b940d454995f053",3138:"04acce1458a7ef9a",3307:"e67abeb3c237b9b4",3392:"dfa5337deb7a37f5",3451:"68ce099758dfcefb",3492:"4563bbd0ec2cdd6f",3533:"91066031d8fe1453",3645:"8c6548ca9b1a641d",3649:"69c49f317f65f68e",3678:"b856ac5ef4971ffe",3685:"88541102f64bdb90",3695:"0215f99bd71a088d",3751:"23b0e86a0a4e6e9d",3756:"9f335ae0f5636fe2",3828:"d30a9d66224578e5",3956:"50bb85ac336f0f5e",4207:"6549a98040f7b707",4255:"ac57882452d90abb",4461:"3d5cd6d4513d76db",4588:"19f974787da3fe15",4673:"fb747af965cc59a0",4705:"2f5fb87d0c1e3592",5036:"9e5458a6279b6951",5201:"8f0dbf2bc1a2e854",5372:"3feb13c0050a8360",5453:"5e29b39d5d102b3b",5469:"98bf5af86094c49f",5624:"605e50332c22f7df",5629:"5e427cca66ca2ba1",5969:"b64292feb5bcfb3a",6214:"981118ca14b0d356",6242:"11c5b631cf93c664",6377:"a34e85c7dc59559c",6557:"e1e2097c6cf8f99e",6968:"c6af7114ccc40b36",6984:"2ab977c129d686c9",7058:"f66bee5fee6bbbcf",7067:"0bf0fc7ac44a8276",7129:"7c39d873d3b8d92e",7251:"ef64ccb7ad3ebfff",7252:"5c5b25226b515af8",7263:"b2c1b33aa6efae16",7303:"3621328ea8c0d850",7418:"4d59c7947daff731",7741:"b1494e07e5316066",7888:"47d1ba4b95b4aa71",8001:"df27a0963b4a3e68",8221:"7d29ff8933c706c8",8272:"a7ef6eaf1af75d7e",8328:"58d36ccb3a10d953",8337:"96252439a08a6a13",8497:"05b3e2db41552bec",8747:"4aa72a816a9e2b1a",8781:"08c7eef2edf7ad5e",8816:"7d97eea967c9810d",8859:"3b307639b11cdb16",9106:"7c66719d514008a6",9167:"9edee1862e426be4",9675:"5bc46c37954a8ea1",9841:"9c713cb73db35467"}[e]+".js",f.miniCssF=e=>{},f.o=(e,d)=>Object.prototype.hasOwnProperty.call(e,d),(()=>{var e={},d="df-admin-interface:";f.l=(a,r,n,c)=>{if(e[a])e[a].push(r);else{var t,s;if(void 0!==n)for(var b=document.getElementsByTagName("script"),o=0;o{t.onerror=t.onload=null,clearTimeout(l);var m=e[a];if(delete e[a],t.parentNode&&t.parentNode.removeChild(t),m&&m.forEach(h=>h(p)),g)return g(p)},l=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),s&&document.head.appendChild(t)}}})(),f.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;f.tt=()=>(void 0===e&&(e={createScriptURL:d=>d},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),f.tu=e=>f.tt().createScriptURL(e),f.p="",(()=>{var e={9121:0};f.f.j=(r,n)=>{var c=f.o(e,r)?e[r]:void 0;if(0!==c)if(c)n.push(c[2]);else if(9121!=r){var t=new Promise((i,u)=>c=e[r]=[i,u]);n.push(c[2]=t);var s=f.p+f.u(r),b=new Error;f.l(s,i=>{if(f.o(e,r)&&(0!==(c=e[r])&&(e[r]=void 0),c)){var u=i&&("load"===i.type?"missing":i.type),l=i&&i.target&&i.target.src;b.message="Loading chunk "+r+" failed.\n("+u+": "+l+")",b.name="ChunkLoadError",b.type=u,b.request=l,c[1](b)}},"chunk-"+r,r)}else e[r]=0},f.O.j=r=>0===e[r];var d=(r,n)=>{var b,o,[c,t,s]=n,i=0;if(c.some(l=>0!==e[l])){for(b in t)f.o(t,b)&&(f.m[b]=t[b]);if(s)var u=s(f)}for(r&&r(n);i