{"__symbolic":"module","version":4,"metadata":{"ɵa":{"__symbolic":"function","parameters":[],"value":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"}]},"UserPermissionModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":23,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"tnx-shared","name":"TnxSharedModule","line":25,"character":8},{"__symbolic":"reference","module":"angular-split","name":"AngularSplitModule","line":26,"character":8},{"__symbolic":"reference","module":"tnx-admin-service/authorization/role","name":"RoleModule","line":27,"character":8},{"__symbolic":"reference","module":"tnx-admin-service/authorization/usergroup","name":"UserGroupModule","line":28,"character":8},{"__symbolic":"reference","module":"tnx-admin-service/client-management","name":"ClientManagementModule","line":29,"character":8}],"declarations":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵa"}},"exports":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵa"}}}]}],"members":{}},"UserPermissionWithRouteModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":37,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"UserPermissionModule"},{"__symbolic":"reference","name":"ɵg"}],"exports":[{"__symbolic":"reference","name":"UserPermissionModule"}]}]}],"members":{}},"ɵb":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"tnx-shared","name":"DataListBase","line":12,"character":45},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-userpermission","providers":[{"__symbolic":"reference","module":"tnx-shared","name":"ComponentContextService","line":10,"character":16}],"template":"<div class=\"custom-card card card-w-title flex-container-fit-child\">\n    <div class=\"ui-helper-clearfix crud-list-header-area\">\n        <div class=\"p-grid\">\n            <div class=\"p-md-10\">\n                <h1 style=\"padding: 0.5rem;\">\n                    Phân quyền người dùng\n                </h1>\n            </div>\n            <div class=\"p-md-2 right-save-button\">\n                <button pButton icon=\"fas fa-sync\" class=\"p-button-warning\" type=\"button\" (click)=\"refresh()\"\n                        [label]=\"'Làm mới' | translate\"></button>\n                <button pButton icon=\"fas fa-save\" [disabled]=\"submitting || countLoading > 0\" type=\"button\"\n                        (click)=\"savePermission()\" [label]=\"'FORM.SAVE' | translate\"></button>\n            </div>\n        </div>\n    </div>\n\n    <div class=\"fit-content crud-list-body-area\">\n        <div class=\"tn-l-as-split-container\">\n            <as-split direction=\"horizontal\">\n                <as-split-area size=\"33\">\n                    <div class=\"__left-table-sidebar-wrapper\">\n                        <app-user-permission-filter [parentContext]=\"context\" [parentModel]=\"model\">\n                        </app-user-permission-filter>\n                    </div>\n                </as-split-area>\n                <as-split-area size=\"33\">\n                    <div class=\"__left-table-sidebar-wrapper\">\n                        <app-user-role [parentContext]=\"context\" [parentModel]=\"model\">\n                        </app-user-role>\n                    </div>\n                </as-split-area>\n\n                <as-split-area size=\"34\">\n                    <div class=\"__left-table-sidebar-wrapper\">\n                        <app-user-permission-area [parentContext]=\"context\" [parentModel]=\"model\">\n                        </app-user-permission-area>\n                    </div>\n                </as-split-area>\n            </as-split>\n        </div>\n    </div>\n</div>\n","styles":[".right-save-button{align-items:center;display:flex;justify-content:flex-end}.right-save-button>button{margin-right:.5rem}.__left-table-sidebar-wrapper{height:100%}"]}]}],"members":{"crudList":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":13,"character":5},"arguments":["crudList",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":20,"character":29},{"__symbolic":"reference","module":"tnx-admin-service/authorization/usergroup/services","name":"UserGroupService","line":21,"character":37},{"__symbolic":"reference","module":"tnx-admin-service/authorization/permission/services","name":"PermissionService","line":22,"character":36}]}],"ngOnInit":[{"__symbolic":"method"}],"savePermission":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"tnx-shared","name":"DataListBase","line":14,"character":49},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"app-user-permission-area","providers":[{"__symbolic":"reference","module":"tnx-shared","name":"ComponentContextService","line":12,"character":16}],"template":"<div class=\"tn-l-list-wrapper  flex-container-fit-child\">\n    <div class=\"tn-l-sidebar-header\">\n        <span (click)=\"expand(functionTreeData)\" class=\"action-add-item\">\n            <i *ngIf=\"isExpand\" class=\"fas fa-compress\"></i>\n            <i *ngIf=\"!isExpand\" class=\"fas fa-expand\"></i>\n        </span>\n        &nbsp;Cây chức năng\n    </div>\n\n    <div class=\"p-grid sv-lop tn-l-searching-wrapper\">\n        <div class=\"p-col-12\">\n            <dropdown [control]=\"controlModule\" [(value)]=\"moduleCode\" (onChanged)=\"handleChangePhanHe($event)\">\n            </dropdown>\n        </div>\n    </div>\n\n    <div class=\"fit-content\" style=\"margin: 0 0.5rem; height: 100%;\">\n        <tn-custom-scrollbar #scrollbar\n            class=\"tn-scroll-bar myflexcolumn defaulFlexColumn sv-lop tn-l-custom-table-scrollbar\">\n            <p-tree [style]=\"{'width': '100%'}\" styleClass=\"tn-tree-beauty ctdt-nhomtc-tree\" [value]=\"functionTreeData\"\n                filterPlaceholder=\"Tìm kiếm\" selectionMode=\"single\" [filter]=\"true\" [(selection)]=\"selectedTreeNode\">\n                <ng-template let-node pTemplate=\"default\">\n                    <input type=\"checkbox\" name=\"permissionIds\" [indeterminate]=\"node.data.status == 'crossed'\"\n                        [ngModel]=\"node.data.status == 'checked'\" (ngModelChange)=\"checkNode(node)\"\n                        [disabled]=\"checkDisabled(node)\">\n                    {{node.label}}\n                </ng-template>\n            </p-tree>\n        </tn-custom-scrollbar>\n    </div>\n\n</div>\n","styles":[".tn-l-sidebar-header{background-color:#1ca7ff;color:#fff;height:30px;margin-bottom:10px;padding:6px 15px;position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:10}.tn-l-searching-wrapper{margin-left:0;margin-right:0}::ng-deep app-user-permission-area{display:flex;flex-direction:column;height:100%;overflow:hidden}::ng-deep app-user-permission-area [hidden]{display:none!important}::ng-deep app-user-permission-area .tn-l-toggle-icon{align-items:center;display:flex;height:20px;justify-content:center;margin-top:-10px;position:absolute;right:5px;top:50%;width:20px}::ng-deep app-user-permission-area .tn-l-toggle-icon:before{position:relative}::ng-deep app-user-permission-area .tn-l-toggle-icon.--up:before{top:3px}::ng-deep app-user-permission-area .tn-l-toggle-icon.--down:before{top:-3px}::ng-deep app-user-permission-area search-sinh-vien-form .crud-form.crud-form.crud-form>div{padding-bottom:0;padding-top:0}::ng-deep app-user-permission-area crud-list{font-size:13px}::ng-deep app-user-permission-area crud-list .base-status-low,::ng-deep app-user-permission-area crud-list .paging-info-detail{font-size:1em}::ng-deep app-user-permission-area .tn-l-list-wrapper{display:flex;flex-direction:column;height:100%;min-width:330px;overflow:hidden}::ng-deep app-user-permission-area .tn-l-list-wrapper>tn-custom-scrollbar{display:flex;overflow:hidden}::ng-deep app-user-permission-area .clear-padding .ui-g-12{padding:5px}::ng-deep app-user-permission-area .p-dropdown{width:100%}.summary-tinchi-title{color:red}.summary-tinchi{align-items:center;color:red;display:flex;font-size:16px;font-weight:700}.summary-tinchi>span:first-child{flex-grow:1;text-align:left}.summary-tinchi>span:last-child{position:-webkit-sticky;position:sticky;right:1em;white-space:nowrap}.btn-excel{padding-right:30px}.btn-excel .expand-menu{align-items:center;background:transparent;border-left:1px solid #fff;color:#fff;content:\"\";display:flex;height:calc(100% + 2px);justify-content:center;position:absolute;right:0;top:-1px;width:30px}.btn-add-in-group{color:#00b200;cursor:pointer;font-size:18px;margin-bottom:-5px;margin-left:5px}::ng-deep .container-ctdt-nhomtc-tree{border:1px solid #ddd;border-radius:5px;height:calc(100% - 1em);left:.5em;padding-top:.5em;position:absolute;top:.5em;width:calc(100% - .5em)}::ng-deep .container-ctdt-nhomtc-tree .ps__rail-x,::ng-deep .container-ctdt-nhomtc-tree .ps__rail-y{z-index:8}::ng-deep .ctdt-nhomtc-tree-filter{background:#fff;padding:0 .5em;position:-webkit-sticky;position:sticky;top:0;z-index:6}::ng-deep .ctdt-nhomtc-tree-filter .tn-dropdown{width:100%}::ng-deep body .ui-tree.ctdt-nhomtc-tree{border:none;padding:0 0 .25em}::ng-deep body .ui-tree.ctdt-nhomtc-tree .ui-tree-filter-container{left:1px;position:-webkit-sticky;position:sticky;top:0;width:calc(100% - 2px);z-index:4}::ng-deep body .ui-tree.ctdt-nhomtc-tree .tree-node-text~button{height:24px;margin-left:.5em;width:24px}::ng-deep body .ui-tree.ctdt-nhomtc-tree .tree-node-text.medium-tree-node-text{display:inherit}::ng-deep body .ui-tree.ctdt-nhomtc-tree .tree-node-text.medium-tree-node-text[level=\"1\"]{color:#4396f3}::ng-deep body .ui-tree.ctdt-nhomtc-tree .tree-node-text.medium-tree-node-text[level=\"2\"]{color:#2bbd2b}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .custom-card{display:flex;flex-direction:column;max-height:calc(100vh - 76px)}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan crud-list{display:flex;overflow:hidden}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan crud-list>div{display:flex;flex-direction:column;width:100%}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan crud-list .container-table{flex:1;overflow:hidden}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan crud-list .container-table>div,::ng-deep tbl_ChuongTrinhDaoTao_HocPhan crud-list .container-table>div>div{height:100%}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan crud-list .ui-table-summary{z-index:5}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .ui-tooltip{max-width:unset}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .ui-contextmenu{width:unset}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .content-rowGroup{display:flex;flex-grow:1}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .content-rowGroup>div:first-child{align-items:center;display:flex;flex-grow:1;padding:.5em}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .content-rowGroup .soTinChi{border-left:1px solid #fff;color:red;padding:.5em;text-align:right;width:60px}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .content-rowGroup .rest-space{border-left:1px solid #fff;padding:.5em;width:115px}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .content-rowGroup .rowGroup-action{border-left:1px solid #fff;padding:.5em 17px;text-align:center;width:100px}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .content-rowGroup .rowGroup-action button{margin-right:calc(.5em + 5px);width:1.8em}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .content-rowGroup .rowGroup-action button .ui-button-text{padding:.2em}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .content-rowGroup .rowGroup-action button:last-child{margin-right:2px}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .viewHocPhan{color:#2c7fc3;cursor:pointer}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .hoc-phan-ten{min-width:75px}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .khong-tinh-diem{color:#847878}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan p-table>.ui-table{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .ps__rail-x,::ng-deep tbl_ChuongTrinhDaoTao_HocPhan .ps__rail-y{z-index:10}@media screen and (max-width:640px){.cell-phanTiet{background:#58abc3;color:#fff;min-height:26px;position:unset}.tn-l-left-as-split-area{min-width:90vw}.tn-l-right-as-split-area{flex:1 1 90vw}.tn-l-right-content-wrapper{display:flex;overflow:auto}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":38,"character":29},{"__symbolic":"reference","module":"tnx-admin-service/authorization/usergroup/services","name":"UserGroupService","line":39,"character":37},{"__symbolic":"reference","module":"tnx-admin-service/authorization/module/services","name":"ModuleService","line":40,"character":32},{"__symbolic":"reference","module":"tnx-admin-service/authorization/permission/services","name":"PermissionService","line":41,"character":36}]}],"ngOnInit":[{"__symbolic":"method"}],"onSelectedUser":[{"__symbolic":"method"}],"onSelectedUserGroup":[{"__symbolic":"method"}],"checkDisabled":[{"__symbolic":"method"}],"expand":[{"__symbolic":"method"}],"doExpand":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"handleChangePhanHe":[{"__symbolic":"method"}],"getFunctionTree":[{"__symbolic":"method"}],"appendKeyToTreeNode":[{"__symbolic":"method"}],"doSearch":[{"__symbolic":"method"}],"checkNode":[{"__symbolic":"method"}],"doCheckParent":[{"__symbolic":"method"}],"doCheckChildren":[{"__symbolic":"method"}],"doUncheckParent":[{"__symbolic":"method"}],"doUncheckChildrent":[{"__symbolic":"method"}],"addPermissionId":[{"__symbolic":"method"}],"removePermissionId":[{"__symbolic":"method"}],"markCorssed":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"tnx-shared","name":"DataListBase","line":23,"character":51},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"app-user-permission-filter","providers":[{"__symbolic":"reference","module":"tnx-shared","name":"ComponentContextService","line":21,"character":16}],"template":"<div class=\"container-user-filter flex-container-fit-child\">\n    <div class=\"tn-l-sidebar-header\">\n        Đối tượng phân quyền\n    </div>\n\n    <div class=\"p-grid tn-l-searching-wrapper\">\n        <div class=\"p-col-6\">\n            <p-dropdown autoWidth=\"false\" [options]=\"loaiDataSource\" [style]=\"{'width':'100%'}\" [(ngModel)]=\"type\"\n                        (onChange)=\"onChangeType($event)\">\n            </p-dropdown>\n        </div>\n        <div #searchPanel class=\"p-inputgroup p-col-6 tn-local-custom--padding-horizontal\">\n            <input style=\"width: 100%\" type=\"text\" pInputText placeholder=\"Tìm kiếm\" [(ngModel)]=\"searchText\"\n                   (keyup)=\"search($event)\">\n            <button pButton type=\"button\" icon=\"fas fa-search\" class=\"ui-button-warn\"\n                    (click)=\"_triggerProcessData()\"></button>\n        </div>\n    </div>\n\n    <div class=\"fit-content\">\n        <div style=\"margin: 0 -0.5rem;\">\n            <crud-list #crudList [model]=\"model\" [hiddenAdd]=\"type == 2\" [hiddenDelete]=\"type == 2\" [setting]=\"setting\"\n                       [dataSource]=\"model.dataSource\" (onRowSelect)=\"onChangeSelect($event)\"\n                       (onCopyLink)=\"_copyLink($event)\"\n                       (onCopyLinkMultiple)=\"_copyLinkMultiple()\" (onReload)=\"_triggerProcessData($event)\"\n                       (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\n                       (onDelete)=\"_delete($event)\"\n                       (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_handleReloaded($event)\">\n\n                <ng-template #functionCol let-rowData=\"rowData\">\n                    <button type=\"button\" pButton pRipple pTooltip=\"{{'FORM.EDIT' | translate}}\" tooltipPosition=\"top\"\n                            class=\"p-button-rounded p-button-text p-button-info link-or-action\" icon=\"pi pi-pencil\"\n                            (click)=\"editUserGroup(rowData)\">\n                    </button>\n                </ng-template>\n\n            </crud-list>\n        </div>\n    </div>\n</div>\n\n<tn-dialog *ngIf=\"showDetailForm && this.type == enumUserGroupType.Group\" #dialog [styleClass]=\"'address-form'\"\n           [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showDetailForm = false\">\n    <usergroup-form #formBase [parentModel]=\"model\" [parentContext]=\"context\" [model]=\"formModel\"\n                    (onSaved)=\"showDetailForm = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\">\n    </usergroup-form>\n</tn-dialog>\n\n\n<tn-dialog *ngIf=\"showDetailForm && this.type == enumUserGroupType.User\" #dialog [styleClass]=\"'address-form'\"\n           [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showDetailForm = false\">\n    <user-group-contain-user #formBase [parentModel]=\"model\" [parentContext]=\"context\" [model]=\"formModel\"\n                             (onSaved)=\"showDetailForm = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\">\n    </user-group-contain-user>\n</tn-dialog>\n\n<tn-dialog *ngIf=\"showDetailForm && this.type == enumUserGroupType.Client\" #dialog [styleClass]=\"'address-form'\"\n           [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\"\n           (onHide)=\"showDetailForm = false\">\n    <client-management-form #formBase [model]=\"formModel\" [parentContext]=\"context\" [parentModel]=\"model\"\n                 [parentSetting]=\"setting\" (onCancel)=\"_handleCancel($event)\"\n                 (onSaved)=\"showDetailForm = false;crudList.reload()\">\n    </client-management-form>\n</tn-dialog>\n","styles":[".tn-l-sidebar-header{background-color:#1ca7ff;color:#fff;height:30px;margin-bottom:10px;padding:6px 15px;position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:10}.tn-l-searching-wrapper{margin-left:-.5rem;margin-right:0}::ng-deep app-user-permission-filter{display:flex;flex-direction:column;height:100%;overflow:hidden}::ng-deep app-user-permission-filter [hidden]{display:none!important}::ng-deep app-user-permission-filter .tn-l-toggle-icon{align-items:center;display:flex;height:20px;justify-content:center;margin-top:-10px;position:absolute;right:5px;top:50%;width:20px}::ng-deep app-user-permission-filter .tn-l-toggle-icon:before{position:relative}::ng-deep app-user-permission-filter .tn-l-toggle-icon.--up:before{top:3px}::ng-deep app-user-permission-filter .tn-l-toggle-icon.--down:before{top:-3px}::ng-deep app-user-permission-filter search-sinh-vien-form .crud-form.crud-form.crud-form>div{padding-bottom:0;padding-top:0}::ng-deep app-user-permission-filter crud-list{font-size:13px}::ng-deep app-user-permission-filter crud-list .base-status-low,::ng-deep app-user-permission-filter crud-list .paging-info-detail{font-size:1em}::ng-deep app-user-permission-filter .tn-l-list-wrapper{display:flex;flex-direction:column;height:100%;min-width:330px;overflow:hidden}::ng-deep app-user-permission-filter .tn-l-list-wrapper>tn-custom-scrollbar{display:flex;overflow:hidden}::ng-deep app-user-permission-filter .clear-padding .ui-g-12{padding:5px}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":43,"character":29},{"__symbolic":"reference","module":"tnx-admin-service/authorization/usergroup/services","name":"UserGroupService","line":44,"character":37},{"__symbolic":"reference","module":"tnx-admin-service/client-management/services","name":"ClientService","line":45,"character":34}]}],"ngOnInit":[{"__symbolic":"method"}],"modifyGridInfo":[{"__symbolic":"method"}],"afterGetData":[{"__symbolic":"method"}],"beforeRenderDataSource":[{"__symbolic":"method"}],"modifyDataSourceIfClient":[{"__symbolic":"method"}],"onChangeType":[{"__symbolic":"method"}],"initColsForUser":[{"__symbolic":"method"}],"initColsForGroup":[{"__symbolic":"method"}],"initColsForClientId":[{"__symbolic":"method"}],"onChangeSelect":[{"__symbolic":"method"}],"editUserGroup":[{"__symbolic":"method"}],"search":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"tnx-shared","name":"DataListBase","line":11,"character":39},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"app-user-role","providers":[{"__symbolic":"reference","module":"tnx-shared","name":"ComponentContextService","line":9,"character":16}],"template":"<div class=\"flex-container-fit-child\">\n    <div class=\"tn-l-sidebar-header\">\n        Vai trò\n    </div>\n\n    <div class=\"p-grid sv-lop tn-l-searching-wrapper\">\n        <div #searchPanel class=\"p-inputgroup p-col-12 \">\n            <input style=\"width: 100%\" type=\"text\" pInputText placeholder=\"Tìm kiếm\" [(ngModel)]=\"searchText\"\n                (keyup.enter)=\"_triggerProcessData()\">\n            <button pButton type=\"button\" icon=\"fas fa-search\" class=\"ui-button-warn\"\n                (click)=\"_triggerProcessData()\"></button>\n        </div>\n    </div>\n\n    <div class=\"fit-content\">\n        <div style=\"margin: 0 -0.5rem;\">\n            <crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\n                (onCopyLink)=\"_copyLink($event)\" (onCopyLinkMultiple)=\"_copyLinkMultiple()\"\n                (onCopyLink)=\"_copyLink($event)\" (onCopyLinkMultiple)=\"_copyLinkMultiple()\"\n                (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\"\n                (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\"\n                (onReloaded)=\"_handleReloaded($event)\">\n                <ng-template #checkbox let-rowData=\"rowData\">\n                    <p-checkbox name=\"roleIds\" [(ngModel)]=\"roleIds\" [value]=\"rowData.id\"\n                        (onChange)=\"onChangeSelect($event)\"\n                        [disabled]=\"originalRoleIds.includes(rowData.id) && !roleEditable.includes(rowData.id)\">\n                    </p-checkbox>\n                </ng-template>\n            </crud-list>\n        </div>\n    </div>\n\n</div>\n\n<tn-dialog *ngIf=\"showDetailForm\" #dialog [styleClass]=\"'address-form'\" [header]=\"setting.popupHeader | translate\"\n    [popupSize]=\"setting.popupSize\" (onHide)=\"showDetailForm = false\">\n    <role-form #formBase [parentModel]=\"model\" [parentContext]=\"context\" [model]=\"formModel\"\n        (onSaved)=\"showDetailForm = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"></role-form>\n</tn-dialog>\n","styles":[".tn-l-sidebar-header{background-color:#1ca7ff;color:#fff;height:30px;margin-bottom:10px;padding:6px 15px;position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:10}.tn-l-searching-wrapper{margin-left:0;margin-right:0}::ng-deep app-user-role{display:flex;flex-direction:column;height:100%;overflow:hidden}::ng-deep app-user-role [hidden]{display:none!important}::ng-deep app-user-role .tn-l-toggle-icon{align-items:center;display:flex;height:20px;justify-content:center;margin-top:-10px;position:absolute;right:5px;top:50%;width:20px}::ng-deep app-user-role .tn-l-toggle-icon:before{position:relative}::ng-deep app-user-role .tn-l-toggle-icon.--up:before{top:3px}::ng-deep app-user-role .tn-l-toggle-icon.--down:before{top:-3px}::ng-deep app-user-role search-sinh-vien-form .crud-form.crud-form.crud-form>div{padding-bottom:0;padding-top:0}::ng-deep app-user-role crud-list{font-size:13px}::ng-deep app-user-role crud-list .base-status-low,::ng-deep app-user-role crud-list .paging-info-detail{font-size:1em}::ng-deep app-user-role .tn-l-list-wrapper{display:flex;flex-direction:column;height:100%;min-width:330px;overflow:hidden}::ng-deep app-user-role .tn-l-list-wrapper>tn-custom-scrollbar{display:flex;overflow:hidden}::ng-deep app-user-role .clear-padding .ui-g-12{padding:5px}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":23,"character":29},{"__symbolic":"reference","module":"tnx-admin-service/authorization/role/services","name":"RoleService","line":24,"character":32}]}],"ngOnInit":[{"__symbolic":"method"}],"onSelectedUser":[{"__symbolic":"method"}],"onSelectedUserGroup":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"modifyGridInfo":[{"__symbolic":"method"}],"onChangeSelect":[{"__symbolic":"method"}],"toggleCheckAll":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"tnx-shared","name":"DataFormBase","line":11,"character":51},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"user-group-contain-user","providers":[{"__symbolic":"reference","module":"tnx-shared","name":"ComponentContextService","line":9,"character":16}],"template":"<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\n    (onFormReady)=\"_handleFormReady($event)\">\n</crud-form>\n<ng-template #buttonTemplate>\n    <button type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\n        (click)=\"_handleSave($event)\"></button>\n    <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\n        [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\n</ng-template>\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":14,"character":29},{"__symbolic":"reference","module":"tnx-admin-service/authorization/usergroup/services","name":"UserGroupService","line":15,"character":35},{"__symbolic":"reference","module":"tnx-admin-service/authorization/usergroup/services","name":"UserGroupHasUserService","line":16,"character":42}]}],"ngOnInit":[{"__symbolic":"method"}],"onFormInitialized":[{"__symbolic":"method"}],"onFormEvent":[{"__symbolic":"method"}],"getPromiseActionInsert":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":10,"character":36},"member":"forChild"},"arguments":[[{"path":"","component":{"__symbolic":"reference","name":"ɵb"}}]]}},"origins":{"ɵa":"./userpermission.module","UserPermissionModule":"./userpermission.module","UserPermissionWithRouteModule":"./userpermission.module","ɵb":"./userpermission.component","ɵc":"./user-permission-area/user-permission-area.component","ɵd":"./user-permission-filter/user-permission-filter.component","ɵe":"./user-role/user-role.component","ɵf":"./user-group-contain-user/user-group-contain-user.component","ɵg":"./userpermission.routing"},"importAs":"tnx-admin-service/authorization/userpermission"}