PageSourceSearch

https://vocport.gov.in/chunk-3L7KOENS.js

js vocport.gov.in collected 2026-10-02 19:39:11 UTC 15,445 bytes, 1 lines download raw bytes

1import{a as Y}from"./chunk-4XTOUKLX.js";import{a as q,b as X}from"./chunk-TNBEB5LT.js";import{a as $}from"./chunk-WSFU6SFG.js";import"./chunk-PJU3RY6S.js";import{a as j}from"./chunk-I7XIRC2S.js";import{a as G}from"./chunk-A5M5H5PX.js";import{C as R,D as O,E as L,c as T,e as b,g as D,h as M,l as U,n as B,p as z,s as N}from"./chunk-T3OC74ZZ.js";import{e as I}from"./chunk-NAOEBZYB.js";import{a as V}from"./chunk-K2BAHOWP.js";import"./chunk-4QTHKBSW.js";import{m as P,w as A}from"./chunk-EQ6PZGEX.js";import{Eb as d,Nb as o,Ob as r,Pb as m,Tb as v,Yb as u,Zb as c,ab as y,bb as S,gb as s,ic as C,jc as a,kc as E,lb as h,lc as _,na as p,oa as f,sb as w,sc as k,xb as g}from"./chunk-QZFOZYL5.js";import{h as Q}from"./chunk-SZAW6ZBW.js";var K=Q(Y());var Z=()=>[5,10,25,50];function ee(l,i){if(l&1){let e=v();o(0,"div",38),m(1,"img",39),o(2,"button",9),u("click",function(){p(e);let t=c(3);return f(t.removeFile())}),m(3,"i",40),r()()}if(l&2){let e=c(3);s(),d("src",e.filePreview,y)}}function ie(l,i){if(l&1){let e=v();o(0,"div",38),m(1,"i",41),o(2,"div")(3,"div",42),a(4),r(),o(5,"small",43),a(6),r()(),o(7,"button",44),u("click",function(){p(e);let t=c(3);return f(t.removeFile())}),m(8,"i",45),r()()}if(l&2){let e=c(3);s(4),E(e.selectedFile.name),s(2),_("",(e.selectedFile.size/1024/1024).toFixed(2)," MB")}}function te(l,i){if(l&1&&(o(0,"div",36),g(1,ee,4,1,"div",37)(2,ie,9,2,"div",37),r()),l&2){let e=c(2);s(),d("ngIf",e.filePreview&&e.filePreview.startsWith("data:image")),s(),d("ngIf",e.selectedFile&&e.selectedFile.type==="application/pdf")}}function ne(l,i){if(l&1){let e=v();o(0,"div",46)(1,"div",47)(2,"strong"),a(3,"Existing Document"),r(),o(4,"button",48),u("click",function(){p(e);let t=c(2);return f(t.removeExistingPdf())}),a(5," Remove PDF "),r()(),m(6,"iframe",49),r()}if(l&2){let e=c(2);s(6),d("src",e.existingFileUrl,S)}}function oe(l,i){l&1&&(o(0,"div",50),m(1,"i",51),a(2," Please upload a document. "),r())}function le(l,i){if(l&1&&m(0,"ckeditor",52),l&2){let e=c(2);d("editor",e.Editor)}}function re(l,i){l&1&&(o(0,"div",53),m(1,"i",51),a(2," Description is required and must be at least 10 characters long. "),r())}function ae(l,i){l&1&&m(0,"i",54)}function se(l,i){if(l&1){let e=v();o(0,"div",3),u("click",function(){p(e);let t=c();return f(t.closeModal())}),o(1,"div",4),u("click",function(t){return p(e),f(t.stopPropagation())}),o(2,"div",5)(3,"div",6)(4,"h5",7),m(5,"i",8),a(6),r(),o(7,"button",9),u("click",function(){p(e);let t=c();return f(t.closeModal())}),m(8,"i",10),r()(),o(9,"div",11)(10,"form",12),u("ngSubmit",function(){p(e);let t=c();return f(t.onSubmit())}),o(11,"div")(12,"label",13),a(13," Upload Document "),o(14,"span",14),a(15,"*"),r()(),o(16,"div",15),u("click",function(){p(e);let t=C(18);return f(t.click())}),o(17,"input",16,0),u("change",function(t){p(e);let x=c();return f(x.onFileSelected(t))}),r(),m(19,"i",17),o(20,"p",18),a(21,"Click to upload or drag & drop"),r(),o(22,"p",19),a(23,"PDF, DOC, DOCX up to 10MB"),r()(),g(24,te,3,2,"div",20)(25,ne,7,1,"div",21)(26,oe,3,0,"div",22),r(),o(27,"div")(28,"label",23),a(29," Description "),o(30,"span",14),a(31,"*"),r()(),g(32,le,1,1,"ckeditor",24)(33,re,3,0,"div",25),r(),o(34,"div")(35,"label",13),a(36,"Status "),o(37,"span",14),a(38,"*"),r()(),o(39,"div",26)(40,"div",27),m(41,"input",28),o(42,"label",29),a(43,"Active"),r()(),o(44,"div",27),m(45,"input",30),o(46,"label",31),a(47,"Inactive"),r()()()()()(),o(48,"div",32)(49,"button",33),u("click",function(){p(e);let t=c();return f(t.closeModal())}),a(50,"Cancel"),r(),o(51,"button",34),u("click",function(){p(e);let t=c();return f(t.onSubmit())}),g(52,ae,1,0,"i",35),a(53),r()()()()()}if(l&2){let e,n,t=c();s(6),_(" ",t.isEditMode?"Edit Storage Facility":"Add Storage Facility"," "),s(4),d("formGroup",t.facilityForm),s(14),d("ngIf",t.filePreview||t.selectedFile),s(),d("ngIf",t.isEditMode&&t.existingFileUrl&&!t.removeExistingFile),s(),d("ngIf",((e=t.facilityForm.get("document"))==null?null:e.invalid)&&((e=t.facilityForm.get("document"))==null?null:e.touched)),s(6),d("ngIf",t.facilityForm&&t.Editor),s(),d("ngIf",((n=t.facilityForm.get("description"))==null?null:n.invalid)&&
1((n=t.facilityForm.get("description"))==null?null:n.touched)),s(18),d("disabled",t.facilityForm.invalid||t.isSubmitting),s(),d("ngIf",t.isSubmitting),s(),_(" ",t.isSubmitting?"Saving...":t.isEditMode?"Update Facility":"Add Facility"," ")}}var H=class l{constructor(i,e,n,t){this.fb=i;this.service=e;this.sanitizer=n;this.permissionService=t;this.facilityForm=this.fb.group({document:[null],description:["",[b.required,b.minLength(10)]],showPdf:[!1],status:["active",b.required]})}Editor=K.default;columns=[];data=[];totalRecords=0;isLoading=!1;filterOptions={};rowActions=[];showAddButton=!1;showModal=!1;isEditMode=!1;isSubmitting=!1;facilityForm;editingId=null;selectedFile=null;filePreview=null;existingFilePath=null;existingFileUrl=null;rawExistingFilePath=null;removeExistingFile=!1;ngOnInit(){this.initColumns(),this.initFilters(),this.initActions(),this.initPermissions(),this.loadData()}initColumns(){this.columns=[{key:"sno",label:"S.No",type:"number",align:"center",width:"80px"},{key:"documentUrl",label:"Document",type:"text",sortable:!0,width:"250px"},{key:"publishStatus",label:"Status",type:"status",width:"100px",statusConfig:{published:{label:"Published",color:"#fff",backgroundColor:"#1B5E20"},pending:{label:"Pending Approval",color:"#fff",backgroundColor:"#B26A00"}}}]}initFilters(){this.filterOptions={status:["active","inactive"]}}PERM_PREFIX="storage-facilities";can(i){return this.permissionService.hasPermission(`${this.PERM_PREFIX}.${i}`)}initPermissions(){this.showAddButton=this.can("add")}initActions(){this.rowActions=[],this.can("edit")&&this.rowActions.push({icon:"edit",tooltip:"Edit",color:"#0A3C7D",onClick:i=>this.editFacility(i)}),this.can("approval")&&this.rowActions.push({icon:"check",tooltip:"Approve & Publish",color:"#1B5E20",onClick:i=>this.approveStorageFacility(i),show:i=>i.publish===0},{icon:"close",tooltip:"Unpublish",color:"#B26A00",onClick:i=>this.unpublishStorageFacility(i),show:i=>i.publish===1}),this.can("delete")&&this.rowActions.push({icon:"delete",tooltip:"Delete",color:"#dc3545",onClick:i=>this.deleteFacility(i.id)})}approveStorageFacility(i){confirm(`Approve and publish StorageFacility"${i.documentUrl}"?`)&&(this.isLoading=!0,this.service.approveStorageFacility(i.id).subscribe({next:e=>{alert("StorageFacility approved and published successfully."),this.loadData()},error:e=>{console.error("Approve failed:",e),alert("Failed to approve StorageFacility."),this.isLoading=!1}}))}unpublishStorageFacility(i){confirm(`Unpublish StorageFacility"${i.documentUrl}"?`)&&(this.isLoading=!0,this.service.unpublishStorageFacility(i.id).subscribe({next:e=>{alert("StorageFacility unpublished successfully."),this.loadData()},error:e=>{console.error("Unpublish failed:",e),alert("Failed to unpublish StorageFacility."),this.isLoading=!1}}))}loadData(){this.isLoading=!0,this.service.getAllStorageFacilities().subscribe({next:i=>{let e=i.data||i;this.data=e.map((n,t)=>({id:n.id,sno:t+1,documentUrl:n.filePath,description:n.description,showPdf:!!n.showPdf,status:n.isActive?"active":"inactive",publish:n.publish||0,publishStatus:n.publish===1?"published":"pending",createdAt:n.createdAt,createdBy:n.createdBy,lastUpdated:n.updatedAt})),this.totalRecords=this.data.length,this.isLoading=!1},error:i=>{console.error("Error loading storage facilities:",i),this.isLoading=!1}})}onFileSelected(i){let e=i.target.files[0];if(!e)return;let n=10*1024*1024,t=["application/pdf","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],x=["pdf","doc","docx"],W=e.name.split(".").pop()?.toLowerCase();if(!t.includes(e.type)||!x.includes(W||"")){alert("Only PDF, DOC, DOCX, JPG, PNG files are allowed.");return}if(e.size>n){alert("File size must not exceed 10MB.");return}if(this.selectedFile=e,this.facilityForm.patchValue({document:e}),e.type.startsWith("image/")){let F=new FileReader;F.onload=J=>this.filePreview=J.target?.result,F.readAsDataURL(e)}else this.filePreview=e.name}removeFile(){this.selectedFile=null,this.filePreview=null,this.existingFilePath=null,this.facilityForm.patchValue({document:null})}onAddNew(){this.isEditMode=!1,this.editingId=null,this.selectedFile=null,this.filePreview=null,this.existingFileUrl=null,this.rawExistingFilePath=null,this.removeExistingFile=!1,this.facilityForm.reset({document:null,description:"",showPdf:!1,status:"active"}),this.facilityForm.get("document")?.setValidators([b.required]),this.facilityForm.get("document")?.updateValueAndValidity(),this.showModal=!0}editFacility(i){this.isEditMode=!0,this.editingId=i.id,this.facilityForm.patchValue({description:i.description,showPdf:i.showPdf,status:i.status}),this.rawExistingFilePath=i.documentUrl?`${V.apiUrl}/${i.documentUrl}`:null,this.existingFileUrl=this.rawExistingFilePath?this.sanitizer.bypassSecurityTrustResourceUrl(this.rawExistingFilePath):null,this.removeExistingFile=!1,this.facilityForm.get("document")?.clearValidators(),this.facilityForm.get("document")?.updateValueAndValidity(),this.showModal=!0}removeExistingPdf(){confirm("Are you sure you want to remove this document?")&&(this.removeExistingFile=!0,this.existingFileUrl=null,this.rawExistingFilePath=null,this.facilityForm.get("document")?.setValue(null))}
1onSubmit(){if(this.facilityForm.invalid){this.facilityForm.markAllAsTouched();return}this.isSubmitting=!0;let i=this.facilityForm.value,e=new FormData;e.append("description",i.description),e.append("showPdf",i.showPdf?"1":"0"),e.append("publish","1"),e.append("isActive",i.status==="active"?"1":"0"),this.selectedFile?e.append("filePath",this.selectedFile):this.existingFilePath&&e.append("filePath",this.existingFilePath),(this.isEditMode&&this.editingId?this.service.updateStorageFacility(this.editingId,e):this.service.addStorageFacility(e)).subscribe({next:()=>{this.isSubmitting=!1,this.closeModal(),this.loadData()},error:t=>{console.error("Error saving facility:",t),this.isSubmitting=!1}})}deleteFacility(i){confirm("Are you sure you want to delete this facility?")&&this.service.deleteStorageFacility(i).subscribe({next:()=>this.loadData(),error:e=>console.error("Error deleting facility:",e)})}closeModal(){this.showModal=!1,this.isEditMode=!1,this.editingId=null,this.selectedFile=null,this.filePreview=null,this.existingFileUrl=null,this.rawExistingFilePath=null,this.removeExistingFile=!1,this.facilityForm.reset({document:null,description:"",showPdf:!1,status:"active"})}static \u0275fac=function(e){return new(e||l)(h(R),h(G),h(I),h(j))};static \u0275cmp=w({type:l,selectors:[["app-storage-facilities"]],decls:2,vars:19,consts:[["fileInput",""],[3,"addNew","displayedColumns","dataSource","totalRecords","pageSize","pageSizeOptions","isLoading","showSearch","showFilter","showAddButton","addButtonText","tableTitle","searchPlaceholder","filterOptions","rowActions","selectable","stickyHeader","stickyFooter"],["class","modal fade show d-block bg-dark bg-opacity-75","tabindex","-1","role","dialog","aria-labelledby","storageFacilitiesModalTitle","style","background-color: rgba(0, 0, 0, 0.8); z-index: 2000;",3,"click",4,"ngIf"],["tabindex","-1","role","dialog","aria-labelledby","storageFacilitiesModalTitle",1,"modal","fade","show","d-block","bg-dark","bg-opacity-75",2,"background-color","rgba(0, 0, 0, 0.8)","z-index","2000",3,"click"],["role","document",1,"modal-dialog","modal
1-dialog-centered","modal-lg",2,"z-index","2050",3,"click"],[1,"modal-content","border-0","shadow-lg","rounded-4","overflow-hidden",2,"z-index","2100","background-color","#ffffff"],[1,"modal-header","text-white","d-flex","align-items-center","justify-content-between","px-4","py-3",2,"background-color","#13296C","box-shadow","0 2px 8px rgba(0,0,0,0.3)"],["id","storageFacilitiesModalTitle",1,"modal-title","fw-bold","d-flex","align-items-center","gap-2","mb-0"],[1,"ri-home-gear-line","fs-4","text-light"],["type","button",1,"btn","btn-light","btn-sm","rounded-circle","p-0","d-flex","align-items-center","justify-content-center","border-0","shadow-sm",2,"width","36px","height","36px",3,"click"],[1,"ri-close-line","fs-5",2,"color","#0B1941"],[1,"modal-body","p-4","bg-white"],[1,"d-flex","flex-column","gap-4",3,"ngSubmit","formGroup"],[1,"form-label","fw-semibold","text-dark"],[1,"text-danger"],[1,"border","border-2","border-dashed","rounded-3","text-center","bg-light","p-4",2,"cursor","pointer",3,"click"],["type","file","accept",".pdf,.doc,.docx","hidden","",3,"change"],[1,"ri-upload-cloud-line","fs-1","text-primary","mb-2"],[1,"fw-semibold","mb-1"],[1,"text-muted","small"],["class","border rounded-3 p-3 mt-3 bg-white shadow-sm",4,"ngIf"],["class","border rounded-3 p-3 mt-3 bg-light",4,"ngIf"],["class","text-danger small mt-2",4,"ngIf"],["for","description",1,"form-label","fw-semibold","text-dark"],["id","description","formControlName","description",3,"editor",4,"ngIf"],["class","text-danger small mt-1",4,"ngIf"],[1,"d-flex","align-items-center","gap-4","mt-2"],[1,"form-check"],["name","status","type","radio","formControlName","status","id","active","value","active",1,"form-check-input",2,"accent-color","#2947A3"],["for","active",1,"form-check-label","fw-semibold"],["name","status","type","radio","formControlName","status","id","inactive","value","inactive",1,"form-check-input",2,"accent-color","#2947A3"],["for","inactive",1,"form-check-label","fw-semibold"],[1,"modal-footer","bg-light","d-flex","justify-content-end","gap-3","py-3","px-4","border-top"],["type","button",1,"btn","btn-outline-secondary","px-4",3,"click"],["type","submit",1,"btn","text-white","px-4","border-0",2,"background","linear-gradient(135deg,#2947A3,#13296C)",3,"click","disabled"],["class","ri-loader-4-line spin",4,"ngIf"],[1,"border","rounded-3","p-3","mt-3","bg-white","shadow-sm"],["class","d-flex align-items-center gap-3",4,"ngIf"],[1,"d-flex","align-items-center","gap-3"],["alt","",1,"rounded-2",2,"max-width","120px","max-height","100px","object-fit","cover",3,"src"],[1,"ri-close-line","fs-5","text-dark"],[1,"ri-file-pdf-line","fs-3","text-danger"],[1,"fw-semibold"],[1,"text-muted"],["type","button",1,"btn","btn-sm","btn-outline-danger","rounded-circle","ms-auto",3,"click"],[1,"ri-close-line"],[1,"border","rounded-3","p-3","mt-3","bg-light"],[1,"d-flex","align-items-center","justify-content-between","mb-2"],["type","button",1,"btn","btn-sm","btn-outline-danger",3,"click"],["width","100%","height","400",2,"border","1px solid #ccc","border-radius","6px",3,"src"],[1,"text-danger","small","mt-2"],[1,"ri-error-warning-line"],["id","description","formControlName","description",3,"editor"],[1,"text-danger","small","mt-1"],[1,"ri-loader-4-line","spin"]],template:function(e,n){e&1&&(o(0,"app-common-table",1),u("addNew",function(){return n.onAddNew()}),r(),g(1,se,54,10,"div",2)),e&2&&(d("displayedColumns",n.columns)("dataSource",n.data)("totalRecords",n.totalRecords)("pageSize",10)("pageSizeOptions",k(18,Z))("isLoading",n.isLoading)("showSearch",!0)("showFilter",!0)("showAddButton",n.showAddButton)("addButtonText","Add Storage Facility")("tableTitle","Storage Facilities Management")("searchPlaceholder","Search storage facilities...")("filterOptions",n.filterOptions)("rowActions",n.rowActions)("selectable",!1)("stickyHeader",!0)("stickyFooter",!0),s(),d("ngIf",n.showModal))},dependencies:[A,P,O,U,T,B,D,M,L,z,N,X,q,$],encapsulation:2})};export{H as StorageFacilitiesComponent};

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.