PageSourceSearch

https://app.beaglesecurity.com/chunk-HQDWPUTU.js

js beaglesecurity.com collected 2026-09-24 08:46:47 UTC 96,524 bytes, 1,010 lines download raw bytes

1import{a as Je}from"./chunk-7AECRZFI.js";import"./chunk-FELS3J32.js";import{a as pe,b as Ye}from"./chunk-AUUKAJYQ.js";import"./chunk-QNDJTVXB.js";import"./chunk-2OLADOIF.js";import"./chunk-6KE6O5IE.js";import{a as We,b as be}from"./chunk-EUZ5ALPO.js";import"./chunk-Z6D74UMB.js";import{a as ve}from"./chunk-NLNRFD76.js";import{a as le}from"./chunk-SMPFV5HB.js";import{a as je,b as Be}from"./chunk-SM4KANTN.js";import"./chunk-OTFJ4D5S.js";import{a as ce}from"./chunk-3NDDC6HY.js";import"./chunk-NKFHN2UT.js";import"./chunk-Z72XREES.js";import"./chunk-LXGHVDMZ.js";import{a as $e}from"./chunk-4DCMMXMQ.js";import{a as ze}from"./chunk-SD3WE74N.js";import"./chunk-5BH2DXPY.js";import{a as te}from"./chunk-OC2TUMDG.js";import{a as Ue}from"./chunk-VBPZZ2BE.js";import"./chunk-VCT4T2P2.js";import{a as Fe,b as He}from"./chunk-BYKSQ4UF.js";import"./chunk-W7PPZJOL.js";import{a as xe}from"./chunk-LBQHVHOD.js";import"./chunk-RJBNMGAI.js";import{a as Ne}from"./chunk-KT3Q65XE.js";import{a as Ge}from"./chunk-6JVWF4IY.js";import{a as Le}from"./chunk-JX5RYC7H.js";import"./chunk-KK6ZZPUF.js";import"./chunk-BTMCQCAC.js";import{a as de}from"./chunk-P5X5UTD7.js";import{a as fe,b as ye,c as Ce,d as ee}from"./chunk-FISCDIEQ.js";import"./chunk-OFDVQPEO.js";import{c as $,d as W,f as Q,g as I,h as j}from"./chunk-W4BNGQYG.js";import"./chunk-RENC6YYK.js";import{a as Ke}from"./chunk-KXCNGDML.js";import"./chunk-M2LBETCN.js";import"./chunk-TTH7GFZH.js";import{a as U}from"./chunk-PKRSU6VJ.js";import{a as Ve}from"./chunk-MAW7FMI2.js";import{a as L}from"./chunk-KO2D6ELQ.js";import{c as Re,f as Z,i as X,y as G}from"./chunk-W2FPCXJS.js";import{f as re,h as se}from"./chunk-PRNDDZIA.js";import"./chunk-B7G3T42L.js";import{C as D}from"./chunk-A44CX4PV.js";import{$b as M,Ab as s,Bc as ie,Cc as oe,Dc as ae,Ec as Pe,Fc as c,Gc as S,Hc as H,J as Ae,Ka as m,La as h,Mb as E,Mc as R,Nc as V,Oc as K,Ra as Qe,Rb as C,Sc as ge,Ua as z,Uc as _e,Xa as Oe,Zb as g,_a as O,_b as Me,a as k,b as N,dc as f,ec as Y,fc as Ie,gc as q,hc as A,ic as o,jc as a,k as qe,kc as _,oc as x,pa as T,r as F,tc as u,uc as l,ud as J,xc as he,za as y}from"./chunk-HWT7D4EW.js";var at=(i,d)=>d.key;function rt(i,d){if(i&1){let e=x();o(0,"div",11)(1,"button",12),u("click",function(t){m(e);let r=l(2);return h(r.addQuery(t))}),_(2,"i",13),a()()}}function st(i,d){if(i&1&&C(0,rt,3,0,"div",11),i&2){let e=l();f(e.schema.source!="INTEGRATED"?0:-1)}}function lt(i,d){if(i&1){let e=x();o(0,"div",11)(1,"i",17),u("click",function(t){m(e);let r=l().$implicit,p=l();return h(p.onDeleteQuery(t,r))}),a()()}}function ct(i,d){if(i&1){let e=x();o(0,"div",14),u("click",function(){let t=m(e).$implicit,r=l();return h(r.selectQuery(t))}),o(1,"div",15)(2,"span",16),c(3),a()(),C(4,lt,2,0,"div",11),a()}if(i&2){let e=d.$implicit,n=l();M("selected",n.selectedQueryKey===e.key),s(2),he("title",e.name),s(),S(e.name),s(),f(n.allowEdit&&(e.source=="CONFIGURED"||e.source=="IMPORTED")?4:-1)}}function dt(i,d){if(i&1&&(o(0,"div",18),_(1,"i",19),o(2,"span",20),c(3),a()()),i&2){let e=l(2);s(3),H("No ",e.getCategoryLabel().toLowerCase()," found")}}function pt(i,d){if(i&1&&C(0,dt,4,1,"div",18),i&2){let e=l();f(e.uiState!=="GET_QUERIES"?0:-1)}}function ut(i,d){i&1&&(o(0,"div",9)(1,"div",21),_(2,"div",22),a()())}function mt(i,d){if(i&1){let e=x();o(0,"div",23),u("click",function(t){return m(e),h(t.stopPropagation())}),o(1,"pagination",24),K("ngModelChange",function(t){m(e);let r=l();return V(r.pagination.page,t)||(r.pagination.page=t),h(t)}),u("pageChanged",function(t){m(e);let r=l();return h(r.handlePageChange(t))}),a()()}if(i&2){let e=l();s(),g("totalItems",e.pagination.total)("itemsPerPage",e.pagination.limit),R("ngModel",e.pagination.page),g("maxSize",3)("rotate",!0)("boundaryLinks",!1)}}var Ze=(()=>{class i{queryList=[];pagination={page:1,limit:20,total:0,totalPages:0};uiState="";_isExpanded=!1;destroy$=new F;allowEdit=!1;appKey="";schemaKey="";category="QUERY";selectedQueryKey=null;schema;set isExpanded(e){this._isExpanded=e,e&&this.queryList.length===0&&this.fetchQueries()}get isExpanded(){return this._isExpanded}onQuerySelect=new z;onAddQuery=new z;gqlService=y(te);gqlNavService=y(pe);deleteDialogBox=y(ce);toastr=y(U);router=y(se);route=y(re);ngOnInit(){this.gqlService.queryListChanged$.pipe(T(this.destroy$)).subscribe(e=>{e.group===this.category&&this.fetchQueries()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}toggleExpand(e){e.stopPropagation(),this.isExpanded=!this.isExpanded}fetchQueries(){!this.appKey||!this.schemaKey||(this.uiState="GET_QUERIES",this.gqlService.getQueries(this.appKey,this.schemaKey,this.category,this.pagination.page-1,this.pagination.limit).subscribe({next:e=>{this.queryList=e.queries,this.pagination.total=e.totalCount,this.pagination.totalPages=e.pageCount,this.uiState="SUCCESS"},error:e=>{this.uiState="ERROR"}}))}handlePageChange(e){this.pagination.page!==e.page&&(this.pagination.page=e.page,this.fetchQueries())}addQuery(e){e.stopPropagation(),this.onAddQuery.emit(this.category)}selectQuery(e){this.selectedQueryKey=e.key,this.onQuerySelect.emit(e)}onDeleteQuery(e,n){return qe(this,null,function*(){e.stopPropagation();let t=this.deleteDialogBox.open({heading:`Delete GraphQL ${this.category.toLowerCase()}`,content:`Are you sure you want to delete "${n.name}"?`});(yield Ae(t.instance.getConfirmedObservable()))&&(this.uiState="DELETING",this.gqlService.deleteQuery(this.appKey,this.schemaKey,n.key).subscribe({next:()=>{this.toastr.success(`GraphQL ${this.category.toLowerCase()} deleted successfully.`,"Success"),this.selectedQueryKey===n.key&&this.gqlNavService.selectSchema(this.schemaKey),this.fetchQueries()},error:p=>{this.toastr.error(`Failed to delete GraphQL ${this.category.toLowerCase()}.`,"Error"),this.uiState="SUCCESS"}}
1))})}getCategoryLabel(){switch(this.category){case"QUERY":return"Queries";case"MUTATION":return"Mutations";case"SUBSCRIPTION":return"Subscriptions";default:return this.category}}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=E({type:i,selectors:[["app-graphql-category"]],inputs:{allowEdit:"allowEdit",appKey:"appKey",schemaKey:"schemaKey",category:"category",selectedQueryKey:"selectedQueryKey",schema:"schema",isExpanded:"isExpanded"},outputs:{onQuerySelect:"onQuerySelect",onAddQuery:"onAddQuery"},features:[ge([ce])],decls:15,vars:8,consts:[[1,"api-group-wrap"],[1,"group-header","d-flex","align-items-center","justify-content-between",3,"click"],[1,"d-flex","align-items-center","gap-2","left-side",2,"min-width","0"],[1,"bs-right-open","chevron"],[1,"group-name","fw-500","text-truncate"],[1,"overflow-hidden"],[1,"application-content","position-relative"],[1,"group-body"],[1,"api-item","d-flex","align-items-center","justify-content-between","p-2",3,"selected"],[1,"progress-overlay"],[1,"pagination-wrap","mt-2","py-2","d-flex","justify-content-center","border-top"],[1,"d-flex","align-items-center","gap-2","right-side"],[1,"btn","btn-primary","btn-xs","add-btn",3,"click"],[1,"bs-add"],[1,"api-item","d-flex","align-items-center","justify-content-between","p-2",3,"click"],[1,"d-flex","align-items-center","gap-2","text-truncate"],[1,"api-name","text-truncate",3,"title"],[1,"bs-delete-bin-line","delete-icon",3,"click"],[1,"d-flex","align-items-center","justify-content-center","flex-column","p-3","no-data"],[1,"bs-information-line",2,"font-size","1.25rem"],[1,"no-data-text"],[1,"d-flex","align-items-center","justify-content-center","p-4"],[1,"loader"],[1,"pagination-wrap","mt-2","py-2","d-flex","justify-content-center","border-top",3,"click"],["previousText","\u2039","nextText","\u203A",1,"pagination-sm",3,"ngModelChange","pageChanged","totalItems","itemsPerPage","ngModel","maxSize","rotate","boundaryLinks"]],template:function(n,t){n&1&&(o(0,"div",0)(1,"div",1),u("click",function(p){return t.toggleExpand(p)}),o(2,"div",2),_(3,"i",3),o(4,"span",4),c(5),a()(),C(6,st,1,1),a(),o(7,"div",5)(8,"div",6)(9,"div",7),q(10,ct,5,5,"div",8,at,!1,pt,1,1),C(13,ut,3,0,"div",9)(14,mt,2,6,"div",10),a()()()()),n&2&&(s(3),M("collapsed",t.isExpanded),s(2),S(t.getCategoryLabel()),s(),f(t.allowEdit?6:-1),s(),g("@expandCollapse",t.isExpanded?"expand":"collapse"),s(3),A(t.queryList),s(3),f(t.uiState=="GET_QUERIES"||t.uiState=="DELETING"?13:-1),s(),f(t.pagination.totalPages>1?14:-1))},dependencies:[D,He,Fe,G,Z,X],styles:[`
2
3[_nghost-%COMP%] {
4  display: block;
5}
6.group-header[_ngcontent-%COMP%] {
7  cursor: pointer;
8  transition: background-color 0.2s;
9  -webkit-user-select: none;
10  user-select: none;
11  background-color: #ffffff;
12  border: 1px solid #dee2e6;
13  border-radius: 6px;
14  margin-bottom: 6px;
15  padding: 6px 6px 6px 10px;
16}
17.group-header[_ngcontent-%COMP%]   .chevron[_ngcontent-%COMP%] {
18  font-size: 0.75rem;
19  transition: transform 0.3s;
20}
21.group-header[_ngcontent-%COMP%]   .chevron.collapsed[_ngcontent-%COMP%] {
22  transform: rotate(90deg);
23}
24.group-header[_ngcontent-%COMP%]   .group-name[_ngcontent-%COMP%] {
25  font-size: 0.875rem;
26  color: #495057;
27}
28.group-header[_ngcontent-%COMP%]   .add-btn[_ngcontent-%COMP%] {
29  width: 22px;
30  height: 22px;
31  padding: 0;
32  display: flex;
33  align-items: center;
34  justify-content: center;
35  border-radius: 4px;
36}
37.group-header[_ngcontent-%COMP%]   .add-btn[_ngcontent-%COMP%]   i[_ngcontent-%COMP%] {
38  font-size: 0.75rem;
39  line-height: 1;
40}
41.api-item[_ngcontent-%COMP%] {
42  cursor: pointer;
43  font-size: 0.813rem;
44  border: 1px solid #dee2e6;
45  border-radius: 6px;
46  background-color: #fff;
47  margin-bottom: 6px;
48  margin-left: 1.5rem;
49  transition: all 0.2s;
50}
51.api-item[_ngcontent-%COMP%]:hover {
52  background-color: #f8f9fa;
53  border-color: #ced4da;
54}
55.api-item[_ngcontent-%COMP%]:hover   .api-name[_ngcontent-%COMP%] {
56  color: var(--bs-primary);
57}
58.api-item.selected[_ngcontent-%COMP%] {
59  background-color: #f0f7ff;
60  border-color: var(--bs-primary);
61}
62.api-item.selected[_ngcontent-%COMP%]   .api-name[_ngcontent-%COMP%] {
63  font-weight: 500;
64}
65.api-item[_ngcontent-%COMP%]   .api-name[_ngcontent-%COMP%] {
66  color: var(--text-primary);
67}
68.api-item[_ngcontent-%COMP%]   .delete-icon[_ngcontent-%COMP%] {
69  font-size: 0.875rem;
70  color: #6c757d;
71  opacity: 0.6;
72  transition: opacity 0.2s;
73}
74.api-item[_ngcontent-%COMP%]   .delete-icon[_ngcontent-%COMP%]:hover {
75  opacity: 1;
76  color: var(--bs-danger);
77}
78.progress-overlay[_ngcontent-%COMP%] {
79  position: absolute;
80  top: 0;
81  left: 0;
82  right: 0;
83  bottom: 0;
84  background: rgba(255, 255, 255, 0.7);
85  z-index: 2;
86  display: flex;
87  align-items: center;
88  justify-content: center;
89}
90.no-data-text[_ngcontent-%COMP%] {
91  font-size: 0.75rem;
92}
93.loader[_ngcontent-%COMP%] {
94  width: 20px;
95  height: 20px;
96  border: 2px solid #f3f3f3;
97  border-top: 2px solid var(--bs-primary);
98  border-radius: 50%;
99  animation: _ngcontent-%COMP%_spin 1s linear infinite;
100}
101@keyframes _ngcontent-%COMP%_spin {
102  0% {
103    transform: rotate(0deg);
104  }
105  100% {
106    transform: rotate(360deg);
107  }
108}`],data:{animation:[$("expandCollapse",[I("collapse",Q({height:"0px"})),I("expand",Q({height:"*"})),j("collapse <=> expand",[W("0.3s ease-in-out")])])]}})}return i})();function ht(i,d){if(i&1){let e=x();o(0,"div",13),u("click",function(t){m(e);let r=l();return h(r.deleteGraphqlApi(r.schema.key,t))}),_(1,"i",14),a()}}var Xe=(()=>{class i{_isExpanded=!1;allowEdit=!1;appKey="";schema;selectedQueryKey=null;selectedCategory=null;set isExpanded(e){this._isExpanded=e}get isExpanded(){return this._isExpanded}onSchemaSelect=new z;onQuerySelect=new z;onAddQuery=new z;onDelete=new z;toggleExpand(e){e.stopPropagation(),this._isExpanded=!this._isExpanded,this._isExpanded&&this.onSchemaSelect.emit(this.schema.key)}handleQuerySelect(e){this.onQuerySelect.emit({query:e,schemaKey:this.schema.key})}handleAddQuery(e){this.onAddQuery.emit({category:e,schemaKey:this.schema.key})}deleteGraphqlApi(e,n){n.stopPropagation(),this.onDelete.emit(e)}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=E({type:i,selectors:[["app-graphql-schema"]],inputs:{allowEdit:"allowEdit",appKey:"appKey",schema:"schema",selectedQueryKey:"selectedQueryKey",selectedCategory:"selectedCategory",isExpanded:"isExpanded"},outputs:{onSchemaSelect:"onSchemaSelect",onQuerySelect:"onQuerySelect",onAddQuery:"onAddQuery",onDelete:"onDelete"},decls:14,vars:26,consts:[[1,"schema-wrap"],[1,"schema-header","d-flex","align-items-center","justify-content-between",3,"click"],[1,"d-flex","align-items-center","gap-2","left-side"],[1,"bs-right-open","chevron"],[1,"bs-folder","schema-icon"],[1,"schema-name","fw-500","text-truncate",3,"title"],[1,"d-flex","right-side"],[1,"overflow-hidden"],[1,"p-2"],[1,"schema-body"],["category","QUERY",3,"onQuerySelect","onAddQuery","appKey","schemaKey","allowEdit","selectedQueryKey","isExpanded","schema"],["category","MUTATION",3,"onQuerySelect","onAddQuery","appKey","schemaKey","allowEdit","selectedQueryKey","isExpanded","schema"],["category","SUBSCRIPTION",3,"onQuerySelect","onAddQuery","appKey","schemaKey","allowEdit","selectedQueryKey","isExpanded","schema"],[1,"d-flex","right-side",3,"click"],[1,"bs-delete-bin-line","delete-icon"]],template:function(n,t){n&1&&(o(0,"div",0)(1,"div",1),u("click",function(p){return t.toggleExpand(p)}),o(2,"div",2),_(3,"i",3)(4,"i",4),o(5,"span",5),c(6),a()(),C(7,ht,2,0,"div",6),a(),o(8,"div",7)(9,"div",8)(10,"div",9)(11,"app-graphql-category",10),u("onQuerySelect",function(p){return t.handleQuerySelect(p)})("onAddQuery",function(p){return t.handleAddQuery(p)}),a(),o(12,"app-graphql-category",11),u("onQuerySelect",function(p){return t.handleQuerySelect(p)})("onAddQuery",function(p){return t.handleAddQuery(p)}),a(),o(13,"app-graphql-category",12),u("onQuerySelect",function(p){return t.handleQuerySelect(p)})("onAddQuery",function(p){return t.handleAddQuery(p)}),a()()()()()),n&2&&(s(),M("active",t.isExpanded),s(2),M("collapsed",t.isExpanded),s(2),he("title",t.schema==null?null:t.schema.name),s(),S(t.schema==null?null:t.schema.name),s(),f(t.allowEdit?7:-1),s(),g("@expandCollapse",t.isExpanded?"expand":"collapse"),s(3),g("appKey",t.appKey)("schemaKey",t.schema.key)("allowEdit",t.allowEdit)("selectedQueryKey",t.selectedQueryKey)("isExpanded",t.selectedCategory==="QUERY")("schema",t.schema),s(),g("appKey",t.appKey)("schemaKey",t.schema.key)("allowEdit",t.allowEdit)("selectedQueryKey",t.selectedQueryKey)("isExpanded",t.selectedCategory==="MUTATION")("schema",t.schema),s(),g("appKey",t.appKey)("schemaKey",t.schema.key)("allowEdit",t.allowEdit)("selectedQueryKey",t.selectedQueryKey)("isExpanded",t.selectedCategory==="SUBSCRIPTION")("schema",t.schema))},dependencies:[D,Ze],styles:[`
109
110[_nghost-%COMP%] {
111  display: block;
112}
113.schema-header[_ngcontent-%COMP%] {
114  cursor: pointer;
115  transition: background-color 0.2s;
116  -webkit-user-select: none;
117  user-select: none;
118  background-color: #ffffff;
119  border: 1px solid var(--border-color);
120  border-radius: 6px;
121  padding: 4px 4px 4px 10px;
122}
123.schema-header.active[_ngcontent-%COMP%] {
124  border-color: var(--bs-primary);
125}
126.schema-header[_ngcontent-%COMP%]   .chevron[_ngcontent-%COMP%] {
127  font-size: 1rem;
128  transition: transform 0.3s;
129}
130.schema-header[_ngcontent-%COMP%]   .chevron.collapsed[_ngcontent-%COMP%] {
131  transform: rotate(90deg);
132}
133.schema-header[_ngcontent-%COMP%]   .schema-icon[_ngcontent-%COMP%] {
134  font-size: 1.5rem;
135  line-height: 1;
136  color: var(--bs-primary);
137}
138.schema-header[_ngcontent-%COMP%]   .schema-name[_ngcontent-%COMP%] {
139  font-size: 0.875rem;
140  color: var(--text-primary);
141}
142.schema-header[_ngcontent-%COMP%]   .delete-icon[_ngcontent-%COMP%] {
143  font-size: 0.875rem;
144  color: #6c757d;
145  cursor: pointer;
146  padding: 4px 7px;
147  border-radius: 4px;
148}
149.schema-header[_ngcontent-%COMP%]   .delete-icon[_ngcontent-%COMP%]:hover {
150  background-color: rgba(0, 0, 0, 0.05);
151  color: var(--bs-danger);
152}`],data:{animation:[$("expandCollapse",[I("collapse",Q({height:"0px"})),I("expand",Q({height:"*"})),j("collapse <=> expand",[W("0.3s ease-in-out")])])]}})}return i})();var gt=(i,d)=>d.key;function _t(i,d){i&1&&(o(0,"div",0),_(1,"div",2),a())}function ft(i,d){if(i&1){let e=x();o(0,"app-graphql-schema",3),u("onSchemaSelect",function(t){m(e);let r=l();return h(r.handleSchemaSelect(t))})("onQuerySelect",function(t){m(e);let r=l();return h(r.handleQuerySelect(t))})("onAddQuery",function(t){m(e);let r=l();return h(r.handleAddQuery(t))})("onDelete",function(t){m(e);let r=l();return h(r.handleDeleteSchema(t))}),a()}if(i&2){let e=d.$implicit,n=l();g("appKey",n.application.key)("allowEdit",n.allowEdit)("schema",e)("selectedQueryKey",n.selectedQueryKey)("isExpanded",n.selectedSchemaKey===e.key)("selectedCategory",n.selectedSchemaKey===e.key?n.selectedCategory:null)}}function yt(i,d){i&1&&(o(0,"div",4),_(1,"img",5),o(2,"p"),c(3,"No schemas found"),a()())}function Ct(i,d){if(i&1&&C(0,yt,4,0,"div",4),i&2){let e=l();f(e.uiState!=="GET_SCHEMAS"?0:-1)}}var De=(()=>{class i{allowEdit=!1;application;schemas=[];selectedSchemaKey=null;selectedQueryKey=null;selectedCategory=null;uiState="";isDeleting=!1;destroy$=new F;set setApplication(e){e&&(this.application=e,setTimeout(()=>{this.loadSchemas()},50))}gqlService=y(te);gqlNavService=y(pe);deleteDialogBox=y(ce);toastr=y(U);ngOnInit(){this.gqlNavService.currentSelection$.pipe(T(this.destroy$)).subscribe(e=>{this.selectedSchemaKey=e.schemaKey,this.selectedQueryKey=e.queryKey,this.selectedCategory=e.group}),this.gqlService.schemaListChanged$.pipe(T(this.destroy$)).subscribe(()=>{this.loadSchemas()})}ngAfterViewInit(){this.initializeNavigation()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}initializeNavigation(){let e=this.gqlNavService.initializeFromUrl();e&&(this.selectedSchemaKey=e.schemaKey,this.selectedQueryKey=e.queryKey,this.selectedCategory=e.group)}loadSchemas(){this.application?.key&&(this.uiState="GET_SCHEMAS",this.gqlService.getSchemas(this.application.key,0,50).pipe(T(this.destroy$)).subscribe({next:e=>{this.schemas=e.apis,this.uiState="SUCCESS",this.allowEdit=e.allowEdit,!this.selectedSchemaKey&&this.schemas.length>0&&!this.isDeleting&&this.gqlNavService.selectSchema(this.schemas[0].key),this.isDeleting=!1},error:e=>{this.uiState="ERROR"}}))}handleSchemaSelect(e){this.gqlNavService.selectSchema(e)}handleQuerySelect(e){this.gqlNavService.selectQuery(e.schemaKey,e.query.group,e.query.key)}handleAddQuery(e){this.gqlNavService.setCreateMode(e.schemaKey,e.category)}handleDeleteSchema(e){this.deleteDialogBox.open({heading:"Delete GraphQL API",content:"Are you sure you want to delete this GraphQL API? This action cannot be undone."}).instance.getConfirmedObservable().subscribe(t=>{t&&this.application?.key&&(this.isDeleting=!0,this.gqlService.deleteSchema(this.application.key,e).subscribe({next:()=>{this.loadSchemas(),this.selectedSchemaKey===e&&this.gqlNavService.resetState()},error:r=>{this.toastr.error(r.error?.message||"Failed to delete schema","Error"),this.isDeleting=!1}}))})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=E({type:i,selectors:[["app-sidebar"]],inputs:{setApplication:[0,"application","setApplication"]},features:[ge([ce])],decls:4,vars:2,consts:[[1,"d-flex","align-items-center","justify-content-center","p-5"],[3,"appKey","allowEdit","schema","selectedQueryKey","isExpanded","selectedCategory"],[1,"loader"],[3,"onSchemaSelect","onQuerySelect","onAddQuery","onDelete","appKey","allowEdit","schema","selectedQueryKey","isExpanded","selectedCategory"],[1,"d-flex","align-items-center","justify-content-center","flex-column","pt-5","no-data"],["src","/assets/images/apitesting/no-assests.svg","alt","No data","height","100",1,"no-data-img"]],template:function(n,t){n&1&&(C(0,_t,2,0,"div",0),q(1,ft,1,6,"app-graphql-schema",1,gt,!1,Ct,1,1)),n&2&&(f(t.uiState=="GET_SCHEMAS"?0:-1),s(),A(t.schemas))},dependencies:[D,Xe],styles:[`
153
154[_nghost-%COMP%] {
155  display: block;
156  height: 100%;
157}
158.loader[_ngcontent-%COMP%] {
159  width: 30px;
160  height: 30px;
161  border: 3px solid #f3f3f3;
162  border-top: 3px solid var(--bs-primary);
163  border-radius: 50%;
164  animation: _ngcontent-%COMP%_spin 1s linear infinite;
165}
166@keyframes _ngcontent-%COMP%_spin {
167  0% {
168    transform: rotate(0deg);
169  }
170  100% {
171    transform: rotate(360deg);
172  }
173}
174.no-data[_ngcontent-%COMP%] {
175  color: #adb5bd;
176  font-size: 0.875rem;
177}
178.no-data[_ngcontent-%COMP%]   .no-data-img[_ngcontent-%COMP%] {
179  opacity: 0.5;
180  margin-bottom: 1rem;
181}`]})}return i})();var et=(i,d)=>d.id;function vt(i,d){if(i&1){let e=x();o(0,"div",8),u("click",function(){let t=m(e).$implicit,r=l();return h(r.selectStrategy(t.id))}),o(1,"div",9),_(2,"div",10),a(),o(3,"span",11),c(4),a()()}if(i&2){let e=d.$implicit,n=l();M("active",n.selectedStrategy()===e.id),s(4),S(e.label)}}function bt(i,d){if(i&1){let e=x();o(0,"div",16)(1,"input",21),u("change",function(){let t=m(e).$implicit,r=l(2);return h(r.toggleRoleSelection(t.id))}),a(),o(2,"label",22),c(3),a()()}if(i&2){let e=d.$implicit,n=d.$index,t=l(2);s(),g("id","role-"+n)("checked",t.selectedRoleIds().includes(e.id)),s(),g("for","role-"+n),s(),H(" ",e.roleName," ")}}function St(i,d){if(i&1){let e=x();o(0,"li",30)(1,"a",31),u("click",function(){let t=m(e).$implicit,r=l(5);return h(r.onAuthChange(t))}),c(2),a()()}if(i&2){let e=d.$implicit;s(),g("title",e.name),s(),S(e.name)}}function wt(i,d){if(i&1&&q(0,St,3,2,"li",30,Y),i&2){let e=l(4);A(e.roleAuths())}}function Ot(i,d){i&1&&(o(0,"li",29),c(1,"No authorizations available"),a())}function Mt(i,d){if(i&1&&(o(0,"ul",28),C(1,wt,2,0)(2,Ot,2,0,"li",29),a()),i&2){let e=l(3);s(),f(e.roleAuths().length>0?1:2)}}function Pt(i,d){if(i&1&&(o(0,"div",20)(1,"div",23)(2,"button",24)(3,"span",25),c(4),a(),_(5,"span",26),a(),C(6,Mt,3,1,"ul",27),a()()),i&2){let e=l(2);s(4),S(e.selectedRoleAuth())}}function Et(i,d){if(i&1){let e=x();o(0,"div",6)(1,"div",12)(2,"div",12)(3,"p",13),c(4,"Here you can select multiple roles applicable to the query, and the "),o(5,"strong"),c(6,"default authorization"),a(),c(7," for each selected role will be applied automatically"),a()(),o(8,"app-button",14),u("onClick",function(){m(e);let t=l();return h(t.configureRoleMap())}),a()(),o(9,"div",15),q(10,bt,4,4,"div",16,et),a(),o(12,"div",17)(13,"app-switch",18),u("change",function(t){m(e);let r=l();return h(r.toggleDefaultAuth(t))}),a(),o(14,"span",19),c(15,"I need to apply a non-default authorization"),a()(),C(16,Pt,7,1,"div",20),a()}if(i&2){let e=l();s(10),A(e.roles()),s(3),g("value",!e.isDefaultAuthRole())("disabled",e.selectedRoleIds().length===0),s(),M("text-muted",e.selectedRoleIds().length===0),s(2),f(e.isDefaultAuthRole()?-1:16)}}function Dt(i,d){if(i&1){let e=x();o(0,"li",30)(1,"a",31),u("click",function(){let t=m(e).$implicit,r=l(5);return h(r.onAuthChange(t))}),c(2),a()()}if(i&2){let e=d.$implicit;s(),g("title",e.name),s(),S(e.name)}}function kt(i,d){if(i&1&&q(0,Dt,3,2,"li",30,Y),i&2){let e=l(4);A(e.sharedAuths())}}function Tt(i,d){i&1&&(o(0,"li",29),c(1,"No authorizations available"),a())}function qt(i,d){if(i&1&&(o(0,"ul",36),C(1,kt,2,0)(2,Tt,2,0,"li",29),a()),i&2){let e=l(3);s(),f(e.sharedAuths().length>0?1:2)}}function At(i,d){if(i&1&&(o(0,"div",20)(1,"div",23)(2,"button",34)(3,"span",25),c(4),a(),_(5,"span",26),a(),C(6,qt,3,1,"ul",35),a()()),i&2){let e=l(2);s(4),S(e.selectedSharedAuth())}}function Qt(i,d){if(i&1){let e=x();o(0,"div",7)(1,"p",13),c(2,"default authorization will be applied by default"),a(),o(3,"div",32)(4,"app-switch",33),u("change",function(t){m(e);let r=l();return h(r.toggleDefaultAuth(t))}),a(),o(5,"span"),c(6,"I need to apply a non-default authorization (From "),o(7,"strong"),c(8,"Shared authorization"),a(),c(9,")"),a()(),C(10,At,7,1,"div",20),a()}if(i&2){let e=l();s(4),g("value",!e.isDefaultAuthWithoutRole()),s(6),f(e.isDefaultAuthWithoutRole()?-1:10)}}var ue=(()=>
181{class i{sharedResourceService=y(ve);roleAuthService=y(be);route=y(re);router=y(se);authStrategies=[{id:"NO_AUTH",label:"No auth",info:"No authorization means the query can be executed without requiring any authorization tokens or keys."},{id:"WITH_ROLE",label:"Auth with role",info:"Used for queries that require specific roles or permissions to access certain resources."},{id:"WITHOUT_ROLE",label:"Auth without role",info:"Used for queries that require authentication but do not depend on specific user roles."}];selectedStrategy=O("NO_AUTH");roleAuthData=O([]);withoutRoleAuthData=O({authId:"",defaultAuth:!0});sharedAuths=O([]);roleAuths=O([]);roles=O([]);currentInfo=J(()=>this.authStrategies.find(e=>e.id===this.selectedStrategy())?.info||"");selectedRoleIds=J(()=>this.roleAuthData().map(e=>e.roleId));isDefaultAuthRole=J(()=>this.roleAuthData().length>0?this.roleAuthData()[0].defaultAuth:!0);selectedRoleAuth=J(()=>{let e=this.roleAuthData().length>0?this.roleAuthData()[0].authId:"";return this.roleAuths().find(n=>[n.key,n.id,n.name].includes(e))?.name||"Select authorization"});isDefaultAuthWithoutRole=J(()=>this.withoutRoleAuthData().defaultAuth);selectedSharedAuth=J(()=>this.sharedAuths().find(e=>[e.key,e.id,e.name].includes(this.withoutRoleAuthData().authId))?.name||"Select authorization");_queryDetails=null;_applicationKey="";set applicationKey(e){this._applicationKey=e,e&&(this.loadRoles(),this.loadAuthResources())}get applicationKey(){return this._applicationKey}set queryDetails(e){this._queryDetails=e,e?this.initializeLocalState(e):this.selectedStrategy.set("NO_AUTH")}get queryDetails(){return this._queryDetails}ngOnInit(){}initializeLocalState(e){let n=e.authorization;if(!n){this.selectedStrategy.set("NO_AUTH");return}let t=n.type,r=n.roles||[],p=n.reference;t==="NOAUTH"?this.selectedStrategy.set("NO_AUTH"):t==="ROLEBASED"?(this.selectedStrategy.set("WITH_ROLE"),this.roleAuthData.set(r.map(v=>{let w=typeof v=="object"&&v!==null;return{roleId:w?v.roleId||v.id||v.roleName:v,authId:w?v.authId||v.authName:p||"",defaultAuth:w?v.defaultAuth??(!v.authId&&!v.authName):!p}}))):(this.selectedStrategy.set("WITHOUT_ROLE"),this.withoutRoleAuthData.set({authId:p||"",defaultAuth:t!=="SHARED"&&!p}),this.loadAuthResources())}syncWithQueryDetails(){if(!this._queryDetails)return;let e=this.selectedStrategy();this._queryDetails.authorization||(this._queryDetails.authorization={type:"NOAUTH",roles:[],reference:null});let n=this._queryDetails.authorization;if(e==="NO_AUTH")Object.assign(n,{type:"NOAUTH",roles:[],reference:null});else if(e==="WITH_ROLE"){let t=this.roleAuthData(),r=t[0],p=t.map(v=>{let w=this.roles().find(P=>P.id===v.roleId||P.roleName===v.roleId);return N(k({},v),{roleName:w?.roleName||v.roleId,authName:v.authId})});Object.assign(n,{type:"ROLEBASED",roles:p,reference:r?.defaultAuth??!0?null:r?.authId})}else{let t=this.withoutRoleAuthData();Object.assign(n,{type:t.defaultAuth?"DEFAULT":"SHARED",roles:[],reference:t.defaultAuth?null:t.authId})}}loadRoles(){this._applicationKey&&this.roleAuthService.getRoles(this._applicationKey).subscribe(e=>{e?.roles&&(this.roles.set(e.roles),e.roles.length>0&&this.loadRoleAuth())})}loadRoleAuth(){this.roleAuthService.getAuthByRole(this._applicationKey).subscribe(e=>{e?.result&&(this.roleAuths.set(e.result),this.resolveCurrentSelection(e.result))})}loadAuthResources(){this._applicationKey&&this.sharedResourceService.getSharedResources("authorization",this._applicationKey).subscribe(e=>{e?.authorizations&&(this.sharedAuths.set(e.authorizations),this.resolveCurrentSelection(e.authorizations))})}resolveCurrentSelection(e){if(this.selectedStrategy()==="WITH_ROLE"){let r=this.roleAuthData().map(p=>{if(!p.defaultAuth&&p.authId){let v=e.find(w=>[w.key,w.id,w.name].includes(p.authId));if(v)return N(k({},p),{authId:v.key||v.id||v.name})}return p});this.roleAuthData.set(r)}else{let t=this.withoutRoleAuthData();if(!t.defaultAuth&&t.authId){let r=e.find(p=>[p.key,p.id,p.name].includes(t.authId));if(r){let p=r.key||r.id||r.name;this.withoutRoleAuthData.set(N(k({},t),{authId:p}))}}}}selectStrategy(e){this.selectedStrategy.set(e),e==="WITHOUT_ROLE"&&this.loadAuthResources(),this.syncWithQueryDetails()}toggleRoleSelection(e){let n=this.roleAuthData(),t=n.find(p=>p.roleId===e),r;if(t)r=n.filter(p=>p.roleId!==e);else{let p=n[0];r=[...n,{roleId:e,authId:p?.authId||"",defaultAuth:p?.defaultAuth??!0}]}this.roleAuthData.set(r),this.syncWithQueryDetails()}toggleDefaultAuth(e){let n=!(typeof e=="boolean"?e:e.target.checked);if(this.selectedStrategy()==="WITH_ROLE"){let t=this.roleAuthData().map(r=>N(k({},r),{defaultAuth:n}));this.roleAuthData.set(t)}else this.withoutRoleAuthData.set(N(k({},this.withoutRoleAuthData()),{defaultAuth:n}));this.syncWithQueryDetails()}onAuthChange(e){let n=e.key||e.id||e.name;if(this.selectedStrategy()==="WITH_ROLE"){let t=this.roleAuthData().map(r=>N(k({},r),{authId:n,defaultAuth:!1}));this.roleAuthData.set(t)}else this.withoutRoleAuthData.set(N(k({},this.withoutRoleAuthData()),{authId:n,defaultAuth:!1}));this.syncWithQueryDetails()}configureRoleMap(){this.router.navigate(["../role-based-auth"],{relativeTo:this.route})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=E({type:i,selectors:[["app-auth"]],inputs:{applicationKey:"applicationKey",queryDetails:"queryDetails"},decls:10,vars:3,consts:[[1,"auth-container","mt-4","d-flex","flex-column","gap-4"],[1,"auth-strategies","d-flex","align-items-center","gap-3"],[1,"auth-card","d-flex","align-items-center",3,"active"],[1,"info-box","d-flex","align-items-start","gap-3"],["src","/assets/images/apitesting/bulb.svg",1,"ng-tns-c108171056-21"],[1,"info-text"],[1,"strategy-options","d-flex","flex-column","gap-3"],[1,"without-role-options","d-flex","flex-column","gap-3"],[1,"auth-card","d-flex","align-items-center",3,"click"],[1,"radio-circle"],[1,"inner-circle"],[1,"strategy-label"],[1,"d-flex","align-items-center","gap-3"],[1,"m-0","text-muted"],["type","primary","size","sm","label","Configure",3,"onClick"],[1,"roles-selection","d-flex","flex-wrap","px-2"],[1,"form-check","custom-checkbox"],[1,"d-flex","align-items-center","gap-2","mt-2"],[2,"line-height","1",3,"change","value","disabled"],[1,"toggle-label"],[1,"dropdown-wrapper"],["type","checkbox",1,"form-check-input",3,"change","id","checked"],[1,"form-check-label",3,"for"],["dropdown","",1,"btn-group",2,"min-width","300px"],["id","button-shared-auth-role","dropdownToggle","","type","button","aria-controls","dropdown-shared-auth-role",1,"form-control","text-start","d-flex","justify-content-between","align-items-center","gap-1","dropdown-toggle"],[1,"text-truncate"],[1,"caret"],["id","dropdown-shared-auth-role","class","dropdown-menu w-100","role","menu","aria-labelledby","button-shared-auth-role",4,"dropdownMenu"],["id","dropdown-shared-auth-role","role","menu","aria-labelledby","button-shared-auth-role",1,"dropdown-menu","w-100"],["role","menuitem",1,"p-2","text-center","text-muted","small"],["role","menuitem"],[1,"dropdown-item","text-truncate",3,"click","title"],[1,"d-flex","align-items-center","gap-2"],[2,"line-height","1",3,"change","value"],["id","button-shared-auth","dropdownToggle","","type","button","aria-controls","dropdown-shared-auth",1,"form-control","text-start","d-flex","justify-content-between","align-items-center","gap-1","dropdown-toggle"],["id","dropdown-shared-auth","class","dropdown-menu w-100","role","menu","aria-labelledby","button-shared-auth",4,"dropdownMenu"],["id","dropdown-shared-auth","role","menu","aria-labelledby","button-shared-auth",1,"dropdown-menu","w-100"]],template:function(n,t){n&1&&(o(0,"div",0)(1,"div",1),q(2,vt,5,3,"div",2,et),a(),o(4,"div",3),_(5,"img",4),o(6,"div",5),c(7),a()(),C(8,Et,17,5,"div",6)(9,Qt,11,2,"div",7),a()),n&2&&(s(2),A(t.authStrategies),s(5),H(" ",t.currentInfo()," "),s(),f(t.selectedStrategy()==="WITH_ROLE"?8:-1),s(),f(t.selectedStrategy()==="WITHOUT_ROLE"?9:-1))},dependencies:[D,xe,ee,ye,Ce,fe,G,L],styles:[`
182
183.auth-container[_ngcontent-%COMP%]   .auth-strategies[_ngcontent-%COMP%]   .auth-card[_ngcontent-%COMP%] {
184  border: 1px solid #e2e8f0;
185  border-radius: 8px;
186  padding: 12px 16px;
187  cursor: pointer;
188  transition: all 0.2s ease-in-out;
189  background: #fff;
190  min-width: 160px;
191}
192.auth-container[_ngcontent-%COMP%]   .auth-strategies[_ngcontent-%COMP%]   .auth-card[_ngcontent-%COMP%]:hover {
193  border-color: #006eeb;
194  background: #f8fbff;
195}
196.auth-container[_ngcontent-%COMP%]   .auth-strategies[_ngcontent-%COMP%]   .auth-card.active[_ngcontent-%COMP%] {
197  border-color: #006eeb;
198  background: #f0f7ff;
199  box-shadow: 0 0 0 1px #006eeb;
200}
201.auth-container[_ngcontent-%COMP%]   .auth-strategies[_ngcontent-%COMP%]   .auth-card.active[_ngcontent-%COMP%]   .radio-circle[_ngcontent-%COMP%] {
202  border-color: #006eeb;
203}
204.auth-container[_ngcontent-%COMP%]   .auth-strategies[_ngcontent-%COMP%]   .auth-card.active[_ngcontent-%COMP%]   .radio-circle[_ngcontent-%COMP%]   .inner-circle[_ngcontent-%COMP%] {
205  background: #006eeb;
206}
207.auth-container[_ngcontent-%COMP%]   .auth-strategies[_ngcontent-%COMP%]   .auth-card.active[_ngcontent-%COMP%]   .strategy-label[_ngcontent-%COMP%] {
208  color: #006eeb;
209  font-weight: 600;
210}
211.auth-container[_ngcontent-%COMP%]   .auth-strategies[_ngcontent-%COMP%]   .auth-card[_ngcontent-%COMP%]   .radio-circle[_ngcontent-%COMP%] {
212  width: 18px;
213  height: 18px;
214  border: 2px solid #cbd5e1;
215  border-radius: 50%;
216  display: flex;
217  align-items: center;
218  justify-content: center;
219  margin-right: 12px;
220  flex-shrink: 0;
221}
222.auth-container[_ngcontent-%COMP%]   .auth-strategies[_ngcontent-%COMP%]   .auth-card[_ngcontent-%COMP%]   .radio-circle[_ngcontent-%COMP%]   .inner-circle[_ngcontent-%COMP%] {
223  width: 8px;
224  height: 8px;
225  border-radius: 50%;
226  background: transparent;
227  transition: background 0.2s;
228}
229.auth-container[_ngcontent-%COMP%]   .auth-strategies[_ngcontent-%COMP%]   .auth-card[_ngcontent-%COMP%]   .strategy-label[_ngcontent-%COMP%] {
230  font-size: 14px;
231  color: #475569;
232  white-space: nowrap;
233}
234.auth-container[_ngcontent-%COMP%]   .info-box[_ngcontent-%COMP%] {
235  background: #e6f6ff;
236  border: 1px solid #b3e5ff;
237  border-radius: 6px;
238  padding: 12px 16px;
239  color: #005c8c;
240  font-size: 14px;
241}
242.auth-container[_ngcontent-%COMP%]   .info-box[_ngcontent-%COMP%]   .info-text[_ngcontent-%COMP%] {
243  line-height: 1.5;
244  font-weight: 400;
245}
246.auth-container[_ngcontent-%COMP%]   .strategy-options[_ngcontent-%COMP%]   .roles-selection[_ngcontent-%COMP%]   .custom-checkbox[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%], 
247.auth-container[_ngcontent-%COMP%]   .without-role-options[_ngcontent-%COMP%]   .roles-selection[_ngcontent-%COMP%]   .custom-checkbox[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%] {
248  cursor: pointer;
249  width: 1.125rem;
250  height: 1.125rem;
251  border: 1.5px solid #cbd5e1;
252}
253.auth-container[_ngcontent-%COMP%]   .strategy-options[_ngcontent-%COMP%]   .roles-selection[_ngcontent-%COMP%]   .custom-checkbox[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:checked, 
254.auth-container[_ngcontent-%COMP%]   .without-role-options[_ngcontent-%COMP%]   .roles-selection[_ngcontent-%COMP%]   .custom-checkbox[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:checked {
255  background-color: #006eeb;
256  border-color: #006eeb;
257}
258.auth-container[_ngcontent-%COMP%]   .strategy-options[_ngcontent-%COMP%]   .roles-selection[_ngcontent-%COMP%]   .custom-checkbox[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:focus, 
259.auth-container[_ngcontent-%COMP%]   .without-role-options[_ngcontent-%COMP%]   .roles-selection[_ngcontent-%COMP%]   .custom-checkbox[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:focus {
260  box-shadow: 0 0 0 0.25rem rgba(0, 110, 235, 0.1);
261}
262.auth-container[_ngcontent-%COMP%]   .strategy-options[_ngcontent-%COMP%]   .roles-selection[_ngcontent-%COMP%]   .custom-checkbox[_ngcontent-%COMP%]   .form-check-label[_ngcontent-%COMP%], 
263.auth-container[_ngcontent-%COMP%]   .without-role-options[_ngcontent-%COMP%]   .roles-selection[_ngcontent-%COMP%]   .custom-checkbox[_ngcontent-%COMP%]   .form-check-label[_ngcontent-%COMP%] {
264  cursor: pointer;
265  font-size: 0.938rem;
266  color: #475569;
267  -webkit-user-select: none;
268  user-select: none;
269  margin-left: 4px;
270}
271.auth-container[_ngcontent-%COMP%]   .strategy-options[_ngcontent-%COMP%]   .toggle-label[_ngcontent-%COMP%], 
272.auth-container[_ngcontent-%COMP%]   .without-role-options[_ngcontent-%COMP%]   .toggle-label[_ngcontent-%COMP%] {
273  font-size: 0.938rem;
274  font-weight: 500;
275  color: #1e293b;
276}
277.auth-container[_ngcontent-%COMP%]   .dropdown-wrapper[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%] {
278  height: 40px;
279  border-color: #e2e8f0;
280  border-radius: 6px;
281  font-size: 14px;
282  color: #475569;
283  box-shadow: none;
284}
285.auth-container[_ngcontent-%COMP%]   .dropdown-wrapper[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:hover, 
286.auth-container[_ngcontent-%COMP%]   .dropdown-wrapper[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:focus {
287  border-color: #006eeb;
288}
289.auth-container[_ngcontent-%COMP%]   .dropdown-wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%] {
290  border-color: #e2e8f0;
291  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
292}
293.auth-container[_ngcontent-%COMP%]   .dropdown-wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]   .dropdown-item[_ngcontent-%COMP%] {
294  font-size: 14px;
295  padding: 8px 16px;
296  color: #475569;
297}
298.auth-container[_ngcontent-%COMP%]   .dropdown-wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]   .dropdown-item[_ngcontent-%COMP%]:hover {
299  background-color: #f8fbff;
300  color: #006eeb;
301}`]})}return i})();function It(i,d){if(i&1&&(o(0,"tr",11)(1,"td")(2,"span",12),c(3),a()(),o(4,"td"),c(5),a(),o(6,"td"),c(7),a(),o(8,"td")(9,"div",13),_(10,"app-checkbox",14),a()(),_(11,"td"),a()),i&2){let e=d.$implicit,n=d.$index;s(3),S(n+1),s(2),S(e.key),s(2),S(e.value),s(3),g("value",e.include)}}function Rt(i,d){if(i&1&&q(0,It,12,4,"tr",11,Y),i&2){let e=l();A(e.defaultHeaders())}}function Vt(i,d){if(i&1){let e=x();o(0,"tr")(1,"td"),c(2),a(),o(3,"td"),c(4),a(),o(5,"td"),c(6),a(),o(7,"td")(8,"div",13),_(9,"app-checkbox",15),a()(),o(10,"td")(11,"div",16)(12,"button",17),u("click",function(){let t=m(e).$implicit,r=l();return h(r.updateHeader(t))}),_(13,"i",18),a(),o(14,"button",19),u("click",function(){let t=m(e).$index,r=l();return h(r.deleteHeader(t))}),_(15,"i",20),a()()()()}if(i&2){let e=d.$implicit,n=d.$index,t=l();s(2),S(t.showDefaultHeaders()?n+1+t.defaultHeaders().length:n+1),s(2),S(e.key),s(2),S(e.value),s(3),g("value",e.include)}}function Kt(i,d){i&1&&(o(0,"tr")(1,"td",21)(2,"div",22),_(3,"i",23),o(4,"div",24),c(5,"No headers found"),a(),o(6,"div",25),c(7,"Click 'Add header' to create a new header. "),a()()()())}function Gt(i,d){if(i&1){let e=x();o(0,"app-header-form",26),u("save",function(t){m(e);let r=l();return h(r.onSave(t))})("cancel",function(){m(e);let t=l();return h(t.hideOverlay())}),a()}if(i&2){let e=l();g("location","API_DETAILS")("header",e.headerToModify)("action",e.showSidePanel().action)}}var tt=(()=>{class i{showDefaultHeaders=O(!1);headers=O([]);defaultHeaders=O([]);headerToModify=null;showSidePanel=O({show:!1,action:""});isHeadersListEmpty=J(()=>{let e=this.headers().length>0,n=this.showDefaultHeaders()&&this.defaultHeaders().length>0;return!e&&!n});_queryDetails=null;headerIndexToModify=-1;destroy$=new F;set queryDetails(e){this._queryDetails=e,e?this.headers.set(e.headers||[]):this.headers.set([])}get queryDetails(){return this._queryDetails}defaultHeadersService=y(je);apiDataService=y(le);ngOnInit(){this.apiDataService.appConfig$.pipe(T(this.destroy$)).subscribe(e=>{e?.key&&this.fetchDefaultHeaders(e.key)})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}fetchDefaultHeaders(e){this.defaultHeadersService.getDefaultHeaders(e).pipe(T(this.destroy$)).subscribe({next:n=>{let t=(n.headers||[]).map(r=>({key:r.key,value:r.value,include:!0}));this.defaultHeaders.set(t)},error:n=>{}})}onDefaultHeadersToggle(e){typeof e=="boolean"&&(this.showDefaultHeaders.set(e),this.queryDetails&&(this.queryDetails.disableDefaultHeaders=e?[]:[]))}addHeader(){this.headerToModify=null,this.headerIndexToModify=-1,this.openSidebar("CREATE")}updateHeader(e){this.headerToModify=k({},e),this.headerIndexToModify=this.headers().indexOf(e),this.openSidebar("UPDATE")}deleteHeader(e){this.headers.update(n=>{let t=[...n];return t.splice(e,1),this.queryDetails&&this.queryDetails.headers.splice(e,1),t})}onSave(e){this.showSidePanel().action==="CREATE"?(this.headers.update(n=>[...n,e]),this.queryDetails&&(this.queryDetails.headers||(this.queryDetails.headers=[]),this.queryDetails.headers.push(e))):this.showSidePanel().action==="UPDATE"&&this.headerIndexToModify!==-1&&this.headers.update(n=>{let t=[...n];return t[this.headerIndexToModify]=e,this.queryDetails&&(this.queryDetails.headers[this.headerIndexToModify]=e),t}),this.hideOverlay()}openSidebar(e){this.showSidePanel.update(n=>({action:"",show:!0})),setTimeout(()=>{this.showSidePanel.update(n=>N(k({},n),{action:e}))},10)}hideOverlay(){this.showSidePanel.update(e=>N(k({},e),{action:""})),setTimeout(()=>{this.showSidePanel.update(e=>N(k({},e),{show:!1})),this.headerToModify=null,this.headerIndexToModify=-1},300)}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=E({type:i,selectors:[["app-headers"]],inputs:{queryDetails:"queryDetails"},decls:27,vars:12,consts:[[1,"headers-container"],[1,"d-flex","justify-content-between","align-items-center","mb-4"],[3,"change","label","value"],["size","sm",3,"onClick","label","type","iconClass"],[1,"table-wrapper"],[2,"width","50px"],[2,"width","100px"],[1,"drawer-overlay"],[1,"left-dummy-panel",3,"click"],[1,"sidebar","sm-sidebar"],[3,"location","header","action"],[1,"default-header-row"],[1,"text-secondary","opacity-50","small"],[1,"checkbox-container"],[2,"pointer-events","none","opacity","0.6",3,"value"],[2,"pointer-events","none",3,"value"],[1,"d-flex","gap-2","justify-content-end"],[1,"action-btn","edit",3,"click"],[1,"bs-pencil-line"],[1,"action-btn","delete",3,"click"],[1,"bs-delete-bin-line"],["colspan","5",1,"text-center","py-5"],[1,"empty-state"],[1,"bs-information-line","text-secondary",2,"font-size","2rem"],[1,"text-secondary","fw-500"],[1,"text-secondary","small","opacity-75"],[3,"save","cancel","location","header","action"]],template:function(n,t){n&1&&(o(0,"div",0)(1,"div",1)(2,"app-switch",2),u("change",function(p){return t.onDefaultHeadersToggle(p)}
301),a(),o(3,"app-button",3),u("onClick",function(){return t.addHeader()}),a()(),o(4,"div",4)(5,"table")(6,"thead")(7,"tr")(8,"th",5),c(9,"#"),a(),o(10,"th"),c(11,"Key"),a(),o(12,"th"),c(13,"Value"),a(),o(14,"th"),c(15,"Include"),a(),o(16,"th",6),c(17,"Actions"),a()()(),o(18,"tbody"),C(19,Rt,2,0),q(20,Vt,16,4,"tr",null,Y),C(22,Kt,8,0,"tr"),a()()()(),o(23,"div",7)(24,"div",8),u("click",function(){return t.hideOverlay()}),a(),o(25,"div",9),C(26,Gt,1,3,"app-header-form",10),a()()),n&2&&(s(2),g("label","Show default headers")("value",t.showDefaultHeaders()),s(),g("label","Add header")("type","primary")("iconClass","bs-add"),s(16),f(t.showDefaultHeaders()?19:-1),s(),A(t.headers()),s(2),f(t.isHeadersListEmpty()?22:-1),s(),M("hidden",!t.showSidePanel().show),g("@showHideOverlay",t.showSidePanel().action.length>0?"show":"hide"),s(2),g("@toggleSidebar",t.showSidePanel().action.length>0?"show":"hide"),s(),f(t.showSidePanel().show?26:-1))},dependencies:[D,L,Ke,xe,G,Be],styles:[`
302
303table[_ngcontent-%COMP%] {
304  border-collapse: separate;
305  border-spacing: 0;
306  width: 100%;
307}
308table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]   th[_ngcontent-%COMP%] {
309  background: var(--card-bg);
310  border-bottom: 1px solid var(--border-color);
311  border-top: 1px solid var(--border-color);
312  padding: 14px 12px;
313  position: sticky;
314  top: 0;
315  z-index: 1;
316}
317table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]   td[_ngcontent-%COMP%] {
318  padding: 10px 12px;
319  background-color: var(--bs-card-bg);
320  border-bottom: 1px solid var(--border-color);
321}
322table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]:first-child, 
323table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:first-child {
324  border-left: 1px solid var(--border-color);
325}
326table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]:last-child, 
327table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:last-child {
328  border-right: 1px solid var(--border-color);
329}
330table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:first-child   th[_ngcontent-%COMP%]:first-child {
331  border-top-left-radius: 6px;
332}
333table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:first-child   th[_ngcontent-%COMP%]:last-child {
334  border-top-right-radius: 6px;
335}
336table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:last-child   td[_ngcontent-%COMP%]:first-child {
337  border-bottom-left-radius: 6px;
338}
339table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:last-child   td[_ngcontent-%COMP%]:last-child {
340  border-bottom-right-radius: 6px;
341}`,`
342
343.headers-container[_ngcontent-%COMP%] {
344  background-color: #fff;
345  font-size: 0.813rem;
346}
347.checkbox-container[_ngcontent-%COMP%] {
348  display: flex;
349  align-items: center;
350}
351.action-btn[_ngcontent-%COMP%] {
352  width: 26px;
353  height: 26px;
354  border: none;
355  border-radius: 8px;
356  padding: 0;
357  background-color: transparent;
358  display: flex;
359  align-items: center;
360  justify-content: center;
361  transition: all 0.2s ease-in-out;
362  cursor: pointer;
363}
364.action-btn[_ngcontent-%COMP%]   i[_ngcontent-%COMP%] {
365  color: var(--text-tertiary);
366  font-size: 14px;
367  line-height: 1;
368  position: relative;
369  top: -1px;
370}
371.action-btn[_ngcontent-%COMP%]:hover {
372  background-color: #e5e5e5;
373}
374.action-btn[_ngcontent-%COMP%]:hover   i[_ngcontent-%COMP%] {
375  color: var(--text-primary);
376}
377.action-btn.edit[_ngcontent-%COMP%]:hover   i[_ngcontent-%COMP%] {
378  color: #006ceb;
379}
380.action-btn.delete[_ngcontent-%COMP%]:hover   i[_ngcontent-%COMP%] {
381  color: #cb0000;
382}
383.hidden[_ngcontent-%COMP%] {
384  pointer-events: none;
385}`],data:{animation:[$("showHideOverlay",[I("show",Q({opacity:"1"})),I("hide",Q({opacity:"0"})),j("show <=> hide",[W("0.3s ease-in-out")])]),$("toggleSidebar",[I("show",Q({right:"0"})),I("hide",Q({right:"-100%"})),j("show <=> hide",[W("0.3s ease-in-out")])])]}})}return i})();var zt=()=>({"min-width":"120px",padding:"9px 10px"});function Nt(i,d){if(i&1){let e=x();o(0,"div",29),u("click",function(){m(e);let t=l(2);return h(t.handleSave())}),_(1,"app-button",30),a()}if(i&2){let e=l(2);s(),Me("pointer-events",e.isSaveDisabled?"none":"auto"),g("label",e.isEditMode?"Save":"Create")("disabled",e.isSaveDisabled)}}function Lt(i,d){if(i&1){let e=x();o(0,"div",20)(1,"app-button",31),u("click",function(){m(e);let t=l(2);return h(t.send.emit())}),a()()}i&2&&(s(),g("styles",_e(1,zt)))}function Ft(i,d){if(i&1){let e=x();o(0,"div",32),u("click",function(){let t=m(e).$implicit,r=l(2);return h(r.selectTab(t))}),c(1),a()}if(i&2){let e=d.$implicit,n=l(2);M("active",n.activeTab===e),s(),H(" ",e," ")}}function Ht(i,d){if(i&1){let e=x();o(0,"div",26)(1,"div",33)(2,"label",34),c(3,"Query"),a(),o(4,"div",35)(5,"ngx-monaco-editor",36),K("ngModelChange",function(t){m(e);let r=l(2);return V(r.queryDetails.body.query,t)||(r.queryDetails.body.query=t),h(t)}),a()()(),o(6,"div",33)(7,"label",34),c(8,"Query variables"),a(),o(9,"div",35)(10,"ngx-monaco-editor",36),K("ngModelChange",function(t){m(e);let r=l(2);return V(r.queryDetails.body.queryVariable,t)||(r.queryDetails.body.queryVariable=t),h(t)}),a()()()()}if(i&2){let e=l(2);s(5),g("options",e.queryEditorOptions),R("ngModel",e.queryDetails.body.query),s(5),g("options",e.variablesEditorOptions),R("ngModel",e.queryDetails.body.queryVariable)}}function Ut(i,d){if(i&1&&_(0,"app-auth",27),i&2){let e=l(2);g("queryDetails",e.queryDetails)("applicationKey",e.applicationKey)}}function $t(i,d){if(i&1&&_(0,"app-headers",28),i&2){let e=l(2);g("queryDetails",e.queryDetails)}}function Wt(i,d){if(i&1){let e=x();o(0,"div",0)(1,"div",2)(2,"h5",3),c(3),a(),o(4,"div",4),C(5,Nt,2,4,"div",5),a()(),o(6,"div",6)(7,"div",7)(8,"div",8)(9,"label",9),c(10,"Name"),a()(),o(11,"div",10)(12,"input",11),K("ngModelChange",function(t){m(e);let r=l();return V(r.queryDetails.name,t)||(r.queryDetails.name=t),h(t)}),a()()(),o(13,"div",12)(14,"div",8)(15,"label",9),c(16,"API"),a()(),o(17,"div",10)(18,"div",13)(19,"div",14)(20,"div",15)(21,"button",16)(22,"span",17),c(23,"POST"),a()()()(),o(24,"div",18)(25,"input",19),K("ngModelChange",function(t){m(e);let r=l();return V(r.queryDetails.url,t)||(r.queryDetails.url=t),h(t)}),a()(),C(26,Lt,2,2,"div",20),a()()()(),o(27,"div",21)(28,"div",22),q(29,Ft,2,3,"div",23,Ie),_(31,"div",24),a(),o(32,"div",25),C(33,Ht,11,4,"div",26)(34,Ut,1,2,"app-auth",27)(35,$t,1,1,"app-headers",28),a()()()}if(i&2){let e,n=l();s(3),S(n.isEditMode?"Query configuration":"Create configuration"),s(2),f(n.allowEditGroup?5:-1),s(7),R("ngModel",n.queryDetails.name),s(13),R("ngModel",n.queryDetails.url),s(),f(n.isInternal?-1:26),s(3),A(n.tabs),s(2),Me("width",110,"px")("left",n.tabs.indexOf(n.activeTab)*110,"px"),s(2),f((e=n.activeTab)==="Queries"?33:e==="Authorization"?34:e==="Headers"?35:-1)}}
385function jt(i,d){i&1&&(o(0,"div",1)(1,"div",37)(2,"span",38),c(3,"Loading..."),a()()())}var ke=(()=>{class i{authComponent;tabs=["Queries","Authorization","Headers"];activeTab="Queries";groups=["QUERY","MUTATION","SUBSCRIPTION"];methods=["POST"];destroy$=new F;allowEditGroup;save=Oe();send=Oe();queryEditorOptions={theme:"vs-light",language:"graphql",automaticLayout:!0,minimap:{enabled:!1}};variablesEditorOptions={theme:"vs-light",language:"json",automaticLayout:!0,minimap:{enabled:!1}};queryDetails=null;applicationKey="";isInternal=!1;apiDetailsService=y(Ue);apiDataService=y(le);route=y(re);router=y(se);toastr=y(U);ngOnInit(){this.apiDataService.appConfig$.pipe(T(this.destroy$)).subscribe(e=>{e&&e.key&&this.getAllGroupNames(e.key)}),this.route.queryParams.pipe(T(this.destroy$)).subscribe(e=>{let n=e.tab;n&&this.tabs.includes(n)&&(this.activeTab=n)})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}get isEditMode(){return!!this.queryDetails?.key}get isSaveDisabled(){return!!this.queryDetails&&this.queryDetails.source!=="CONFIGURED"&&this.queryDetails.source!=="IMPORT
385ED"}selectTab(e){this.activeTab=e,this.router.navigate([],{relativeTo:this.route,queryParams:{tab:e},queryParamsHandling:"merge"})}handleSave(){this.queryDetails&&this.queryDetails.source!=="CONFIGURED"&&this.queryDetails.source!=="IMPORTED"?this.toastr.warning("All configuration must be performed using Postman.","Warning"):this.save.emit()}getAllGroupNames(e){this.apiDetailsService.getAllGroupNames(e).pipe(T(this.destroy$)).subscribe({next:n=>{this.allowEditGroup=n.allowEdit},error:n=>{console.error("Error fetching group names",n)}})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=E({type:i,selectors:[["app-query-details"]],viewQuery:function(n,t){if(n&1&&ie(ue,5),n&2){let r;oe(r=ae())&&(t.authComponent=r.first)}},inputs:{queryDetails:"queryDetails",applicationKey:"applicationKey",isInternal:"isInternal"},outputs:{save:"save",send:"send"},decls:2,vars:1,consts:[[1,"query-details-container","px-3","py-3"],[1,"d-flex","justify-content-center","p-5"],[1,"header","d-flex","justify-content-between","align-items-center","mb-4"],[1,"title","m-0","fw-500"],[1,"d-flex","gap-3"],[2,"display","inline-block"],[1,"config-fields","mb-4"],[1,"row","mb-3","align-items-center"],[1,"col-md-1"],[1,"form-label","mb-0"],[1,"col-md-11"],["type","text","placeholder","Enter query name",1,"form-control",3,"ngModelChange","ngModel"],[1,"row","align-items-center"],[1,"d-flex","align-items-center","gap-0"],[1,"method-dropdown-wrap"],[1,"btn-group"],["id","button-method","type","button","disabled","",1,"form-control","text-start","d-flex","justify-content-between","align-items-center","dropdown-toggle","method-dropdown",2,"cursor","default"],[1,"method-badge","fw-500","POST"],[1,"flex-grow-1"],["type","text","placeholder","Enter URL",1,"form-control","url-input",3,"ngModelChange","ngModel"],[1,"ms-3"],[1,"tabs-container"],[1,"tabs-header"],[1,"tab-item",3,"active"],[1,"active-indicator"],[1,"tab-content","pt-4","pb-5"],[1,"row"],[3,"queryDetails","applicationKey"],[3,"queryDetails"],[2,"display","inline-block",3,"click"],["type","primary","size","sm",3,"label","disabled"],["type","white","label","Send","size","sm",3,"click","styles"],[1,"tab-item",3,"click"],[1,"col-md-6"],[1,"fw-500","mb-2","label-title"],[1,"editor-container","border","rounded"],[3,"ngModelChange","options","ngModel"],["role","status",1,"spinner-border","text-primary"],[1,"visually-hidden"]],template:function(n,t){n&1&&C(0,Wt,36,10,"div",0)(1,jt,4,0,"div",1),n&2&&f(t.queryDetails?0:1)},dependencies:[D,ue,tt,de,G,Re,Z,X,L,ee],styles:[`
386
387.query-details-container[_ngcontent-%COMP%] {
388  width: 100%;
389}
390.header[_ngcontent-%COMP%]   .title[_ngcontent-%COMP%] {
391  font-size: 1.125rem;
392  color: var(--text-primary);
393}
394.config-fields[_ngcontent-%COMP%]   .form-label[_ngcontent-%COMP%] {
395  font-size: 0.813rem;
396  font-weight: 500;
397  color: var(--text-secondary);
398}
399.config-fields[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%] {
400  font-size: 0.813rem;
401  height: 38px;
402  border: 1px solid #ced4da;
403  border-radius: 4px;
404}
405.config-fields[_ngcontent-%COMP%]   .form-control.url-input[_ngcontent-%COMP%] {
406  border-top-left-radius: 0;
407  border-bottom-left-radius: 0;
408  border-left: 0;
409}
410.config-fields[_ngcontent-%COMP%]   .form-control.method-dropdown[_ngcontent-%COMP%] {
411  border-top-right-radius: 0;
412  border-bottom-right-radius: 0;
413  background-color: #fff;
414  min-width: 100px;
415  cursor: pointer;
416}
417.config-fields[_ngcontent-%COMP%]   .form-control.method-dropdown[_ngcontent-%COMP%]:after {
418  display: none;
419}
420.config-fields[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:focus {
421  border-color: #80bdff;
422  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
423}
424.config-fields[_ngcontent-%COMP%]   .method-badge[_ngcontent-%COMP%] {
425  font-size: 0.75rem;
426  font-weight: 500;
427  text-transform: uppercase;
428  display: inline-block;
429}
430.config-fields[_ngcontent-%COMP%]   .method-badge.POST[_ngcontent-%COMP%] {
431  color: #ffb300;
432}
433.config-fields[_ngcontent-%COMP%]   .caret[_ngcontent-%COMP%] {
434  display: inline-block;
435  width: 0;
436  height: 0;
437  margin-left: 2px;
438  vertical-align: middle;
439  border-top: 4px dashed;
440  border-top: 4px solid \\	;
441  border-right: 4px solid transparent;
442  border-left: 4px solid transparent;
443}
444.tabs-container[_ngcontent-%COMP%] {
445  width: 100%;
446}
447.tabs-container[_ngcontent-%COMP%]   .tabs-header[_ngcontent-%COMP%] {
448  display: flex;
449  position: relative;
450  border-bottom: 2px solid #EAEAEA;
451}
452.tabs-container[_ngcontent-%COMP%]   .tabs-header[_ngcontent-%COMP%]   .tab-item[_ngcontent-%COMP%] {
453  width: 110px;
454  text-align: center;
455  padding: 10px 0;
456  cursor: pointer;
457  font-size: 0.813rem;
458  font-weight: 500;
459  color: #6C757D;
460  transition: color 0.3s ease;
461  flex-shrink: 0;
462}
463.tabs-container[_ngcontent-%COMP%]   .tabs-header[_ngcontent-%COMP%]   .tab-item.active[_ngcontent-%COMP%] {
464  color: var(--bs-primary);
465}
466.tabs-container[_ngcontent-%COMP%]   .tabs-header[_ngcontent-%COMP%]   .tab-item[_ngcontent-%COMP%]:hover {
467  color: #495057;
468}
469.tabs-container[_ngcontent-%COMP%]   .tabs-header[_ngcontent-%COMP%]   .active-indicator[_ngcontent-%COMP%] {
470  position: absolute;
471  bottom: -2px;
472  height: 2px;
473  background-color: var(--bs-primary);
474  transition: left 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
475}
476.editor-container[_ngcontent-%COMP%] {
477  height: 300px;
478  overflow: hidden;
479}
480.editor-container[_ngcontent-%COMP%]   ngx-monaco-editor[_ngcontent-%COMP%] {
481  height: 100%;
482  width: 100%;
483}
484.label-title[_ngcontent-%COMP%] {
485  color: var(--text-primary);
486  font-size: 0.875rem;
487  font-weight: 500;
488}`]})}return i})();var Bt=()=>({standalone:!0});function Jt(i,d){if(i&1){let e=x();o(0,"app-button",14),u("click",function(){m(e);let t=l();return h(t.onEdit())}),a()}}var nt=(()=>{class i{editorOptions={theme:"vs-light",language:"json",readOnly:!0,automaticLayout:!0,minimap:{enabled:!1},lineNumbers:"off",scrollBeyondLastLine:!1,wordWrap:"on",stickyScroll:{enabled:!1}};schemaDetails=null;edit=new z;onEdit(){this.edit.emit()}getPrettyJson(e){try{return JSON.stringify(typeof e=="string"?JSON.parse(e):e,null,2)}catch{return e}}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=E({type:i,selectors:[["app-schema-overview"]],inputs:{schemaDetails:"schemaDetails"},outputs:{edit:"edit"},decls:23,vars:7,consts:[[1,"details-wrapper"],[1,"d-flex","align-items-center","justify-content-between","head"],[1,"fw-500"],[1,"body-wrap"],[1,"details-wrap"],[1,"d-flex","align-items-center","mb-3","key-value-wrap"],[1,"key"],[1,"d-flex","align-items-center","justify-content-between","w-100","fw-500","value"],["type","white","label","Edit","size","sm","iconClass","bs-pencil-line"],[1,"flex-grow-1","fw-500","value"],[1,"d-flex","key-value-wrap"],[1,"w-100","schema-wrap"],[1,"schema-body"],[1,"graphql-schema",3,"options","ngModel","ngModelOptions"],["type","white","label","Edit","size","sm","iconClass","bs-pencil-line",3,"click"]],template:function(n,t){n&1&&(o(0,"div",0)(1,"div",1)(2,"div",2),c(3,"GraphQL configuration"),a()(),o(4,"div",3)(5,"div",4)(6,"div",5)(7,"div",6),c(8,"Name"),a(),o(9,"div",7),c(10),C(11,Jt,1,0,"app-button",8),a()(),o(12,"div",5)(13,"div",6),c(14,"API"),a(),o(15,"div",9),c(16),a()(),o(17,"div",10)(18,"div",6),c(19,"Schema"),a(),o(20,"div",11)(21,"div",12),_(22,"ngx-monaco-editor",13),a()()()()()()),n&2&&(s(10),H(" ",t.schemaDetails==null?null:t.schemaDetails.name," "),s(),f((t.schemaDetails==null?null:t.schemaDetails.source)!="INTEGRATED"?11:-1),s(5),H(" ",t.schemaDetails==null?null:t.schemaDetails.url," "),s(6),g("options",t.editorOptions)("ngModel",t.getPrettyJson(t.schemaDetails==null?null:t.schemaDetails.schema))("ngModelOptions",_e(6,Bt)))},dependencies:[D,L,de,G,Z,X],styles:[`
489
490.head[_ngcontent-%COMP%] {
491  font-size: 1rem;
492  padding: 18px 24px;
493  border-bottom: 1px solid var(--border-color);
494}
495.body-wrap[_ngcontent-%COMP%] {
496  padding: 24px;
497}
498.body-wrap[_ngcontent-%COMP%]   .key-value-wrap[_ngcontent-%COMP%] {
499  gap: 18px;
500  font-size: 0.875rem;
501}
502.body-wrap[_ngcontent-%COMP%]   .key-value-wrap[_ngcontent-%COMP%]   .key[_ngcontent-%COMP%] {
503  min-width: 120px;
504  color: var(--text-secondary);
505}
506.body-wrap[_ngcontent-%COMP%]   .key-value-wrap[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%] {
507  color: var(--text-primary);
508}
509.body-wrap[_ngcontent-%COMP%]   .schema-wrap[_ngcontent-%COMP%] {
510  margin-top: 8px;
511}
512.body-wrap[_ngcontent-%COMP%]   .schema-wrap[_ngcontent-%COMP%]   .schema-body[_ngcontent-%COMP%] {
513  width: 100%;
514  height: 500px;
515  background-color: #f8f9fa;
516  border-radius: 8px;
517  border: 1px solid var(--border-color);
518  overflow: hidden;
519}
520.body-wrap[_ngcontent-%COMP%]   .schema-wrap[_ngcontent-%COMP%]   .schema-body[_ngcontent-%COMP%]   .graphql-schema[_ngcontent-%COMP%] {
521  height: 100%;
522}
523[_nghost-%COMP%]     .monaco-editor, 
524[_nghost-%COMP%]     .monaco-editor-background, 
525[_nghost-%COMP%]     .monaco-editor .margin {
526  background-color: #f8f9fa !important;
527}`]})}return i})();function Yt(i,d){if(i&1){let e=x();o(0,"div",19)(1,"ngx-monaco-editor",25),K("ngModelChange",function(t){m(e);let r=l();return V(r.schema.schema,t)||(r.schema.schema=t),h(t)}),a()()}if(i&2){let e=l();s(),g("options",e.editorOptions),R("ngModel",e.schema.schema)}}function Zt(i,d){i&1&&(o(0,"div",26),_(1,"div",27),o(2,"span"),c(3,"Uploading..."),a()())}function Xt(i,d){if(i&1){let e=x();o(0,"div",28),c(1),a(),o(2,"button",29),u("click",function(){m(e);let t=l(2);return h(t.uploadSuccessMessage="")}
527),c(3,"Upload another"),a()}if(i&2){let e=l(2);s(),S(e.uploadSuccessMessage)}}function en(i,d){if(i&1){let e=x();_(0,"i",30),o(1,"p",31),c(2,"Drag and drop schema file here or"),a(),o(3,"input",32,0),u("change",function(t){m(e);let r=l(2);return h(r.onFileChange(t))}),a(),o(5,"app-button",33),u("onClick",function(){m(e);let t=Pe(4);return h(t.click())}),a()}}function tn(i,d){if(i&1&&(o(0,"div",20),C(1,Zt,4,0,"div",26)(2,Xt,4,1)(3,en,6,0),a()),i&2){let e=l();s(),f(e.uploading()?1:e.uploadSuccessMessage?2:3)}}function nn(i,d){if(i&1){let e=x();o(0,"li",53),u("click",function(){let t=m(e).$implicit,r=l(4);return h(r.selectOptionItem(t))}),o(1,"a",54),c(2),a()()}if(i&2){let e=d.$implicit;s(2),S(e)}}function on(i,d){i&1&&(o(0,"li",52),c(1,"No item(s) found"),a())}function an(i,d){if(i&1&&(o(0,"ul",50),q(1,nn,3,1,"li",51,Y,!1,on,2,0,"li",52),a()),i&2){let e=l(3);s(),A(e.options)}}function rn(i,d){if(i&1){let e=x();o(0,"div",39)(1,"div",44)(2,"span",45),c(3,"Select an option:"),a(),o(4,"div",46,1)(6,"app-input",47),K("valueChange",function(t){m(e);let r=l(2);return V(r.selectedOptionDisplayText,t)||(r.selectedOptionDisplayText=t),h(t)}),u("valueChange",function(){m(e);let t=Pe(5);return h(t.show())}),a(),C(7,an,4,1,"ul",48),a()(),o(8,"app-button",49),u("onClick",function(){m(e);let t=l(2);return h(t.onFetchSchema())}),a()()}if(i&2){let e=l(2);s(6),R("value",e.selectedOptionDisplayText),g("trim",!0),s(2),g("showSpinner",e.fetching())}}function sn(i,d){if(i&1){let e=x();o(0,"div",40)(1,"ngx-monaco-editor",25),K("ngModelChange",function(t){m(e);let r=l(2);return V(r.introspectionQuery,t)||(r.introspectionQuery=t),h(t)}),a()()}if(i&2){let e=l(2);s(),g("options",e.editorOptions),R("ngModel",e.introspectionQuery)}}function ln(i,d){if(i&1){let e=x();o(0,"div",19)(1,"ngx-monaco-editor",25),K("ngModelChange",function(t){m(e);let r=l(2);return V(r.fetchedSchema,t)||(r.fetchedSchema=t),h(t)}),a()()}if(i&2){let e=l(2);s(),g("options",e.editorOptions),R("ngModel",e.fetchedSchema)}}function cn(i,d){if(i&1){let e=x();o(0,"div",21),_(1,"app-auth",34),o(2,"div",35)(3,"div",36)(4,"div",37),u("click",function(){m(e);let t=l();return h(t.toggleFetchView("QUERY"))}),_(5,"i",38),o(6,"span",17),c(7,"Introspection Query"),a()(),C(8,rn,9,3,"div",39),a(),C(9,sn,2,2,"div",40),a(),o(10,"div",41)(11,"div",42),u("click",function(){m(e);let t=l();return h(t.toggleFetchView("RESPONSE"))}),o(12,"div",43),_(13,"i",38),o(14,"span",17),c(15,"Response"),a()()(),C(16,ln,2,2,"div",19),a()()}if(i&2){let e=l();s(),g("applicationKey",e.applicationKey),s(4),M("rotated",e.fetchView==="QUERY"),s(3),f(e.fetchView==="QUERY"?8:-1),s(),f(e.fetchView==="QUERY"?9:-1),s(4),M("rotated",e.fetchView==="RESPONSE"),s(3),f(e.fetchView==="RESPONSE"?16:-1)}}var Te=function(i){return i.DIRECT="DIRECT",i.UPLOAD="UPLOAD",i.FETCH="FETCH",i}(Te||{}),it=(()=>{class i{editMode=O(Te.DIRECT);modes=Te;uploading=O(!1);fetching=O(!1);saving=O(!1);fetchedSchema="";uploadSuccessMessage="";fetchView="QUERY";options=["Option 1","Option 2","Option 3","Custom"];selectedOptionDisplayText="Option 1";editorOptions={theme:"vs-light",language:"json",minimap:{enabled:!1},lineNumbers:"off",scrollBeyondLastLine:!1,wordWrap:"on",automaticLayout:!0,stickyScroll:{enabled:!1}};_schema={key:"",name:"",url:"",source:"",schema:"{}"};set schema(e){e?(this._schema=k({},e),this._schema.schema||(this._schema.schema="{}")):this._schema={key:"",name:"",url:"",schema:"{}",source:""}}get schema(){return this._schema}applicationKey="";save=new z;cancel=new z;authComponent;gqlService=y(te);toastr=y(U);ngOnInit(){this.onOptionChanged()}setMode(e){this.editMode.set(e),this.uploadSuccessMessage=""}onFileChange(e){let n=e.target.files[0];if(n){this.uploading.set(!0);let t=new FormData;t.append("file",n,n.name),this.gqlService.uploadSchema(this.applicationKey,t).subscribe({next:r=>{this.schema.schema=r.schema,this.uploadSuccessMessage=`${n.name} uploaded successfully`,this.toastr.success("Schema uploaded successfully","Success"),this.uploading.set(!1)},error:r=>{this.toastr.error("Failed to upload schema","Error"),this.uploading.set(!1)}})}e.target.value=null}onFetchSchema(){if(!this.schema.url){this.toastr.warning("Please enter an API URL","Warning");return}let e=this.authComponent?.queryDetails?.authorization;this.fetching.set(!0);let n={appKey:this.applicationKey,url:this.schema.url,authorization:e||{t
527ype:"NOAUTH"},query:this.introspectionQuery};this.gqlService.fetchSchema(n).subscribe({next:t=>{this.fetchedSchema=t.response,this.schema.schema=t.response,this.toastr.success("Schema fetched successfully","Success"),this.fetchView="RESPONSE",this.gqlService.schemaListChanged$.next(),this.fetching.set(!1)},error:t=>{let r=t?.error?.message||"Failed to fetch schema";this.toastr.error(r,"Error"),this.fetching.set(!1)}})}toggleFetchView(e){this.fetchView=e===this.fetchView?this.fetchView:e}onSave(){if(!this.schema.name||!this.schema.url){this.toastr.warning("Name and API URL are required","Warning");return}this.saving.set(!0);let e=k({},this.schema);e.source===""&&(e.source=null),(this.schema.key?this.gqlService.updateSchema({appKey:this.applicationKey,graphqlApi:e}):this.gqlService.createSchema({appKey:this.applicationKey,graphqlApi:e})).subscribe({next:t=>{this.toastr.success(`Schema ${this.schema.key?"updated":"created"} successfully`,"Success"),this.save.emit(t.graphqlApi),this.saving.set(!1)},error:t=>{t&&t.error&&t.error.message?this.toastr.error(t.error.message,"Error"):this.toastr.error("Failed to save schema","Error"),this.saving.set(!1)}})}onCancel(){this.cancel.emit()}getPrettyJson(e){try{return JSON.stringify(typeof e=="string"?JSON.parse(e):e,null,2)}catch{return e}}introspectionQuery="";selectOptionItem(e){this.selectedOptionDisplayText=e,this.onOptionChanged()}onOptionChanged(){switch(this.selectedOptionDisplayText){case"Option 1":this.introspectionQuery=`query IntrospectionQuery {
528  __schema {
529    queryType { name }
530    mutationType { name }
531    subscriptionType { name }
532    types { ...FullType }
533    directives {
534      name
535      description
536      locations
537      args { ...InputValue }
538    }
539  }
540}
541fragment FullType on __Type {
542  kind
543  name
544  description
545  fields(includeDeprecated: true) {
546    name
547    description
548    args { ...InputValue }
549    type { ...TypeRef }
550    isDeprecated
551    deprecationReason
552  }
553  inputFields { ...InputValue }
554  interfaces { ...TypeRef }
555  enumValues(includeDeprecated: true) {
556    name
557    description
558    isDeprecated
559    deprecationReason
560  }
561  possibleTypes { ...TypeRef }
562}
563fragment InputValue on __InputValue {
564  name
565  description
566  type { ...TypeRef }
567  defaultValue
568}
569fragment TypeRef on __Type {
570  kind
571  name
572  ofType {
573    kind
574    name
575    ofType {
576      kind
577      name
578      ofType {
579        kind
580        name
581        ofType {
582          kind
583          name
584          ofType {
585            kind
586            name
587            ofType {
588              kind
589              name
590              ofType {
591                kind
592                name
593              }
594            }
595          }
596        }
597      }
598    }
599  }
600}
601`;break;case"Option 2":this.introspectionQuery=`{
602  __schema {
603    queryType { name }
604    mutationType { name }
605    subscriptionType { name }
606    types { ...FullType }
607    directives {
608      name
609      description
610      locations
611      args { ...InputValue }
612    }
613  }
614}
615fragment FullType on __Type {
616  kind
617  name
618  description
619  fields(includeDeprecated: true) {
620    name
621    description
622    args { ...InputValue }
623    type { ...TypeRef }
624    isDeprecated
625    deprecationReason
626  }
627  inputFields { ...InputValue }
628  interfaces { ...TypeRef }
629  enumValues(includeDeprecated: true) {
630    name
631    description
632    isDeprecated
633    deprecationReason
634  }
635  possibleTypes { ...TypeRef }
636}
637fragment InputValue on __InputValue {
638  name
639  description
640  type { ...TypeRef }
641  defaultValue
642}
643fragment TypeRef on __Type {
644  kind
645  name
646  ofType {
647    kind
648    name
649    ofType {
650      kind
651      name
652      ofType {
653        kind
654        name
655        ofType {
656          kind
657          name
658          ofType {
659            kind
660            name
661            ofType {
662              kind
663              name
664              ofType {
665                kind
666                name
667              }
668            }
669          }
670        }
671      }
672    }
673  }
674}
675`;break;case"Option 3":this.introspectionQuery=`fragment FullType on __Type {
676  kind
677  name
678  description
679  fields(includeDeprecated: true) {
680    name
681    description
682    args { ...InputValue }
683    type { ...TypeRef }
684    isDeprecated
685    deprecationReason
686  }
687  inputFields { ...InputValue }
688  interfaces { ...TypeRef }
689  enumValues(includeDeprecated: true) {
690    name
691    description
692    isDeprecated
693    deprecationReason
694  }
695  possibleTypes { ...TypeRef }
696}
697fragment InputValue on __InputValue {
698  name
699  description
700  type { ...TypeRef }
701  defaultValue
702}
703fragment TypeRef on __Type {
704  kind
705  name
706  ofType {
707    kind
708    name
709    ofType {
710      kind
711      name
712      ofType {
713        kind
714        name
715        ofType {
716          kind
717          name
718          ofType {
719            kind
720            name
721            ofType {
722              kind
723              name
724              ofType {
725                kind
726                name
727              }
728            }
729          }
730        }
731      }
732    }
733  }
734}
735query IntrospectionQuery {
736  __schema {
737    queryType { name }
738    mutationType { name }
739    types { ...FullType }
740    directives {
741      name
742      description
743      locations
744      args { ...InputValue }
745    }
746  }
747}
748`;break;
748case"Custom":this.introspectionQuery="";break}}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=E({type:i,selectors:[["app-schema-config"]],viewQuery:function(n,t){if(n&1&&ie(ue,5),n&2){let r;oe(r=ae())&&(t.authComponent=r.first)}},inputs:{schema:"schema",applicationKey:"applicationKey"},outputs:{save:"save",cancel:"cancel"},decls:37,vars:15,consts:[["fileInput",""],["queryDropdown","bs-dropdown"],[1,"config-container"],[1,"info-box","d-flex","gap-3","align-items-center","mb-4"],[1,"info-icon"],["src","/assets/images/icons/gql.svg","alt","External GraphQL",2,"width","30px"],[1,"info-text"],[1,"form-group","mb-3"],[1,"form-label","mb-2"],["placeholder","API name",3,"valueChange","value"],[1,"form-group","mb-4"],[3,"valueChange","value"],[1,"method-selection","mb-4"],[1,"method-title","mb-3"],[1,"d-flex","gap-3"],[1,"method-box","d-flex","align-items-center","gap-2","p-3",3,"click"],[3,"onClick","checked"],[1,"fw-500"],[1,"method-content"],[1,"editor-wrap","rounded","border"],[1,"upload-wrap","d-flex","flex-column","align-items-center","justify-content-center","border","rounded","p-5"],[1,"fetch-wrap"],[1,"actions","d-flex","justify-content-end","gap-2","mt-4"],["label","Cancel","type","white","size","md",3,"onClick"],["label","Save","type","primary","size","md",3,"onClick","showSpinner"],[1,"monaco-editor",3,"ngModelChange","options","ngModel"],[1,"d-flex","align-items-center","gap-2"],[1,"spinner-border","spinner-border-sm","text-primary"],[1,"text-success","fw-500"],[1,"btn","btn-link","btn-sm","mt-2",3,"click"],[1,"bs-upload-streamline","fs-2","mb-3","text-secondary"],[1,"text-secondary","mb-3"],["type","file","hidden","","accept",".json",3,"change"],["label","Browse","type","white","size","sm",3,"onClick"],[3,"applicationKey"],[1,"fetch-section","mt-3"],[1,"section-header","d-flex","align-items-center","justify-content-between","mb-2"],[1,"d-flex","align-items-center","gap-2","cursor-pointer",3,"click"],[1,"bs-right-open"],[1,"d-flex","align-items-center","gap-3"],[1,"editor-wrap","rounded","border","mb-3"],[1,"fetch-section"],[1,"section-header","d-flex","align-items-center","justify-content-between","mb-2",3,"click"],[1,"d-flex","align-items-center","gap-2","cursor-pointer"],[1,"d-flex","align-items-center"],[1,"text-secondary","me-2",2,"font-size","0.875rem"],["dropdown","",1,"position-relative",2,"width","150px"],["size","sm","dropdownToggle","",3,"valueChange","value","trim"],["class","dropdown-menu w-100 shadow-sm","role","menu",4,"dropdownMenu"],["label","Send","type","primary","size","sm",3,"onClick","showSpinner"],["role","menu",1,"dropdown-menu","w-100","shadow-sm"],["role","menuitem"],["role","menuitem",2,"padding","6px 14px","font-size","0.813rem"],["role","menuitem",3,"click"],["role","button",1,"dropdown-item",2,"font-size","0.813rem","padding","4px 10px"]],template:function(n,t){n&1&&(o(0,"div",2)(1,"div",3)(2,"div",4),_(3,"img",5),a(),o(4,"div",6),c(5," A GraphQL schema defines the structure, types, and relationships of data in a GraphQL API. It acts as a blueprint, specifying the queries, mutations, and subscriptions that clients can execute, along with the types of data they can request or manipulate. "),a()(),o(6,"div",7)(7,"label",8),c(8,"Name"),a(),o(9,"app-input",9),K("valueChange",function(p){return V(t.schema.name,p)||(t.schema.name=p),p}),a()(),o(10,"div",10)(11,"label",8),c(12,"API"),a(),o(13,"app-input",11),K("valueChange",function(p){return V(t.schema.url,p)||(t.schema.url=p),p}),a()(),o(14,"div",12)(15,"div",13),c(16,"Select a method to configure your GraphQL endpoint"),a(),o(17,"div",14)(18,"div",15),u("click",function(){return t.setMode(t.modes.DIRECT)}),o(19,"app-radio",16),u("onClick",function(){return t.setMode(t.modes.DIRECT)}),a(),o(20,"span",17),c(21,"Direct schema edit"),a()(),o(22,"div",15),u("click",function(){return t.setMode(t.modes.UPLOAD)}),o(23,"app-radio",16),u("onClick",function(){return t.setMode(t.modes.UPLOAD)}),a(),o(24,"span",17),c(25,"Upload schema"),a()(),o(26,"div",15),u("click",function(){return t.setMode(t.modes.FETCH)}),o(27,"app-radio",16),u("onClick",function(){return t.setMode(t.modes.FETCH)}),a(),o(28,"span",17),c(29,"Fetch schema"),a()()()(),o(30,"div",18),C(31,Yt,2,2,"div",19)(32,tn,4,1,"div",20)(33,cn,17,8,"div",21),a(),o(34,"div",22)(35,"app-button",23),u("onClick",function(){return t.onCancel()}),a(),o(36,"app-button",24),u("onClick",function(){return t.onSave()}),a()()()),n&2&&(s(9),R("value",t.schema.name),s(4),R("value",t.schema.url),s(5),M("selected",t.editMode()===t.modes.DIRECT),s(),g("checked",t.editMode()===t.modes.DIRECT),s(3),M("selected",t.editMode()===t.modes.UPLOAD),s(),g("checked",t.editMode()===t.modes.UPLOAD),s(3),M("selected",t.editMode()===t.modes.FETCH),s(),g("checked",t.editMode()===t.modes.FETCH),s(4),f(t.editMode()===t.modes.DIRECT?31:-1),s(),f(t.editMode()===t.modes.UPLOAD?32:-1),s(),f(t.editMode()===t.modes.FETCH?33:-1),s(3),g("showSpinner",t.saving()))},dependencies:[D,G,Z,X,de,L,Ne,Ve,ue,ee,ye,Ce,fe],styles:[`
749
750.config-container[_ngcontent-%COMP%] {
751  padding: 24px;
752  height: 100%;
753  overflow-y: auto;
754}
755.config-container[_ngcontent-%COMP%]   .info-box[_ngcontent-%COMP%] {
756  background-color: #f0f7ff;
757  border: 1px solid #e1effe;
758  border-radius: 12px;
759  padding: 16px 20px;
760}
761.config-container[_ngcontent-%COMP%]   .info-box[_ngcontent-%COMP%]   .info-text[_ngcontent-%COMP%] {
762  font-size: 0.8125rem;
763  color: #4b5563;
764  line-height: 1.5;
765  flex: 1;
766}
767.config-container[_ngcontent-%COMP%]   .form-label[_ngcontent-%COMP%] {
768  font-weight: 500;
769  font-size: 0.875rem;
770  color: var(--text-primary);
771}
772.config-container[_ngcontent-%COMP%]   .method-selection[_ngcontent-%COMP%]   .method-title[_ngcontent-%COMP%] {
773  font-size: 0.875rem;
774  color: var(--text-primary);
775}
776.config-container[_ngcontent-%COMP%]   .method-selection[_ngcontent-%COMP%]   .method-box[_ngcontent-%COMP%] {
777  flex: 1;
778  border: 1px solid var(--border-color);
779  border-radius: 8px;
780  cursor: pointer;
781  transition: all 0.2s ease;
782}
783.config-container[_ngcontent-%COMP%]   .method-selection[_ngcontent-%COMP%]   .method-box[_ngcontent-%COMP%]:hover {
784  border-color: var(--bs-primary);
785  background-color: #f9fafb;
786}
787.config-container[_ngcontent-%COMP%]   .method-selection[_ngcontent-%COMP%]   .method-box.selected[_ngcontent-%COMP%] {
788  border-color: var(--bs-primary);
789  background-color: #f0f7ff;
790}
791.config-container[_ngcontent-%COMP%]   .method-selection[_ngcontent-%COMP%]   .method-box.selected[_ngcontent-%COMP%]   span[_ngcontent-%COMP%] {
792  color: var(--bs-primary);
793}
794.config-container[_ngcontent-%COMP%]   .method-selection[_ngcontent-%COMP%]   .method-box[_ngcontent-%COMP%]   span[_ngcontent-%COMP%] {
795  font-size: 0.8125rem;
796  color: #374151;
797}
798.config-container[_ngcontent-%COMP%]   .method-selection[_ngcontent-%COMP%]   .method-box[_ngcontent-%COMP%]   app-radio[_ngcontent-%COMP%] {
799  pointer-events: none;
800}
801.config-container[_ngcontent-%COMP%]   .method-content[_ngcontent-%COMP%]   .editor-wrap[_ngcontent-%COMP%] {
802  height: 450px;
803  background-color: #f9fafb;
804  overflow: hidden;
805}
806.config-container[_ngcontent-%COMP%]   .method-content[_ngcontent-%COMP%]   .editor-wrap[_ngcontent-%COMP%]   .monaco-editor[_ng
806content-%COMP%] {
807  height: 100%;
808}
809.config-container[_ngcontent-%COMP%]   .method-content[_ngcontent-%COMP%]   .upload-wrap[_ngcontent-%COMP%] {
810  height: 300px;
811  border-style: dashed !important;
812  background-color: #f9fafb;
813}
814.config-container[_ngcontent-%COMP%]   .method-content[_ngcontent-%COMP%]   .upload-wrap[_ngcontent-%COMP%]   p[_ngcontent-%COMP%] {
815  font-size: 0.8125rem;
816}
817.config-container[_ngcontent-%COMP%]   .method-content[_ngcontent-%COMP%]   .fetch-wrap[_ngcontent-%COMP%]   .fetch-section[_ngcontent-%COMP%]   .section-header[_ngcontent-%COMP%] {
818  font-size: 0.875rem;
819  color: var(--text-primary);
820}
821.config-container[_ngcontent-%COMP%]   .method-content[_ngcontent-%COMP%]   .fetch-wrap[_ngcontent-%COMP%]   .fetch-section[_ngcontent-%COMP%]   .section-header[_ngcontent-%COMP%]   i[_ngcontent-%COMP%] {
822  transition: transform 0.2s ease;
823  font-size: 14px;
824}
825.config-container[_ngcontent-%COMP%]   .method-content[_ngcontent-%COMP%]   .fetch-wrap[_ngcontent-%COMP%]   .fetch-section[_ngcontent-%COMP%]   .section-header[_ngcontent-%COMP%]   i.rotated[_ngcontent-%COMP%] {
826  transform: rotate(90deg);
827}
828.config-container[_ngcontent-%COMP%]   .method-content[_ngcontent-%COMP%]   .cursor-pointer[_ngcontent-%COMP%] {
829  cursor: pointer;
830}
831.config-container[_ngcontent-%COMP%]   .actions[_ngcontent-%COMP%] {
832  border-top: 1px solid var(--border-color);
833  padding-top: 24px;
834  margin-top: 24px;
835}
836[_nghost-%COMP%]     .monaco-editor, 
837[_nghost-%COMP%]     .monaco-editor-background, 
838[_nghost-%COMP%]     .monaco-editor .margin {
839  background-color: #f9fafb !important;
840}`]})}return i})();function dn(i,d){if(i&1&&(o(0,"div",10),_(1,"div",15),o(2,"p",16),c(3),a()()),i&2){let e=l();s(3),S(e.uiState==="SAVING"?"Saving query...":"Sending query...")}}function pn(i,d){i&1&&(o(0,"div",10),_(1,"div",15),o(2,"p",16),c(3,"Loading details..."),a()())}function un(i,d){i&1&&_(0,"app-graphql-issues")}function mn(i,d){if(i&1&&_(0,"app-graphql-api-response",18),i&2){let e=l(2);g("data",e.apiResponse)}}function hn(i,d){if(i&1){let e=x();o(0,"div",11)(1,"app-query-details",17),u("save",function(){m(e);let t=l();return h(t.saveQuery())})("send",function(){m(e);let t=l();return h(t.sendQuery())}),a(),C(2,mn,1,1,"app-graphql-api-response",18),a()}if(i&2){let e,n=l();s(),g("queryDetails",n.queryDetails)("applicationKey",n.application==null?null:n.application.key)("isInternal",n.currentApplication()&&((e=n.currentApplication())==null?null:e.tunnelled)||!1),s(),f(n.apiResponse?2:-1)}}function gn(i,d){if(i&1){let e=x();o(0,"app-schema-overview",19),u("edit",function(){m(e);let t=l();return h(t.editSchema())}),a()}if(i&2){let e=l();g("schemaDetails",e.selectedSchema)}}function _n(i,d){i&1&&(o(0,"div",13),_(1,"img",20),o(2,"div",21)(3,"h5",22),c(4,"No selection"),a(),o(5,"p",23),c(6,"Select a schema or query from the sidebar to begin testing."),a()()())}function fn(i,d){if(i&1){let e=x();o(0,"div",14)(1,"div",24),u("click",function(){m(e);let t=l();return h(t.hideOverlay())}),a(),o(2,"div",25)(3,"div",26)(4,"span",27),c(5),a(),o(6,"i",28),u("click",function(){m(e);let t=l();return h(t.hideOverlay())}),a()(),o(7,"div",29)(8,"app-schema-config",30),u("save",function(t){m(e);let r=l();return h(r.handleSaveSchema(t))})("cancel",function(){m(e);let t=l();return h(t.handleCancelConfig())}),a()()()()}if(i&2){let e=l();g("@showHideOverlay",e.showSidePanel?"show":"hide"),s(2),g("@toggleSidebar",e.showSidePanel?"show":"hide"),s(3),S(e.editingSchema?"Update schema":"Add sc
840hema"),s(3),g("applicationKey",e.application==null?null:e.application.key)("schema",e.editingSchema)}}var Uo=(()=>{class i{queryDetailsComponent;sidebarComponent;application;currentApplication=O(null);queryDetails=null;selectedSchema=null;isQuerySelected=!1;isSchemaSelected=!1;isConfigMode=!1;editingSchema=null;apiResponse=null;uiState="";isIssuesMode=!1;originalQueryDetailsString="";isOverlayShown=!1;showSidePanel=!1;searchKeyword="";viewOption="GROUP";roleAuthMatrix=null;defaultAuth=null;sharedAuths=[];destroy$=new F;applicationService=y(Le);gqlService=y(te);gqlNavService=y(pe);apiDataService=y(le);toastr=y(U);roleAuthService=y(be);authorizationService=y(We);sharedResourceService=y(ve);reloadService=y($e);destroyRef=y(Qe);crispChatService=y(Ge);constructor(){this.reloadService.reload.pipe(ze(this.destroyRef)).subscribe(()=>{this.sidebarComponent&&this.sidebarComponent.loadSchemas(),this.isQuerySelected&&this.schemaKey&&this.queryDetails?.key&&this.loadQueryDetails(this.schemaKey,this.queryDetails.key)})}ngOnInit(){this.apiDataService.appConfig$.pipe(T(this.destroy$)).subscribe(e=>{e&&(this.application=e,e.key&&(this.getApplication(e.key),this.getRoleAuthMatrix(e.key),this.getDefaultAuth(e.key),this.getSharedAuths(e.key)))}),this.gqlNavService.currentSelection$.pipe(T(this.destroy$)).subscribe(e=>{this.isIssuesMode=!!e.isIssuesMode,e.queryKey&&e.schemaKey?(this.loadQueryDetails(e.schemaKey,e.queryKey),this.isSchemaSelected=!1,this.isConfigMode=!1):e.schemaKey&&e.group&&!e.queryKey?(this.initNewQuery(e.schemaKey,e.group),this.isSchemaSelected=!1,this.isConfigMode=!1):e.schemaKey?(this.loadSchemaDetails(e.schemaKey),this.isQuerySelected=!1,this.queryDetails=null,this.isConfigMode=!1):(this.isQuerySelected=!1,this.isSchemaSelected=!1,this.queryDetails=null,this.selectedSchema=null,this.isConfigMode=!1)})}ngOnDestroy(){this.crispChatService.showChat(),this.gqlNavService.resetState(!1),this.destroy$.next(),this.destroy$.complete()}schemaKey=null;getApplication(e){this.applicationService.getApplication(e).subscribe({next:n=>{n&&n.application&&this.currentApplication.set(n.application)},error:n=>{console.error("Failed to fetch application:",n),this.currentApplication.set(null)}})}loadQueryDetails(e,n){this.application?.key&&(this.schemaKey=e,this.uiState="GET_DETAILS",this.gqlService.getQueryDetails(this.application.key,e,n).subscribe({next:t=>{this.queryDetails=t,this.originalQueryDetailsString=JSON.stringify(t),this.isQuerySelected=!0,this.apiResponse=null,this.uiState="SUCCESS"},error:t=>{this.toastr.error("Failed to load query details","Failed"),this.uiState="ERROR"}}))}initNewQuery(e,n){this.schemaKey=e,this.queryDetails={name:"",group:n,url:this.selectedSchema?.url||"",method:"POST",headers:[],authorization:{type:"NOAUTH"},body:{mode:"GRAPHQL",query:"",queryVariable:""},source:"CONFIGURED"},this.originalQueryDetailsString=JSON.stringify(this.queryDetails),this.isQuerySelected=!0,this.apiResponse=null,this.uiState="SUCCESS"}loadSchemaDetails(e){this.application?.key&&(this.schemaKey=e,this.uiState="GET_DETAILS",this.gqlService.getSchemaDetails(this.application.key,e).subscribe({next:n=>{this.selectedSchema=n,this.isSchemaSelected=!0,this.uiState="SUCCESS"},error:n=>{this.toastr.error("Failed to load schema details","Failed"),this.uiState="ERROR"}}))}validateQuery(){if(!this.queryDetails)return!1;if(!this.queryDetails.name?.trim())return this.toastr.warning("Query name is required","Validation"),!1;if(this.queryDetails.name.length>=32)return this.toastr.warning("Query name must be less than 32 characters","Validation"),!1;if(!/^[a-zA-Z0-9 ]+$/.test(this.queryDetails.name))return this.toastr.warning("Query name should not contain special characters","Validation"),!1;if(!this.queryDetails.url?.trim())return this.toastr.warning("API URL is required","Validation"),!1;let e=this.queryDetails.authorization;if(e.type==="ROLEBASED"){if(!e.roles||e.roles.length===0)return this.toastr.warning("Select at least one role","Validation"),!1;let n=this.queryDetailsComponent?.authComponent;if(n&&n.isDefaultAuthRole()&&this.roleAuthMatrix){let t=this.roleAuthMatrix.authsWithRoles||{},r=Object.keys(t).find(p=>t[p].default);if(r){let p=t[r].roles||{},v=e.roles||[],w=[],P=[];for(let b of v){let B=typeof b=="string"?b:b.roleName,Se=this.roleAuthMatrix.roles?.find(we=>we.name===B)?.id||B,me=p[Se]?.status;me==="invalid"?w.push(B):me!=="valid"&&P.push(B)}if(w.length>0){let b="";
840return w.length===1?b=`Default auth is invalid for ${w[0]}`:w.length===2?b=`Default auth is invalid for ${w[0]} and ${w[1]}`:b="Default auth is invalid for some of the selected roles",this.toastr.warning(`${b}, check your configuration.`,"Validation"),!1}if(P.length>0){let b="";return P.length===1?b=`Default auth is not configured for ${P[0]}`:P.length===2?b=`Default auth is not configured for ${P[0]} and ${P[1]}`:b="Default auth is not configured for some of the selected roles",this.toastr.warning(`${b}, configure it now.`,"Validation"),!1}}else return this.toastr.warning("Default auth is not configured","Validation"),!1}if(n&&!n.isDefaultAuthRole()){if(!e.reference)return this.toastr.warning("Select an authorization","Validation"),!1;if(this.roleAuthMatrix){let t=e.reference,r=this.roleAuthMatrix.authsWithRoles?.[t];if(!r){let p=Object.keys(this.roleAuthMatrix.authsWithRoles||{}).find(v=>this.roleAuthMatrix?.authsWithRoles?.[v]?.authId===t);p&&(r=this.roleAuthMatrix.authsWithRoles[p])}if(r){let p=r.roles||{},v=e.roles||[],w=[],P=[];for(let b of v){let B=typeof b=="string"?b:b.roleName,Se=this.roleAuthMatrix.roles?.find(we=>we.name===B)?.id||B,me=p[Se]?.status;me==="invalid"?w.push(B):me!=="valid"&&P.push(B)}if(w.length>0){let b="";return w.length===1?b=`Authorization is invalid for ${w[0]}`:w.length===2?b=`Authorization is invalid for ${w[0]} and ${w[1]}`:b="Authorization is invalid for some of the selected roles",this.toastr.warning(`${b}, check your configuration.`,"Validation"),!1}if(P.length>0){let b="";return P.length===1?b=`Authorization is not configured for ${P[0]}`:P.length===2?b=`Authorization is not configured for ${P[0]} and ${P[1]}`:b="Authorization is not configured for some of the selected roles",this.toastr.warning(`${b}, configure it now.`,"Validation"),!1}}else return this.toastr.warning("Selected authorization is not configured","Validation"),!1}}}else if(e.type==="DEFAULT"||e.type==="SHARED")if(e.type==="DEFAULT"){if(!this.defaultAuth)return this.toastr.warning("Default auth is not configured, configure now.","Validation"),!1;if(this.defaultAuth.status==="invalid")return this.toastr.warning("Default auth is invalid, check your configuration.","Validation"),!1}else{if(!e.reference)return this.toastr.warning("Select an authorization","Validation"),!1;let n=e.reference,t=this.sharedAuths.find(r=>[r.key,r.id,r.name].includes(n));if(!t)return this.toastr.warning("Selected authorization is not configured, configure now.","Validation"),!1;if(t.status==="invalid")return this.toastr.warning("Authorization is invalid, check your configuration.","Validation"),!1}return!0}getRoleAuthMatrix(e){this.roleAuthService.getRoleAuthMatrix(e).subscribe({next:n=>{this.roleAuthMatrix=n},error:n=>{console.error("Failed to fetch role auth matrix:",n)}})}getDefaultAuth(e){this.authorizationService.getDefaultAuth(e).subscribe({next:n=>{this.defaultAuth=n?.authorization||null},error:n=>{console.error("Failed to fetch default auth:",n)}})}getSharedAuths(e){this.sharedResourceService.getSharedResources("authorization",e).subscribe({next:n=>{this.sharedAuths=n?.authorizations||[]},error:n=>{console.error("Failed to fetch shared auths:",n)}})}saveQuery(){if(!this.queryDetails||!this.application?.key||!this.schemaKey||!this.validateQuery())return;this.queryDetails.method="POST",this.queryDetails.body.mode="GRAPHQL",this.uiState="SAVING",(this.queryDetails.key?this.gqlService.updateQuery(this.application.key,this.schemaKey,this.queryDetails):this.gqlService.saveQuery(this.application.key,this.schemaKey,this.queryDetails)).subscribe({next:n=>{let t=this.queryDetails?.key?"Query saved successfully":"Query created successfully";this.toastr.success(t,"Success"),this.uiState="SUCCESS",!this.queryDetails?.key&&n.query?.key&&(this.queryDetails.key=n.query.key,this.gqlNavService.selectQuery(this.schemaKey,this.queryDetails.group,n.query.key)),this.originalQueryDetailsString=JSON.stringify(this.queryDetails),this.gqlService.queryListChanged$.next({group:this.queryDetails.group})},error:n=>{this.toastr.error(n.error?.message||"Failed to save query","Failed"),this.uiState="ERROR"}})}sendQuery(){!this.queryDetails||!this.application?.key||!this.schemaKey||this.validateQuery()&&(this.apiResponse=null,this.queryDetails.method="POST",this.queryDetails.body.mode="GRAPHQL",this.uiState="SENDING",this.gqlService.sendQuery(this.application.key,this.schemaKey,this.queryDetails).subscribe({next:e=>{this.apiResponse=e,this.uiState="SUCCESS"},error:e=>{this.toastr.error(e.error?.message||"Failed to send query","Failed"),this.uiState="ERROR"}}))}toggleAppView(e){this.viewOption=e}onSearchChange(e){this.searchKeyword=e}handleAddSchema(){this.editingSchema=null,this.showOverlay()}editSchema(){this.editingSchema=this.selectedSchema,this.showOverlay()}showOverlay(){this.crispChatService.hideChat(),this.isOverlayShown=!0,setTimeout(()=>{this.showSidePanel=!0},10)}hideOverlay(){this.crispChatService.showChat(),this.showSidePanel=!1,setTimeout(()=>{this.isOverlayShown=!1},300)}handleSaveSchema(e){this.hideOverlay(),this.gqlService.schemaListChanged$.next(),this.schemaKey===e.key?this.loadSchemaDetail
840s(e.key):this.gqlNavService.selectSchema(e.key)}handleCancelConfig(){this.hideOverlay()}selectIssues(){this.gqlNavService.selectIssues()}hasPendingChanges(){return this.queryDetails?JSON.stringify(this.queryDetails)!==this.originalQueryDetailsString:!1}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=E({type:i,selectors:[["app-graphql-layout"]],viewQuery:function(n,t){if(n&1&&(ie(ke,5),ie(De,5)),n&2){let r;oe(r=ae())&&(t.queryDetailsComponent=r.first),oe(r=ae())&&(t.sidebarComponent=r.first)}},decls:18,vars:4,consts:[[1,"layout-container"],[1,"left-sidebar"],[1,"p-3","title-wrap"],[1,"d-flex","align-items-center","justify-content-between"],[1,"fw-500","group-title"],[1,"d-flex","align-items-center","gap-2"],["type","primary","size","xs","iconClass","bs-add","label","New",3,"click"],[1,"api-group-container"],[3,"application"],[1,"right-section","position-relative"],[1,"loading-overlay","d-flex","flex-column","align-items-center","justify-content-center"],[1,"px-3","pb-5"],[3,"schemaDetails"],[1,"d-flex","flex-column","align-items-center","justify-content-center","h-100","w-100","no-selection"],[1,"drawer-overlay"],[1,"loader"],[1,"mt-2","mb-0","fw-500"],[3,"save","send","queryDetails","applicationKey","isInternal"],[3,"data"],[3,"edit","schemaDetails"],["src","/assets/images/apitesting/no-assests.svg","alt","No selection",1,"mb-3",2,"max-width","200px","opacity","0.5"],[1,"text-center"],[1,"fw-500","mb-2"],[1,"text-secondary","small"],[1,"left-dummy-panel",3,"click"],[1,"sidebar","lg-sidebar"],[1,"d-flex","align-items-center","justify-content-between","sidebar-title","px-4","py-3"],[1,"title","fw-500"],[1,"bs-cancel","cursor-pointer",3,"click"],[1,"sidepanel-content"],[3,"save","cancel","applicationKey","schema"]],template:function(n,t){n&1&&(o(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4),c(5,"API configuration"),a(),o(6,"div",5)(7,"app-button",6),u("click",function(){return t.handleAddSchema()}),a()()()(),o(8,"div",7),_(9,"app-sidebar",8),a()(),o(10,"div",9),C(11,dn,4,1,"div",10)(12,pn,4,0,"div",10)(13,un,1,0,"app-graphql-issues")(14,hn,3,4,"div",11)(15,gn,1,1,"app-schema-overview",12)(16,_n,7,0,"div",13),a(),C(17,fn,9,5,"div",14),a()),n&2&&(s(9),g("application",t.application),s(2),f(t.uiState==="SAVING"||t.uiState==="SENDING"?11:t.uiState=="GET_DETAILS"?12:-1),s(2),f(t.isIssuesMode?13:t.isQuerySelected&&t.queryDetails?14:t.isSchemaSelected&&t.selectedSchema?15:16),s(4),f(t.isOverlayShown?17:-1))},dependencies:[D,De,ke,G,ee,L,nt,it,Ye,Je],styles:[`
841
842.layout-container[_ngcontent-%COMP%] {
843  display: flex;
844  gap: 12px;
845  width: 100%;
846  height: 100%;
847  background-color: transparent;
848}
849.layout-container[_ngcontent-%COMP%]   .left-sidebar[_ngcontent-%COMP%] {
850  width: 350px;
851  max-width: 350px;
852  flex-shrink: 0;
853  background-color: #ffffff;
854  height: 100%;
855  overflow: hidden;
856  border: 1px solid var(--border-color);
857  border-radius: 12px;
858  display: flex;
859  flex-direction: column;
860}
861.layout-container[_ngcontent-%COMP%]   .right-section[_ngcontent-%COMP%] {
862  flex-grow: 1;
863  height: 100%;
864  overflow-y: auto;
865  background-color: #ffffff;
866  border: 1px solid var(--border-color);
867  border-radius: 12px;
868  display: flex;
869  flex-direction: column;
870}
871.api-group-container[_ngcontent-%COMP%] {
872  flex-grow: 1;
873  overflow-y: auto;
874  background-color: #fafafa;
875  padding: 0.75rem;
876}
877.title-wrap[_ngcontent-%COMP%] {
878  padding: 1rem;
879  height: auto;
880  border-bottom: 1px solid var(--border-color);
881}
882.group-title[_ngcontent-%COMP%] {
883  font-size: 1rem;
884  font-weight: 500;
885  color: var(--text-primary);
886}
887.response-section[_ngcontent-%COMP%] {
888  width: 100%;
889  border-top: 1px solid var(--border-color);
890  padding-top: 2rem;
891}
892.response-section[_ngcontent-%COMP%]   .response-title[_ngcontent-%COMP%] {
893  font-size: 1rem;
894  font-weight: 500;
895  color: var(--text-primary);
896}
897.response-box[_ngcontent-%COMP%] {
898  height: 400px;
899  background-color: #ffffff;
900  border: 1px solid var(--border-color);
901  border-radius: 8px;
902  overflow: hidden;
903}
904.response-box[_ngcontent-%COMP%]   .monaco-editor[_ngcontent-%COMP%] {
905  height: 100%;
906  width: 100%;
907}
908.no-selection[_ngcontent-%COMP%] {
909  background-color: #ffffff;
910}
911.status-code[_ngcontent-%COMP%] {
912  font-size: 0.875rem;
913}
914.btn-white[_ngcontent-%COMP%] {
915  background-color: #ffffff !important;
916  border: 1px solid var(--border-color) !important;
917  color: var(--text-primary) !important;
918}
919.drawer-overlay[_ngcontent-%COMP%] {
920  position: fixed;
921  top: 0;
922  left: 0;
923  width: 100%;
924  height: 100vh;
925  background-color: rgba(0, 0, 0, 0.4);
926  z-index: 1050;
927  display: flex;
928  justify-content: flex-end;
929}
930.drawer-overlay[_ngcontent-%COMP%]   .left-dummy-panel[_ngcontent-%COMP%] {
931  flex: 1;
932}
933.drawer-overlay[_ngcontent-%COMP%]   .sidebar[_ngcontent-%COMP%] {
934  width: 650px;
935  background-color: #ffffff;
936  height: 100%;
937  position: relative;
938  box-shadow: -4px 0 16px rgba(0, 0, 0, 0.1);
939  display: flex;
940  flex-direction: column;
941  overflow: hidden;
942}
943.drawer-overlay[_ngcontent-%COMP%]   .sidebar[_ngcontent-%COMP%]   .sidebar-title[_ngcontent-%COMP%] {
944  border-bottom: 1px solid var(--border-color);
945  background: white;
946  z-index: 1;
947}
948.drawer-overlay[_ngcontent-%COMP%]   .sidebar[_ngcontent-%COMP%]   .sidebar-title[_ngcontent-%COMP%]   .title[_ngcontent-%COMP%] {
949  font-size: 1.125rem;
950  color: var(--text-primary);
951}
952.drawer-overlay[_ngcontent-%COMP%]   .sidebar[_ngcontent-%COMP%]   .sidebar-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%] {
953  font-size: 12px;
954  color: var(--text-secondary);
955}
956.drawer-overlay[_ngcontent-%COMP%]   .sidebar[_ngcontent-%COMP%]   .sidebar-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]:hover {
957  color: #dc3545;
958}
959.drawer-overlay[_ngcontent-%COMP%]   .sidebar[_ngcontent-%COMP%]   .sidepanel-content[_ngcontent-%COMP%] {
960  flex: 1;
961  overflow-y: auto;
962}
963.drawer-overlay[_ngcontent-%COMP%]   .sidebar[_ngcontent-%COMP%]   .sidepanel-content[_ngcontent-%COMP%]::-webkit-scrollbar {
964  width: 6px;
965}
966.drawer-overlay[_ngcontent-%COMP%]   .sidebar[_ngcontent-%COMP%]   .sidepanel-content[_ngcontent-%COMP%]::-webkit-scrollbar-track {
967  background: #f1f1f1;
968}
969.drawer-overlay[_ngcontent-%COMP%]   .sidebar[_ngcontent-%COMP%]   .sidepanel-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {
970  background: #ccc;
971  border-radius: 10px;
972}
973.position-relative[_ngcontent-%COMP%] {
974  position: relative;
975}
976.fw-500[_ngcontent-%COMP%] {
977  font-weight: 500;
978}
979.loading-overlay[_ngcontent-%COMP%] {
980  position: absolute;
981  top: 0;
982  left: 0;
983  width: 100%;
984  height: 100%;
985  background-color: rgba(255, 255, 255, 0.7);
986  z-index: 100;
987  border-radius: 12px;
988}
989.loading-overlay[_ngcontent-%COMP%]   p[_ngcontent-%COMP%] {
990  color: var(--text-primary);
991  font-size: 0.875rem;
992}
993.loader[_ngcontent-%COMP%] {
994  width: 32px;
995  height: 32px;
996  border: 3px solid var(--bs-primary);
997  border-bottom-color: transparent;
998  border-radius: 50%;
999  display: inline-block;
1000  box-sizing: border-box;
1001  animation: _ngcontent-%COMP%_rotation 1s linear infinite;
1002}
1003@keyframes _ngcontent-%COMP%_rotation {
1004  0% {
1005    transform: rotate(0deg);
1006  }
1007  100% {
1008    transform: rotate(360deg);
1009  }
1010}`],data:{animation:[$("showHideOverlay",[I("show",Q({opacity:1})),I("hide",Q({opacity:0})),j("show <=> hide",[W("0.3s ease-in-out")])]),$("toggleSidebar",[I("show",Q({right:"0"})),I("hide",Q({right:"-650px"})),j("show <=> hide",[W("0.3s ease-in-out")])])]}})}return i})();export{Uo as LayoutComponent};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.