tnx-shared 5.3.152 → 5.3.154

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/bundles/tnx-shared.umd.js +70 -883
  2. package/bundles/tnx-shared.umd.js.map +1 -1
  3. package/bundles/tnx-shared.umd.min.js +1 -1
  4. package/bundles/tnx-shared.umd.min.js.map +1 -1
  5. package/esm2015/components/access-denied-component/access-denied.component.js +2 -2
  6. package/esm2015/components/common-dashboard/common-dashboard.component.js +2 -2
  7. package/esm2015/components/splash-component/splash-component.component.js +2 -2
  8. package/esm2015/tnx-shared.js +63 -67
  9. package/esm2015/tnx-shared.module.js +15 -11
  10. package/fesm2015/tnx-shared.js +9 -742
  11. package/fesm2015/tnx-shared.js.map +1 -1
  12. package/package.json +2 -2
  13. package/tnx-shared.d.ts +62 -66
  14. package/tnx-shared.d.ts.map +1 -1
  15. package/tnx-shared.metadata.json +1 -1
  16. package/tnx-shared.module.d.ts +2 -6
  17. package/tnx-shared.module.d.ts.map +1 -1
  18. package/tnx-shared.module.ngfactory.d.ts.map +1 -1
  19. package/components/splash-component/splash-component-v1/splash-component-v1.component.d.ts +0 -41
  20. package/components/splash-component/splash-component-v1/splash-component-v1.component.d.ts.map +0 -1
  21. package/components/splash-component/splash-component-v1/splash-component-v1.component.ngfactory.d.ts.map +0 -1
  22. package/components/splash-component/splash-component-v1/splash-component-v1.component.scss.shim.ngstyle.d.ts.map +0 -1
  23. package/components/splash-component/splash-component-v2/splash-component-v2.component.d.ts +0 -41
  24. package/components/splash-component/splash-component-v2/splash-component-v2.component.d.ts.map +0 -1
  25. package/components/splash-component/splash-component-v2/splash-component-v2.component.ngfactory.d.ts.map +0 -1
  26. package/components/splash-component/splash-component-v2/splash-component-v2.component.scss.shim.ngstyle.d.ts.map +0 -1
  27. package/components/splash-component/splash-component-v3/splash-component-v3.component.d.ts +0 -41
  28. package/components/splash-component/splash-component-v3/splash-component-v3.component.d.ts.map +0 -1
  29. package/components/splash-component/splash-component-v3/splash-component-v3.component.ngfactory.d.ts.map +0 -1
  30. package/components/splash-component/splash-component-v3/splash-component-v3.component.scss.shim.ngstyle.d.ts.map +0 -1
  31. package/components/splash-component/splash-component-v4/splash-component-v4.component.d.ts +0 -41
  32. package/components/splash-component/splash-component-v4/splash-component-v4.component.d.ts.map +0 -1
  33. package/components/splash-component/splash-component-v4/splash-component-v4.component.ngfactory.d.ts.map +0 -1
  34. package/components/splash-component/splash-component-v4/splash-component-v4.component.scss.shim.ngstyle.d.ts.map +0 -1
  35. package/esm2015/components/splash-component/splash-component-v1/splash-component-v1.component.js +0 -197
  36. package/esm2015/components/splash-component/splash-component-v2/splash-component-v2.component.js +0 -190
  37. package/esm2015/components/splash-component/splash-component-v3/splash-component-v3.component.js +0 -197
  38. package/esm2015/components/splash-component/splash-component-v4/splash-component-v4.component.js +0 -197
@@ -27667,7 +27667,7 @@
27667
27667
  }());
27668
27668
  SplashComponentComponent.decorators = [
27669
27669
  { type: i0.Component, args: [{
27670
- selector: 'splash-component',
27670
+ selector: 'common-splash-component',
27671
27671
  template: "<ng-template viewContainerRef></ng-template>\n",
27672
27672
  providers: [ComponentContextService],
27673
27673
  styles: [".modules{background-color:#fff;font-family:monospace;background:url(/assets/images/splash-bg.png);background-repeat:no-repeat;background-position:50%;background-size:cover;position:fixed;top:0;left:0;z-index:100;display:flex;justify-content:center;align-items:center;width:100vw;height:100vh;flex-direction:column}.modules div>span{min-width:100px;height:100px;width:100px;margin:10px;box-shadow:1px 2px 9px 1px #bbb;white-space:normal}.modules div>span,.modules div>span>a{display:inline-block;border-radius:5px}.modules div>span>a{height:100%;width:100%;color:#fff;text-decoration:unset;text-align:center;position:relative;font-weight:700;text-shadow:2px 3px 3px hsla(0,0%,42.7%,.4392156862745098);cursor:pointer}.modules div>span>a i{animation:in 1s}.modules div>span>a:hover i{animation:out 1s}@media (max-width:1370px){.modules{justify-content:flex-start;overflow:auto}.module-icons.module-icons{margin-bottom:20px}.welcome-user.welcome-user{margin-top:30px;margin-bottom:30px}.welcome-user.welcome-user img{width:100px;height:100px}.clock{margin:0 20px;font-size:1.5em}.data-time{margin:10px 0 20px;font-size:1em}}.modules div>span>a>span{display:inline-block;color:#fff;text-decoration:unset;text-align:center;position:absolute;bottom:10px;width:100%;left:0}.modules div>span.implementing{background-color:#fff;box-shadow:none}.modules div>span>a>i{font-size:3em;position:absolute;top:10px;width:100%;left:0}.div22{width:240px}.div33{width:360px}.div44{width:480px}.div55{width:600px}.div88{width:960px}::ng-deep .flexcolumn{max-width:calc(100vh - 20px)}.div1111-wrapper{width:100%;overflow:auto}.div1111{white-space:nowrap}.module-icons{color:#666;width:100%}.module-icons,.welcome-user{margin-bottom:80px;text-align:center}.welcome-user a{background:#c2f3c3;padding:6px;border-radius:3px;cursor:pointer}.welcome-user a i{margin-right:6px}.welcome-user img{border-radius:50%;border:2px dashed rgba(0,144,162,.5019607843137255);height:200px;width:200px;-o-object-fit:contain;object-fit:contain}.welcome-user h2{color:#0090a2}.clock-wrapper{color:rgba(0,144,162,.6666666666666666);font-size:2em;text-align:center}.loader{color:#607d8b;font-size:8px;width:1em;height:1em;border-radius:50%;position:absolute;text-indent:-9999em;animation:load4 1.3s linear infinite;transform:translate(-50%,-50%);top:50%;left:50%}@keyframes load4{0%,to{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}"]
@@ -28235,7 +28235,7 @@
28235
28235
  }());
28236
28236
  AccessDeniedComponent.decorators = [
28237
28237
  { type: i0.Component, args: [{
28238
- selector: 'app-access-denied',
28238
+ selector: 'common-access-denied',
28239
28239
  template: "<ng-template viewContainerRef></ng-template>\n",
28240
28240
  providers: [ComponentContextService],
28241
28241
  styles: [".modules{background-color:#fff;font-family:monospace;background:url(/assets/images/splash-bg.png);background-repeat:no-repeat;background-position:50%;background-size:cover;position:fixed;top:0;left:0;z-index:100;display:flex;justify-content:center;align-items:center;width:100vw;height:100vh;flex-direction:column}.welcome-user{text-align:center;margin-bottom:80px}.welcome-user a{background:#c2f3c3;padding:6px;border-radius:3px;cursor:pointer}.welcome-user a i{margin-right:6px}.welcome-user img{border-radius:50%;border:2px dashed rgba(0,144,162,.5019607843137255);height:250px;width:250px;-o-object-fit:contain;object-fit:contain}.welcome-user h2{color:#0090a2}.welcome-user h1{color:#666;max-width:75vw;font-size:2rem}"]
@@ -28276,7 +28276,7 @@
28276
28276
  }());
28277
28277
  CommonDashboardComponent.decorators = [
28278
28278
  { type: i0.Component, args: [{
28279
- selector: 'app-common-dashboard',
28279
+ selector: 'common-common-dashboard',
28280
28280
  template: "<ng-template viewContainerRef></ng-template>\n",
28281
28281
  providers: [ComponentContextService],
28282
28282
  styles: ["::ng-deep .common-dashboard{width:100%;height:66.7ch;display:flex;flex-direction:column;justify-content:center;align-items:center}::ng-deep .common-dashboard .icon>i{font-size:40px;padding:10px;border-radius:5px}::ng-deep .common-dashboard .greeting{display:flex;flex-direction:column;padding:20px 0;border-radius:5px}::ng-deep .common-dashboard .greeting>div{display:flex;justify-content:center;align-items:center;text-align:center}::ng-deep .common-dashboard .greeting .greeting-title{font-size:25px;padding-bottom:10px}::ng-deep .common-dashboard .greeting .long-title{font-size:30px;padding-left:5px;font-weight:700;text-transform:uppercase}::ng-deep .common-dashboard .back{font-size:14px;color:#397ac3;opacity:.85;cursor:pointer}::ng-deep .common-dashboard .back:hover{opacity:1}@media (max-width:640px){.common-dashboard .greeting{padding:15px 0}.common-dashboard .greeting .greeting-title{font-size:16px}.common-dashboard .greeting .long-title{font-size:20px;padding:0}}"]
@@ -54492,815 +54492,6 @@
54492
54492
  lstItem: [{ type: i0.Input }]
54493
54493
  };
54494
54494
 
54495
- var SplashComponentV1Component = /** @class */ (function (_super) {
54496
- __extends(SplashComponentV1Component, _super);
54497
- function SplashComponentV1Component(injector, _moduleConfigService, _permissionService, _deviceDetectorService, _userService, _router, _authenService, _globalService) {
54498
- var _this = _super.call(this, injector) || this;
54499
- _this._moduleConfigService = _moduleConfigService;
54500
- _this._permissionService = _permissionService;
54501
- _this._deviceDetectorService = _deviceDetectorService;
54502
- _this._userService = _userService;
54503
- _this._router = _router;
54504
- _this._authenService = _authenService;
54505
- _this._globalService = _globalService;
54506
- _this.defaultAvatar = '';
54507
- _this.appSwitcherItems = [];
54508
- _this.loaded = false;
54509
- _this.currentDate = new Date();
54510
- _this.showDefaultSetting = false;
54511
- _this.fileApi = '';
54512
- _this.isOnMobile = false;
54513
- _this.daysInWeek = ['Chủ nhật', 'Thứ 2', 'Thứ 3', 'Thứ 4', 'Thứ 5', 'Thứ 6', 'Thứ 7'];
54514
- _this.rootContext.fireEvent('MAIN_CONTENT_ONLY', true);
54515
- _this.environment = _this._moduleConfigService.getConfig().environment;
54516
- _this.defaultAvatar = _this.environment.appMetadata.main.defaultMaleAvatar;
54517
- _this.fileApi = _this.environment.apiDomain.fileEndpoint + "/" + _this.environment.apiVersion + "/FileObject";
54518
- setInterval(function () {
54519
- _this.currentDate = new Date();
54520
- }, 1000);
54521
- if (_this.rootContext.data.currentAppMetadata && _this.rootContext.data.currentAppMetadata && _this.rootContext.data.currentAppMetadata.showDefaultSetting != null && _this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined) {
54522
- _this.showDefaultSetting = _this.rootContext.data.currentAppMetadata.showDefaultSetting;
54523
- }
54524
- else {
54525
- if (_this.environment.appMetadata.main.showDefaultSetting != null && _this.environment.appMetadata.main.showDefaultSetting != undefined) {
54526
- _this.showDefaultSetting = _this.environment.appMetadata.main.showDefaultSetting;
54527
- }
54528
- else {
54529
- _this.showDefaultSetting = false;
54530
- }
54531
- }
54532
- // Config for authentication
54533
- _this._globalService.setHeaderState(false);
54534
- _this._globalService.setMenuState(false);
54535
- _this.underconstruction = _this.environment.underconstruction;
54536
- return _this;
54537
- }
54538
- SplashComponentV1Component.prototype.ngOnInit = function () {
54539
- var _this = this;
54540
- if (this._deviceDetectorService.isMobile()) {
54541
- this.isOnMobile = true;
54542
- }
54543
- if (this.rootContext.data.currentUser) {
54544
- if (this.rootContext.data.currentUser.gender == 0) {
54545
- this.defaultAvatar = this.environment.appMetadata.main.defaultFemaleAvatar;
54546
- }
54547
- else {
54548
- this.defaultAvatar = this.environment.appMetadata.main.defaultMaleAvatar;
54549
- }
54550
- }
54551
- this.rootContext.replaySubscribe(ComCtxConstants.ROOT.USER_LOADED, function (rs) {
54552
- _this.currentUser = _this._userService.getCurrentUser();
54553
- _this.loadAppMetadata();
54554
- _this.loaded = true;
54555
- });
54556
- if (this.rootModel.allowAnonymous) {
54557
- this.loaded = true;
54558
- this.loadAppMetadata();
54559
- }
54560
- };
54561
- SplashComponentV1Component.prototype.loadAppMetadata = function () {
54562
- var _this = this;
54563
- var prmsAppSwicherItem = new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
54564
- var arr, _a, _b, _i, ind, element, isAuthorized;
54565
- return __generator(this, function (_c) {
54566
- switch (_c.label) {
54567
- case 0:
54568
- arr = [];
54569
- _a = [];
54570
- for (_b in this.environment.appMetadata.appSwitcher)
54571
- _a.push(_b);
54572
- _i = 0;
54573
- _c.label = 1;
54574
- case 1:
54575
- if (!(_i < _a.length)) return [3 /*break*/, 5];
54576
- ind = _a[_i];
54577
- element = this.environment.appMetadata.appSwitcher[ind];
54578
- if (!(this.rootModel.allowAnonymous && element.allowAnonymous)) return [3 /*break*/, 2];
54579
- arr.push(element);
54580
- return [3 /*break*/, 4];
54581
- case 2:
54582
- if (!this.currentUser) return [3 /*break*/, 4];
54583
- return [4 /*yield*/, this._permissionService.isAuthorized(element.code, (element.code + ".MODULE." + element.code).toUpperCase(), true)];
54584
- case 3:
54585
- isAuthorized = _c.sent();
54586
- if (isAuthorized) {
54587
- arr.push(element);
54588
- }
54589
- _c.label = 4;
54590
- case 4:
54591
- _i++;
54592
- return [3 /*break*/, 1];
54593
- case 5:
54594
- resolve(arr);
54595
- return [2 /*return*/];
54596
- }
54597
- });
54598
- }); });
54599
- prmsAppSwicherItem.then(function (rs) {
54600
- _this.appSwitcherItems.length = 0;
54601
- if (rs) {
54602
- rs.forEach(function (element) {
54603
- if (element.visible) {
54604
- if (!_this.currentUser) { // allow anonymous
54605
- _this.appSwitcherItems.push(element);
54606
- }
54607
- else {
54608
- if (_this.currentUser.maNguoiHoc && _this.currentUser.issuperuser.toLowerCase() != 'true') {
54609
- if (element.code.toLowerCase() == 'sv' || element.code.toLowerCase() == 'user') {
54610
- _this.appSwitcherItems.push(element);
54611
- }
54612
- }
54613
- else {
54614
- _this.appSwitcherItems.push(element);
54615
- }
54616
- }
54617
- }
54618
- });
54619
- if (_this.appSwitcherItems.length === 1) {
54620
- setTimeout(function (x) { return _this.switchApp(_this.appSwitcherItems[0]); }, 100);
54621
- }
54622
- }
54623
- });
54624
- };
54625
- SplashComponentV1Component.prototype.switchApp = function (item) {
54626
- this.loaded = false;
54627
- if (item.target == '_blank') {
54628
- var url = item.url;
54629
- if (item.defaultRedirect) {
54630
- url += "/" + item.defaultRedirect;
54631
- }
54632
- top.location.href = url;
54633
- }
54634
- else {
54635
- if (item.defaultRedirect != '' && !this.rootContext.data.flags.menuTopOpenning) {
54636
- this._router.navigateByUrl(item.defaultRedirect);
54637
- this.rootContext.data.currentAppMetadata = this.environment.appMetadata.appSwitcher.find(function (x) { return x.code == item.code; });
54638
- if (this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined && this.rootContext.data.currentAppMetadata.showDefaultSetting != null) {
54639
- this.showDefaultSetting = this.rootContext.data.currentAppMetadata.showDefaultSetting && this.showDefaultSetting;
54640
- }
54641
- }
54642
- }
54643
- };
54644
- SplashComponentV1Component.prototype.logout = function () {
54645
- this._authenService.logout();
54646
- };
54647
- SplashComponentV1Component.prototype.goToPersonal = function () {
54648
- var userMenu = this.environment.appMetadata.appSwitcher.find(function (x) { return x.code == 'USER'; });
54649
- this.switchApp(userMenu);
54650
- };
54651
- SplashComponentV1Component.prototype.getCurrentUserAvatar = function () {
54652
- if (this.rootContext.data.currentUser && this.rootContext.data.currentUser.avatar) {
54653
- return this.fileApi + "/public/" + this.rootContext.data.currentUser.avatar + "/Download";
54654
- }
54655
- else {
54656
- return this.defaultAvatar;
54657
- }
54658
- };
54659
- SplashComponentV1Component.prototype.getNgayTrongTuan = function () {
54660
- return this.daysInWeek[this.currentDate.getDay()];
54661
- };
54662
- SplashComponentV1Component.prototype.showProfilePage = function () {
54663
- if (this._userService.isSinhVienAccount()) {
54664
- return false;
54665
- }
54666
- return true;
54667
- };
54668
- SplashComponentV1Component.prototype.ngOnDestroy = function () {
54669
- _super.prototype.ngOnDestroy.call(this);
54670
- this._globalService.setHeaderState(true);
54671
- this._globalService.setMenuState(true);
54672
- };
54673
- SplashComponentV1Component.prototype.login = function () {
54674
- this.rootContext.fireEvent('LOGIN');
54675
- };
54676
- return SplashComponentV1Component;
54677
- }(ComponentBase));
54678
- SplashComponentV1Component.decorators = [
54679
- { type: i0.Component, args: [{
54680
- selector: 'splash-component-v1',
54681
- template: "<div *ngIf=\"!loaded\" class=\"wrp-loader\">\n <div class=\"loader\"></div>\n</div>\n<div *ngIf=\"loaded\" class=\"modules-v1\">\n <div class=\"welcome-user\">\n <div class=\"profile-image\">\n <img class=\"custom-avatar\" [src-fallback]=\"defaultAvatar\" [src]=\"getCurrentUserAvatar()\" />\n </div>\n\n <div class=\"wrp-login\">\n <h2>Xin ch\u00E0o!</h2>\n <b>{{currentUser.fullName}}</b>\n <div *ngIf=\"currentUser\" class=\"login\">\n <a (click)=\"goToPersonal()\"><i class=\"far fa-folder-open\"></i>Trang c\u00E1 nh\u00E2n</a>\n <a style=\"background: #fabc01;\" (click)=\"logout()\"><i class=\"far fa-arrow-alt-circle-right\"></i>\u0110\u0103ng\n xu\u1EA5t</a>\n </div>\n <div *ngIf=\"!currentUser\" class=\"login\"><a style=\"background: #fabc01;\" (click)=\"login()\"><i\n class=\"fas fa-sign-out-alt\"></i>\u0110\u0103ng nh\u1EADp</a></div>\n </div>\n\n <div class=\"clock-wrapper\">\n <h1 class=\"clock\">{{currentDate | date:'HH:mm:ss'}}</h1>\n <h4 class=\"data-time\">{{getNgayTrongTuan()}}, ng\u00E0y {{currentDate | date:'dd/MM/yyyy'}}</h4>\n </div>\n </div>\n\n <div class=\"module-icons\">\n <div class=\"img-title\">\n <img *ngIf=\"!environment.appMetadata.main.isHiddenSplashLogo\" class=\"tn-custom-logo\"\n [src]=\"environment.appMetadata.main.logo\" [alt]=\"environment.appMetadata.main.owner\">\n <div class=\"title\">\n <h2>{{environment.appMetadata.main.title}}</h2>\n <h1>{{environment.appMetadata.main.owner}}</h1>\n </div>\n </div>\n\n <div class=\"div1111-wrapper\">\n <tn-custom-scrollbar *ngIf=\"!isOnMobile\">\n <ng-container *ngTemplateOutlet=\"appSwitcher\"></ng-container>\n </tn-custom-scrollbar>\n\n <ng-container *ngIf=\"isOnMobile\">\n <ng-container *ngTemplateOutlet=\"appSwitcher\"></ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #appSwitcher>\n <div class=\"div1111\">\n <ng-container *ngFor=\"let item of appSwitcherItems; let ind = index;\">\n <span>\n <a class=\"bg-switcher\" (click)=\"switchApp(item)\">\n <i class=\"{{item.icon}} app-switcher-item-icon\"></i>\n <span>{{ item.title | translate}}</span>\n </a>\n </span>\n </ng-container>\n </div>\n</ng-template>",
54682
- providers: [ComponentContextService],
54683
- styles: ["body{background-color:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.wrp-loader{position:absolute;display:inline-block;top:50%;left:50%;transform:translate(-50%,-50%);z-index:101}.wrp-loader .loader{border-radius:50%;border:2px solid #bcdbf5;border-top-color:#3192e1;width:10px;height:10px;color:#607d8b;font-size:10px;animation:load4 1.3s linear infinite;display:block}.modules-v1{position:fixed;top:0;left:0;z-index:100;display:flex;justify-content:center;align-items:center;width:100vw;height:100vh;background-image:url(/assets/images/background-splash.png);background-repeat:no-repeat;background-position:50%;background-size:cover}.modules-v1 div>span{display:inline-block;min-width:100px;height:120px;width:120px;margin:10px;box-shadow:1px 2px 9px 1px #dadada;border-radius:5px;white-space:normal}.modules-v1 div>span>a{height:100%;display:inline-block;position:relative;font-weight:700;cursor:pointer;border-radius:5px;display:flex;flex-direction:column;justify-content:space-evenly}.modules-v1 div>span>a,.modules-v1 div>span>a>span{width:100%;color:#fff;text-decoration:unset;text-align:center}.modules-v1 div>span>a>span{display:inline-block;line-height:1.2}.modules-v1 div>span>a>i{font-size:3.5em;width:100%}.modules-v1 .div1111-wrapper{overflow:auto;height:420px;margin:0 auto;max-width:700px}.modules-v1 .div1111-wrapper .div1111{white-space:nowrap;width:100%;display:flex;flex-wrap:wrap}.modules-v1 .div1111-wrapper .div1111 .bg-switcher{background:#fff;transition:.3s}.modules-v1 .div1111-wrapper .div1111 .bg-switcher .app-switcher-item-icon{color:#52abff;transition:.3s}.modules-v1 .div1111-wrapper .div1111 .bg-switcher span{color:#2f70ac;font-weight:500;text-shadow:none;transition:.3s;padding:0 5px}.modules-v1 .div1111-wrapper .div1111 .bg-switcher:hover{background:#fabc01;box-shadow:1px 2px 9px 1px rgba(39,23,86,.5215686274509804)}.modules-v1 .div1111-wrapper .div1111 .bg-switcher:hover .app-switcher-item-icon,.modules-v1 .div1111-wrapper .div1111 .bg-switcher:hover span{color:#2f70ac}.modules-v1 .module-icons{text-align:center;color:#666;width:65%;align-self:stretch;background-color:rgba(249,244,244,.9215686274509803);display:flex;flex-direction:column;justify-content:space-evenly}.modules-v1 .module-icons .img-title{padding-top:20px}.modules-v1 .module-icons .img-title .tn-custom-logo{max-height:125px}.modules-v1 .module-icons h2{font-size:25px;color:#271756;margin-bottom:15px;margin-top:15px}.modules-v1 .module-icons h1{color:#2f70ac;font-size:35px;margin-top:0;margin-bottom:0}.modules-v1 .welcome-user{text-align:center;width:35%;align-self:stretch;background-color:rgba(47,112,172,.9215686274509803);display:flex;flex-direction:column}.modules-v1 .welcome-user .wrp-login{margin:20px auto auto;color:#fff;display:flex;flex-direction:column;align-items:center}.modules-v1 .welcome-user .wrp-login h2{font-size:20px;margin-top:0;margin-bottom:5px;font-weight:500}.modules-v1 .welcome-user .wrp-login b{font-size:25px;text-transform:uppercase;display:block}.modules-v1 .welcome-user .wrp-login .login{display:grid;grid-template-columns:repeat(2,150px);grid-gap:10px;margin-top:30px}.modules-v1 .welcome-user .wrp-login .login a{background:#fff;padding:6px;border-radius:5px;cursor:pointer;display:inline-block;color:#5d5d5d}.modules-v1 .welcome-user .wrp-login .login a i{margin-right:10px}.modules-v1 .welcome-user .profile-image{margin:auto auto 0}.modules-v1 .welcome-user .profile-image img{border-radius:50%;height:200px;width:200px;-o-object-fit:contain;object-fit:contain;box-shadow:1px 1px 11px 6px #2a659b;background:#fff}.modules-v1 .welcome-user .clock-wrapper{color:#fff;text-align:center;margin-top:auto;margin-bottom:auto}.modules-v1 .welcome-user .clock-wrapper h4{font-size:18px;font-weight:500;margin-top:10px}.modules-v1 .welcome-user .clock-wrapper h1{margin-bottom:0;font-size:40px}.modules-v1 .underconstruction{text-transform:uppercase;color:red;font-weight:700;font-size:4em}@media (max-width:1368px){.modules-v1 .clock{margin:0 20px;font-size:1.5em}.modules-v1 .data-time{margin:10px 0 20px;font-size:1em}}@media (max-width:1100px){.modules-v1 .div1111-wrapper .div1111{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr))}}@media (max-width:991px){.modules-v1 .welcome-user .wrp-login .login{grid-template-columns:1fr}}@media (max-width:768px){.modules-v1{flex-direction:column}.modules-v1 .welcome-user{width:100%;height:270px;flex-direction:row;align-items:center;padding-bottom:87px}.modules-v1 .welcome-user .profile-image{margin-bottom:auto}.modules-v1 .welcome-user .profile-image img{height:150px;width:150px}.modules-v1 .welcome-user .wrp-login{margin-top:auto}.modules-v1 .welcome-user .wrp-login .login{margin-top:20px}.modules-v1 .welcome-user .clock-wrapper{padding-right:15px}.modules-v1 .module-icons{width:100%;height:calc(100% - 270px)}.modules-v1 .module-icons .img-title{background-image:url(/assets/images/logo.png);background-repeat:no-repeat;background-position:50%;z-index:9}.modules-v1 .module-icons .img-title img{display:none}.modules-v1 .module-icons .img-title .title{background:hsla(0,0%,100%,.9019607843137255);box-shadow:1px 4px 9px 2px #67a0d4;padding:20px 10px;position:absolute;width:calc(100% - 40px);left:20px;right:20px;top:200px}.modules-v1 .module-icons .img-title .title h2{font-size:30px}.modules-v1 .module-icons .img-title .title h1{font-size:34px}}@media (max-width:640px){.modules-v1 .welcome-user{display:block;padding-top:20px}.modules-v1 .welcome-user .wrp-login{width:50%;padding:0 20px 0 0;float:right}.modules-v1 .welcome-user .wrp-login h2{margin-bottom:3px;font-size:14px}.modules-v1 .welcome-user .wrp-login b{font-size:14px}.modules-v1 .welcome-user .wrp-login .login{margin-top:10px;display:flex;flex-direction:column;padding:0 15px;text-align:left}.modules-v1 .welcome-user .wrp-login .login a{font-size:14px}.modules-v1 .welcome-user .profile-image{width:50%;float:left}.modules-v1 .welcome-user .profile-image img{height:130px;width:130px;margin-left:35px;display:block}.modules-v1 .welcome-user .clock-wrapper{clear:both;padding-top:10px;padding-right:0}.modules-v1 .welcome-user .clock-wrapper h4{font-size:14px;margin-top:5px}.modules-v1 .welcome-user .clock-wrapper h1{font-size:1.3em}.modules-v1 .module-icons .img-title{background-size:80px 80px}.modules-v1 .module-icons .img-title .title{top:230px}.modules-v1 .module-icons .img-title .title h1{font-size:16px}.modules-v1 .module-icons .img-title .title h2{font-size:16px;margin-top:0}.modules-v1 .module-icons .div1111-wrapper{margin-top:0;height:360px}.modules-v1 .module-icons .div1111-wrapper .div1111 .bg-switcher span{font-size:14px}.modules-v1 .module-icons div>span{width:100px;height:100px}.modules-v1 .module-icons div>span>a>i{font-size:2.5em;top:10px}}@media (max-width:425px){.modules-v1 .module-icons .img-title .title{top:225px}.modules-v1 .module-icons .div1111-wrapper .div1111{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr))}}@media (max-width:375px){.modules-v1 .module-icons{height:calc(100% - 250px)}.modules-v1 .module-icons .img-title{background-size:60px 60px}.modules-v1 .module-icons .img-title .title{padding:10px;top:220px}.modules-v1 .module-icons .img-title .title h2{margin-bottom:10px}.modules-v1 .module-icons .img-title .title h1,.modules-v1 .module-icons .img-title .title h2{font-size:14px}.modules-v1 .welcome-user{height:250px}}@media (max-width:360px){.modules-v1 .module-icons{height:calc(100% - 240px)}.modules-v1 .module-icons .img-title{background-size:60px 60px}.modules-v1 .module-icons .img-title .title{top:205px;width:calc(100% - 20px);left:10px;right:10px}.modules-v1 .welcome-user{height:240px}.modules-v1 .welcome-user .clock-wrapper{padding-top:0}}@keyframes load4{0%,to{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}"]
54684
- },] }
54685
- ];
54686
- SplashComponentV1Component.ctorParameters = function () { return [
54687
- { type: i0.Injector },
54688
- { type: ModuleConfigService },
54689
- { type: PermissionService },
54690
- { type: ngxDeviceDetector.DeviceDetectorService },
54691
- { type: UserService },
54692
- { type: i3$1.Router },
54693
- { type: AuthenService },
54694
- { type: GlobalService }
54695
- ]; };
54696
-
54697
- var SplashComponentV2Component = /** @class */ (function (_super) {
54698
- __extends(SplashComponentV2Component, _super);
54699
- function SplashComponentV2Component(injector, _moduleConfigService, _permissionService, _deviceDetectorService, _userService, _router, _authenService, _globalService) {
54700
- var _this = _super.call(this, injector) || this;
54701
- _this._moduleConfigService = _moduleConfigService;
54702
- _this._permissionService = _permissionService;
54703
- _this._deviceDetectorService = _deviceDetectorService;
54704
- _this._userService = _userService;
54705
- _this._router = _router;
54706
- _this._authenService = _authenService;
54707
- _this._globalService = _globalService;
54708
- _this.defaultAvatar = '';
54709
- _this.appSwitcherItems = [];
54710
- _this.loaded = false;
54711
- _this.currentDate = new Date();
54712
- _this.showDefaultSetting = false;
54713
- _this.fileApi = '';
54714
- _this.isOnMobile = false;
54715
- _this.daysInWeek = ['Chủ nhật', 'Thứ 2', 'Thứ 3', 'Thứ 4', 'Thứ 5', 'Thứ 6', 'Thứ 7'];
54716
- _this.rootContext.fireEvent('MAIN_CONTENT_ONLY', true);
54717
- _this.environment = _this._moduleConfigService.getConfig().environment;
54718
- _this.defaultAvatar = _this.environment.appMetadata.main.defaultMaleAvatar;
54719
- _this.fileApi = _this.environment.apiDomain.fileEndpoint;
54720
- setInterval(function () {
54721
- _this.currentDate = new Date();
54722
- }, 1000);
54723
- if (_this.rootContext.data.currentAppMetadata && _this.rootContext.data.currentAppMetadata && _this.rootContext.data.currentAppMetadata.showDefaultSetting != null && _this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined) {
54724
- _this.showDefaultSetting = _this.rootContext.data.currentAppMetadata.showDefaultSetting;
54725
- }
54726
- else {
54727
- if (_this.environment.appMetadata.main.showDefaultSetting != null && _this.environment.appMetadata.main.showDefaultSetting != undefined) {
54728
- _this.showDefaultSetting = _this.environment.appMetadata.main.showDefaultSetting;
54729
- }
54730
- else {
54731
- _this.showDefaultSetting = false;
54732
- }
54733
- }
54734
- // Config for authentication
54735
- _this._globalService.setHeaderState(false);
54736
- _this._globalService.setMenuState(false);
54737
- _this.underconstruction = _this.environment.underconstruction;
54738
- return _this;
54739
- }
54740
- SplashComponentV2Component.prototype.ngOnInit = function () {
54741
- var _this = this;
54742
- if (this._deviceDetectorService.isMobile()) {
54743
- this.isOnMobile = true;
54744
- }
54745
- if (this.rootContext.data.currentUser) {
54746
- if (this.rootContext.data.currentUser.gender == 0) {
54747
- this.defaultAvatar = this.environment.appMetadata.main.defaultFemaleAvatar;
54748
- }
54749
- else {
54750
- this.defaultAvatar = this.environment.appMetadata.main.defaultMaleAvatar;
54751
- }
54752
- }
54753
- this.rootContext.replaySubscribe(ComCtxConstants.ROOT.USER_LOADED, function (rs) {
54754
- _this.currentUser = _this._userService.getCurrentUser();
54755
- _this.loadAppMetadata();
54756
- _this.loaded = true;
54757
- });
54758
- if (this.rootModel.allowAnonymous) {
54759
- this.loaded = true;
54760
- this.loadAppMetadata();
54761
- }
54762
- };
54763
- SplashComponentV2Component.prototype.loadAppMetadata = function () {
54764
- var _this = this;
54765
- var prmsAppSwicherItem = new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
54766
- var arr, _a, _b, _i, ind, element, clientId, isAuthorized;
54767
- return __generator(this, function (_c) {
54768
- switch (_c.label) {
54769
- case 0:
54770
- arr = [];
54771
- _a = [];
54772
- for (_b in this.environment.appMetadata.appSwitcher)
54773
- _a.push(_b);
54774
- _i = 0;
54775
- _c.label = 1;
54776
- case 1:
54777
- if (!(_i < _a.length)) return [3 /*break*/, 5];
54778
- ind = _a[_i];
54779
- element = this.environment.appMetadata.appSwitcher[ind];
54780
- clientId = this.environment.authenticationSettings.clientId;
54781
- if (!(this.rootModel.allowAnonymous && element.allowAnonymous)) return [3 /*break*/, 2];
54782
- arr.push(element);
54783
- return [3 /*break*/, 4];
54784
- case 2:
54785
- if (!this.currentUser) return [3 /*break*/, 4];
54786
- return [4 /*yield*/, this._permissionService.isAuthorized(element.code, (element.code + ".MODULE." + element.code).toUpperCase(), true)];
54787
- case 3:
54788
- isAuthorized = _c.sent();
54789
- if (isAuthorized) {
54790
- arr.push(element);
54791
- }
54792
- _c.label = 4;
54793
- case 4:
54794
- _i++;
54795
- return [3 /*break*/, 1];
54796
- case 5:
54797
- resolve(arr);
54798
- return [2 /*return*/];
54799
- }
54800
- });
54801
- }); });
54802
- prmsAppSwicherItem.then(function (rs) {
54803
- _this.appSwitcherItems.length = 0;
54804
- if (rs) {
54805
- rs.forEach(function (element) {
54806
- if (element.visible) {
54807
- if (!_this.currentUser) { // allow anonymous
54808
- _this.appSwitcherItems.push(element);
54809
- }
54810
- else {
54811
- if (_this.currentUser.maNguoiHoc && _this.currentUser.issuperuser.toLowerCase() != 'true') {
54812
- if (element.code.toLowerCase() == 'sv' || element.code.toLowerCase() == 'user') {
54813
- _this.appSwitcherItems.push(element);
54814
- }
54815
- }
54816
- else {
54817
- _this.appSwitcherItems.push(element);
54818
- }
54819
- }
54820
- }
54821
- });
54822
- if (_this.appSwitcherItems.length === 1) {
54823
- setTimeout(function (x) { return _this.switchApp(_this.appSwitcherItems[0]); }, 100);
54824
- }
54825
- }
54826
- });
54827
- };
54828
- SplashComponentV2Component.prototype.switchApp = function (item) {
54829
- this.loaded = false;
54830
- if (item.target == '_blank') {
54831
- var url = item.url;
54832
- if (item.defaultRedirect) {
54833
- url += "/" + item.defaultRedirect;
54834
- }
54835
- top.location.href = url;
54836
- }
54837
- else {
54838
- if (item.defaultRedirect != '' && !this.rootContext.data.flags.menuTopOpenning) {
54839
- this._router.navigateByUrl(item.defaultRedirect);
54840
- this.rootContext.data.currentAppMetadata = this.environment.appMetadata.appSwitcher.find(function (x) { return x.code == item.code; });
54841
- if (this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined && this.rootContext.data.currentAppMetadata.showDefaultSetting != null) {
54842
- this.showDefaultSetting = this.rootContext.data.currentAppMetadata.showDefaultSetting && this.showDefaultSetting;
54843
- }
54844
- }
54845
- }
54846
- };
54847
- SplashComponentV2Component.prototype.logout = function () {
54848
- this._authenService.logout();
54849
- };
54850
- SplashComponentV2Component.prototype.goToPersonal = function () {
54851
- var userMenu = this.environment.appMetadata.appSwitcher.find(function (x) { return x.code == 'USER'; });
54852
- this.switchApp(userMenu);
54853
- };
54854
- SplashComponentV2Component.prototype.getCurrentUserAvatar = function () {
54855
- if (this.rootContext.data.currentUser && this.rootContext.data.currentUser.avatar) {
54856
- return this.fileApi + "/file/public/" + this.rootContext.data.currentUser.avatar + "/Download";
54857
- }
54858
- else {
54859
- return this.defaultAvatar;
54860
- }
54861
- };
54862
- SplashComponentV2Component.prototype.getNgayTrongTuan = function () {
54863
- return this.daysInWeek[this.currentDate.getDay()];
54864
- };
54865
- SplashComponentV2Component.prototype.showProfilePage = function () {
54866
- if (this._userService.isSinhVienAccount()) {
54867
- return false;
54868
- }
54869
- return true;
54870
- };
54871
- SplashComponentV2Component.prototype.ngOnDestroy = function () {
54872
- _super.prototype.ngOnDestroy.call(this);
54873
- this._globalService.setHeaderState(true);
54874
- this._globalService.setMenuState(true);
54875
- };
54876
- SplashComponentV2Component.prototype.login = function () {
54877
- this.rootContext.fireEvent('LOGIN');
54878
- };
54879
- return SplashComponentV2Component;
54880
- }(ComponentBase));
54881
- SplashComponentV2Component.decorators = [
54882
- { type: i0.Component, args: [{
54883
- selector: 'splash-component-v2',
54884
- template: "<div *ngIf=\"!loaded\" class=\"wrp-loader\">\n <div class=\"loader\"></div>\n</div>\n<div *ngIf=\"loaded\" class=\"modules-v2\">\n <div class=\"welcome-user\">\n <div class=\"profile-image\">\n <div class=\"tn-full-name\">{{currentUser.fullName}}</div>\n <img class=\"custom-avatar\" [src-fallback]=\"defaultAvatar\" [src]=\"getCurrentUserAvatar()\" />\n <div *ngIf=\"currentUser\" class=\"login\">\n <a class=\"tn-icon-signout\" title=\"\u0110\u0103ng xu\u1EA5t\" (click)=\"logout()\">\n <i class=\"pi pi-sign-out\"></i>\n </a>\n </div>\n </div>\n </div>\n\n <div class=\"module-icons\">\n <div class=\"img-title\">\n <img class=\"tn-custom-logo\" [src]=\"environment.appMetadata.main.logo\"\n [alt]=\"environment.appMetadata.main.owner\">\n <div class=\"title\">\n <h2>{{environment.appMetadata.main.title}}</h2>\n <h1>{{environment.appMetadata.main.owner}}</h1>\n </div>\n <div *ngIf=\"!currentUser\" class=\"login\">\n <a class=\"tn-icon-signin\" title=\"\u0110\u0103ng nh\u1EADp\" (click)=\"login()\">\n <i class=\"pi pi-sign-in\"></i>\u0110\u0103ng nh\u1EADp\n </a>\n </div>\n </div>\n\n <div class=\"div1111-wrapper\">\n <tn-custom-scrollbar *ngIf=\"!isOnMobile\" [config]=\"{'suppressScrollY': true}\">\n <ng-container *ngTemplateOutlet=\"appSwitcher\"></ng-container>\n </tn-custom-scrollbar>\n\n <ng-container *ngIf=\"isOnMobile\">\n <ng-container *ngTemplateOutlet=\"appSwitcher\"></ng-container>\n </ng-container>\n </div>\n\n <div class=\"clock-wrapper\">\n <h1 class=\"clock\">{{currentDate | date:'HH:mm:ss'}}</h1>\n <h4 class=\"data-time\">{{getNgayTrongTuan()}}, ng\u00E0y {{currentDate | date:'dd/MM/yyyy'}}</h4>\n </div>\n </div>\n</div>\n\n<ng-template #appSwitcher>\n <div class=\"div1111\">\n <ng-container *ngFor=\"let item of appSwitcherItems; let ind = index;\">\n <span>\n <a class=\"bg-switcher\" (click)=\"switchApp(item)\">\n <i class=\"{{item.icon}} app-switcher-item-icon\"></i>\n <span>{{ item.title | translate}}</span>\n </a>\n </span>\n </ng-container>\n </div>\n</ng-template>",
54885
- providers: [ComponentContextService],
54886
- styles: ["body{background-color:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.wrp-loader{position:absolute;display:inline-block;top:50%;left:50%;transform:translate(-50%,-50%);z-index:101}.wrp-loader .loader{border-radius:50%;border:2px solid #bcdbf5;border-top-color:#3192e1;width:10px;height:10px;color:#607d8b;font-size:10px;animation:load4 1.3s linear infinite;display:block}.modules-v2{position:fixed;top:0;left:0;z-index:100;display:flex;justify-content:center;align-items:center;width:100vw;height:100vh;background-image:url(/assets/images/background-splash.png);background-repeat:no-repeat;background-position:50%;background-size:cover}.modules-v2 div>span{display:inline-block;min-width:100px;height:120px;width:120px;margin:10px;box-shadow:1px 2px 9px 1px #dfd1d1;border-radius:5px;white-space:normal}.modules-v2 div>span>a{height:100%;display:inline-block;position:relative;font-weight:700;cursor:pointer;border-radius:5px;display:flex;flex-direction:column;justify-content:space-evenly}.modules-v2 div>span>a,.modules-v2 div>span>a>span{width:100%;color:#fff;text-decoration:unset;text-align:center}.modules-v2 div>span>a>span{display:inline-block;line-height:1.2;padding:0 5px}.modules-v2 div>span>a>i{font-size:3.5em;width:100%}.modules-v2 .module-icons{text-align:center;color:#666;display:flex;flex-direction:column;justify-content:center;background:hsla(0,0%,100%,.9490196078431372);padding:40px 60px;border-radius:10px;box-shadow:1px 2px 9px 1px rgba(39,23,86,.5215686274509804)}.modules-v2 .module-icons h2{font-size:25px;color:#271756;margin-bottom:15px;margin-top:15px}.modules-v2 .module-icons h1{color:#2f70ac;font-size:35px;margin-top:0;margin-bottom:0}.modules-v2 .module-icons .img-title{margin-bottom:80px}.modules-v2 .module-icons .img-title img.tn-custom-logo{margin-bottom:30px}.modules-v2 .module-icons .img-title a.tn-icon-signin{cursor:pointer;background:#002c6c;padding:10px;display:inline-flex;color:#fff;justify-content:center;align-items:center;border-radius:5px}.modules-v2 .module-icons .img-title a.tn-icon-signin i{margin-right:5px}.modules-v2 .module-icons .div1111-wrapper{margin:0 auto 80px}.modules-v2 .module-icons .div1111-wrapper .div1111{white-space:nowrap;width:100%;display:flex;flex-wrap:wrap}.modules-v2 .module-icons .div1111-wrapper .div1111 .bg-switcher{background:#fff;transition:.3s}.modules-v2 .module-icons .div1111-wrapper .div1111 .bg-switcher .app-switcher-item-icon{color:#2f70ac;transition:.3s}.modules-v2 .module-icons .div1111-wrapper .div1111 .bg-switcher span{color:#2f70ac;font-weight:500;text-shadow:none;transition:.3s}.modules-v2 .module-icons .div1111-wrapper .div1111 .bg-switcher:hover{background:#002c6c;box-shadow:1px 2px 9px 1px rgba(39,23,86,.5215686274509804)}.modules-v2 .module-icons .div1111-wrapper .div1111 .bg-switcher:hover .app-switcher-item-icon,.modules-v2 .module-icons .div1111-wrapper .div1111 .bg-switcher:hover span{color:#fff}.modules-v2 .module-icons .clock-wrapper{color:#fff;text-align:center;margin-top:auto;margin-bottom:auto}.modules-v2 .module-icons .clock-wrapper h4{font-size:20px;font-weight:500;margin-top:10px;margin-bottom:0;color:#2f70ac}.modules-v2 .module-icons .clock-wrapper h1{margin-bottom:0;font-size:40px}.modules-v2 .welcome-user{text-align:center;display:flex;color:#333;position:absolute;top:20px;right:20px;background:hsla(0,0%,100%,.9019607843137255);padding:10px;border-radius:10px;box-shadow:1px 2px 9px 1px rgba(39,23,86,.5215686274509804)}.modules-v2 .welcome-user .wrp-login{margin:auto;color:#333;display:flex;flex-direction:column;align-items:center}.modules-v2 .welcome-user .wrp-login h2{font-size:20px;margin-top:0;margin-bottom:5px;font-weight:500}.modules-v2 .profile-image{display:flex;justify-content:center;align-items:center}.modules-v2 .profile-image .tn-full-name{font-size:18px;margin-right:10px}.modules-v2 .profile-image img{border-radius:50%;height:40px;width:40px;-o-object-fit:contain;object-fit:contain;background:#fff;margin-right:10px}.modules-v2 .profile-image .login{display:grid;grid-gap:10px}.modules-v2 .profile-image .login a.tn-icon-signout{border-radius:50%;cursor:pointer;width:40px;height:40px;display:flex;justify-content:center;align-items:center;background:#002c6c}.modules-v2 .profile-image .login a.tn-icon-signout i{font-size:16px;color:#edc16f}@media (max-width:1368px){.modules-v2 .clock{margin:0 20px;font-size:1.5em}.modules-v2 .data-time{margin:10px 0 20px;font-size:1em}}@media (max-width:1200px){.modules-v2 .welcome-user{top:10px;right:10px}}@media (max-width:768px){.modules-v2 .module-icons .img-title .title h2{font-size:28px}.modules-v2 .module-icons .img-title .title h1{font-size:32px}}@media (max-width:640px){.modules-v2 .welcome-user{top:10px;right:10px;width:calc(100% - 20px);justify-content:flex-end}.modules-v2 .module-icons{padding:20px;margin:10px}.modules-v2 .module-icons .img-title{margin-bottom:40px}.modules-v2 .module-icons .img-title .title h1{font-size:19px}.modules-v2 .module-icons .img-title .title h2{font-size:16px;margin-top:0;margin-bottom:10px}.modules-v2 .module-icons .div1111-wrapper{margin-bottom:50px}.modules-v2 .module-icons .div1111-wrapper .div1111{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr))}.modules-v2 .module-icons .div1111-wrapper .div1111 .bg-switcher span{font-size:14px}.modules-v2 .module-icons div>span{width:100px;height:100px}.modules-v2 .module-icons div>span>a>i{font-size:3em;top:15px}.modules-v2 .module-icons .clock-wrapper h4{font-size:16px;margin-top:5px}.modules-v2 .module-icons .clock-wrapper h1{font-size:30px}}@media (max-width:375px){.modules-v2 .module-icons .img-title{margin-bottom:0}.modules-v2 .module-icons .img-title img.tn-custom-logo{width:100px;margin-bottom:10px}.modules-v2 .module-icons .img-title .title{padding:0}.modules-v2 .module-icons .img-title .title h2{margin-bottom:10px;font-size:14px}.modules-v2 .module-icons .div1111-wrapper{margin-bottom:0}.modules-v2 .module-icons .div1111-wrapper .div1111{display:flex;justify-content:center}.modules-v2 .module-icons .div1111-wrapper .div1111 .bg-switcher span{font-size:14px}}@keyframes load4{0%,to{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}"]
54887
- },] }
54888
- ];
54889
- SplashComponentV2Component.ctorParameters = function () { return [
54890
- { type: i0.Injector },
54891
- { type: ModuleConfigService },
54892
- { type: PermissionService },
54893
- { type: ngxDeviceDetector.DeviceDetectorService },
54894
- { type: UserService },
54895
- { type: i3$1.Router },
54896
- { type: AuthenService },
54897
- { type: GlobalService }
54898
- ]; };
54899
-
54900
- var SplashComponentV3Component = /** @class */ (function (_super) {
54901
- __extends(SplashComponentV3Component, _super);
54902
- function SplashComponentV3Component(injector, _moduleConfigService, _permissionService, _deviceDetectorService, _userService, _router, _authenService, _globalService) {
54903
- var _this = _super.call(this, injector) || this;
54904
- _this._moduleConfigService = _moduleConfigService;
54905
- _this._permissionService = _permissionService;
54906
- _this._deviceDetectorService = _deviceDetectorService;
54907
- _this._userService = _userService;
54908
- _this._router = _router;
54909
- _this._authenService = _authenService;
54910
- _this._globalService = _globalService;
54911
- _this.defaultAvatar = '';
54912
- _this.appSwitcherItems = [];
54913
- _this.loaded = false;
54914
- _this.currentDate = new Date();
54915
- _this.showDefaultSetting = false;
54916
- _this.fileApi = '';
54917
- _this.isOnMobile = false;
54918
- _this.daysInWeek = ['Chủ nhật', 'Thứ 2', 'Thứ 3', 'Thứ 4', 'Thứ 5', 'Thứ 6', 'Thứ 7'];
54919
- _this.rootContext.fireEvent('MAIN_CONTENT_ONLY', true);
54920
- _this.environment = _this._moduleConfigService.getConfig().environment;
54921
- _this.defaultAvatar = _this.environment.appMetadata.main.defaultMaleAvatar;
54922
- _this.fileApi = _this.environment.apiDomain.fileEndpoint + "/" + _this.environment.apiVersion + "/FileObject";
54923
- setInterval(function () {
54924
- _this.currentDate = new Date();
54925
- }, 1000);
54926
- if (_this.rootContext.data.currentAppMetadata && _this.rootContext.data.currentAppMetadata && _this.rootContext.data.currentAppMetadata.showDefaultSetting != null && _this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined) {
54927
- _this.showDefaultSetting = _this.rootContext.data.currentAppMetadata.showDefaultSetting;
54928
- }
54929
- else {
54930
- if (_this.environment.appMetadata.main.showDefaultSetting != null && _this.environment.appMetadata.main.showDefaultSetting != undefined) {
54931
- _this.showDefaultSetting = _this.environment.appMetadata.main.showDefaultSetting;
54932
- }
54933
- else {
54934
- _this.showDefaultSetting = false;
54935
- }
54936
- }
54937
- // Config for authentication
54938
- _this._globalService.setHeaderState(false);
54939
- _this._globalService.setMenuState(false);
54940
- _this.underconstruction = _this.environment.underconstruction;
54941
- return _this;
54942
- }
54943
- SplashComponentV3Component.prototype.ngOnInit = function () {
54944
- var _this = this;
54945
- if (this._deviceDetectorService.isMobile()) {
54946
- this.isOnMobile = true;
54947
- }
54948
- if (this.rootContext.data.currentUser) {
54949
- if (this.rootContext.data.currentUser.gender == 0) {
54950
- this.defaultAvatar = this.environment.appMetadata.main.defaultFemaleAvatar;
54951
- }
54952
- else {
54953
- this.defaultAvatar = this.environment.appMetadata.main.defaultMaleAvatar;
54954
- }
54955
- }
54956
- this.rootContext.replaySubscribe(ComCtxConstants.ROOT.USER_LOADED, function (rs) {
54957
- _this.currentUser = _this._userService.getCurrentUser();
54958
- _this.loadAppMetadata();
54959
- _this.loaded = true;
54960
- });
54961
- if (this.rootModel.allowAnonymous) {
54962
- this.loaded = true;
54963
- this.loadAppMetadata();
54964
- }
54965
- };
54966
- SplashComponentV3Component.prototype.loadAppMetadata = function () {
54967
- var _this = this;
54968
- var prmsAppSwicherItem = new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
54969
- var arr, _a, _b, _i, ind, element, isAuthorized;
54970
- return __generator(this, function (_c) {
54971
- switch (_c.label) {
54972
- case 0:
54973
- arr = [];
54974
- _a = [];
54975
- for (_b in this.environment.appMetadata.appSwitcher)
54976
- _a.push(_b);
54977
- _i = 0;
54978
- _c.label = 1;
54979
- case 1:
54980
- if (!(_i < _a.length)) return [3 /*break*/, 5];
54981
- ind = _a[_i];
54982
- element = this.environment.appMetadata.appSwitcher[ind];
54983
- if (!(this.rootModel.allowAnonymous && element.allowAnonymous)) return [3 /*break*/, 2];
54984
- arr.push(element);
54985
- return [3 /*break*/, 4];
54986
- case 2:
54987
- if (!this.currentUser) return [3 /*break*/, 4];
54988
- return [4 /*yield*/, this._permissionService.isAuthorized(element.code, (element.code + ".MODULE." + element.code).toUpperCase(), true)];
54989
- case 3:
54990
- isAuthorized = _c.sent();
54991
- if (isAuthorized) {
54992
- arr.push(element);
54993
- }
54994
- _c.label = 4;
54995
- case 4:
54996
- _i++;
54997
- return [3 /*break*/, 1];
54998
- case 5:
54999
- resolve(arr);
55000
- return [2 /*return*/];
55001
- }
55002
- });
55003
- }); });
55004
- prmsAppSwicherItem.then(function (rs) {
55005
- _this.appSwitcherItems.length = 0;
55006
- if (rs) {
55007
- rs.forEach(function (element) {
55008
- if (element.visible) {
55009
- if (!_this.currentUser) { // allow anonymous
55010
- _this.appSwitcherItems.push(element);
55011
- }
55012
- else {
55013
- if (_this.currentUser.maNguoiHoc && _this.currentUser.issuperuser.toLowerCase() != 'true') {
55014
- if (element.code.toLowerCase() == 'sv' || element.code.toLowerCase() == 'user') {
55015
- _this.appSwitcherItems.push(element);
55016
- }
55017
- }
55018
- else {
55019
- _this.appSwitcherItems.push(element);
55020
- }
55021
- }
55022
- }
55023
- });
55024
- if (_this.appSwitcherItems.length === 1) {
55025
- setTimeout(function (x) { return _this.switchApp(_this.appSwitcherItems[0]); }, 100);
55026
- }
55027
- }
55028
- });
55029
- };
55030
- SplashComponentV3Component.prototype.switchApp = function (item) {
55031
- this.loaded = false;
55032
- if (item.target == '_blank') {
55033
- var url = item.url;
55034
- if (item.defaultRedirect) {
55035
- url += "/" + item.defaultRedirect;
55036
- }
55037
- top.location.href = url;
55038
- }
55039
- else {
55040
- if (item.defaultRedirect != '' && !this.rootContext.data.flags.menuTopOpenning) {
55041
- this._router.navigateByUrl(item.defaultRedirect);
55042
- this.rootContext.data.currentAppMetadata = this.environment.appMetadata.appSwitcher.find(function (x) { return x.code == item.code; });
55043
- if (this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined && this.rootContext.data.currentAppMetadata.showDefaultSetting != null) {
55044
- this.showDefaultSetting = this.rootContext.data.currentAppMetadata.showDefaultSetting && this.showDefaultSetting;
55045
- }
55046
- }
55047
- }
55048
- };
55049
- SplashComponentV3Component.prototype.logout = function () {
55050
- this._authenService.logout();
55051
- };
55052
- SplashComponentV3Component.prototype.goToPersonal = function () {
55053
- var userMenu = this.environment.appMetadata.appSwitcher.find(function (x) { return x.code == 'USER'; });
55054
- this.switchApp(userMenu);
55055
- };
55056
- SplashComponentV3Component.prototype.getCurrentUserAvatar = function () {
55057
- if (this.rootContext.data.currentUser && this.rootContext.data.currentUser.avatar) {
55058
- return this.fileApi + "/public/" + this.rootContext.data.currentUser.avatar + "/Download";
55059
- }
55060
- else {
55061
- return this.defaultAvatar;
55062
- }
55063
- };
55064
- SplashComponentV3Component.prototype.getNgayTrongTuan = function () {
55065
- return this.daysInWeek[this.currentDate.getDay()];
55066
- };
55067
- SplashComponentV3Component.prototype.showProfilePage = function () {
55068
- if (this._userService.isSinhVienAccount()) {
55069
- return false;
55070
- }
55071
- return true;
55072
- };
55073
- SplashComponentV3Component.prototype.ngOnDestroy = function () {
55074
- _super.prototype.ngOnDestroy.call(this);
55075
- this._globalService.setHeaderState(true);
55076
- this._globalService.setMenuState(true);
55077
- };
55078
- SplashComponentV3Component.prototype.login = function () {
55079
- this.rootContext.fireEvent('LOGIN');
55080
- };
55081
- return SplashComponentV3Component;
55082
- }(ComponentBase));
55083
- SplashComponentV3Component.decorators = [
55084
- { type: i0.Component, args: [{
55085
- selector: 'splash-component-v3',
55086
- template: "<div *ngIf=\"!loaded\" class=\"wrp-loader\">\n <div class=\"loader\"></div>\n</div>\n<div *ngIf=\"loaded\" class=\"modules-v1\">\n <div class=\"welcome-user\">\n <div class=\"profile-image\">\n <img class=\"custom-avatar\" [src-fallback]=\"defaultAvatar\" [src]=\"getCurrentUserAvatar()\" />\n </div>\n\n <div class=\"wrp-login\">\n <h2>Xin ch\u00E0o!</h2>\n <b>{{currentUser.fullName}}</b>\n <div *ngIf=\"currentUser\" class=\"login\">\n <a (click)=\"goToPersonal()\"><i class=\"far fa-folder-open\"></i>Trang c\u00E1 nh\u00E2n</a>\n <a style=\"background: #fabc01;\" (click)=\"logout()\"><i class=\"far fa-arrow-alt-circle-right\"></i>\u0110\u0103ng\n xu\u1EA5t</a>\n </div>\n <div *ngIf=\"!currentUser\" class=\"login\"><a style=\"background: #fabc01;\" (click)=\"login()\"><i\n class=\"fas fa-sign-out-alt\"></i>\u0110\u0103ng nh\u1EADp</a></div>\n </div>\n\n <div class=\"clock-wrapper\">\n <h1 class=\"clock\">{{currentDate | date:'HH:mm:ss'}}</h1>\n <h4 class=\"data-time\">{{getNgayTrongTuan()}}, ng\u00E0y {{currentDate | date:'dd/MM/yyyy'}}</h4>\n </div>\n </div>\n\n <div class=\"module-icons\">\n <div class=\"img-title\">\n <img class=\"tn-custom-logo\" [src]=\"environment.appMetadata.main.logo\"\n [alt]=\"environment.appMetadata.main.owner\">\n <div class=\"title\">\n <h2>{{environment.appMetadata.main.title}}</h2>\n <h1>{{environment.appMetadata.main.owner}}</h1>\n </div>\n </div>\n\n <div class=\"div1111-wrapper\">\n <tn-custom-scrollbar *ngIf=\"!isOnMobile\">\n <ng-container *ngTemplateOutlet=\"appSwitcher\"></ng-container>\n </tn-custom-scrollbar>\n\n <ng-container *ngIf=\"isOnMobile\">\n <ng-container *ngTemplateOutlet=\"appSwitcher\"></ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #appSwitcher>\n <div class=\"div1111\">\n <ng-container *ngFor=\"let item of appSwitcherItems; let ind = index;\">\n <span>\n <a class=\"bg-switcher\" (click)=\"switchApp(item)\">\n <i class=\"{{item.icon}} app-switcher-item-icon\"></i>\n <span>{{ item.title | translate}}</span>\n </a>\n </span>\n </ng-container>\n </div>\n</ng-template>",
55087
- providers: [ComponentContextService],
55088
- styles: ["body{background-color:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.wrp-loader{position:absolute;display:inline-block;top:50%;left:50%;transform:translate(-50%,-50%);z-index:101}.wrp-loader .loader{border-radius:50%;border:2px solid #bcdbf5;border-top-color:#3192e1;width:10px;height:10px;color:#607d8b;font-size:10px;animation:load4 1.3s linear infinite;display:block}.modules-v1{position:fixed;top:0;left:0;z-index:100;display:flex;justify-content:center;align-items:center;width:100vw;height:100vh;background-image:url(/assets/images/background-splash.png);background-repeat:no-repeat;background-position:50%;background-size:cover}.modules-v1 div>span{display:inline-block;min-width:100px;height:120px;width:120px;margin:10px;box-shadow:1px 2px 9px 1px #dadada;border-radius:5px;white-space:normal}.modules-v1 div>span>a{height:100%;display:inline-block;position:relative;font-weight:700;cursor:pointer;border-radius:5px;display:flex;flex-direction:column;justify-content:space-evenly}.modules-v1 div>span>a,.modules-v1 div>span>a>span{width:100%;color:#fff;text-decoration:unset;text-align:center}.modules-v1 div>span>a>span{display:inline-block;line-height:1.2}.modules-v1 div>span>a>i{font-size:3.5em;width:100%}.modules-v1 .div1111-wrapper{overflow:auto;height:420px;margin:0 auto;max-width:700px}.modules-v1 .div1111-wrapper .div1111{white-space:nowrap;width:100%;display:flex;flex-wrap:wrap}.modules-v1 .div1111-wrapper .div1111 .bg-switcher{background:#fff;transition:.3s}.modules-v1 .div1111-wrapper .div1111 .bg-switcher .app-switcher-item-icon{color:#52abff;transition:.3s}.modules-v1 .div1111-wrapper .div1111 .bg-switcher span{color:#2f70ac;font-weight:500;text-shadow:none;transition:.3s;padding:0 5px}.modules-v1 .div1111-wrapper .div1111 .bg-switcher:hover{background:#fabc01;box-shadow:1px 2px 9px 1px rgba(39,23,86,.5215686274509804)}.modules-v1 .div1111-wrapper .div1111 .bg-switcher:hover .app-switcher-item-icon,.modules-v1 .div1111-wrapper .div1111 .bg-switcher:hover span{color:#2f70ac}.modules-v1 .module-icons{text-align:center;color:#666;width:65%;align-self:stretch;background-color:rgba(249,244,244,.9215686274509803);display:flex;flex-direction:column;justify-content:center}.modules-v1 .module-icons .img-title{padding:20px}.modules-v1 .module-icons .img-title .tn-custom-logo{max-height:125px}.modules-v1 .module-icons .img-title .title{margin:24px 0}.modules-v1 .module-icons h2{font-size:25px;color:#271756;margin-bottom:15px;margin-top:15px}.modules-v1 .module-icons h1{color:#2f70ac;font-size:35px;margin-top:0;margin-bottom:0}.modules-v1 .welcome-user{text-align:center;width:35%;align-self:stretch;background-color:rgba(47,112,172,.9215686274509803);display:flex;flex-direction:column}.modules-v1 .welcome-user .wrp-login{margin:20px auto auto;color:#fff;display:flex;flex-direction:column;align-items:center}.modules-v1 .welcome-user .wrp-login h2{font-size:20px;margin-top:0;margin-bottom:5px;font-weight:500}.modules-v1 .welcome-user .wrp-login b{font-size:25px;text-transform:uppercase;display:block}.modules-v1 .welcome-user .wrp-login .login{display:grid;grid-template-columns:repeat(2,150px);grid-gap:10px;margin-top:30px}.modules-v1 .welcome-user .wrp-login .login a{background:#fff;padding:6px;border-radius:5px;cursor:pointer;display:inline-block;color:#5d5d5d}.modules-v1 .welcome-user .wrp-login .login a i{margin-right:10px}.modules-v1 .welcome-user .profile-image{margin:auto auto 0}.modules-v1 .welcome-user .profile-image img{border-radius:50%;height:200px;width:200px;-o-object-fit:contain;object-fit:contain;box-shadow:1px 1px 11px 6px #2a659b;background:#fff}.modules-v1 .welcome-user .clock-wrapper{color:#fff;text-align:center;margin-top:auto;margin-bottom:auto}.modules-v1 .welcome-user .clock-wrapper h4{font-size:18px;font-weight:500;margin-top:10px}.modules-v1 .welcome-user .clock-wrapper h1{margin-bottom:0;font-size:40px}.modules-v1 .underconstruction{text-transform:uppercase;color:red;font-weight:700;font-size:4em}@media (max-width:1368px){.modules-v1 .clock{margin:0 20px;font-size:1.5em}.modules-v1 .data-time{margin:10px 0 20px;font-size:1em}}@media (max-width:1100px){.modules-v1 .div1111-wrapper .div1111{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr))}}@media (max-width:991px){.modules-v1 .welcome-user .wrp-login .login{grid-template-columns:1fr}}@media (max-width:768px){.modules-v1{flex-direction:column}.modules-v1 .welcome-user{width:100%;height:270px;flex-direction:row;align-items:center;padding-bottom:87px}.modules-v1 .welcome-user .profile-image{margin-bottom:auto}.modules-v1 .welcome-user .profile-image img{height:150px;width:150px}.modules-v1 .welcome-user .wrp-login{margin-top:auto}.modules-v1 .welcome-user .wrp-login .login{margin-top:20px}.modules-v1 .welcome-user .clock-wrapper{padding-right:15px}.modules-v1 .module-icons{width:100%;height:calc(100% - 270px)}.modules-v1 .module-icons .img-title{background-image:url(/assets/images/logo.png);background-repeat:no-repeat;background-position:50%;z-index:9}.modules-v1 .module-icons .img-title img{display:none}.modules-v1 .module-icons .img-title .title{background:hsla(0,0%,100%,.9019607843137255);box-shadow:1px 4px 9px 2px #67a0d4;padding:20px 10px;position:absolute;width:calc(100% - 40px);left:20px;right:20px;top:200px}.modules-v1 .module-icons .img-title .title h2{font-size:30px}.modules-v1 .module-icons .img-title .title h1{font-size:34px}}@media (max-width:640px){.modules-v1 .welcome-user{display:block;padding-top:20px}.modules-v1 .welcome-user .wrp-login{width:50%;padding:0 20px 0 0;float:right}.modules-v1 .welcome-user .wrp-login h2{margin-bottom:3px;font-size:14px}.modules-v1 .welcome-user .wrp-login b{font-size:14px}.modules-v1 .welcome-user .wrp-login .login{margin-top:10px;display:flex;flex-direction:column;padding:0 15px;text-align:left}.modules-v1 .welcome-user .wrp-login .login a{font-size:14px}.modules-v1 .welcome-user .profile-image{width:50%;float:left}.modules-v1 .welcome-user .profile-image img{height:130px;width:130px;margin-left:35px;display:block}.modules-v1 .welcome-user .clock-wrapper{clear:both;padding-top:10px;padding-right:0}.modules-v1 .welcome-user .clock-wrapper h4{font-size:14px;margin-top:5px}.modules-v1 .welcome-user .clock-wrapper h1{font-size:1.3em}.modules-v1 .module-icons .img-title{background-size:80px 80px}.modules-v1 .module-icons .img-title .title{top:230px}.modules-v1 .module-icons .img-title .title h1{font-size:16px}.modules-v1 .module-icons .img-title .title h2{font-size:16px;margin-top:0}.modules-v1 .module-icons .div1111-wrapper{margin-top:0;height:360px}.modules-v1 .module-icons .div1111-wrapper .div1111 .bg-switcher span{font-size:14px}.modules-v1 .module-icons div>span{width:100px;height:100px}.modules-v1 .module-icons div>span>a>i{font-size:2.5em;top:10px}}@media (max-width:425px){.modules-v1 .module-icons .img-title .title{top:225px}.modules-v1 .module-icons .div1111-wrapper .div1111{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr))}}@media (max-width:375px){.modules-v1 .module-icons{height:calc(100% - 250px)}.modules-v1 .module-icons .img-title{background-size:60px 60px}.modules-v1 .module-icons .img-title .title{padding:10px;top:220px}.modules-v1 .module-icons .img-title .title h2{margin-bottom:10px}.modules-v1 .module-icons .img-title .title h1,.modules-v1 .module-icons .img-title .title h2{font-size:14px}.modules-v1 .welcome-user{height:250px}}@media (max-width:360px){.modules-v1 .module-icons{height:calc(100% - 240px)}.modules-v1 .module-icons .img-title{background-size:60px 60px}.modules-v1 .module-icons .img-title .title{top:205px;width:calc(100% - 20px);left:10px;right:10px}.modules-v1 .welcome-user{height:240px}.modules-v1 .welcome-user .clock-wrapper{padding-top:0}}@keyframes load4{0%,to{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}"]
55089
- },] }
55090
- ];
55091
- SplashComponentV3Component.ctorParameters = function () { return [
55092
- { type: i0.Injector },
55093
- { type: ModuleConfigService },
55094
- { type: PermissionService },
55095
- { type: ngxDeviceDetector.DeviceDetectorService },
55096
- { type: UserService },
55097
- { type: i3$1.Router },
55098
- { type: AuthenService },
55099
- { type: GlobalService }
55100
- ]; };
55101
-
55102
- var SplashComponentV4Component = /** @class */ (function (_super) {
55103
- __extends(SplashComponentV4Component, _super);
55104
- function SplashComponentV4Component(injector, _moduleConfigService, _permissionService, _deviceDetectorService, _userService, _router, _authenService, _globalService) {
55105
- var _this = _super.call(this, injector) || this;
55106
- _this._moduleConfigService = _moduleConfigService;
55107
- _this._permissionService = _permissionService;
55108
- _this._deviceDetectorService = _deviceDetectorService;
55109
- _this._userService = _userService;
55110
- _this._router = _router;
55111
- _this._authenService = _authenService;
55112
- _this._globalService = _globalService;
55113
- _this.defaultAvatar = '';
55114
- _this.appSwitcherItems = [];
55115
- _this.loaded = false;
55116
- _this.currentDate = new Date();
55117
- _this.showDefaultSetting = false;
55118
- _this.fileApi = '';
55119
- _this.isOnMobile = false;
55120
- _this.daysInWeek = ['Chủ nhật', 'Thứ 2', 'Thứ 3', 'Thứ 4', 'Thứ 5', 'Thứ 6', 'Thứ 7'];
55121
- _this.rootContext.fireEvent('MAIN_CONTENT_ONLY', true);
55122
- _this.environment = _this._moduleConfigService.getConfig().environment;
55123
- _this.defaultAvatar = _this.environment.appMetadata.main.defaultMaleAvatar;
55124
- _this.fileApi = _this.environment.apiDomain.fileEndpoint + "/" + _this.environment.apiVersion + "/FileObject";
55125
- setInterval(function () {
55126
- _this.currentDate = new Date();
55127
- }, 1000);
55128
- if (_this.rootContext.data.currentAppMetadata && _this.rootContext.data.currentAppMetadata && _this.rootContext.data.currentAppMetadata.showDefaultSetting != null && _this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined) {
55129
- _this.showDefaultSetting = _this.rootContext.data.currentAppMetadata.showDefaultSetting;
55130
- }
55131
- else {
55132
- if (_this.environment.appMetadata.main.showDefaultSetting != null && _this.environment.appMetadata.main.showDefaultSetting != undefined) {
55133
- _this.showDefaultSetting = _this.environment.appMetadata.main.showDefaultSetting;
55134
- }
55135
- else {
55136
- _this.showDefaultSetting = false;
55137
- }
55138
- }
55139
- // Config for authentication
55140
- _this._globalService.setHeaderState(false);
55141
- _this._globalService.setMenuState(false);
55142
- _this.underconstruction = _this.environment.underconstruction;
55143
- return _this;
55144
- }
55145
- SplashComponentV4Component.prototype.ngOnInit = function () {
55146
- var _this = this;
55147
- if (this._deviceDetectorService.isMobile()) {
55148
- this.isOnMobile = true;
55149
- }
55150
- if (this.rootContext.data.currentUser) {
55151
- if (this.rootContext.data.currentUser.gender == 0) {
55152
- this.defaultAvatar = this.environment.appMetadata.main.defaultFemaleAvatar;
55153
- }
55154
- else {
55155
- this.defaultAvatar = this.environment.appMetadata.main.defaultMaleAvatar;
55156
- }
55157
- }
55158
- this.rootContext.replaySubscribe(ComCtxConstants.ROOT.USER_LOADED, function (rs) {
55159
- _this.currentUser = _this._userService.getCurrentUser();
55160
- _this.loadAppMetadata();
55161
- _this.loaded = true;
55162
- });
55163
- if (this.rootModel.allowAnonymous) {
55164
- this.loaded = true;
55165
- this.loadAppMetadata();
55166
- }
55167
- };
55168
- SplashComponentV4Component.prototype.loadAppMetadata = function () {
55169
- var _this = this;
55170
- var prmsAppSwicherItem = new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
55171
- var arr, _a, _b, _i, ind, element, isAuthorized;
55172
- return __generator(this, function (_c) {
55173
- switch (_c.label) {
55174
- case 0:
55175
- arr = [];
55176
- _a = [];
55177
- for (_b in this.environment.appMetadata.appSwitcher)
55178
- _a.push(_b);
55179
- _i = 0;
55180
- _c.label = 1;
55181
- case 1:
55182
- if (!(_i < _a.length)) return [3 /*break*/, 5];
55183
- ind = _a[_i];
55184
- element = this.environment.appMetadata.appSwitcher[ind];
55185
- if (!(this.rootModel.allowAnonymous && element.allowAnonymous)) return [3 /*break*/, 2];
55186
- arr.push(element);
55187
- return [3 /*break*/, 4];
55188
- case 2:
55189
- if (!this.currentUser) return [3 /*break*/, 4];
55190
- return [4 /*yield*/, this._permissionService.isAuthorized(element.code, (element.code + ".MODULE." + element.code).toUpperCase(), true)];
55191
- case 3:
55192
- isAuthorized = _c.sent();
55193
- if (isAuthorized) {
55194
- arr.push(element);
55195
- }
55196
- _c.label = 4;
55197
- case 4:
55198
- _i++;
55199
- return [3 /*break*/, 1];
55200
- case 5:
55201
- resolve(arr);
55202
- return [2 /*return*/];
55203
- }
55204
- });
55205
- }); });
55206
- prmsAppSwicherItem.then(function (rs) {
55207
- _this.appSwitcherItems.length = 0;
55208
- if (rs) {
55209
- rs.forEach(function (element) {
55210
- if (element.visible) {
55211
- if (!_this.currentUser) { // allow anonymous
55212
- _this.appSwitcherItems.push(element);
55213
- }
55214
- else {
55215
- if (_this.currentUser.maNguoiHoc && _this.currentUser.issuperuser.toLowerCase() != 'true') {
55216
- if (element.code.toLowerCase() == 'sv' || element.code.toLowerCase() == 'user') {
55217
- _this.appSwitcherItems.push(element);
55218
- }
55219
- }
55220
- else {
55221
- _this.appSwitcherItems.push(element);
55222
- }
55223
- }
55224
- }
55225
- });
55226
- if (_this.appSwitcherItems.length === 1) {
55227
- setTimeout(function (x) { return _this.switchApp(_this.appSwitcherItems[0]); }, 100);
55228
- }
55229
- }
55230
- });
55231
- };
55232
- SplashComponentV4Component.prototype.switchApp = function (item) {
55233
- this.loaded = false;
55234
- if (item.target == '_blank') {
55235
- var url = item.url;
55236
- if (item.defaultRedirect) {
55237
- url += "/" + item.defaultRedirect;
55238
- }
55239
- top.location.href = url;
55240
- }
55241
- else {
55242
- if (item.defaultRedirect != '' && !this.rootContext.data.flags.menuTopOpenning) {
55243
- this._router.navigateByUrl(item.defaultRedirect);
55244
- this.rootContext.data.currentAppMetadata = this.environment.appMetadata.appSwitcher.find(function (x) { return x.code == item.code; });
55245
- if (this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined && this.rootContext.data.currentAppMetadata.showDefaultSetting != null) {
55246
- this.showDefaultSetting = this.rootContext.data.currentAppMetadata.showDefaultSetting && this.showDefaultSetting;
55247
- }
55248
- }
55249
- }
55250
- };
55251
- SplashComponentV4Component.prototype.logout = function () {
55252
- this._authenService.logout();
55253
- };
55254
- SplashComponentV4Component.prototype.goToPersonal = function () {
55255
- var userMenu = this.environment.appMetadata.appSwitcher.find(function (x) { return x.code == 'USER'; });
55256
- this.switchApp(userMenu);
55257
- };
55258
- SplashComponentV4Component.prototype.getCurrentUserAvatar = function () {
55259
- if (this.rootContext.data.currentUser && this.rootContext.data.currentUser.avatar) {
55260
- return this.fileApi + "/public/" + this.rootContext.data.currentUser.avatar + "/Download";
55261
- }
55262
- else {
55263
- return this.defaultAvatar;
55264
- }
55265
- };
55266
- SplashComponentV4Component.prototype.getNgayTrongTuan = function () {
55267
- return this.daysInWeek[this.currentDate.getDay()];
55268
- };
55269
- SplashComponentV4Component.prototype.showProfilePage = function () {
55270
- if (this._userService.isSinhVienAccount()) {
55271
- return false;
55272
- }
55273
- return true;
55274
- };
55275
- SplashComponentV4Component.prototype.ngOnDestroy = function () {
55276
- _super.prototype.ngOnDestroy.call(this);
55277
- this._globalService.setHeaderState(true);
55278
- this._globalService.setMenuState(true);
55279
- };
55280
- SplashComponentV4Component.prototype.login = function () {
55281
- this.rootContext.fireEvent('LOGIN');
55282
- };
55283
- return SplashComponentV4Component;
55284
- }(ComponentBase));
55285
- SplashComponentV4Component.decorators = [
55286
- { type: i0.Component, args: [{
55287
- selector: 'splash-component-v4',
55288
- template: "<div *ngIf=\"!loaded\" class=\"wrp-loader\">\n <div class=\"loader\"></div>\n</div>\n<div *ngIf=\"loaded\" class=\"modules-v1\">\n <div class=\"welcome-user\">\n <div class=\"profile-image\">\n <img class=\"custom-avatar\" [src-fallback]=\"defaultAvatar\" [src]=\"getCurrentUserAvatar()\" />\n </div>\n\n <div class=\"wrp-login\">\n <h2>Xin ch\u00E0o!</h2>\n <b>{{currentUser.fullName}}</b>\n <div *ngIf=\"currentUser\" class=\"login\">\n <a (click)=\"goToPersonal()\"><i class=\"far fa-folder-open\"></i>Trang c\u00E1 nh\u00E2n</a>\n <a style=\"background: #fabc01;\" (click)=\"logout()\"><i class=\"far fa-arrow-alt-circle-right\"></i>\u0110\u0103ng\n xu\u1EA5t</a>\n </div>\n <div *ngIf=\"!currentUser\" class=\"login\"><a style=\"background: #fabc01;\" (click)=\"login()\"><i\n class=\"fas fa-sign-out-alt\"></i>\u0110\u0103ng nh\u1EADp</a></div>\n </div>\n\n <div class=\"clock-wrapper\">\n <h1 class=\"clock\">{{currentDate | date:'HH:mm:ss'}}</h1>\n <h4 class=\"data-time\">{{getNgayTrongTuan()}}, ng\u00E0y {{currentDate | date:'dd/MM/yyyy'}}</h4>\n </div>\n </div>\n\n <div class=\"module-icons\">\n <div class=\"img-title\">\n <img class=\"tn-custom-logo\" [src]=\"environment.appMetadata.main.logo\"\n [alt]=\"environment.appMetadata.main.owner\">\n <div class=\"title\">\n <h2>{{environment.appMetadata.main.title}}</h2>\n <h1>{{environment.appMetadata.main.owner}}</h1>\n </div>\n </div>\n\n <div class=\"div1111-wrapper\">\n <tn-custom-scrollbar *ngIf=\"!isOnMobile\">\n <ng-container *ngTemplateOutlet=\"appSwitcher\"></ng-container>\n </tn-custom-scrollbar>\n\n <ng-container *ngIf=\"isOnMobile\">\n <ng-container *ngTemplateOutlet=\"appSwitcher\"></ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #appSwitcher>\n <div class=\"div1111\">\n <ng-container *ngFor=\"let item of appSwitcherItems; let ind = index;\">\n <span>\n <a class=\"bg-switcher\" (click)=\"switchApp(item)\">\n <i class=\"{{item.icon}} app-switcher-item-icon\"></i>\n <span>{{ item.title | translate}}</span>\n </a>\n </span>\n </ng-container>\n </div>\n</ng-template>",
55289
- providers: [ComponentContextService],
55290
- styles: ["body{background-color:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.wrp-loader{position:absolute;display:inline-block;top:50%;left:50%;transform:translate(-50%,-50%);z-index:101}.wrp-loader .loader{border-radius:50%;border:2px solid #bcdbf5;border-top-color:#3192e1;width:10px;height:10px;color:#607d8b;font-size:10px;animation:load4 1.3s linear infinite;display:block}.modules-v1{position:fixed;top:0;left:0;z-index:100;display:flex;justify-content:center;align-items:center;width:100vw;height:100vh;background-image:url(/assets/images/background-splash.png);background-repeat:no-repeat;background-position:50%;background-size:cover}.modules-v1 div>span{display:inline-block;min-width:100px;height:120px;width:120px;margin:10px;box-shadow:1px 2px 9px 1px #dadada;border-radius:5px;white-space:normal}.modules-v1 div>span>a{height:100%;display:inline-block;position:relative;font-weight:700;cursor:pointer;border-radius:5px;display:flex;flex-direction:column;justify-content:space-evenly}.modules-v1 div>span>a,.modules-v1 div>span>a>span{width:100%;color:#fff;text-decoration:unset;text-align:center}.modules-v1 div>span>a>span{display:inline-block;line-height:1.2}.modules-v1 div>span>a>i{font-size:3.5em;width:100%}.modules-v1 .div1111-wrapper{overflow:auto;height:420px;margin:0 auto;max-width:700px}.modules-v1 .div1111-wrapper .div1111{white-space:nowrap;width:100%;display:flex;flex-wrap:wrap}.modules-v1 .div1111-wrapper .div1111 .bg-switcher{background:#fff;transition:.3s}.modules-v1 .div1111-wrapper .div1111 .bg-switcher .app-switcher-item-icon{color:#3b5cc3;transition:.3s}.modules-v1 .div1111-wrapper .div1111 .bg-switcher span{color:#253c85;font-weight:500;text-shadow:none;transition:.3s;padding:0 5px}.modules-v1 .div1111-wrapper .div1111 .bg-switcher:hover{background:#fabc01;box-shadow:1px 2px 9px 1px rgba(39,23,86,.5215686274509804)}.modules-v1 .div1111-wrapper .div1111 .bg-switcher:hover .app-switcher-item-icon,.modules-v1 .div1111-wrapper .div1111 .bg-switcher:hover span{color:#253c85}.modules-v1 .module-icons{text-align:center;color:#666;width:65%;align-self:stretch;background-color:rgba(249,244,244,.9215686274509803);display:flex;flex-direction:column;justify-content:center}.modules-v1 .module-icons .img-title{padding:20px}.modules-v1 .module-icons .img-title .tn-custom-logo{max-height:125px}.modules-v1 .module-icons .img-title .title{margin:24px 0}.modules-v1 .module-icons h2{font-size:25px;color:#271756;margin-bottom:15px;margin-top:15px}.modules-v1 .module-icons h1{color:#253c85;font-size:35px;margin-top:0;margin-bottom:0}.modules-v1 .welcome-user{text-align:center;width:35%;align-self:stretch;background-color:rgba(37,60,133,.9803921568627451);display:flex;flex-direction:column}.modules-v1 .welcome-user .wrp-login{margin:20px auto auto;color:#fff;display:flex;flex-direction:column;align-items:center}.modules-v1 .welcome-user .wrp-login h2{font-size:20px;margin-top:0;margin-bottom:5px;font-weight:500}.modules-v1 .welcome-user .wrp-login b{font-size:25px;text-transform:uppercase;display:block}.modules-v1 .welcome-user .wrp-login .login{display:grid;grid-template-columns:repeat(2,150px);grid-gap:10px;margin-top:30px}.modules-v1 .welcome-user .wrp-login .login a{background:#fff;padding:6px;border-radius:5px;cursor:pointer;display:inline-block;color:#5d5d5d}.modules-v1 .welcome-user .wrp-login .login a i{margin-right:10px}.modules-v1 .welcome-user .profile-image{margin:auto auto 0}.modules-v1 .welcome-user .profile-image img{border-radius:50%;height:200px;width:200px;-o-object-fit:contain;object-fit:contain;box-shadow:1px 1px 11px 6px #3d60af;background:#fff}.modules-v1 .welcome-user .clock-wrapper{color:#fff;text-align:center;margin-top:auto;margin-bottom:auto}.modules-v1 .welcome-user .clock-wrapper h4{font-size:18px;font-weight:500;margin-top:10px}.modules-v1 .welcome-user .clock-wrapper h1{margin-bottom:0;font-size:40px}.modules-v1 .underconstruction{text-transform:uppercase;color:red;font-weight:700;font-size:4em}@media (max-width:1368px){.modules-v1 .clock{margin:0 20px;font-size:1.5em}.modules-v1 .data-time{margin:10px 0 20px;font-size:1em}}@media (max-width:1100px){.modules-v1 .div1111-wrapper .div1111{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr))}}@media (max-width:991px){.modules-v1 .welcome-user .wrp-login .login{grid-template-columns:1fr}}@media (max-width:768px){.modules-v1{flex-direction:column}.modules-v1 .welcome-user{width:100%;height:270px;flex-direction:row;align-items:center;padding-bottom:87px}.modules-v1 .welcome-user .profile-image{margin-bottom:auto}.modules-v1 .welcome-user .profile-image img{height:150px;width:150px}.modules-v1 .welcome-user .wrp-login{margin-top:auto}.modules-v1 .welcome-user .wrp-login .login{margin-top:20px}.modules-v1 .welcome-user .clock-wrapper{padding-right:15px}.modules-v1 .module-icons{width:100%;height:calc(100% - 270px)}.modules-v1 .module-icons .img-title{background-image:url(/assets/images/logo.png);background-repeat:no-repeat;background-position:50%;z-index:9}.modules-v1 .module-icons .img-title img{display:none}.modules-v1 .module-icons .img-title .title{background:hsla(0,0%,100%,.9019607843137255);box-shadow:1px 4px 9px 2px #67a0d4;padding:20px 10px;position:absolute;width:calc(100% - 40px);left:20px;right:20px;top:200px}.modules-v1 .module-icons .img-title .title h2{font-size:30px}.modules-v1 .module-icons .img-title .title h1{font-size:34px}}@media (max-width:640px){.modules-v1 .welcome-user{display:block;padding-top:20px}.modules-v1 .welcome-user .wrp-login{width:50%;padding:0 20px 0 0;float:right}.modules-v1 .welcome-user .wrp-login h2{margin-bottom:3px;font-size:14px}.modules-v1 .welcome-user .wrp-login b{font-size:14px}.modules-v1 .welcome-user .wrp-login .login{margin-top:10px;display:flex;flex-direction:column;padding:0 15px;text-align:left}.modules-v1 .welcome-user .wrp-login .login a{font-size:14px}.modules-v1 .welcome-user .profile-image{width:50%;float:left}.modules-v1 .welcome-user .profile-image img{height:130px;width:130px;margin-left:35px;display:block}.modules-v1 .welcome-user .clock-wrapper{clear:both;padding-top:10px;padding-right:0}.modules-v1 .welcome-user .clock-wrapper h4{font-size:14px;margin-top:5px}.modules-v1 .welcome-user .clock-wrapper h1{font-size:1.3em}.modules-v1 .module-icons .img-title{background-size:80px 80px}.modules-v1 .module-icons .img-title .title{top:230px}.modules-v1 .module-icons .img-title .title h1{font-size:16px}.modules-v1 .module-icons .img-title .title h2{font-size:16px;margin-top:0}.modules-v1 .module-icons .div1111-wrapper{margin-top:0;height:360px}.modules-v1 .module-icons .div1111-wrapper .div1111 .bg-switcher span{font-size:14px}.modules-v1 .module-icons div>span{width:100px;height:100px}.modules-v1 .module-icons div>span>a>i{font-size:2.5em;top:10px}}@media (max-width:425px){.modules-v1 .module-icons .img-title .title{top:225px}.modules-v1 .module-icons .div1111-wrapper .div1111{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr))}}@media (max-width:375px){.modules-v1 .module-icons{height:calc(100% - 250px)}.modules-v1 .module-icons .img-title{background-size:60px 60px}.modules-v1 .module-icons .img-title .title{padding:10px;top:220px}.modules-v1 .module-icons .img-title .title h2{margin-bottom:10px}.modules-v1 .module-icons .img-title .title h1,.modules-v1 .module-icons .img-title .title h2{font-size:14px}.modules-v1 .welcome-user{height:250px}}@media (max-width:360px){.modules-v1 .module-icons{height:calc(100% - 240px)}.modules-v1 .module-icons .img-title{background-size:60px 60px}.modules-v1 .module-icons .img-title .title{top:205px;width:calc(100% - 20px);left:10px;right:10px}.modules-v1 .welcome-user{height:240px}.modules-v1 .welcome-user .clock-wrapper{padding-top:0}}@keyframes load4{0%,to{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}"]
55291
- },] }
55292
- ];
55293
- SplashComponentV4Component.ctorParameters = function () { return [
55294
- { type: i0.Injector },
55295
- { type: ModuleConfigService },
55296
- { type: PermissionService },
55297
- { type: ngxDeviceDetector.DeviceDetectorService },
55298
- { type: UserService },
55299
- { type: i3$1.Router },
55300
- { type: AuthenService },
55301
- { type: GlobalService }
55302
- ]; };
55303
-
55304
54495
  var StateMachinesConnectionReceiverConditionComponent = /** @class */ (function (_super) {
55305
54496
  __extends(StateMachinesConnectionReceiverConditionComponent, _super);
55306
54497
  function StateMachinesConnectionReceiverConditionComponent(injector, _dmChucVuService, _userGroupService, _workflowSettingsService) {
@@ -62966,11 +62157,6 @@
62966
62157
  ProcessWorkflowFormComponent,
62967
62158
  ProcessWorkflowTargetComponent,
62968
62159
  ChoYKienFormComponent,
62969
- SplashComponentComponent,
62970
- SplashComponentV1Component,
62971
- SplashComponentV2Component,
62972
- SplashComponentV3Component,
62973
- SplashComponentV4Component,
62974
62160
  StateComponent,
62975
62161
  StateMetadataComponent,
62976
62162
  StateMachinesConnectionMetadataComponent,
@@ -63072,6 +62258,11 @@
63072
62258
  CheckReadyComponent,
63073
62259
  WorkflowButtonComponent,
63074
62260
  TnAccordionTabComponent,
62261
+ SplashComponentComponent,
62262
+ // SplashComponentV1Component,
62263
+ // SplashComponentV2Component,
62264
+ // SplashComponentV3Component,
62265
+ // SplashComponentV4Component,
63075
62266
  // CommonAppComponentComponent,
63076
62267
  // AppTopBarBaseComponent,
63077
62268
  // AppTopBarV1Component,
@@ -63775,75 +62966,71 @@
63775
62966
  exports["ɵcu"] = SimpleWorkflowFormComponent;
63776
62967
  exports["ɵcv"] = ProcessWorkflowTargetComponent;
63777
62968
  exports["ɵcw"] = ChoYKienFormComponent;
63778
- exports["ɵcx"] = SplashComponentV1Component;
63779
- exports["ɵcy"] = SplashComponentV2Component;
63780
- exports["ɵcz"] = SplashComponentV3Component;
62969
+ exports["ɵcx"] = StateMachinesConnectionReceiverComponent;
62970
+ exports["ɵcy"] = StateMachinesConnectionReceiverConditionComponent;
62971
+ exports["ɵcz"] = StateMachinesConnectionReceiverDepartmentComponent;
63781
62972
  exports["ɵd"] = ExceptionHandlerService;
63782
- exports["ɵda"] = SplashComponentV4Component;
63783
- exports["ɵdb"] = StateMachinesConnectionReceiverComponent;
63784
- exports["ɵdc"] = StateMachinesConnectionReceiverConditionComponent;
63785
- exports["ɵdd"] = StateMachinesConnectionReceiverDepartmentComponent;
63786
- exports["ɵde"] = StateMachinesConnectionReceiverGroupComponent;
63787
- exports["ɵdf"] = StateMachinesConnectionReceiverUserComponent;
63788
- exports["ɵdg"] = StateMachinesConnectionReceiverRoleComponent;
63789
- exports["ɵdh"] = StateMachinesConnectionSenderComponent;
63790
- exports["ɵdi"] = StartWorkflowComponent;
63791
- exports["ɵdj"] = ShareLinkByPermissionComponent;
63792
- exports["ɵdk"] = WorkflowSettingNewComponent;
63793
- exports["ɵdl"] = PermissionSharingComponent;
63794
- exports["ɵdm"] = WorkflowPermissionService;
63795
- exports["ɵdn"] = TnCheckboxComponent;
63796
- exports["ɵdo"] = TnDialogComponent;
63797
- exports["ɵdp"] = TnColorPickerComponent;
63798
- exports["ɵdq"] = TnTinymceComponent;
63799
- exports["ɵdr"] = TnTabViewComponent;
63800
- exports["ɵds"] = TableDetailFormComponent;
63801
- exports["ɵdt"] = FileIconPipe;
63802
- exports["ɵdu"] = FileSizePipe;
63803
- exports["ɵdv"] = QuickAddFormComponent;
63804
- exports["ɵdw"] = PreventShiftTabDirective;
63805
- exports["ɵdx"] = TnTemplateDirective;
63806
- exports["ɵdy"] = UserPickerComponent;
63807
- exports["ɵdz"] = UserPickerBoxComponent;
62973
+ exports["ɵda"] = StateMachinesConnectionReceiverGroupComponent;
62974
+ exports["ɵdb"] = StateMachinesConnectionReceiverUserComponent;
62975
+ exports["ɵdc"] = StateMachinesConnectionReceiverRoleComponent;
62976
+ exports["ɵdd"] = StateMachinesConnectionSenderComponent;
62977
+ exports["ɵde"] = StartWorkflowComponent;
62978
+ exports["ɵdf"] = ShareLinkByPermissionComponent;
62979
+ exports["ɵdg"] = WorkflowSettingNewComponent;
62980
+ exports["ɵdh"] = PermissionSharingComponent;
62981
+ exports["ɵdi"] = WorkflowPermissionService;
62982
+ exports["ɵdj"] = TnCheckboxComponent;
62983
+ exports["ɵdk"] = TnDialogComponent;
62984
+ exports["ɵdl"] = TnColorPickerComponent;
62985
+ exports["ɵdm"] = TnTinymceComponent;
62986
+ exports["ɵdn"] = TnTabViewComponent;
62987
+ exports["ɵdo"] = TableDetailFormComponent;
62988
+ exports["ɵdp"] = FileIconPipe;
62989
+ exports["ɵdq"] = FileSizePipe;
62990
+ exports["ɵdr"] = QuickAddFormComponent;
62991
+ exports["ɵds"] = PreventShiftTabDirective;
62992
+ exports["ɵdt"] = TnTemplateDirective;
62993
+ exports["ɵdu"] = UserPickerComponent;
62994
+ exports["ɵdv"] = UserPickerBoxComponent;
62995
+ exports["ɵdw"] = CoCauToChucTestService;
62996
+ exports["ɵdx"] = TnAppHelpComponent;
62997
+ exports["ɵdy"] = PathNameService;
62998
+ exports["ɵdz"] = HelperCurrentPageComponent;
63808
62999
  exports["ɵe"] = CanBo_HoSoService;
63809
- exports["ɵea"] = CoCauToChucTestService;
63810
- exports["ɵeb"] = TnAppHelpComponent;
63811
- exports["ɵec"] = PathNameService;
63812
- exports["ɵed"] = HelperCurrentPageComponent;
63813
- exports["ɵee"] = TnAppNotificationListComponent;
63814
- exports["ɵef"] = TnAppNotificationComponent;
63815
- exports["ɵeg"] = FolderFormComponent;
63816
- exports["ɵeh"] = FileFormComponent;
63817
- exports["ɵei"] = FileViewerComponent;
63818
- exports["ɵej"] = FileVersionListComponent;
63819
- exports["ɵek"] = ViewDetailComponent;
63820
- exports["ɵel"] = WorkflowHistoryComponent;
63821
- exports["ɵem"] = WorkflowHistoryDialogComponent;
63822
- exports["ɵen"] = WorkflowHistoryNewComponent;
63823
- exports["ɵeo"] = WorkflowSettingComponent;
63824
- exports["ɵep"] = WorkflowSettingDialogComponent;
63825
- exports["ɵeq"] = WorkflowPermissionComponent;
63826
- exports["ɵer"] = WorkflowPermissionFormComponent;
63827
- exports["ɵes"] = ReferenceTextBoxComponent;
63828
- exports["ɵet"] = QrCodeGeneratorComponent;
63829
- exports["ɵeu"] = AddNewsComponent;
63830
- exports["ɵev"] = ArticleService;
63831
- exports["ɵew"] = NewsCategoryService;
63832
- exports["ɵex"] = UniversalLinkProcessorComponent;
63833
- exports["ɵey"] = SignatureDetailComponent;
63834
- exports["ɵez"] = KySoSimDanhSachChuKyComponent;
63000
+ exports["ɵea"] = TnAppNotificationListComponent;
63001
+ exports["ɵeb"] = TnAppNotificationComponent;
63002
+ exports["ɵec"] = FolderFormComponent;
63003
+ exports["ɵed"] = FileFormComponent;
63004
+ exports["ɵee"] = FileViewerComponent;
63005
+ exports["ɵef"] = FileVersionListComponent;
63006
+ exports["ɵeg"] = ViewDetailComponent;
63007
+ exports["ɵeh"] = WorkflowHistoryComponent;
63008
+ exports["ɵei"] = WorkflowHistoryDialogComponent;
63009
+ exports["ɵej"] = WorkflowHistoryNewComponent;
63010
+ exports["ɵek"] = WorkflowSettingComponent;
63011
+ exports["ɵel"] = WorkflowSettingDialogComponent;
63012
+ exports["ɵem"] = WorkflowPermissionComponent;
63013
+ exports["ɵen"] = WorkflowPermissionFormComponent;
63014
+ exports["ɵeo"] = ReferenceTextBoxComponent;
63015
+ exports["ɵep"] = QrCodeGeneratorComponent;
63016
+ exports["ɵeq"] = AddNewsComponent;
63017
+ exports["ɵer"] = ArticleService;
63018
+ exports["ɵes"] = NewsCategoryService;
63019
+ exports["ɵet"] = UniversalLinkProcessorComponent;
63020
+ exports["ɵeu"] = SignatureDetailComponent;
63021
+ exports["ɵev"] = KySoSimDanhSachChuKyComponent;
63022
+ exports["ɵew"] = KySoSimChuKyUserService;
63023
+ exports["ɵex"] = FileKySoSimComponent;
63024
+ exports["ɵey"] = KySoSimSignPDFService;
63025
+ exports["ɵez"] = TaiLieuCuaToiComponent;
63835
63026
  exports["ɵf"] = ListBase;
63836
- exports["ɵfa"] = KySoSimChuKyUserService;
63837
- exports["ɵfb"] = FileKySoSimComponent;
63838
- exports["ɵfc"] = KySoSimSignPDFService;
63839
- exports["ɵfd"] = TaiLieuCuaToiComponent;
63840
- exports["ɵfe"] = KhaiThacTaiLieuDungChungComponent;
63841
- exports["ɵff"] = DanhMucDungChungService;
63842
- exports["ɵfg"] = TnTemplateComponent;
63843
- exports["ɵfh"] = DropdownSettingFormComponent;
63844
- exports["ɵfi"] = CheckReadyComponent;
63845
- exports["ɵfj"] = WorkflowButtonComponent;
63846
- exports["ɵfk"] = TnAccordionTabComponent;
63027
+ exports["ɵfa"] = KhaiThacTaiLieuDungChungComponent;
63028
+ exports["ɵfb"] = DanhMucDungChungService;
63029
+ exports["ɵfc"] = TnTemplateComponent;
63030
+ exports["ɵfd"] = DropdownSettingFormComponent;
63031
+ exports["ɵfe"] = CheckReadyComponent;
63032
+ exports["ɵff"] = WorkflowButtonComponent;
63033
+ exports["ɵfg"] = TnAccordionTabComponent;
63847
63034
  exports["ɵg"] = ListComponentBase;
63848
63035
  exports["ɵh"] = TreeTableComponent;
63849
63036
  exports["ɵi"] = NotFoundComponent;