1"use strict";(self.webpackChunkmyapp=self.webpackChunkmyapp||[]).push([[5802],{65802:(Ot,V,m)=>{m.r(V),m.d(V,{RoleComponent:()=>Pt});var U=m(62252),X=m(50957),H=m(70159),M=m(98259),h=m(15385),T=m(98231),D=m(8114),x=m(51628),W=m(28114),J=m(52702),P=m(44025),f=m(90695),Z=m(51996),A=m(26453),N=m(8179),F=m(62794),E=m(86570),k=m(15799),Q=m(28472),y=m(44267),z=m(44752),w=m(8077),I=m(15941),b=m(48711),q=m(61040),ee=m(34226),G=m(48164),B=m(52317),te=m(49355),e=m(23135),j=m(2765),O=m(28113);const ne=["searchInput"],ie=["vtsTreeComponent"],se=a=>({$implicit:a}),oe=()=>({"margin-top":"10px"});function re(a,d){1&a&&e.nrm(0,"i",12)}function ae(a,d){1&a&&e.eu8(0)}function le(a,d){if(1&a&&(e.qex(0),e.DNE(1,ae,1,0,"ng-container",13),e.bVm()),2&a){const t=e.XpG(),i=e.sdS(8);e.R7$(),e.Y8G("ngTemplateOutlet",i)("ngTemplateOutletContext",e.eq3(2,se,t.checkedResources.length))}}function ce(a,d){if(1&a){const t=e.RV6();e.j41(0,"div",14)(1,"div",15)(2,"span",16)(3,"b"),e.EFF(4),e.k0s(),e.EFF(5),e.nI1(6,"translate"),e.k0s(),e.j41(7,"span",17),e.EFF(8,"|"),e.k0s()(),e.j41(9,"button",18),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.uncheckSelectedNodes())}),e.nrm(10,"i",19),e.EFF(11),e.nI1(12,"translate"),e.k0s()()}if(2&a){const t=d.$implicit;e.R7$(4),e.JRh(t),e.R7$(),e.SpI(" ",e.bMT(6,3,"common.table.selectedItems")," "),e.R7$(6),e.SpI(" ",e.bMT(12,5,"common.action.clearSelection")," ")}}function de(a,d){1&a&&e.nrm(0,"empty-customize")}function he(a,d){1&a&&e.eu8(0)}function pe(a,d){if(1&a){const t=e.RV6();e.j41(0,"div",20)(1,"div",21)(2,"vts-tree",22,6),e.bIt("vtsCheckBoxChange",function(n){e.eBV(t);const s=e.XpG();return e.Njj(s.onEventCheckBoxChange(n))})("vtsClick",function(n){e.eBV(t);const s=e.XpG();return e.Njj(s.onEventCheckBoxChange(n,!0))}),e.k0s()()()}if(2&a){const t=e.XpG(),i=e.sdS(16);e.R7$(),e.Y8G("ngStyle",e.lJ4(4,oe)),e.R7$(),e.Y8G("vtsData",t.nodes)("vtsExpandAll",!1)("vtsTreeTemplate",i
1)}}function ge(a,d){if(1&a&&(e.qex(0),e.j41(1,"span",24),e.EFF(2),e.k0s(),e.bVm()),2&a){const t=e.XpG().$implicit;e.R7$(2),e.JRh(t.title)}}function ue(a,d){if(1&a&&(e.qex(0),e.j41(1,"div",25)(2,"span",26),e.nI1(3,"lowercase"),e.EFF(4),e.k0s(),e.j41(5,"div",27)(6,"span",28),e.EFF(7),e.k0s(),e.j41(8,"span",29),e.EFF(9),e.k0s()()(),e.bVm()),2&a){const t=e.XpG().$implicit;e.R7$(2),e.Y8G("ngClass",e.bMT(3,4,t.origin.method)),e.R7$(2),e.SpI(" ",t.origin.method," "),e.R7$(3),e.JRh(t.origin.resourceName),e.R7$(2),e.JRh(t.origin.url)}}function me(a,d){if(1&a&&(e.j41(0,"div",23),e.DNE(1,ge,3,1,"ng-container",9)(2,ue,10,6,"ng-container",9),e.k0s()),2&a){const t=d.$implicit;e.R7$(),e.Y8G("ngIf",!t.origin.isApi),e.R7$(),e.Y8G("ngIf",t.origin.isApi)}}let fe=(()=>{class a{constructor(t,i,n){this.permissionService=t,this.roleService=i,this.cdr=n,this.onDestroy$=new U.B,this.search="",this.searchChange$=new U.B,this.loading=!1,this.data={selectedResources:[],applicationId:void 0},this.menuConfigInherit=[],this.checkedMenuConfigInherit=[],this.nodes=[],this.originalMenuConfigInherit=[],this.allCheckedKeys=new Set,this.checkedResources=[],this.convertMenuToVTSTreeNode=(s,o)=>s?.length?s.filter(r=>!r.parentId).map(r=>{const l=o.find(c=>c.id==r.id);return this.convertMenuDetailToVTSTree(r,l)}).filter(r=>!!r):[],this.convertResourceDetailToVTSTree=(s,o,r)=>({key:`api/${o}/${s.id}`,title:`${s.resourceName??""} - ${s.method??""} - ${s.url??""}`,icon:"vts:api_customs",isLeaf:!0,checked:!!r&&s.id==r.id,isApi:!0,method:s.method,url:s.url,resourceName:s.resourceName}),this.disableHalfCheck=s=>{if(!s)return;const o=s.treeService;o&&o.halfCheckedNodeList.forEach(r=>{r.isHalfChecked=!1,r.isChecked=!0})},this.autoCheckParentNode=(s,o)=>{const r=s.getParentNode();r&&(o?(r.isChecked=!0,this.autoCheckParentNode(r,o)):(r.isChecked=this.checkParentHasCheckedChild(r),this.autoCheckParentNode(r,r.isChecked)))},this.autoCheckChildNode=(s,o)=>{s.isChecked=o,s.setExpanded(!0),s.getChildren()?.forEach(r=>this.autoCheckChildNode(r,o))},this.checkParentHasCheckedChild=s=>s.getChildren()?.some(o=>o.isChecked||this.checkParentHasCheckedChild(o))}ngOnInit(){this.checkedMenuConfigInherit=this.data.selectedResources||[];const t=i=>{for(const n of i){if(this.allCheckedKeys.add(`menu-${n.id}`),n.resourceChild)for(const s of n.resourceChild)this.allCheckedKeys.add(`api/${n.id}/${s.id}`);n.children?.length&&t(n.children)}};t(this.checkedMenuConfigInherit)}ngOnChanges(t){}ngOnDestroy(){this.onDestroy$.next(!0),this.onDestroy$.complete()}ngAfterViewInit(){this.searchChange$.pipe((0,G.B)(2e3),(0,B.Q)(this.onDestroy$)).subscribe(t=>{this.search=t,this.getResourcesTree()})}getResourcesTree(){this.data.applicationId?(this.loading=!0,this.roleService.listAllMenuConfigInherit({keyword:this.search,applicationId:this.data.applicationId}).subscribe({next:t=>{this.search.trim()||(this.originalMenuConfigInherit=t?.menuConfigInheritData||[]),this.menuConfigInherit=t?.menuConfigInheritData||[]},error:t=>{console.error("L\u1ed7i load resources tree:",t)},complete:()=>{this.nodes=this.convertMenuToVTSTreeNode(this.menuConfigInherit,this.checkedMenuConfigInherit),this.syncTreeCheckedState(),this.loading=!1}})):console.warn("applicationId ch\u01b0a c\xf3, b\u1ecf qua g\u1ecdi API")}convertMenuDetailToVTSTree(t,i){if(!t)return null;const n={key:`menu-${t.id}`,title:t.menuName||"",icon:"vts:folder_shared",children:[],checked:!!i&&i.id==t.id,expanded:!(!i?.children?.length&&!i?.resourceChild?.length),isLeaf:!0};if(t.children?.length){n.isLeaf=!1;for(const s of t.children){const o=i?.children?.find(l=>l.id==s.id),r=this.convertMenuDetailToVTSTree(s,o);r&&n.children.push(r)}}if(t.resourceChild?.length){n.isLeaf=!1;for(const s of t.resourceChild){const o=i?.resourceChild?.find(l=>l.id==s.id),r=this.convertResourceDetailToVTSTree(s,t.id,o);r&&n.children.push(r)}}return n.children&&0!==n.children.length?n:null}refreshCheckedResources(){if(!this.vtsTreeComponent)return;const t=this.allCheckedKeys,i=o=>{const r=[];for(const l of o){if(l.resourceChild)for(const c of l.resourceChild)t.has(`api/${l.id}/${c.id}`)&&r.push({id:c.id,resourceName:c.resourceName,resourceCode:c.resourceCode,description:c.description,method:c.method,url:c.url,status:c.status});l.children?.length&&r.push(...i(l.children))}return r};this.checkedResources=i(this.originalMenuConfigInherit);const n=o=>!(!t.has(`menu-${o.id}`)&&!o.resourceChild?.some(l=>t.has(`api/${o.id}/${l.id}`))&&!o.children?.some(l=>n(l))),s=o=>
1{if(!n(o))return null;const r={...o,resourceChild:[],children:[]};return o.resourceChild&&(r.resourceChild=o.resourceChild.filter(l=>t.has(`api/${o.id}/${l.id}`))),o.children&&(r.children=o.children.map(l=>s(l)).filter(l=>null!=l)),r};this.checkedMenuConfigInherit=this.originalMenuConfigInherit.map(o=>s(o)).filter(o=>null!=o)}syncTreeCheckedState(){setTimeout(()=>{if(this.vtsTreeComponent)try{this.cdr.detectChanges();const t=this.vtsTreeComponent.getTreeNodes()||[],i=n=>{for(const s of n)s.setChecked(this.allCheckedKeys.has(s.key),!1),s.children?.length&&i(s.children)};i(t),this.vtsTreeComponent.renderTree(),this.refreshCheckedResources()}catch(t){console.warn("Tree sync error:",t)}},0)}onEventCheckBoxChange(t,i=!1){t.node&&(i&&(t.node.isChecked=!t.node.isChecked),this.disableHalfCheck(t.node),this.autoCheckParentNode(t.node,t.node.isChecked),this.autoCheckChildNode(t.node,t.node.isChecked),this.updateAllCheckedKeys(this.vtsTreeComponent.getTreeNodes()||[]),this.refreshCheckedResources(),this.vtsTreeComponent.renderTree())}updateAllCheckedKeys(t){for(const i of t){i.isChecked?this.allCheckedKeys.add(i.key):this.allCheckedKeys.delete(i.key);const n=i.getChildren();n?.length&&this.updateAllCheckedKeys(n)}}uncheckSelectedNodes(){this.vtsTreeComponent&&(this.vtsTreeComponent.getTreeNodes().forEach(t=>this.autoCheckChildNode(t,!1)),this.allCheckedKeys.clear(),this.refreshCheckedResources())}static{this.\u0275fac=function(i){return new(i||a)(e.rXU(h.n1S),e.rXU(h.WKx),e.rXU(e.gRc))}}static{this.\u0275cmp=e.VBU({type:a,selectors:[["resource-popup"]],viewQuery:function(i,n){if(1&i&&(e.GBs(ne,5),e.GBs(ie,5)),2&i){let s;e.mGM(s=e.lsd())&&(n.searchInput=s.first),e.mGM(s=e.lsd())&&(n.vtsTreeComponent=s.first)}},features:[e.OA$],decls:17,vars:7,consts:[["searchInput",""],["suffixIconSearch",""],["checkedTpl",""],["noContent",""],["resourcesTree",""],["customTreeTemplate",""],["vtsTreeComponent",""],[1,"search-container","border-radius-6",3,"vtsSuffix"],["vts-input","",1,"font-size-14",3,"ngModelChange","keyup.enter","ngModel","placeholder"],[4,"ngIf"],[1,"mgl1dot5rem_mgr1dot5rem"],[4,"ngTemplateOutlet"],["vts-icon","","vtsType","Search:bootstrap"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"count-container","font-size-14"],[1,"count-left"],[1,"selected-text"],[1,"divider"],["vts-button","","vtsType","text",1,"clear-btn",3,"click"],["vts-icon","","vtsType","Eraser:custom"],["vts-row","","vtsGutter","12","vtsAlign","top"],["vts-col","","vtsSpan","24",1,"relative",3,"ngStyle"],["vtsShowIcon","","vtsCheckable","","vtsVirtualHeight","40vh",3,"vtsCheckBoxChange","vtsClick","vtsData","vtsExpandAll","vtsTreeTemplate"],[1,"custom-tree-node"],[1,"folder-title"],[1,"api-node"],[1,"api-method",3,"ngClass"],[1,"api-info"],[1,"api-name"],[1,"api-url"]],template:function(i,n){if(1&i){const s=e.RV6();e.j41(0,"vts-input-group",7)(1,"input",8,0),e.nI1(3,"translate"),e.mxI("ngModelChange",function(r){return e.eBV(s),e.DH7(n.search,r)||(n.search=r),e.Njj(r)}),e.bIt("ngModelChange",function(r){return e.eBV(s),e.Njj(n.searchChange$.next(r))})("keyup.enter",function(){return e.eBV(s),e.Njj(n.getResourcesTree())}),e.k0s()(),e.DNE(4,re,1,0,"ng-template",null,1,e.C5r)(6,le,2,4,"ng-container",9)(7,ce,13,7,"ng-template",null,2,e.C5r)(9,de,1,0,"ng-template",null,3,e.C5r),e.j41(11,"div",10),e.DNE(12,he,1,0,"ng-container",11),e.k0s(),e.DNE(13,pe,4,5,"ng-template",null,4,e.C5r)(15,me,3,2,"ng-template",null,5,e.C5r)}if(2&i){const s=e.sdS(5),o=e.sdS(14);e.Y8G("vtsSuffix",s),e.R7$(),e.R50("ngModel",n.search),e.Y8G("placeholder",e.bMT(3,5,"authorizationPolicy.resources_management.search-placeholder2")),e.R7$(5),e.Y8G("ngIf",n.checkedResources.length>0),e.R7$(6),e.Y8G("ngTemplateOutlet",o)}},dependencies:[T.MD,T.YU,T.bT,T.T3,T.B3,T.GH,E.dA,E.qb,P.G,P.R$,j.T,k.SX,O.tH,O.BE,y.iO,y.fZ,y.eH,y.Ms,f.YN,f.me,f.BC,f.vS,f.X1,b.sz,x.h,x.D9,w.BL,M.sH,te.ak,A.gH,A.bq],styles:[".search-container[_ngcontent-%COMP%] > input[_ngcontent-%COMP%]{border-radius:6px!important}.search-container[_ngcontent-%COMP%]{margin-bottom:8px}.footer-container[_ngcontent-%COMP%]{display:flex!important;justify-content:flex-end!important;align-items:center;gap:12px;margin-top:16px;width:100%}.footer-container[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{padding:0 4px}.footer-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.footer-container[_ngcontent-%COMP%] .btn-neft[_ngcontent-%COMP%]{border-color:#737373;color:#737373}[_nghost-%COMP%] .vts-tree vts-tree-node{box-shadow:none}[_nghost-%COMP%] .vts-tree .vts-tree-node-content-wrapper{width:100%;padding:8px 0;
1border-bottom:1px solid #f0f0f0;border-radius:0}[_nghost-%COMP%] .vts-tree .vts-tree-node-content-wrapper:hover{background-color:transparent}[_nghost-%COMP%] .vts-tree .vts-tree-icon__customize{display:none!important}[_nghost-%COMP%] .vts-tree .vts-tree-checkbox{margin-top:0;align-self:center}[_nghost-%COMP%] .vts-tree .vts-tree-switcher{margin-top:0!important;align-self:center;display:flex;align-items:center;justify-content:center}[_nghost-%COMP%] vts-tree .vts-tree-list vts-tree-node{box-shadow:none!important}.custom-tree-node[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%}.folder-title[_ngcontent-%COMP%]{font-weight:600;color:#262626;font-size:14px}.api-node[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;width:100%}.api-method[_ngcontent-%COMP%]{font-weight:600;font-size:13px;width:50px;text-align:left;flex-shrink:0}.api-method.get[_ngcontent-%COMP%]{color:#158b45}.api-method.post[_ngcontent-%COMP%]{color:#e6a23c}.api-method.put[_ngcontent-%COMP%]{color:#1890ff}.api-method.patch[_ngcontent-%COMP%]{color:#722ed1}.api-method.delete[_ngcontent-%COMP%]{color:#f5222d}.api-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.api-name[_ngcontent-%COMP%]{font-size:14px;color:#262626;font-weight:400;line-height:1.2}.api-url[_ngcontent-%COMP%]{font-size:13px;color:#8c8c8c;line-height:1.2}.count-container[_ngcontent-%COMP%]{width:100%;padding:8px 16px;border:1px solid #7fb7f2;border-radius:6px;background:#edf6ff;display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.clear-btn[_ngcontent-%COMP%]{margin-left:0!important}.count-left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;flex:1}.clear-btn[_ngcontent-%COMP%]{color:#5a6b84}.clear-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%], .clear-btn[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{color:#5a6b84}.clear-btn[_ngcontent-%COMP%], .clear-btn[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#5a6b84!important}"]})}}return a})();var _e=m(8122),L=m(30059),ve=m(37606),$=m(27720);const Ce=["searchInput"],be=["class","component html"],Se=()=>[10,20,50,100],Te=a=>({$implicit:a});function Re(a,d){1&a&&e.eu8(0)}function ye(a,d){if(1&a&&e.DNE(0,Re,1,0,"ng-container",38),2&a){const t=e.XpG(),i=e.sdS(57);e.Y8G("ngTemplateOutlet",i)("ngTemplateOutletContext",e.eq3(2,Te,t.userSelected.length))}}function xe(a,d){1&a&&e.nrm(0,"i",39)}function ke(a,d){1&a&&(e.qex(0),e.j41(1,"span",51),e.EFF(2,"--Ch\u1ecdn--"),e.k0s(),e.bVm())}function Ie(a,d){if(1&a){const t=e.RV6();e.j41(0,"vts-tag",55),e.bIt("vtsOnClose",function(n){const s=e.eBV(t).$implicit,o=e.XpG(2).$implicit,r=e.XpG();return r.removeUnitAt(o.id,s,r.PARTY_TREE_CODE),n.preventDefault(),e.Njj(n.stopPropagation())}),e.j41(1,"span",56),e.EFF(2),e.k0s()()}if(2&a){const t=d.$implicit;e.R7$(),e.FS9("title",t.organizationName),e.R7$(),e.SpI(" ",t.organizationName," ")}}function Me(a,d){if(1&a){const t=e.RV6();e.j41(0,"vts-tag",57),e.bIt("mouseenter",function(){e.eBV(t);const n=e.XpG(2).$implicit,s=e.XpG();return e.Njj(s.hoverTagAdd(n))}),e.EFF(1),e.nrm(2,"i",58),e.k0s()}if(2&a){const t=e.XpG(2).$implicit,i=e.XpG();e.Y8G("title",i.tooltipParty()),e.R7$(),e.SpI(" +",t.partyUnits.length-1," ")}}function Pe(a,d){if(1&a&&(e.j41(0,"div",52),e.DNE(1,Ie,3,2,"vts-tag",53),e.nI1(2,"slice"),e.DNE(3,Me,3,2,"vts-tag",54),e.k0s()),2&a){const t=e.XpG().$implicit;e.R7$(),e.Y8G("ngForOf",e.brH(2,2,t.partyUnits,0,1)),e.R7$(2),e.Y8G("ngIf",t.partyUnits.length>1)}}function Ee(a,d){1&a&&(e.j41(0,"small",50),e.EFF(1," Vui l\xf2ng ch\u1ecdn \u0111\u01a1n v\u1ecb H\u1ec7 th\u1ed1ng t\u1ed5 ch\u1ee9c \u0110\u1ea3ng "),e.k0s())}function Oe(a,d){1&a&&(e.qex(0),e.j41(1,"span",51),e.EFF(2,"--Ch\u1ecdn--"),e.k0s(),e.bVm())}function Ue(a,d){if(1&a){const t=e.RV6();e.j41(0,"vts-tag",55),e.bIt("vtsOnClose",function(n){const s=e.eBV(t).$implicit,o=e.XpG(2).$implicit,r=e.XpG();return r.removeUnitAt(o.id,s,r.GOV_TREE_CODE),n.preventDefault(),e.Njj(n.stopPropagation())}),e.j41(1,"span",60),e.EFF(2),e.k0s()()}if(2&a){const t=d.$implicit;e.R7$(),e.Y8G("vtsTooltipTitle",t.organizationName),e.R7$(),e.SpI(" ",t.organizationName," ")}}function Fe(a,d){if(1&a){const t=e.RV6();e.j41(0,"vts-tag",61),e.bIt("mouseenter",function(){e.eBV(t);const n=e.XpG(2).$implicit,s=e.XpG();return e.Njj(s.hoverTagAdd(n))}),e.EFF(1),e.nrm(2,"i",58),e.k0s()}if(2&a){const t=e.XpG(2).$implicit,i=e.XpG();e.Y8G("vtsTooltipTitle",i.tooltipGov()),e.R7$(),e.SpI(" +",t.govUnits.length-1," ")}}function we(a,d){if(1&a&&(e.j41(0,"div",52),e.DNE(1,Ue,3,2,"vts-tag",53),e.nI1(2,"slice"),e.DNE(3,Fe,3,2,"vts-tag",59),e.k0s()),2&a){const t=e.XpG().$implicit;e.R7$(),e.Y8G("ngForOf",e.brH(2,2,t.govUnits,0,1)),e.R7$(2),e.Y8G("ngIf",t.govUnits.length>1)}}function De(a,d){1&a&&(e.j41(0,"small",50),e.EFF(1," Vui l\xf2ng ch\u1ecdn \u0111\u01a1n v\u1ecb H\u1ec7 th\u1ed1ng t\u1ed5 ch\u1ee9c H\xe0nh ch\xednh "),e.k0s())}function Ae(a,d){if(1&a){const t=e.RV6();e.j41(0,"tr",40),e.bIt("click",function(){const n=e.eBV(t).$implicit,s=e.XpG();return e.Njj(s.clickItem(n))}),e.j41(1,"td",41),e.bIt("vtsCheckedChange",function(n){const s=e.eBV(t).$implicit,o=e.XpG();return e.Njj(o.onItemChecked(s,n))}),e.k0s(),e.j41(2,"td",42),e.EFF(3),e.k0s(),e.j41(4,"td",42),e.EFF(5),e.k0s(),e.j41(6,"td",43)(7,"div",44)(8,"div",45),e.bIt("click",function(){const n=e.eBV(t).$implicit,s=e.XpG();return e.Njj(s.openSelectUnitModal(n.id,s.PARTY_TREE_CODE))}),e.j41(9,"div",46),e.DNE(10,ke,3,0,"ng-container",47)(11,Pe,4,6,"ng-template",null,5,e.C5r),e.k0s(),e.j41(13,"button",48),e.nrm(14,"img",49),e.k0s()(),e.DNE(15,Ee,2,0,"small",50),e.k0s()(),e.j41(16,"td",43)(17,"div",44)(18,"div",45),e.bIt("click",function(){const n=e.eBV(t).$implicit,s=e.XpG();return e.Njj(s.openSelectUnitModal(n.id,s.GOV_TREE_CODE))}),e.j41(19,"div",46),e.DNE(20,Oe,3,0,"ng-container",47)(21,we,4,6,"ng-template",null,6,e.C5r),e.k0s(),e.j41(23,"button",48),e.nrm(24,"img",49),e.k0s()(),e.DNE(25,De,2,0,"small",50),e.k0s()()()}if(2&a){const t=d.$implicit,i=e.sdS(12),n=e.sdS(22),s=e.XpG();e.R7$(),e.Y8G("vtsChecked",s.checkUserInclude(t)),e.R7$(),e.FS9("title",t.fullName),e.R7$(),e.JRh(t.fullName),e.R7$(),e.FS9("title",t.identityNo),e.R7$(),e.JRh(t.identityNo),e.R7$(3),e.Y8G("ngClass",s.isClickConfirm&&s.checkUserSelectedChooseUnit(t)?"custom-user-select-invalid":"custom-user-select-valid"),e.R7$(2),e.Y8G("ngIf",!(null!=t.partyUnits&&t.partyUnits.length))("ngIfElse",i),e.R7$(5),e.vxM(s.isClickConfirm&&s.checkUserSelectedChooseUnit(t)?15:-1),e.R7$(3),e.Y8G("ngClass",s.isClickConfirm&&s.checkUserSelectedChooseUnit(t)?"custom-user-select-invalid":"custom-user-select-valid"),e.R7$(2),e.Y8G("ngIf",!(null!=t.govUnits&&t.govUnits.length))("ngIfElse",n),e.R7$(5),e.vxM(s.isClickConfirm&&s.checkUserSelectedChooseUnit(t)?25:-1)}}function Ne(a,d){if(1&a){const t=e.RV6();e.j41(0,"div",62)(1,"span",63)(2,"b"),e.EFF(3),e.k0s(),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.j41(6,"button",64),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onAllUnChecked())}),e.nrm(7,"i",65),e.EFF(8),e.nI1(9,"translate"),e.k0s()()}if(2&a){const t=d.$implicit;e.R7$(3),e.JRh(t),e.R7$(),e.SpI("",e.bMT(5,3,"common.table.selectedItems")," "),e.R7$(4),e.SpI(" ",e.bMT(9,5,"common.action.clearSelection")," ")}}function Ge(a,d){if(1&a&&(e.j41(0,"div",66),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&a){const t=d.$implicit,i=d.range;e.R7$(),e.LHq(" ",i[0],"-",i[1]," / ",t," ",e.bMT(2,4,"common.table.item")," ")}}let je=(()=>{class a{constructor(t,i,n,s,o,r,l){this._viewModalRef=t,this._translate=i,this._userService=n,this._cdr=s,this._modalService=o,this._toastService=r,this.el=l,this.scroll={x:null,y:null},this.loading=!1,this.pageIndex=1,this.pageSize=10,this.sortOption="su.CREATED_DATE,DESC",this.total=0,this.searchKey="",this.orgNameSearchKey="",this.gradeOfUserSearchKey=-1,this.tableData=[],this.userSelected=[],this.selectedUserIdSet=new Set,this.selectedUserMap=new Map,this.originalSelectedMap=new Map,this.currentRoleId=null,this.checked=!1,this.onDestroy$=new U.B,this.sortDirections=["ascend","descend",null],this.sortParam=[],this.vtsPageSize=[10,20,50,100],this.currentAppId="",this.PARTY_TREE_CODE="PARTY_MEMBER",this.GOV_TREE_CODE="GOV",this.pendingAddedFlatMap=new Map,this.pendingRemovedFlatMap=new Map,this.sortFn=(c,p)=>{switch(p){case"identityNo":p='tbl."identityNo"';break;case"fullName":p='tbl."fullName"';break;case"phoneNumber":p='tbl."phoneNumber"';break;default:p='tbl."id"'}const _={key:p,direction:c&&"ascend"==c?"ASC":"DESC"},S=this.sortParam.find(g=>g.key==p);if(S){const g=this.sortParam.indexOf(S);this.sortParam.splice(g,1)}c&&!this.sortParam.includes(_)&&this.sortParam.push(_),this.listAllByCondition()},this.searchChange$=new U.B,this.isClickConfirm=!1,this.loadOldData=()=>{this.selectedUserMap.clear(),this.originalSelectedMap.clear(),this.data?.userIdSelects&&Array.isArray(this.data.userIdSelects)&&this.data.userIdSelects.forEac
1h(c=>{const p=this.normalizeSelectedUser(c),_=this.applyPendingRemovedToUser(p);_&&(this.selectedUserMap.set(String(_.id),_),this.originalSelectedMap.set(String(_.id),this.normalizeSelectedUser(_)))}),this.syncSelectedState(),this._cdr.detectChanges()},this.updateCheckInTableHeader=()=>{let c=!0;if(this.tableData&&0!=this.tableData.length){for(const p of this.tableData)if(!this.checkUserInclude(p)){c=!1;break}this.checked=c,this._cdr.detectChanges()}else this.checked=!1},this.checkUserInclude=c=>this.selectedUserIdSet.has(String(c.id)),this.deleteUser=c=>{const p=this.userSelected.find(_=>c.id==_.id);if(p){const _=this.userSelected.indexOf(p);return this.userSelected.splice(_,1),!0}return!1},this.selectedRowId=(0,e.vPA)(null),this.tooltipParty=(0,e.EWP)(()=>{const c=this.selectedRowId()?.user;if(null===c)return"";const p=this.tableData.find(_=>_.id===c)?.partyUnits;return p?p.slice(1).map(_=>_.organizationName).join(", "):""}),this.tooltipGov=(0,e.EWP)(()=>{const c=this.selectedRowId()?.user;if(null===c)return"";const p=this.tableData.find(_=>_.id===c)?.govUnits;return p?p.slice(1).map(_=>_.organizationName).join(", "):""})}ngOnInit(){this.currentAppId=this.data?.applicationId||"",this.currentRoleId=this.data?.roleId||null,this.pendingAddedFlatMap=new Map((this.data?.pendingAddedFlat||[]).map(t=>[this.buildFlatKey(t),t])),this.pendingRemovedFlatMap=new Map((this.data?.pendingRemovedFlat||[]).map(t=>[this.buildFlatKey(t),t])),this.currentAppId||console.warn("Vui l\xf2ng ch\u1ecdn \u1ee9ng d\u1ee5ng kh\xe1c"),this.searchChange$.pipe((0,G.B)(2e3),(0,B.Q)(this.onDestroy$)).subscribe(()=>{this.pageIndex=1,this.listAllByCondition()}),this.loadOldData(),this.listAllByCondition(),this.resizeSubscription=(0,_e.R)(window,"resize").pipe((0,G.B)(200)).subscribe(()=>{this.onScreenResize()})}ngAfterViewInit(){}ngOnChanges(t){}ngOnDestroy(){this.onDestroy$.next(!0),this.onDestroy$.complete(),this.resizeSubscription&&this.resizeSubscription.unsubscribe()}close(){this._viewModalRef.close(!1)}onSave(){if(this.isClickConfirm=!0,this.hasInvalidSelectedUser())return void this._toastService.warning("","Vui l\xf2ng ch\u1ecdn \u0111\u01a1n v\u1ecb \u0111\u1ec3 g\xe1n vai tr\xf2!",{vtsPlacement:"bottomRight"});const t=this.toFlatRoleUsers(Array.from(this.originalSelectedMap.values())),i=this.toFlatRoleUsers(Array.from(this.selectedUserMap.values())),n=new Map(t.map(c=>[this.buildFlatKey(c),c])),s=new Map(i.map(c=>[this.buildFlatKey(c),c])),o=Array.from(s.entries()).filter(([c])=>!n.has(c)).map(([,c])=>c),r=Array.from(n.entries()).filter(([c])=>!s.has(c)).map(([,c])=>c),l={selectedUsers:Array.from(this.selectedUserMap.values()).map(c=>({...c,partyUnits:this.cloneUnits(c.partyUnits||[]),govUnits:this.cloneUnits(c.govUnits||[])})),addedFlat:o,removedFlat:r};this._viewModalRef.close(l)}onSearch(){this.listAllByCondition(),this.pageIndex=1}applyPendingRemovedToUser(t){const i=this.normalizeSelectedUser(t),n=(i.partyUnits||[]).filter(o=>!this.isPendingRemoved(i.id,o.id,this.PARTY_TREE_CODE)),s=(i.govUnits||[]).filter(o=>!this.isPendingRemoved(i.id,o.id,this.GOV_TREE_CODE));return n.length||s.length?this.normalizeSelectedUser({...i,partyUnits:n,govUnits:s}):null}onChangeTreeCode(t,i){t.treeCode=i;const n=Array.isArray(t.orgTrees)?t.orgTrees.find(s=>s.treeCode===i):null;if(t.units=n?(n.orgIds||[]).map((s,o)=>({id:s,organizationName:String((n.orgNames||[])[o]??"")})):[],t.orgIds=t.units.map(s=>String(s.id)),t.orgNames=t.units.map(s=>String(s.organizationName)),t.orgName=t.units.map(s=>String(s.organizationName)).join(", "),this.checkUserInclude(t)){const s=this.getSelectedUserById(t.id);this.upsertSelectedUser({...s??t,treeCode:i,units:[...t.units],orgIds:[...t.orgIds||[]],orgNames:[...t.orgNames||[]],orgName:t.orgName})}this._cdr.detectChanges()}listAllByCondition(){this.loading=!0;const t={keyword:this.searchKey?.trim()||""};(this.currentRoleId?this._userService.searchAccountsWithRole(this.pageIndex-1,this.pageSize,{...t,roleId:this.currentRoleId}):this._userService.searchAccounts(this.pageIndex-1,this.pageSize,t)).subscribe({next:n=>{this.tableData=(n?.body?.data||[]).map(o=>{const r=this.getSelectedUserById(o.id);if(r){const S=this.applyPendingRemovedToUser(r);return S?{id:o.id,identityNo:o.identityNo,fullName:o.fullName,phoneNumber:o.phoneNumber,partyUnits:this.cloneUnits(S.partyUnits||[]),govUnits:this.cloneUnits(S.govUnits||[]),orgTrees:o.orgTrees??r?.orgTrees??[]}:{id:o.id,identityNo:o.identityNo,fullName:o.fullName,phoneNumber:o.phoneNumber,partyUnits:[],govUnits:[],orgTrees:o.orgTrees??[]}}const l=this.currentRoleId?this.mapUnitsFromOrgTree(o,this.PARTY_TREE_CODE):[],c=this.currentRoleId?this.mapUnitsFromOrgTree(o,this.GOV_TREE_CODE):[],p={id:o.id,identityNo:o.identityNo,fullName:o.fullName,phoneNumber:o.phoneNumber,partyUnits:this.filterPendingRemovedUnits(o.id,l,this.PARTY_TREE_CODE),govUnits:this.filterPendingRemovedUnits(o.id,c,this.GOV_TREE_CODE),orgTrees:this.currentRoleId?o.orgTrees??[]:[]};if(this.currentRoleId&&o.isRoleAssigned&&(p.partyUnits.length>0||p.govUnits.length>0)){const S=String(o.id);if(!this.originalSelectedMap.has(S)){const g=this.normalizeSelectedUser(p);this.originalSelectedMap.set(S,g),this.selectedUserMap.has(S)||this.selectedUserMap.set(S,this.normalizeSelectedUser(g))}}return p}),this.onScreenResize(),this.syncSelectedState(),this.total=n?.body?.totalElements||0,this.updateCheckInTableHeader(),this.loading=!1,this._cdr.detectChanges()},error:n=>{console.error("L\u1ed7i l\u1ea5y danh s\xe1ch t\xe0i kho\u1ea3n :",n),this.tableData=[],this.total=0,this.loading=!1,this._cdr.detectChanges()}})}onScreenResize(){this.el.nativeElement.getBoundingClientRect();const n=document.documentElement.clientHeight;this.scroll=n<800?this.setScrollY(53,this.pageSize,4):n>=800&&n<900?this.setScrollY(53,this.pageSize,5):this.setScrollY(53,this.pageSize)}setScrollY(t,i,n=10){return i>n?{x:null,y:t*n+"px"}:{x:null,y:null}}onChangePageSize(t){t&&(this.pageSize=t,this.listAllByCondition())}onChangePageIndex(t){t&&(this.pageIndex=t,this.listAllByCondition())}onSearchKey(t){this.searchChange$.next(t)}onItemChecked(t,i){i?this.upsertSelectedUser(t):this.removeSelectedUserById(t.id),this.updateCheckInTableHeader()}onAllInPageChecked(t){t?(this.tableData.forEach(i=>
1this.upsertSelectedUser(i)),this.checked=!0):(this.tableData.forEach(i=>this.removeSelectedUserById(i.id)),this.checked=!1),this._cdr.detectChanges()}onAllUnChecked(){this.selectedUserMap.clear(),this.syncSelectedState(),this.checked=!1,this._cdr.detectChanges()}isTreeCodeInvalid(t){return this.checkUserInclude(t)&&!t.treeCode}isUnitInvalid(t){return this.checkUserInclude(t)&&(!t.units||0===t.units.length)}hasInvalidSelectedUser(){return this.userSelected.some(t=>{const i=Array.isArray(t.partyUnits)&&t.partyUnits.length>0,n=Array.isArray(t.govUnits)&&t.govUnits.length>0;return!i&&!n})}checkUserSelectedChooseUnit(t){const i=this.userSelected.find(o=>o.id===t.id);if(!i)return!1;const n=Array.isArray(i.partyUnits)&&i.partyUnits.length>0,s=Array.isArray(i.govUnits)&&i.govUnits.length>0;return!n&&!s}convertDateString(t){if(!t)return"";const i=new Date(t);return`${String(i.getDate()).padStart(2,"0")}/${String(i.getMonth()+1).padStart(2,"0")}/${i.getFullYear()}`}hoverTagAdd(t){this.selectedRowId.set({user:t.id,party:t.partyUnits,gov:t.govUnits})}openSelectUnitModal(t,i){const n=this.getSelectedUserById(t)||this.tableData.find(r=>String(r.id)===String(t)),s=i===this.PARTY_TREE_CODE?"partyUnits":"govUnits";this._modalService.create({vtsContent:M.Cu,vtsWidth:1e3,vtsFooter:null,vtsClosable:!1,vtsComponentParams:{data:{title:i===this.PARTY_TREE_CODE?"Ch\u1ecdn \u0111\u01a1n v\u1ecb H\u1ec7 th\u1ed1ng t\u1ed5 ch\u1ee9c \u0110\u1ea3ng":"Ch\u1ecdn \u0111\u01a1n v\u1ecb H\u1ec7 th\u1ed1ng t\u1ed5 ch\u1ee9c H\xe0nh ch\xednh",multiple:!0,selectedOrgList:n?.[s]||[],appId:this.currentAppId,params:{treeCode:i,parentId:i===this.GOV_TREE_CODE?"148842":"4",expandable:!0}}}}).afterClose.subscribe(r=>{if(r&&r.message===h.h87.RESULT_CLOSE_DIALOG.CONFIRM){const l=Array.isArray(r.data)?[...r.data]:[r.data],c=this.tableData.find(_=>String(_.id)===String(t));c&&(c[s]=[...l]);const p=this.getSelectedUserById(t);p?this.upsertSelectedUser({...p,[s]:[...l]}):c&&this.upsertSelectedUser({...c,[s]:[...l]}),this._cdr.detectChanges()}})}removeUnitAt(t,i,n){const s=n===this.PARTY_TREE_CODE?"partyUnits":"govUnits",o=this.tableData.find(l=>String(l.id)===String(t));o?.[s]&&(o[s]=o[s].filter(l=>String(l.id)!==String(i.id)));const r=this.getSelectedUserById(t);if(r?.[s]){const l={...r,[s]:r[s].filter(_=>String(_.id)!==String(i.id))},c=Array.isArray(l.partyUnits)&&l.partyUnits.length>0,p=Array.isArray(l.govUnits)&&l.govUnits.length>0;c||p?this.upsertSelectedUser(l):this.removeSelectedUserById(t)}this._cdr.detectChanges()}cloneUnits(t=[]){return t.map(i=>({...i}))}normalizeSelectedUser(t){const i=(o=[])=>this.cloneUnits(o).map(r=>({...r,id:r.id,organizationName:String(r.organizationName??"")})),n=Array.isArray(t.partyUnits)?i(t.partyUnits):t.treeCode===this.PARTY_TREE_CODE&&Array.isArray(t.units)?i(t.units):this.mapUnitsFromOrgTree(t,this.PARTY_TREE_CODE),s=Array.isArray(t.govUnits)?i(t.govUnits):t.treeCode===this.GOV_TREE_CODE&&Array.isArray(t.units)?i(t.units):this.mapUnitsFromOrgTree(t,this.GOV_TREE_CODE);return{...t,partyUnits:n,govUnits:s}}syncSelectedState(){this.userSelected=Array.from(this.selectedUserMap.values()).map(t=>({...t,partyUnits:this.cloneUnits(t.partyUnits||[]),govUnits:this.cloneUnits(t.govUnits||[])})),this.selectedUserIdSet=new Set(this.userSelected.filter(t=>null!=t?.id).map(t=>String(t.id)))}upsertSelectedUser(t){const i=this.normalizeSelectedUser(t);this.selectedUserMap.set(String(i.id),i),this.syncSelectedState()}removeSelectedUserById(t){const i=String(t),n=this.selectedUserMap.has(i);return this.selectedUserMap.delete(i),this.syncSelectedState(),n}getSelectedUserById(t){return this.selectedUserMap.get(String(t))}toFlatRoleUsers(t){const i=[];return t.forEach(n=>{const s=Array.isArray(n.partyUnits)?n.partyUnits:[],o=Array.isArray(n.govUnits)?n.govUnits:[];s.forEach(r=>{i.push({userId:String(n.id),orgId:String(r.id),treeCode:this.PARTY_TREE_CODE,applicationId:String(this.currentAppId)})}),o.forEach(r=>{i.push({userId:String(n.id),orgId:String(r.id),treeCode:this.GOV_TREE_CODE,applicationId:String(this.currentAppId)})})}),i}buildFlatKey(t){return`${t.userId}|${t.orgId}|${t.treeCode}|${t.applicationId}`}mapUnitsFromOrgTree(t,i){const s=(Array.isArray(t?.orgTrees)?t.orgTrees:[]).find(o=>o.treeCode===i);return s?(s.orgIds||[]).map((o,r)=>
1({id:o,organizationName:String((s.orgNames||[])[r]??"")})):[]}isPendingRemoved(t,i,n){const s=this.buildFlatKey({userId:String(t),orgId:String(i),treeCode:n,applicationId:String(this.currentAppId)});return this.pendingRemovedFlatMap.has(s)}filterPendingRemovedUnits(t,i,n){return(i||[]).filter(s=>!this.isPendingRemoved(t,s.id,n))}clickItem(t){this.onItemChecked(t,!this.checkUserInclude(t))}static{this.\u0275fac=function(i){return new(i||a)(e.rXU($.ko),e.rXU(x.c$),e.rXU(h.DLc),e.rXU(e.gRc),e.rXU($.is),e.rXU(F.Mo),e.rXU(e.aKT))}}static{this.\u0275cmp=e.VBU({type:a,selectors:[["vehicle-option-modal",8,"component","html"]],viewQuery:function(i,n){if(1&i&&e.GBs(Ce,5),2&i){let s;e.mGM(s=e.lsd())&&(n.searchInput=s.first)}},inputs:{data:"data"},features:[e.OA$],attrs:be,decls:60,vars:44,consts:[["searchInput",""],["suffixIconSearch",""],["vtsTable",""],["checkedTpl",""],["showTotal",""],["partyUnitsTpl",""],["govUnitsTpl",""],[1,""],[2,"display","block","margin-bottom","10px"],["vts-row","","vtsJustify","space-between","vtsAlign","middle",1,"dialog-header__modify"],[1,"drawer-title",2,"display","flex","max-width","100%","gap","6px","font-size","20px","font-weight","600"],[2,"overflow","hidden","text-overflow","ellipsis","white-space","nowrap","display","inline-block","max-width","500px",3,"vts-tooltip"],["vts-button","","vtsType","text","vts-tooltip","",1,"drawer-btn-icon",3,"click","vtsTooltipTitle"],["vts-icon","",1,"collapse-icon",3,"vtsType"],[2,"margin-top","12px","margin-bottom","20px","margin-left","-20px","margin-right","-20px"],[2,"border-top","1px solid rgb(207 200 200 / 96%)","width","100%"],["vts-row","",1,"mg-rl-0","pd_t_0dot8rem",3,"vtsGutter"],["vts-col","",1,"pd-rl-6","pd-l-0",3,"vtsSpan"],[1,"search-container",2,"border-radius","6px","width","100%",3,"vtsSuffix"],["vts-input","","maxlength","100",3,"keyup.enter","ngModelChange","ngModel","placeholder"],["vtsSize","sm","vtsTableLayout","fixed","vtsShowSizeChanger","",1,"container-table",3,"vtsPageIndexChange","vtsPageSizeChange","vtsStripe","vtsBordered","vtsShowPagination","vtsScroll","vtsLoading","vtsNoResult","vtsData","vtsTotal","vtsShowSizeChanger","vtsPageSizeOptions","vtsShowTotal","vtsClientPagination","vtsPageIndex","vtsPageSize","vtsPaginationEllipsis"],[1,"header-divider"],["vtsWidth","45px","vtsAlign","center",3,"vtsCheckedChange","vtsChecked"],["vtsEllipsis",""],["vtsEllipsis","","vtsWidth","150px"],["vtsAlign","left","vtsEllipsis","","vtsWidth","430px"],[2,"display","flex","align-items","center","gap","4px"],["vts-tooltip","","vtsTooltipTitle","\u0110\u1ed3ng ch\xed \u0111ang ch\u1ecdn \u0111\u01a1n v\u1ecb trong H\u1ec7 th\u1ed1ng t\u1ed5 ch\u1ee9c \u0110\u1ea3ng \u0111\u1ec3 g\xe1n vai tr\xf2.",1,"pd-0",2,"height","auto","line-height","1"],["vts-icon","","vtsType","Info:custom",1,"header-info-icon"],["vts-tooltip","","vtsTooltipTitle","\u0110\u1ed3ng ch\xed \u0111ang ch\u1ecdn \u0111\u01a1n v\u1ecb trong H\u1ec7 th\u1ed1ng t\u1ed5 ch\u1ee9c H\xe0nh ch\xednh \u0111\u1ec3 g\xe1n vai tr\xf2.",1,"pd-0",2,"height","auto","line-height","1"],["style","cursor: pointer;",3,"click",4,"ngFor","ngForOf"],[2,"padding","20px 0","margin-left","-20px","margin-right","-20px"],[1,"footer-actions"],[1,"action-buttons"],["vts-button","","vtsType","default",1,"btn-cancel",3,"click"],["vts-icon","","vtsType","Back:custom"],["vts-button","","vtsType","primary",3,"click"],["vts-icon","","vtsType","CheckCircleOutline:antd"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["vts-icon","","vtsType","Search:bootstrap"],[2,"cursor","pointer",3,"click"],["vtsAlign","center",3,"vtsCheckedChange","vtsChecked"],["vtsEllipsis","",3,"title"],[1,"org-role-cell"],[1,"custom-user-select-wrapper"],[1,"custom-user-select",3,"click","ngClass"],[1,"custom-user-select__content"],[4,"ngIf","ngIfElse"],["vts-button","","vtsType","text",1,"drawer-btn-icon",2,"padding","0"],["vts-icon","","src","/assets/template/images/tree_unit.svg",1,"collapse-icon"],["vts-typography","","vtsColor","error",1,"form-control-error-general"],[1,"placeholder"],[1,"tags-container"],["vtsMode","closeable",3,"vtsOnClose",4,"ngFor","ngForOf"],["class","more-tag",3,"title","mouseenter",4,"ngIf"],["vtsMode","closeable",3,"vtsOnClose"],[1,"tag-text-truncate",3,"title"],[1,"more-tag",3,"mouseenter","title"],["vts-icon","","vtsType","Close:vts",2,"font-size","10px","margin-left","2px"],["class","more-tag","vts-tooltip","",3,"vtsTooltipTitle","mouseenter",4,"ngIf"],["vts-tooltip","",1,"tag-text-truncate",3,"vtsTooltipTitle"],["vts-tooltip","",1,"more-tag",3,"mouseenter","vtsTooltipTitle"],[1,"count-container","font-size-14"],[1,"selected-text"],["vts-button","","vtsType","text",1,"clear-btn",3,"click"],["vts-icon","","vtsType","Eraser:custom"],[1,"rangeTotal-container",2,"left","24px"]],template:function(i,n){if(1&i){const s=e.RV6();e.j41(0,"div",7)(1,"div",8)(2,"div",9)(3,"span",10),e.EFF(4," Ch\u1ecdn t\xe0i kho\u1ea3n \u0111\u01b0\u1ee3c g\xe1n v\u1edbi vai tr\xf2 "),e.j41(5,"span",11),e.EFF(6),e.k0s()(),e.j41(7,"button",12),e.nI1(8,"translate"),e.bIt("click",function(){return e.eBV(s),e.Njj(n.close())}),e.nrm(9,"i",13),e.k0s()(),e.j41(10,"div",14),e.nrm(11,"div",15),e.k0s(),e.j41(12,"div",16)(13,"div",17)(14,"vts-input-group",18)(15,"input",19,0),e.bIt("keyup.enter",function(){return e.eBV(s),e.Njj(n.onSearch())}),e.mxI("ngModelChange",function(r){return e.eBV(s),e.DH7(n.searchKey,r)||(n.searchKey=r),e.Njj(r)}),e.bIt("ngModelChange",function(r){return e.eBV(s),e.Njj(n.onSearchKey(r))}),e.k0s()()()(),e.DNE(17,ye,1,4,"ng-container")(18,xe,1,0,"ng-template",null,1,e.C5r),e.k0s(),e.j41(20,"vts-table",20,2),e.nI1(22,"translate"),e.mxI("vtsPageIndexChange",function(r){return e.eBV(s),e.DH7(n.pageIndex,r)||(n.pageIndex=r),e.Njj(r)})("vtsPageSizeChange",function(r){return e.eBV(s),e.DH7(n.pageSize,r)||(n.pageSize=r),e.Njj(r)}),e.bIt("vtsPageIndexChange",function(r){return e.eBV(s),e.Njj(n.onChangePageIndex(r))})("vtsPageSizeChange",function(r){return e.eBV(s),e.Njj(n.onChangePageSize(r))}),e.j41(23,"thead")(24,"tr",21)(25,"th",22),e.bIt("vtsCheckedChange",function(r){return e.eBV(s),e.Njj(n.onAllInPageChecked(r))}),e.k0s(),e.j41(26,"th",23),e.EFF(27),e.nI1(28,"translate"),e.k0s(),e.j41(29,"th",24),e.EFF(30),e.nI1(31,"translate"),e.k0s(),e.j41(32,"th",25)(33,"div",26),e.EFF(34),e.nI1(35,"translate"),e.j41(36,"span",27),e.nrm(37,"i",28),e.k0s()()(),e.j41(38,"th",25)(39,"div",26),e.EFF(40),e.nI1(41,"translate"),e.j41(42,"span",29),e.nrm(43,"i",28),e.k0s()()()()(),e.j41(44,"tbody"),e.DNE(45,Ae,26,13,"tr",30),e.k0s()(),e.j41(46,"div",31),e.nrm(47,"div",15),e.k0s(),e.j41(48,"div",32)(49,"div",33)(50,"button",34),e.bIt("click",function(){return e.eBV(s),e.Njj(n.close())}),e.nrm(51,"i",35),e.EFF(52," Quay l\u1ea1i "),e.k0s(),e.j41(53,"button",36),e.bIt("click",function(){return e.eBV(s),e.Njj(n.onSave())}),e.nrm(54,"i",37),e.EFF(55," X\xe1c nh\u1eadn "),e.k0s()()()(),e.DNE(56,Ne,10,7,"ng-template",null,3,e.C5r)(58,Ge,3,6,"ng-template",null,4,e.C5r)}if(2&i){const s=e.sdS(19),o=e.sdS(59);e.R7$(5),e.Y8G("vts-tooltip",null==n.data?null:n.data.subTitle),e.R7$(),e.SpI(" ",null==n.data?null:n.data.subTitle," "),e.R7$(),e.FS9("vtsTooltipTitle",e.bMT(8,31,"common.table.close")),e.R7$(2),e.Y8G("vtsType","Close:vts"),e.R7$(3),e.Y8G("vtsGutter",24),e.R7$(),e.Y8G("vtsSpan",24),e.R7$(),e.Y8G("vtsSuffix",s),e.R7$(),e.R50("ngModel",n.searchKey),e.Y8G("placeholder","T\xecm ki\u1ebfm theo H\u1ecd v\xe0 t\xean ho\u1eb7c s\u1ed1 c\u0103n c\u01b0\u1edbc ng\u01b0\u1eddi d\xf9ng"),e.R7$(2),e.vxM(n.userSelected.length>0?17:-1),e.R7$(3),e.FS9("vtsNoResult",e.bMT(22,33,"common.table.noData")),e.Y8G("vtsStripe",!0)("vtsB
1ordered",!1)("vtsShowPagination",!0)("vtsScroll",n.scroll)("vtsLoading",n.loading)("vtsData",n.tableData)("vtsTotal",n.total)("vtsShowSizeChanger",!0)("vtsPageSizeOptions",e.lJ4(43,Se))("vtsShowTotal",o)("vtsClientPagination",!1),e.R50("vtsPageIndex",n.pageIndex)("vtsPageSize",n.pageSize),e.Y8G("vtsPaginationEllipsis",!0),e.R7$(5),e.Y8G("vtsChecked",n.checked),e.R7$(2),e.SpI(" ",e.bMT(28,35,"common.form.fullname")," "),e.R7$(3),e.SpI(" ",e.bMT(31,37,"user-management.info.identity")," "),e.R7$(4),e.SpI(" ",e.bMT(35,39,"user-management.info.orgName1")," "),e.R7$(6),e.SpI(" ",e.bMT(41,41,"user-management.info.orgName2")," "),e.R7$(5),e.Y8G("ngForOf",n.tableData)}},dependencies:[x.h,x.D9,b.sz,b.j_,b.ZS,b.HH,b.b3,b.DD,b.tH,b.Dc,b.ut,b.Kc,b.zv,P.G,P.R$,j.T,E.dA,E.qb,y.iO,y.fZ,y.eH,y.Ms,k.SX,O.tH,O.BE,f.YN,f.me,f.BC,f.tU,f.vS,F.Li,w.BL,w.uC,T.Sq,f.X1,I.u,T.MD,T.YU,T.bT,T.T3,T.P9,L.M,L.$,ve.a],styles:["th[_ngcontent-%COMP%]{font-weight:500}.pagination-popup[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;margin-top:16px} .pagination-popup .vts-pagination-total-text{margin-right:auto!important;order:0}.rangeTotal-container[_ngcontent-%COMP%]{position:static;font-size:14px;white-space:nowrap} .pagination-popup .vts-pagination-item, .pagination-popup .vts-pagination-prev, .pagination-popup .vts-pagination-next, .pagination-popup .vts-pagination-options{order:1}.count-container[_ngcontent-%COMP%]{padding:8px 16px;border:1px solid #7fb7f2;border-radius:6px;background:#edf6ff;display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;margin-top:10px}.container-table[_ngcontent-%COMP%]{margin-top:10px}.custom-user-select-wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:stretch;min-height:auto}.custom-user-select[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;min-height:36px;height:36px;padding:4px 12px;border-radius:8px;background:#fff;overflow:hidden;transition:all .2s ease;box-sizing:border-box}.custom-user-select-valid[_ngcontent-%COMP%]{border:1px solid #d9d9d9}.custom-user-select-invalid[_ngcontent-%COMP%]{border:1px solid #e03}.custom-user-select__content[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;overflow:hidden}.custom-user-select--disabled[_ngcontent-%COMP%]{cursor:not-allowed;background:#f5f5f5}.custom-user-select--disabled[_ngcontent-%COMP%] .placeholder[_ngcontent-%COMP%]{color:#9aa3bb}.custom-user-select--error[_ngcontent-%COMP%]{border-color:#ff4d4f!important}small.vts-typo[_ngcontent-%COMP%]{font-size:14px}[_nghost-%COMP%] .tree-code-select.select-error .vts-select-selector, [_nghost-%COMP%] .tree-code-select.select-error .ant-select-selector{border-color:#ff4d4f!important;box-shadow:none!important}[_nghost-%COMP%] .tree-code-select.select-error.vts-select-focused .vts-select-selector, [_nghost-%COMP%] .tree-code-select.select-error.vts-select-focused .ant-select-selector, [_nghost-%COMP%] .tree-code-select.select-error.vts-select-open .vts-select-selector, [_nghost-%COMP%] .tree-code-select.select-error.vts-select-open .ant-select-selector{border-color:#ff4d4f!important;box-shadow:0 0 0 2px #ff4d4f1f!important}[_nghost-%COMP%] .search-container{margin-bottom:0}.placeholder[_ngcontent-%COMP%]{color:#bfbfbf;font-size:14px;white-space:nowrap}.tags-container[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;width:100%;min-width:0;overflow:hidden}[_nghost-%COMP%] .tags-container .vts-tag{margin:0!important;display:inline-flex;align-items:center;min-width:0;border-radius:6px;padding:0 8px;height:28px;line-height:26px;background:#f5f7fa;border:1px solid #d9d9d9;box-sizing:border-box}[_nghost-%COMP%] .tags-container .unit-tag{flex:1 1 auto;min-width:0;max-width:100%}[_nghost-%COMP%] .tags-container .more-tag{flex:0 0 auto;max-width:72px}.tag-text-truncate[_ngcontent-%COMP%]{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.field-error[_ngcontent-%COMP%]{margin-top:4px;color:#ff4d4f;font-size:14px;line-height:16px}[_nghost-%COMP%] .tree-code-select.vts-select-single .vts-select-selector{height:40px!important;min-height:40px!important;border-radius:8px!important;padding:0 32px 0 12px!important;display:flex;align-items:center;box-sizing:border-box}[_nghost-%COMP%] .tree-code-select.vts-select-single .vts-select-selection-item, [_nghost-%COMP%] .tree-code-select.vts-select-single .vts-select-selection-
1placeholder{line-height:38px!important;height:38px!important;display:flex;align-items:center}[_nghost-%COMP%] .tree-code-select.vts-select-single .vts-select-selection-search-input{height:38px!important}[_nghost-%COMP%] .tree-code-select .vts-select-arrow{display:flex;align-items:center;height:100%}.header-info-icon[_ngcontent-%COMP%]{color:#8c8c8c;width:20px!important;height:20px!important;min-width:20px;min-height:20px;font-size:20px!important;display:inline-flex;align-items:center;justify-content:center;line-height:1}.info-icon-btn[_ngcontent-%COMP%]{padding:0!important;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center}.custom-user-select[_ngcontent-%COMP%] .drawer-btn-icon[_ngcontent-%COMP%]{height:20px;padding:2px!important;display:inline-flex;align-items:center;justify-content:center}.custom-user-select[_ngcontent-%COMP%] .drawer-btn-icon[_ngcontent-%COMP%] img.collapse-icon[_ngcontent-%COMP%], .custom-user-select[_ngcontent-%COMP%] .drawer-btn-icon[_ngcontent-%COMP%] .tree-unit-icon[_ngcontent-%COMP%]{width:20px!important;height:20px!important;min-width:20px;min-height:20px;object-fit:contain;display:block} .vts-table-thead>tr>th{vertical-align:middle!important}[_nghost-%COMP%] .vts-table-tbody>tr:not(.vts-table-measure-now)>td{vertical-align:middle!important;padding-top:8px!important;padding-bottom:8px!important} .vts-table-tbody>tr>td.org-role-cell{white-space:nowrap!important;word-break:normal!important;overflow:visible}.action-buttons[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center;gap:12px;width:100%}.action-buttons[_ngcontent-%COMP%] .btn-cancel[_ngcontent-%COMP%]:hover{background:#fff1f0}.clear-btn[_ngcontent-%COMP%]{color:#5a6b84}.clear-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%], .clear-btn[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{color:#5a6b84}.clear-btn[_ngcontent-%COMP%], .clear-btn[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#5a6b84!important} .custom-tooltip .vts-tooltip-inner{background-color:#4b5563;width:340px;height:auto;padding:12px;border-radius:8px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;gap:4px;font-size:12px;white-space:normal}.custom-tooltip-content[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{color:#fff;font-size:13px}"]})}}return a})();var $e=m(98784),Ve=m(79612);const ze=["vtsTreeComponent"],Be=["appSelect"],Le=["roleNameInput"],Ye=["confirmFooterTpl"],Ke=["selectResourceDialogFooterTpl"],Xe=()=>[10,20,50,100],He=(a,d)=>({"row-deleted":a,"row-checked":d}),We=a=>({"margin-top":a});function Je(a,d){if(1&a&&e.nrm(0,"vts-option",51),2&a){const t=d.$implicit;e.Y8G("vtsValue",t.appId)("vtsLabel",t.appName)}}function Ze(a,d){if(1&a){const t=e.RV6();e.j41(0,"span",53),e.bIt("click",function(){e.eBV(t);const n=e.XpG(2);return e.Njj(n.clearValue("roleCode"))}),e.k0s()}}function Qe(a,d){if(1&a&&e.DNE(0,Ze,1,0,"span",52),2&a){const t=e.XpG();e.Y8G("ngIf",t.formGroup.value.roleCode&&""!=t.formGroup.value.roleCode)}}function qe(a,d){if(1&a){const t=e.RV6();e.j41(0,"span",53),e.bIt("click",function(){e.eBV(t);const n=e.XpG(2);return e.Njj(n.clearValue("roleName"))}),e.k0s()}}function et(a,d){if(1&a&&e.DNE(0,qe,1,0,"span",52),2&a){const t=e.XpG();e.Y8G("ngIf",t.formGroup.value.roleName&&""!=t.formGroup.value.roleName)}}function tt(a,d){if(1&a){const t=e.RV6();e.j41(0,"span",55),e.bIt("click",function(){e.eBV(t);const n=e.XpG(2);return e.Njj(n.clearValue("description"))}),e.k0s()}}function nt(a,d){if(1&a&&e.DNE(0,tt,1,0,"span",54),2&a){const t=e.XpG();e.Y8G("ngIf",null!=t.formGroup.value.description&&""!=t.formGroup.value.description)}}function it(a,d){1&a&&e.eu8(0)}function st(a,d){1&a&&e.eu8(0)}function ot(a,d){if(1&a&&(e.j41(0,"div",56),e.DNE(1,st,1,0,"ng-container",45),e.k0s()),2&a){e.XpG();const t=e.sdS(91);e.R7$(),e.Y8G("ngTemplateOutlet",t)}}function rt(a,d){if(1&a){const t=e.RV6();e.qex(0),e.j41(1,"button",57),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.closeDialog())}),e.nrm(2,"i",58),e.EFF(3),e.nI1(4,"translate"),e.k0s(),e.j41(5,"button",59),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onConfirmSave())}),e.nrm(6,"i",60),e.EFF(7),e.nI1(8,"translate"),e.k0s(),e.bVm()}if(2&a){const t=e.XpG();e.R7$(3),e.SpI("",e.bMT(4,3,"common.action.goBack")," "),e.R7$(2),e.BMQ("disabled",t.isSaving?"":null),e.R7$(2),e.SpI("",e.bMT(8,5,"common.action.save-info")," ")}}function at(a,d){if(1&a){const t=e.RV6();e.qex(0),e.j41(1,"button",57),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.closeDialog())}),e.nrm(2,"i",58),e.EFF(3),e.nI1(4,"translate"),e.k0s(),e.j41(5,"button",61),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onConfirmSave())}),e.nrm(6,"i",60),e.EFF(7),e.nI1(8,"translate"),e.k0s(),e.bVm()}if(2&a){const t=e.XpG();e.R7$(3),e.SpI("",e.bMT(4,3,"common.action.goBack")," "),e.R7$(2),e.BMQ("disabled",t.isSaving?"":null),e.R7$(2),e.SpI(" ",e.bMT(8,5,"common.action.save-info")," ")}}function lt(a,d){if(1&a){const t=e.RV6();
1e.j41(0,"button",80),e.bIt("click",function(){e.eBV(t);const n=e.XpG(3);return e.Njj(n.clearChecked())}),e.nrm(1,"i",81),e.j41(2,"span",82),e.EFF(3),e.nI1(4,"translate"),e.k0s()()}2&a&&(e.R7$(3),e.SpI(" ",e.bMT(4,1,"common.action.clearSelection")," "))}function ct(a,d){if(1&a){const t=e.RV6();e.j41(0,"button",83),e.bIt("click",function(){e.eBV(t);const n=e.XpG(3);return e.Njj(n.onDeleteCheckedItems())}),e.nrm(1,"i",84),e.j41(2,"span",85),e.EFF(3),e.nI1(4,"translate"),e.k0s()()}2&a&&(e.R7$(3),e.SpI(" ",e.bMT(4,1,"common.action.deleted")," "))}function dt(a,d){if(1&a&&(e.qex(0),e.j41(1,"div",72)(2,"span",73)(3,"span",74)(4,"b"),e.EFF(5),e.k0s(),e.EFF(6),e.nI1(7,"translate"),e.k0s(),e.nrm(8,"vts-divider",75),e.k0s(),e.j41(9,"div",76),e.DNE(10,lt,5,3,"button",77),e.nrm(11,"div",78),e.DNE(12,ct,5,3,"button",79),e.k0s()(),e.bVm()),2&a){const t=e.XpG(2);e.R7$(5),e.JRh(t.setOfCheckedDataId.size),e.R7$(),e.SpI(" ",e.bMT(7,4,"common.table.selectedItems")," "),e.R7$(4),e.Y8G("ngIf",t.setOfCheckedDataId.size>0),e.R7$(2),e.Y8G("ngIf",t.setOfCheckedDataId.size>0)}}function ht(a,d){if(1&a){const t=e.RV6();e.qex(0),e.j41(1,"button",91),e.bIt("click",function(){e.eBV(t);const n=e.XpG().$implicit,s=e.XpG(2);return e.Njj(s.softDeleteItem(s.getRoleRowKey(n)))}),e.nrm(2,"i",92),e.k0s(),e.bVm()}}function pt(a,d){if(1&a){const t=e.RV6();e.qex(0),e.j41(1,"button",93),e.bIt("click",function(){e.eBV(t);const n=e.XpG().$implicit,s=e.XpG(2);return e.Njj(s.undoSoftDeleteItem(s.getRoleRowKey(n)))}),e.nrm(2,"i",94),e.k0s(),e.bVm()}}function gt(a,d){if(1&a){const t=e.RV6();e.j41(0,"tr",86)(1,"td",87),e.bIt("vtsCheckedChange",function(n){const s=e.eBV(t).$implicit,o=e.XpG(2);return e.Njj(o.onItemChecked(o.getRoleRowKey(s),n))}),e.k0s(),e.j41(2,"td",88),e.EFF(3),e.k0s(),e.j41(4,"td",88),e.EFF(5),e.k0s(),e.j41(6,"td",88),e.EFF(7),e.k0s(),e.j41(8,"td",88),e.EFF(9),e.k0s(),e.j41(10,"td",89)(11,"div",90),e.DNE(12,ht,3,0,"ng-container",50)(13,pt,3,0,"ng-container",50),e.k0s()()()}if(2&a){const t=d.$implicit,i=e.XpG(2);e.Y8G("ngClass",e.l_i(17,He,i.deletedRowKeys.has(i.getRoleRowKey(t)),i.setOfCheckedDataId.has(i.getRoleRowKey(t)))),e.R7$(),e.Y8G("vtsChecked",i.setOfCheckedDataId.has(i.getRoleRowKey(t))),e.R7$(),e.Y8G("vtsEllipsis",!0)("title",t.fullName),e.R7$(),e.SpI(" ",t.fullName," "),e.R7$(),e.Y8G("vtsEllipsis",!0)("title",t.identityNo),e.R7$(),e.SpI(" ",t.identityNo," "),e.R7$(),e.Y8G("vtsEllipsis",!0)("title",t.treeCode),e.R7$(),e.SpI(" ",t.treeCode," "),e.R7$(),e.Y8G("vtsEllipsis",!0)("title",t.orgName),e.R7$(),e.SpI(" ",t.orgName," "),e.R7$(),e.Y8G("vtsEllipsis",!0),e.R7$(2),e.Y8G("ngIf",!i.deletedRowKeys.has(i.getRoleRowKey(t))),e.R7$(),e.Y8G("ngIf",i.deletedRowKeys.has(i.getRoleRowKey(t)))}}function ut(a,d){if(1&a){const t=e.RV6();e.DNE(0,dt,13,6,"ng-container",50),e.j41(1,"div",62)(2,"vts-table",63,11),e.nI1(4,"translate"),e.bIt("vtsCurrentPageDataChange",function(n){e.eBV(t);const s=e.XpG();return e.Njj(s.onCurrentPageDataChange(n))})("vtsPageSizeChange",function(n){e.eBV(t);const s=e.XpG();return e.Njj(s.onPageSizeChange(n))})("vtsPageIndexChange",function(n){e.eBV(t);const s=e.XpG();return e.Njj(s.onPageIndexChange(n))}),e.j41(5,"thead")(6,"tr",64)(7,"th",65),e.bIt("vtsCheckedChange",function(n){e.eBV(t);const s=e.XpG();return e.Njj(s.onAllChecked(n))}),e.k0s(),e.j41(8,"th",66),e.EFF(9),e.nI1(10,"translate"),e.k0s(),e.j41(11,"th",67),e.EFF(12),e.nI1(13,"translate"),e.k0s(),e.j41(14,"th",68),e.EFF(15),e.nI1(16,"translate"),e.k0s(),e.j41(17,"th",69),e.EFF(18),e.nI1(19,"translate"),e.k0s(),e.j41(20,"th",70),e.EFF(21),e.nI1(22,"translate"),e.k0s()()(),e.j41(23,"tbody"),e.DNE(24,gt,14,20,"tr",71),e.k0s()()()}if(2&a){const t=e.XpG(),i=e.sdS(93);e.Y8G("ngIf",t.setOfCheckedDataId.size>0),e.R7$(2),e.FS9("vtsNoResult",e.bMT(4,21,"common.table.noData")),e.Y8G("vtsData",t.tableData)("vtsStripe",!1)("vtsBordered",!1)("vtsShowSizeChanger",!0)("vtsShowPagination",!0)("vtsClientPagination",!1)("vtsPaginationEllipsis",!0)("vtsPageSizeOptions",e.lJ4(33,Xe))("vtsShowTotal",i)("vtsTotal",t.totalUsers)("vtsPageIndex",t.pageIndex)("vtsPageSize",t.pageSize),e.R7$(5),e.Y8G("vtsChecked",t.checked),e.R7$(2),e.SpI(" ",e.bMT(10,23,"user-management.info.fullname")," "),e.R7$(3),e.SpI(" ",e.bMT(13,25,"user-management.info.identityNo")," "),e.R7$(3),e.SpI(" ",e.bMT(16,27,"user-management.info.treeCode")," "),e.R7$(3),e.SpI(" ",e.bMT(19,29,"user-management.info.orgName")," "),e.R7$(3),e.SpI(" ",e.bMT(22,31,"common.table.action_")," "),e.R7$(3),e.Y8G("ngForOf",t.tableData)}}function mt(a,d){if(1&a&&(e.j41(0,"div",95),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&a){const t=d.$implicit,i=d.range;e.R7$(),e.LHq(" ",i[0],"-",i[1]," / ",t," ",e.bMT(2,4,"common.table.item")," ")}}function ft(a,d){if(1&a){const t=e.RV6();e.j41(0,"div",96)(1,"button",97),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.closeDataResourceDialog())}),e.nrm(2,"i",58),e.EFF(3),e.nI1(4,"translate"),e.k0s(),e.j41(5,"button",98),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onSelectResources())}),e.nrm(6,"i",99),e.j41(7,"span"),e.EFF(8),e.nI1(9,"translate"),e.k0s()()()}2&a&&(e.R7$(3),e.SpI("",e.bMT(4,2,"common.action.back")," "),e.R7$(5),e.JRh(e.bMT(9,4,"common.action.confirmation")))}function _t(a,d){if(1&a){const t=e.RV6();e.j41(0,"vts-tree",100,12),e.bIt("vtsCheckBoxChange",function(n){e.eBV(t);const s=e.XpG();return e.Njj(s.onResourceTreeCheck(n))}),e.k0s()}if(2&a){const t=e.XpG(),i=e.sdS(99);e.Y8G("ngStyle",e.eq3(5,We,t.nodes&&t.nodes.length>0?"8px":"0px"))("vtsData",t.nodes)("vtsExpandAll",!1)("vtsCheckStrictly",!0)("vtsTreeTemplate",i
1)}}function vt(a,d){if(1&a&&(e.qex(0),e.nrm(1,"i",104),e.j41(2,"span",105),e.EFF(3),e.k0s(),e.bVm()),2&a){const t=e.XpG().$implicit;e.R7$(3),e.JRh(t.title)}}function Ct(a,d){if(1&a&&(e.qex(0),e.j41(1,"div",106)(2,"span",107),e.nI1(3,"lowercase"),e.EFF(4),e.k0s(),e.j41(5,"div",108)(6,"span",109),e.EFF(7),e.k0s(),e.j41(8,"span",110),e.EFF(9),e.k0s()()(),e.bVm()),2&a){const t=e.XpG().$implicit;e.R7$(2),e.Y8G("ngClass",e.bMT(3,4,t.origin.method)),e.R7$(2),e.SpI(" ",t.origin.method," "),e.R7$(3),e.JRh(t.origin.resourceName),e.R7$(2),e.JRh(t.origin.url)}}function bt(a,d){if(1&a){const t=e.RV6();e.j41(0,"div",101)(1,"div",102),e.DNE(2,vt,4,1,"ng-container",50)(3,Ct,10,6,"ng-container",50),e.k0s(),e.j41(4,"div",103),e.nI1(5,"translate"),e.bIt("click",function(n){const s=e.eBV(t).$implicit,o=e.XpG();return e.Njj(o.onDeleteResourceNode(s,n))}),e.nrm(6,"i",92),e.k0s()()}if(2&a){const t=d.$implicit;e.R7$(2),e.Y8G("ngIf",!t.origin.isApi),e.R7$(),e.Y8G("ngIf",t.origin.isApi),e.R7$(),e.Y8G("vtsTooltipTitle",e.bMT(5,3,"common.action.delete"))}}function St(a,d){if(1&a){const t=e.RV6();e.j41(0,"div",96)(1,"button",111),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.closeConfirmModal())}),e.nrm(2,"i",58),e.EFF(3," Quay l\u1ea1i "),e.k0s(),e.j41(4,"button",112),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.confirmAndSaveRole())}),e.nrm(5,"i",60),e.EFF(6),e.k0s()()}if(2&a){const t=e.XpG();e.R7$(6),e.SpI(" ","edit"===t.mode?"X\xe1c nh\u1eadn l\u01b0u":"X\xe1c nh\u1eadn th\xeam m\u1edbi"," ")}}function Tt(a,d){if(1&a&&(e.j41(0,"div",113),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&a){const t=d.$implicit,i=d.range;e.R7$(),e.LHq(" ",i[0],"-",i[1]," / ",t," ",e.bMT(2,4,"common.table.item")," ")}}let Y=(()=>{class a{constructor(t,i,n,s,o,r,l,c,p,_,S){this._dialogService=t,this.drawerService=i,this._fb=n,this._roleService=s,this._userService=o,this.toast=r,this._translate=l,this._utils=c,this._appService=p,this._cdr=_,this._modalService=S,this.vtsTitle="",this.headers={order:this._translate.instant("common.table.order"),id:this._translate.instant("common.table.id"),roleName:this._translate.instant("user-role.roleName"),roleCode:this._translate.instant("user-role.roleCode"),description:this._translate.instant("user-management.info.description"),numberOfUser:this._translate.instant("user-management.info.numberOfUser"),action:this._translate.instant("common.table.action"),status:this._translate.instant("user-management.info.status"),application:this._translate.instant("user-management.info.application2")},this.mode="create",this.fieldSize="md",this.formGroup=new f.gE({application:new f.MJ("",[h.Bm6.requiredCustom(this.headers.application),f.k0.maxLength(255)]),roleCode:new f.MJ("",[h.Bm6.requiredMorethan2(this.headers.roleCode),f.k0.maxLength(255),h.Bm6.requiredCustom(this.headers.roleCode)]),roleName:new f.MJ("",[f.k0.maxLength(255),h.Bm6.requiredMorethan2(this.headers.roleName),h.Bm6.requiredCustom(this.headers.roleName)]),description:new f.MJ("",[f.k0.maxLength(1e3)])}),this.setOfCheckedDataId=new Set,this.tableData=[],this.sortDirections=["ascend","descend",null],this.pageIndex=1,this.pageSize=10,this.totalUsers=0,this.indeterminate=!1,this.checked=!1,this.isSaving=!1,this.nodeSelected=[],this.nodes=[],this.initialNodes=[],this.oldTreeKey=[],this.isLock=!0,this.statusTitle="user-management.status.enable",this.appList=[],this.previousAppId=null,this.showApplicationWarningBanner=!1,this.currentPageData=[],this.workingSelectedUserMap=new Map,this.pendingAddedFlatMap=new Map,this.pendingRemovedFlatMap=new Map,this.isAssignedLiteLoaded=!1,this.deletedResourceCount=0,this.deletedRowKeys=new Set,this.PARTY_TREE_CODE="PARTY_MEMBER",this.GOV_TREE_CODE="GOV",this.markChanged=!1,this.sortFn=(g,u)=>g<u?1:-1,this.autoFocusFirstInvalidInput=(g,u)=>{const v=Object.keys(g.controls);let C="";v.forEach(R=>{g.get(R)?.invalid&&!C&&(C=R),g.get(R)?.markAllAsTouched(),g.get(R)?.updateValueAndValidity()}),(u.find(R=>R.ngControl.name==C)?.ngControl.valueAccessor)._elementRef.nativeElement.focus()},this.trim=this._utils.trimOnBlur,this.onItemChecked=(g,u)=>{g&&(u?this.setOfCheckedDataId.add(g):this.setOfCheckedDataId.delete(g),this.updateCheckInTableHeader(),this._cdr.checkNoChanges())},this.updateCheckInTableHeader=()=>{if(null==this.tableData||0==this.tableData.length)return this.checked=!1,void this._cdr.detectChanges();let g=!0;for(const u of this.currentPageData)if(!this.setOfCheckedDataId.has(this.getRoleRowKey(u))){g=!1;break}this.checked=g,this._cdr.detectChanges()},this.autoCheckNodeParent=(g,u)=>{const v=g.getParentNode();if(v){if(u){v.isChecked=u;
1const C=this.vtsTreeComponent?.getTreeNodeByKey(v.key);return C&&(C.isChecked=!0),void this.autoCheckNodeParent(v,u)}v.isChecked=this.checkParenHaveChildChecked(v),v.getParentNode()&&this.autoCheckNodeParent(v,u)}},this.autoCheckNodeChild=(g,u)=>{if(g.isChecked=u,g.setExpanded(!0),this.vtsTreeComponent.renderTree(),u){const C=this.vtsTreeComponent?.getTreeNodeByKey(g.key);C&&(C.isChecked=!0)}const v=g.getChildren();if(v&&v.length>0)for(const C of v)this.autoCheckNodeChild(C,u)},this.checkParenHaveChildChecked=g=>{const u=g.getChildren();if(u&&u.length>0)for(const v of u){if(v.isChecked)return!0;this.checkParenHaveChildChecked(v)}return!1},this.convertMenuToVTSTreeNode=(g,u)=>{if(!g||!Array.isArray(g))return[];const v=[];for(const C of g)if(!C.parentId){let R;if(u.length>0){const K=u.find(Et=>Et.id==C.id);R=this.convertMenuDetailToVtsTree(C,K||void 0)}else R=this.convertMenuDetailToVtsTree(C,void 0);R&&v.push(R)}return v},this.convertResourceDetailToVtsTree=(g,u,v)=>{if(!g)return null;u||(u=-1);const C={key:"api/"+u+"/"+g.id,title:`${g.resourceName??""}`,icon:"vts:api_customs",isApi:!0,method:g.method,url:g.url,resourceName:g.resourceName};return v&&g.id==v.id&&(C.checked=!0,this.oldTreeKey.push(C.key)),C.isLeaf=!0,C}}setChanged(){this.markChanged=!0}setUnchanged(){this.markChanged=!1}hasUnsavedChanges(t){const i=!Ve.isEqual(this.nodes,this.initialNodes);return t!==h.h87.TYPE_DIALOG.UPDATE&&t!==h.h87.TYPE_DIALOG.NEW&&(this.formGroup.dirty||i||this.markChanged)}ngOnInit(){if(this.data.tableHeader&&(this.headers=this.data.tableHeader),this.data.data&&(this.role=this.data.data),this.role&&this.role.i
1d&&(this.mode="edit"),"create"==this.mode||"create-another"==this.mode?this.vtsTitle=this._translate.instant("user-role.roleCreated"):"edit"==this.mode&&(this.vtsTitle=this._translate.instant("user-role.roleUpdate")+' "'+this.role.roleName+'"'),this.initForm(),this.getPermissionApplication(),"edit"==this.mode){const t=this.role.id;t&&this._roleService.listAllMenuConfigInheritByRoleId(t).subscribe({next:i=>{this.menuConfigInherit=i?.menuConfigInheritData},complete:()=>{this.nodes=this.convertMenuToVTSTreeNode(this.menuConfigInherit,this.menuConfigInherit),this.nodes&&(this.initialNodes=[...this.nodes]),this._cdr.detectChanges(),this.vtsTreeComponent&&this.vtsTreeComponent.renderTree()}})}}focusFirstEnabledElement(){const n=[...this.inputs.map(r=>({instance:r,el:r.ngControl?.valueAccessor?._elementRef?.nativeElement||r.nativeElement})),...this.selects.map(r=>({instance:r,el:r.nativeElement||r.elementRef?.nativeElement||r._elementRef?.nativeElement}))].filter(r=>null!==r.el);if(0===n.length)return;const o=n.sort((r,l)=>r.el.compareDocumentPosition(l.el)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1).find(r=>{const l=r.instance;return!(!0===l.disabled||!0===l.vtsDisabled)&&r.el.offsetWidth>0&&r.el.offsetHeight>0});if(o){const r=o.instance,l=o.el;setTimeout(()=>
1{"function"==typeof r.focus?r.focus():(l.querySelector("vts-select-top-control")||l.querySelector("input")||l).focus(),r.ngControl?.control&&r.ngControl.control.markAsUntouched({emitEvent:!1}),this._cdr.detectChanges()},50)}}ngAfterViewInit(){this.focusFirstEnabledElement()}clearValue(t){this.formGroup.get(t)?.setValue(null),this.formGroup.get(t)?.markAsDirty(),this.formGroup.get(t)?.markAsTouched(),this.formGroup.get(t)?.updateValueAndValidity()}get f(){return this.formGroup.controls}initForm(){const t="edit"===this.mode,i=this.role?.applicationId?String(this.role.applicationId):null;this.formGroup=this._fb.group({application:new f.MJ({value:i,disabled:t},[h.Bm6.requiredCustom(this.headers.application),f.k0.maxLength(255)]),roleCode:new f.MJ({value:this.role?.roleCode||"",disabled:t},[h.Bm6.requiredMorethan2(this.headers.roleCode),f.k0.maxLength(255),h.Bm6.requiredCustom(this.headers.roleCode)]),roleName:new f.MJ(this.role?.roleName||"",[h.Bm6.requiredMorethan2(this.headers.roleName),f.k0.maxLength(255),h.Bm6.requiredCustom(this.headers.roleName)]),description:new f.MJ(this.role?.description||"",[f.k0.maxLength(1e3)])}),this.role&&null!=this.role.isLock&&(this.isLock=0==this.role.isLock,this.statusTitle=this.isLock?"user-management.status.enable":"user-management.status.disable")}getPermissionApplication(){this._userService.getPermissionAuthor().subscribe({next:t=>{if(this.appList=((t&&t.body?t.body:t)?.detail??[])||[],"edit"===this.mode&&this.role?.applicationId){const s=String(this.role.applicationId);this.selectedApp=this.appList.find(o=>String(o.appId)===s),this.formGroup.patchValue({application:s},{emitEvent:!1}),this.loadUserInfoOfOldData()}this._cdr.detectChanges()},error:()=>{this.appList=[]}})}onChangeApplication(t){if(t&&(this.showApplicationWarningBanner=!1),this.appList&&(this.selectedApp=this.appList.find(i=>String(i.appId)===String(t))),this.previousAppId!==t){if("edit"===this.mode&&null===this.previousAppId&&t==this.role?.applicationId)return void(this.previousAppId=t);this.previousAppId=t,this.nodes=[],this.menuConfigInherit=[],this.oldTreeKey=[],this.tableData=[],this.currentPageData=[],this.totalUsers=0,this.setOfCheckedDataId.clear(),this.workingSelectedUserMap.clear(),this.pendingAddedFlatMap.clear(),this.pendingRemovedFlatMap.clear(),this.deletedRowKeys&&this.deletedRowKeys.clear(),this._cdr.detectChanges()}}openResourceDialog(){this.formGroup.get("application");const i=this.formGroup.getRawValue().application;i?(this.appList.find(o=>o.id==i),this.resourceDialogRef=this._dialogService.openDialog("Ch\u1ecdn t\xe0i nguy\xean g\xe1n vai tr\xf2",fe,this.selectResourceDialogFooterTpl),this.resourceDialogRef.getContentComponent().data={selectedResources:this.menuConfigInherit,applicationId:i},this.resourceDialogRef.getContentComponent().getResourcesTree(),this.resourceDialogRef.afterClose.subscribe(()=>{})):this.showRequireApplicationWarning()}showRequireApplicationWarning(){const t=this.formGroup.get("application");t?.markAsTouched(),t?.updateValueAndValidity(),this.showApplicationWarningBanner=!0,this.toast.warning("","Vui l\xf2ng ch\u1ecdn \u1ee9ng d\u1ee5ng tr\u01b0\u1edbc!",{vtsPlacement:"bottomRight"}),this._cdr.detectChanges()}onSelectResources(){const t=this.resourceDialogRef.getContentComponent();this.menuConfigInherit=[...t.checkedMenuConfigInherit],this.nodes=this.convertMenuToVTSTreeNode(this.menuConfigInherit,this.menuConfigInherit),this.resourceDialogRef.destroy(),this._cdr.detectChanges(),this.vtsTreeComponent&&this.vtsTreeComponent.renderTree()}closeDataResourceDialog(){this.resourceDialogRef.close()}onBlur(t){this.formGroup.controls[t].enabled&&(this.formGroup.controls[t].markAsTouched(),this.formGroup.controls[t].updateValueAndValidity({onlySelf:!0}))}onConfirmSave(){this.formGroup.getRawValue().application||this.showRequireApplicationWarning(),this._utils.checkValidate(this.formGroup,this.inputs)?this.confirmAndSaveRole():this.autoFocusFirstInvalidInput(this.formGroup,this.inputs)}closeConfirmModal(){this.confirmModalRef?this.confirmModalRef.destroy():this._modalService.closeAll()}getUserDeleted(t=[]){return this.deletedRowKeys.forEach(i=>
1{const n=this.tableData.find(s=>this.getRoleRowKey(s)===i);n&&t.push(n)}),t}confirmAndSaveRole(){if(this.confirmModalRef?this.confirmModalRef.destroy():this._modalService.closeAll(),this.deletedRowKeys&&this.deletedRowKeys.size>0){const t=this.getUserDeleted();"edit"===this.mode?this.deleteRoleUsersOnServer(t):t.forEach(i=>{this.deleteItem(this.getRoleRowKey(i))}),this.deletedRowKeys.clear()}this.saveRole()}saveRole(){let t=this.formGroup.value.description;null!=t&&(t=t.trim(),""===t&&(t=null));const i=this.isLock?0:1,n=this.role?.isLock,s="edit"===this.mode&&void 0!==n&&n!==i;if("edit"===this.mode){this.isSaving=!0;const r={id:this.role?.id?String(this.role.id):void 0,roleName:this.formGroup.value.roleName,roleCode:this.formGroup.getRawValue().roleCode,description:t,applicationId:this.formGroup.getRawValue().application,menuOrApiKeyChecked:this.extractKeyFromTree(this.nodes),isLock:"edit"===this.mode?n:i,userIdUpdated:this.groupFlatToAccountOrgDTO(Array.from(this.pendingAddedFlatMap.values())),userIdDeleted:this.groupFlatToAccountOrgDTO(Array.from(this.pendingRemovedFlatMap.values()))};return void this._roleService.updateRoleDelta(r).subscribe({next:()=>{this.pendingAddedFlatMap.clear(),this.pendingRemovedFlatMap.clear(),s&&this.role?.id?this._roleService.changeStatusRole(String(this.role.id)).subscribe({next:()=>{this.isSaving=!1,this.toast.success("",this._translate.instant("user-role.message.updated")),this.closeDialog(h.h87.TYPE_DIALOG.UPDATE)},error:l=>{this.isSaving=!1,this.toast.error("",this._translate.instant(l.error&&400===l.status?"common.error.message."+l.error.code:"user-role.message.errorStatusChanging"))}}):(this.isSaving=!1,this.toast.success("",this._translate.instant("user-role.message.updated")),this.closeDialog(h.h87.TYPE_DIALOG.UPDATE))},error:l=>{this.isSaving=!1,this.toast.error("",this._translate.instant(l.error&&400===l.status?"common.error.message."+l.error.code:"user-role.message.errorUpdating"))}})}const o={id:this.role?.id?String(this.role.id):void 0,roleName:this.formGroup.value.roleName,roleCode:this.formGroup.getRawValue().roleCode,description:t,applicationId:this.formGroup.getRawValue().application,userIdSelected:this.buildCreateUserSelected(),menuOrApiKeyChecked:this.extractKeyFromTree(this.nodes),isLock:i,status:1};this.isSaving=!0,this._roleService.saveRole(o).subscribe({next:()=>{this.isSaving=!1,this.toast.success("",this._translate.instant("user-role.message.created")),"create"===this.mode?this.closeDialog(h.h87.TYPE_DIALOG.NEW):(this.closeDialog(h.h87.TYPE_DIALOG.CREATE_ANOTHER),this.resetForm())},error:r=>{if(this.isSaving=!1,"1001"===r?.error?.code||"error.duplicate.roleCode"===r?.error?.message)return this.formGroup.controls.roleCode.setErrors({duplicateRoleCode:!0}),this.formGroup.controls.roleCode.markAsTouched(),void this.toast.error("",this._translate.instant("common.error.message."+r.error.message));this.toast.error("",this._translate.instant(r.error&&400===r.status?"common.error.message."+r.error.code:"user-role.message.errorCreation"))}})}closeDialog(t){this.hasUnsavedChanges(t)?this.onClose():this.data&&this.data.onClose&&this.data.onClose(t)}resetForm(){this.formGroup.reset(),Object.keys(this.formGroup.controls).forEach(i=>{this.formGroup.get(i)&&this.formGroup.get(i).setErrors({})}),this.formGroup.updateValueAndValidity()}clearChecked(){this.setOfCheckedDataId.clear(),this.checked=!1,this.indeterminate=!1,this._cdr.detectChanges()}onCurrentPageDataChange(t){this.currentPageData=t,this.updateCheckInTableHeader()}onAllChecked(t){this.currentPageData.forEach(i=>{this.updateCheckedSet(this.getRoleRowKey(i),t)}),this.updateCheckInTableHeader()}updateCheckedSet(t,i){i?this.setOfCheckedDataId.add(t):this.setOfCheckedDataId.delete(t)}onResourceTreeCheck(t){const i=t?.node;i&&(this.autoCheckNodeChild(i,!!t?.checked),this.syncParentCheckedState(i.getParentNode()),this._cdr.detectChanges(),this.vtsTreeComponent?.renderTree())}syncParentCheckedState(t){if(!t)return;const i=this.checkParenHaveChildChecked(t);t.isChecked=i,t.isHalfChecked=!1;const n=this.vtsTreeComponent?.getTreeNodeByKey(t.key);n&&(n.isChecked=i,n.isHalfChecked=!1),this.syncParentCheckedState(t.getParentNode())}onDeleteCheckedItems(){const t=this.currentPageData.filter(i=>this.setOfCheckedDataId.has(this.getRoleRowKey(i)));t.length&&(t.forEach(i=>
1{this.softDeleteItem(this.getRoleRowKey(i))}),this.setOfCheckedDataId.clear(),this.checked=!1,this._cdr.detectChanges())}deleteRoleUsersOnServer(t){t.length&&this.role?.id&&(this.buildDeleteDtosFromUsers(t).forEach(n=>{(n.orgId||[]).forEach(s=>{const o={userId:String(n.userId),orgId:String(s),treeCode:String(n.treeCode),applicationId:String(n.appId||this.getRoleAppId())},r=this.buildFlatKey(o);this.pendingAddedFlatMap.has(r)?this.pendingAddedFlatMap.delete(r):this.pendingRemovedFlatMap.set(r,o),this.removeFlatFromWorkingSelectedMap(o)})}),t.forEach(n=>{this.setOfCheckedDataId.delete(this.getRoleRowKey(n))}),this.checked=!1,this.currentPageData.length===t.length&&this.pageIndex>1&&(this.pageIndex-=1),this.reloadRoleUsersWithPending())}onOpenUserComponentModal(){const t=this.formGroup.getRawValue().application;if(!t)return void this.showRequireApplicationWarning();const i=this._dialogService.openDialogWithoutHeader(je,{userIdSelects:this.getUserModalSelectedUsers(),subTitle:`${this.formGroup.get("roleName")?.value}`,applicationId:String(t),roleId:"edit"===this.mode?String(this.role?.id||""):null,pendingAddedFlat:Array.from(this.pendingAddedFlatMap.values()),pendingRemovedFlat:Array.from(this.pendingRemovedFlatMap.values())},1280);i.afterClose.subscribe(n=>{n&&this.handleUserModalResult(n),this.setChanged(),i.destroy()})}loadUserInfoOfOldData(t=[],i=[]){const n=this.role?.id;n&&(this.tableData=[],this._userService.getListUserByRoleId(String(n),this.pageIndex-1,this.pageSize,void 0,t,i).subscribe({next:s=>{this.applyRoleUserListResponse(s);const o=Math.max(1,Math.ceil(this.totalUsers/this.pageSize));if(this.pageIndex>o)return this.pageIndex=o,void this.loadUserInfoOfOldData(t,i)},error:s=>{console.error("L\u1ed6I G\u1eccI API L\u1ea4Y USER:",s),this.tableData=[],this.totalUsers=0,this._cdr.detectChanges()}}))}applyRoleUserListResponse(t){const i=t.body?.detail??{},s=(i.accountInfoDTOS??i.content??[]).map(r=>{const l=r.orgMap&&"object"==typeof r.orgMap?r.orgMap:{},c=Object.keys(l).map(String),p=Object.values(l).map(_=>String(_??""));return{id:String(r.id),fullName:r.fullName,identityNo:r.identityNo,phoneNumber:r.phoneNumber,treeCode:r.treeCode,orgIds:c,orgNames:p,orgName:p.join(", "),units:c.map((_,S)=>({id:_,organizationName:p[S]??""}))}});this.tableData=s,this.totalUsers=Number(i.total??i.totalElements??i.totalItems??i.totalRecord??s.length);const o=Math.max(1,Math.ceil(this.totalUsers/this.pageSize));this.pageIndex>o&&(this.pageIndex=o),this.currentPageData=[...this.tableData],this.updateCheckInTableHeader(),this.mergePreviewRowsToWorkingSelectedMap(s),this._cdr.detectChanges()}onPageIndexChange(t){this.pageIndex=t,"edit"!==this.mode?this.syncRoleFormTableFromWorkingState():this.reloadRoleUsersWithPending()}onPageSizeChange(t){this.pageSize=t,this.pageIndex=1,"edit"!==this.mode?this.syncRoleFormTableFromWorkingState():this.reloadRoleUsersWithPending()}onRoleCodeInput(t){let i=t.target,n=i.selectionStart,s=i.selectionEnd,o=i.value.toUpperCase();this.formGroup.get("roleCode")?.setValue(o,{emitEvent:!1}),i.setSelectionRange(n,s)}convertMenuDetailToVtsTree(t,i){if(!t)return null;const n={key:"menu-"+t.id,title:t.menuName?t.menuName:"",icon:"vts:folder_shared",children:[]};if(i&&i.id==t.id&&(n.checked=!0,this.oldTreeKey.push(n.key)),t.children&&t.children.length>0){n.isLeaf=!1;for(const s of t.children){let o;if(i&&i.children){const r=i.children.find(l=>l.id==s.id);o=this.convertMenuDetailToVtsTree(s,r||void 0)}else o=this.convertMenuDetailToVtsTree(s,void 0);o&&n?.children&&n?.children.push(o)}}else n.isLeaf=!0;if(t.resourceChild&&t.resourceChild.length>0){for(const s of t.resourceChild){let o;if(i&&i.resourceChild){const r=i.resourceChild.find(l=>l.id==s.id);o=this.convertResourceDetailToVtsTree(s,t.id,r)}else o=this.convertResourceDetailToVtsTree(s,t.id,void 0);o&&n?.children&&n?.children.push(o)}n.isLeaf=!1}return n}deleteItem(t){const i=this.currentPageData.find(o=>this.getRoleRowKey(o)===t)||this.tableData.find(o=>this.getRoleRowKey(o)===t);if(!i)return;if("edit"===this.mode)return void this.deleteRoleUsersOnServer([i]);const n=String(i.id),s=this.workingSelectedUserMap.get(n);if(s){const o=this.normalizeRoleUser(s);i.treeCode===this.PARTY_TREE_CODE&&(o.partyUnits=(o.partyUnits||[]).filter(r=>!i.orgIds?.includes(String(r.id)))),i.treeCode===this.GOV_TREE_CODE&&(o.govUnits=(o.govUnits||[]).filter(r=>!i.orgIds?.includes(String(r.id)))),o.partyUnits?.length||o.govUnits?.length?this.workingSelectedUserMap.set(n,o):this.workingSelectedUserMap.delete(n)}this.setOfCheckedDataId.delete(t),this.checked=!1,this.syncRoleFormTableFromWorkingState()}softDeleteItem(t){this.deletedRowKeys.add(t),this.setOfCheckedDataId.delete(t),this.setChanged()}undoSoftDeleteItem(t){this.deletedRowKeys.delete(t),this.setChanged()}extractKeyFromTree(t){return t?.length?t.reduce((i,n)=>(n.key&&i.push(n.key),n.children?.length&&i.push(...this.extractKeyFromTree(n.children)),i),[]):[]}handleUserModalResult(t){const i=Array.isArray(t?.selectedUsers)?t.selectedUsers:[],n=Array.isArray(t?.addedFlat)?t.addedFlat:[],s=Array.isArray(t?.removedFlat)?t.removedFlat:[];
1if(console.log("[ROLE_FORM][MODAL_RESULT]",{selectedUsers:i,addedFlat:n,removedFlat:s,beforeAddedPending:Array.from(this.pendingAddedFlatMap.values()),beforeRemovedPending:Array.from(this.pendingRemovedFlatMap.values())}),"edit"!==this.mode){const r=new Map;return i.forEach(l=>{const c=this.normalizeRoleUser(l);r.set(String(c.id),c)}),this.workingSelectedUserMap=r,this.pageIndex=1,void this.syncRoleFormTableFromWorkingState()}const o=new Map(this.workingSelectedUserMap);i.forEach(r=>{const l=this.normalizeRoleUser(r);o.set(String(l.id),l)}),n.forEach(r=>{const l=this.buildFlatKey(r);this.pendingRemovedFlatMap.has(l)?this.pendingRemovedFlatMap.delete(l):this.pendingAddedFlatMap.set(l,r)}),s.forEach(r=>{const l=this.buildFlatKey(r);this.pendingAddedFlatMap.has(l)?this.pendingAddedFlatMap.delete(l):this.pendingRemovedFlatMap.set(l,r);const c=String(r.userId),p=o.get(c);if(p){const _=this.normalizeRoleUser(p),S=r.treeCode===this.PARTY_TREE_CODE?"partyUnits":"govUnits",g=(_[S]||[]).filter(R=>String(R.id)!==String(r.orgId)),u={..._,[S]:g},v=Array.isArray(u.partyUnits)&&u.partyUnits.length>0,C=Array.isArray(u.govUnits)&&u.govUnits.length>0;v||C?o.set(c,this.normalizeRoleUser(u)):o.delete(c)}}),this.workingSelectedUserMap=o,this.pageIndex=1,console.log("[ROLE_FORM][PENDING_BEFORE_RELOAD]",{userIdUpdated:this.getPendingUserIdUpdated(),userIdDeleted:this.getPendingUserIdDeleted()}),this.reloadRoleUsersWithPending()}changeStatus(){this.isLock=!this.isLock,this.statusTitle=this.isLock?"user-management.status.enable":"user-management.status.disable"}onDeleteResourceNode(t,i){i.stopPropagation();const n=this.nodes?this.getExpandedKeys(this.nodes):[];this.removeNodeFromData(this.menuConfigInherit,t.key),this.deletedResourceCount++,this.nodes=this.convertMenuToVTSTreeNode(this.menuConfigInherit,this.menuConfigInherit),this.nodes&&this.restoreExpandedState(this.nodes,n)}getExpandedKeys(t){let i=[];return t&&t.forEach(n=>{n.expanded&&i.push(n.key),n.children&&n.children.length>0&&(i=i.concat(this.getExpandedKeys(n.children)))}),i}restoreExpandedState(t,i){if(t)return t.forEach(n=>{i.includes(n.key)&&(n.expanded=!0),n.children&&n.children.length>0&&this.restoreExpandedState(n.children,i)}),t}removeNodeFromData(t,i){for(let n=0;n<t.length;n++){const s=t[n];if(`menu-${s.id}`===i)return t.splice(n,1),!0;if(s.resourceChild&&s.resourceChild.length>0){const o=s.resourceChild.findIndex(r=>`api/${s.id}/${r.id}`===i);if(-1!==o)return s.resourceChild.splice(o,1),0===s.resourceChild.length&&(!s.children||0===s.children.length)&&t.splice(n,1),!0}if(s.children&&s.children.length>0&&this.removeNodeFromData(s.children,i))return 0===s.children.length&&(!s.resourceChild||0===s.resourceChild.length)&&t.splice(n,1),!0}return!1}getUnitText(t=[]){return Array.isArray(t)&&t.length?t.map(i=>String(i.organizationName??"")).join(", "):""}normalizeRoleUser(t){const i=(r=[])=>r.map(l=>({...l,id:l.id,organizationName:String(l.organizationName??"")})),n=Array.isArray(t.partyUnits)?i(t.partyUnits):t.treeCode===this.PARTY_TREE_CODE&&Array.isArray(t.units)?i(t.units):[],s=Array.isArray(t.govUnits)?i(t.govUnits):t.treeCode===this.GOV_TREE_CODE&&Array.isArray(t.units)?i(t.units):[],o=[...n,...s];return{...t,partyUnits:n,govUnits:s,units:o,orgIds:o.map(r=>String(r.id)),orgNames:o.map(r=>String(r.organizationName)),orgName:o.map(r=>String(r.organizationName)).join(", ")}}buildFlatKey(t){return`${t.userId}|${t.orgId}|${t.treeCode}|${t.applicationId}`}groupFlatToAccountOrgDTO(t){const i=new Map;return t.forEach(n=>{const s=`${n.userId}|${n.treeCode}|${n.applicationId}`,o=i.get(s);o?o.orgId.includes(n.orgId)||o.orgId.push(n.orgId):i.set(s,{userId:n.userId,treeCode:n.treeCode,orgId:[n.orgId],appId:n.applicationId})}),Array.from(i.values())}buildCreateUserSelected(){const t=[];return Array.from(this.workingSelectedUserMap.values()).forEach(i=>{const n=Array.isArray(i.partyUnits)?i.partyUnits:[],s=Array.isArray(i.govUnits)?i.govUnits:[];n.forEach(o=>{t.push({userId:String(i.id),orgId:String(o.id),treeCode:this.PARTY_TREE_CODE,applicationId:String(this.formGroup.getRawValue().application)})}
1),s.forEach(o=>{t.push({userId:String(i.id),orgId:String(o.id),treeCode:this.GOV_TREE_CODE,applicationId:String(this.formGroup.getRawValue().application)})})}),this.groupFlatToAccountOrgDTO(t)}syncRoleFormTableFromWorkingState(){const t=Array.from(this.workingSelectedUserMap.values()).reduce((o,r)=>o.concat(this.explodeRoleRows(r)),[]);this.totalUsers=t.length;const i=Math.max(1,Math.ceil(this.totalUsers/this.pageSize));this.pageIndex>i&&(this.pageIndex=i);const n=(this.pageIndex-1)*this.pageSize;this.tableData=t.slice(n,n+this.pageSize),this.currentPageData=this.tableData,this.updateCheckInTableHeader(),this._cdr.detectChanges()}markUserRemoved(t){const i=this.normalizeRoleUser(t),n=String(this.formGroup.getRawValue().application||this.role?.applicationId||""),s=(o,r)=>{o.forEach(l=>{const c={userId:String(i.id),orgId:String(l.id),treeCode:r,applicationId:n},p=this.buildFlatKey(c);this.pendingAddedFlatMap.has(p)?this.pendingAddedFlatMap.delete(p):this.pendingRemovedFlatMap.set(p,c)})};s(i.partyUnits||[],this.PARTY_TREE_CODE),s(i.govUnits||[],this.GOV_TREE_CODE),this.workingSelectedUserMap.delete(String(i.id))}getRoleAppId(){return String(this.formGroup.getRawValue().application||this.role?.applicationId||"")}getCurrentRowById(t){return this.currentPageData.find(i=>String(i.id)===String(t))||this.tableData.find(i=>String(i.id)===String(t))||this.workingSelectedUserMap.get(String(t))}stripPendingRemovedUnits(t){const i=this.normalizeRoleUser(t),n=this.getRoleAppId(),s=(i.partyUnits||[]).filter(r=>{const l=this.buildFlatKey({userId:String(i.id),orgId:String(r.id),treeCode:this.PARTY_TREE_CODE,applicationId:n});return!this.pendingRemovedFlatMap.has(l)}),o=(i.govUnits||[]).filter(r=>{const l=this.buildFlatKey({userId:String(i.id),orgId:String(r.id),treeCode:this.GOV_TREE_CODE,applicationId:n});return!this.pendingRemovedFlatMap.has(l)});return s.length||o.length?this.normalizeRoleUser({...i,partyUnits:s,govUnits:o}):null}buildDeleteDtosFromUsers(t){const i=[],n=this.getRoleAppId();return t.forEach(s=>{if(s.treeCode&&Array.isArray(s.units)&&s.units.length)return void s.units.forEach(l=>{i.push({userId:String(s.id),orgId:String(l.id),treeCode:String(s.treeCode),applicationId:n})});const o=Array.isArray(s.partyUnits)?s.partyUnits:[],r=Array.isArray(s.govUnits)?s.govUnits:[];o.forEach(l=>{i.push({userId:String(s.id),orgId:String(l.id),treeCode:this.PARTY_TREE_CODE,applicationId:n})}),r.forEach(l=>{i.push({userId:String(s.id),orgId:String(l.id),treeCode:this.GOV_TREE_CODE,applicationId:n})})}),this.groupFlatToAccountOrgDTO(i)}getRoleRowKey(t){const i=Array.isArray(t.orgIds)?t.orgIds.join(","):"";return`${t.id}|${t.treeCode}|${i}`}explodeRoleRows(t){const i=this.normalizeRoleUser(t),n=[],s=(o,r)=>{!Array.isArray(o)||!o.length||o.forEach(l=>{n.push({id:i.id,fullName:i.fullName,identityNo:i.identityNo,phoneNumber:i.phoneNumber,treeCode:r,units:[{...l,id:l.id,organizationName:String(l.organizationName??"")}],orgIds:[String(l.id)],orgNames:[String(l.organizationName??"")],orgName:String(l.organizationName??"")})})};return i.treeCode&&Array.isArray(i.units)&&i.units.length?(s(i.units,String(i.treeCode)),n):(s(i.partyUnits||[],this.PARTY_TREE_CODE),s(i.govUnits||[],this.GOV_TREE_CODE),n)}getPendingUserIdUpdated(){return this.groupFlatToAccountOrgDTO(Array.from(this.pendingAddedFlatMap.values()))}getPendingUserIdDeleted(){return this.groupFlatToAccountOrgDTO(Array.from(this.pendingRemovedFlatMap.values()))}reloadRoleUsersWithPending(){this.loadUserInfoOfOldData(this.getPendingUserIdDeleted(),this.getPendingUserIdUpdated())}mergePreviewRowsToWorkingSelectedMap(t){!Array.isArray(t)||!t.length||t.forEach(i=>{const n=String(i.id),s=this.workingSelectedUserMap.get(n),o=s?this.normalizeRoleUser(s):null,r=Array.isArray(i.units)?i.units:[],l=o||{id:i.id,fullName:i.fullName,identityNo:i.identityNo,phoneNumber:i.phoneNumber,partyUnits:[],govUnits:[]};if(i.treeCode===this.PARTY_TREE_CODE){const c=Array.isArray(l.partyUnits)?l.partyUnits:[];l.partyUnits=this.mergeUnitsById(c,r)}if(i.treeCode===this.GOV_TREE_CODE){const c=Array.isArray(l.govUnits)?l.govUnits:[];l.govUnits=this.mergeUnitsById(c,r)}this.workingSelectedUserMap.set(n,this.normalizeRoleUser(l))})}mergeUnitsById(t=[],i=[]){const n=new Map;return t.forEach(s=>
1{n.set(String(s.id),{...s,id:s.id,organizationName:String(s.organizationName??"")})}),i.forEach(s=>{n.set(String(s.id),{...s,id:s.id,organizationName:String(s.organizationName??"")})}),Array.from(n.values())}getFlatKeyFromRoleRow(t){const i=Array.isArray(t.orgIds)&&t.orgIds.length?String(t.orgIds[0]):String((t.units||[])[0]?.id||"");return this.buildFlatKey({userId:String(t.id),orgId:i,treeCode:String(t.treeCode),applicationId:this.getRoleAppId()})}buildPreviewRowFromFlat(t){const i=this.workingSelectedUserMap.get(String(t.userId));if(!i)return null;const n=this.normalizeRoleUser(i),o=(t.treeCode===this.PARTY_TREE_CODE?n.partyUnits||[]:n.govUnits||[]).find(p=>String(p.id)===String(t.orgId));if(!o)return null;const r=String(o.id),l=String(o.organizationName??o.orgName??o.fullName??o.name??"");return{id:String(n.id),fullName:n.fullName,identityNo:n.identityNo,phoneNumber:n.phoneNumber,treeCode:t.treeCode,units:[{...o,id:o.id,organizationName:l}],orgIds:[r],orgNames:[l],orgName:l}}applyPendingOverlayToPreviewRows(t){this.getRoleAppId();const n=new Set(Array.from(this.pendingRemovedFlatMap.values()).map(o=>this.buildFlatKey(o))),s=new Map;return t.forEach(o=>{const r=this.getFlatKeyFromRoleRow(o);n.has(r)||s.set(r,o)}),Array.from(this.pendingAddedFlatMap.values()).forEach(o=>{const r=this.buildFlatKey(o);if(!s.has(r)){const l=this.buildPreviewRowFromFlat(o);l&&s.set(r,l)}}),Array.from(s.values())}countPendingAddedNotInServer(t){const i=new Set(t.map(n=>this.getFlatKeyFromRoleRow(n)));return Array.from(this.pendingAddedFlatMap.values()).filter(n=>!i.has(this.buildFlatKey(n))).length}countPendingRemovedStillInServer(t){const i=new Set(t.map(n=>this.getFlatKeyFromRoleRow(n)));return Array.from(this.pendingRemovedFlatMap.values()).filter(n=>i.has(this.buildFlatKey(n))).length}removeFlatFromWorkingSelectedMap(t){const i=String(t.userId),n=this.workingSelectedUserMap.get(i);if(!n)return;const s=this.normalizeRoleUser(n),o=t.treeCode===this.PARTY_TREE_CODE?"partyUnits":"govUnits";s[o]=(s[o]||[]).filter(c=>String(c.id)!==String(t.orgId));const r=Array.isArray(s.partyUnits)&&s.partyUnits.length>0,l=Array.isArray(s.govUnits)&&s.govUnits.length>0;r||l?this.workingSelectedUserMap.set(i,this.normalizeRoleUser(s)):this.workingSelectedUserMap.delete(i)}getUserModalSelectedUsers(){return Array.from(this.workingSelectedUserMap.values()).map(t=>this.stripPendingRemovedUnits(t)).filter(t=>!!t)}clickItem(t){this.onItemChecked(this.getRoleRowKey(t),!this.setOfCheckedDataId.has(this.getRoleRowKey(t)))}onClose(){this._dialogService.confirmDiscardChanges().afterClose.subscribe(t=>{t&&this.data.onClose(t)})}static{this.\u0275fac=function(i){return new(i||a)(e.rXU(N.o3),e.rXU(D.wJ),e.rXU(f.ok),e.rXU(h.WKx),e.rXU(h.DLc),e.rXU(F.Mo),e.rXU(x.c$),e.rXU(h.$Db),e.rXU(Z.Bn),e.rXU(e.gRc),e.rXU($.is))}}static{this.\u0275cmp=e.VBU({type:a,selectors:[["lib-role-form2"]],viewQuery:function(i,n){if(1&i&&(e.GBs(ze,5),e.GBs(Be,5),e.GBs(Le,5),e.GBs(Ye,5),e.GBs(Ke,5),e.GBs(y.fZ,5),e.GBs(I.B1,5)),2&i){let s;e.mGM(s=e.lsd())&&(n.vtsTreeComponent=s.first),e.mGM(s=e.lsd())&&(n.appSelect=s.first),e.mGM(s=e.lsd())&&(n.roleNameInput=s.first),e.mGM(s=e.lsd())&&(n.confirmFooterTpl=s.first),e.mGM(s=e.lsd())&&(n.selectResourceDialogFooterTpl=s.first),e.mGM(s=e.lsd())&&(n.inputs=s),e.mGM(s=e.lsd())&&(n.selects=s)}},inputs:{data:"data"},features:[e.Jv_([N.o3,N.dj,F.Mo,M.S3])],decls:104,vars:36,consts:[["appSelect",""],["clearableRoleCodeTpl",""],["roleNameInput",""],["clearableRoleNameTpl",""],["clearableDescriptionTpl",""],["tblUser",""],["showTotal",""],["selectResourceDialogFooterTpl",""],["resourcesTree",""],["customTreeTemplate",""],["confirmFooterTpl",""],["tUser","vtsTable"],["vtsTreeComponent",""],[1,"role-content-form"],[3,"close","title"],[1,"form-body-wrapper"],[1,"vts-card"],[1,"vts-card-header",2,"margin-bottom","1rem"],["vts-icon","","vtsType","InfoOutLineIcon:custom",1,"vts-card-icon"],[1,"card-title"],[1,""],["vts-form","","vtsLayout","vertical","vtsSize","sm",3,"formGroup"],["vts-row","",3,"vtsGutter"],["vts-col","","vtsSpan","24"],["vtsRequired",""],[1,"input-label"],["vtsSize","md","vtsSh
1owSearch","","vtsAllowClear","","formControlName","application",3,"vtsBlur","ngModelChange"],[3,"vtsValue","vtsLabel",4,"ngFor","ngForOf"],[3,"control"],["vts-col","",3,"vtsSpan"],[1,"mg-b-16"],["vtsRequired","",1,"pd-0"],[1,"pd-0"],[1,"input-box",3,"vtsSize","vtsSuffix"],["vts-input","","formControlName","roleCode","maxlength","50",3,"blur","input"],["vts-input","","formControlName","roleName","maxlength","200",3,"blur"],[1,"textarea-wrapper"],["id","inputBoxId__Modify",1,"input-box","vts-input-affix-wrapper-textarea-with-clear-btn",2,"height","unset !important",3,"vtsSuffix"],["vts-input","","formControlName","description","rows","4","maxlength","1000",1,"scroll",2,"border-radius","6px","resize","vertical","min-height","80px",3,"blur"],[1,"char-counter"],[1,"vts-card-header","card-header-flex"],[1,"header-left"],["vts-icon","","vtsType","FolderOutlineIcon:custom",1,"vts-card-icon"],["vts-button","","vtstype","ghost",1,"add-btn-custom",3,"click"],["vts-icon","","vtsType","Add:custom",1,"btn-icon"],[4,"ngTemplateOutlet"],["vts-icon","","vtsType","UserOutlineIcon:custom",1,"vts-card-icon"],["style","margin-top: 8px",4,"ngIf"],[1,"footer-main",2,"background","white","display","flex","align-items","flex-end","flex-direction","column"],["vts-row","",1,"footer-action-btns",2,"padding-right","1.25rem"],[4,"ngIf"],[3,"vtsValue","vtsLabel"],["vts-icon","","vtsTheme","fill","class","vts-input-clear-icon","vtsType","ClearDoutone:vts",3,"click",4,"ngIf"],["vts-icon","","vtsTheme","fill","vtsType","ClearDoutone:vts",1,"vts-input-clear-icon",3,"click"],["vts-icon","","vtsTheme","fill","class","vts-input-textarea-clear-icon","vtsType","ClearDoutone:vts","style","top: 10px;",3,"click",4,"ngIf"],["vts-icon","","vtsTheme","fill","vtsType","ClearDoutone:vts",1,"vts-input-textarea-clear-icon",2,"top","10px",3,"click"],[2,"margin-top","8px"],["vts-button","","vtsSize","md","vtsType","default",1,"cancel-btn",3,"click"],["vts-icon","","vtsType","Back:custom"],["vts-button","","vtsType","primary","vts-col","","vtsSize","md",1,"save-btn",3,"click"],["vts-icon","","vtsType","PaperTick:custom"],["vts-button","","vtsType","primary","vtsSize","md","vts-col","",1,"save-btn",3,"click"],[1,"role-user-table-wrapper"],["vtsTableLayout","fixed",2,"margin-bottom","0",3,"vtsCurrentPageDataChange","vtsPageSizeChange","vtsPageIndexChange","vtsData","vtsStripe","vtsBordered","vtsShowSizeChanger","vtsShowPagination","vtsClientPagination","vtsPaginationEllipsis","vtsPageSizeOptions","vtsShowTotal","vtsTotal","vtsPageIndex","vtsPageSize","vtsNoResult"],[1,"header-divider"],["vtsWidth","45px","vtsAlign","center",3,"vtsCheckedChange","vtsChecked"],["canResize","","vtsWidth","170px"],["canResize","","vtsWidth","150px"],["canResize","","vtsWidth","210px"],["canResize","","vtsWidth","220px"],["vtsAlign","center","vtsWidth","100px"],[3,"row-deleted","ngClass",4,"ngFor","ngForOf"],["vts-row","","vtsJustify","space-between",1,"count-container","count-container__modify"],["vts-row","","vtsAlign","middle",2,"line-height","26px"],[2,"margin-right","1rem","margin-left","12px","font-size","14px"],["vtsType","vertical",1,"divider-bar"],[2,"display","flex","justify-content","flex-end"],["vts-button","","vtsType","text","class","clear-btn",3,"click",4,"ngIf"],[2,"width","1rem"],["vts-button","","vtsType","text","class","delete-btn","style","margin-right: 10px",3,"click",4,"ngIf"],["vts-button","","vtsType","text",1,"clear-btn",3,"click"],["vts-icon","","vtsType","Eraser:bootstrap"],[2,"font-size","14px","line-height","24px"],["vts-button","","vtsType","text",1,"delete-btn",2,"margin-right","10px",3,"click"],["vts-icon","","vtsType","trash:figma",2,"color","#B9000E"],[2,"font-size","14px","line-height","24px","color","#B9000E","font-weight","500"],[3,"row-deleted","ngClass"],["vtsAlign","center",3,"vtsCheckedChange","vtsChecked"],["vtsNoWrap","",1,"role-user-cell",3,"vtsEllipsis","title"],["vtsEllipsis","","vtsAlign","center",3,"vtsEllipsis"],[1,"action-btns"],["vts-button","","vtsType","text","vts-tooltip","","vtsTooltipTitle","G\u1ee1 quy\u1ec1n",3,"click"],["vts-icon","","vtsType","trash:figma"],["vts-button","","vtsType","text","vts-tooltip","","vtsTooltipTitle","Ho\xe0n t\xe1c",3,"click"],["vts-icon","","vtsType","SyncOutline:antd",1,"undo-icon"],[1,"rangeTotal-container"],[2,"display","flex","justify-content","flex-end","align-items","center","gap","12px","width","100%"],["vts-button","","vtsType","default","vtsSize","md",1,"cancel-btn",3,"click"],["vts-button","","vtsType","primary","vtsSize","md",1,"save-btn",3,"click"],["vts-icon","","vtsType","tickConfirm:figma"],["vtsShowIcon","",3,"vtsCheckBoxChange","ngStyle","vtsData","vtsExpandAll","vtsCheckStrictly","vtsTreeTemplate"],[1,"custom-tree-node-wrapper"],[1,"custom-tree-node"],["vts-tooltip","",1,"delete-action",3,"click","vtsTooltipTitle"],["vts-icon","","vtsType","FolderOutlineIcon:custom",1,"folder-icon"],[1,"folder-title"],[1,"api-node"],[1,"api-method",3,"ngClass"],[1,"api-info"],[1,"api-name"],[1,"api-url"],["vts-button","","vtsType","default","vtsSize","md",3,"click"],["vts-button","","vtsType","primary","vtsDanger","","vtsSize","md",3,"click"],[1,"rangeTotal-container",2,"left","24px"]],template:function(i,n){if(1&i){const s=e.RV6();e.j41(0,"div",13)(1,"app-header-dialog",14),e.bIt("close",function(){return e.eBV(s),e.Njj(n.closeDialog())}),e.k0s(),e.j41(2,"div",15)(3,"div",16)(4,"div",17),e.nrm(5,"i",18),e.j41(6,"span",19),e.EFF(7,"Th\xf4ng tin v\u1ec1 vai tr\xf2"),e.k0s()(),e.j41(8,"div",20)(9,"form",21)(10,"div",22)(11,"div",23)(12,"vts-form-item")(13,"vts-form-label",24)(14,"span",25),e.EFF(15),e.nI1(16,"translate"),e.k0s()(),e.j41(17,"vts-form-control")(18,"vts-select",26,0),e.bIt("vtsBlur",function(){return e.eBV(s),e.Njj(n.onBlur("application"))})("ngModelChange",function(r){return e.eBV(s),e.Njj(n.onChangeApplication(r))}),e.DNE(20,Je,1,2,"vts-option",27),e.k0s()(),e.nrm(21,"authentication-ui-control-messages",28),e.k0s()()(),e.j41(22,"div",22)(23,"div",29)(24,"vts-form-item",30)(25,"vts-form-label",31)(26,"span",25),e.EFF(27),e.nI1(28,"translate"),e.k0s()(),e.j41(29,"vts-form-control",32)(30,"vts-input-group",33)(31,"input",34),e.bIt("blur",function(){return e.eBV(s),e.Njj(n.trim(n.formGroup,"roleCode"))})("input",function(r){return e.eBV(s),e.Njj(n.onRoleCodeInput(r))}),e.k0s()(),e.DNE(32,Qe,1,1,"ng-template",null,1,e.C5r),e.k0s(),e.nrm(34,"authentication-ui-control-messages",28),e.k0s()()(),e.j41(35,"div",22)(36,"div",29)(37,"vts-form-item",30)(38,"vts-form-label",31)(39,"
1span",25),e.EFF(40),e.nI1(41,"translate"),e.k0s()(),e.j41(42,"vts-form-control",32)(43,"vts-input-group",33)(44,"input",35,2),e.bIt("blur",function(){return e.eBV(s),e.Njj(n.trim(n.formGroup,"roleName"))}),e.k0s()(),e.DNE(46,et,1,1,"ng-template",null,3,e.C5r),e.k0s(),e.nrm(48,"authentication-ui-control-messages",28),e.k0s()()(),e.j41(49,"div",22)(50,"div",29)(51,"vts-form-item",30)(52,"vts-form-label",32)(53,"span",25),e.EFF(54),e.nI1(55,"translate"),e.k0s()(),e.j41(56,"vts-form-control",32)(57,"div",36)(58,"vts-input-group",37)(59,"textarea",38),e.bIt("blur",function(){return e.eBV(s),e.Njj(n.trim(n.formGroup,"description"))}),e.k0s()(),e.j41(60,"div",39),e.EFF(61),e.k0s()(),e.DNE(62,nt,1,1,"ng-template",null,4,e.C5r),e.nrm(64,"authentication-ui-control-messages",28),e.k0s()()()()()()(),e.j41(65,"div",16)(66,"div",40)(67,"div",41),e.nrm(68,"i",42),e.j41(69,"span",19),e.EFF(70,"T\xe0i nguy\xean c\u1ee7a vai tr\xf2"),e.k0s()(),e.j41(71,"button",43),e.bIt("click",function(){return e.eBV(s),e.Njj(n.openResourceDialog())}),e.nrm(72,"i",44),e.EFF(73," Th\xeam t\xe0i nguy\xean "),e.k0s()(),e.j41(74,"div"),e.DNE(75,it,1,0,"ng-container",45),e.k0s()(),e.j41(76,"div",16)(77,"div",40)(78,"div",41),e.nrm(79,"i",46),e.j41(80,"span",19),e.EFF(81,"T\xe0i kho\u1ea3n \u0111\u01b0\u1ee3c g\xe1n vai tr\xf2 n\xe0y"),e.k0s()(),e.j41(82,"button",43),e.bIt("click",function(){return e.eBV(s),e.Njj(n.onOpenUserComponentModal())}),e.nrm(83,"i",44),e.EFF(84," Th\xeam t\xe0i kho\u1ea3n "),e.k0s()(),e.DNE(85,ot,2,1,"div",47),e.k0s()(),e.j41(86,"div",48)(87,"div",49),e.DNE(88,rt,9,7,"ng-container",50)(89,at,9,7,"ng-container",50),e.k0s()()(),e.DNE(90,ut,25,34,"ng-template",null,5,e.C5r)(92,mt,3,6,"ng-template",null,6,e.C5r)(94,ft,10,6,"ng-template",null,7,e.C5r)(96,_t,2,7,"ng-template",null,8,e.C5r)(98,bt,7,5,"ng-template",null,9,e.C5r)(100,St,7,1,"ng-template",null,10,e.C5r)(102,Tt,3,6,"ng-template",null,6,e.C5r)}if(2&i){let s;const o=e.sdS(33),r=e.sdS(47),l=e.sdS(63),c=e.sdS(97);e.R7$(),e.Y8G("title",n.vtsTitle),e.R7$(8),e.Y8G("formGroup",n.formGroup),e.R7$(),e.Y8G("vtsGutter",12),e.R7$(5),e.JRh(e.bMT(16,28,n.headers.application)),e.R7$(5),e.Y8G("ngForOf",n.appList),e.R7$(),e.Y8G("control",n.f.application),e.R7$(),e.Y8G("vtsGutter",24),e.R7$(),e.Y8G("vtsSpan",24),e.R7$(4),e.JRh(e.bMT(28,30,n.headers.roleCode)),e.R7$(3),e.Y8G("vtsSize",n.fieldSize)("vtsSuffix",o),e.R7$(4),e.Y8G("control",n.f.roleCode),e.R7$(),e.Y8G("vtsGutter",24),e.R7$(),e.Y8G("vtsSpan",24),e.R7$(4),e.JRh(e.bMT(41,32,n.headers.roleName)),e.R7$(3),e.Y8G("vtsSize",n.fieldSize)("vtsSuffix",r),e.R7$(5),e.Y8G("control",n.f.roleName),e.R7$(),e.Y8G("vtsGutter",24),e.R7$(),e.Y8G("vtsSpan",24),e.R7$(4),e.SpI(" ",e.bMT(55,34,"user-management.info.description")," "),e.R7$(4),e.Y8G("vtsSuffix",l),e.R7$(3),e.SpI(" ",(null==(s=n.formGroup.get("description"))||null==s.value?null:s.value.length)||0,"/1000 "),e.R7$(3),e.Y8G("control",n.f.description),e.R7$(11),e.Y8G("ngTemplateOutlet",c),e.R7$(10),e.Y8G("ngIf",n.tableData&&n.tableData.length>0),e.R7$(3),e.Y8G("ngIf","edit"==n.mode),e.R7$(),e.Y8G("ngIf","create"==n.mode||"create-another"==n.mode)}},dependencies:[T.MD,T.YU,T.Sq,T.bT,T.T3,T.B3,T.GH,x.h,x.D9,W.rZ,J.u,P.G,P.R$,j.T,E.dA,E.qb,D.Ji,f.YN,f.qT,f.me,f.BC,f.cb,f.tU,k.SX,O.tH,O.BE,k.dF,k.Qp,k.rA,k.Yc,f.X1,f.j4,f.JD,Q.aB,y.iO,y.fZ,y.eH,y.Ms,z.L,z.u,M.fX,w.BL,w.uC,I.u,I.mw,I.B1,b.sz,b.j_,b.ZS,b.HH,b.b3,b.DD,b.tH,b.Dc,b.ut,b.Kc,b.zv,q.op,A.gH,A.bq,ee.VW,$e.N,M.I9],styles:['.role-content-form[_ngcontent-%COMP%]{position:relative}.dialog-header__modify[_ngcontent-%COMP%]{background:#fff;display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap!important;gap:12px;padding:12px 20px;position:sticky;top:0;z-index:1000!important;border-bottom:1px solid #e8e8e8}.footer-main[_ngcontent-%COMP%]{position:sticky;bottom:0;z-index:1000!important;padding:1.25rem 0;border-top:1px solid #e8e8e8}.dialog-title[_ngcontent-%COMP%]{display:flex;align-items:center;flex:1 1 auto;min-width:0;gap:12px;flex-wrap:nowrap!important}.dialog-header_title[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:1.25rem;font-weight:600}.header-status-wrapper[_ngcontent-%COMP%]{flex:0 0 auto;margin-left:4px}.custom-switch-container[_ngcontent-%COMP%]{white-space:nowrap}.action-btns[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:8px}.form-body-wrapper[_ngcontent-%COMP%]{background-color:#f4f6f8;padding:20px}.vts-card[_ngcontent-%COMP%]{background-color:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:20px;margin-bottom:1.25rem;box-shadow:0 1px 2px #00000008}.vts-card-header[_ngcontent-%COMP%]{display:flex;align-items:center}.card-title[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:#262626}vts-form-item[_ngcontent-%COMP%]{margin-bottom:1rem!important;width:100%}.count-container__modify[_ngcontent-%COMP%]{padding:8px 0 10px}vts-divider[_ngcontent-%COMP%]{margin:0!important}.userTbl_clickToAdd[_ngcontent-%COMP%]{cursor:pointer;max-width:11rem;margin-left:1.75rem}.block-header[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:600}.block-header__second[_ngcontent-%COMP%]{margin-left:2rem;margin-top:.5rem;font-size:1rem}.block-header__second-divider[_ngcontent-%COMP%]{height:1rem;padding:0!important;margin:0!important;border-top:2px solid rgb(207 200 200 / 96%)!important}[_nghost-%COMP%] .vts-tree .vts-tree-treenode:hover:not(.vts-tree .vts-tree-treenode-selected){background:#e7e7e7!important}[_nghost-%COMP%] .vts-tree .vts-tree-treenode:focus, .vts-tree[_ngcontent-%COMP%] .vts-tree-treenode[_ngcontent-%COMP%]:focus-visible{box-shadow:unset!important}[_nghost-%COMP%] .vts-tree.vts-tree-md .vts-tree-treenode{min-height:40px;border-bottom:1px solid #e5dddd}[_nghost-%COMP%] .vts-tree.vts-tree-md .vts-tree-treenode .vts-tree-custom-icon{font-size:1.3rem;position:relative;top:-2px}[_nghost-%COMP%] #inputBoxId__Modify>span{margin:unset!important}[_nghost-%COMP%] .vts-tree.vts-tree-md .vts-tree-treenode .vts-tree-node-content-wrapper{text-overflow:ellipsis;text-wrap:initial;max-width:70rem;overflow:hidden;font-size:16px;padding:8px 0}[_nghost-%COMP%] .vts-form-item .vts-form-item-control .vts-form-item-control-input-content>*{flex:unset;border-radius:5px}[_nghost-%COMP%] .vts-select-multiple.vts-select-sm .vts-select-selection-item{height:30px;line-height:20px;margin-top:4px;margin-bottom:4px;text-align:center;display:flex;align-items:center}.mgl1dot5rem_mgr1dot5rem[_ngcontent-%COMP%]{margin-left:1.5rem;margin-right:1.5rem}.mgt1rem[_ngcontent-%COMP%]{margin-top:1rem}[_nghost-%COMP%] div.vts-table vts-table-title-footer.vts-table-footer:has(.btn-table-footer){padding-left:0;background:#fff!important}.scroll[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.custom-switch-container[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;
1min-width:200px}.custom-switch[_ngcontent-%COMP%]{position:relative;width:36px;height:20px;border-radius:24px;transition:background-color .3s ease;border:1px solid #E3E5E9FF;cursor:pointer}.switch-off[_ngcontent-%COMP%]{background-color:#e3e5e9}.switch-on[_ngcontent-%COMP%]{background-color:#b9000e;border-color:#b9000e}.switch-circle[_ngcontent-%COMP%]{position:absolute;top:1px;width:16px;height:16px;border-radius:50%;background-color:#fff;transition:left .3s ease;box-shadow:0 2px 4px #0003}.switch-off[_ngcontent-%COMP%] .switch-circle[_ngcontent-%COMP%]{left:1px}.switch-on[_ngcontent-%COMP%] .switch-circle[_ngcontent-%COMP%]{left:17px}.switch-label[_ngcontent-%COMP%]{font-size:14px;color:#262626;-webkit-user-select:none;user-select:none}.action-btn-right[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center;margin-top:.5rem}.add-btn-custom[_ngcontent-%COMP%]{color:#b9000e!important;padding:0;display:flex;align-items:center;font-size:16px!important}.add-btn-custom[_ngcontent-%COMP%] .btn-icon[_ngcontent-%COMP%]{font-size:1.24rem!important;margin-right:4px;position:relative}.add-btn-custom[_ngcontent-%COMP%]:hover{color:#b9000e!important;background:transparent!important}.block-title-large[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:600;color:#262626;margin-bottom:1.25rem;padding-bottom:.5rem}.textarea-wrapper[_ngcontent-%COMP%]{position:relative;width:100%}.char-counter[_ngcontent-%COMP%]{position:absolute;bottom:8px;right:12px;font-size:12px;color:#8c8c8c;background-color:#fff;padding-left:4px;pointer-events:none}[_nghost-%COMP%] .vts-input-textarea-clear-icon{right:12px!important;top:12px!important}[_nghost-%COMP%] .vts-tree .vts-tree-node-content-wrapper{display:flex;align-items:center;width:100%}[_nghost-%COMP%] .vts-tree .vts-tree-icon__customize{display:none!important}.folder-title[_ngcontent-%COMP%]{font-weight:600;color:#262626;font-size:14px}.api-node[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;width:100%}.api-method[_ngcontent-%COMP%]{font-weight:600;font-size:13px;width:50px;text-align:left;flex-shrink:0}.api-method.get[_ngcontent-%COMP%]{color:#158b45}.api-method.post[_ngcontent-%COMP%]{color:#e6a23c}.api-method.put[_ngcontent-%COMP%]{color:#1890ff}.api-method.patch[_ngcontent-%COMP%]{color:#722ed1}.api-method.delete[_ngcontent-%COMP%]{color:#f5222d}.api-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.api-name[_ngcontent-%COMP%]{font-size:14px;color:#262626;font-weight:500;line-height:1.2}.api-url[_ngcontent-%COMP%]{font-size:13px;color:#8c8c8c;line-height:1.2}.custom-tree-node-wrapper[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;padding-right:8px}.custom-tree-node[_ngcontent-%COMP%]{display:flex;align-items:center;flex:1}.delete-action[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;border-radius:4px;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.delete-action[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:20px!important}.delete-action[_ngcontent-%COMP%]:hover{color:#da2626;border:1px solid #da2626;
1i{svg path{fill:currentColor!important}}}[_nghost-%COMP%] .folder-icon{margin-right:8px;font-size:16px;vertical-align:middle;position:relative;top:-1px;color:#262626!important}[_nghost-%COMP%] .folder-icon svg path{fill:#262626!important;stroke:#262626!important}.header-status-wrapper[_ngcontent-%COMP%]{margin-left:14px;display:flex;align-items:center}.header-status-wrapper[_ngcontent-%COMP%] .custom-switch-container[_ngcontent-%COMP%]{min-width:unset;gap:10px}.header-status-wrapper[_ngcontent-%COMP%] .switch-label[_ngcontent-%COMP%]{font-size:14px;font-weight:400;color:#595959}.card-header-flex[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.header-left[_ngcontent-%COMP%]{display:flex;align-items:center}.add-btn-custom[_ngcontent-%COMP%]{color:#da2626!important;padding:0;height:auto;display:flex;align-items:center;font-weight:500}.vts-card-icon[_ngcontent-%COMP%]{margin-right:8px;margin-bottom:0!important}.custom-user-select[_ngcontent-%COMP%]{padding:4px 8px!important;min-height:32px;display:flex;align-items:center;justify-content:space-between}.custom-user-select[_ngcontent-%COMP%] .drawer-btn-icon[_ngcontent-%COMP%] img.collapse-icon[_ngcontent-%COMP%]{width:16px!important;height:16px!important}.custom-user-select[_ngcontent-%COMP%] .drawer-btn-icon[_ngcontent-%COMP%]{padding:4px!important;height:24px;width:24px;display:flex;align-items:center;justify-content:center}[_nghost-%COMP%] .vts-tree .vts-tree-checkbox{margin-right:8px}[_nghost-%COMP%] .vts-tree .vts-tree-checkbox .vts-checkbox-inner{width:16px;height:16px;border-radius:4px;border:1px solid #d9d9d9;background:#fff}[_nghost-%COMP%] .vts-tree .vts-tree-checkbox-checked .vts-checkbox-inner{background:#da2626!important;border-color:#da2626!important}[_nghost-%COMP%] .vts-tree .vts-tree-checkbox-checked .vts-checkbox-inner:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg)}[_nghost-%COMP%] .vts-tree .vts-tree-checkbox-indeterminate .vts-checkbox-inner{background:#da2626!important;border-color:#da2626!important}[_nghost-%COMP%] .vts-tree .vts-tree-checkbox-indeterminate .vts-checkbox-inner:after{content:"";position:absolute;left:4px!important;top:1px!important;width:5px!important;height:9px!important;border:2px solid #fff!important;border-top:0!important;border-left:0!important;background:transparent!important;transform:rotate(45deg)!important}[_nghost-%COMP%] .vts-tree .vts-tree-checkbox-indeterminate .vts-checkbox-inner:before{display:none!important;content:none!important}.role-user-table-wrapper[_ngcontent-%COMP%]{width:100%;overflow-x:auto}[_nghost-%COMP%] .role-user-table{min-width:1150px}[_nghost-%COMP%] .role-user-table .vts-table-thead>tr>th.role-user-col-header{white-space:nowrap!important;word-break:normal!important;text-align:left;vertical-align:middle!important;font-weight:600}[_nghost-%COMP%] .role-user-table .vts-table-tbody>tr>td.role-user-cell{white-space:nowrap!important;vertical-align:middle!important}[_nghost-%COMP%] .role-user-table .vts-table-tbody>tr>td.role-user-action-cell{vertical-align:middle!important;text-align:center}.clear-btn[_ngcontent-%COMP%]{color:#5a6b84}.clear-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%], .clear-btn[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{color:#5a6b84}.clear-btn[_ngcontent-%COMP%], .clear-btn[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#5a6b84!important}.delete-btn[_ngcontent-%COMP%]{background:transparent!important;border:none!important;box-shadow:none!important;padding:0 8px!important}.delete-btn[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#5a6b84}.role-user-pagination[_ngcontent-%COMP%]{width:100%;margin-top:16px}.role-user-pagination[_ngcontent-%COMP%] .pagination-popup[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%}[_nghost-%COMP%] .role-user-pagination .vts-pagination-total-text{margin-right:auto!important;order:0}[_nghost-%COMP%] .role-user-pagination .vts-pagination-item, [_nghost-%COMP%] .role-user-pagination .vts-pagination-prev, [_nghost-%COMP%] .role-user-pagination .vts-pagination-next, [_nghost-%COMP%] .role-user-pagination .vts-pagination-options{order:1}.rangeTotal-container[_ngcontent-%COMP%]{position:static;font-size:14px;white-space:nowrap;color:#73777a}.row-deleted[_ngcontent-%COMP%]{background-color:#fef2f2!important}.row-deleted[_ngcontent-%COMP%] td[_ngcontent-%COMP%], .row-deleted[_ngcontent-%COMP%] .role-user-cell[_ngcontent-%COMP%], .row-deleted[_ngcontent-%COMP%] .role-user-cell[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#9ca3af!important}.delete-text[_ngcontent-%COMP%]{color:#e0282e;font-size:14px}.undo-action[_ngcontent-%COMP%]{cursor:pointer;color:#e0282e;display:flex;align-items:center;gap:6px;font-weight:500;&:hover{opacity:.8}}.undo-icon[_ngcontent-%COMP%]{font-size:18px!important;margin:0!important}
1[_nghost-%COMP%] .delete-btn i svg path{fill:currentColor!important}[_nghost-%COMP%] .vts-modal-footer{border-bottom:none!important}[_nghost-%COMP%]{display:block;height:100%}.role-content-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;box-sizing:border-box}.form-body-wrapper[_ngcontent-%COMP%]{flex:1;overflow-y:auto}.footer-main[_ngcontent-%COMP%]{flex-shrink:0}.row-checked[_ngcontent-%COMP%]{background-color:#d7d7d799!important}']})}}return a})();var Rt=m(43962),yt=m(545);function xt(a,d){if(1&a&&e.nrm(0,"vts-option",9),2&a){const t=d.$implicit;e.Y8G("vtsValue",t.appId)("vtsLabel",t.appName)}}function kt(a,d){1&a&&(e.j41(0,"b",10),e.EFF(1,"\u1ee8ng d\u1ee5ng:"),e.k0s())}function It(a,d){1&a&&(e.j41(0,"b",10),e.EFF(1,"Tr\u1ea1ng th\xe1i:"),e.k0s())}function Mt(a,d){if(1&a){const t=e.RV6();e.j41(0,"div",5)(1,"div",6)(2,"vts-select",7),e.nI1(3,"translate"),e.mxI("ngModelChange",function(n){e.eBV(t);const s=e.XpG();return e.DH7(s.applicationFilter,n)||(s.applicationFilter=n),e.Njj(n)}),e.bIt("ngModelChange",function(n){e.eBV(t);const s=e.XpG();return e.Njj(s.onChangeApplicationFilter(n))}),e.DNE(4,xt,1,2,"vts-option",8),e.k0s(),e.DNE(5,kt,2,0,"ng-template",null,1,e.C5r),e.k0s(),e.j41(7,"div",6)(8,"vts-select",7),e.nI1(9,"translate"),e.mxI("ngModelChange",function(n){e.eBV(t);const s=e.XpG();return e.DH7(s.statusFilter,n)||(s.statusFilter=n),e.Njj(n)}),e.bIt("ngModelChange",function(n){e.eBV(t);const s=e.XpG();return e.Njj(s.onChangeStatusFilter(n))}),e.nrm(10,"vts-option",9),e.nI1(11,"translate"),e.nrm(12,"vts-option",9),e.nI1(13,"translate"),e.k0s(),e.DNE(14,It,2,0,"ng-template",null,2,e.C5r),e.k0s()()}if(2&a){const t=e.sdS(6),i=e.sdS(15),n=e.XpG();e.R7$(2),e.R50("ngModel",n.applicationFilter),e.Y8G("vtsPrefix",t)("vtsPlaceHolder",e.bMT(3,11,"common.dropdown.all")),e.R7$(2),e.Y8G("ngForOf",n.appList),e.R7$(4),e.R50("ngModel",n.statusFilter),e.Y8G("vtsPrefix",i)("vtsPlaceHolder",e.bMT(9,13,"common.dropdown.all")),e.R7$(2),e.Y8G("vtsValue",0)("vtsLabel",e.bMT(11,15,"user-management.status.enable")),e.R7$(2),e.Y8G("vtsValue",1)("vtsLabel",e.bMT(13,17,"user-management.status.disable"))}}let Pt=(()=>{class a{constructor(t,i,n,s,o,r,l,c,p,_,S,g){this._translate=t,this._roleService=i,this._toastService=n,this._checkPermissionService=s,this._utils=o,this.menuService=r,this.router=l,this._appService=c,this._drawerService=p,this._dialogService=_,this._breadcrumbService=S,this._userService=g,this.loading=!1,this.DEFAULT_SORT={key:'tbl."lastModifiedDate"',direction:"DESC"},this.selectedTabIndex=0,this.sortParam=[],this.title="",this.haveViewChangingList=!1,this.haveRolePublicOrg=!1,this.canPublicOrg=!1,this.filterConfig={gridCols:{search:"span 4",moreFilter:"span 8"}},this.destroy$=new U.B,this.tableHeaders={order:this._translate.instant("common.table.order"),id:this._translate.instant("common.table.id"),roleName:this._translate.instant("user-role.roleName"),roleCode:this._translate.instant("user-role.roleCode"),application:this._translate.instant("user-management.info.application"),description:this._translate.instant("user-management.info.description"),numberOfUser:this._translate.instant("user-management.info.numberOfUser"),createdDate:this._translate.instant("user-management.info.creating-date"),action:this._translate.instant("common.table.action"),status:this._translate.instant("user-management.info.status")},this.statusFilter=-1,this.applicationFilter=-1,this.appList=[],this.showCreate=!1,this.showUpdate=!1,this.showDelete=!1,this.permissionActionKey=[h.fb6.create,h.fb6.update,h.fb6.delete,h.fb6.changeStatus],this.pagingParams={searchKey:"",pageIndex:1,pageSize:10,total:0,onChangePagingParams:(u,v)=>{switch(v){case"pageIndex":this.pagingParams.pageIndex=u;break;case"pageSize":this.pagingParams.pageSize=u;break;case"search":this.pagingParams.searchKey="string"==typeof u?u.trim():"",this.pagingParams.pageIndex=1}this.getDataFromServer({...this.currentState})},searchBoxConfig:{placeholder:"user-management.rolePlaceHolder",maxLength:100}},this.scroll={x:"1400px",y:null},this.cols={cols:[{title:this.tableHeaders.roleCode,useField:"roleCode",width:"200px"},{title:this.tableHeaders.roleName,useField:"roleName",width:"250px",minWidth:150,maxWidth:250,ellipsisOn:!0,noWrap:!1},{title:this.tableHeaders.application,useField:"applicationName",width:"250px",minWidth:150,maxWidth:250,ellipsisOn:!0,noWrap:!1},{title:this.tableHeaders.description,useField:"description",width:"250px",minWidth:150,maxWidth:250,noWrap:!1,ellipsisOn:!0},{title:this.tableHeaders.createdDate,useField:"createdDate",width:"150px",alignContent:"center",alignTitle:"center",ellipsisOn:!0}],onSort:(u,v)=>{this.onSortConverter(u,v)}},this.itemStatusConfig={statusKey:"isLock",useSwitchStatus:!0,actionKey:h.fb6.changeStatus,trueSwitchValue:0,stages:[{value:0,text:"user-management.status.enable",preset:"success"},{value:1,text:"user-management.status.disable",preset:"error"}]},this.itemActions={actions:[{icon:"edit:figma",eventName:h.fb6.update,type:"icon",text:"S\u1eeda"},{icon:"trash:figma",eventName:h.fb6.delete,type:"icon",text:"X\xf3a"}],onClick:(u,v)=>{this.handleActions(u,v)},fixedRight:!0},this.isLoading=!1,o.setProtableTitle(this.router,this.menuService,this.destroy$).subscribe(u=>{this.title=u||"user-role.title"})}ngOnInit(){this.haveViewChangingList=!0,this.haveRolePublicOrg=!0,this.checkActionPermission(),this.getDataFromServer({...this.currentState}),this.getAllApplication(),this.setBreadcrumbs()}setBreadcrumbs(){this._breadcrumbService.setBreadcrumbFromMenu()}checkActionPermission(){this._checkPermissionService.checkPermissionForActionByMethod(["POST","POST","DELETE","POST"],[`${h.X0Z.API_ROLE}/create-role`,`${h.X0Z.API_ROLE}/update-role-delta`,`${h.X0Z.API_ROLE}
1/{id}`,`${h.X0Z.API_ROLE}/change-status/{id}`]).subscribe(n=>{const s=n.data;this.showCreate=s[0],this.showUpdate=s[1],this.showDelete=s[2];const o=s[3],r={...this.itemActions,actions:[...this.itemActions.actions]};if(!this.showUpdate){const l=r.actions.findIndex(c=>c.eventName===h.fb6.update);-1!==l&&r.actions.splice(l,1)}if(!this.showDelete){const l=r.actions.findIndex(c=>c.eventName===h.fb6.delete);-1!==l&&r.actions.splice(l,1)}o||this.itemStatusConfig&&(this.itemStatusConfig.disableSwitch=!0),this.itemActions=r})}getDataFromServer(t,i){this.loading=!0,this.currentState=t||{};const n={...this.currentState,keyword:"string"==typeof this.pagingParams.searchKey?this.pagingParams.searchKey.trim():""};Object.keys(n).forEach(s=>{(null==n[s]||""===n[s])&&delete n[s]}),this._roleService.getRoleSortMulti(this.pagingParams.pageIndex-1,this.pagingParams.pageSize,this.sortParam,n).subscribe({next:s=>{if(Math.ceil(this.pagingParams.total/this.pagingParams.pageSize)<=this.pagingParams.pageIndex-1&&(!s.body.data||!s.body.data.length)&&1!=this.pagingParams.pageIndex)return this.pagingParams.pageIndex=Math.ceil(this.pagingParams.total/this.pagingParams.pageSize),void this.reloadTableWithCurrentParams();this.data=s.body.data.map(o=>({...o,applicationId:o.applicationId,applicationName:o.applicationName??"--",numberOfUserStr:o.numberOfUser+" t\xe0i kho\u1ea3n",createdDate:this._utils.convertDateStringToDateWithSlashAndDayFirst(o.createdDate),lastModifiedDate:this._utils.convertDateStringToDateWithSlashAndDayFirst(o.lastModifiedDate)})),this.scroll=this.setScrollY(48,this.pagingParams.pageSize),this.tabGroupConfig={tabProperty:"status",tabValueConfig:[{tabTitle:this._translate.instant("user-management.status.all"),tabValue:"all",total:s.body.total,conditionParams:{}},{tabTitle:this._translate.instant("user-management.tabEnable"),tabValue:"active",total:s.body.activeTotal,conditionParams:{isLock:0}},{tabTitle:this._translate.instant("user-management.tabUnable"),tabValue:"inactive",total:s.body.inactiveTotal,conditionParams:{isLock:1}}],hasDeleteSelected:!0,onChangeTab:o=>{this.pagingParams.pageIndex=1,this.onChangeTabFilter(o)}},this.pagingParams.total=this.tabGroupConfig.tabValueConfig[this.selectedTabIndex].total,i&&this._toastService.success("","Danh s\xe1ch vai tr\xf2 \u0111\xe3 \u0111\u01b0\u1ee3c l\xe0m m\u1edbi th\xe0nh c\xf4ng"),this.loading=!1},error:()=>{this.data=[];const s=i?"L\xe0m m\u1edbi danh s\xe1ch vai tr\xf2 th\u1ea5t b\u1ea1i":this._translate.instant("user-role.message.errorLoadData");this._toastService.error("",s),this.loading=!1},complete:()=>{this.loading=!1}})}getAllApplication(){this._userService.getPermissionAuthor().subscribe({next:t=>{const n=(t&&t.body?t.body:t)?.detail??[],s=new Set;this.appList=(n||[]).filter(o=>{const r=String(o.appId);return!s.has(r)&&(s.add(r),!0)})},error:()=>{this.appList=[]}})}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}onSortConverter(t,i){switch(i){case"roleCode":i='tbl."roleCode"';break;case"roleName":i='tbl."roleName"';break;case"description":i='tbl."description"';break;case"numberOfUserStr":i='tbl."numberOfUser"';break;case"createdDate":i='tbl."createdDate"';break;default:i='tbl."lastModifiedDate"'}this.sortParam=this.sortParam.filter(s=>""!==s.key&&'tbl."lastModifiedDate"'!==s.key),t?this.sortParam.push({key:"",direction:"ascend"===t?"ASC":"DESC"}):0===this.sortParam.length&&this.sortParam.push(this.DEFAULT_SORT),this.cols={...this.cols},this.getDataFromServer({...this.currentState})}onChangeTabFilter(t){this.selectedTabIndex=t,this.pagingParams.pageIndex=1,this.currentState={...this.currentState,...this.tabGroupConfig.tabValueConfig[this.selectedTabIndex].conditionParams},0===t&&delete this.currentState.isLock,this.getDataFromServer(this.currentState,!1)}handleActions(t,i){switch(t){case h.fb6.create:this.showCreate?this.createRole():this._toastService.warning("","B\u1ea1n kh\xf4ng c\xf3 quy\u1ec1n th\u1ef1c hi\u1ec7n ch\u1ee9c n\u0103ng n\xe0y.");break;case h.fb6.view:this.viewRoleDetail(i);break;case h.fb6.update:if(1===i.isLock){this._toastService.warning("",this._translate.instant("Vai tr\xf2 n\xe0y \u0111ang \u1edf tr\u1ea1ng th\xe1i kh\xf3a n\xean kh\xf4ng th\u1ec3 ch\u1ec9nh s\u1eeda ho\u1eb7c x\xf3a."));break}this.updateRole(i.id);break;case h.fb6.changeStatus:this.changeRoleStatus(i);break;case h.fb6.delete:this.deleteRole(i);break;case"deleteList":this.deleteListRole(Array.from(i))}}createRole(){const t=this._drawerService.create({vtsClosable:!1,vtsZIndex:1e3,vtsWidth:1e3,vtsContent:Y,vtsMask:!0,vtsOnCancel:()=>new Promise(i=>{const n=t.getContentComponent();n&&n.closeDialog()}
1),vtsContentParams:{data:{vtsTitle:"user-role.roleCreated",vtsHeader:this.tableHeaders,data:{},onClose:i=>{i&&(i==h.h87.TYPE_DIALOG.NEW||i==h.h87.TYPE_DIALOG.CREATE_ANOTHER)&&this.reloadTableWithCurrentParams(),i!=h.h87.TYPE_DIALOG.CREATE_ANOTHER&&t.close()}}}})}viewRoleDetail(t){this.isLoading||(this.isLoading=!0,(0,X.of)(t).subscribe({next:i=>{const n=this._drawerService.create({vtsClosable:!1,vtsZIndex:1e3,vtsWidth:1e3,vtsContent:Rt.Z,vtsMask:!0,vtsContentParams:{showDelete:this.showDelete,showUpdate:this.showUpdate,data:{vtsTitle:"Th\xf4ng tin v\u1ec1 vai tr\xf2 "+i?.item?.roleName,vtsHeader:this.tableHeaders,data:i,onClose:s=>{s&&(s==h.h87.TYPE_DIALOG.NEW||s==h.h87.TYPE_DIALOG.CREATE_ANOTHER)&&this.reloadTableWithCurrentParams(),s!=h.h87.TYPE_DIALOG.CREATE_ANOTHER&&n.close(),this.reloadTableWithCurrentParams(),this.isLoading=!1},vtsOptionConfig:{edit:this.permissionActionKey.includes(h.fb6.update)?{label:"common.action.update",onClick:()=>{if(i){if(1===(i.item?i.item.isLock:i.isLock))return void this._toastService.warning("",this._translate.instant("Vai tr\xf2 n\xe0y \u0111ang \u1edf tr\u1ea1ng th\xe1i kh\xf3a n\xean kh\xf4ng th\u1ec3 ch\u1ec9nh s\u1eeda ho\u1eb7c x\xf3a."));this.updateRole(i.item.id,n)}}}:void 0,status:this.permissionActionKey.includes(h.fb6.changeStatus)?{onClick:()=>{this.changeRoleStatus(i.item??i)},value:0===(i.item?i.item.isLock:i.isLock)}:void 0,delete:this.permissionActionKey.includes(h.fb6.delete)?{onClick:()=>{(i.id||i?.item?.id)&&this.deleteRole(i)}}:void 0}}}});n.afterClose.subscribe(s=>{this.isLoading=!1})},error:()=>{this._toastService.error("",this._translate.instant("user-role.message.errorLoadData")),this.isLoading=!1}}))}updateRole(t,i){this._roleService.getRoleById(t).subscribe({next:n=>{const s=this._drawerService.create({vtsClosable:!1,vtsZIndex:1e3,vtsWidth:1e3,vtsContent:Y,vtsMask:!0,vtsOnCancel:()=>new Promise(o=>{const r=s.getContentComponent();r&&r.closeDialog()}),vtsContentParams:{data:{vtsTitle:"user-role.roleUpdate",vtsHeader:this.tableHeaders,data:n,onClose:o=>{if(i){const r=i.getContentComponent();r&&r.reload(),s.close()}else o&&o==h.h87.TYPE_DIALOG.UPDATE&&this.reloadTableWithCurrentParams(),s.close()}}}})},error:n=>{this._toastService.error("",this._translate.instant(n.error&&400==n.status?"common.error.message."+n.error.code:"user-role.message.errorLoadData"))}})}changeRoleStatus(t){const i=t?.item??t;if(!i?.id)return void this._toastService.error("","Kh\xf4ng t\xecm th\u1ea5y vai tr\xf2 \u0111\u1ec3 chuy\u1ec3n tr\u1ea1ng th\xe1i");const n=1===i.isLock,s=`<b>${t.roleCode} - ${t.roleName}</b>`,o={title:n?"X\xe1c nh\u1eadn m\u1edf kh\xf3a vai tr\xf2":"X\xe1c nh\u1eadn kh\xf3a vai tr\xf2",content:n?`\u0110\u1ed3ng ch\xed vui l\xf2ng x\xe1c nh\u1eadn ch\u1eafc ch\u1eafn mu\u1ed1n m\u1edf kh\xf3a vai tr\xf2 ${s}`:`\u0110\u1ed3ng ch\xed vui l\xf2ng x\xe1c nh\u1eadn ch\u1eafc ch\u1eafn mu\u1ed1n kh\xf3a vai tr\xf2 ${s}`,btnConfirm:n?"M\u1edf kh\xf3a":"Kh\xf3a",iconConfirm:n?"unlock:figma":"lock:figma"};this._dialogService.confirmMessage(o.content,void 0,void 0,{},o.title,{text:o.btnConfirm,icon:o.iconConfirm},{text:"common.action.back",icon:"Back:custom",class:"cancel-btn-text"}).afterClose.subscribe(l=>{l===h.h87.RESULT_CLOSE_DIALOG.CONFIRM?this._roleService.changeStatusRole(i.id).subscribe({next:()=>{this._toastService.success("",n?"M\u1edf kh\xf3a vai tr\xf2 th\xe0nh c\xf4ng":"Kh\xf3a vai tr\xf2 th\xe0nh c\xf4ng"),this.reloadTableWithCurrentParams()},error:()=>{this._toastService.error("",n?"M\u1edf kh\xf3a vai tr\xf2 th\u1ea5t b\u1ea1i":"Kh\xf3a vai tr\xf2 th\u1ea5t b\u1ea1i"),this.reloadTableWithCurrentParams()}}):this.reloadTableWithCurrentParams()})}deleteRole(t){let i=t?.item??t;const n=t.id||t.item?.id,s=t.roleName||t.item?.roleName||"",o=t.roleCode||t.item?.roleCode||"";let r=Number(i?.numberOfUser??0);n?r>0?this._toastService.error("","Kh\xf4ng th\u1ec3 x\xf3a vai tr\xf2 \u0111\xe3 g\xe1n cho ng\u01b0\u1eddi d\xf9ng. Vui l\xf2ng ki\u1ec3m tra l\u1ea1i."):this._dialogService.confirmMessage("\u0110\u1ed3ng ch\xed vui l\xf2ng x\xe1c nh\u1eadn ch\u1eafc ch\u1eafn mu\u1ed1n xo\xe1 vai <br>tr\xf2 <strong>"+s+"-"+o+"</strong>",void 0,void 0,{name:s,id:o},"user-role.delete-one-role-title",{text:"common.action.delete",icon:"trash:figma"},{text:"common.action.back",icon:"Back:custom",class:"cancel-btn-text"}).afterClose.subscribe(c=>{c==h.h87.RESULT_CLOSE_DIALOG.CONFIRM&&this._roleService.deleteRoleById(n).subscribe({next:()=>{this._toastService.success("",this._translate.instant("user-role.message.deleted")),this.refreshCheckedIdCounter([n]),this.reloadTableWithCurrentParam
1s()},error:p=>{p.error&&p.error.code==h.OQ8.UNABLE_TO_DELETE?this._toastService.error("","Kh\xf4ng th\u1ec3 x\xf3a. Vai tr\xf2 \u0111\xe3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng"):!p.error||"role.has.assigned.user"!=p.error.message&&"role.has.assigned.user"!=p.error.code?this._toastService.error("",this._translate.instant("user-role.message.errorDeletion")):this._toastService.warning("","Kh\xf4ng th\u1ec3 x\xf3a vai tr\xf2 \u0111\xe3 g\xe1n cho ng\u01b0\u1eddi d\xf9ng. Vui l\xf2ng ki\u1ec3m tra l\u1ea1i.")}})}):this._toastService.error("","Kh\xf4ng t\xecm th\u1ea5y vai tr\xf2 \u0111\u1ec3 x\xf3a.")}deleteListRole(t){this._dialogService.confirmMessageDelete("H\xe0nh \u0111\u1ed9ng n\xe0y kh\xf4ng th\u1ec3 ho\xe0n t\xe1c. B\u1ea1n c\xf3 ch\u1eafc ch\u1eafn x\xf3a v\u0129nh vi\u1ec5n <strong>"+t.length+"</strong> vai tr\xf2 \u0111\xe3 ch\u1ecdn?",{count:t.length},void 0).afterClose.subscribe(n=>{if(n==h.h87.RESULT_CLOSE_DIALOG.CONFIRM){const s=t.map(o=>o.toString());this._roleService.deleteListRole(s).subscribe({next:()=>{this._toastService.success("",this._translate.instant("user-role.message.deleted")),this.refreshCheckedIdCounter(t),this.reloadTableWithCurrentParams()},error:o=>{this._toastService.error("",o.error&&o.error.code==h.OQ8.UNABLE_TO_DELETE?"Kh\xf4ng th\u1ec3 x\xf3a. Vai tr\xf2 \u0111\xe3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng":this._translate.instant(o.error&&400==o.status?"common.error.message."+o.error.code:"user-role.message.errorDeleti
1on"))}})}})}reloadTable(){this.pagingParams.pageIndex=1,this.pagingParams.searchKey="",this.sortParam=[],this.applicationFilter=-1,this.statusFilter=-1,this.currentState=this.tabGroupConfig.tabValueConfig[this.selectedTabIndex].conditionParams,delete this.currentState.applicationId,delete this.currentState.isLock,this.getDataFromServer({...this.currentState},!0)}refreshCheckedIdCounter(t){this.itemActions={...this.itemActions,isSucceed:!0,changedSetCheckedId:t}}reloadTableWithCurrentParams(){this.getDataFromServer({...this.currentState})}onChangeStatusFilter(t){this.statusFilter=t??null,-1===t||null==t?delete this.currentState.isLock:this.currentState.isLock=t,this.getDataFromServer({...this.currentState})}onChangeApplicationFilter(t){this.applicationFilter=t??null,-1===t||null==t?delete this.currentState.applicationId:this.currentState.applicationId=t,this.getDataFromServer({...this.currentState})}setScrollY(t,i,n=10){return i>n?{x:null,y:t*n+"px"}:{x:null,y:null}}static{this.\u0275fac=function(i){return new(i||a)(e.rXU(x.c$),e.rXU(h.WKx),e.rXU(F.Mo),e.rXU(h.X4S),e.rXU(h.$Db),e.rXU(h.$1h),e.rXU(yt.Ix),e.rXU(h.mit),e.rXU(D.wJ),e.rXU(N.o3),e.rXU(h.BZs),e.rXU(h.DLc))}}static{this.\u0275cmp=e.VBU({type:a,selectors:[["app-role"]],decls:4,vars:21,consts:[["filterTemplate",""],["applicationPrefixTemp",""],["statusPrefixTemp",""],[1,"card-container",2,"background","white","border-radius","1rem"],[3,"onClickDataItem","onReloadTable","loading","vtsTableTitle","vtsShowTableConfig","vtsScroll","vtsCreatable","data","statusOptions","columns","filterConfig","pagingParams","searchKey","actionOptions","vtsTableLayout","vtsShowCheckbox","vtsCreateIcon","vtsExportableButton","vtsShowDeleteSelected","vtsSearchImmediate","showAdvancedSearch","moreFilterRef","rowHeight"],[2,"grid-column","span 12","display","flex","gap","16px","min-width","0"],[2,"flex","1","min-width","0"],["vtsSize","md","vtsShowSearch","","vtsAllowClear","",2,"width","100%",3,"ngModelChange","ngModel","vtsPrefix","vtsPlaceHolder"],[3,"vtsValue","vtsLabel",4,"ngFor","ngForOf"],[3,"vtsValue","vtsLabel"],[2,"white-space","nowrap"]],template:function(i,n){if(1&i){const s=e.RV6();e.j41(0,"vts-card",3)(1,"vts-custom-pro-table",4),e.bIt("onClickDataItem",function(r){return e.eBV(s),e.Njj(n.viewRoleDetail(r))})("onReloadTable",function(){return e.eBV(s),e.Njj(n.reloadTable())}),e.k0s()(),e.DNE(2,Mt,16,19,"ng-template",null,0,e.C5r)}if(2&i){const s=e.sdS(3);e.R7$(),e.Y8G("loading",n.loading)("vtsTableTitle",n.title)("vtsShowTableConfig",!1)("vtsScroll",n.scroll)("vtsCreatable",n.showCreate)("data",n.data)("statusOptions",n.itemStatusConfig)("columns",n.cols)("filterConfig",n.filterConfig)("pagingParams",n.pagingParams)("searchKey",n.pagingParams.searchKey)("actionOptions",n.itemActions)("vtsTableLayout","auto")("vtsShowCheckbox",!1)("vtsCreateIcon","AddFolder:custom")("vtsExportableButton",!1)("vtsShowDeleteSelected",!1)("vtsSearchImmediate",!0)("showAdvancedSearch",!1)("moreFilterRef",s)("rowHeight","48px")}},dependencies:[H.F_,M.IY,D.Ji,I.B1,f.YN,f.BC,f.vS,I.mw,x.D9,T.MD,T.Sq],styles:[".cancel-btn-text[_ngcontent-%COMP%]{color:#b9000e}[_nghost-%COMP%]{display:block}.app-container[_nghost-%COMP%], .app-container [_nghost-%COMP%]{display:block;margin:-20px -24px 0}[_nghost-%COMP%] .vts-table-tbody>tr>td:nth-child(3){white-space:nowrap!important}[_nghost-%COMP%] .vts-table-content table{table-layout:auto!important}[_nghost-%COMP%] .action-btns{display:flex;justify-content:center;align-items:center}"]})}}return a})()}}]);
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.