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.