1import{a as Y}from"./chunk-TMSZ5NLI.js";import"./chunk-EVFUHRF4.js";import{a as Z}from"./chunk-HGKFQQXV.js";import"./chunk-SCDOGT4C.js";import"./chunk-J3DLLYT5.js";import"./chunk-G6C7CHVA.js";import"./chunk-GUIAZJGX.js";import"./chunk-BL4V2PDN.js";import"./chunk-MGC5OGC4.js";import"./chunk-WFEET3M6.js";import"./chunk-B6CP75HX.js";import"./chunk-SWZP5RP3.js";import"./chunk-5LZ72O6V.js";import"./chunk-NYF6TTKU.js";import"./chunk-ZGTDWVWP.js";import"./chunk-GIGYDHE3.js";import"./chunk-NE3PN4AS.js";import"./chunk-ZBRXLKJX.js";import"./chunk-XQTT574X.js";import"./chunk-7CTPXOSQ.js";import"./chunk-PLD37K76.js";import"./chunk-EXIGMERB.js";import"./chunk-M6MKHCWP.js";import"./chunk-RO3APBKW.js";import"./chunk-SIBM7MQL.js";import"./chunk-H372D66O.js";import"./chunk-XFT76LM3.js";import"./chunk-6Z3JPFEM.js";import"./chunk-HZTZ7UDT.js";import"./chunk-GSU3FJJ7.js";import"./chunk-VDHMNIPW.js";import"./chunk-ZIPUIG2E.js";import"./chunk-LS62P27S.js";import"./chunk-7NJJ2OR6.js";import{b as J}from"./chunk-COB7JTXP.js";import{a as $,b as D}from"./chunk-B7MEV2DH.js";import"./chunk-HHQ3DLDR.js";import"./chunk-R547OJ2B.js";import"./chunk-G6XYTQMQ.js";import"./chunk-FV7ZM2WZ.js";import"./chunk-U6SSASD4.js";import"./chunk-PCX2ON3C.js";import"./chunk-YPA744ND.js";import"./chunk-KMBGIYKO.js";import"./chunk-3EZYHQEX.js";import"./chunk-HANTXM7F.js";import"./chunk-BQMWDA4F.js";import"./chunk-MWF46UZK.js";import"./chunk-LHRVPUQV.js";import"./chunk-F4R2GYYO.js";import"./chunk-WWXUYJVP.js";import"./chunk-IJLCOAZF.js";import"./chunk-253O5CTU.js";import"./chunk-UOTKKO3D.js";import"./chunk-5DFMJBW7.js";import"./chunk-UVSINPPM.js";import"./chunk-OMXQI42V.js";import"./chunk-3D6MWCMT.js";import"./chunk-3PMZJSMT.js";import"./chunk-EAMPIGF2.js";import"./chunk-EWMPMGKE.js";import"./chunk-7NLDXUER.js";import"./chunk-KYDX7PLZ.js";import"./chunk-7XKLRHXH.js";import"./chunk-VHIBGIIM.js";import"./chunk-WMQEI62T.js";import"./chunk-5RW73NUF.js";import"./chunk-GZSWBVH3.js";import"./chunk-M6FECGVJ.js";import"./chunk-BAV7CPFJ.js";import"./chunk-3BRPUZ4I.js";import"./chunk-3RK6DDJD.js";import"./chunk-GJ6IWQ3Q.js";import"./chunk-TJFKCIBN.js";import"./chunk-V6IYXEWC.js";import"./chunk-B3PI2Z3Z.js";import"./chunk-MSUEAKA3.js";import"./chunk-GAS7A3L4.js";import"./chunk-M3EMDAFZ.js";import"./chunk-UKCZCKF3.js";import"./chunk-NJY6F3LT.js";import"./chunk-NYVKXIEZ.js";import"./chunk-DCKGCHBL.js";import"./chunk-GHXZGKMT.js";import"./chunk-GQBR7ALB.js";import"./chunk-V3LPMSAU.js";import"./chunk-57P7T2RM.js";import"./chunk-7RWCIHFI.js";import"./chunk-TZPNXZD6.js";import"./chunk-FO7KVHCD.js";import"./chunk-DTHTIZ5C.js";import"./chunk-DLBWLLE6.js";import"./chunk-YAUIJJXG.js";import"./chunk-NKG7VJI6.js";import"./chunk-SM333LUT.js";import"./chunk-GGQDMCFC.js";import"./chunk-KZOGQMYZ.js";import"./chunk-TWZBNSN4.js";import"./chunk-55MTUKAX.js";import"./chunk-2HJPFN3S.js";import"./chunk-HIEQIAO6.js";import"./chunk-WEDN5HGH.js";import"./chunk-BYHBQABE.js";import"./chunk-6UAWTFFZ.js";import{f as X}from"./chunk-XWGGXTBH.js";import"./chunk-GWP52JAF.js";import"./chunk-SBK5GHAF.js";import"./chunk-FPPRR53P.js";import"./chunk-3UVVCPIT.js";import"./chunk-HNY54GY7.js";import"./chunk-WAF2UKPS.js";import"./chunk-R3QRL77R.js";import"./chunk-G2NZI5V3.js";import"./chunk-62DYWMYT.js";import{a as q}from"./chunk-NTCDGAR3.js";import"./chunk-UMK6AGIS.js";import"./chunk-PBAOXUCO.js";import"./chunk-7UZYWCAJ.js";import"./chunk-RIQOBMUM.js";import"./chunk-WX25E2HZ.js";import"./chunk-I5K7UUBW.js";import"./chunk-6BAE5M2B.js";import{a as K,b as R}from"./chunk-GPTXSPLI.js";import"./chunk-WSF7ZPQZ.js";import{a as I,b as Q,c as U,e as W}from"./chunk-7KBFIBUW.js";import"./chunk-JYXQ74JV.js";import"./chunk-7A7LFYDL.js";import"./chunk-IQBBAARC.js";import"./chunk-CWWNL6ZE.js";import"./chunk-FSAIB72R.js";import{L as G,d as L,i as j,o as H}from"./chunk-X474JN3X.js";import"./chunk-OLSNRRTA.js";import"./chunk-GJNXMHJK.js";import"./chunk-ROYL3S4H.js";import"./chunk-XWMJJGBF.js";import"./chunk-5G7452JJ.js";import"./chunk-O6NNHBDA.js";import{h as A}from"./chunk-VK3ZU6WP.js";import{G as k}from"./chunk-BRHCVEVW.js";
1import{Ed as E,Fd as P,Gd as N,Ic as T,Jc as v,Ka as S,Mc as F,Me as b,Nc as V,Ob as l,Oc as c,Pc as a,Qa as g,Qc as s,Ra as p,Sd as m,Zc as x,_a as h,ac as O,ed as d,hc as w,hd as r,me as y,te as z,wd as C,xd as B}from"./chunk-7DV7UWC6.js";import"./chunk-XS7UEPGF.js";import{a as f,b as M}from"./chunk-IP4IO47A.js";b();b();b();var ne=()=>["grey-1100","red-700"],ie=()=>["grey-00","red-100"],oe=()=>["green-700"],ae=()=>["red-700"],se=()=>["grey-800","blue-700"],re=()=>["grey-800","red-700"],le=(o,_)=>_.id;function de(o,_){o&1&&(a(0,"div",10)(1,"p"),C(2,"Loading tags..."),s()())}function ce(o,_){o&1&&(a(0,"div",11)(1,"p"),C(2,"No tags found"),s()())}function ge(o,_){if(o&1){let t=x();a(0,"div",14)(1,"input",16),N("ngModelChange",function(e){g(t);let i=r().$implicit;return P(i.editName,e)||(i.editName=e),p(e)}),d("keyup.enter",function(){g(t);let e=r().$implicit,i=r(2);return p(i.saveEdit(e))})("keyup.escape",function(){g(t);let e=r().$implicit,i=r(2);return p(i.cancelEdit(e))}),s(),a(2,"div",17)(3,"un-icon",18),d("click",function(){g(t);let e=r().$implicit,i=r(2);return p(i.saveEdit(e))}),s(),a(4,"un-icon",18),d("click",function(){g(t);let e=r().$implicit,i=r(2);return p(i.cancelEdit(e))}),s()()()}if(o&2){let t=r().$implicit;l(),E("ngModel",t.editName),l(2),c("icon","check.svg")("size",18)("color",m(7,oe)),l(),c("icon","close.svg")("size",18)("color",m(8,ae))}}function pe(o,_){if(o&1){let t=x();a(0,"div",15)(1,"span",19),C(2),s(),a(3,"div",17)(4,"un-icon",18),d("click",function(){g(t);let e=r().$implicit,i=r(2);return p(i.startEdit(e))}),s(),a(5,"un-icon",18),d("click",function(){g(t);let e=r().$implicit,i=r(2);return p(i.deleteTag(e))}),s()()()}if(o&2){let t=r().$implicit;l(2),B(t.name),l(2),c("icon","edit.svg")("size",18)("color",m(7,se)),l(),c("icon","delete.svg")("size",18)("color",m(8,re))}}function _e(o,_){if(o&1&&(a(0,"div",13),T(1,ge,5,9,"div",14)(2,pe,6,9,"div",15),s()),o&2){let t=_.$implicit;l(),v(t.editing?1:2)}}function me(o,_){if(o&1&&(a(0,"div",12),F(1,_e,3,1,"div",13,le),s()),o&2){let t=r();l(),V(t.tags())}}var ee=(()=>{class o{constructor(){this.close=z(),this._http=S(A),this._toast=S(q),this._tags=h([],{debugName:"tags"}),this.tags=y(()=>this._tags(),{debugName:"tags"}),this._loading=h(!1,{debugName:"loading"}),this.loading=y(()=>this._loading(),{debugName:"loading"}),this._saving=h(!1,{debugName:"saving"}),this.saving=y(()=>this._saving(),{debugName:"saving"}),this._searchTerm=h("",{debugName:"searchTerm"}),this.searchTerm=y(()=>this._searchTerm(),{debugName:"searchTerm"}),this.newTagName="",this.loadTags()}onSearchChange(t){this._searchTerm.set(t),clearTimeout(this._searchTimeout),this._searchTimeout=setTimeout(()=>{this.loadTags()},500)}loadTags(){this._loading.set(!0);let t={paginate:!0,per_page:50},n=this._searchTerm();n&&(t.searchTerm=n),this._http.get("/api/question-bank/tags",{params:t}).subscribe({next:e=>{let i=e?.data?.data||e?.data||[];this._tags.set(i.map(u=>M(f({},u),{editing:!1,editName:u.name}))),this._loading.set(!1)},error:()=>{this._toast.toast("Failed to load tags",3e3,"red"),this._loading.set(!1)}})}addTag(){let t=this.newTagName.trim();if(!t){this._toast.toast("Tag name is required",2e3,"red");return}this._saving()||(this._saving.set(!0),this._http.post("/api/question-bank/tag/add",{name:t}).subscribe({next:n=>{this._toast.toast("Tag created successfully",2e3,"green"),this.newTagName="",this._saving.set(!1),this.loadTags()},error:n=>{let e=n?.error?.error||"Failed to create tag";this._toast.toast(e,3e3,"red"),this._saving.set(!1)}}))}startEdit(t){this._tags.update(n=>n.map(e=>e.id===t.id?M(f({},e),{editing:!0,editName:e.name}):e))}cancelEdit(t){this._tags.update(n=>n.map(e=>e.id===t.id?M(f({},e),{editing:!1}):e))}saveEdit(t){let n=t.editName?.trim();if(!n){this._toast.toast("Tag name cannot be empty",2e3,"red");return}if(n===t.name){this.cancelEdit(t);return}this._saving()||(this._saving.set(!0),this._http.put(`/api/question-bank/tag/${t.id}/update`,{name:n}).subscribe({next:()=>{this._toast.toast("Tag updated successfully",2e3,"green"),this._tags.update(e=>e.map(i=>i.id===t.id?M(f({},i),{name:n,editing:!1}):i)),this._saving.set(!1)},error:e=>{let i=e?.error?.error||"Failed to update tag";this._toast.toast(i,3e3,"red"),this._saving.set(!1)}}))}deleteTag(t){confirm(`Are you sure you want to delete "${t.name}"?`)&&(this._saving()||(this._saving.set(!0),this._http.delete(`/api/question-bank/tag/${t.id}/delete`).subscribe({next:()=>{this._toast.toast("Tag deleted successfully",2e3,"green"),this._tags.update(n=>n.filter(e=>e.id!==t.id)),this._saving.set(!1)},error:()=>{this._toast.toast("Failed to delete tag",3e3,"red"),this._saving.set(!1)}})))}closeModal(){this.close.emit()}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=w({type:o,selectors:[["app-manage-tags"]],outputs:{close:"close"},decls:17,vars:16,consts:[[3,"closeModal","modalSize","position","mobileSlide","fontColor"],[3,"withIcon"],["asBtn","","rounded","full","icon","close.svg",1,"close",3,"click","bgSize","size","color","bg"],[1,"manage-tags-content"],[1,"add-tag-row"],[1,"input-wrap"],["type","text","placeholder","Enter new tag name",1,"tag-input",3,"ngModelChange","keyup.enter","ngModel"],["unButton","","unButtonCircle","",3,"click","disabled","unButtonLoading"],[1,"search-row"],["type","text","placeholder","Search tags...",1,"tag-input",3,"ngModelChange","ngModel"],[1,"loading-state"],[1,"empty-state"],[1,"tags-list"],[1,"tag-item"],[1,"tag-edit-row"],[1,"tag-display-row"],["type","text",1,"tag-input","edit-input",3,"ngModelChange","keyup.enter","keyup.escape","ngModel"],[1,"tag-actions"],["asBtn","",3,"click","icon","size","color"],[1,"tag-name"]],template:function(n,e){if(n&1&&(a(0,"un-modal",0),d("closeModal",function(){return e.closeModal()}),a(1,"un-modal-header",1)(2,"h2"),C(3,"Manage Tags"),s(),a(4,"un-icon",2),d("click",function(){return e.closeModal()}),s()(),a(5,"un-modal-content")(6,"div",3)(7,"div",4)(8,"div",5)(9,"input",6),N("ngModelChange",function(u){return P(e.newTagName,u)||(e.newTagName=u),u}),d("keyup.enter",function(){return e.addTag()}),s()(),a(10,"button",7),d("click",function(){return e.addTag()}),C(11," Add Tag "),s()(),a(12,"div",8)(13,"input",9),d("ngModelChange",function(u){return e.onSearchChange(u)}),s()(),T(14,de,3,0,"div",10)(15,ce,3,0,"div",11)(16,me,3,0,"div",12),s()()()),n&2){let i;c("modalSize",550)("position","center")("mobileSlide","right")("fontColor","blue_color"),l(),c("withIcon","icon"),l(3),c("bgSize",3
10)("size",18)("color",m(14,ne))("bg",m(15,ie)),l(5),E("ngModel",e.newTagName),l(),c("disabled",e.saving())("unButtonLoading",e.saving()),l(3),c("ngModel",e.searchTerm()),l(),v(e.loading()?14:(i=e.tags())!=null&&i.length?16:15)}},dependencies:[k,G,L,j,H,W,I,Q,U,D,$,R,K,J],styles:[".manage-tags-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:16px;padding:8px 0}.add-tag-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px}.add-tag-row[_ngcontent-%COMP%] .input-wrap[_ngcontent-%COMP%]{flex:1}.search-row[_ngcontent-%COMP%]{margin-bottom:4px}.tag-input[_ngcontent-%COMP%]{width:100%;padding:10px 14px;border:1px solid var(--grey-300);border-radius:8px;font-size:14px;outline:none;transition:border-color .2s}.tag-input[_ngcontent-%COMP%]:focus{border-color:var(--blue-700)}.tag-input[_ngcontent-%COMP%]::placeholder{color:var(--grey-500)}.loading-state[_ngcontent-%COMP%], .empty-state[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:32px 0;color:var(--grey-600);font-size:14px}.tags-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;max-height:400px;overflow-y:auto}.tag-item[_ngcontent-%COMP%]{border-bottom:1px solid var(--grey-100)}.tag-item[_ngcontent-%COMP%]:last-child{border-bottom:none}.tag-display-row[_ngcontent-%COMP%], .tag-edit-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:10px 8px;border-radius:8px;transition:background-color .15s}.tag-display-row[_ngcontent-%COMP%]:hover, .tag-edit-row[_ngcontent-%COMP%]:hover{background-color:var(--grey-50)}
1.tag-name[_ngcontent-%COMP%]{font-size:14px;color:var(--grey-1100);font-weight:500}.tag-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.tag-edit-row[_ngcontent-%COMP%]{gap:12px}.tag-edit-row[_ngcontent-%COMP%] .edit-input[_ngcontent-%COMP%]{flex:1}"],changeDetection:0})}}return o})();b();var ue=()=>({type:"admin",subtype:"general"});function he(o,_){if(o&1){let t=x();a(0,"app-manage-tags",3),d("close",function(){g(t);let e=r();return p(e.closeManageTags())}),s()}}var We=(()=>{class o{constructor(t){this.auth=t,this.isAdmin=!1,this.showManageTags=h(!1)}ngOnInit(){this.isAdmin=this.auth.isAdmin}openManageTags(){this.showManageTags.set(!0)}closeManageTags(){this.showManageTags.set(!1)}static{this.\u0275fac=function(n){return new(n||o)(O(X))}}static{this.\u0275cmp=w({type:o,selectors:[["app-admin-unstop-question-bank"]],decls:4,vars:4,consts:[[1,"unstop-question-bank"],[1,""],[3,"manageTags","heading","config"],[3,"close"]],template:function(n,e){n&1&&(a(0,"div",0)(1,"div",1)(2,"un-question-bank",2),d("manageTags",function(){return e.openManageTags()}),s()()(),T(3,he,1,0,"app-manage-tags")),n&2&&(l(2),c("heading","Unstop Question Bank")("config",m(3,ue)),l(),v(e.showManageTags()?3:-1))},dependencies:[Z,k,Y,ee],styles:["[_nghost-%COMP%]{display:block}.unstop-question-bank[_ngcontent-%COMP%]{background:var(--grey-50);padding:20px}"]})}}return o})();export{We as AdminUnstopQuestionBankComponent};
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.