PageSourceSearch

https://dcs.vn/2330.0c0ae1536796b268.js

js dcs.vn collected 2026-09-24 21:34:56 UTC 58,187 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkmyapp=self.webpackChunkmyapp||[]).push([[2330],{24034:(E,I,s)=>{s.d(I,{T:()=>x,V:()=>C});var g=s(15385),t=s(23135);let C=(()=>{class u{constructor(){this.changingDefaultPassUserId=void 0}setUserId(c){this.changingDefaultPassUserId=c}removeUserId(){this.changingDefaultPassUserId=void 0,this.removeTempToken()}removeTempToken(){g.VGQ.setTempToken("")}static{this.\u0275fac=function(r){return new(r||u)}}static{this.\u0275prov=t.jDH({token:u,factory:u.\u0275fac,providedIn:"root"})}}return u})();var w=s(54886);const k="lastSsoProvider",y="vneid_pending_app";let x=(()=>{class u{constructor(c,r,p,m){this.client=c,this.serverUrl=r,this.ssoConfig=p,this.authService=m}login(c){return this.client.obserseBody().setBaseUrl(this.serverUrl.ccudAuth).post(g.AJP.API_ADMIN_LOGIN,c)}loginWithCredentials(c,r){return this.login({username:c,password:r})}ssoLoginRedirect(c){switch(c){case g.bBV.VPTW:{const r=this.ssoConfig?.vptw;if(!r)return!1;const p=new URL(r.loginUrl),m=new URL(window.location.origin+window.location.pathname.replace("/login","/sso-callback"));return window.location.search.replace(/^\?/,"").split("&").filter(Boolean).forEach(_=>{const[b,P]=_.split("=");m.searchParams.set(decodeURIComponent(b),decodeURIComponent(P??""))}),p.searchParams.set("service",m.toString()),p.searchParams.set("appCode",r.appCode),this.rememberSsoProvider(g.bBV.VPTW),window.location.href=p.toString(),!0}case g.bBV.VNEID:{const r=this.ssoConfig?.vneid;if(!r)return!1;const p=new URL(r.authorizeUrl);let m;return m=this.ssoConfig?.vneid?.isUat?window.location.origin+window.location.pathname.replace("/login","/sso-callback/vneid"):window.location.origin+window.location.pathname.replace("/auth/login","/api/Connect/VNeID/User/login"),p.searchParams.set("response_type","code"),p.searchParams.set("client_id",r.clientId),p.searchParams.set("scope",r.scope),p.searchParams.set("redirect_uri",m),this.rememberSsoProvider(g.bBV.VNEID),this.stashVneidPendingApp(),window.location.href=this.ssoConfig?.vneid?.viaGatewayToVneid?this.getRedirectVneidHref():p.toString(),!0}default:return!1}}getRedirectVneidHref(){const r="/v1.0/id/api/redirect-vneid";return`${this.serverUrl.auth.replace(/\/$/,"")}${r.startsWith("/")?r:`/${r}`}`}ssoLogoutRedirect(c){const r=c??`${window.location.origin}/auth/login`,p=this.getLastSsoProvider(),m=localStorage.getItem("ccud_recent_apps");switch(g.VGQ.clear(),localStorage.clear(),sessionStorage.clear(),m&&localStorage.setItem("ccud_recent_apps",m),this.authService.userLogout$.next(),p){case g.bBV.VPTW:{const _=this.ssoConfig?.vptw?.logoutUrl;if(!_)return!1;const b=encodeURIComponent(r);return window.location.href=`${_}?service=${b}`,!0}case g.bBV.VNEID:{const _=this.ssoConfig?.vneid;if(!_?.logoutUrl||!_.clientId)return!1;const b=new URL(_.viaGatewayToVneid?_.logoutUrlViaGateway:_.logoutUrl);return b.searchParams.set("client_id",_.viaGatewayToVneid?_.clientIdViaGateway:_.clientId),b.searchParams.set("redirect_uri",r),window.location.href=b.toString(),!0}default:return!1}}exchangeVptwToken(c,r){const p={code:c,redirectUri:r};return this.client.obserseBody().setBaseUrl(this.serverUrl.ccudCore).post(g.AJP.API_SSO_LOGIN_VPTW,p)}vptwLogout(){return this.client.obserseBody().setBaseUrl(this.serverUrl.ccudCore).get(g.AJP.API_SSO_LOGOUT_VPTW)}exchangeVNeIDToken(c,r,p){const m={code:c,redirectUri:r};return p&&(m.encryptKey=p),this.client.obserseBody().setBaseUrl(this.serverUrl.ccudCore).post(g.AJP.API_SSO_LOGIN_VNEID,m)}exchangeVNeIDTokenViaGateway(c,r){const p={code:c};return r&&(p.encryptKey=r),this.client.obserseBody().setBaseUrl(this.serverUrl.auth).post("/v1.0/id/api/vneid-token-via-gateway",p)}vneidLogout(){return this.client.obserseBody().setBaseUrl(this.serverUrl.ccudCore).get(g.AJP.API_SSO_LOGOUT_VNEID)}rememberSsoProvider(c){g.VGQ.set(k,c)}getLastSsoProvider(){return g.VGQ.get(k)===g.bBV.VNEID?g.bBV.VNEID:g.bBV.VPTW}stashVneidPendingApp(){const c=new URLSearchParams(window.location.search),r=c.get("app_code"),p=c.get("app_url");r||p?sessionStorage.setItem(y,JSON.stringify({appCode:r,appUrl:p})):sessionStorage.removeItem(y)}consumeVneidPendingApp(){const c=sessionStorage.getItem(y);if(sessionStorage.removeItem(y),!c)return{appCode:null,appUrl:null};try{const r=JSON.parse(c);return{appCode:r.appCode??null,appUrl:r.appUrl??null}}catch{return{appCode:null,appUrl:null}}}static{this.\u0275fac=function(r){return new(r||u)(t.KVO(w.eo),t.KVO(g.UBk),t.KVO(g.H8t,8),t.KVO(g.uRZ))}}static{this.\u0275prov=t.jDH({token:u,factory:u.\u0275fac,providedIn:"root"})}}return u})()},72330:(E,I,s)=>{s.r(I),s.d(I,{CoreDashboardComponent:()=>ft});var g=s(98231),t=s(23135),C=s(90695),w=s(44025),k=s(70159),y=s(28113),x=s(86570),u=s(1578),V=s(45950),c=s(15941),r=s(62794),p=s(98101),m=s(34226),_=s(44267),b=s(27
1720),P=s(8077),T=s(2765);const N=()=>({padding:0});function U(o,l){1&o&&(t.j41(0,"span",15),t.nrm(1,"i",16),t.k0s())}function B(o,l){1&o&&(t.j41(0,"div",17)(1,"div",18)(2,"h2",19),t.EFF(3," T\xf9y ch\u1ec9nh hi\u1ec3n th\u1ecb \u1ee9ng d\u1ee5ng "),t.k0s()()())}function j(o,l){if(1&o){const e=t.RV6();t.j41(0,"span",22),t.bIt("click",function(){t.eBV(e);const i=t.XpG(2);return t.Njj(i.clearSearch())}),t.k0s()}}function G(o,l){if(1&o&&(t.DNE(0,j,1,0,"span",20),t.nrm(1,"i",21)),2&o){const e=t.XpG();t.Y8G("ngIf",e.searchKeyword)}}function F(o,l){1&o&&(t.j41(0,"div",23),t.EFF(1," Kh\xf4ng c\xf3 d\u1eef li\u1ec7u "),t.k0s())}function R(o,l){1&o&&t.nrm(0,"div",38)}function $(o,l){if(1&o){const e=t.RV6();t.j41(0,"img",39),t.bIt("error",function(){t.eBV(e);const i=t.XpG().$implicit,a=t.XpG(2);return t.Njj(a.handleIconError(i))}),t.k0s()}if(2&o){const e=t.XpG().$implicit;t.Y8G("src",e.iconUrl,t.B4B)("alt",e.name)}}function L(o,l){1&o&&t.nrm(0,"i",40)}function H(o,l){if(1&o){const e=t.RV6();t.j41(0,"div",26),t.DNE(1,R,1,0,"div",27),t.j41(2,"div",28)(3,"div",29)(4,"label",30)(5,"div",31)(6,"div",32),t.DNE(7,$,1,2,"img",33)(8,L,1,0,"ng-template",null,3,t.C5r),t.k0s(),t.j41(10,"div",34)(11,"p",35),t.EFF(12),t.k0s()()(),t.j41(13,"div",36)(14,"label",37),t.mxI("ngModelChange",function(i){const a=t.eBV(e).$implicit;return t.DH7(a.selected,i)||(a.selected=i),t.Njj(i)}),t.k0s()()()()()()}if(2&o){const e=l.$implicit,n=t.sdS(9),i=t.XpG(2);t.Y8G("cdkDragDisabled",i.isDragDisabled),t.R7$(2),t.AVh("settings-modal__card--selected",e.selected),t.R7$(5),t.Y8G("ngIf",e.iconUrl)("ngIfElse",n),t.R7$(5),t.JRh(e.name),t.R7$(2),t.R50("ngModel",e.selected)}}function Y(o,l){if(1&o){const e=t.RV6();t.j41(0,"div",24),t.bIt("cdkDropListDropped",function(i){t.eBV(e);const a=t.XpG();return t.Njj(a.onDrop(i))}),t.DNE(1,H,15,7,"div",25),t.k0s()}if(2&o){const e=t.XpG();t.Y8G("cdkDropListDisabled",e.isDragDisabled),t.R7$(),t.Y8G("ngForOf",e.filteredSettingsItems)("ngForTrackBy",e.trackByItemId)}}function X(o,l){if(1&o){const e=t.RV6();t.j41(0,"div",41)(1,"button",42),t.bIt("click",function(){t.eBV(e);const i=t.XpG();return t.Njj(i.handleCancel())}),t.nrm(2,"i",43),t.j41(3,"span"),t.EFF(4,"Quay l\u1ea1i"),t.k0s()(),t.j41(5,"button",42),t.bIt("click",function(){t.eBV(e);const i=t.XpG();return t.Njj(i.resetToDefault())}),t.nrm(6,"i",44),t.j41(7,"span"),t.EFF(8,"Ph\u1ee5c h\u1ed3i m\u1eb7c \u0111\u1ecbnh"),t.k0s()(),t.j41(9,"button",45),t.bIt("click",function(){t.eBV(e);const i=t.XpG();return t.Njj(i.handleOk())}),t.nrm(10,"i",46),t.j41(11,"span"),t.EFF(12,"L\u01b0u c\xe0i \u0111\u1eb7t"),t.k0s()()()}}let K=(()=>{class o{constructor(){this.vtsVisible=!1,this.settingsItems=[],this.defaultItems=[],this.vtsVisibleChange=new t.bkB,this.settingsChange=new t.bkB,this.internalItems=[],this.searchKeyword=""}ngOnChanges(e){(e.settingsItems||e.vtsVisible)&&this.vtsVisible&&(this.internalItems=this.settingsItems.map(n=>({...n})),this.searchKeyword="")}get filteredSettingsItems(){const e=this.searchKeyword.trim().toLowerCase();return e?this.internalItems.filter(n=>n.name.toLowerCase().includes(e)||n.description.toLowerCase().includes(e)||n.appKey&&n.appKey.toLowerCase().includes(e)):this.internalItems}get isDragDisabled(){return this.searchKeyword.trim().length>0}onSearchChange(e){this.searchKeyword=(e||"").trim()}clearSearch(){this.searchKeyword=""}selectAll(){this.internalItems=this.internalItems.map(e=>({...e,selected:!0}))}clearAll(){this.internalItems=this.internalItems.map(e=>({...e,selected:!1}))}handleIconError(e){e.iconUrl=""}resetToDefault(){this.internalItems=this.sortItemsByName(this.defaultItems.length>0?this.defaultItems:this.settingsItems).map(n=>({...n,selected:!0}))}handleCancel(){this.blurActiveElement(),this.vtsVisibleChange.emit(!1)}handleOk(){this.settingsChange.emit([...this.internalItems]),this.blurActiveElement(),this.vtsVisibleChange.emit(!1)}handleVisibleChange(e){e||this.blurActiveElement(),this.vtsVisibleChange.emit(e)}onDrop(e){e.previousIndex!==e.currentIndex&&(0,p.HD)(this.internalItems,e.previousIndex,e.currentIndex)}trackByItemId(e,n){return n.id}
1sortItemsByName(e){return[...e].sort((n,i)=>n.name.localeCompare(i.name,"vi",{sensitivity:"base"}))}blurActiveElement(){typeof document>"u"||document.activeElement?.blur?.()}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=t.VBU({type:o,selectors:[["lib-dashboard-settings-modal"]],inputs:{vtsVisible:"vtsVisible",settingsItems:"settingsItems",defaultItems:"defaultItems"},outputs:{vtsVisibleChange:"vtsVisibleChange",settingsChange:"settingsChange"},features:[t.OA$],decls:21,vars:11,consts:[["closeIconTpl",""],["suffixIconSearch",""],["settingsFooterTpl",""],["settingsCardIconFallback",""],["vtsWidth","90vw","vtsCentered","","vtsClassName","standard-vts-modal",1,"settings-modal",3,"vtsVisibleChange","vtsOnCancel","vtsVisible","vtsFooter","vtsBodyStyle","vtsMaskClosable","vtsCloseIcon","vtsAutofocus"],["vtsModalTitle",""],[1,"settings-modal__description"],[1,"settings-modal__toolbar"],["vtsSize","md",3,"vtsSuffix"],["type","text","vts-input","","placeholder","T\xecm ki\u1ebfm \u1ee9ng d\u1ee5ng...","maxlength","255",3,"ngModelChange","ngModel"],[1,"settings-modal__actions"],["vts-button","","vtsType","default","vtsSize","md",1,"settings-modal__action-btn",3,"click"],[1,"settings-modal__body"],["style","padding: 32px; text-align: center; color: #8c8c8c;",4,"ngIf"],["class","settings-modal__grid","cdkDropList","","cdkDropListOrientation","mixed",3,"cdkDropListDisabled","cdkDropListDropped",4,"ngIf"],["vts-tooltip","","vtsTooltipTitle","\u0110\xf3ng",1,"cursor-pointer"],["vts-icon","","vtsType","Close:custom"],[1,"settings-modal__header"],[1,"settings-modal__header-text"],[1,"settings-modal__title"],["vts-icon","","vtsTheme","fill","vtsType","ClearDoutone:vts","class","settings-modal__search-clear","vts-tooltip","","vtsTooltipTitle","X\xf3a t\xecm ki\u1ebfm",3,"click",4,"ngIf"],["vts-icon","","vtsType","Search"],["vts-icon","","vtsTheme","fill","vtsType","ClearDoutone:vts","vts-tooltip","","vtsTooltipTitle","X\xf3a t\xecm ki\u1ebfm",1,"settings-modal__search-clear",3,"click"],[2,"padding","32px","text-align","center","color","#8c8c8c"],["cdkDropList","","cdkDropListOrientation","mixed",1,"settings-modal__grid",3,"cdkDropListDropped","cdkDropListDisabled"],["class","settings-modal__card-wrapper","cdkDrag","",3,"cdkDragDisabled",4,"ngFor","ngForOf","ngForTrackBy"],["cdkDrag","",1,"settings-modal__card-wrapper",3,"cdkDragDisabled"],["class","settings-modal__card-placeholder",4,"cdkDragPlaceholder"],[1,"settings-modal__card"],[1,"settings-modal__card-content"],[1,"settings-modal__card-row"],[1,"settings-modal__card-main"],[1,"settings-modal__card-icon-wrapper"],["class","settings-modal__card-icon",3,"src","alt","error",4,"ngIf","ngIfElse"],[1,"settings-modal__card-text"],[1,"settings-modal__card-title"],[1,"settings-modal__card-checkbox"],["vts-checkbox","",3,"ngModelChange","ngModel"],[1,"settings-modal__card-placeholder"],[1,"settings-modal__card-icon",3,"error","src","alt"],["vts-icon","","vtsType","AppstoreOutline:antd",1,"settings-modal__card-icon-fallback"],[1,"settings-modal__footer"],["vts-button","","vtsType","default","vtsSize","md",1,"settings-modal__footer-btn",3,"click"],["vts-icon","","vtsType","ArrowBack:custom"],["vts-icon","","vtsType","undo:figma"],["vts-button","","vtsType","primary","vtsSize","md",1,"settings-modal__footer-btn","settings-modal__footer-btn--primary",3,"click"],["vts-icon","","vtsType","PaperTick:custom"]],template:function(n,i){if(1&n){const a=t.RV6();t.j41(0,"vts-modal",4),t.mxI("vtsVisibleChange",function(v){return t.eBV(a),t.DH7(i.vtsVisible,v)||(i.vtsVisible=v),t.Njj(v)}),t.bIt("vtsOnCancel",function(){return t.eBV(a),t.Njj(i.handleCancel())})("vtsVisibleChange",function(v){return t.eBV(a),t.Njj(i.handleVisibleChange(v))}),t.DNE(1,U,2,0,"ng-template",null,0,t.C5r)(3,B,4,0,"ng-template",5),t.j41(4,"p",6),t.EFF(5," Ch\u1ecdn c\xe1c \u1ee9ng d\u1ee5ng b\u1ea1n mu\u1ed1n hi\u1ec3n th\u1ecb tr\xean trang ch\u1ee7 "),t.k0s(),t.j41(6,"div",7)(7,"vts-input-group",8)(8,"input",9),t.bIt("ngModelChange",function(v){return t.eBV(a),t.Njj(i.onSearchChange(v))}),t.k0s()(),t.DNE(9,G,2,1,"ng-template",null,1,t.C5r),t.j41(11,"div",10)(12,"button",11),t.bIt("click",function(){return t.eBV(a),t.Njj(i.selectAll())}),t.EFF(13," Ch\u1ecdn t\u1ea5t c\u1ea3 "),t.k0s(),t.j41(14,"button",11),t.bIt("click",function(){return t.eBV(a),t.Njj(i.clearAll())}),t.EFF(15," B\u1ecf ch\u1ecdn t\u1ea5t c\u1ea3 "),t.k0s()()(),t.j41(16,"div",12),t.DNE(17,F,2,0,"div",13)(18,Y,2,3,"div",14),t.k0s(),t.DNE(19,X,13,0,"ng-template",null,2,t.C5r),t.k0s()}
1if(2&n){const a=t.sdS(2),h=t.sdS(10),v=t.sdS(20);t.R50("vtsVisible",i.vtsVisible),t.Y8G("vtsFooter",v)("vtsBodyStyle",t.lJ4(10,N))("vtsMaskClosable",!1)("vtsCloseIcon",a)("vtsAutofocus",null),t.R7$(7),t.Y8G("vtsSuffix",h),t.R7$(),t.Y8G("ngModel",i.searchKeyword),t.R7$(9),t.Y8G("ngIf",0===i.filteredSettingsItems.length),t.R7$(),t.Y8G("ngIf",i.filteredSettingsItems.length>0)}},dependencies:[g.MD,g.Sq,g.bT,C.YN,C.me,C.BC,C.tU,C.vS,p.ad,p.O7,p.T1,p.EM,w.G,w.R$,T.T,x.dA,x.qb,b.RU,b.EV,b.YG,_.iO,_.fZ,_.eH,_.Ms,m.VW,m.Ex,P.BL,P.uC],styles:["[_nghost-%COMP%]{display:block}.settings-modal[_ngcontent-%COMP%]   .vts-modal[_ngcontent-%COMP%]{top:50%;transform:translateY(-50%);max-width:calc(100% - 2rem)}@media (min-width: 640px){.settings-modal[_ngcontent-%COMP%]   .vts-modal[_ngcontent-%COMP%]{width:90vw}}@media (min-width: 768px){.settings-modal[_ngcontent-%COMP%]   .vts-modal[_ngcontent-%COMP%]{width:85vw}}@media (min-width: 1024px){.settings-modal[_ngcontent-%COMP%]   .vts-modal[_ngcontent-%COMP%]{width:80vw}}@media (min-width: 1400px){.settings-modal[_ngcontent-%COMP%]   .vts-modal[_ngcontent-%COMP%]{max-width:1400px}}.settings-modal__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.settings-modal__header-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;text-align:left}.settings-modal__title[_ngcontent-%COMP%]{margin:0;font-size:20px;line-height:1.3;font-weight:var(--font-weight-semibold, 600)}.settings-modal__description[_ngcontent-%COMP%]{margin:0;font-size:.875rem;color:var(--vts-text-color-secondary, #6b7280)}.settings-modal__toolbar[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem;margin:16px 0}@media (min-width: 640px){.settings-modal__toolbar[_ngcontent-%COMP%]{flex-direction:row;align-items:center}}.settings-modal__search[_ngcontent-%COMP%]{position:relative;flex:1 1 auto;min-width:0}.settings-modal__search-icon[_ngcontent-%COMP%]{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:1rem;height:1rem;color:var(--vts-text-color-secondary, #9ca3af);pointer-events:none}.settings-modal__search-input[_ngcontent-%COMP%]{padding-left:2.25rem;padding-right:2.25rem;height:2.5rem;font-size:.875rem}.settings-modal__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;width:100%}@media (min-width: 640px){.settings-modal__actions[_ngcontent-%COMP%]{width:auto}}.settings-modal__action-btn[_ngcontent-%COMP%]{flex:1}@media (min-width: 640px){.settings-modal__action-btn[_ngcontent-%COMP%]{flex:0 0 auto}}.settings-modal__body[_ngcontent-%COMP%]{min-height:240px;max-height:60vh;overflow-y:auto}.settings-modal__search-clear[_ngcontent-%COMP%]{margin-right:8px;color:var(--vts-text-color-secondary, #8c8c8c);cursor:pointer}.settings-modal__search-clear[_ngcontent-%COMP%]:hover{color:var(--primary-color, #e4000f)}.settings-modal__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}@media (min-width: 640px){.settings-modal__grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.settings-modal__grid[_ngcontent-%COMP%]{grid-template-columns:repeat(3,minmax(0,1fr))}}.settings-modal__card-wrapper[_ngcontent-%COMP%]{cursor:grab;position:relative}.settings-modal__card-wrapper[_ngcontent-%COMP%]:active{cursor:grabbing}.settings-modal__card-placeholder[_ngcontent-%COMP%]{min-height:72px;background:color-mix(in srgb,var(--primary-color) 8%,transparent);border:2px dashed color-mix(in srgb,var(--primary-color) 40%,transparent);border-radius:.5rem;transition:transform .2s cubic-bezier(0,0,.2,1)}.settings-modal__card[_ngcontent-%COMP%]{border-radius:.5rem;border-left:4px solid var(--primary-color, #e4000f);border-top:1px solid var(--vts-border-color-split, #e5e7eb);border-right:1px solid var(--vts-border-color-split, #e5e7eb);border-bottom:1px solid var(--vts-border-color-split, #e5e7eb);background-color:#fff;transition:all .2s ease;box-shadow:0 1px 2px #0f172a0f;height:100%;position:relative;overflow:hidden;cursor:grab}.settings-modal__card--selected[_ngcontent-%COMP%]{border-left-color:var(--primary-color, #e4000f);background-color:#fff}.settings-modal__card[_ngcontent-%COMP%]:hover{box-shadow:0 2px 8px #00000014}.settings-modal__card-deselect[_ngcontent-%COMP%]{position:absolute;top:.25rem;right:.25rem;width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;color:var(--vts-text-color-secondary, #8c8c8c);padding:0;z-index:1;transition:all .2s ease}.settings-modal__card-deselect[_ngcontent-%COMP%]:hover{color:var(--vts-error-color, #e4000f);border-color:var(--vts-error-color, #e4000f);background-color:#e4000f0f}.settings-modal__card-checkbox[_ngcontent-%COMP%]{margin-left:auto;flex-shrink:0}.settings-modal__card-content[_ngcontent-%COMP%]{padding:1rem}.settings-modal__card-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem}.settings-modal__card-main[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.settings-modal__card-icon-wrapper[_ngcontent-%COMP%]{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.settings-modal__card-icon[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:contain}.settings-modal__card-icon-fallback[_ngcontent-%COMP%]{font-size:1.5rem;color:var(--primary-color, #e4000f)}.settings-modal__card-text[_ngcontent-%COMP%]{flex:1;min-width:0}.settings-modal__card-title[_ngcontent-%COMP%]{margin:0;font-weight:var(--font-weight-medium, 500);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.settings-modal__drag-handle[_ngcontent-%COMP%]{position:absolute;top:50%;right:.5rem;transform:translateY(-50%);width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;color:var(--vts-text-color-secondary, #9ca3af);opacity:.5;transition:opacity .2s;cursor:grab}.settings-modal__drag-handle[_ngcontent-%COMP%]:active{cursor:grabbing}.settings-modal__card[_ngcontent-%COMP%]:hover   .settings-modal__drag-handle[_ngcontent-%COMP%]{opacity:1}.settings-modal__footer[_ngcontent-%COMP%]{display:flex;flex-direction:column-reverse;gap:.5rem}@media (min-width: 640px){.settings-modal__footer[_ngcontent-%COMP%]{flex-direction:row;justify-content:flex-end}}.settings-modal__footer-btn[_ngcontent-%COMP%]{width:100%}.settings-modal__footer-btn--primary[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center}@media (min-width: 640px){.settings-modal__footer-btn[_ngcontent-%COMP%]{width:auto}}[_nghost-%COMP%]     .cdk-drag-preview{border-radius:.5rem;box-shadow:0 10px 24px #0f172a38,0 2px 6px #0f172a1f;background-color:#fff;opacity:.96;transform:rotate(-1deg);cursor:grabbing;box-sizing:border-box}[_nghost-%COMP%]     .cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}[_nghost-%COMP%]     .cdk-drop-list-dragging .cdk-drag:not(.cdk-drag-placeholder){transition:transform .3s cubic-bezier(0,0,.2,1)}"]})}}return o}
1)();var f=s(15385),S=s(51996),z=s(62252),M=s(52317),Q=s(545),W=s(33153),D=s(55632),J=s(39474),Z=s(98259),q=s(42618),tt=s(24034);const et=()=>[32,32];function nt(o,l){if(1&o){const e=t.RV6();t.j41(0,"div",17)(1,"div",18)(2,"button",19),t.bIt("click",function(){t.eBV(e);const i=t.XpG();return t.Njj(i.onViewModeChange("all"))}),t.EFF(3,"T\u1ea5t c\u1ea3"),t.k0s(),t.j41(4,"span",20),t.EFF(5,"/"),t.k0s(),t.j41(6,"button",19),t.bIt("click",function(){t.eBV(e);const i=t.XpG();return t.Njj(i.onViewModeChange("group"))}),t.EFF(7,"Nh\xf3m"),t.k0s()(),t.j41(8,"button",21),t.bIt("click",function(i){t.eBV(e);const a=t.XpG();return t.Njj(a.onSettingsClick(i))}),t.nrm(9,"i",22),t.j41(10,"span",23),t.EFF(11," T\xf9y ch\u1ec9nh \u1ee9ng d\u1ee5ng "),t.k0s()()()}if(2&o){const e=t.XpG();t.R7$(2),t.Y8G("vtsType","all"===e.viewMode?"link":"text"),t.R7$(4),t.Y8G("vtsType","group"===e.viewMode?"link":"text")}}function it(o,l){if(1&o&&t.nrm(0,"vts-option",27),2&o){const e=l.$implicit;t.Y8G("vtsValue",e.value)("vtsLabel",e.label)}}function ot(o,l){if(1&o){const e=t.RV6();t.j41(0,"div",24)(1,"vts-select",25),t.mxI("ngModelChange",function(i){t.eBV(e);const a=t.XpG();return t.DH7(a.selectedCategoryId,i)||(a.selectedCategoryId=i),t.Njj(i)}),t.bIt("ngModelChange",function(i){t.eBV(e);const a=t.XpG();return t.Njj(a.onCategoryFilterChange(i))}),t.DNE(2,it,1,2,"vts-option",26),t.k0s()()}if(2&o){const e=t.XpG();t.R7$(),t.R50("ngModel",e.selectedCategoryId),t.R7$(),t.Y8G("ngForOf",e.categoryOptions)}}function at(o,l){1&o&&(t.j41(0,"div",28),t.nrm(1,"spinner-custom"),t.k0s())}function rt(o,l){if(1&o){const e=t.RV6();t.qex(0),t.j41(1,"mini-app",37),t.bIt("onClick",function(i){const a=t.eBV(e).$implicit,h=t.XpG(3);return t.Njj(h.trackAppAccess(a,i))}),t.k0s(),t.bVm()}if(2&o){const e=l.$implicit;t.R7$(),t.Y8G("app",e)}}function st(o,l){if(1&o&&(t.j41(0,"vts-card",33)(1,"h4",34),t.EFF(2,"Truy c\u1eadp g\u1ea7n \u0111\xe2y"),t.k0s(),t.j41(3,"div",35),t.DNE(4,rt,2,1,"ng-container",36),t.k0s()()),2&o){const e=t.XpG(2);t.R7$(4),t.Y8G("ngForOf",e.recentAccessApps)}}function ct(o,l){1&o&&t.nrm(0,"vts-empty",38),2&o&&t.Y8G("vtsNoResult","Kh\xf4ng c\xf3 \u1ee9ng d\u1ee5ng n\xe0o")}function dt(o,l){if(1&o){const e=t.RV6();t.qex(0),t.j41(1,"mini-app",37),t.bIt("onClick",function(i){const a=t.eBV(e).$implicit,h=t.XpG(3);return t.Njj(h.trackAppAccess(a,i))}),t.k0s(),t.bVm()}if(2&o){const e=l.$implicit;t.R7$(),t.Y8G("app",e)}}function lt(o,l){if(1&o&&(t.j41(0,"div",35),t.DNE(1,dt,2,1,"ng-container",36),t.k0s()),2&o){const e=t.XpG(2);t.R7$(),t.Y8G("ngForOf",e.visibleApps)}}function pt(o,l){if(1&o&&(t.j41(0,"div"),t.DNE(1,st,5,1,"vts-card",29),t.j41(2,"vts-card",30),t.DNE(3,ct,1,1,"vts-empty",31)(4,lt,2,1,"div",32),t.k0s()()),2&o){const e=t.XpG();
1t.R7$(),t.Y8G("ngIf",e.recentAccessApps.length>0),t.R7$(2),t.Y8G("ngIf",0===e.visibleApps.length),t.R7$(),t.Y8G("ngIf",e.visibleApps.length>0)}}function gt(o,l){1&o&&t.nrm(0,"vts-empty",38),2&o&&t.Y8G("vtsNoResult","Kh\xf4ng c\xf3 d\u1eef li\u1ec7u")}function ht(o,l){if(1&o){const e=t.RV6();t.qex(0),t.j41(1,"mini-app",37),t.bIt("onClick",function(i){const a=t.eBV(e).$implicit,h=t.XpG(4);return t.Njj(h.trackAppAccess(a,i))}),t.k0s(),t.bVm()}if(2&o){const e=l.$implicit;t.R7$(),t.Y8G("app",e)}}function mt(o,l){if(1&o&&(t.j41(0,"div",35),t.DNE(1,ht,2,1,"ng-container",36),t.k0s()),2&o){const e=t.XpG().$implicit,n=t.XpG(2);t.R7$(),t.Y8G("ngForOf",n.getAppsForCategory(e))}}function _t(o,l){if(1&o&&(t.j41(0,"div",41)(1,"vts-card",42)(2,"div",43)(3,"h4",44),t.EFF(4),t.k0s()(),t.DNE(5,gt,1,1,"vts-empty",31)(6,mt,2,1,"div",32),t.k0s()()),2&o){const e=l.$implicit,n=t.XpG(2);t.R7$(4),t.JRh(n.getCategoryName(e)),t.R7$(),t.Y8G("ngIf",0===n.getAppsForCategory(e).length),t.R7$(),t.Y8G("ngIf",n.getAppsForCategory(e).length>0)}}function ut(o,l){if(1&o&&(t.j41(0,"div",39),t.DNE(1,_t,7,3,"div",40),t.k0s()),2&o){const e=t.XpG();t.R7$(),t.Y8G("ngForOf",e.getDisplayedCategoryIds())}}const A="ccud_recent_apps";let ft=(()=>{class o{constructor(e){this.breadcrumbService=e,this.ccudApplicationService=(0,t.WQX)(S.Bn),this.ccudAuthService=(0,t.WQX)(tt.T),this.categoryService=(0,t.WQX)(S.lH),this.toastService=(0,t.WQX)(r.Mo),this.displayConfigService=(0,t.WQX)(S.G0),this.ccudApp=(0,t.WQX)(f.lUk),this.serverUrl=(0,t.WQX)(f.UBk),this.destroy$=new z.B,this.router=(0,t.WQX)(Q.Ix),this.appCount=0,this.apps=[],this.visibleApps=[],this.recentAccessApps=[],this.appsLoading=!0,this.viewMode="all",this.categories=[],this.selectedCategoryId=null,this.categoryOptions=[],this.appsByCategory=new Map,this.fullApplications=[],this.selectedScheduleTab=0,this.scheduleEvents=[],this.mockApps=[{id:"1",name:"Ph\u1ea7n m\u1ec1m \u1ee9ng d\u1ee5ng \u0110\u1ea3ng vi\xean s\u1ed1",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:5},{id:"2",name:"H\u1ec7 th\u1ed1ng qu\u1ea3n l\xfd v\u0103n b\u1ea3n \u0111i\u1ec1u h\xe0nh v\xe0 t\xe1c nghi\u1ec7p",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:12},{id:"3",name:"Ph\u1ea7n m\u1ec1m s\u1ed1 ho\xe1 v\xe0 qu\u1ea3n l\xfd s\u1ed1 ho\xe1",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:3},{id:"4",name:"Ph\u1ea7n m\u1ec1m ph\u1ee5c v\u1ee5 c\xf4ng t\xe1c n\u1ed9i b\u1ed9",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:8},{id:"5",name:"Ph\u1ea7n m\u1ec1m Theo d\xf5i t\xecnh h\xecnh th\u1ef1c hi\u1ec7n Ngh\u1ecb quy\u1ebft, ch\u1ec9 th\u1ecb, k\u1ebft lu\u1eadn c\u1ee7a Trung \u01b0\u01a1ng",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:2},{id:"6",name:"Ph\u1ea7n m\u1ec1m Th\u01b0 vi\u1ec7n \u0111i\u1ec7n t\u1eed",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"7",name:"Ph\u1ea7n m\u1ec1m Qu\u1ea3n l\xfd cam k\u1ebft/ tho\u1ea3 thu\u1eadn h\u1ee3p t\xe1c c\u1ee7a l\xe3nh \u0111\u1ea1o ch\u1ee7 ch\u1ed1t v\u1edbi c\xe1c n\u01b0\u1edbc",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:4},{id:"8",name:"Ph\u1ea7n m\u1ec1m nghi\xean c\u1ee9u, tham m\u01b0u v\xe0 th\u1ea9m \u0111\u1ecbnh, th\u1ea9m tra l\u0129nh v\u1ef1c v\u0103n ph\xf2ng 12",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:1},{id:"9",name:"H\u1ec7 th\u1ed1ng \u1ee9ng d\u1ee5ng ph\u1ee5c v\u1ee5 c\xf4ng t\xe1c t\xe0i ch\xednh, t\xe0i s\u1ea3n \u0110\u1ea3ng",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:7},{id:"10",name:"Ph\u1ea7n m\u1ec1m gi\u1ea3i quy\u1ebft \u0111\u01a1n th\u01b0 khi\u1ebfu n\u1ea1i, t\u1ed1 c\xe1o",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:15},{id:"11",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin ph\u1ee5c v\u1ee5 h\u1ecdp v\xe0 x\u1eed l\xfd c\xf4ng vi\u1ec7c tr\u1ef1c tuy\u1ebfn",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:6},{id:"12",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin b\xe1o c\xe1o t\u1ed5ng h\u1ee3p, ph\xe2n t\xedch, d\u1ef1 b\xe1o",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:9},{id:"13",name:"H\u1ec7 th\u1ed1ng thu th\u1eadp, t\u1ed5ng h\u1ee3p th\xf4ng tin tr\xean Internet",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:11},{id:"14",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin qu\u1ea3n l\xfd xu\u1ea5t b\u1ea3n",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:3}
1,{id:"15",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin l\u0129nh v\u1ef1c T\u1ed5 ch\u1ee9c - x\xe2y d\u1ef1ng \u0110\u1ea3ng",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"16",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin l\u0129nh v\u1ef1c Ki\u1ec3m tra, gi\xe1m s\xe1t, k\u1ef7 lu\u1eadt \u0111\u1ea3ng",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:5},{id:"17",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin l\u0129nh v\u1ef1c Tuy\xean gi\xe1o v\xe0 d\xe2n v\u1eadn",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:14},{id:"18",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin l\u0129nh v\u1ef1c N\u1ed9i ch\xednh, PCTNLPTC v\xe0 CCTP",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:2},{id:"19",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin l\u0129nh v\u1ef1c Kinh t\u1ebf - x\xe3 h\u1ed9i",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png",notificationCount:10},{id:"20",name:"Tr\u1ee3 l\xfd \u1ea2o",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"21",name:"H\u1ec7 th\u1ed1ng C\u01a1 s\u1edf d\u1eef li\u1ec7u v\u1ec1 l\xfd lu\u1eadn ch\xednh tr\u1ecb c\u1ee7a \u0110\u1ea3ng",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"22",name:"H\u1ec7 th\u1ed1ng danh m\u1ee5c d\xf9ng chung c\xe1c c\u01a1 quan \u0110\u1ea3ng",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"23",name:"C\u1ed5ng th\xf4ng tin \u0111i\u1ec7n t\u1eed c\u1ee7a \u0110\u1ea3ng",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"}],this.isSettingsModalVisible=!1,this.settingsItems=[],this.defaultSettingsItems=[]}ngOnInit(){this.loadDisplayConfiguration(),this.loadApplications(),this.loadCategories(),this.loadMockScheduleEvents(),this.breadcrumbService.setBreadcrumbs([{label:"Trang ch\u1ee7",url:"/dashboard"}])}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}loadDisplayConfiguration(){this.ccudApplicationService.getPublicDisplayConfiguration(this.ccudApp.appCode).pipe((0,M.Q)(this.destroy$)).subscribe({next:e=>{e&&this.displayConfigService.setDisplayConfiguration({homepageConfig:this.ccudApplicationService.mergeDisplayConfiguration(f.l73,e?.homepageConfig||{}),footerConfig:this.ccudApplicationService.mergeDisplayConfiguration(f.VX_,e?.footerConfig||{}),applicationId:this.ccudApp.appId,loginConfig:this.ccudApplicationService.mergeDisplayConfiguration(f.nig,e?.loginConfig||{}),directionConfig:e.directionConfig||{}})},error:e=>{console.error("Error loading display configuration:",e),this.displayConfigService.setDisplayConfiguration({homepageConfig:f.l73,footerConfig:f.VX_,applicationId:this.ccudApp.appId,loginConfig:f.nig,directionConfig:{}})}})}onSettingsClick(e){this.isSettingsModalVisible=!0,e?.currentTarget?.blur()}onAppClick(e){this.router.navigate([e.url]),this.toastService.info("","\u0110ang chuy\u1ec3n h\u01b0\u1edbng \u0111\u1ebfn \u1ee9ng d\u1ee5ng")}onSettingsChange(e){console.log("@dnntung -> items: ",e),this.settingsItems=e,this.applySettingsToApps(),this.updateApplicationPreferences()}loadApplications(){this.loadSettingsItems()}loadSettingsItems(){this.ccudApplicationService.getVisibleApplications({page:0,size:1e3,sort:"appName,ASC"}).pipe((0,M.Q)(this.destroy$)).subscribe({next:e=>{const n=this.extractApplications(e.body),i=this.sortApplicationsByPreference(n.filter(d=>!1!==d.appStatus)),a=i.filter(d=>!1!==d.visible).map(d=>this.mapCcudApplicationToDashboardApp(d)).filter(d=>!!d),h=i.map(d=>this.mapCcudApplicationToDashboardApp(d)).filter(d=>!!d),v=this.sortDashboardAppsByName(h);this.apps=h,this.fullApplications=i,this.visibleApps=a,this.appCount=this.visibleApps.length,this.groupAppsByCategory(),this.defaultSettingsItems=v.map(d=>{const O=this.findFullApplication(d.id);return{id:d.id,name:d.name,description:d.name,iconUrl:d.iconUrl,selected:!0,notificationCount:d.notificationCount,appKey:d.appKey||"",isGeneral:O?.isGeneral||!1,appStatus:d.appStatus,platforms:d.platforms}}),this.settingsItems=h.map(d=>{const O=this.findFullApplication(d.id);return{id:d.id,name:d.name,description:d.name,iconUrl:d.iconUrl,
1selected:!1!==O?.visible,notificationCount:d.notificationCount,appKey:d.appKey||"",isGeneral:O?.isGeneral||!1,appStatus:d.appStatus,platforms:d.platforms}}),this.loadRecentApps(),this.appsLoading=!1},error:e=>{console.error("Error loading dashboard applications:",e),this.apps=[],this.fullApplications=[],this.settingsItems=[],this.defaultSettingsItems=[],this.applySettingsToApps(),this.loadRecentApps(),this.appsLoading=!1}})}sortApplicationsByPreference(e){return[...e].sort((n,i)=>{const a=this.compareByName(n.appName,i.appName);return void 0===n.displayOrder&&void 0===i.displayOrder?a:(n.displayOrder??Number.MAX_SAFE_INTEGER)-(i.displayOrder??Number.MAX_SAFE_INTEGER)||a})}extractApplications(e){return Array.isArray(e)?e:e?.applications||[]}sortDashboardAppsByName(e){return[...e].sort((n,i)=>this.compareByName(n.name,i.name))}compareByName(e,n){return(e||"").localeCompare(n||"","vi",{sensitivity:"base"})}mapCcudApplicationToDashboardApp(e){const n=(e.id||e.applicationId)?.toString();return n?{id:n,name:e.appName||"",iconUrl:f.HgN.buildImageUrl(e.appLogo,this.serverUrl.file)||"",notificationCount:0,url:e.platforms?.find(i=>"WEB"===i.type)?.url,categoryId:e.applicationCategory?.id||e.appCategory,categoryName:e.applicationCategory?.categoryName||e.appCategory,appKey:e.appKey||"",appCode:e.appCode||"",appStatus:e.appStatus,platforms:e.platforms,onlyRedirect:e.onlyRedirect}:null}findFullApplication(e){return this.fullApplications.find(n=>(n?.id||n?.applicationId)?.toString()===e)}loadCategories(){this.categoryService.listApplicationCategories({size:1e3,categoryStatus:!0,sort:"lastModifiedDate,DESC"}).pipe((0,M.Q)(this.destroy$)).subscribe({next:e=>{this.categories=(e.body?.applicationCategories||[]).filter(i=>i.categoryStatus).sort((i,a)=>this.compareByName(i.categoryName,a.categoryName)),this.groupAppsByCategory()},error:()=>{this.toastService.error("","Kh\xf4ng th\u1ec3 t\u1ea3i danh s\xe1ch nh\xf3m \u1ee9ng d\u1ee5ng")}})}onViewModeChange(e){this.viewMode=e,"all"===e&&(this.selectedCategoryId=null)}onCategoryFilterChange(e){this.selectedCategoryId=e}groupAppsByCategory(){this.appsByCategory.clear();for(const e of this.visibleApps){const n=e.categoryId||"0";"0"!==n&&!this.categories.some(i=>i.id===n)||(this.appsByCategory.has(n)||this.appsByCategory.set(n,[]),this.appsByCategory.get(n).push(e))}this.categoryOptions=Array.from(this.appsByCategory.keys()).filter(e=>"0"!==e).sort((e,n)=>this.compareByName(this.getCategoryName(e),this.getCategoryName(n))).map(e=>({value:e,label:this.getCategoryName(e)})),null!==this.selectedCategoryId&&!this.appsByCategory.has(this.selectedCategoryId)&&(this.selectedCategoryId=null)}getAppsForCategory(e){return this.appsByCategory.get(e)||[]}getCategoryName(e){return"0"===e?"Kh\xe1c":this.categories.find(i=>i.id===e)?.categoryName||"Kh\xe1c"}get displayedAppCount(){return"group"===this.viewMode?null!==this.selectedCategoryId?(this.appsByCategory.get(this.selectedCategoryId)||[]).length:Array.from(this.appsByCategory.values()).reduce((e,n)=>e+n.length,0):this.appCount}getDisplayedCategoryIds(){const e=Array.from(this.appsByCategory.keys());return null!==this.selectedCategoryId?e.filter(n=>n===this.selectedCategoryId):e.sort((n,i)=>"0"===n?1:"0"===i?-1:this.compareByName(this.getCategoryName(n),this.getCategoryName(i)))}loadMockSettingsItems(){const e=[{id:"1",name:"Ph\u1ea7n m\u1ec1m \u1ee9ng d\u1ee5ng \u0110\u1ea3ng vi\xean s\u1ed1",description:"Qu\u1ea3n l\xfd th\xf4ng tin \u0111\u1ea3ng vi\xean",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"2",name:"H\u1ec7 th\u1ed1ng qu\u1ea3n l\xfd v\u0103n b\u1ea3n \u0111i\u1ec1u h\xe0nh v\xe0 t\xe1c nghi\u1ec7p",description:"Qu\u1ea3n l\xfd v\u0103n b\u1ea3n \u0111i\u1ec1u h\xe0nh",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"3",name:"Ph\u1ea7n m\u1ec1m s\u1ed1 ho\xe1 v\xe0 qu\u1ea3n l\xfd s\u1ed1 ho\xe1",description:"S\u1ed1 ho\xe1 t\xe0i li\u1ec7u",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"4",name:"Ph\u1ea7n m\u1ec1m ph\u1ee5c v\u1ee5 c\xf4ng t\xe1c n\u1ed9i b\u1ed9",description:"C\xf4ng t\xe1c n\u1ed9i b\u1ed9",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"5",name:"Ph\u1ea7n m\u1ec1m Theo d\xf5i t\xecnh h\xecnh th\u1ef1c hi\u1ec7n Ngh\u1ecb quy\u1ebft, ch\u1ec9 th\u1ecb, k\u1ebft lu\u1eadn c\u1ee7a Trung \u01b0\u01a1ng",description:"Theo d\xf5i Ngh\u1ecb quy\u1ebft",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"6",name:"Ph\u1ea7n m\u1ec1m Th\u01b0 vi\u1ec7n \u0111i\u1ec7n t\u1eed",description:"Th\u01b0 vi\u1ec7n \u0111i\u1ec7n t\u1eed",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"7",name:"Ph\u1ea7n m\u1ec1m Qu\u1ea3n l\xfd cam k\u1ebft/ tho\u1ea3 thu\u1eadn h\u1ee3p t\xe1c c\u1ee7a l\xe3nh \u0111\u1ea1o ch\u1ee7 ch\u1ed1t v\u
11edbi c\xe1c n\u01b0\u1edbc",description:"Qu\u1ea3n l\xfd cam k\u1ebft h\u1ee3p t\xe1c",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"8",name:"Ph\u1ea7n m\u1ec1m nghi\xean c\u1ee9u, tham m\u01b0u v\xe0 th\u1ea9m \u0111\u1ecbnh, th\u1ea9m tra l\u0129nh v\u1ef1c v\u0103n ph\xf2ng 12",description:"Nghi\xean c\u1ee9u v\xe0 tham m\u01b0u",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"9",name:"H\u1ec7 th\u1ed1ng \u1ee9ng d\u1ee5ng ph\u1ee5c v\u1ee5 c\xf4ng t\xe1c t\xe0i ch\xednh, t\xe0i s\u1ea3n \u0110\u1ea3ng",description:"Qu\u1ea3n l\xfd t\xe0i ch\xednh t\xe0i s\u1ea3n",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"10",name:"Ph\u1ea7n m\u1ec1m gi\u1ea3i quy\u1ebft \u0111\u01a1n th\u01b0 khi\u1ebfu n\u1ea1i, t\u1ed1 c\xe1o",description:"Gi\u1ea3i quy\u1ebft khi\u1ebfu n\u1ea1i",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"11",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin ph\u1ee5c v\u1ee5 h\u1ecdp v\xe0 x\u1eed l\xfd c\xf4ng vi\u1ec7c tr\u1ef1c tuy\u1ebfn",description:"H\u1ecdp v\xe0 l\xe0m vi\u1ec7c tr\u1ef1c tuy\u1ebfn",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"12",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin b\xe1o c\xe1o t\u1ed5ng h\u1ee3p, ph\xe2n t\xedch, d\u1ef1 b\xe1o",description:"B\xe1o c\xe1o v\xe0 ph\xe2n t\xedch",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"13",name:"H\u1ec7 th\u1ed1ng thu th\u1eadp, t\u1ed5ng h\u1ee3p th\xf4ng tin tr\xean Internet",description:"Thu th\u1eadp th\xf4ng tin internet",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"14",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin qu\u1ea3n l\xfd xu\u1ea5t b\u1ea3n",description:"Qu\u1ea3n l\xfd xu\u1ea5t b\u1ea3n",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"15",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin l\u0129nh v\u1ef1c T\u1ed5 ch\u1ee9c - x\xe2y d\u1ef1ng \u0110\u1ea3ng",description:"T\u1ed5 ch\u1ee9c x\xe2y d\u1ef1ng \u0110\u1ea3ng",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"16",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin l\u0129nh v\u1ef1c Ki\u1ec3m tra, gi\xe1m s\xe1t, k\u1ef7 lu\u1eadt \u0111\u1ea3ng",description:"Ki\u1ec3m tra gi\xe1m s\xe1t",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"17",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin l\u0129nh v\u1ef1c Tuy\xean gi\xe1o v\xe0 d\xe2n v\u1eadn",description:"Tuy\xean gi\xe1o d\xe2n v\u1eadn",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"18",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin l\u0129nh v\u1ef1c N\u1ed9i ch\xednh, PCTNLPTC v\xe0 CCTP",description:"N\u1ed9i ch\xednh v\xe0 PCTNLPTC",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"19",name:"H\u1ec7 th\u1ed1ng th\xf4ng tin l\u0129nh v\u1ef1c Kinh t\u1ebf - x\xe3 h\u1ed9i",description:"Kinh t\u1ebf x\xe3 h\u1ed9i",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"20",name:"Tr\u1ee3 l\xfd \u1ea2o",description:"Tr\u1ee3 l\xfd th\xf4ng minh",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"21",name:"H\u1ec7 th\u1ed1ng C\u01a1 s\u1edf d\u1eef li\u1ec7u v\u1ec1 l\xfd lu\u1eadn ch\xednh tr\u1ecb c\u1ee7a \u0110\u1ea3ng",description:"L\xfd lu\u1eadn ch\xednh tr\u1ecb",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"22",name:"H\u1ec7 th\u1ed1ng danh m\u1ee5c d\xf9ng chung c\xe1c c\u01a1 quan \u0110\u1ea3ng",description:"Qu\u1ea3n l\xfd danh m\u1ee5c",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"},{id:"23",name:"C\u1ed5ng th\xf4ng tin \u0111i\u1ec7n t\u1eed c\u1ee7a \u0110\u1ea3ng",description:"Truy c\u1eadp th\xf4ng tin ch\xednh th\u1ee9c c\u1ee7a \u0110\u1ea3ng",iconUrl:"https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png"}];this.defaultSettingsItems=e.map(n=>({...n,selected:!0,notificationCount:this.apps.find(i=>i.id===n.id)?.notificationCount})),this.settingsItems=e.map(n=>({...n,selected:this.apps.some(i=>i.id===n.id),notificationCount:this.apps.find(i=>i.id===n.id)?.notificationCount})),this.applySettingsToApps()}updateApplicationPreferences(){const e=this.settingsItems.map((n,i)=>({applicationId:n.id,displayOrder:i,visible:n.selected}));this.ccudApplicationService.updateUserApplicationPreferences(e).pipe((0,M.Q)(this.destroy$)).subscribe({next:()=>{this.router.navigate(["/dashboard"]),this.loadSettingsItems(),this.toastService.success("","C\u1eadp nh\u1eadt c\xe0i \u0111\u1eb7t th\xe0nh c\xf4ng")},error:n=>{console.error("Error updating preferences:",n),this.toastService.error("","Kh\xf4ng th\u1ec3 c\u1eadp nh\u1eadt c\xe0i \u0111\u1eb7t")}})}applySettingsToApps(){const e=this.settingsItems.filter(n=>n.selected);this.visibleApps=e.map(n=>{const i=this.apps.find(a=>a.id===n.id);return{id:n.id,name:n.name,iconUrl:n.iconUrl,notificationCount:n.notificationCount,url:i?.url,categoryId:i?.categoryId,categoryName:i?.categoryName,a
1ppKey:n.appKey||"",appCode:i?.appCode||"",appStatus:n.appStatus,platforms:n.platforms}}),this.appCount=this.visibleApps.length,this.groupAppsByCategory()}group(){return Array.from(new Map(this.visibleApps.map(n=>[n.categoryId??"0",n.categoryName??"0"])).entries()).map(([n,i])=>({categoryId:n,categoryName:i})).sort((n,i)=>"0"===n.categoryId?1:"0"===i.categoryId?-1:this.compareByName(n.categoryName,i.categoryName)).map(n=>n.categoryId)}normalizeCompareKey(e){return null==e?"":e.toString().trim().toLowerCase()}loadMockScheduleEvents(){this.scheduleEvents=[{id:1,date:"01",month:"Th 01",title:"H\u1ecdp Ban ch\u1ea5p h\xe0nh",time:"12:00 - 13:00",location:"Ph\xf2ng h\u1ecdp A",type:"leadership"},{id:2,date:"03",month:"Th 01",title:"Ki\u1ec3m tra c\xf4ng t\xe1c \u0110\u1ea3ng",time:"12:00 - 13:00",location:"Ph\xf2ng h\u1ecdp A",type:"leadership"},{id:3,date:"04",month:"Th 01",title:"H\u1ed9i ngh\u1ecb c\xe1n b\u1ed9",time:"12:00 - 13:00",location:"Ph\xf2ng h\u1ecdp A",type:"personal"},{id:4,date:"06",month:"Th 01",title:"B\xe1o c\xe1o th\xe1ng",time:"12:00 - 13:00",location:"Ph\xf2ng h\u1ecdp A",type:"unit"},{id:5,date:"07",month:"Th 01",title:"Sinh ho\u1ea1t chi b\u1ed9",time:"12:00 - 13:00",location:"Ph\xf2ng h\u1ecdp A",type:"personal"},{id:6,date:"08",month:"Th 01",title:"B\xe1o c\xe1o th\xe1ng",time:"12:00 - 13:00",location:"Ph\xf2ng h\u1ecdp A",type:"personal"}]}onScheduleTabChange(e){this.selectedScheduleTab=e}getFilteredScheduleEvents(){const n=[null,"personal","unit","leadership"][this.selectedScheduleTab];return this.scheduleEvents.filter(i=>!n||i.type===n)}loadRecentApps(){const e=localStorage.getItem(A);if(e)try{const n=JSON.parse(e);this.recentAccessApps=n.map(i=>this.visibleApps.find(a=>a.id===i)).filter(i=>void 0!==i).slice(0,8)}catch{this.recentAccessApps=[]}else this.recentAccessApps=[]}saveRecentApp(e){const n=localStorage.getItem(A);let i=[];if(n)try{i=JSON.parse(n)}catch{i=[]}i=i.filter(a=>a!==e),i.unshift(e),i.length>8&&(i=i.slice(0,8)),localStorage.setItem(A,JSON.stringify(i)),this.loadRecentApps()}trackAppAccess(e,n){this.saveRecentApp(e.id),e.appCode&&e.url?1==e.onlyRedirect&&this.ccudAuthService.getLastSsoProvider()==f.bBV.VNEID?this.router.navigate(["/auth/page/login"],{queryParams:{client_id:e.appCode,redirect_uri:e.url,code_challenge:"",scope:"openid",response_type:"code"}}):this.ccudApplicationService.launchApp(e.appCode,e.url,""):this.toastService.warning("","H\u1ec7 th\u1ed1ng \u0111ang trong qu\xe1 tr\xecnh tri\u1ec3n khai, \u0110\u1ed3ng ch\xed vui l\xf2ng quay l\u1ea1i sau!")}existAccount(){return f.VGQ.get("userId")}static{this.\u0275fac=function(n){return new(n||o)(t.rXU(f.BZs))}}static{this.\u0275cmp=t.VBU({type:o,selectors:[["lib-core-dashboard"]],decls:20,vars:11,consts:[[1,"core-dashboard__container"],[1,"core-dashboard__header"],[1,"core-dashboard__header-content"],[1,"core-dashboard__header-title-group"],[1,"core-dashboard__header-title-wrapper"],[1,"core-dashboard__header-title"],[1,"core-dashboard__header-badge"],["class","core-dashboard__header-actions",4,"ngIf"],["class","core-dashboard__category-filter",4,"ngIf"],[1,"core-dashboard__content"],[3,"vtsGutter"],["vts-col","","vtsSpan","24"],["style","display: flex; justify-content: center; align-items: center; padding: 60px 0;",4,"ngIf"],[4,"ngIf"],["class","core-dashboard__category-view",4,"ngIf"],[1,"core-dashboard__footer"],[3,"vtsVisibleChange","settingsChange","vtsVisible","settingsItems","defaultItems"],[1,"core-dashboard__header-actions"],[1,"core-dashboard__header-view-mode-switch"],["vts-button","","vtsSize","sm",3,"click","vtsType"],[1,"core-dashboard__header-view-mode-switch-separator"],["vts-button","","vtsType","default","vtsSize","md",3,"click"],["vts-icon","","vtsType","Setting:custom"],[1,"core-dashboard__settings-button-text"],[1,"core-dashboard__category-filter"],["vtsPlaceHolder","Ch\u1ecdn nh\xf3m \u1ee9ng d\u1ee5ng",2,"width","280px",3,"ngModelChange","ngModel"],[3,"vtsValue","vtsLabel",4,"ngFor","ngForOf"],[3,"vtsValue","vtsLabel"],[2,"display","flex","justify-content","center","align-items","center","padding","60px 0"],["vtsHoverable","false","class","core-dashboard__recent-apps-card card-border-top-primary",4,"ngIf"],["vtsHoverable","false",1,"card-border-top-primary"],[3,"vtsNoResult",4,"ngIf"],["class","core-dashboard__grid",4,"ngIf"],["vtsHoverable","false",1,"core-dashboard__recent-apps-card","card-border-top-primary"],[1,"core-dashboard__recent-apps-title"],[1,"core-dashboard__grid"],[4,"ngFor","ngForOf"],[3,"onClick","app"],[3,"vtsNoResult"],[1,"core-dashboard__category-view"],["class","core-dashboard__category-section",4,"ngFor","ngForOf"],[1,"core-dashboard__category-section"],["vtsHoverable","false"],[1,"core-dashboard__category-header"],[1,"core-dashboard__category-title"]],template:function(n,i){1&n&&(t.j41(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4)(5,"h3",5),t.EFF(6,"Danh s\xe1ch \u1ee9ng d\u1ee5ng"),t.k0s(),t.j41(7,"span",6),t.EFF(8),t.k0s()()(),t.DNE(9,nt,12,2,"div",7),t.k0s()(),t.DNE(10,ot,3,2,"div",8),t.j41(11,"div",9)(12,"vts-row",10)(13,"div",11),t.DNE(14,at,2,0,"div",12)(15,pt,5,3,"div",13)(16,ut,2,1,"div",14),t.k0s()()(),t.j41(17,"div",15),t.nrm(18,"lib-core-footer"),t.k0s()(),t.j41(19,"lib-dashboard-settings-modal",16),t.mxI("vtsVisibleChange",function(h){return t.DH7(i.isSettingsModalVisible,h)||(i.isSettingsModalVisible=h),h}),t.bIt("settingsChange",function(h){return i.onSettingsChange(h)}),t.k0s()),2&n&&(t.R7$(8),t.JRh(i.displayedAppCount),t.R7$(),t.Y8G("ngIf",i.existAccount()),t.R7$(),t.Y8G("ngIf","group"===i.viewMode),t.R7$(2),t.Y8G("vtsGutter",t.lJ4(10,et)),t.R7$(2),t.Y8G("ngIf",i.appsLoading),t.R7$(),t.Y8G("ngIf","all"===i.viewMode&&!i.appsLoading),t.R7$(),t.Y8G("ngIf","group"===i.viewMode&&!i.appsLoading),t.R7$(3),t.R50("vtsVisible",i.isSettingsModalVisible),t.Y8G("settingsItems",i.settingsItems)("defaultItems",i.defaultSettingsItems))},dependencies:[g.MD,g.Sq,g.bT,C.YN,C.BC,C.vS,w.G,w.R$,T.T,k.Cn,k.F_,y.mi,y.tH,y.BE,x.dA,x.qb,u.SE,V.j,c.u,c.mw,c.B1,K,W.iI,D.Dd,D.gJ,J.s,Z.EC,q.e],styles:["[_nghost-%COMP%]{min-height:100%;display:flex;flex-direction:column;flex:1 1 auto}  .breadcrumb-container{display:none}.core-dashboard__footer[_ngcontent-%COMP%]{margin:0 -24px -20px;margin-top:auto!important;flex-shrink:0}.core-dashboard__content[_ngcontent-%COMP%]{flex:1 0 auto;padding-bottom:20px}.core-dashboard__container[_ngcontent-%COMP%]{position:relative;z-index:10;opacity:1;min-height:100%;display:flex;flex-direction:column;flex:1 1 auto}.core-dashboard__header[_ngcontent-%COMP%]{margin-bottom:12px}@media (min-width: 640px){.core-dashboard__header[_ngcontent-%COMP%]{margin-bottom:.875rem}}@media (min-width: 1280px){.core-dashboard__header[_ngcontent-%COMP%]{margin-bottom:16px}}.core-dashboard__header-content[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.core-dashboard__header-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.core-dashboard__header-title-group[_ngcontent-%COMP%]{flex:1;min-width:0}.core-dashboard__header-title-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.core-dashboard__header-title[_ngcontent-%COMP%]{margin:0;font-weight:var(--font-weight-semibold, 600);font-size:1.125rem;line-height:1.5}.core-dashboard__header-badge[_ngcontent-%COMP%]{font-size:.75rem;padding:.125rem .5rem;border-radius:9999px;background-color:var(--secondary-color-1);color:var(--primary-color);font-weight:var(--font-weight-medium, 500)}.core-dashboard__header-subtitle[_ngcontent-%COMP%]{margin:0;margin-top:.125rem;font-size:.75rem;color:var(--vts-text-color-secondary, #6b7280)}@media (min-width: 640px){.core-dashboard__header-subtitle[_ngcontent-%COMP%]{font-size:.875rem}}.core-dashboard__settings-button[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-size:.875rem;font-weight:var(--font-weight-medium, 500);transition:all .2s;border:1px solid var(--vts-border-color-base, #d9d9d9);background:var(--vts-background-color-base, #ffffff);color:var(--vts-text-color, rgba(0, 0, 0, .85));height:2rem;border-radius:.375rem;padding:0 .75rem;gap:.5rem;cursor:pointer}.core-dashboard__settings-button[_ngcontent-%COMP%]:hover{background:var(--primary-color, #e4000f);color:#fff;border-color:var(--primary-color, #e4000f)}.core-dashboard__settings-button[_ngcontent-%COMP%]   i[vts-icon][_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0}@media (max-width: 639px){.core-dashboard__settings-button-text[_ngcontent-%COMP%]{display:none}}.core-dashboard__category-filter[_ngcontent-%COMP%], .core-dashboard__recent-apps-card[_ngcontent-%COMP%]{margin-bottom:16px}.core-dashboard__recent-apps-title[_ngcontent-%COMP%]{padding:0 0 12px;margin:0 0 12px;font-weight:var(--font-weight-semibold, 600);font-size:1rem;line-height:1.5;color:var(--text-heading-primary, #111827)}.core-dashboard__category-view[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:16px}.core-dashboard__category-section[_ngcontent-%COMP%]{position:relative}.core-dashboard__category-header[_ngcontent-%COMP%]{margin-bottom:16px}.core-dashboard__category-title[_ngcontent-%COMP%]{margin:0;font-weight:var(--font-weight-semibold, 600);font-size:1.125rem;line-height:1.5}.core-dashboard__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}@media (min-width: 640px){.core-dashboard__grid[_ngcontent-%COMP%]{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}}@media (min-width: 768px){.core-dashboard__grid[_ngcontent-%COMP%]{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}}.core-dashboard__app-item[_ngcontent-%COMP%]{display:block;height:100%;text-align:center;padding:0;cursor:pointer;position:relative;will-change:transform;opacity:1;transform:none;transition:transform .2s,opacity .2s;text-decoration:none;color:inherit}.core-dashboard__app-item[_ngcontent-%COMP%]:hover{transform:translateY(-2px)}.core-dashboard[_ngcontent-%COMP%]     vts-card{height:100%;display:flex;flex-direction:column}.core-dashboard[_ngcontent-%COMP%]     vts-card .vts-card-body{padding:1rem;display:flex;flex-direction:column;height:100%}.core-dashboard__app-item-content[_ngcontent-%COMP%]{position:relative}.core-dashboard__app-icon-wrapper[_ngcontent-%COMP%]{position:relative;width:3.75rem;height:3.75rem;margin:0 auto;margin-bottom:.5rem;display:flex;align-items:center;justify-content:center}@media (min-width: 640px){.core-dashboard__app-icon-wrapper[_ngcontent-%COMP%]{margin-bottom:.625rem}}@media (min-width: 768px){.core-dashboard__app-icon-wrapper[_ngcontent-%COMP%]{margin-bottom:.625rem}}@media (min-width: 1280px){.core-dashboard__app-icon-wrapper[_ngcontent-%COMP%]{margin-bottom:.75rem}}@media (min-width: 1536px){.core-dashboard__app-icon-wrapper[_ngcontent-%COMP%]{margin-bottom:.75rem}}.core-dashboard__app-icon-container[_ngcontent-%COMP%]{width:100%;height:100%;border-radius:14px;border:1px solid rgba(185,0,14,.12);display:flex;align-items:center;justify-content:center}.core-dashboard__app-icon-container[_ngcontent-%COMP%]:hover{background:var(--secondary-color-1, #fee2e2)}.core-dashboard__app-icon[_ngcontent-%COMP%]{width:calc(100% - 10px
1);height:calc(100% - 10px);object-fit:contain;filter:brightness(1.1) contrast(.9);opacity:.85}.core-dashboard__app-icon-fallback[_ngcontent-%COMP%]{font-size:30px;color:var(--primary-color)}.core-dashboard__app-title[_ngcontent-%COMP%]{margin:0;margin-bottom:.25rem;font-weight:var(--font-weight-medium, 500);font-size:.875rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.core-dashboard__app-badge-wrapper[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;pointer-events:none}.core-dashboard__app-badge[_ngcontent-%COMP%]{position:relative;width:2rem;height:2rem;margin:0 auto;pointer-events:auto}@media (min-width: 640px){.core-dashboard__app-badge[_ngcontent-%COMP%]{width:2.25rem;height:2.25rem}}@media (min-width: 768px){.core-dashboard__app-badge[_ngcontent-%COMP%]{width:2.5rem;height:2.5rem}}@media (min-width: 1280px){.core-dashboard__app-badge[_ngcontent-%COMP%]{width:2.5rem;height:2.5rem}}@media (min-width: 1536px){.core-dashboard__app-badge[_ngcontent-%COMP%]{width:2.75rem;height:2.75rem}}.core-dashboard__app-badge-text[_ngcontent-%COMP%]{position:absolute;top:-.375rem;right:-.375rem;min-width:18px;height:18px;padding:0 .25rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background-color:#b9000e;box-shadow:#b9000e66 0 2px 4px;color:#fff;font-size:.625rem;font-weight:var(--font-weight-semibold, 600);line-height:1;z-index:10}.core-dashboard__schedule-title[_ngcontent-%COMP%]{margin:0 0 16px;font-weight:var(--font-weight-semibold, 600);font-size:1.125rem;line-height:1.5}.core-dashboard__schedule-events[_ngcontent-%COMP%]{margin-top:16px;display:flex;flex-direction:column;gap:16px;max-height:600px;overflow-y:auto}.core-dashboard__header-view-mode-switch[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px}.core-dashboard__schedule-event-card[_ngcontent-%COMP%]{--card-date-bg-color: #f5f5f5;border-radius:8px;box-shadow:0 2px 8px #0000001a;transition:transform .2s,box-shadow .2s;border-top:3px solid var(--card-border-color)!important}.core-dashboard__schedule-event-card[_ngcontent-%COMP%]     .vts-card-body{padding:0!important}.core-dashboard__schedule-event-card--personal[_ngcontent-%COMP%]{--card-border-color: var(--vts-success-color, #52c41a) !important;--card-date-bg-color: var(--vts-success-1, #e6f7e2) !important}.core-dashboard__schedule-event-card--unit[_ngcontent-%COMP%]{--card-border-color: #722ed1 !important;--card-date-bg-color: #e6e2f7 !important}.core-dashboard__schedule-event-card--leadership[_ngcontent-%COMP%]{--card-border-color: var(--vts-error-color, #ff4d4f) !important;--card-date-bg-color: var(--vts-error-1, #f7e2e2) !important}.core-dashboard__schedule-event-content[_ngcontent-%COMP%]{display:flex;gap:16px;padding:.5rem}.core-dashboard__schedule-event-date[_ngcontent-%COMP%]{min-width:60px;padding:12px;background-color:var(--card-date-bg-color)!important;border-radius:6px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.core-dashboard__schedule-event-day[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:var(--font-weight-bold, 700);line-height:1.2;color:var(--vts-text-color, rgba(0, 0, 0, .85))}.core-dashboard__schedule-event-month[_ngcontent-%COMP%]{font-size:.75rem;color:var(--vts-text-color-secondary, #6b7280);margin-top:.25rem}.core-dashboard__schedule-event-details[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.5rem}.core-dashboard__schedule-event-title[_ngcontent-%COMP%]{margin:0;font-weight:var(--font-weight-semibold, 600);font-size:.875rem;line-height:1.5;color:var(--vts-text-color, rgba(0, 0, 0, .85))}.core-dashboard__schedule-event-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem;font-size:.75rem;color:var(--vts-text-color-secondary, #6b7280)}.core-dashboard__schedule-event-time[_ngcontent-%COMP%], .core-dashboard__schedule-event-location[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.core-dashboard__schedule-event-time[_ngcontent-%COMP%]   i[vts-icon][_ngcontent-%COMP%], .core-dashboard__schedule-event-location[_ngcontent-%COMP%]   i[vts-icon][_ngcontent-%COMP%]{font-size:.875rem}.card-border-top-primary[_ngcontent-%COMP%]{border-top:3px solid var(--primary-color, #e4000f)}"]})}}return o}
1)()}}]);

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.