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
@@ -23846,7 +23846,7 @@ class SplashComponentComponent {
23846
23846
  }
23847
23847
  SplashComponentComponent.decorators = [
23848
23848
  { type: Component, args: [{
23849
- selector: 'splash-component',
23849
+ selector: 'common-splash-component',
23850
23850
  template: "<ng-template viewContainerRef></ng-template>\n",
23851
23851
  providers: [ComponentContextService],
23852
23852
  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}}"]
@@ -24339,7 +24339,7 @@ class AccessDeniedComponent {
24339
24339
  }
24340
24340
  AccessDeniedComponent.decorators = [
24341
24341
  { type: Component, args: [{
24342
- selector: 'app-access-denied',
24342
+ selector: 'common-access-denied',
24343
24343
  template: "<ng-template viewContainerRef></ng-template>\n",
24344
24344
  providers: [ComponentContextService],
24345
24345
  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}"]
@@ -24371,7 +24371,7 @@ class CommonDashboardComponent {
24371
24371
  }
24372
24372
  CommonDashboardComponent.decorators = [
24373
24373
  { type: Component, args: [{
24374
- selector: 'app-common-dashboard',
24374
+ selector: 'common-common-dashboard',
24375
24375
  template: "<ng-template viewContainerRef></ng-template>\n",
24376
24376
  providers: [ComponentContextService],
24377
24377
  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}}"]
@@ -47867,739 +47867,6 @@ ShareLinkByPermissionComponent.propDecorators = {
47867
47867
  lstItem: [{ type: Input }]
47868
47868
  };
47869
47869
 
47870
- class SplashComponentV1Component extends ComponentBase {
47871
- constructor(injector, _moduleConfigService, _permissionService, _deviceDetectorService, _userService, _router, _authenService, _globalService) {
47872
- super(injector);
47873
- this._moduleConfigService = _moduleConfigService;
47874
- this._permissionService = _permissionService;
47875
- this._deviceDetectorService = _deviceDetectorService;
47876
- this._userService = _userService;
47877
- this._router = _router;
47878
- this._authenService = _authenService;
47879
- this._globalService = _globalService;
47880
- this.defaultAvatar = '';
47881
- this.appSwitcherItems = [];
47882
- this.loaded = false;
47883
- this.currentDate = new Date();
47884
- this.showDefaultSetting = false;
47885
- this.fileApi = '';
47886
- this.isOnMobile = false;
47887
- this.daysInWeek = ['Chủ nhật', 'Thứ 2', 'Thứ 3', 'Thứ 4', 'Thứ 5', 'Thứ 6', 'Thứ 7'];
47888
- this.rootContext.fireEvent('MAIN_CONTENT_ONLY', true);
47889
- this.environment = this._moduleConfigService.getConfig().environment;
47890
- this.defaultAvatar = this.environment.appMetadata.main.defaultMaleAvatar;
47891
- this.fileApi = `${this.environment.apiDomain.fileEndpoint}/${this.environment.apiVersion}/FileObject`;
47892
- setInterval(() => {
47893
- this.currentDate = new Date();
47894
- }, 1000);
47895
- if (this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata.showDefaultSetting != null && this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined) {
47896
- this.showDefaultSetting = this.rootContext.data.currentAppMetadata.showDefaultSetting;
47897
- }
47898
- else {
47899
- if (this.environment.appMetadata.main.showDefaultSetting != null && this.environment.appMetadata.main.showDefaultSetting != undefined) {
47900
- this.showDefaultSetting = this.environment.appMetadata.main.showDefaultSetting;
47901
- }
47902
- else {
47903
- this.showDefaultSetting = false;
47904
- }
47905
- }
47906
- // Config for authentication
47907
- this._globalService.setHeaderState(false);
47908
- this._globalService.setMenuState(false);
47909
- this.underconstruction = this.environment.underconstruction;
47910
- }
47911
- ngOnInit() {
47912
- if (this._deviceDetectorService.isMobile()) {
47913
- this.isOnMobile = true;
47914
- }
47915
- if (this.rootContext.data.currentUser) {
47916
- if (this.rootContext.data.currentUser.gender == 0) {
47917
- this.defaultAvatar = this.environment.appMetadata.main.defaultFemaleAvatar;
47918
- }
47919
- else {
47920
- this.defaultAvatar = this.environment.appMetadata.main.defaultMaleAvatar;
47921
- }
47922
- }
47923
- this.rootContext.replaySubscribe(ComCtxConstants.ROOT.USER_LOADED, rs => {
47924
- this.currentUser = this._userService.getCurrentUser();
47925
- this.loadAppMetadata();
47926
- this.loaded = true;
47927
- });
47928
- if (this.rootModel.allowAnonymous) {
47929
- this.loaded = true;
47930
- this.loadAppMetadata();
47931
- }
47932
- }
47933
- loadAppMetadata() {
47934
- const prmsAppSwicherItem = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
47935
- const arr = [];
47936
- for (const ind in this.environment.appMetadata.appSwitcher) {
47937
- const element = this.environment.appMetadata.appSwitcher[ind];
47938
- // const clientId = this.environment.authenticationSettings.clientId;
47939
- if (this.rootModel.allowAnonymous && element.allowAnonymous) {
47940
- arr.push(element);
47941
- }
47942
- else if (this.currentUser) {
47943
- // if (element.code === 'CMS-MSMV') {
47944
- // if (this._permissionService.isAuthorized(element.code, 'CMS-MSMV/SURVEYSHEETS?PLANID=7B40AED6-C7AB-44E6-ADDC-DC71C548D05C&VIEW=0', false)) {
47945
- // // const isAuthorized = await this._permissionService.isAuthorized(element.code, `test/lksjeflksejflseifjseifjslkejfkiki/test/kkjlskejflsekfjseklfj`.toUpperCase());
47946
- // arr.push(element);
47947
- // }
47948
- // continue;
47949
- // }
47950
- const isAuthorized = yield this._permissionService.isAuthorized(element.code, `${element.code}.MODULE.${element.code}`.toUpperCase(), true);
47951
- if (isAuthorized) {
47952
- arr.push(element);
47953
- }
47954
- }
47955
- }
47956
- resolve(arr);
47957
- }));
47958
- prmsAppSwicherItem.then(rs => {
47959
- this.appSwitcherItems.length = 0;
47960
- if (rs) {
47961
- rs.forEach(element => {
47962
- if (element.visible) {
47963
- if (!this.currentUser) { // allow anonymous
47964
- this.appSwitcherItems.push(element);
47965
- }
47966
- else {
47967
- if (this.currentUser.maNguoiHoc && this.currentUser.issuperuser.toLowerCase() != 'true') {
47968
- if (element.code.toLowerCase() == 'sv' || element.code.toLowerCase() == 'user') {
47969
- this.appSwitcherItems.push(element);
47970
- }
47971
- }
47972
- else {
47973
- this.appSwitcherItems.push(element);
47974
- }
47975
- }
47976
- }
47977
- });
47978
- if (this.appSwitcherItems.length === 1) {
47979
- setTimeout(x => this.switchApp(this.appSwitcherItems[0]), 100);
47980
- }
47981
- }
47982
- });
47983
- }
47984
- switchApp(item) {
47985
- this.loaded = false;
47986
- if (item.target == '_blank') {
47987
- let url = item.url;
47988
- if (item.defaultRedirect) {
47989
- url += `/${item.defaultRedirect}`;
47990
- }
47991
- top.location.href = url;
47992
- }
47993
- else {
47994
- if (item.defaultRedirect != '' && !this.rootContext.data.flags.menuTopOpenning) {
47995
- this._router.navigateByUrl(item.defaultRedirect);
47996
- this.rootContext.data.currentAppMetadata = this.environment.appMetadata.appSwitcher.find(x => x.code == item.code);
47997
- if (this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined && this.rootContext.data.currentAppMetadata.showDefaultSetting != null) {
47998
- this.showDefaultSetting = this.rootContext.data.currentAppMetadata.showDefaultSetting && this.showDefaultSetting;
47999
- }
48000
- }
48001
- }
48002
- }
48003
- logout() {
48004
- this._authenService.logout();
48005
- }
48006
- goToPersonal() {
48007
- const userMenu = this.environment.appMetadata.appSwitcher.find(x => x.code == 'USER');
48008
- this.switchApp(userMenu);
48009
- }
48010
- getCurrentUserAvatar() {
48011
- if (this.rootContext.data.currentUser && this.rootContext.data.currentUser.avatar) {
48012
- return `${this.fileApi}/public/${this.rootContext.data.currentUser.avatar}/Download`;
48013
- }
48014
- else {
48015
- return this.defaultAvatar;
48016
- }
48017
- }
48018
- getNgayTrongTuan() {
48019
- return this.daysInWeek[this.currentDate.getDay()];
48020
- }
48021
- showProfilePage() {
48022
- if (this._userService.isSinhVienAccount()) {
48023
- return false;
48024
- }
48025
- return true;
48026
- }
48027
- ngOnDestroy() {
48028
- super.ngOnDestroy();
48029
- this._globalService.setHeaderState(true);
48030
- this._globalService.setMenuState(true);
48031
- }
48032
- login() {
48033
- this.rootContext.fireEvent('LOGIN');
48034
- }
48035
- }
48036
- SplashComponentV1Component.decorators = [
48037
- { type: Component, args: [{
48038
- selector: 'splash-component-v1',
48039
- 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>",
48040
- providers: [ComponentContextService],
48041
- 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}}"]
48042
- },] }
48043
- ];
48044
- SplashComponentV1Component.ctorParameters = () => [
48045
- { type: Injector },
48046
- { type: ModuleConfigService },
48047
- { type: PermissionService },
48048
- { type: DeviceDetectorService },
48049
- { type: UserService },
48050
- { type: Router },
48051
- { type: AuthenService },
48052
- { type: GlobalService }
48053
- ];
48054
-
48055
- class SplashComponentV2Component extends ComponentBase {
48056
- constructor(injector, _moduleConfigService, _permissionService, _deviceDetectorService, _userService, _router, _authenService, _globalService) {
48057
- super(injector);
48058
- this._moduleConfigService = _moduleConfigService;
48059
- this._permissionService = _permissionService;
48060
- this._deviceDetectorService = _deviceDetectorService;
48061
- this._userService = _userService;
48062
- this._router = _router;
48063
- this._authenService = _authenService;
48064
- this._globalService = _globalService;
48065
- this.defaultAvatar = '';
48066
- this.appSwitcherItems = [];
48067
- this.loaded = false;
48068
- this.currentDate = new Date();
48069
- this.showDefaultSetting = false;
48070
- this.fileApi = '';
48071
- this.isOnMobile = false;
48072
- this.daysInWeek = ['Chủ nhật', 'Thứ 2', 'Thứ 3', 'Thứ 4', 'Thứ 5', 'Thứ 6', 'Thứ 7'];
48073
- this.rootContext.fireEvent('MAIN_CONTENT_ONLY', true);
48074
- this.environment = this._moduleConfigService.getConfig().environment;
48075
- this.defaultAvatar = this.environment.appMetadata.main.defaultMaleAvatar;
48076
- this.fileApi = this.environment.apiDomain.fileEndpoint;
48077
- setInterval(() => {
48078
- this.currentDate = new Date();
48079
- }, 1000);
48080
- if (this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata.showDefaultSetting != null && this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined) {
48081
- this.showDefaultSetting = this.rootContext.data.currentAppMetadata.showDefaultSetting;
48082
- }
48083
- else {
48084
- if (this.environment.appMetadata.main.showDefaultSetting != null && this.environment.appMetadata.main.showDefaultSetting != undefined) {
48085
- this.showDefaultSetting = this.environment.appMetadata.main.showDefaultSetting;
48086
- }
48087
- else {
48088
- this.showDefaultSetting = false;
48089
- }
48090
- }
48091
- // Config for authentication
48092
- this._globalService.setHeaderState(false);
48093
- this._globalService.setMenuState(false);
48094
- this.underconstruction = this.environment.underconstruction;
48095
- }
48096
- ngOnInit() {
48097
- if (this._deviceDetectorService.isMobile()) {
48098
- this.isOnMobile = true;
48099
- }
48100
- if (this.rootContext.data.currentUser) {
48101
- if (this.rootContext.data.currentUser.gender == 0) {
48102
- this.defaultAvatar = this.environment.appMetadata.main.defaultFemaleAvatar;
48103
- }
48104
- else {
48105
- this.defaultAvatar = this.environment.appMetadata.main.defaultMaleAvatar;
48106
- }
48107
- }
48108
- this.rootContext.replaySubscribe(ComCtxConstants.ROOT.USER_LOADED, rs => {
48109
- this.currentUser = this._userService.getCurrentUser();
48110
- this.loadAppMetadata();
48111
- this.loaded = true;
48112
- });
48113
- if (this.rootModel.allowAnonymous) {
48114
- this.loaded = true;
48115
- this.loadAppMetadata();
48116
- }
48117
- }
48118
- loadAppMetadata() {
48119
- const prmsAppSwicherItem = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
48120
- const arr = [];
48121
- for (const ind in this.environment.appMetadata.appSwitcher) {
48122
- const element = this.environment.appMetadata.appSwitcher[ind];
48123
- const clientId = this.environment.authenticationSettings.clientId;
48124
- if (this.rootModel.allowAnonymous && element.allowAnonymous) {
48125
- arr.push(element);
48126
- }
48127
- else if (this.currentUser) {
48128
- const isAuthorized = yield this._permissionService.isAuthorized(element.code, `${element.code}.MODULE.${element.code}`.toUpperCase(), true);
48129
- if (isAuthorized) {
48130
- arr.push(element);
48131
- }
48132
- }
48133
- }
48134
- resolve(arr);
48135
- }));
48136
- prmsAppSwicherItem.then(rs => {
48137
- this.appSwitcherItems.length = 0;
48138
- if (rs) {
48139
- rs.forEach(element => {
48140
- if (element.visible) {
48141
- if (!this.currentUser) { // allow anonymous
48142
- this.appSwitcherItems.push(element);
48143
- }
48144
- else {
48145
- if (this.currentUser.maNguoiHoc && this.currentUser.issuperuser.toLowerCase() != 'true') {
48146
- if (element.code.toLowerCase() == 'sv' || element.code.toLowerCase() == 'user') {
48147
- this.appSwitcherItems.push(element);
48148
- }
48149
- }
48150
- else {
48151
- this.appSwitcherItems.push(element);
48152
- }
48153
- }
48154
- }
48155
- });
48156
- if (this.appSwitcherItems.length === 1) {
48157
- setTimeout(x => this.switchApp(this.appSwitcherItems[0]), 100);
48158
- }
48159
- }
48160
- });
48161
- }
48162
- switchApp(item) {
48163
- this.loaded = false;
48164
- if (item.target == '_blank') {
48165
- let url = item.url;
48166
- if (item.defaultRedirect) {
48167
- url += `/${item.defaultRedirect}`;
48168
- }
48169
- top.location.href = url;
48170
- }
48171
- else {
48172
- if (item.defaultRedirect != '' && !this.rootContext.data.flags.menuTopOpenning) {
48173
- this._router.navigateByUrl(item.defaultRedirect);
48174
- this.rootContext.data.currentAppMetadata = this.environment.appMetadata.appSwitcher.find(x => x.code == item.code);
48175
- if (this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined && this.rootContext.data.currentAppMetadata.showDefaultSetting != null) {
48176
- this.showDefaultSetting = this.rootContext.data.currentAppMetadata.showDefaultSetting && this.showDefaultSetting;
48177
- }
48178
- }
48179
- }
48180
- }
48181
- logout() {
48182
- this._authenService.logout();
48183
- }
48184
- goToPersonal() {
48185
- const userMenu = this.environment.appMetadata.appSwitcher.find(x => x.code == 'USER');
48186
- this.switchApp(userMenu);
48187
- }
48188
- getCurrentUserAvatar() {
48189
- if (this.rootContext.data.currentUser && this.rootContext.data.currentUser.avatar) {
48190
- return `${this.fileApi}/file/public/${this.rootContext.data.currentUser.avatar}/Download`;
48191
- }
48192
- else {
48193
- return this.defaultAvatar;
48194
- }
48195
- }
48196
- getNgayTrongTuan() {
48197
- return this.daysInWeek[this.currentDate.getDay()];
48198
- }
48199
- showProfilePage() {
48200
- if (this._userService.isSinhVienAccount()) {
48201
- return false;
48202
- }
48203
- return true;
48204
- }
48205
- ngOnDestroy() {
48206
- super.ngOnDestroy();
48207
- this._globalService.setHeaderState(true);
48208
- this._globalService.setMenuState(true);
48209
- }
48210
- login() {
48211
- this.rootContext.fireEvent('LOGIN');
48212
- }
48213
- }
48214
- SplashComponentV2Component.decorators = [
48215
- { type: Component, args: [{
48216
- selector: 'splash-component-v2',
48217
- 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>",
48218
- providers: [ComponentContextService],
48219
- 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}}"]
48220
- },] }
48221
- ];
48222
- SplashComponentV2Component.ctorParameters = () => [
48223
- { type: Injector },
48224
- { type: ModuleConfigService },
48225
- { type: PermissionService },
48226
- { type: DeviceDetectorService },
48227
- { type: UserService },
48228
- { type: Router },
48229
- { type: AuthenService },
48230
- { type: GlobalService }
48231
- ];
48232
-
48233
- class SplashComponentV3Component extends ComponentBase {
48234
- constructor(injector, _moduleConfigService, _permissionService, _deviceDetectorService, _userService, _router, _authenService, _globalService) {
48235
- super(injector);
48236
- this._moduleConfigService = _moduleConfigService;
48237
- this._permissionService = _permissionService;
48238
- this._deviceDetectorService = _deviceDetectorService;
48239
- this._userService = _userService;
48240
- this._router = _router;
48241
- this._authenService = _authenService;
48242
- this._globalService = _globalService;
48243
- this.defaultAvatar = '';
48244
- this.appSwitcherItems = [];
48245
- this.loaded = false;
48246
- this.currentDate = new Date();
48247
- this.showDefaultSetting = false;
48248
- this.fileApi = '';
48249
- this.isOnMobile = false;
48250
- this.daysInWeek = ['Chủ nhật', 'Thứ 2', 'Thứ 3', 'Thứ 4', 'Thứ 5', 'Thứ 6', 'Thứ 7'];
48251
- this.rootContext.fireEvent('MAIN_CONTENT_ONLY', true);
48252
- this.environment = this._moduleConfigService.getConfig().environment;
48253
- this.defaultAvatar = this.environment.appMetadata.main.defaultMaleAvatar;
48254
- this.fileApi = `${this.environment.apiDomain.fileEndpoint}/${this.environment.apiVersion}/FileObject`;
48255
- setInterval(() => {
48256
- this.currentDate = new Date();
48257
- }, 1000);
48258
- if (this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata.showDefaultSetting != null && this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined) {
48259
- this.showDefaultSetting = this.rootContext.data.currentAppMetadata.showDefaultSetting;
48260
- }
48261
- else {
48262
- if (this.environment.appMetadata.main.showDefaultSetting != null && this.environment.appMetadata.main.showDefaultSetting != undefined) {
48263
- this.showDefaultSetting = this.environment.appMetadata.main.showDefaultSetting;
48264
- }
48265
- else {
48266
- this.showDefaultSetting = false;
48267
- }
48268
- }
48269
- // Config for authentication
48270
- this._globalService.setHeaderState(false);
48271
- this._globalService.setMenuState(false);
48272
- this.underconstruction = this.environment.underconstruction;
48273
- }
48274
- ngOnInit() {
48275
- if (this._deviceDetectorService.isMobile()) {
48276
- this.isOnMobile = true;
48277
- }
48278
- if (this.rootContext.data.currentUser) {
48279
- if (this.rootContext.data.currentUser.gender == 0) {
48280
- this.defaultAvatar = this.environment.appMetadata.main.defaultFemaleAvatar;
48281
- }
48282
- else {
48283
- this.defaultAvatar = this.environment.appMetadata.main.defaultMaleAvatar;
48284
- }
48285
- }
48286
- this.rootContext.replaySubscribe(ComCtxConstants.ROOT.USER_LOADED, rs => {
48287
- this.currentUser = this._userService.getCurrentUser();
48288
- this.loadAppMetadata();
48289
- this.loaded = true;
48290
- });
48291
- if (this.rootModel.allowAnonymous) {
48292
- this.loaded = true;
48293
- this.loadAppMetadata();
48294
- }
48295
- }
48296
- loadAppMetadata() {
48297
- const prmsAppSwicherItem = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
48298
- const arr = [];
48299
- for (const ind in this.environment.appMetadata.appSwitcher) {
48300
- const element = this.environment.appMetadata.appSwitcher[ind];
48301
- // const clientId = this.environment.authenticationSettings.clientId;
48302
- if (this.rootModel.allowAnonymous && element.allowAnonymous) {
48303
- arr.push(element);
48304
- }
48305
- else if (this.currentUser) {
48306
- // if (element.code === 'CMS-MSMV') {
48307
- // if (this._permissionService.isAuthorized(element.code, 'CMS-MSMV/SURVEYSHEETS?PLANID=7B40AED6-C7AB-44E6-ADDC-DC71C548D05C&VIEW=0', false)) {
48308
- // // const isAuthorized = await this._permissionService.isAuthorized(element.code, `test/lksjeflksejflseifjseifjslkejfkiki/test/kkjlskejflsekfjseklfj`.toUpperCase());
48309
- // arr.push(element);
48310
- // }
48311
- // continue;
48312
- // }
48313
- const isAuthorized = yield this._permissionService.isAuthorized(element.code, `${element.code}.MODULE.${element.code}`.toUpperCase(), true);
48314
- if (isAuthorized) {
48315
- arr.push(element);
48316
- }
48317
- }
48318
- }
48319
- resolve(arr);
48320
- }));
48321
- prmsAppSwicherItem.then(rs => {
48322
- this.appSwitcherItems.length = 0;
48323
- if (rs) {
48324
- rs.forEach(element => {
48325
- if (element.visible) {
48326
- if (!this.currentUser) { // allow anonymous
48327
- this.appSwitcherItems.push(element);
48328
- }
48329
- else {
48330
- if (this.currentUser.maNguoiHoc && this.currentUser.issuperuser.toLowerCase() != 'true') {
48331
- if (element.code.toLowerCase() == 'sv' || element.code.toLowerCase() == 'user') {
48332
- this.appSwitcherItems.push(element);
48333
- }
48334
- }
48335
- else {
48336
- this.appSwitcherItems.push(element);
48337
- }
48338
- }
48339
- }
48340
- });
48341
- if (this.appSwitcherItems.length === 1) {
48342
- setTimeout(x => this.switchApp(this.appSwitcherItems[0]), 100);
48343
- }
48344
- }
48345
- });
48346
- }
48347
- switchApp(item) {
48348
- this.loaded = false;
48349
- if (item.target == '_blank') {
48350
- let url = item.url;
48351
- if (item.defaultRedirect) {
48352
- url += `/${item.defaultRedirect}`;
48353
- }
48354
- top.location.href = url;
48355
- }
48356
- else {
48357
- if (item.defaultRedirect != '' && !this.rootContext.data.flags.menuTopOpenning) {
48358
- this._router.navigateByUrl(item.defaultRedirect);
48359
- this.rootContext.data.currentAppMetadata = this.environment.appMetadata.appSwitcher.find(x => x.code == item.code);
48360
- if (this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined && this.rootContext.data.currentAppMetadata.showDefaultSetting != null) {
48361
- this.showDefaultSetting = this.rootContext.data.currentAppMetadata.showDefaultSetting && this.showDefaultSetting;
48362
- }
48363
- }
48364
- }
48365
- }
48366
- logout() {
48367
- this._authenService.logout();
48368
- }
48369
- goToPersonal() {
48370
- const userMenu = this.environment.appMetadata.appSwitcher.find(x => x.code == 'USER');
48371
- this.switchApp(userMenu);
48372
- }
48373
- getCurrentUserAvatar() {
48374
- if (this.rootContext.data.currentUser && this.rootContext.data.currentUser.avatar) {
48375
- return `${this.fileApi}/public/${this.rootContext.data.currentUser.avatar}/Download`;
48376
- }
48377
- else {
48378
- return this.defaultAvatar;
48379
- }
48380
- }
48381
- getNgayTrongTuan() {
48382
- return this.daysInWeek[this.currentDate.getDay()];
48383
- }
48384
- showProfilePage() {
48385
- if (this._userService.isSinhVienAccount()) {
48386
- return false;
48387
- }
48388
- return true;
48389
- }
48390
- ngOnDestroy() {
48391
- super.ngOnDestroy();
48392
- this._globalService.setHeaderState(true);
48393
- this._globalService.setMenuState(true);
48394
- }
48395
- login() {
48396
- this.rootContext.fireEvent('LOGIN');
48397
- }
48398
- }
48399
- SplashComponentV3Component.decorators = [
48400
- { type: Component, args: [{
48401
- selector: 'splash-component-v3',
48402
- 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>",
48403
- providers: [ComponentContextService],
48404
- 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}}"]
48405
- },] }
48406
- ];
48407
- SplashComponentV3Component.ctorParameters = () => [
48408
- { type: Injector },
48409
- { type: ModuleConfigService },
48410
- { type: PermissionService },
48411
- { type: DeviceDetectorService },
48412
- { type: UserService },
48413
- { type: Router },
48414
- { type: AuthenService },
48415
- { type: GlobalService }
48416
- ];
48417
-
48418
- class SplashComponentV4Component extends ComponentBase {
48419
- constructor(injector, _moduleConfigService, _permissionService, _deviceDetectorService, _userService, _router, _authenService, _globalService) {
48420
- super(injector);
48421
- this._moduleConfigService = _moduleConfigService;
48422
- this._permissionService = _permissionService;
48423
- this._deviceDetectorService = _deviceDetectorService;
48424
- this._userService = _userService;
48425
- this._router = _router;
48426
- this._authenService = _authenService;
48427
- this._globalService = _globalService;
48428
- this.defaultAvatar = '';
48429
- this.appSwitcherItems = [];
48430
- this.loaded = false;
48431
- this.currentDate = new Date();
48432
- this.showDefaultSetting = false;
48433
- this.fileApi = '';
48434
- this.isOnMobile = false;
48435
- this.daysInWeek = ['Chủ nhật', 'Thứ 2', 'Thứ 3', 'Thứ 4', 'Thứ 5', 'Thứ 6', 'Thứ 7'];
48436
- this.rootContext.fireEvent('MAIN_CONTENT_ONLY', true);
48437
- this.environment = this._moduleConfigService.getConfig().environment;
48438
- this.defaultAvatar = this.environment.appMetadata.main.defaultMaleAvatar;
48439
- this.fileApi = `${this.environment.apiDomain.fileEndpoint}/${this.environment.apiVersion}/FileObject`;
48440
- setInterval(() => {
48441
- this.currentDate = new Date();
48442
- }, 1000);
48443
- if (this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata.showDefaultSetting != null && this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined) {
48444
- this.showDefaultSetting = this.rootContext.data.currentAppMetadata.showDefaultSetting;
48445
- }
48446
- else {
48447
- if (this.environment.appMetadata.main.showDefaultSetting != null && this.environment.appMetadata.main.showDefaultSetting != undefined) {
48448
- this.showDefaultSetting = this.environment.appMetadata.main.showDefaultSetting;
48449
- }
48450
- else {
48451
- this.showDefaultSetting = false;
48452
- }
48453
- }
48454
- // Config for authentication
48455
- this._globalService.setHeaderState(false);
48456
- this._globalService.setMenuState(false);
48457
- this.underconstruction = this.environment.underconstruction;
48458
- }
48459
- ngOnInit() {
48460
- if (this._deviceDetectorService.isMobile()) {
48461
- this.isOnMobile = true;
48462
- }
48463
- if (this.rootContext.data.currentUser) {
48464
- if (this.rootContext.data.currentUser.gender == 0) {
48465
- this.defaultAvatar = this.environment.appMetadata.main.defaultFemaleAvatar;
48466
- }
48467
- else {
48468
- this.defaultAvatar = this.environment.appMetadata.main.defaultMaleAvatar;
48469
- }
48470
- }
48471
- this.rootContext.replaySubscribe(ComCtxConstants.ROOT.USER_LOADED, rs => {
48472
- this.currentUser = this._userService.getCurrentUser();
48473
- this.loadAppMetadata();
48474
- this.loaded = true;
48475
- });
48476
- if (this.rootModel.allowAnonymous) {
48477
- this.loaded = true;
48478
- this.loadAppMetadata();
48479
- }
48480
- }
48481
- loadAppMetadata() {
48482
- const prmsAppSwicherItem = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
48483
- const arr = [];
48484
- for (const ind in this.environment.appMetadata.appSwitcher) {
48485
- const element = this.environment.appMetadata.appSwitcher[ind];
48486
- // const clientId = this.environment.authenticationSettings.clientId;
48487
- if (this.rootModel.allowAnonymous && element.allowAnonymous) {
48488
- arr.push(element);
48489
- }
48490
- else if (this.currentUser) {
48491
- // if (element.code === 'CMS-MSMV') {
48492
- // if (this._permissionService.isAuthorized(element.code, 'CMS-MSMV/SURVEYSHEETS?PLANID=7B40AED6-C7AB-44E6-ADDC-DC71C548D05C&VIEW=0', false)) {
48493
- // // const isAuthorized = await this._permissionService.isAuthorized(element.code, `test/lksjeflksejflseifjseifjslkejfkiki/test/kkjlskejflsekfjseklfj`.toUpperCase());
48494
- // arr.push(element);
48495
- // }
48496
- // continue;
48497
- // }
48498
- const isAuthorized = yield this._permissionService.isAuthorized(element.code, `${element.code}.MODULE.${element.code}`.toUpperCase(), true);
48499
- if (isAuthorized) {
48500
- arr.push(element);
48501
- }
48502
- }
48503
- }
48504
- resolve(arr);
48505
- }));
48506
- prmsAppSwicherItem.then(rs => {
48507
- this.appSwitcherItems.length = 0;
48508
- if (rs) {
48509
- rs.forEach(element => {
48510
- if (element.visible) {
48511
- if (!this.currentUser) { // allow anonymous
48512
- this.appSwitcherItems.push(element);
48513
- }
48514
- else {
48515
- if (this.currentUser.maNguoiHoc && this.currentUser.issuperuser.toLowerCase() != 'true') {
48516
- if (element.code.toLowerCase() == 'sv' || element.code.toLowerCase() == 'user') {
48517
- this.appSwitcherItems.push(element);
48518
- }
48519
- }
48520
- else {
48521
- this.appSwitcherItems.push(element);
48522
- }
48523
- }
48524
- }
48525
- });
48526
- if (this.appSwitcherItems.length === 1) {
48527
- setTimeout(x => this.switchApp(this.appSwitcherItems[0]), 100);
48528
- }
48529
- }
48530
- });
48531
- }
48532
- switchApp(item) {
48533
- this.loaded = false;
48534
- if (item.target == '_blank') {
48535
- let url = item.url;
48536
- if (item.defaultRedirect) {
48537
- url += `/${item.defaultRedirect}`;
48538
- }
48539
- top.location.href = url;
48540
- }
48541
- else {
48542
- if (item.defaultRedirect != '' && !this.rootContext.data.flags.menuTopOpenning) {
48543
- this._router.navigateByUrl(item.defaultRedirect);
48544
- this.rootContext.data.currentAppMetadata = this.environment.appMetadata.appSwitcher.find(x => x.code == item.code);
48545
- if (this.rootContext.data.currentAppMetadata && this.rootContext.data.currentAppMetadata.showDefaultSetting != undefined && this.rootContext.data.currentAppMetadata.showDefaultSetting != null) {
48546
- this.showDefaultSetting = this.rootContext.data.currentAppMetadata.showDefaultSetting && this.showDefaultSetting;
48547
- }
48548
- }
48549
- }
48550
- }
48551
- logout() {
48552
- this._authenService.logout();
48553
- }
48554
- goToPersonal() {
48555
- const userMenu = this.environment.appMetadata.appSwitcher.find(x => x.code == 'USER');
48556
- this.switchApp(userMenu);
48557
- }
48558
- getCurrentUserAvatar() {
48559
- if (this.rootContext.data.currentUser && this.rootContext.data.currentUser.avatar) {
48560
- return `${this.fileApi}/public/${this.rootContext.data.currentUser.avatar}/Download`;
48561
- }
48562
- else {
48563
- return this.defaultAvatar;
48564
- }
48565
- }
48566
- getNgayTrongTuan() {
48567
- return this.daysInWeek[this.currentDate.getDay()];
48568
- }
48569
- showProfilePage() {
48570
- if (this._userService.isSinhVienAccount()) {
48571
- return false;
48572
- }
48573
- return true;
48574
- }
48575
- ngOnDestroy() {
48576
- super.ngOnDestroy();
48577
- this._globalService.setHeaderState(true);
48578
- this._globalService.setMenuState(true);
48579
- }
48580
- login() {
48581
- this.rootContext.fireEvent('LOGIN');
48582
- }
48583
- }
48584
- SplashComponentV4Component.decorators = [
48585
- { type: Component, args: [{
48586
- selector: 'splash-component-v4',
48587
- 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>",
48588
- providers: [ComponentContextService],
48589
- 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}}"]
48590
- },] }
48591
- ];
48592
- SplashComponentV4Component.ctorParameters = () => [
48593
- { type: Injector },
48594
- { type: ModuleConfigService },
48595
- { type: PermissionService },
48596
- { type: DeviceDetectorService },
48597
- { type: UserService },
48598
- { type: Router },
48599
- { type: AuthenService },
48600
- { type: GlobalService }
48601
- ];
48602
-
48603
47870
  class StateMachinesConnectionReceiverRoleComponent extends DataFormBase {
48604
47871
  constructor(injector, _dmChucVuService) {
48605
47872
  super(injector);
@@ -54811,11 +54078,6 @@ function coreDeclaration() {
54811
54078
  ProcessWorkflowFormComponent,
54812
54079
  ProcessWorkflowTargetComponent,
54813
54080
  ChoYKienFormComponent,
54814
- SplashComponentComponent,
54815
- SplashComponentV1Component,
54816
- SplashComponentV2Component,
54817
- SplashComponentV3Component,
54818
- SplashComponentV4Component,
54819
54081
  StateComponent,
54820
54082
  StateMetadataComponent,
54821
54083
  StateMachinesConnectionMetadataComponent,
@@ -54917,6 +54179,11 @@ function coreDeclaration() {
54917
54179
  CheckReadyComponent,
54918
54180
  WorkflowButtonComponent,
54919
54181
  TnAccordionTabComponent,
54182
+ SplashComponentComponent,
54183
+ // SplashComponentV1Component,
54184
+ // SplashComponentV2Component,
54185
+ // SplashComponentV3Component,
54186
+ // SplashComponentV4Component,
54920
54187
  // CommonAppComponentComponent,
54921
54188
  // AppTopBarBaseComponent,
54922
54189
  // AppTopBarV1Component,
@@ -55100,5 +54367,5 @@ class Pair {
55100
54367
  * Generated bundle index. Do not edit.
55101
54368
  */
55102
54369
 
55103
- export { AccessDeniedComponent, Action, ActionChoYKienBase, ActionThuHoiBase, ActionUpdateModel, AddressControlSchema, AddressService, AdvanceSearchData, AdvanceSearchSetting, AnnouncementReadsService, AnnouncementsService, AppComponentBase, AppListService, ApplicationContextService, ApprovalPipe, ArrayPair, AtLeastOneRowTableValidator, AuthenService, AuthorizeDirective, AutoCompleteControlSchema, AutoCompletePickerControlSchema, AutocompleteDatasourceComponent, AvatarUploaderComponent, BaseCauHinhWorkflowComponent, BaseCongViecComponent, BaseCongViecFormComponent, BaseDmLinhVucCongViecComponent, BaseDmLoaiCongViecComponent, BaseDmPriorityComponent, BaseMenuService, BaseModule, BaseService, BooleanFormatPipe, ButtonControlSchema, ButtonPermission, ButtonPermissions, ButtonTextActionCongViec, CONFIG_CALENDAR_VIETNAMESE, CalculationEngineService, CanBoHoSoService, CanBo_HoSo_CoCauToChucService, CauHinhWorkflowService, CccdValidator, CellExcel, ChatBoxComponent, ChatSendMessageBoxComponent, CheckBoxListControlSchema, CheckControlVisibleService, CheckDuplicateFieldsValidator, CheckDuplicateValidator, CheckboxControlSchema, ChipsControlSchema, ClientV5Service, CoCauToChucControlSchema, CoCauToChucNewService, CoCauToChucPickerComponent, CoCauToChucPickerControlSchema, CoCauToChucPickerControlSchemaNew, CoCauToChucService, CodeValidator, ColorBlack, ColorControlSchema, ColorPickerControlSchema, ColorWhite, Column, ColumnSchemaBase, ColumnSetting, ColumnSettingDetail, ComCtxConstants, CommandType, CommonDashboardComponent, CommonErrorCode, CommonLibComponent, CommonSearchFormComponent, CommonService, CompareValidator, ComponentBase, ComponentBaseWithButton, ComponentConstants, ComponentContextService, ConditionalBuilderService, CongViecLienQuanService, CongViecNextFirstStepComponent, CongViecPickerControlSchema, CongViecService, ContainerSchema, ControlTreeNode, ControlType, ConvertMoneyToWordPipe, CoreConfigService, CrudBase, CrudFormComponent, CrudFormCustomFunction, CrudFormData, CrudFormSetting, CrudListComponent, CrudListConfig, CrudListCustomFunction, CrudListData, CrudListHelper, CrudListSetting, CrudService, CustomControlSchema, CustomRouterService, CustomizeUiModel, CustomizeUiService, DanhmucApiService, DataExcel, DataFormBase, DataListBase, DataSourceControlSchema, DataSourceGioiTinh, DataSourcePermissionBase, DataSourceStateType, DataSourceTargetType, DataSourceUserRule, DataSourceUserSender, DataSourceWorkflowCheckboxOption, DataSourceWorkflowCoreStatus, DataType, DateCompareValidator, DateTimeControlSchema, DateTimeRangeControlSchema, DbOrganizationOrganizationService, DbOrganizationPositionService, Deadline, DeadlineType, DhvinhGuardService, DialogModel, DmChucVuService, DmLinhVucCongViecService, DmLoaiCongViecService, DmPriorityService, DomService, DownloadLinkService, DropdownComponent, DropdownControlSchema, DropdownOptions, DummyWorkflowCode, DynamicComponentService, ENUM_DON_VI_HANH_CHINH, EXPLORER_TYPES, EXPORT_VERSION_V4, EXPORT_VERSION_V5, EditFileCommand, EditorControlSchema, EformService, EmailValidator, EntityMedataDataSetting, EntityMetadataService, EntityPickerColumn, EntityPickerControlSchema, EntityWorkflowType, EnumActionType, EnumAppSwitcherCode, EnumCanBo, EnumControlPickerType, EnumFileLayout, EnumGetRefType, EnumGioiTinh, EnumHocHamHocVi, EnumLoaiDanhSachCongViec, EnumLoaiVanBanBase$1 as EnumLoaiVanBanBase, EnumPermissionType, EnumProcessWorkflowType, EnumStateByMenuCongViec, EnumStateType, EnumTargetType, EnumTypeSplash, EnumUserRule, EnumUserSource, EnumWFNhomTrangThai, EnumWorkflowCheckboxOption, EnumWorkflowCoreCodeSettingKey, EnumWorkflowHistoryStatus, ErrorType, EventData, EventType, ExactOneValueInTableValidator, ExportAllMode, ExportItem, ExportItemType, ExportItemsMode, ExportManyModel, ExportManyResultModel, ExportModel, ExportService, ExportWithoutTemplateModel, Extension, ExtensionsConst, FILE_TYPES, FederationService, FieldCheckboxCrudList, FieldColExpandCrudList, FieldColReorderCrudList, FieldDefineHasTask, FieldDefineIsTaskFormControl, FieldDefineIsWorkflowControl, FieldFunctionCrudList, FieldIndexInDataSource, FieldOrderCrudList, FieldRowSpan, FieldWorkflowCodeInCrudForm, FileDataService, FileExplorerService, FileExtensions, FileManagerComponent, FileManagerControlSchema, FileManagerMode, FileManagerSetting, FileObjectService, FilePickerDialogComponent, FilePickerSetting, FileType, FileTypeFlag, FileUploadComponent, FileUploadControlSchema, FileUploadMode, FileUploadSetting, FileV4Service, Filter, FolderService, FormControlBase, FormControlBaseWithService, FormSchemaBase, FormSchemaBaseWithService, FormState, Gender, GenerateLinkDownloadDTO, GenericGuardChildService, GenericGuardService, GlobalService, GmailCorrector, GridInfo, GuardService, GuardSvService, HeightType, HighPerformanceService, HighlightPipe, HoSoDoiTacService, HtmlFormatPipe, HttpOptions, ImageService, ImageUploaderControlSchema, Include, JsPlumbOption, KeyFieldGetRefType, KeyFilterStateByMenuCongViec, KeyFlashShow, KeyFunctionReload, KeyValueComponent, KeyValueControlSchema, LabelSchema, LabelWFNhomTrangThai, LabelWorkflowCoreStatus, LengthValidator, ListHelperService, LoaiPhieuDeXuat, LocalCacheService, LowerCorrector, MA_THONG_BAO_PHAN_HE, MaActionBatDauQuyTrinh, ManagerType, MaskControlSchema, MasterDataItem, MasterDataPipe, MasterDataService, MenuService, MenuSource, MergeConfigModel, MethodResult, ModelKySoDonVi, ModelSchema, ModuleConfigService, MultiTranslateHttpLoader, MultipleReferenceDataFormatPipe, NameValidator, NodeService, NotificationObjectType, NotificationService, NotifierService, NotifierType, NumberCompareValidator, NumberOnlyValidator, NumberRangeControlSchema, Operator, OrganizationFormatPipe, OrganizationNameFormatPipe, OrganizationPickerControlSchema, OrganizationService, OrganizationsFormatPipe, PageInfo, PageSetting, Pair, PassportValidator, PasswordValidator, Pattern, PercentControlSchema, PermissionBase, PermissionConstant, PermissionService, PermissionStorage, PermissionTypes, PermissionUtilsComponent, PersonalSetting, PhanQuyenModel, PhoneNumberValidator, PhoneValidator, PopupSize, PositionService, PrintService, PublicFunction, QueryBuilderComponent, QueryBuilderGroupComponent, QueryBuilderRuleComponent, QueryGroup, QueryRule, RELOAD_FILE_LIST, RadioButtonListControlSchema, RandomDataService, RefField, ReferenceDataFormatPipe, ReferenceTextControlSchema, RegexSplitFieldByItem, ReponseResult, ReportQueueComponent, RequiredFieldsValidator, RequiredValidator, RowColorOption, RowExcel, SHARE_COMPONENT_ID, SHARE_EVENT, SafeHtmlPipe, SafeStylePipe, SafeUrlPipe, SameValueValidator, ScalarValueValidator, SchemaBase, SecurePipe, ServiceFileUploadComponent, ServiceRequestModel, ServiceRequestModelV5, SessionTypes, SharedFolderType, SignalRService, SimpleDicItem, SimpleDictionary, Sort, SortDirs, SpanControlSchema, SplashComponentComponent, StartupBusinessComponentBase, StateComponent, StateMachineTopic, StateMachinesConnectionMetadataComponent, StateMachinesDesignerComponent, StateMachinesService, StateMetadataComponent, Status, StatusAction, StatusGroup, StatusOption, StatusOrg, StatusUser, StorageService, StorageUpdatedService, StringCompareOption, StringFormatPipe, SummaryPipe, SwitchControlSchema, TBL_DM_COSODAOTAO_CONSTS, TBL_DM_PHONGHOC_CONSTS, TBL_KTX_NGUOITHUE_HOSO, TBL_TS_PHIEUDEXUAT, TBL_TS_TAISANCODINH_CONSTS, TabViewData, TableSchema, TagSeparator, TaiLieuComponent, TaxCodeValidator, TemplateConstant, TemplateControlSchema, TemplateInstanceService, TemplateService, TemplateTextItem, TemplateTextMany, TemplateTextV4Service, TemplateType, TemplateV4Service, TenContainer, TextAlign, TextAreaControlSchema, TextControlSchema, TextControlSchemaWithService, TitleSchema, TnClientCommand, TnClientService, TnComponentConfig, TnCustomScrollbarComponent, TnDatePipe, TnMenu, TnMenuItem, TnReorderableColumnDirective, TnReorderableRowDirective, TnSortIcon, TnSortableColumnDirective, TnTreeTableToggler, TnUser, TnxSharedModule, TopicReloadCongViecV5, TopicReloadCountCongViecV5, TopicReloadNotification, TrangThaiMasterData, TrangThais, TreeDataOption, TreeListBase, TreeNode, TrimCorrector, TrimEndCorrector, TrimStartCorrector, TypeDanhMucAPI, UniqueFieldInTableValidator, UniqueNumberService, UpperCorrector, UserGroupRealService, UserGroupService, UserOnlineDetailsService, UserPickerControlSchema, UserPickerDialogComponent, UserPublicInfo, UserService, UserType, UserV5Service, Validation, ValueType, VanBanPickerControlSchema, ViewContainerRefDirective, VirtualBaseService, WorkflowConfigAdvance, WorkflowCoreStatusEnum, WorkflowFieldStateCode, WorkflowHistoryService, WorkflowPermissionDetailService, WorkflowPickerComponent, WorkflowService, WorkflowSetting, WorkflowSettingNew, WorkflowSettingsService, WrapPickerControlSchema, addDay, addZero, appendDefaultFilter, clearAll, clone, cloneOld, coreDeclaration, coreModuleImport, coreProvider, createJsPlumnInstance, createOrgPickerControl, createOrgPickerControlNew, createRolePickerControl, createUserGroupPickerControl, createUserPickerControl, dataSourceIcon, dateDiff, fileTypeSource, genQueryFromFilters, getDateFromStringDateVN, getDayOfWeek, getEnvironmentByName, getEnvironmentData, getListMenuByName, getMenuData, getMonday, getStringDate, getStringDateTime, getStringDateVN, getStringDateVNLocal, getTimeSpan, isArray, isBoolean, isDate, isFunction, isLiteralObject, isNumber, isObjectOld, isRegular, isSimpleType, isString, isValidDate, isValidTime, keyUserSurveyLocal, loadRemoteModule, loadRemotePageModule, mapProperty, maximumPageSize, mergeJSON, mergeJSONOld, moduleConfigFunc, monthDiff, multipleSort, romanize, setMetadataConnection, setMetadataState, translateStateMachine, ɵ10, ɵ11, ɵ12, ɵ13, ɵ14, ɵ15, ɵ5, ɵ6, ɵ7, ɵ8, ɵ9, LoggerService as ɵa, DropdownService as ɵb, ProcessWorkflowFormComponent as ɵba, CongViecDinhKemService as ɵbb, CongViecThayDoiService as ɵbc, AddressComponent as ɵbd, AfterViewCheckedComponent as ɵbe, AdvanceSearchComponent as ɵbf, AutoCompletePickerComponent as ɵbg, ImageUploaderComponent as ɵbh, CheckBoxListComponent as ɵbi, CoCauToChucPickerListComponent as ɵbj, CoCauToChucPickerListNewComponent as ɵbk, FormBuilderComponent as ɵbl, BaseCongViecTestComponent as ɵbm, BaseCauHinhWorkflowDetailComponent as ɵbn, BaseDmLoaiCongViecFormComponent as ɵbo, BaseDmLinhVucCongViecFormComponent as ɵbp, BaseDmPriorityFormComponent as ɵbq, BaseCongviecDinhkemComponent as ɵbr, BaseCongviecDinhkemFormComponent as ɵbs, DatetimePickerComponent as ɵbt, DatetimePickerRangeComponent as ɵbu, DynamicNodeComponent as ɵbv, EntityPickerBoxComponent as ɵbw, EntityPickerDataComponent as ɵbx, EntityPickerSelectedComponent as ɵby, EntityPickerComponent as ɵbz, EntityPickerService as ɵc, EntityPickerDialogComponent as ɵca, EntityPickerTreeDataComponent as ɵcb, EntityPickerTreeSelectedComponent as ɵcc, EntityPermissionComponent as ɵcd, EquationEditorComponent as ɵce, MaskComponent as ɵcf, NumberPickerRangeComponent as ɵcg, PagingNextBackOnlyComponent as ɵch, RadioButtonListComponent as ɵci, VanBanPickerComponent as ɵcj, VanBanDenService as ɵck, VanBanDiService as ɵcl, VanBanPickerDialogComponent as ɵcm, VanbanDiPickerComponent as ɵcn, VanbanDenPickerComponent as ɵco, CongViecPickerComponent as ɵcp, SettingsComponent as ɵcq, SettingsRowComponent as ɵcr, SettingsWorkflowComponent as ɵcs, SettingsWorkflowNo1Component as ɵct, SimpleWorkflowFormComponent as ɵcu, ProcessWorkflowTargetComponent as ɵcv, ChoYKienFormComponent as ɵcw, SplashComponentV1Component as ɵcx, SplashComponentV2Component as ɵcy, SplashComponentV3Component as ɵcz, ExceptionHandlerService as ɵd, SplashComponentV4Component as ɵda, StateMachinesConnectionReceiverComponent as ɵdb, StateMachinesConnectionReceiverConditionComponent as ɵdc, StateMachinesConnectionReceiverDepartmentComponent as ɵdd, StateMachinesConnectionReceiverGroupComponent as ɵde, StateMachinesConnectionReceiverUserComponent as ɵdf, StateMachinesConnectionReceiverRoleComponent as ɵdg, StateMachinesConnectionSenderComponent as ɵdh, StartWorkflowComponent as ɵdi, ShareLinkByPermissionComponent as ɵdj, WorkflowSettingNewComponent as ɵdk, PermissionSharingComponent as ɵdl, WorkflowPermissionService as ɵdm, TnCheckboxComponent as ɵdn, TnDialogComponent as ɵdo, TnColorPickerComponent as ɵdp, TnTinymceComponent as ɵdq, TnTabViewComponent as ɵdr, TableDetailFormComponent as ɵds, FileIconPipe as ɵdt, FileSizePipe as ɵdu, QuickAddFormComponent as ɵdv, PreventShiftTabDirective as ɵdw, TnTemplateDirective as ɵdx, UserPickerComponent as ɵdy, UserPickerBoxComponent as ɵdz, CanBo_HoSoService as ɵe, CoCauToChucTestService as ɵea, TnAppHelpComponent as ɵeb, PathNameService as ɵec, HelperCurrentPageComponent as ɵed, TnAppNotificationListComponent as ɵee, TnAppNotificationComponent as ɵef, FolderFormComponent as ɵeg, FileFormComponent as ɵeh, FileViewerComponent as ɵei, FileVersionListComponent as ɵej, ViewDetailComponent as ɵek, WorkflowHistoryComponent as ɵel, WorkflowHistoryDialogComponent as ɵem, WorkflowHistoryNewComponent as ɵen, WorkflowSettingComponent as ɵeo, WorkflowSettingDialogComponent as ɵep, WorkflowPermissionComponent as ɵeq, WorkflowPermissionFormComponent as ɵer, ReferenceTextBoxComponent as ɵes, QrCodeGeneratorComponent as ɵet, AddNewsComponent as ɵeu, ArticleService as ɵev, NewsCategoryService as ɵew, UniversalLinkProcessorComponent as ɵex, SignatureDetailComponent as ɵey, KySoSimDanhSachChuKyComponent as ɵez, ListBase as ɵf, KySoSimChuKyUserService as ɵfa, FileKySoSimComponent as ɵfb, KySoSimSignPDFService as ɵfc, TaiLieuCuaToiComponent as ɵfd, KhaiThacTaiLieuDungChungComponent as ɵfe, DanhMucDungChungService as ɵff, TnTemplateComponent as ɵfg, DropdownSettingFormComponent as ɵfh, CheckReadyComponent as ɵfi, WorkflowButtonComponent as ɵfj, TnAccordionTabComponent as ɵfk, ListComponentBase as ɵg, TreeTableComponent as ɵh, NotFoundComponent as ɵi, SendAccessTokenInterceptor as ɵj, LogInterceptor as ɵk, PermissionUtilsInterceptor as ɵl, TraceInterceptor as ɵm, EntityWorkflowSettingService as ɵn, EntityWorkflowHistoryService as ɵo, EntityPermissionService as ɵp, ChatService as ɵq, MyDriveService as ɵr, ContentsService as ɵs, StatusExtendsService as ɵt, MessageBoardService as ɵu, FileExplorerNewService as ɵv, FileVersionService as ɵw, FileManagerService as ɵx, DM_ChucVuService as ɵy, RoleService as ɵz };
54370
+ export { AccessDeniedComponent, Action, ActionChoYKienBase, ActionThuHoiBase, ActionUpdateModel, AddressControlSchema, AddressService, AdvanceSearchData, AdvanceSearchSetting, AnnouncementReadsService, AnnouncementsService, AppComponentBase, AppListService, ApplicationContextService, ApprovalPipe, ArrayPair, AtLeastOneRowTableValidator, AuthenService, AuthorizeDirective, AutoCompleteControlSchema, AutoCompletePickerControlSchema, AutocompleteDatasourceComponent, AvatarUploaderComponent, BaseCauHinhWorkflowComponent, BaseCongViecComponent, BaseCongViecFormComponent, BaseDmLinhVucCongViecComponent, BaseDmLoaiCongViecComponent, BaseDmPriorityComponent, BaseMenuService, BaseModule, BaseService, BooleanFormatPipe, ButtonControlSchema, ButtonPermission, ButtonPermissions, ButtonTextActionCongViec, CONFIG_CALENDAR_VIETNAMESE, CalculationEngineService, CanBoHoSoService, CanBo_HoSo_CoCauToChucService, CauHinhWorkflowService, CccdValidator, CellExcel, ChatBoxComponent, ChatSendMessageBoxComponent, CheckBoxListControlSchema, CheckControlVisibleService, CheckDuplicateFieldsValidator, CheckDuplicateValidator, CheckboxControlSchema, ChipsControlSchema, ClientV5Service, CoCauToChucControlSchema, CoCauToChucNewService, CoCauToChucPickerComponent, CoCauToChucPickerControlSchema, CoCauToChucPickerControlSchemaNew, CoCauToChucService, CodeValidator, ColorBlack, ColorControlSchema, ColorPickerControlSchema, ColorWhite, Column, ColumnSchemaBase, ColumnSetting, ColumnSettingDetail, ComCtxConstants, CommandType, CommonDashboardComponent, CommonErrorCode, CommonLibComponent, CommonSearchFormComponent, CommonService, CompareValidator, ComponentBase, ComponentBaseWithButton, ComponentConstants, ComponentContextService, ConditionalBuilderService, CongViecLienQuanService, CongViecNextFirstStepComponent, CongViecPickerControlSchema, CongViecService, ContainerSchema, ControlTreeNode, ControlType, ConvertMoneyToWordPipe, CoreConfigService, CrudBase, CrudFormComponent, CrudFormCustomFunction, CrudFormData, CrudFormSetting, CrudListComponent, CrudListConfig, CrudListCustomFunction, CrudListData, CrudListHelper, CrudListSetting, CrudService, CustomControlSchema, CustomRouterService, CustomizeUiModel, CustomizeUiService, DanhmucApiService, DataExcel, DataFormBase, DataListBase, DataSourceControlSchema, DataSourceGioiTinh, DataSourcePermissionBase, DataSourceStateType, DataSourceTargetType, DataSourceUserRule, DataSourceUserSender, DataSourceWorkflowCheckboxOption, DataSourceWorkflowCoreStatus, DataType, DateCompareValidator, DateTimeControlSchema, DateTimeRangeControlSchema, DbOrganizationOrganizationService, DbOrganizationPositionService, Deadline, DeadlineType, DhvinhGuardService, DialogModel, DmChucVuService, DmLinhVucCongViecService, DmLoaiCongViecService, DmPriorityService, DomService, DownloadLinkService, DropdownComponent, DropdownControlSchema, DropdownOptions, DummyWorkflowCode, DynamicComponentService, ENUM_DON_VI_HANH_CHINH, EXPLORER_TYPES, EXPORT_VERSION_V4, EXPORT_VERSION_V5, EditFileCommand, EditorControlSchema, EformService, EmailValidator, EntityMedataDataSetting, EntityMetadataService, EntityPickerColumn, EntityPickerControlSchema, EntityWorkflowType, EnumActionType, EnumAppSwitcherCode, EnumCanBo, EnumControlPickerType, EnumFileLayout, EnumGetRefType, EnumGioiTinh, EnumHocHamHocVi, EnumLoaiDanhSachCongViec, EnumLoaiVanBanBase$1 as EnumLoaiVanBanBase, EnumPermissionType, EnumProcessWorkflowType, EnumStateByMenuCongViec, EnumStateType, EnumTargetType, EnumTypeSplash, EnumUserRule, EnumUserSource, EnumWFNhomTrangThai, EnumWorkflowCheckboxOption, EnumWorkflowCoreCodeSettingKey, EnumWorkflowHistoryStatus, ErrorType, EventData, EventType, ExactOneValueInTableValidator, ExportAllMode, ExportItem, ExportItemType, ExportItemsMode, ExportManyModel, ExportManyResultModel, ExportModel, ExportService, ExportWithoutTemplateModel, Extension, ExtensionsConst, FILE_TYPES, FederationService, FieldCheckboxCrudList, FieldColExpandCrudList, FieldColReorderCrudList, FieldDefineHasTask, FieldDefineIsTaskFormControl, FieldDefineIsWorkflowControl, FieldFunctionCrudList, FieldIndexInDataSource, FieldOrderCrudList, FieldRowSpan, FieldWorkflowCodeInCrudForm, FileDataService, FileExplorerService, FileExtensions, FileManagerComponent, FileManagerControlSchema, FileManagerMode, FileManagerSetting, FileObjectService, FilePickerDialogComponent, FilePickerSetting, FileType, FileTypeFlag, FileUploadComponent, FileUploadControlSchema, FileUploadMode, FileUploadSetting, FileV4Service, Filter, FolderService, FormControlBase, FormControlBaseWithService, FormSchemaBase, FormSchemaBaseWithService, FormState, Gender, GenerateLinkDownloadDTO, GenericGuardChildService, GenericGuardService, GlobalService, GmailCorrector, GridInfo, GuardService, GuardSvService, HeightType, HighPerformanceService, HighlightPipe, HoSoDoiTacService, HtmlFormatPipe, HttpOptions, ImageService, ImageUploaderControlSchema, Include, JsPlumbOption, KeyFieldGetRefType, KeyFilterStateByMenuCongViec, KeyFlashShow, KeyFunctionReload, KeyValueComponent, KeyValueControlSchema, LabelSchema, LabelWFNhomTrangThai, LabelWorkflowCoreStatus, LengthValidator, ListHelperService, LoaiPhieuDeXuat, LocalCacheService, LowerCorrector, MA_THONG_BAO_PHAN_HE, MaActionBatDauQuyTrinh, ManagerType, MaskControlSchema, MasterDataItem, MasterDataPipe, MasterDataService, MenuService, MenuSource, MergeConfigModel, MethodResult, ModelKySoDonVi, ModelSchema, ModuleConfigService, MultiTranslateHttpLoader, MultipleReferenceDataFormatPipe, NameValidator, NodeService, NotificationObjectType, NotificationService, NotifierService, NotifierType, NumberCompareValidator, NumberOnlyValidator, NumberRangeControlSchema, Operator, OrganizationFormatPipe, OrganizationNameFormatPipe, OrganizationPickerControlSchema, OrganizationService, OrganizationsFormatPipe, PageInfo, PageSetting, Pair, PassportValidator, PasswordValidator, Pattern, PercentControlSchema, PermissionBase, PermissionConstant, PermissionService, PermissionStorage, PermissionTypes, PermissionUtilsComponent, PersonalSetting, PhanQuyenModel, PhoneNumberValidator, PhoneValidator, PopupSize, PositionService, PrintService, PublicFunction, QueryBuilderComponent, QueryBuilderGroupComponent, QueryBuilderRuleComponent, QueryGroup, QueryRule, RELOAD_FILE_LIST, RadioButtonListControlSchema, RandomDataService, RefField, ReferenceDataFormatPipe, ReferenceTextControlSchema, RegexSplitFieldByItem, ReponseResult, ReportQueueComponent, RequiredFieldsValidator, RequiredValidator, RowColorOption, RowExcel, SHARE_COMPONENT_ID, SHARE_EVENT, SafeHtmlPipe, SafeStylePipe, SafeUrlPipe, SameValueValidator, ScalarValueValidator, SchemaBase, SecurePipe, ServiceFileUploadComponent, ServiceRequestModel, ServiceRequestModelV5, SessionTypes, SharedFolderType, SignalRService, SimpleDicItem, SimpleDictionary, Sort, SortDirs, SpanControlSchema, SplashComponentComponent, StartupBusinessComponentBase, StateComponent, StateMachineTopic, StateMachinesConnectionMetadataComponent, StateMachinesDesignerComponent, StateMachinesService, StateMetadataComponent, Status, StatusAction, StatusGroup, StatusOption, StatusOrg, StatusUser, StorageService, StorageUpdatedService, StringCompareOption, StringFormatPipe, SummaryPipe, SwitchControlSchema, TBL_DM_COSODAOTAO_CONSTS, TBL_DM_PHONGHOC_CONSTS, TBL_KTX_NGUOITHUE_HOSO, TBL_TS_PHIEUDEXUAT, TBL_TS_TAISANCODINH_CONSTS, TabViewData, TableSchema, TagSeparator, TaiLieuComponent, TaxCodeValidator, TemplateConstant, TemplateControlSchema, TemplateInstanceService, TemplateService, TemplateTextItem, TemplateTextMany, TemplateTextV4Service, TemplateType, TemplateV4Service, TenContainer, TextAlign, TextAreaControlSchema, TextControlSchema, TextControlSchemaWithService, TitleSchema, TnClientCommand, TnClientService, TnComponentConfig, TnCustomScrollbarComponent, TnDatePipe, TnMenu, TnMenuItem, TnReorderableColumnDirective, TnReorderableRowDirective, TnSortIcon, TnSortableColumnDirective, TnTreeTableToggler, TnUser, TnxSharedModule, TopicReloadCongViecV5, TopicReloadCountCongViecV5, TopicReloadNotification, TrangThaiMasterData, TrangThais, TreeDataOption, TreeListBase, TreeNode, TrimCorrector, TrimEndCorrector, TrimStartCorrector, TypeDanhMucAPI, UniqueFieldInTableValidator, UniqueNumberService, UpperCorrector, UserGroupRealService, UserGroupService, UserOnlineDetailsService, UserPickerControlSchema, UserPickerDialogComponent, UserPublicInfo, UserService, UserType, UserV5Service, Validation, ValueType, VanBanPickerControlSchema, ViewContainerRefDirective, VirtualBaseService, WorkflowConfigAdvance, WorkflowCoreStatusEnum, WorkflowFieldStateCode, WorkflowHistoryService, WorkflowPermissionDetailService, WorkflowPickerComponent, WorkflowService, WorkflowSetting, WorkflowSettingNew, WorkflowSettingsService, WrapPickerControlSchema, addDay, addZero, appendDefaultFilter, clearAll, clone, cloneOld, coreDeclaration, coreModuleImport, coreProvider, createJsPlumnInstance, createOrgPickerControl, createOrgPickerControlNew, createRolePickerControl, createUserGroupPickerControl, createUserPickerControl, dataSourceIcon, dateDiff, fileTypeSource, genQueryFromFilters, getDateFromStringDateVN, getDayOfWeek, getEnvironmentByName, getEnvironmentData, getListMenuByName, getMenuData, getMonday, getStringDate, getStringDateTime, getStringDateVN, getStringDateVNLocal, getTimeSpan, isArray, isBoolean, isDate, isFunction, isLiteralObject, isNumber, isObjectOld, isRegular, isSimpleType, isString, isValidDate, isValidTime, keyUserSurveyLocal, loadRemoteModule, loadRemotePageModule, mapProperty, maximumPageSize, mergeJSON, mergeJSONOld, moduleConfigFunc, monthDiff, multipleSort, romanize, setMetadataConnection, setMetadataState, translateStateMachine, ɵ10, ɵ11, ɵ12, ɵ13, ɵ14, ɵ15, ɵ5, ɵ6, ɵ7, ɵ8, ɵ9, LoggerService as ɵa, DropdownService as ɵb, ProcessWorkflowFormComponent as ɵba, CongViecDinhKemService as ɵbb, CongViecThayDoiService as ɵbc, AddressComponent as ɵbd, AfterViewCheckedComponent as ɵbe, AdvanceSearchComponent as ɵbf, AutoCompletePickerComponent as ɵbg, ImageUploaderComponent as ɵbh, CheckBoxListComponent as ɵbi, CoCauToChucPickerListComponent as ɵbj, CoCauToChucPickerListNewComponent as ɵbk, FormBuilderComponent as ɵbl, BaseCongViecTestComponent as ɵbm, BaseCauHinhWorkflowDetailComponent as ɵbn, BaseDmLoaiCongViecFormComponent as ɵbo, BaseDmLinhVucCongViecFormComponent as ɵbp, BaseDmPriorityFormComponent as ɵbq, BaseCongviecDinhkemComponent as ɵbr, BaseCongviecDinhkemFormComponent as ɵbs, DatetimePickerComponent as ɵbt, DatetimePickerRangeComponent as ɵbu, DynamicNodeComponent as ɵbv, EntityPickerBoxComponent as ɵbw, EntityPickerDataComponent as ɵbx, EntityPickerSelectedComponent as ɵby, EntityPickerComponent as ɵbz, EntityPickerService as ɵc, EntityPickerDialogComponent as ɵca, EntityPickerTreeDataComponent as ɵcb, EntityPickerTreeSelectedComponent as ɵcc, EntityPermissionComponent as ɵcd, EquationEditorComponent as ɵce, MaskComponent as ɵcf, NumberPickerRangeComponent as ɵcg, PagingNextBackOnlyComponent as ɵch, RadioButtonListComponent as ɵci, VanBanPickerComponent as ɵcj, VanBanDenService as ɵck, VanBanDiService as ɵcl, VanBanPickerDialogComponent as ɵcm, VanbanDiPickerComponent as ɵcn, VanbanDenPickerComponent as ɵco, CongViecPickerComponent as ɵcp, SettingsComponent as ɵcq, SettingsRowComponent as ɵcr, SettingsWorkflowComponent as ɵcs, SettingsWorkflowNo1Component as ɵct, SimpleWorkflowFormComponent as ɵcu, ProcessWorkflowTargetComponent as ɵcv, ChoYKienFormComponent as ɵcw, StateMachinesConnectionReceiverComponent as ɵcx, StateMachinesConnectionReceiverConditionComponent as ɵcy, StateMachinesConnectionReceiverDepartmentComponent as ɵcz, ExceptionHandlerService as ɵd, StateMachinesConnectionReceiverGroupComponent as ɵda, StateMachinesConnectionReceiverUserComponent as ɵdb, StateMachinesConnectionReceiverRoleComponent as ɵdc, StateMachinesConnectionSenderComponent as ɵdd, StartWorkflowComponent as ɵde, ShareLinkByPermissionComponent as ɵdf, WorkflowSettingNewComponent as ɵdg, PermissionSharingComponent as ɵdh, WorkflowPermissionService as ɵdi, TnCheckboxComponent as ɵdj, TnDialogComponent as ɵdk, TnColorPickerComponent as ɵdl, TnTinymceComponent as ɵdm, TnTabViewComponent as ɵdn, TableDetailFormComponent as ɵdo, FileIconPipe as ɵdp, FileSizePipe as ɵdq, QuickAddFormComponent as ɵdr, PreventShiftTabDirective as ɵds, TnTemplateDirective as ɵdt, UserPickerComponent as ɵdu, UserPickerBoxComponent as ɵdv, CoCauToChucTestService as ɵdw, TnAppHelpComponent as ɵdx, PathNameService as ɵdy, HelperCurrentPageComponent as ɵdz, CanBo_HoSoService as ɵe, TnAppNotificationListComponent as ɵea, TnAppNotificationComponent as ɵeb, FolderFormComponent as ɵec, FileFormComponent as ɵed, FileViewerComponent as ɵee, FileVersionListComponent as ɵef, ViewDetailComponent as ɵeg, WorkflowHistoryComponent as ɵeh, WorkflowHistoryDialogComponent as ɵei, WorkflowHistoryNewComponent as ɵej, WorkflowSettingComponent as ɵek, WorkflowSettingDialogComponent as ɵel, WorkflowPermissionComponent as ɵem, WorkflowPermissionFormComponent as ɵen, ReferenceTextBoxComponent as ɵeo, QrCodeGeneratorComponent as ɵep, AddNewsComponent as ɵeq, ArticleService as ɵer, NewsCategoryService as ɵes, UniversalLinkProcessorComponent as ɵet, SignatureDetailComponent as ɵeu, KySoSimDanhSachChuKyComponent as ɵev, KySoSimChuKyUserService as ɵew, FileKySoSimComponent as ɵex, KySoSimSignPDFService as ɵey, TaiLieuCuaToiComponent as ɵez, ListBase as ɵf, KhaiThacTaiLieuDungChungComponent as ɵfa, DanhMucDungChungService as ɵfb, TnTemplateComponent as ɵfc, DropdownSettingFormComponent as ɵfd, CheckReadyComponent as ɵfe, WorkflowButtonComponent as ɵff, TnAccordionTabComponent as ɵfg, ListComponentBase as ɵg, TreeTableComponent as ɵh, NotFoundComponent as ɵi, SendAccessTokenInterceptor as ɵj, LogInterceptor as ɵk, PermissionUtilsInterceptor as ɵl, TraceInterceptor as ɵm, EntityWorkflowSettingService as ɵn, EntityWorkflowHistoryService as ɵo, EntityPermissionService as ɵp, ChatService as ɵq, MyDriveService as ɵr, ContentsService as ɵs, StatusExtendsService as ɵt, MessageBoardService as ɵu, FileExplorerNewService as ɵv, FileVersionService as ɵw, FileManagerService as ɵx, DM_ChucVuService as ɵy, RoleService as ɵz };
55104
54371
  //# sourceMappingURL=tnx-shared.js.map