1"use strict";(self.webpackChunkcqd_frontend=self.webpackChunkcqd_frontend||[]).push([[3081],{23081(ct,D,s){s.d(D,{TrainingModule:()=>dt});var $=s(63905),S=s(51188),t=s(54438),u=s(89417),m=s(81391),k=s(34840),x=s(17947),y=s(34003),w=s(56070),L=s(99410),U=s(27468),M=s(96354),R=s(70980),j=s(29945),P=s(92172),b=s(60177),X=s(81141),B=s(38542),H=s(71517),Y=s(52609),E=s(65571);const F=["mediaFileInput"],V=["markdownEditorRef"],z=n=>({selected:n});function Q(n,c){1&n&&(t.j41(0,"div",9),t.nrm(1,"cqd-spinner"),t.k0s())}function W(n,c){1&n&&t.nrm(0,"p-messages",20)}function J(n,c){if(1&n){const e=t.RV6();t.j41(0,"button",21),t.bIt("click",function(){t.eBV(e);const o=t.XpG(2);return t.Njj(o.createNew())}),t.k0s()}}function Z(n,c){1&n&&t.nrm(0,"div",28)}function K(n,c){1&n&&t.nrm(0,"i",29)}function q(n,c){if(1&n&&(t.j41(0,"span",30),t.EFF(1),t.nI1(2,"date"),t.k0s()),2&n){const e=t.XpG().$implicit;t.R7$(),t.JRh(t.i5U(2,1,e.updatedAt,"short"))}}function tt(n,c){if(1&n){const e=t.RV6();t.j41(0,"li",22),t.bIt("click",function(){const o=t.eBV(e).$implicit,l=t.XpG(2);return t.Njj(l.selectTraining(o))}),t.DNE(1,Z,1,0,"div",23)(2,K,1,0,"i",24),t.j41(3,"div",25)(4,"span",26),t.EFF(5),t.k0s(),t.DNE(6,q,3,4,"span",27),t.k0s()()}if(2&n){const e=c.$implicit,i=t.XpG(2);t.Y8G("cdkDragDisabled",!i.canEdit)("ngClass",t.eq3(5,z,(null==i.selectedTraining?null:i.selectedTraining.id)===e.id)),t.R7$(2),t.Y8G("ngIf",i.canEdit),t.R7$(3),t.JRh(e.title),t.R7$(),t.Y8G("ngIf",e.updatedAt)}}function et(n,c){1&n&&(t.j41(0,"li",31),t.pXf(1,3),t.k0s())}function nt(n,c){if(1&n){const e=t.RV6();t.j41(0,"div",39)(1,"mat-button-toggle-group",40),t.bIt("change",function(){t.eBV(e);const o=t.XpG(3);return t.Njj(o.togglePreviewMode())}),t.j41(2,"mat-button-toggle",41),t.pXf(3,4),t.k0s(),t.j41(4,"mat-button-toggle",41),t.pXf(5,5),t.k0s()(),t.j41(6,"button",42),t.bIt("click",function(){t.eBV(e);const o=t.XpG(3);return t.Njj(o.delete())}),t.k0s(),t.j41(7,"button",43),t.bIt("click",function(){t.eBV(e);const o=t.XpG(3);return t.Njj(o.save())}),t.k0s()()}if(2&n){const e=t.XpG(3);t.R7$(),t.Y8G("value",e.showPreview),t.R7$(),t.Y8G("value",!0),t.R7$(2),t.Y8G("value",!1),t.R7$(2),t.Y8G("disabled",e.isSaving||e.isNew||!(null!=e.selectedTraining&&e.selectedTraining.id)),t.R7$(),t.Y8G("label",e.isUploadingMedia?"Uploading media...":"Save")("loading",e.isUploadingMedia)("disabled",e.titleControl.invalid||e.contentControl.invalid||e.isSaving||e.isUploadingMedia)}}function it(n,c){if(1&n){const e=t.RV6();t.j41(0,"div",44)(1,"input",45,1),t.bIt("change",function(o){t.eBV(e);const l=t.XpG(3);return t.Njj(l.onMediaFilesSelected(o))}),t.k0s(),t.j41(3,"button",46),t.bIt("click",function(){t.eBV(e);const o=t.XpG(3);return t.Njj(o.triggerMediaUpload())}),t.k0s()()}if(2&n){const e=t.XpG(3);t.R7$(3),t.Y8G("disabled",e.isSaving||e.isUploadingMedia)("pTooltip",e.uploadTooltip)}}function ot(n,c){if(1&n&&(t.j41(0,"div",32)(1,"div",33),t.nrm(2,"input",34),t.DNE(3,nt,8,7,"div",35),t.k0s(),t.j41(4,"div",36),t.DNE(5,it,4,2,"div",37),t.nrm(6,"cqd-markdown-editor",38,0),t.k0s()()),2&n){const e=t.XpG(2);t.R7$(2),t.Y8G("formControl",e.titleControl)("readonly",!e.canEdit),t.R7$(),t.Y8G("ngIf",e.canEdit),t.R7$(2),t.Y8G("ngIf",e.canEdit&&!e.showPreview),t.R7$(),t.Y8G("formControl",e.contentControl)("canEdit",e.canEdit&&!e.showPreview)("showPreview",e.showPreview)("disableSanitizer",!0)("maxTextLength",5e4)("height","600px")}}function at(n,c){if(1&n){const e=t.RV6();t.j41(0,"div",10),t.DNE(1,W,1,0,"p-messages",11),t.j41(2,"div",12)(3,"div",13)(4,"div",14),t.DNE(5,J,1,0,"button",15),t.k0s(),t.j41(6,"ul",16),t.bIt("cdkDropListDropped",function(o){t.eBV(e);const l=t.XpG();return t.Njj(l.drop(o))}),t.DNE(7,tt,7,7,"li",17)(8,et,2,0,"li",18),t.k0s()(),t.DNE(9,ot,8,10,"div",19),t.k0s()()}if(2&n){const e=t.XpG();t.R7$(),t.Y8G("ngIf",e.hasError),t.R7$(4),t.Y8G("ngIf",e.canEdit),t.R7$(),t.Y8G("cdkDropListDisabled",!e.canEdit),t.R7$(),t.Y8G("ngForOf",e.trainings),t.R7$(),t.Y8G("ngIf",!e.trainings.length),t.R7$(),t.Y8G("ngIf",e.canEdit||e.selectedTraining)}}function C(n){return n.replace(/\r\n/g,"\n").replace(/\r/g,"\n")}function A(n){n.value=""}let G=(()=>{class n{constructor(){this.methodologyService=(0,t.WQX)(k.R),this.sidebarService=(0,t.WQX)(x.o),this.sessionService=(0,t.WQX)(y.Q),this.route=(0,t.WQX)(S.nX),this.imageUploadService=(0,t.WQX)(w.a),this.cdRef=(0,t.WQX)(t.gRc),this.ngZone=(0,t.WQX)(t.SKi),this.titleControl=new u.MJ("",{nonNullable:!0,validators:[u.k0.required,u.k0.maxLength(255)]}),this.contentControl=new u.MJ("",{nonNullable:!0,validators:[u.k0.maxLength(5e4)]}),this.canEdit=!1,this.showPreview=!0,this.isLoading=!1,this.hasError=!1,this.isSaving=!1,this.isUploadingMedia=!1,this.inlineUploadItems=[],this.trainings=[],this.selectedTraining=null,this.isNew=!1}get uploadTooltip(){return`Upload ${P.G.fileTypes} files. Max size: ${P.G.fileSize.string}`}ngOnInit(){const e=this.sessionService.getSecurityPrincipal();this.canEdit=!!e?.canUseCuratorOrHigher(),this.loadTrainingsList(),this.route.paramMap.subscribe(i=>{const o=i.get("id");o&&this.loadTrainingById(o)})}togglePreviewMode(){this.canEdit&&(this.showPreview=!this.showPreview)}
1triggerMediaUpload(){if(!this.canEdit)return;const e=o=>{o&&(o.value="",o.click())},i=this.mediaFileInputRef?.nativeElement??null;i?e(i):setTimeout(()=>e(this.mediaFileInputRef?.nativeElement??null),0)}onMediaFilesSelected(e){const i=e.target,o=i?.files;if(!o?.length)return;const l=(0,j.X)(o,a=>a).filter(a=>{const r=this.imageUploadService.isImageFile(a),d=this.imageUploadService.isVideoFile(a),_=this.imageUploadService.isDocumentFile(a);return!!(r||d||_)||(this.hasError=!0,!1)});if(!l.length)return void(i.value="");this.isUploadingMedia=!0,this.hasError=!1;const f=setTimeout(()=>{this.isUploadingMedia=!1,this.cdRef.markForCheck()},9e4),p=l.map(a=>{const r=URL.createObjectURL(a),d=this.imageUploadService.isImageFile(a);let h;if(this.imageUploadService.isDocumentFile(a)){const O=this.imageUploadService.getDocumentTypeLabel(a);h=`<a href="${r}" target="_blank" rel="noopener noreferrer" class="cqd-document-link cqd-document-link--${O.toLowerCase()}">${a.name} (${O})</a>`}else h=d?`<img src="${r}" alt="${a.name}" width="560" style="max-width: 100%; height: auto;">`:`<video width="560" height="315" controls><source src="${r}" type="${a.type}">Your browser does not support the video tag.</video>`;return{file:a,blobUrl:r,isImage:d,placeholder:h}});this.inlineUploadItems=p;const v=p.map(a=>a.placeholder).join("\n");if(!this.markdownEditorRef?.insertAtCursor(v)){const a=this.contentControl.value||"",r=a.trim()?"\n":"";this.contentControl.setValue(a+r+p.map(d=>d.placeholder).join("\n"))}const N=()=>{p.forEach(a=>URL.revokeObjectURL(a.blobUrl)),this.inlineUploadItems=this.inlineUploadItems.filter(a=>!p.includes(a))},g=()=>{clearTimeout(f),this.ngZone.run(()=>{this.isUploadingMedia=!1,this.cdRef.detectChanges()})};(0,U.p)(l.map(a=>{if(this.imageUploadService.isDocumentFile(a)){const r=this.imageUploadService.getDocumentTypeLabel(a);return this.imageUploadService.uploadDocument(a).pipe((0,M.T)(({url:d})=>`<a href="${d}" target="_blank" rel="noopener noreferrer" class="cqd-document-link cqd-document-link--${r.toLowerCase()}">${a.name} (${r})</a>`))}return this.imageUploadService.isVideoFile(a)?this.imageUploadService.uploadVideo(a).pipe((0,M.T)(({url:r})=>`<video width="560" height="315" controls><source src="${r}" type="${a.type}">Your browser does not support the video tag.</video>`)):this.imageUploadService.uploadImage(a).pipe((0,M.T)(({url:r})=>`<img src="${r}" alt="${a.name}" width="560" style="max-width: 100%; height: auto;">`))})).pipe((0,R.j)(g)).subscribe({next:a=>{try{let d=C(this.markdownEditorRef?.getCurrentValue()??this.contentControl.value??"");p.forEach((_,h)=>{const O=C(_.placeholder);d=d.includes(O)?d.replace(O,a[h]):d+"\n"+a[h]}),this.markdownEditorRef?.setCurrentValue(d),this.contentControl.setValue(d),N(),A(i)}finally{g()}},error:()=>{try{let r=C(this.markdownEditorRef?.getCurrentValue()??this.contentControl.value??"");p.forEach(d=>{const _=C(d.placeholder);r.includes(_)&&(r=r.replace(_,""))}),this.markdownEditorRef?.setCurrentValue(r),this.contentControl.setValue(r),N(),this.hasError=!0,A(i)}finally{g()}}})}ngOnDestroy(){this.inlineUploadItems.forEach(e=>URL.revokeObjectURL(e.blobUrl)),this.inlineUploadItems=[]}loadTrainingById(e){e&&(this.isLoading=!0,this.hasError=!1,this.methodologyService.getTraining(e).subscribe({next:i=>{this.selectedTraining=i,this.isNew=!1,this.titleControl.setValue(i.title||""),this.contentControl.setValue(i.content||""),this.isLoading=!1,this.showPreview=!0,this.isUploadingMedia=!1,this.cdRef.markForCheck()},error:()=>{this.isLoading=!1,this.hasError=!0,this.isUploadingMedia=!1,this.cdRef.markForCheck()}}))}selectTraining(e){!e?.id||this.isUploadingMedia||(this.isLoading=!0,this.hasError=!1,this.methodologyService.getTraining(e.id).subscribe({next:i=>{this.selectedTraining=i,this.isNew=!1,this.titleControl.setValue(i.title||""),this.contentControl.setValue(i.content||""),this.isLoading=!1,this.showPreview=!0},error:()=>{this.isLoading=!1,this.hasError=!0}}))}createNew(){this.canEdit&&(this.selectedTraining=null,this.isNew=!0,this.titleControl.setValue(""),this.contentControl.setValue(""),this.showPreview=!1)}save(){if(!this.canEdit||this.titleControl.invalid||this.contentControl.invalid)return;this.isSaving=!0,this.hasError=!1;const i=function rt(n){let c=n.replace(/<video[^>]*>[\s\S]*?<source\s+src="blob:[^"]*"[^>]*>[\s\S]*?<\/video>/gi,"");return c=c.replace(/<a[^>]*href="blob:[^"]*"[^>]*>[\s\S]*?<\/a>/gi,""),c}(this.markdownEditorRef?.getCurrentValue()??this.contentControl.value??"").trim()||null,o={title:this.titleControl.value,content:i};(this.isNew||!this.selectedTraining?.id?this.methodologyService.createTraining(o):this.methodologyService.updateTraining(this.selectedTraining.id,o)).pipe((0,R.j)(()=>{this.isSaving=!1,this.isUploadingMedia=!1,this.cdRef.markForCheck()})).subscribe({next:f=>{this.showPreview=!0,this.selectedTraining=f,this.isNew=!1,this.loadTrainingsList(),this.sidebarService.updateSideBar()},error:()=>{this.hasError=!0}})}delete(){!this.canEdit||!this.selectedTraining?.id||(this.isSaving=!0,this.hasError=!1,this.methodologyService.deleteTraining(this.selectedTraining.id).subscribe({next:()=>{this.isSaving=!1,this.selectedTraining=null,this.isNew=!1,this.titleControl.setValue(""),this.contentControl.setValue(""),this.loadTrainingsList(),this.sidebarService.updateSideBar()},error:e=>{this.isSaving=!1,403===e?.status?this.hasError=!0:404===e?.status?(this.hasError=!0,this.loadTrainingsList()):this.hasError=!0}}))}drop(e){if(!this.canEdit||e.previousIndex===e.currentIndex)return;const i=[...this.trainings];(0,m.HD)(this.trainings,e.previousIndex,e.currentIndex),this.hasError=!1,this.methodologyService.reorderTrainings(this.trainings.map(o=>o.id)).subscribe({next:o=>{this.trainings=o,this.sidebarService.updateSideBar()},error:()=>{this.trainings=i,this.hasError=!0}})}loadTrainingsList(){this.isLoading=!0,this.hasError=!1,this.methodologyService.getTrainings().subscribe({next:e=>{this.trainings=e,this.isLoading=!1},error:()=>{this.isLoading=!1,this.hasError=!0}})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=t.VBU({type:n,selectors:[["cqd-methodology-trainings"]],viewQuery:function(i,o){if(1&i&&(t.GBs(F,5),t.GBs(V,5)),2&i){let l;t.mGM(l=t.lsd())&&(o.mediaFileInputRef=l.first),t.mGM(l=t.lsd())&&(o.markdownEditorRef=l.first)}},decls:4,vars:2,consts:()=>{let e,i,o,l,f,T,p,v,I,N;return e=$localize`:âc54b5ffe8a3a05cb5b75bd2e712903c5a56e53d2â2049162951405011704:EC3 Training`,i=$localize`:âe2b8cfec429872f7bd3a07e3dc62891d96f0e320â4294877325466570472:Unable to load or save trainings content.`,o=$localize`:â1357b86e25b123acc30899914228c3828014a900â5552241557488172526:New training`,l=$localize`:âfd0cd449a52dc32240c95311291076314537f9fdâ999839649711783847:No trainings yet.`,f=$localize`:â7fbd9dc79b590e8a91fbcaae69790ca2f969ca69â6133252787151885857:Training title`,T=$localize`:âeac63a4b09e82646b430faf8e35dcbeda8938f04â3414718478556489855:Add EC3 training text, images, videos, and documents here...`,p=$localize`:â826b25211922a1b46436589233cb
16f1a163d89b7â7022070615528435141:Delete`,v=$localize`:â3e2a583f531f7dd9f089f68a6968e444c372c3e8â1295614462098694869:Preview`,I=$localize`:â28f86ffd419b869711aa13f5e5ff54be6d70731câ7585826646011739428:Edit`,N=$localize`:â20bfb927a41594dfb6b29588ba17981f10eec9f8â7037889682600256786:Upload File`,[["markdownEditorRef",""],["mediaFileInput",""],e,l,v,I,[1,"page-title"],["class","loading-container",4,"ngIf"],["class","trainings-container",4,"ngIf"],[1,"loading-container"],[1,"trainings-container"],["severity","error","text",i,4,"ngIf"],[1,"trainings-layout"],[1,"trainings-list"],[1,"trainings-list-header"],["pButton","","type","button","class","new-btn","icon","pi pi-plus","label",o,3,"click",4,"ngIf"],["cdkDropList","",1,"trainings-items",3,"cdkDropListDropped","cdkDropListDisabled"],["class","trainings-item","cdkDrag","",3,"cdkDragDisabled","ngClass","click",4,"ngFor","ngForOf"],["class","empty-list",4,"ngIf"],["class","training-editor",4,"ngIf"],["severity","error","text",i],["pButton","","type","button","icon","pi pi-plus","label",o,1,"new-btn",3,"click"],["cdkDrag","",1,"trainings-item",3,"click","cdkDragDisabled","ngClass"],["class","drag-placeholder",4,"cdkDragPlaceholder"],["class","pi pi-bars drag-handle","cdkDragHandle","",4,"ngIf"],[1,"training-item-text"],[1,"training-title"],["class","training-updated",4,"ngIf"],[1,"drag-placeholder"],["cdkDragHandle","",1,"pi","pi-bars","drag-handle"],[1,"training-updated"],[1,"empty-list"],[1,"training-editor"],[1,"training-editor-header"],["type","text","placeholder",f,1,"title-input",3,"formControl","readonly"],["class","editor-actions",4,"ngIf"],[1,"training-editor-body"],["class","upload-action",4,"ngIf"],["placeholder",T,3,"formControl","canEdit","showPreview","disableSanitizer","maxTextLength","height"],[1,"editor-actions"],[1,"training-preview-edit-toggle",3,"change","value"],[3,"value"],["pButton","","type","button","label",p,1,"button","button--red","editor-action-btn",3,"click","disabled"],["pButton","","type","button","loadingIcon","pi pi-spin pi-spinner",1,"button","button--green","editor-action-btn",3,"click","label","loading","disabled"],[1,"upload-action"],["type","file","accept","image/*,video/*,application/pdf,.pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,.xlsx","multiple","",1,"upload-input-hidden",3,"change"],["pButton","","type","button","icon","pi pi-upload","label",N,1,"button","button--blue","upload-media-btn","editor-action-btn",3,"click","disabled","pTooltip"]]},template:function(i,o){1&i&&(t.j41(0,"h1",6),t.pXf(1,2),t.k0s(),t.DNE(2,Q,2,0,"div",7)(3,at,10,6,"div",8)),2&i&&(t.R7$(2),t.Y8G("ngIf",o.isLoading),t.R7$(),t.Y8G("ngIf",!o.isLoading))},dependencies:[b.YU,b.Sq,b.bT,u.me,u.BC,u.l_,X._f,B.m,H.t,Y.B,E.ec,E.pc,L.y,m.O7,m.T1,m.Fb,m.EM,b.vh],styles:['.trainings-container[_ngcontent-%COMP%]{margin-top:1.5rem}.loading-container[_ngcontent-%COMP%]{margin-top:2rem}.trainings-layout[_ngcontent-%COMP%]{display:flex;gap:1.5rem}.trainings-list[_ngcontent-%COMP%]{width:260px}.trainings-list-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.trainings-items[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;border-radius:4px;border:1px solid #ddd}.trainings-item[_ngcontent-%COMP%]{padding:.5rem .75rem;cursor:pointer;display:flex;align-items:center;gap:.5rem}.trainings-item[_ngcontent-%COMP%]:nth-child(odd){background-color:#fafafa}.trainings-item[_ngcontent-%COMP%]:hover{background-color:#eef6ff}.trainings-item.selected[_ngcontent-%COMP%]{background-color:#d9e8ff}.training-item-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:0}.drag-handle[_ngcontent-%COMP%]{cursor:move;color:#999}.cdk-drop-list-dragging[_ngcontent-%COMP%] .cdk-drag[_ngcontent-%COMP%]{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-animating[_ngcontent-%COMP%]{transition:transform .3s cubic-bezier(0,0,.2,1)}.drag-placeholder[_ngcontent-%COMP%]{background:#f0f0f0;border:dotted 1px #999;min-height:2.5rem;transition:transform .15s cubic-bezier(0,0,.2,1)}.training-title[_ngcontent-%COMP%]{font-weight:500}.training-updated[_ngcontent-%COMP%]{font-size:.75rem;color:#666}.empty-list[_ngcontent-%COMP%]{padding:.5rem .75rem;
1color:#777}.training-editor[_ngcontent-%COMP%]{flex:1;min-width:0}.training-editor-body[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:0}.upload-action[_ngcontent-%COMP%]{position:relative;display:flex;justify-content:flex-start;margin-bottom:.5rem}.training-editor-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;gap:1rem}.title-input[_ngcontent-%COMP%]{flex:1;padding:.5rem .75rem;border-radius:4px;border:1px solid #ccc;font-size:1rem}.editor-actions[_ngcontent-%COMP%]{position:relative;display:flex;align-items:stretch;gap:.5rem}.editor-actions[_ngcontent-%COMP%] .editor-action-btn[_ngcontent-%COMP%], .upload-action[_ngcontent-%COMP%] .editor-action-btn[_ngcontent-%COMP%]{text-transform:none!important}.editor-actions[_ngcontent-%COMP%] .training-preview-edit-toggle.mat-button-toggle-group-appearance-standard{border-radius:0!important;display:inline-flex!important;align-self:stretch;height:auto!important}.editor-actions[_ngcontent-%COMP%] .training-preview-edit-toggle.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard{height:100%!important;min-height:0!important;border-radius:0!important}.editor-actions[_ngcontent-%COMP%] .training-preview-edit-toggle.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard .mat-button-toggle-button{height:100%!important;min-height:0!important}.editor-actions[_ngcontent-%COMP%] .training-preview-edit-toggle.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard:first-child .mat-button-toggle-button, .editor-actions[_ngcontent-%COMP%] .training-preview-edit-toggle.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard:first-child .mat-button-toggle-label-content{border-radius:0!important}.editor-actions[_ngcontent-%COMP%] .training-preview-edit-toggle.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard:last-child .mat-button-toggle-button, .editor-actions[_ngcontent-%COMP%] .training-preview-edit-toggle.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard:last-child .mat-button-toggle-label-content{border-radius:0!important}.editor-actions[_ngcontent-%COMP%] .training-preview-edit-toggle.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 11px;height:100%!important;min-height:0!important;font-weight:700;font-size:14px;line-height:1.29;display:inline-flex;align-items:center;box-sizing:border-box}.editor-actions[_ngcontent-%COMP%] .training-preview-edit-toggle.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard:not(.mat-button-toggle-checked){background:var(--secondary);color:var(--text-primary)}.editor-actions[_ngcontent-%COMP%] .training-preview-edit-toggle.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard.mat-button-toggle-checked{background:var(--primary);color:#fff!important}.editor-actions[_ngcontent-%COMP%] .training-preview-edit-toggle.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard.mat-button-toggle-checked .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #fff !important;color:#fff!important}.editor-actions[_ngcontent-%COMP%] .training-preview-edit-toggle.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard.mat-button-toggle-checked .mat-pseudo-checkbox-checked:after, .editor-actions[_ngcontent-%COMP%] .training-preview-edit-toggle.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard.mat-button-toggle-checked .mat-pseudo-checkbox:after{border-color:#fff!important;color:#fff!important}.upload-input-hidden[_ngcontent-%COMP%]{position:absolute;width:0;height:0;opacity:0;overflow:hidden;pointer-events:none}.upload-media-btn[_ngcontent-%COMP%]{flex-shrink:0;min-width:2.5rem} .cqd-document-link{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid #ccc;border-radius:4px;background-color:#f9f9f9;color:#363d54;text-decoration:none;font-weight:500;transition:background-color .2s} .cqd-document-link:hover{background-color:#eef6ff;text-decoration:none} .cqd-document-link:before{content:"\\f1c1";font-family:"Font Awesome 6 Free","Font Awesome 5 Free",sans-serif;font-weight:900;font-size:1.1em;color:#c0392b} .cqd-document-link.cqd-document-link--xlsx:before{content:"\\f1c3";color:#6e9148}']})}}return n})();const st=[{path:"",component:G},{path:":id",component:G}];let lt=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=t.$C({type:n})}static{this.\u0275inj=t.G2t({imports:[S.iI.forChild(st),S.iI]})}}return n})(),dt=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=t.$C({type:n})}static{this.\u0275inj=t.G2t({imports:[lt,$.G,E.Vg,m.ad]})}}return n})()}}]);
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.