tnx-shared 5.1.55 → 5.1.59
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.
- package/bundles/tnx-shared.umd.js +211 -150
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/esm2015/components/common-app-component/common-app-component.js +15 -12
- package/esm2015/components/file-explorer/file-manager/file-manager.component.js +2 -2
- package/esm2015/tnx-shared.js +3 -3
- package/esm2015/tnx-shared.module.js +2 -13
- package/fesm2015/tnx-shared.js +156 -106
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +2 -3
- package/tnx-shared.d.ts +2 -2
- package/tnx-shared.metadata.json +1 -1
- package/tnx-shared.module.d.ts +2 -2
- package/tnx-shared.module.d.ts.map +1 -1
- package/tnx-shared.module.ngfactory.d.ts.map +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@ngx-translate/core'), require('angular-split'), require('ng2-currency-mask'), require('ngx-device-detector'), require('ngx-img-fallback'), require('ngx-mask'), require('ngx-perfect-scrollbar'), require('tn-custom-primeng/autocomplete'), require('tn-custom-primeng/blockui'), require('tn-custom-primeng/breadcrumb'), require('tn-custom-primeng/button'), require('tn-custom-primeng/calendar'), require('tn-custom-primeng/card'), require('tn-custom-primeng/chart'), require('tn-custom-primeng/checkbox'), require('tn-custom-primeng/chips'), require('tn-custom-primeng/colorpicker'), require('tn-custom-primeng/confirmdialog'), require('tn-custom-primeng/contextmenu'), require('tn-custom-primeng/dataview'), require('tn-custom-primeng/dialog'), require('tn-custom-primeng/dropdown'), require('tn-custom-primeng/fieldset'), require('tn-custom-primeng/fileupload'), require('tn-custom-primeng/focustrap'), require('tn-custom-primeng/inputmask'), require('tn-custom-primeng/inputswitch'), require('tn-custom-primeng/inputtext'), require('tn-custom-primeng/inputtextarea'), require('tn-custom-primeng/menu'), require('tn-custom-primeng/menubar'), require('tn-custom-primeng/multiselect'), require('tn-custom-primeng/overlaypanel'), require('tn-custom-primeng/paginator'), require('tn-custom-primeng/panel'), require('tn-custom-primeng/radiobutton'), require('tn-custom-primeng/scrollpanel'), require('tn-custom-primeng/selectbutton'), require('tn-custom-primeng/sidebar'), require('tn-custom-primeng/slider'), require('tn-custom-primeng/spinner'), require('tn-custom-primeng/splitbutton'), require('tn-custom-primeng/steps'), require('tn-custom-primeng/table'), require('tn-custom-primeng/tabview'), require('tn-custom-primeng/toast'), require('tn-custom-primeng/tooltip'), require('tn-custom-primeng/tree'), require('tn-custom-primeng/treetable'), require('tn-custom-primeng/progressspinner'), require('tn-custom-primeng/tristatecheckbox'), require('@angular/router'), require('rxjs'), require('rxjs/operators'), require('uuid'), require('fast-safe-stringify'), require('moment'), require('underscore'), require('angular-oauth2-oidc'), require('tn-custom-primeng/api'), require('@angular/common/http'), require('@aspnet/signalr'), require('file-saver'), require('print-js'), require('jwt-decode'), require('@angular/platform-browser'), require('jquery'), require('nanoid'), require('@angular/animations'), require('hammerjs'), require('ng2-signalr'), require('tn-custom-primeng/dom'), require('qrcode'), require('jsplumb'), require('rtf.js'), require('ngx-
|
|
3
|
-
typeof define === 'function' && define.amd ? define('tnx-shared', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@ngx-translate/core', 'angular-split', 'ng2-currency-mask', 'ngx-device-detector', 'ngx-img-fallback', 'ngx-mask', 'ngx-perfect-scrollbar', 'tn-custom-primeng/autocomplete', 'tn-custom-primeng/blockui', 'tn-custom-primeng/breadcrumb', 'tn-custom-primeng/button', 'tn-custom-primeng/calendar', 'tn-custom-primeng/card', 'tn-custom-primeng/chart', 'tn-custom-primeng/checkbox', 'tn-custom-primeng/chips', 'tn-custom-primeng/colorpicker', 'tn-custom-primeng/confirmdialog', 'tn-custom-primeng/contextmenu', 'tn-custom-primeng/dataview', 'tn-custom-primeng/dialog', 'tn-custom-primeng/dropdown', 'tn-custom-primeng/fieldset', 'tn-custom-primeng/fileupload', 'tn-custom-primeng/focustrap', 'tn-custom-primeng/inputmask', 'tn-custom-primeng/inputswitch', 'tn-custom-primeng/inputtext', 'tn-custom-primeng/inputtextarea', 'tn-custom-primeng/menu', 'tn-custom-primeng/menubar', 'tn-custom-primeng/multiselect', 'tn-custom-primeng/overlaypanel', 'tn-custom-primeng/paginator', 'tn-custom-primeng/panel', 'tn-custom-primeng/radiobutton', 'tn-custom-primeng/scrollpanel', 'tn-custom-primeng/selectbutton', 'tn-custom-primeng/sidebar', 'tn-custom-primeng/slider', 'tn-custom-primeng/spinner', 'tn-custom-primeng/splitbutton', 'tn-custom-primeng/steps', 'tn-custom-primeng/table', 'tn-custom-primeng/tabview', 'tn-custom-primeng/toast', 'tn-custom-primeng/tooltip', 'tn-custom-primeng/tree', 'tn-custom-primeng/treetable', 'tn-custom-primeng/progressspinner', 'tn-custom-primeng/tristatecheckbox', '@angular/router', 'rxjs', 'rxjs/operators', 'uuid', 'fast-safe-stringify', 'moment', 'underscore', 'angular-oauth2-oidc', 'tn-custom-primeng/api', '@angular/common/http', '@aspnet/signalr', 'file-saver', 'print-js', 'jwt-decode', '@angular/platform-browser', 'jquery', 'nanoid', '@angular/animations', 'hammerjs', 'ng2-signalr', 'tn-custom-primeng/dom', 'qrcode', 'jsplumb', 'rtf.js', 'ngx-
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['tnx-shared'] = {}, global.ng.common, global.ng.core, global.ng.forms, global.i2, global.angularSplit, global.ng2CurrencyMask, global.ngxDeviceDetector, global.ngxImgFallback, global.ngxMask, global.ngxPerfectScrollbar, global.autocomplete, global.blockui, global.breadcrumb, global.button, global.calendar, global.card, global.chart, global.checkbox, global.chips, global.colorpicker, global.confirmdialog, global.contextmenu, global.dataview, global.dialog, global.dropdown, global.fieldset, global.fileupload, global.focustrap, global.inputmask, global.inputswitch, global.inputtext, global.inputtextarea, global.menu, global.menubar, global.multiselect, global.overlaypanel, global.paginator, global.panel, global.radiobutton, global.scrollpanel, global.selectbutton, global.sidebar, global.slider, global.spinner, global.splitbutton, global.steps, global.table, global.tabview, global.toast, global.tooltip, global.tree, global.treetable, global.progressspinner, global.tristatecheckbox, global.ng.router, global.rxjs, global.rxjs.operators, global.uuid, global.stringify, global.moment_, global._, global.i4, global.i1, global.ng.common.http, global.signalR, global.FileSaver, global.printJS_, global.JWT_, global.ng.platformBrowser, global.jQuery_, global.nanoid_, global.ng.animations, global.Hammer, global.ng2Signalr, global.dom, global.QRCode, global.jsplumb, global.rtf_js, global.
|
|
5
|
-
}(this, (function (exports, i2$1, i0, forms, i2, angularSplit, ng2CurrencyMask, ngxDeviceDetector, ngxImgFallback, ngxMask, ngxPerfectScrollbar, autocomplete, blockui, breadcrumb, button, calendar, card, chart, checkbox, chips, colorpicker, confirmdialog, contextmenu, dataview, dialog, dropdown, fieldset, fileupload, focustrap, inputmask, inputswitch, inputtext, inputtextarea, menu, menubar, multiselect, overlaypanel, paginator, panel, radiobutton, scrollpanel, selectbutton, sidebar, slider, spinner, splitbutton, steps, table, tabview, toast, tooltip, tree, treetable, progressspinner, tristatecheckbox,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@ngx-translate/core'), require('angular-split'), require('ng2-currency-mask'), require('ngx-device-detector'), require('ngx-img-fallback'), require('ngx-mask'), require('ngx-perfect-scrollbar'), require('tn-custom-primeng/autocomplete'), require('tn-custom-primeng/blockui'), require('tn-custom-primeng/breadcrumb'), require('tn-custom-primeng/button'), require('tn-custom-primeng/calendar'), require('tn-custom-primeng/card'), require('tn-custom-primeng/chart'), require('tn-custom-primeng/checkbox'), require('tn-custom-primeng/chips'), require('tn-custom-primeng/colorpicker'), require('tn-custom-primeng/confirmdialog'), require('tn-custom-primeng/contextmenu'), require('tn-custom-primeng/dataview'), require('tn-custom-primeng/dialog'), require('tn-custom-primeng/dropdown'), require('tn-custom-primeng/fieldset'), require('tn-custom-primeng/fileupload'), require('tn-custom-primeng/focustrap'), require('tn-custom-primeng/inputmask'), require('tn-custom-primeng/inputswitch'), require('tn-custom-primeng/inputtext'), require('tn-custom-primeng/inputtextarea'), require('tn-custom-primeng/menu'), require('tn-custom-primeng/menubar'), require('tn-custom-primeng/multiselect'), require('tn-custom-primeng/overlaypanel'), require('tn-custom-primeng/paginator'), require('tn-custom-primeng/panel'), require('tn-custom-primeng/radiobutton'), require('tn-custom-primeng/scrollpanel'), require('tn-custom-primeng/selectbutton'), require('tn-custom-primeng/sidebar'), require('tn-custom-primeng/slider'), require('tn-custom-primeng/spinner'), require('tn-custom-primeng/splitbutton'), require('tn-custom-primeng/steps'), require('tn-custom-primeng/table'), require('tn-custom-primeng/tabview'), require('tn-custom-primeng/toast'), require('tn-custom-primeng/tooltip'), require('tn-custom-primeng/tree'), require('tn-custom-primeng/treetable'), require('tn-custom-primeng/progressspinner'), require('tn-custom-primeng/tristatecheckbox'), require('@angular/router'), require('rxjs'), require('rxjs/operators'), require('uuid'), require('fast-safe-stringify'), require('moment'), require('underscore'), require('angular-oauth2-oidc'), require('tn-custom-primeng/api'), require('@angular/common/http'), require('@aspnet/signalr'), require('file-saver'), require('print-js'), require('jwt-decode'), require('@angular/platform-browser'), require('jquery'), require('nanoid'), require('@angular/animations'), require('hammerjs'), require('ng2-signalr'), require('tn-custom-primeng/dom'), require('qrcode'), require('jsplumb'), require('rtf.js'), require('ngx-extended-pdf-viewer'), require('@angular/common/locales/vi'), require('@angular/platform-browser/animations')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define('tnx-shared', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@ngx-translate/core', 'angular-split', 'ng2-currency-mask', 'ngx-device-detector', 'ngx-img-fallback', 'ngx-mask', 'ngx-perfect-scrollbar', 'tn-custom-primeng/autocomplete', 'tn-custom-primeng/blockui', 'tn-custom-primeng/breadcrumb', 'tn-custom-primeng/button', 'tn-custom-primeng/calendar', 'tn-custom-primeng/card', 'tn-custom-primeng/chart', 'tn-custom-primeng/checkbox', 'tn-custom-primeng/chips', 'tn-custom-primeng/colorpicker', 'tn-custom-primeng/confirmdialog', 'tn-custom-primeng/contextmenu', 'tn-custom-primeng/dataview', 'tn-custom-primeng/dialog', 'tn-custom-primeng/dropdown', 'tn-custom-primeng/fieldset', 'tn-custom-primeng/fileupload', 'tn-custom-primeng/focustrap', 'tn-custom-primeng/inputmask', 'tn-custom-primeng/inputswitch', 'tn-custom-primeng/inputtext', 'tn-custom-primeng/inputtextarea', 'tn-custom-primeng/menu', 'tn-custom-primeng/menubar', 'tn-custom-primeng/multiselect', 'tn-custom-primeng/overlaypanel', 'tn-custom-primeng/paginator', 'tn-custom-primeng/panel', 'tn-custom-primeng/radiobutton', 'tn-custom-primeng/scrollpanel', 'tn-custom-primeng/selectbutton', 'tn-custom-primeng/sidebar', 'tn-custom-primeng/slider', 'tn-custom-primeng/spinner', 'tn-custom-primeng/splitbutton', 'tn-custom-primeng/steps', 'tn-custom-primeng/table', 'tn-custom-primeng/tabview', 'tn-custom-primeng/toast', 'tn-custom-primeng/tooltip', 'tn-custom-primeng/tree', 'tn-custom-primeng/treetable', 'tn-custom-primeng/progressspinner', 'tn-custom-primeng/tristatecheckbox', '@angular/router', 'rxjs', 'rxjs/operators', 'uuid', 'fast-safe-stringify', 'moment', 'underscore', 'angular-oauth2-oidc', 'tn-custom-primeng/api', '@angular/common/http', '@aspnet/signalr', 'file-saver', 'print-js', 'jwt-decode', '@angular/platform-browser', 'jquery', 'nanoid', '@angular/animations', 'hammerjs', 'ng2-signalr', 'tn-custom-primeng/dom', 'qrcode', 'jsplumb', 'rtf.js', 'ngx-extended-pdf-viewer', '@angular/common/locales/vi', '@angular/platform-browser/animations'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['tnx-shared'] = {}, global.ng.common, global.ng.core, global.ng.forms, global.i2, global.angularSplit, global.ng2CurrencyMask, global.ngxDeviceDetector, global.ngxImgFallback, global.ngxMask, global.ngxPerfectScrollbar, global.autocomplete, global.blockui, global.breadcrumb, global.button, global.calendar, global.card, global.chart, global.checkbox, global.chips, global.colorpicker, global.confirmdialog, global.contextmenu, global.dataview, global.dialog, global.dropdown, global.fieldset, global.fileupload, global.focustrap, global.inputmask, global.inputswitch, global.inputtext, global.inputtextarea, global.menu, global.menubar, global.multiselect, global.overlaypanel, global.paginator, global.panel, global.radiobutton, global.scrollpanel, global.selectbutton, global.sidebar, global.slider, global.spinner, global.splitbutton, global.steps, global.table, global.tabview, global.toast, global.tooltip, global.tree, global.treetable, global.progressspinner, global.tristatecheckbox, global.ng.router, global.rxjs, global.rxjs.operators, global.uuid, global.stringify, global.moment_, global._, global.i4, global.i1, global.ng.common.http, global.signalR, global.FileSaver, global.printJS_, global.JWT_, global.ng.platformBrowser, global.jQuery_, global.nanoid_, global.ng.animations, global.Hammer, global.ng2Signalr, global.dom, global.QRCode, global.jsplumb, global.rtf_js, global.ngxExtendedPdfViewer, global.ng.common.locales.vi, global.ng.platformBrowser.animations));
|
|
5
|
+
}(this, (function (exports, i2$1, i0, forms, i2, angularSplit, ng2CurrencyMask, ngxDeviceDetector, ngxImgFallback, ngxMask, ngxPerfectScrollbar, autocomplete, blockui, breadcrumb, button, calendar, card, chart, checkbox, chips, colorpicker, confirmdialog, contextmenu, dataview, dialog, dropdown, fieldset, fileupload, focustrap, inputmask, inputswitch, inputtext, inputtextarea, menu, menubar, multiselect, overlaypanel, paginator, panel, radiobutton, scrollpanel, selectbutton, sidebar, slider, spinner, splitbutton, steps, table, tabview, toast, tooltip, tree, treetable, progressspinner, tristatecheckbox, i3, rxjs, operators, uuid, stringify, moment_, _, i4, i1, i1$1, signalR, FileSaver, printJS_, JWT_, platformBrowser, jQuery_, nanoid_, animations, Hammer, ng2Signalr, dom, QRCode, jsplumb, rtf_js, ngxExtendedPdfViewer, localeVi, animations$1) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -8418,7 +8418,7 @@
|
|
|
8418
8418
|
this._injector = injector;
|
|
8419
8419
|
this._appContext = injector.get(ApplicationContextService);
|
|
8420
8420
|
this._componentContext = injector.get(ComponentContextService);
|
|
8421
|
-
this._activatedRoute = injector.get(
|
|
8421
|
+
this._activatedRoute = injector.get(i3.ActivatedRoute);
|
|
8422
8422
|
this._crudService = injector.get(CrudService);
|
|
8423
8423
|
this._commonService = injector.get(CommonService);
|
|
8424
8424
|
this._datePipe = injector.get(i2$1.DatePipe);
|
|
@@ -9597,7 +9597,7 @@
|
|
|
9597
9597
|
{ type: i0.Injector },
|
|
9598
9598
|
{ type: ModuleConfigService },
|
|
9599
9599
|
{ type: UserService },
|
|
9600
|
-
{ type:
|
|
9600
|
+
{ type: i3.Router },
|
|
9601
9601
|
{ type: AuthenService }
|
|
9602
9602
|
]; };
|
|
9603
9603
|
|
|
@@ -10130,7 +10130,7 @@
|
|
|
10130
10130
|
{ type: PermissionService },
|
|
10131
10131
|
{ type: ngxDeviceDetector.DeviceDetectorService },
|
|
10132
10132
|
{ type: UserService },
|
|
10133
|
-
{ type:
|
|
10133
|
+
{ type: i3.Router },
|
|
10134
10134
|
{ type: AuthenService },
|
|
10135
10135
|
{ type: GlobalService }
|
|
10136
10136
|
]; };
|
|
@@ -10179,7 +10179,7 @@
|
|
|
10179
10179
|
AccessDeniedComponent.ctorParameters = function () { return [
|
|
10180
10180
|
{ type: i0.Injector },
|
|
10181
10181
|
{ type: UserService },
|
|
10182
|
-
{ type:
|
|
10182
|
+
{ type: i3.Router },
|
|
10183
10183
|
{ type: ModuleConfigService },
|
|
10184
10184
|
{ type: AuthenService }
|
|
10185
10185
|
]; };
|
|
@@ -10589,15 +10589,15 @@
|
|
|
10589
10589
|
};
|
|
10590
10590
|
return CustomRouterService;
|
|
10591
10591
|
}());
|
|
10592
|
-
CustomRouterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CustomRouterService_Factory() { return new CustomRouterService(i0.ɵɵinject(
|
|
10592
|
+
CustomRouterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CustomRouterService_Factory() { return new CustomRouterService(i0.ɵɵinject(i3.ActivatedRoute), i0.ɵɵinject(i3.Router), i0.ɵɵinject(i2$1.Location)); }, token: CustomRouterService, providedIn: "root" });
|
|
10593
10593
|
CustomRouterService.decorators = [
|
|
10594
10594
|
{ type: i0.Injectable, args: [{
|
|
10595
10595
|
providedIn: 'root'
|
|
10596
10596
|
},] }
|
|
10597
10597
|
];
|
|
10598
10598
|
CustomRouterService.ctorParameters = function () { return [
|
|
10599
|
-
{ type:
|
|
10600
|
-
{ type:
|
|
10599
|
+
{ type: i3.ActivatedRoute },
|
|
10600
|
+
{ type: i3.Router },
|
|
10601
10601
|
{ type: i2$1.Location }
|
|
10602
10602
|
]; };
|
|
10603
10603
|
|
|
@@ -16428,8 +16428,8 @@
|
|
|
16428
16428
|
_this.__isFormView = false;
|
|
16429
16429
|
_this._notifierService = _this._injector.get(NotifierService);
|
|
16430
16430
|
_this._masterDataService = _this._injector.get(MasterDataService);
|
|
16431
|
-
_this._router = _this._injector.get(
|
|
16432
|
-
_this._activatedRoute = _this._injector.get(
|
|
16431
|
+
_this._router = _this._injector.get(i3.Router);
|
|
16432
|
+
_this._activatedRoute = _this._injector.get(i3.ActivatedRoute);
|
|
16433
16433
|
_this._translateService = _this._injector.get(i2.TranslateService);
|
|
16434
16434
|
_this._customRouterService = _this._injector.get(CustomRouterService);
|
|
16435
16435
|
_this._crudService = _this._injector.get(CrudService);
|
|
@@ -18719,8 +18719,8 @@
|
|
|
18719
18719
|
_this.setting.pageSetting.page = 1;
|
|
18720
18720
|
_this.getData();
|
|
18721
18721
|
};
|
|
18722
|
-
_this._activatedRoute = _this._injector.get(
|
|
18723
|
-
_this._router = _this._injector.get(
|
|
18722
|
+
_this._activatedRoute = _this._injector.get(i3.ActivatedRoute);
|
|
18723
|
+
_this._router = _this._injector.get(i3.Router);
|
|
18724
18724
|
_this._customRouterService = _this._injector.get(CustomRouterService);
|
|
18725
18725
|
_this._notifierService = _this._injector.get(NotifierService);
|
|
18726
18726
|
_this._exportService = _this._injector.get(ExportService);
|
|
@@ -21581,8 +21581,8 @@
|
|
|
21581
21581
|
_this.plusUrl = '';
|
|
21582
21582
|
_this.isCrudList = false;
|
|
21583
21583
|
_this._notifierService = _this._injector.get(NotifierService);
|
|
21584
|
-
_this._activatedRoute = _this._injector.get(
|
|
21585
|
-
_this._router = _this._injector.get(
|
|
21584
|
+
_this._activatedRoute = _this._injector.get(i3.ActivatedRoute);
|
|
21585
|
+
_this._router = _this._injector.get(i3.Router);
|
|
21586
21586
|
_this._customRouterService = _this._injector.get(CustomRouterService);
|
|
21587
21587
|
_this._listHelperService = _this._injector.get(ListHelperService);
|
|
21588
21588
|
_this._commonService = _this._injector.get(CommonService);
|
|
@@ -27693,7 +27693,7 @@
|
|
|
27693
27693
|
];
|
|
27694
27694
|
AppTopBarV1Component.ctorParameters = function () { return [
|
|
27695
27695
|
{ type: CustomRouterService },
|
|
27696
|
-
{ type:
|
|
27696
|
+
{ type: i3.Router },
|
|
27697
27697
|
{ type: CommonService },
|
|
27698
27698
|
{ type: AuthenService },
|
|
27699
27699
|
{ type: i0.ChangeDetectorRef },
|
|
@@ -28064,7 +28064,7 @@
|
|
|
28064
28064
|
},] }
|
|
28065
28065
|
];
|
|
28066
28066
|
AppSubMenuComponent.ctorParameters = function () { return [
|
|
28067
|
-
{ type:
|
|
28067
|
+
{ type: i3.Router },
|
|
28068
28068
|
{ type: CommonService },
|
|
28069
28069
|
{ type: i0.Injector },
|
|
28070
28070
|
{ type: CustomRouterService }
|
|
@@ -28099,7 +28099,7 @@
|
|
|
28099
28099
|
}
|
|
28100
28100
|
this._menuService.renderMenuByAppCode(appCode);
|
|
28101
28101
|
this.model = this._menuService.getMenuItems();
|
|
28102
|
-
this._router.events.pipe(operators.filter(function (event) { return event instanceof
|
|
28102
|
+
this._router.events.pipe(operators.filter(function (event) { return event instanceof i3.NavigationEnd; }))
|
|
28103
28103
|
.subscribe(function (event) {
|
|
28104
28104
|
for (var i in _this.model) {
|
|
28105
28105
|
var item = _this.model[i];
|
|
@@ -28217,7 +28217,7 @@
|
|
|
28217
28217
|
AppMenuComponent.ctorParameters = function () { return [
|
|
28218
28218
|
{ type: MenuService },
|
|
28219
28219
|
{ type: i2.TranslateService },
|
|
28220
|
-
{ type:
|
|
28220
|
+
{ type: i3.Router },
|
|
28221
28221
|
{ type: ApplicationContextService },
|
|
28222
28222
|
{ type: CommonService },
|
|
28223
28223
|
{ type: ModuleConfigService },
|
|
@@ -28672,7 +28672,7 @@
|
|
|
28672
28672
|
];
|
|
28673
28673
|
AppTopBarComponent.ctorParameters = function () { return [
|
|
28674
28674
|
{ type: CustomRouterService },
|
|
28675
|
-
{ type:
|
|
28675
|
+
{ type: i3.Router },
|
|
28676
28676
|
{ type: CommonService },
|
|
28677
28677
|
{ type: AuthenService },
|
|
28678
28678
|
{ type: i0.ChangeDetectorRef },
|
|
@@ -28754,6 +28754,136 @@
|
|
|
28754
28754
|
{ type: ModuleConfigService }
|
|
28755
28755
|
]; };
|
|
28756
28756
|
|
|
28757
|
+
var GenericGuardChildService = /** @class */ (function () {
|
|
28758
|
+
function GenericGuardChildService(_userService, _permissionService, _router, _injector, _notifierService) {
|
|
28759
|
+
this._userService = _userService;
|
|
28760
|
+
this._permissionService = _permissionService;
|
|
28761
|
+
this._router = _router;
|
|
28762
|
+
this._injector = _injector;
|
|
28763
|
+
this._notifierService = _notifierService;
|
|
28764
|
+
this.storage = sessionStorage;
|
|
28765
|
+
}
|
|
28766
|
+
GenericGuardChildService.prototype.canActivateChild = function (route, state) {
|
|
28767
|
+
var _this = this;
|
|
28768
|
+
return new Promise(function (resolve) { return __awaiter(_this, void 0, void 0, function () {
|
|
28769
|
+
var _applicationContext, root, service, permission, isAuthorized, firstTimeLogin;
|
|
28770
|
+
return __generator(this, function (_a) {
|
|
28771
|
+
switch (_a.label) {
|
|
28772
|
+
case 0:
|
|
28773
|
+
_applicationContext = this._injector.get(ApplicationContextService);
|
|
28774
|
+
root = _applicationContext.getRootContext();
|
|
28775
|
+
if (state.url == '/') {
|
|
28776
|
+
resolve(true);
|
|
28777
|
+
return [2 /*return*/];
|
|
28778
|
+
}
|
|
28779
|
+
if ((top.location.href.indexOf('/dashboard') > -1)
|
|
28780
|
+
|| (top.location.href.indexOf('/access-denied') > -1)) {
|
|
28781
|
+
resolve(true);
|
|
28782
|
+
return [2 /*return*/];
|
|
28783
|
+
}
|
|
28784
|
+
service = root.data.currentAppMetadata.code;
|
|
28785
|
+
permission = ("" + root.data.currentAppMetadata.code + state.url.split('#')[0].split('?')[0]).toUpperCase();
|
|
28786
|
+
return [4 /*yield*/, this._permissionService.isAuthorized(service, permission)];
|
|
28787
|
+
case 1:
|
|
28788
|
+
isAuthorized = _a.sent();
|
|
28789
|
+
if (isAuthorized) {
|
|
28790
|
+
resolve(true);
|
|
28791
|
+
}
|
|
28792
|
+
else {
|
|
28793
|
+
firstTimeLogin = localStorage.getItem('firstTimeLogin');
|
|
28794
|
+
if (firstTimeLogin && firstTimeLogin !== '' && firstTimeLogin == 'true') {
|
|
28795
|
+
localStorage.removeItem('firstTimeLogin');
|
|
28796
|
+
top.location.href = '/';
|
|
28797
|
+
}
|
|
28798
|
+
else {
|
|
28799
|
+
top.location.href = '/access-denied';
|
|
28800
|
+
}
|
|
28801
|
+
resolve(false);
|
|
28802
|
+
}
|
|
28803
|
+
resolve(true);
|
|
28804
|
+
return [2 /*return*/];
|
|
28805
|
+
}
|
|
28806
|
+
});
|
|
28807
|
+
}); });
|
|
28808
|
+
};
|
|
28809
|
+
return GenericGuardChildService;
|
|
28810
|
+
}());
|
|
28811
|
+
GenericGuardChildService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GenericGuardChildService_Factory() { return new GenericGuardChildService(i0.ɵɵinject(UserService), i0.ɵɵinject(PermissionService), i0.ɵɵinject(i3.Router), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(NotifierService)); }, token: GenericGuardChildService, providedIn: "root" });
|
|
28812
|
+
GenericGuardChildService.decorators = [
|
|
28813
|
+
{ type: i0.Injectable, args: [{
|
|
28814
|
+
providedIn: 'root'
|
|
28815
|
+
},] }
|
|
28816
|
+
];
|
|
28817
|
+
GenericGuardChildService.ctorParameters = function () { return [
|
|
28818
|
+
{ type: UserService },
|
|
28819
|
+
{ type: PermissionService },
|
|
28820
|
+
{ type: i3.Router },
|
|
28821
|
+
{ type: i0.Injector },
|
|
28822
|
+
{ type: NotifierService }
|
|
28823
|
+
]; };
|
|
28824
|
+
|
|
28825
|
+
var GenericGuardService = /** @class */ (function () {
|
|
28826
|
+
function GenericGuardService(_permissionService, _injector) {
|
|
28827
|
+
this._permissionService = _permissionService;
|
|
28828
|
+
this._injector = _injector;
|
|
28829
|
+
this.storage = sessionStorage;
|
|
28830
|
+
}
|
|
28831
|
+
GenericGuardService.prototype.canActivate = function (route, state) {
|
|
28832
|
+
var _this = this;
|
|
28833
|
+
return new Promise(function (resolve) { return __awaiter(_this, void 0, void 0, function () {
|
|
28834
|
+
var _applicationContext, root, service, permission, isAuthorized, firstTimeLogin;
|
|
28835
|
+
return __generator(this, function (_a) {
|
|
28836
|
+
switch (_a.label) {
|
|
28837
|
+
case 0:
|
|
28838
|
+
_applicationContext = this._injector.get(ApplicationContextService);
|
|
28839
|
+
root = _applicationContext.getRootContext();
|
|
28840
|
+
if (state.url == '/') {
|
|
28841
|
+
resolve(true);
|
|
28842
|
+
return [2 /*return*/];
|
|
28843
|
+
}
|
|
28844
|
+
if ((top.location.href.indexOf('/dashboard') > -1)
|
|
28845
|
+
|| (top.location.href.indexOf('/access-denied') > -1)) {
|
|
28846
|
+
resolve(true);
|
|
28847
|
+
return [2 /*return*/];
|
|
28848
|
+
}
|
|
28849
|
+
service = root.data.currentAppMetadata.code;
|
|
28850
|
+
permission = ("" + root.data.currentAppMetadata.code + state.url.split('#')[0].split('?')[0]).toUpperCase();
|
|
28851
|
+
return [4 /*yield*/, this._permissionService.isAuthorized(service, permission)];
|
|
28852
|
+
case 1:
|
|
28853
|
+
isAuthorized = _a.sent();
|
|
28854
|
+
if (isAuthorized) {
|
|
28855
|
+
resolve(true);
|
|
28856
|
+
}
|
|
28857
|
+
else {
|
|
28858
|
+
firstTimeLogin = localStorage.getItem('firstTimeLogin');
|
|
28859
|
+
if (firstTimeLogin && firstTimeLogin !== '' && firstTimeLogin == 'true') {
|
|
28860
|
+
localStorage.removeItem('firstTimeLogin');
|
|
28861
|
+
top.location.href = '/';
|
|
28862
|
+
}
|
|
28863
|
+
else {
|
|
28864
|
+
top.location.href = '/access-denied';
|
|
28865
|
+
}
|
|
28866
|
+
resolve(false);
|
|
28867
|
+
}
|
|
28868
|
+
resolve(true);
|
|
28869
|
+
return [2 /*return*/];
|
|
28870
|
+
}
|
|
28871
|
+
});
|
|
28872
|
+
}); });
|
|
28873
|
+
};
|
|
28874
|
+
return GenericGuardService;
|
|
28875
|
+
}());
|
|
28876
|
+
GenericGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GenericGuardService_Factory() { return new GenericGuardService(i0.ɵɵinject(PermissionService), i0.ɵɵinject(i0.INJECTOR)); }, token: GenericGuardService, providedIn: "root" });
|
|
28877
|
+
GenericGuardService.decorators = [
|
|
28878
|
+
{ type: i0.Injectable, args: [{
|
|
28879
|
+
providedIn: 'root'
|
|
28880
|
+
},] }
|
|
28881
|
+
];
|
|
28882
|
+
GenericGuardService.ctorParameters = function () { return [
|
|
28883
|
+
{ type: PermissionService },
|
|
28884
|
+
{ type: i0.Injector }
|
|
28885
|
+
]; };
|
|
28886
|
+
|
|
28757
28887
|
var StorageService = /** @class */ (function () {
|
|
28758
28888
|
function StorageService(_moduleConfigService) {
|
|
28759
28889
|
this._moduleConfigService = _moduleConfigService;
|
|
@@ -29935,7 +30065,7 @@
|
|
|
29935
30065
|
_this.messageWaiting = __spread(data.message);
|
|
29936
30066
|
});
|
|
29937
30067
|
this._router.events.subscribe(function (x) {
|
|
29938
|
-
if (x instanceof
|
|
30068
|
+
if (x instanceof i3.NavigationStart) {
|
|
29939
30069
|
_this.rootData.httpRequestList = [];
|
|
29940
30070
|
}
|
|
29941
30071
|
});
|
|
@@ -30365,23 +30495,24 @@
|
|
|
30365
30495
|
}
|
|
30366
30496
|
};
|
|
30367
30497
|
CommonAppComponentComponent.prototype.addGuard = function (route) {
|
|
30368
|
-
|
|
30369
|
-
|
|
30370
|
-
|
|
30371
|
-
|
|
30372
|
-
|
|
30373
|
-
|
|
30374
|
-
|
|
30375
|
-
|
|
30376
|
-
|
|
30377
|
-
|
|
30498
|
+
if (route.path === '' || route.path === '/') {
|
|
30499
|
+
return;
|
|
30500
|
+
}
|
|
30501
|
+
else {
|
|
30502
|
+
if (route.loadChildren) {
|
|
30503
|
+
route.canActivateChild = route.canActivateChild ? route.canActivateChild : [GenericGuardChildService];
|
|
30504
|
+
}
|
|
30505
|
+
else {
|
|
30506
|
+
route.canActivate = route.canActivate ? route.canActivate : [GenericGuardService];
|
|
30507
|
+
}
|
|
30508
|
+
}
|
|
30378
30509
|
};
|
|
30379
30510
|
return CommonAppComponentComponent;
|
|
30380
30511
|
}());
|
|
30381
30512
|
CommonAppComponentComponent.decorators = [
|
|
30382
30513
|
{ type: i0.Component, args: [{
|
|
30383
30514
|
selector: 'common-app-component',
|
|
30384
|
-
template: "<div *ngIf=\"pageLoaded\" [style.display]=\"pageLoaded ? '' : 'none'\" class=\"layout-wrapper\"\r\n (click)=\"_commonService.onLayoutClick()\" [ngClass]=\"{'menu-layout-static': !_commonService.isOverlay(),\r\n 'menu-layout-overlay': _commonService.isOverlay(),\r\n 'layout-menu-overlay-active': _commonService.overlayMenuActive,\r\n 'menu-layout-horizontal': _commonService.isHorizontal(),\r\n 'menu-layout-slim': _commonService.isSlim(),\r\n 'layout-menu-static-desktop-inactive': _commonService.staticMenuDesktopInactive,\r\n 'layout-menu-static-desktop-active': !_commonService.staticMenuDesktopInactive,\r\n 'layout-menu-static-mobile-inactive': !_commonService.staticMenuMobileActive,\r\n 'layout-menu-static-mobile-active': _commonService.staticMenuMobileActive,\r\n 'layout-menu-static-inactive': _commonService.staticMenuDesktopInactive,\r\n 'layout-menu-static-active': _commonService.staticMenuMobileActive}\">\r\n\r\n <app-topbar *ngIf=\"_globalService.getHeaderState()\"></app-topbar>\r\n\r\n <div *ngIf=\"_globalService.getMenuState()\" class=\"layout-menu-container\"\r\n [ngClass]=\"{'layout-menu-dark':_commonService.darkMenu}\" (click)=\"_commonService.onMenuClick($event)\">\r\n <app-root-menu></app-root-menu>\r\n <div class=\"layout-menu-block\">\r\n <tn-custom-scrollbar #scrollbar [style]=\"{'padding-top': '16px'}\">\r\n <app-inline-profile *ngIf=\"_commonService.profileMode == 'inline' &&!_commonService.isHorizontal()\">\r\n </app-inline-profile>\r\n <app-menu [reset]=\"_commonService.resetMenu\" (onMenuActive)=\"handleMenuActive($event)\"></app-menu>\r\n </tn-custom-scrollbar>\r\n </div>\r\n <div class=\"search-area layout-menu-search-area\">\r\n <p-autoComplete [(ngModel)]=\"searchMenuInput\" [style]=\"{'width':'100%'}\" [suggestions]=\"searchMenuResult\"\r\n (completeMethod)=\"onSearchMenu($event)\" [autoHighlight]=\"true\"\r\n [placeholder]=\"'T\u00ECm ki\u1EBFm ch\u1EE9c n\u0103ng' | translate\" [delay]=\"200\" [scrollHeight]=\"'400px'\"\r\n class=\"search-input\" [readonly]=\"!(menuModel && menuModel.length)\"\r\n (onSelect)=\"onSelectMenuSuggestion($event)\" field=\"label\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div innerHTML=\"{{ item.label | highlight : searchMenuInput}}\"></div>\r\n </ng-template>\r\n </p-autoComplete>\r\n <span class=\"icon-search\"><i class=\"pi pi-search\"></i></span>\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"'layout-main'\" [ngClass]=\"{'no-header': _globalService.getHeaderState() ? false : true}\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n\r\n <div class=\"layout-mask\"></div>\r\n <div #quickNoteBt *ngIf=\"!onlyShowMainContent && showQuickNote\" class=\"quick-note-button-holder\" cdkDrag\r\n cdkDragBoundary=\".layout-wrapper\" oncontextmenu=\"return false\" (cdkDragEnded)=\"quickNoteDropped($event)\"\r\n (cdkDragStarted)=\"quickNoteStarted($event)\">\r\n <a #quickNoteBt1 href=\"javascript:;\" class=\"all-note-button\" tabindex=\"0\" (click)=\"quickNoteShowAllNotes()\">\r\n <i class=\"fas fa-sticky-note\"></i></a>\r\n <a #quickNoteBt2 href=\"javascript:;\" class=\"setting-note-button\" tabindex=\"0\" (click)=\"quickNoteShowSettings()\">\r\n <i class=\"fas fa-cog\"></i></a>\r\n <a href=\"javascript:;\" (press)=\"quickNotePress($event)\" (pressup)=\"quickNotePressUp($event)\"\r\n class=\"quick-note-button\" tabindex=\"0\" (click)=\"quickNoteAddNote()\">\r\n <i class=\"fas fa-plus\"></i></a>\r\n </div>\r\n <div #pinnedNotes *ngIf=\"!onlyShowMainContent\" class=\"pinned-notes-holder\" cdkDrag cdkDragBoundary=\".layout-wrapper\"\r\n oncontextmenu=\"return false\" (cdkDragEnded)=\"pinnedNotesDropped($event)\"\r\n (cdkDragStarted)=\"pinnedNotesStarted($event)\">\r\n <div class=\"pinned-notes ui-g\" tabindex=\"0\">\r\n <div *ngIf=\"pinnedNotesMinimizeStatus\" class=\"pinned-notes-minimize-button\"\r\n (click)=\"pinnedNotesMinimize(pinnedNotesMinimizeStatus)\">\r\n <i class=\"pi pi-window-maximize\"></i>\r\n </div>\r\n <div *ngIf=\"pinnedNotesMaximizeStatus\" class=\" pinned-notes-minimize-button\"\r\n (click)=\"pinnedNotesMinimize(pinnedNotesMinimizeStatus)\">\r\n <i class=\"pi pi-window-minimize\"></i>\r\n </div>\r\n <div *ngFor=\"let note of pinnedNoteData\" class=\"pinned-note ui-g-12\">\r\n <div class=\"pinned-note-header-line\" [style.background-color]=\"note.colorCode\">\r\n </div>\r\n <div class=\"pinned-note-body\">\r\n <span class=\"pinned-note-line-title\" [style.paddingBottom]=\"note.titlePaddingBottom\">\r\n <div class=\"pinned-note-header-right\">\r\n <span class=\"pinned-note-header-time\">{{note.created | date: 'dd/MM'}}</span>\r\n <img src=\"../assets/layout/images/ico/unpin-1.ico\" class=\"pinned-note-header-button-unpin\"\r\n (click)=\"unPinNote(note)\">\r\n <i *ngIf=\"!note.isCompleted\" class=\"far fa-flag pinned-note-header-button-complete\"\r\n (click)=\"completeNote(note)\"></i>\r\n <i *ngIf=\"note.isCompleted\" class=\"fas fa-flag-checkered pinned-note-header-button-complete\"\r\n (click)=\"inCompleteNote(note)\"></i>\r\n </div>\r\n <div>{{note.name}}</div>\r\n </span>\r\n <div class=\"pinned-note-contents\" [style.display]=\"note.contentDisplay\">\r\n <span *ngFor=\"let content of note.contents\" class=\"pinned-note-line\">\r\n {{content}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <report-queue [header]=\"'Xu\u1EA5t d\u1EEF li\u1EC7u'\">\r\n </report-queue>\r\n</div>\r\n<div class=\"waiting-box\" [class.show]=\"waiting\">\r\n <div class=\"overlay\"></div>\r\n <div class=\"content-loading\">\r\n <div class=\"lds-ellipsis\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n <div class=\"message-loading\">\r\n <span *ngFor=\"let x of messageWaiting\">{{x}}</span>\r\n </div>\r\n </div>\r\n</div>\r\n<p-toast [position]=\"'top-right'\" [autoZIndex]=\"true\"></p-toast>\r\n<p-confirmDialog #cd [closable]=\"false\">\r\n <p-footer>\r\n <button #okButton type=\"button\" pButton icon=\"pi pi-check\" class=\"p-button-rounded p-button-text\" label=\"\u0110\u1ED3ng \u00FD\"\r\n (keydown.shift.tab)=\"focusTrap($event, false)\" (click)=\"cd.accept()\"></button>\r\n <button *ngIf=\"showRejectConfirm\" #cancelButton type=\"button\" pButton
|
|
30515
|
+
template: "<div *ngIf=\"pageLoaded\" [style.display]=\"pageLoaded ? '' : 'none'\" class=\"layout-wrapper\"\r\n (click)=\"_commonService.onLayoutClick()\" [ngClass]=\"{'menu-layout-static': !_commonService.isOverlay(),\r\n 'menu-layout-overlay': _commonService.isOverlay(),\r\n 'layout-menu-overlay-active': _commonService.overlayMenuActive,\r\n 'menu-layout-horizontal': _commonService.isHorizontal(),\r\n 'menu-layout-slim': _commonService.isSlim(),\r\n 'layout-menu-static-desktop-inactive': _commonService.staticMenuDesktopInactive,\r\n 'layout-menu-static-desktop-active': !_commonService.staticMenuDesktopInactive,\r\n 'layout-menu-static-mobile-inactive': !_commonService.staticMenuMobileActive,\r\n 'layout-menu-static-mobile-active': _commonService.staticMenuMobileActive,\r\n 'layout-menu-static-inactive': _commonService.staticMenuDesktopInactive,\r\n 'layout-menu-static-active': _commonService.staticMenuMobileActive}\">\r\n\r\n <app-topbar *ngIf=\"_globalService.getHeaderState()\"></app-topbar>\r\n\r\n <div *ngIf=\"_globalService.getMenuState()\" class=\"layout-menu-container\"\r\n [ngClass]=\"{'layout-menu-dark':_commonService.darkMenu}\" (click)=\"_commonService.onMenuClick($event)\">\r\n <app-root-menu></app-root-menu>\r\n <div class=\"layout-menu-block\">\r\n <tn-custom-scrollbar #scrollbar [style]=\"{'padding-top': '16px'}\">\r\n <app-inline-profile *ngIf=\"_commonService.profileMode == 'inline' &&!_commonService.isHorizontal()\">\r\n </app-inline-profile>\r\n <app-menu [reset]=\"_commonService.resetMenu\" (onMenuActive)=\"handleMenuActive($event)\"></app-menu>\r\n </tn-custom-scrollbar>\r\n </div>\r\n <div class=\"search-area layout-menu-search-area\">\r\n <p-autoComplete [(ngModel)]=\"searchMenuInput\" [style]=\"{'width':'100%'}\" [suggestions]=\"searchMenuResult\"\r\n (completeMethod)=\"onSearchMenu($event)\" [autoHighlight]=\"true\"\r\n [placeholder]=\"'T\u00ECm ki\u1EBFm ch\u1EE9c n\u0103ng' | translate\" [delay]=\"200\" [scrollHeight]=\"'400px'\"\r\n class=\"search-input\" [readonly]=\"!(menuModel && menuModel.length)\"\r\n (onSelect)=\"onSelectMenuSuggestion($event)\" field=\"label\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div innerHTML=\"{{ item.label | highlight : searchMenuInput}}\"></div>\r\n </ng-template>\r\n </p-autoComplete>\r\n <span class=\"icon-search\"><i class=\"pi pi-search\"></i></span>\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"'layout-main'\" [ngClass]=\"{'no-header': _globalService.getHeaderState() ? false : true}\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n\r\n <div class=\"layout-mask\"></div>\r\n <div #quickNoteBt *ngIf=\"!onlyShowMainContent && showQuickNote\" class=\"quick-note-button-holder\" cdkDrag\r\n cdkDragBoundary=\".layout-wrapper\" oncontextmenu=\"return false\" (cdkDragEnded)=\"quickNoteDropped($event)\"\r\n (cdkDragStarted)=\"quickNoteStarted($event)\">\r\n <a #quickNoteBt1 href=\"javascript:;\" class=\"all-note-button\" tabindex=\"0\" (click)=\"quickNoteShowAllNotes()\">\r\n <i class=\"fas fa-sticky-note\"></i></a>\r\n <a #quickNoteBt2 href=\"javascript:;\" class=\"setting-note-button\" tabindex=\"0\" (click)=\"quickNoteShowSettings()\">\r\n <i class=\"fas fa-cog\"></i></a>\r\n <a href=\"javascript:;\" (press)=\"quickNotePress($event)\" (pressup)=\"quickNotePressUp($event)\"\r\n class=\"quick-note-button\" tabindex=\"0\" (click)=\"quickNoteAddNote()\">\r\n <i class=\"fas fa-plus\"></i></a>\r\n </div>\r\n <div #pinnedNotes *ngIf=\"!onlyShowMainContent\" class=\"pinned-notes-holder\" cdkDrag cdkDragBoundary=\".layout-wrapper\"\r\n oncontextmenu=\"return false\" (cdkDragEnded)=\"pinnedNotesDropped($event)\"\r\n (cdkDragStarted)=\"pinnedNotesStarted($event)\">\r\n <div class=\"pinned-notes ui-g\" tabindex=\"0\">\r\n <div *ngIf=\"pinnedNotesMinimizeStatus\" class=\"pinned-notes-minimize-button\"\r\n (click)=\"pinnedNotesMinimize(pinnedNotesMinimizeStatus)\">\r\n <i class=\"pi pi-window-maximize\"></i>\r\n </div>\r\n <div *ngIf=\"pinnedNotesMaximizeStatus\" class=\" pinned-notes-minimize-button\"\r\n (click)=\"pinnedNotesMinimize(pinnedNotesMinimizeStatus)\">\r\n <i class=\"pi pi-window-minimize\"></i>\r\n </div>\r\n <div *ngFor=\"let note of pinnedNoteData\" class=\"pinned-note ui-g-12\">\r\n <div class=\"pinned-note-header-line\" [style.background-color]=\"note.colorCode\">\r\n </div>\r\n <div class=\"pinned-note-body\">\r\n <span class=\"pinned-note-line-title\" [style.paddingBottom]=\"note.titlePaddingBottom\">\r\n <div class=\"pinned-note-header-right\">\r\n <span class=\"pinned-note-header-time\">{{note.created | date: 'dd/MM'}}</span>\r\n <img src=\"../assets/layout/images/ico/unpin-1.ico\" class=\"pinned-note-header-button-unpin\"\r\n (click)=\"unPinNote(note)\">\r\n <i *ngIf=\"!note.isCompleted\" class=\"far fa-flag pinned-note-header-button-complete\"\r\n (click)=\"completeNote(note)\"></i>\r\n <i *ngIf=\"note.isCompleted\" class=\"fas fa-flag-checkered pinned-note-header-button-complete\"\r\n (click)=\"inCompleteNote(note)\"></i>\r\n </div>\r\n <div>{{note.name}}</div>\r\n </span>\r\n <div class=\"pinned-note-contents\" [style.display]=\"note.contentDisplay\">\r\n <span *ngFor=\"let content of note.contents\" class=\"pinned-note-line\">\r\n {{content}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <report-queue [header]=\"'Xu\u1EA5t d\u1EEF li\u1EC7u'\">\r\n </report-queue>\r\n</div>\r\n<div class=\"waiting-box\" [class.show]=\"waiting\">\r\n <div class=\"overlay\"></div>\r\n <div class=\"content-loading\">\r\n <div class=\"lds-ellipsis\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n <div class=\"message-loading\">\r\n <span *ngFor=\"let x of messageWaiting\">{{x}}</span>\r\n </div>\r\n </div>\r\n</div>\r\n<p-toast [position]=\"'top-right'\" [autoZIndex]=\"true\"></p-toast>\r\n<p-confirmDialog #cd [closable]=\"false\">\r\n <p-footer>\r\n <button #okButton type=\"button\" pButton icon=\"pi pi-check\" class=\"p-button-rounded p-button-text\" label=\"\u0110\u1ED3ng \u00FD\"\r\n (keydown.shift.tab)=\"focusTrap($event, false)\" (click)=\"cd.accept()\"></button>\r\n <button *ngIf=\"showRejectConfirm\" #cancelButton type=\"button\" pButton class=\"p-button-rounded p-button-text p-button-secondary\"\r\n icon=\"pi pi-times\" label=\"B\u1ECF qua\" (keydown.tab)=\"focusTrap($event, true)\" (click)=\"cd.reject()\"></button>\r\n </p-footer>\r\n</p-confirmDialog>\r\n<!-- <user-action-manager></user-action-manager> -->\r\n<permission-utils *ngIf=\"rootData.showPermissionUtils\"></permission-utils>\r\n",
|
|
30385
30516
|
providers: [ComponentContextService, EntityMetadataService],
|
|
30386
30517
|
styles: [".layout-menu-search-area{position:relative}.icon-search{align-items:center;background-color:transparent;box-shadow:none;color:#888;display:flex;font-size:14px;height:100%;justify-content:center;position:absolute;right:0;top:0;width:30px}.layout-menu-static-inactive .search-area{margin-left:-303px}.layout-menu-container{bottom:0;display:flex;flex-direction:column;height:auto;overflow:hidden;top:60px}.layout-menu-block{display:flex;flex:1;overflow:hidden}.layout-menu-block>tn-custom-scrollbar{width:100%}::ng-deep .layout-menu-search-area .ui-inputtext{border-color:#dadada;border-radius:0;padding-right:40px;width:calc(100% + 1px)}::ng-deep .layout-menu-search-area .ui-inputtext:not(:focus){box-shadow:none}::ng-deep .layout-menu-search-area input{border-left:0;border-radius:0;border-right:0;width:100%}::ng-deep .layout-menu-search-area .p-autocomplete-panel{max-width:100%}::ng-deep .layout-menu-search-area .p-autocomplete-item{white-space:normal}::ng-deep .layout-menu-search-area .p-autocomplete-item mark{background-color:var(--tn-primary-color);border-radius:0;color:#fff;padding:0}.waiting-box{display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:9999}.waiting-box .overlay{background-color:red;background-color:hsla(0,0%,42.7%,.5019607843137255);height:100%;width:100%}.waiting-box .content-loading{left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.waiting-box .content-loading .lds-ellipsis{display:inline-block;height:60px;position:relative;width:80px}.waiting-box .content-loading .lds-ellipsis div{-webkit-animation-timing-function:cubic-bezier(0,1,1,0);animation-timing-function:cubic-bezier(0,1,1,0);background:#fff;border-radius:50%;height:13px;position:absolute;top:33px;width:13px}.waiting-box .content-loading .lds-ellipsis div:first-child{-webkit-animation:lds-ellipsis1 .6s infinite;animation:lds-ellipsis1 .6s infinite;left:8px}.waiting-box .content-loading .lds-ellipsis div:nth-child(2){-webkit-animation:lds-ellipsis2 .6s infinite;animation:lds-ellipsis2 .6s infinite;left:8px}.waiting-box .content-loading .lds-ellipsis div:nth-child(3){-webkit-animation:lds-ellipsis2 .6s infinite;animation:lds-ellipsis2 .6s infinite;left:32px}.waiting-box .content-loading .lds-ellipsis div:nth-child(4){-webkit-animation:lds-ellipsis3 .6s infinite;animation:lds-ellipsis3 .6s infinite;left:56px}.waiting-box .message-loading{font-size:1.75em}.waiting-box .message-loading span{-webkit-animation:message-opacity 1s infinite;animation:message-opacity 1s infinite;color:#fff;margin-right:1px}.waiting-box .message-loading span:last-child{margin-right:0}.waiting-box .message-loading span:nth-child(16n+1){-webkit-animation-delay:0;-webkit-animation-delay:0s;animation-delay:0;animation-delay:0s}.waiting-box .message-loading span:nth-child(16n+2){-webkit-animation-delay:.1s;animation-delay:.1s}.waiting-box .message-loading span:nth-child(16n+3){-webkit-animation-delay:.2s;animation-delay:.2s}.waiting-box .message-loading span:nth-child(16n+4){-webkit-animation-delay:.3s;animation-delay:.3s}.waiting-box .message-loading span:nth-child(16n+5){-webkit-animation-delay:.4s;animation-delay:.4s}.waiting-box .message-loading span:nth-child(16n+6){-webkit-animation-delay:.5s;animation-delay:.5s}.waiting-box .message-loading span:nth-child(16n+7){-webkit-animation-delay:.6s;animation-delay:.6s}.waiting-box .message-loading span:nth-child(16n+8){-webkit-animation-delay:.7s;animation-delay:.7s}.waiting-box .message-loading span:nth-child(16n+9){-webkit-animation-delay:.8s;animation-delay:.8s}.waiting-box .message-loading span:nth-child(16n+10){-webkit-animation-delay:.9s;animation-delay:.9s}.waiting-box .message-loading span:nth-child(16n+11){-webkit-animation-delay:1s;animation-delay:1s}.waiting-box .message-loading span:nth-child(16n+12){-webkit-animation-delay:1.1s;animation-delay:1.1s}.waiting-box .message-loading span:nth-child(16n+13){-webkit-animation-delay:1.2s;animation-delay:1.2s}.waiting-box .message-loading span:nth-child(16n+14){-webkit-animation-delay:1.3s;animation-delay:1.3s}.waiting-box .message-loading span:nth-child(16n+15){-webkit-animation-delay:1.4s;animation-delay:1.4s}.waiting-box .message-loading span:nth-child(16n+16){-webkit-animation-delay:1.5s;animation-delay:1.5s}.waiting-box.show{display:block}@-webkit-keyframes lds-ellipsis1{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes lds-ellipsis1{0%{transform:scale(0)}to{transform:scale(1)}}@-webkit-keyframes lds-ellipsis3{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes lds-ellipsis3{0%{transform:scale(1)}to{transform:scale(0)}}@-webkit-keyframes lds-ellipsis2{0%{transform:translate(0)}to{transform:translate(24px)}}@keyframes lds-ellipsis2{0%{transform:translate(0)}to{transform:translate(24px)}}@-webkit-keyframes message-opacity{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@keyframes message-opacity{0%{opacity:1}50%{opacity:.5}to{opacity:1}}"]
|
|
30387
30518
|
},] }
|
|
@@ -30394,14 +30525,14 @@
|
|
|
30394
30525
|
{ type: i4.OAuthService },
|
|
30395
30526
|
{ type: AuthenService },
|
|
30396
30527
|
{ type: UserService },
|
|
30397
|
-
{ type:
|
|
30528
|
+
{ type: i3.Router },
|
|
30398
30529
|
{ type: platformBrowser.Title },
|
|
30399
30530
|
{ type: SignalRService },
|
|
30400
30531
|
{ type: StorageUpdatedService },
|
|
30401
30532
|
{ type: CustomRouterService },
|
|
30402
30533
|
{ type: ApplicationContextService },
|
|
30403
30534
|
{ type: ComponentContextService },
|
|
30404
|
-
{ type:
|
|
30535
|
+
{ type: i3.ActivatedRoute },
|
|
30405
30536
|
{ type: ngxDeviceDetector.DeviceDetectorService },
|
|
30406
30537
|
{ type: i0.ChangeDetectorRef },
|
|
30407
30538
|
{ type: TnClientService },
|
|
@@ -35280,7 +35411,7 @@
|
|
|
35280
35411
|
{ type: i0.Component, args: [{
|
|
35281
35412
|
// tslint:disable-next-line: component-selector
|
|
35282
35413
|
selector: 'file-manager',
|
|
35283
|
-
template: "<div *ngIf=\"layout == _layout.LIST\" class=\"full-layout\">\r\n <div class=\"fm-toolbar\">\r\n <div class=\"fm-toolbar-buttons\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button *ngIf=\"!hiddenCreateFolder\" pButton pRipple type=\"button\" pTooltip=\"T\u1EA1o th\u01B0 m\u1EE5c m\u1EDBi\"\r\n tooltipPosition=\"top\" icon=\"pi pi-folder\" class=\"p-button-text\" label=\"T\u1EA1o th\u01B0 m\u1EE5c\" iconPos=\"left\"\r\n (click)=\"createFolder()\">\r\n </button>\r\n\r\n <button pButton icon=\"pi pi-cloud-upload\" pTooltip=\"T\u1EA3i t\u1EC7p tin t\u1EEB m\u00E1y t\u00EDnh c\u1EE7a b\u1EA1n\"\r\n tooltipPosition=\"top\" type=\"button\" class=\"p-button-text p-button-primary\" label=\"T\u1EA3i l\u00EAn\"\r\n (click)=\"selectFile()\"></button>\r\n\r\n <button pButton icon=\"pi pi-link\" pTooltip=\"T\u1EA3i t\u1EEB li\u00EAn k\u1EBFt trong h\u1EC7 th\u1ED1ng\" tooltipPosition=\"top\"\r\n type=\"button\" class=\"p-button-text p-button-primary\" label=\"T\u1EA3i li\u00EAn k\u1EBFt\"\r\n (click)=\"showAttachLinkBox = true\"></button>\r\n\r\n <button *ngIf=\"canSelect()\" class=\"p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"Di chuy\u1EC3n th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn\" tooltipPosition=\"top\" icon=\"fas fa-arrows-alt\"\r\n iconPos=\"left\" label=\"Di chuy\u1EC3n\" (click)=\"moveExplorerItems()\">\r\n </button>\r\n\r\n <button *ngIf=\"canSetMove()\" class=\"p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"Di chuy\u1EC3n th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn t\u1EDBi \u0111\u00E2y\" tooltipPosition=\"top\" icon=\"far fa-hand-paper\"\r\n iconPos=\"left\" label=\"\u0110\u1EB7t t\u1EA1i \u0111\u00E2y\" (click)=\"setMoveExplorerItems()\">\r\n </button>\r\n\r\n <button *ngIf=\"canSetMove()\" icon=\"pi pi-undo\" pButton class=\"p-button-text p-button-secondary\"\r\n type=\"button\" pTooltip=\"B\u1ECF di chuy\u1EC3n th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn\" tooltipPosition=\"top\" label=\"B\u1ECF qua\"\r\n (click)=\"cancelMove()\">\r\n </button>\r\n\r\n <button *ngIf=\"hasSelect()\" pButton type=\"button\"\r\n pTooltip=\"{{ 'X\u00F3a th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn' | translate }}\" tooltipPosition=\"top\" icon=\"pi pi-trash\"\r\n iconPos=\"left\" class=\"p-button-text p-button-danger\" label=\"X\u00F3a\"\r\n (click)=\"deleteMutiple(model.selectedItems)\"></button>\r\n </ng-container>\r\n <button *ngIf=\"readonly && hasSelect()\" class=\"p-button-text p-button-secondary\" pButton type=\"button\"\r\n pTooltip=\"N\u00E9n & t\u1EA3i v\u1EC1\" tooltipPosition=\"top\" icon=\"fas fa-file-archive\" iconPos=\"left\" label=\"T\u1EA3i v\u1EC1\"\r\n (click)=\"downloadMultiple()\">\r\n </button>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"breadCrumb\"></ng-container>\r\n </div>\r\n\r\n <div class=\"fm-grid\">\r\n <crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"_dataSource\"\r\n [disableKeypressControl]=\"true\" [showScrollBar]=\"false\" class=\"--auto-height-content --no-wrapper-padding\"\r\n [widthFunctionColumn]=\"'8.2rem'\" (onReload)=\"_triggerProcessData($event)\"\r\n (onRowSelect)=\"onRowSelect($event)\">\r\n\r\n <ng-template #explorerItem let-rowData='rowData' let-col='col'>\r\n <span (click)=\"openObject(rowData)\" class=\"pull-left file-ex-icon\"\r\n [innerHTML]=\"rowData.name | fileIcon : !rowData.isFile\">\r\n </span>\r\n\r\n <span (click)=\"openObject(rowData)\" class=\"{{rowData.class}} file-ex-name\">\r\n {{rowData.name}}\r\n </span>\r\n <span *ngIf=\"rowData.signatures\" class=\"pull-right signature\" pTooltip=\"Xem chi ti\u1EBFt k\u00FD s\u1ED1\"\r\n tooltipPosition=\"top\" (click)=\"viewListSign($event, rowData.signatures)\">\r\n <i class=\"fas fa-signature\"></i>\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template #fileSize let-rowData='rowData'>\r\n <div *ngIf=\"rowData.isFile\">{{rowData.fileSize | fileSize}}</div>\r\n </ng-template>\r\n\r\n <ng-template #function let-rowData=\"rowData\" let-crudList=\"crudList\">\r\n <div class=\"function-list\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button class=\"p-button-rounded p-button-text link-or-action\" pButton type=\"button\"\r\n tooltipPosition=\"top\" pTooltip=\"{{getButtonTooltip(rowData)}}\"\r\n icon=\"{{getButtonIcon(rowData)}}\" (click)=\"onButtonClick(rowData)\"></button>\r\n\r\n <button class=\"p-button-danger p-button-rounded p-button-text link-or-action\" pButton\r\n type=\"button\" pTooltip=\"X\u00F3a\" tooltipPosition=\"top\" icon=\"pi pi-trash\"\r\n (click)=\"deleteFile(rowData)\"></button>\r\n\r\n\r\n <button type=\"button\" pButton icon=\"pi pi-ellipsis-v\"\r\n class=\"link-or-action p-button-text p-button-rounded\" pTooltip=\"Th\u00EAm\" tooltipPosition=\"top\"\r\n (click)=\"showContextMenu($event, rowData)\"></button>\r\n </ng-container>\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n pButton type=\"button\" pTooltip=\"T\u1EA3i v\u1EC1\" tooltipPosition=\"top\" icon=\"pi pi-cloud-download\"\r\n (click)=\"download(rowData)\"></button>\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n pButton type=\"button\" pTooltip=\"Sao ch\u00E9p \u0111\u01B0\u1EDDng d\u1EABn\" tooltipPosition=\"top\" icon=\"pi pi-link\"\r\n (click)=\"copyDownloadLink(rowData)\"></button>\r\n </div>\r\n </ng-template>\r\n </crud-list>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"layout == _layout.SIMPLE\" class=\"not-full-layout\" [class.readonly]=\"readonly\">\r\n <div *ngIf=\"!readonly || data.breadcrumbs.length > 0\" class=\"fm-toolbar\">\r\n <div class=\"fm-toolbar-buttons\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button *ngIf=\"!hiddenCreateFolder\" (click)=\"createFolder()\" pButton pRipple type=\"button\"\r\n pTooltip=\"T\u1EA1o th\u01B0 m\u1EE5c m\u1EDBi\" tooltipPosition=\"top\" icon=\"pi pi-folder\" class=\"p-button-text\"\r\n label=\"T\u1EA1o th\u01B0 m\u1EE5c\" iconPos=\"left\">\r\n </button>\r\n <button type=\"button\" pButton class=\"p-button-text p-button-info link-or-action\"\r\n icon=\"pi pi-cloud-upload\" (click)=\"selectFile()\" label=\"T\u1EA3i l\u00EAn\"></button>\r\n <button pButton icon=\"pi pi-link\" pTooltip=\"T\u1EA3i t\u1EEB li\u00EAn k\u1EBFt trong h\u1EC7 th\u1ED1ng\" tooltipPosition=\"top\"\r\n type=\"button\" class=\"p-button-text p-button-primary\" label=\"T\u1EA3i li\u00EAn k\u1EBFt\"\r\n (click)=\"showAttachLinkBox = true\"></button>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"breadCrumb\"></ng-container>\r\n </div>\r\n\r\n <div class=\"nfl-grid\">\r\n <div *ngFor=\"let rowData of _dataSource; index as i\" class=\"nfl-item\">\r\n <div class=\"nfl-no\">\r\n {{i + 1}}.\r\n </div>\r\n\r\n <div class=\"nfl-name\">\r\n <span class=\"pull-left file-ex-icon\" [innerHTML]=\"rowData.name | fileIcon : !rowData.isFile\">\r\n </span>\r\n <!-- <a (click)=\"openObject(rowData)\" class=\"{{rowData.class}} file-ex-name\">\r\n <span>{{rowData.nameWithoutExtension}}</span>\r\n <div *ngIf=\"rowData.signatures\" class=\"signature\" pTooltip=\"Xem chi ti\u1EBFt k\u00FD s\u1ED1\"\r\n tooltipPosition=\"top\" (click)=\"viewListSign($event, rowData.signatures)\">\r\n <i class=\"fas fa-signature\"></i>\r\n </div>\r\n </a>\r\n <a (click)=\"openObject(rowData)\" class=\"file-ex-extension\">{{rowData.extension}}</a> -->\r\n\r\n <a (click)=\"openObject(rowData)\" class=\"{{rowData.class}} file-ex-name\">\r\n <span>\r\n <span>{{rowData.nameWithoutExtension}}</span>\r\n <div *ngIf=\"rowData.signatures\" class=\"signature\" pTooltip=\"Xem chi ti\u1EBFt k\u00FD s\u1ED1\"\r\n tooltipPosition=\"top\" (click)=\"viewListSign($event, rowData.signatures)\">\r\n <i class=\"fas fa-signature\"></i>\r\n </div>\r\n </span>\r\n <span class=\"file-ex-extension\">{{rowData.extension}}</span>\r\n </a>\r\n </div>\r\n\r\n <div *ngIf=\"rowData.isFile\" class=\"nfl-version\">\r\n v{{rowData.currentFileVersion}}\r\n </div>\r\n\r\n <div class=\"nfl-function\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button class=\"p-button-rounded p-button-text link-or-action\" (click)=\"onButtonClick(rowData)\"\r\n pButton type=\"button\" tooltipPosition=\"top\" pTooltip=\"{{getButtonTooltip(rowData)}}\"\r\n icon=\"{{getButtonIcon(rowData)}}\"></button>\r\n\r\n <button class=\"p-button-danger p-button-rounded p-button-text link-or-action\"\r\n (click)=\"deleteFile(rowData)\" pButton type=\"button\" pTooltip=\"X\u00F3a\" tooltipPosition=\"top\"\r\n icon=\"pi pi-trash\"></button>\r\n\r\n <button type=\"button\" pButton icon=\"pi pi-ellipsis-v\"\r\n class=\"link-or-action p-button-text p-button-rounded\" pTooltip=\"Th\u00EAm\" tooltipPosition=\"top\"\r\n (click)=\"showContextMenu($event, rowData)\"></button>\r\n </ng-container>\r\n\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n (click)=\"download(rowData)\" pButton type=\"button\" pTooltip=\"T\u1EA3i v\u1EC1\" tooltipPosition=\"top\"\r\n icon=\"pi pi-cloud-download\"></button>\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n pButton type=\"button\" pTooltip=\"Sao ch\u00E9p \u0111\u01B0\u1EDDng d\u1EABn\" tooltipPosition=\"top\" icon=\"pi pi-link\"\r\n (click)=\"copyDownloadLink(rowData)\"></button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!_dataSource || !_dataSource.length\" class=\"nfl-no-item\">\r\n Ch\u01B0a c\u00F3 t\u00E0i li\u1EC7u \u0111\u01B0\u1EE3c t\u1EA3i l\u00EAn\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #breadCrumb>\r\n <div *ngIf=\"data.breadcrumbs.length > 0\" class=\"fm-toolbar-path\">\r\n <p-breadcrumb class=\"customBreadCrumb\" [model]=\"data.breadcrumbs\"></p-breadcrumb>\r\n </div>\r\n</ng-template>\r\n\r\n<p-fileUpload mode=\"basic\" name=\"file\" [url]=\"'http://dhgt-gateway.dttt.vn/file/v5/FileObject/UploadFileIntoFolder'\"\r\n auto=\"true\">\r\n</p-fileUpload>\r\n\r\n<p-fileUpload #fileControl [ngStyle]=\"{'display': 'none'}\" mode=\"basic\" [chooseLabel]=\"chooseLabel\" name=\"file\"\r\n [url]=\"apiUploadUrl\" [maxFileSize]=\"maxFileSize\" auto=\"true\"\r\n [invalidFileSizeMessageSummary]=\"invalidFileSizeMessageSummary\"\r\n [invalidFileSizeMessageDetail]=\"invalidFileSizeMessageDetail\"\r\n [invalidFileTypeMessageSummary]=\"invalidFileTypeMessageSummary\"\r\n [invalidFileTypeMessageDetail]=\"invalidFileTypeMessageDetail\"\r\n [invalidFileLimitMessageSummary]=\"invalidFileLimitMessageSummary\"\r\n [invalidFileLimitMessageDetail]=\"invalidFileLimitMessageDetail\" (onProgress)=\"onUploadProgress($event)\"\r\n (onBeforeUpload)=\"onBeforeUpload($event)\" (onSelect)=\"handleSelectFile($event)\" (onUpload)=\"onUploaded($event)\">\r\n</p-fileUpload>\r\n<p-contextMenu #contextMenu [appendTo]=\"'body'\" [model]=\"data.itemsMenuFile\" styleClass=\"fm-contextMenu-panel\">\r\n</p-contextMenu>\r\n\r\n<!-- T\u1EA1o m\u1EDBi/ \u0111\u1ED5i t\u00EAn th\u01B0 m\u1EE5c -->\r\n<tn-dialog *ngIf=\"forms.createFolder.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.createFolder.header | translate\" [popupSize]=\"forms[formIds.createFolder].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.createFolder)\">\r\n <folder-form #formBase [parentModel]=\"model\" [parentContext]=\"context\"\r\n [model]=\"forms[formIds.createFolder].formData\" (onSaved)=\"onSavedForm(formIds.createFolder)\"\r\n (onCancel)=\"onCancelForm(formIds.createFolder)\">\r\n </folder-form>\r\n</tn-dialog>\r\n\r\n<!-- \u0110\u1ED5i t\u00EAn file -->\r\n<tn-dialog *ngIf=\"forms.renameFile.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.renameFile.header | translate\" [popupSize]=\"forms[formIds.renameFile].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.renameFile)\">\r\n <file-form #formBase [parentModel]=\"model\" [parentContext]=\"context\" [model]=\"forms[formIds.renameFile].formData\"\r\n (onSaved)=\"onSavedForm(formIds.renameFile)\" (onCancel)=\"onCancelForm(formIds.renameFile)\">\r\n </file-form>\r\n</tn-dialog>\r\n\r\n<!-- Xem file tr\u1EF1c tuy\u1EBFn -->\r\n<file-viewer *ngIf=\"forms.fileViewer.show\" [parentModel]=\"model\" [parentContext]=\"context\" [readonly]=\"readonly\"\r\n [model]=\"forms.fileViewer.formData\" (onClose)=\"closeFileViewer()\">\r\n</file-viewer>\r\n\r\n<!-- Xem phi\u00EAn b\u1EA3n -->\r\n<tn-dialog *ngIf=\"forms.fileVersionList.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.fileVersionList.header | translate\" [popupSize]=\"forms[formIds.fileVersionList].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.fileVersionList)\">\r\n <file-version-list *ngIf=\"forms.fileVersionList.show\" [parentModel]=\"model\" [parentContext]=\"context\"\r\n [fileId]=\"forms[formIds.fileVersionList].fileId\" [readonly]=\"readonly\">\r\n </file-version-list>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showAttachLinkBox\" #dialog2 [maximizable]=\"false\" [header]=\"'Nh\u1EADp li\u00EAn k\u1EBFt' | translate\"\r\n [popupSize]=\"{ width: 600, height: 50}\" (onHide)=\"showAttachLinkBox = false; typedLink=''\">\r\n <div class=\"p-col-12\">\r\n <div class=\"p-grid\">\r\n <div class=\"p-md-10\">\r\n <input #input type=\"text\" placeholder=\"Nh\u1EADp li\u00EAn k\u1EBFt sao ch\u00E9p t\u1EEB t\u1EC7p tin kh\u00E1c...\"\r\n (keyup.enter)=\"addAttachLink()\" pInputText [(ngModel)]=\"typedLink\" class=\"p-col-12\" />\r\n </div>\r\n <div class=\"p-md-2\">\r\n <button type=\"button\" (click)=\"addAttachLink()\" [disabled]=\"typedLink != ''? null : true\" pButton\r\n class=\"p-button-primary p-col-12\" label=\"Ok\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <after-view-checked (loaded)=\"focusInput(input)\"></after-view-checked>\r\n</tn-dialog>\r\n<!--\r\n\r\n<share-file *ngIf=\"forms.shareFile.show\" [parentDataModel]=\"model\" [parentDataContext]=\"context\"\r\n [model]=\"forms.shareFile.formData\">\r\n</share-file>\r\n\r\n<share-folder *ngIf=\"forms.shareFolder.show\" [parentDataModel]=\"model\" [parentDataContext]=\"context\"\r\n [model]=\"forms.shareFolder.formData\">\r\n</share-folder>\r\n -->\r\n\r\n<!-- Xem ch\u1EEF k\u00FD s\u1ED1 -->\r\n<tn-dialog *ngIf=\"forms.signatureDetail.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.signatureDetail.header | translate\" [popupSize]=\"forms[formIds.signatureDetail].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.signatureDetail)\">\r\n <signature-detail [parentModel]=\"model\" [parentContext]=\"context\">\r\n </signature-detail>\r\n</tn-dialog>\r\n<!--K\u00FD s\u1ED1 sim-->\r\n<tn-dialog *ngIf=\"forms.kySoSim.show\" #dialog [styleClass]=\"'address-form'\" [header]=\"forms.kySoSim.header | translate\"\r\n [popupSize]=\"forms.kySoSim.popupSize\" [showFooter]=\"true\" (onHide)=\"onCancelForm(formIds.kySoSim)\">\r\n <app-file-ky-so-sim #fileKySoSim [parentModel]=\"model\" [parentContext]=\"context\">\r\n </app-file-ky-so-sim>\r\n <ng-template #footer>\r\n <button type=\"button\" pButton icon=\"fas fa-images\" [disabled]=\"model.submitting\" class=\"p-button-text\"\r\n [label]=\"'Ch\u1ECDn ch\u1EEF k\u00FD' | translate\" (click)=\"chonChuKy()\"></button>\r\n <button type=\"button\" pButton icon=\"fas fa-signature\" class=\"p-button-text ui-button-success\"\r\n [disabled]=\"model.submitting\" [label]=\"'Th\u1EF1c hi\u1EC7n k\u00FD' | translate\" (click)=\"kySo()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"forms.kySoSim.show=false\"></button>\r\n </ng-template>\r\n</tn-dialog>",
|
|
35414
|
+
template: "<div *ngIf=\"layout == _layout.LIST\" class=\"full-layout\">\r\n <div class=\"fm-toolbar\">\r\n <div class=\"fm-toolbar-buttons\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button *ngIf=\"!hiddenCreateFolder\" pButton pRipple type=\"button\" pTooltip=\"T\u1EA1o th\u01B0 m\u1EE5c m\u1EDBi\"\r\n tooltipPosition=\"top\" icon=\"pi pi-folder\" class=\"p-button-text\" label=\"T\u1EA1o th\u01B0 m\u1EE5c\" iconPos=\"left\"\r\n (click)=\"createFolder()\">\r\n </button>\r\n\r\n <button pButton icon=\"pi pi-cloud-upload\" pTooltip=\"T\u1EA3i t\u1EC7p tin t\u1EEB m\u00E1y t\u00EDnh c\u1EE7a b\u1EA1n\"\r\n tooltipPosition=\"top\" type=\"button\" class=\"p-button-text p-button-primary\" label=\"T\u1EA3i l\u00EAn\"\r\n (click)=\"selectFile()\"></button>\r\n\r\n <button pButton icon=\"pi pi-link\" pTooltip=\"T\u1EA3i t\u1EEB li\u00EAn k\u1EBFt trong h\u1EC7 th\u1ED1ng\" tooltipPosition=\"top\"\r\n type=\"button\" class=\"p-button-text p-button-primary\" label=\"T\u1EA3i li\u00EAn k\u1EBFt\"\r\n (click)=\"showAttachLinkBox = true\"></button>\r\n\r\n <button *ngIf=\"canSelect()\" class=\"p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"Di chuy\u1EC3n th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn\" tooltipPosition=\"top\" icon=\"fas fa-arrows-alt\"\r\n iconPos=\"left\" label=\"Di chuy\u1EC3n\" (click)=\"moveExplorerItems()\">\r\n </button>\r\n\r\n <button *ngIf=\"canSetMove()\" class=\"p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"Di chuy\u1EC3n th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn t\u1EDBi \u0111\u00E2y\" tooltipPosition=\"top\" icon=\"far fa-hand-paper\"\r\n iconPos=\"left\" label=\"\u0110\u1EB7t t\u1EA1i \u0111\u00E2y\" (click)=\"setMoveExplorerItems()\">\r\n </button>\r\n\r\n <button *ngIf=\"canSetMove()\" icon=\"pi pi-undo\" pButton class=\"p-button-text p-button-secondary\"\r\n type=\"button\" pTooltip=\"B\u1ECF di chuy\u1EC3n th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn\" tooltipPosition=\"top\" label=\"B\u1ECF qua\"\r\n (click)=\"cancelMove()\">\r\n </button>\r\n\r\n <button *ngIf=\"hasSelect()\" pButton type=\"button\"\r\n pTooltip=\"{{ 'X\u00F3a th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn' | translate }}\" tooltipPosition=\"top\" icon=\"pi pi-trash\"\r\n iconPos=\"left\" class=\"p-button-text p-button-danger\" label=\"X\u00F3a\"\r\n (click)=\"deleteMutiple(model.selectedItems)\"></button>\r\n </ng-container>\r\n <button *ngIf=\"readonly && hasSelect()\" class=\"p-button-text p-button-secondary\" pButton type=\"button\"\r\n pTooltip=\"N\u00E9n & t\u1EA3i v\u1EC1\" tooltipPosition=\"top\" icon=\"fas fa-file-archive\" iconPos=\"left\" label=\"T\u1EA3i v\u1EC1\"\r\n (click)=\"downloadMultiple()\">\r\n </button>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"breadCrumb\"></ng-container>\r\n </div>\r\n\r\n <div class=\"fm-grid\">\r\n <crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"_dataSource\"\r\n [disableKeypressControl]=\"true\" [showScrollBar]=\"false\" class=\"--auto-height-content --no-wrapper-padding\"\r\n [widthFunctionColumn]=\"'8.2rem'\" (onReload)=\"_triggerProcessData($event)\"\r\n (onRowSelect)=\"onRowSelect($event)\">\r\n\r\n <ng-template #explorerItem let-rowData='rowData' let-col='col'>\r\n <span (click)=\"openObject(rowData)\" class=\"pull-left file-ex-icon\"\r\n [innerHTML]=\"rowData.name | fileIcon : !rowData.isFile\">\r\n </span>\r\n\r\n <span (click)=\"openObject(rowData)\" class=\"{{rowData.class}} file-ex-name\">\r\n {{rowData.name}}\r\n </span>\r\n <span *ngIf=\"rowData.signatures\" class=\"pull-right signature\" pTooltip=\"Xem chi ti\u1EBFt k\u00FD s\u1ED1\"\r\n tooltipPosition=\"top\" (click)=\"viewListSign($event, rowData.signatures)\">\r\n <i class=\"fas fa-signature\"></i>\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template #fileSize let-rowData='rowData'>\r\n <div *ngIf=\"rowData.isFile\">{{rowData.fileSize | fileSize}}</div>\r\n </ng-template>\r\n\r\n <ng-template #function let-rowData=\"rowData\" let-crudList=\"crudList\">\r\n <div class=\"function-list\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button class=\"p-button-rounded p-button-text link-or-action\" pButton type=\"button\"\r\n tooltipPosition=\"top\" pTooltip=\"{{getButtonTooltip(rowData)}}\"\r\n icon=\"{{getButtonIcon(rowData)}}\" (click)=\"onButtonClick(rowData)\"></button>\r\n\r\n <button class=\"p-button-danger p-button-rounded p-button-text link-or-action\" pButton\r\n type=\"button\" pTooltip=\"X\u00F3a\" tooltipPosition=\"top\" icon=\"pi pi-trash\"\r\n (click)=\"deleteFile(rowData)\"></button>\r\n\r\n\r\n <button type=\"button\" pButton icon=\"pi pi-ellipsis-v\"\r\n class=\"link-or-action p-button-text p-button-rounded\" pTooltip=\"Th\u00EAm\" tooltipPosition=\"top\"\r\n (click)=\"showContextMenu($event, rowData)\"></button>\r\n </ng-container>\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n pButton type=\"button\" pTooltip=\"T\u1EA3i v\u1EC1\" tooltipPosition=\"top\" icon=\"pi pi-cloud-download\"\r\n (click)=\"download(rowData)\"></button>\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n pButton type=\"button\" pTooltip=\"Sao ch\u00E9p \u0111\u01B0\u1EDDng d\u1EABn\" tooltipPosition=\"top\" icon=\"pi pi-link\"\r\n (click)=\"copyDownloadLink(rowData)\"></button>\r\n </div>\r\n </ng-template>\r\n </crud-list>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"layout == _layout.SIMPLE\" class=\"not-full-layout\" [class.readonly]=\"readonly\">\r\n <div *ngIf=\"!readonly || data.breadcrumbs.length > 0\" class=\"fm-toolbar\">\r\n <div class=\"fm-toolbar-buttons\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button *ngIf=\"!hiddenCreateFolder\" (click)=\"createFolder()\" pButton pRipple type=\"button\"\r\n pTooltip=\"T\u1EA1o th\u01B0 m\u1EE5c m\u1EDBi\" tooltipPosition=\"top\" icon=\"pi pi-folder\" class=\"p-button-text\"\r\n label=\"T\u1EA1o th\u01B0 m\u1EE5c\" iconPos=\"left\">\r\n </button>\r\n <button type=\"button\" pButton class=\"p-button-text p-button-info link-or-action\"\r\n icon=\"pi pi-cloud-upload\" (click)=\"selectFile()\" label=\"T\u1EA3i l\u00EAn\"></button>\r\n <button pButton icon=\"pi pi-link\" pTooltip=\"T\u1EA3i t\u1EEB li\u00EAn k\u1EBFt trong h\u1EC7 th\u1ED1ng\" tooltipPosition=\"top\"\r\n type=\"button\" class=\"p-button-text p-button-primary\" label=\"T\u1EA3i li\u00EAn k\u1EBFt\"\r\n (click)=\"showAttachLinkBox = true\"></button>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"breadCrumb\"></ng-container>\r\n </div>\r\n\r\n <div class=\"nfl-grid\">\r\n <div *ngFor=\"let rowData of _dataSource; index as i\" class=\"nfl-item\">\r\n <div class=\"nfl-no\">\r\n {{i + 1}}.\r\n </div>\r\n\r\n <div class=\"nfl-name\">\r\n <span class=\"pull-left file-ex-icon\" [innerHTML]=\"rowData.name | fileIcon : !rowData.isFile\">\r\n </span>\r\n <!-- <a (click)=\"openObject(rowData)\" class=\"{{rowData.class}} file-ex-name\">\r\n <span>{{rowData.nameWithoutExtension}}</span>\r\n <div *ngIf=\"rowData.signatures\" class=\"signature\" pTooltip=\"Xem chi ti\u1EBFt k\u00FD s\u1ED1\"\r\n tooltipPosition=\"top\" (click)=\"viewListSign($event, rowData.signatures)\">\r\n <i class=\"fas fa-signature\"></i>\r\n </div>\r\n </a>\r\n <a (click)=\"openObject(rowData)\" class=\"file-ex-extension\">{{rowData.extension}}</a> -->\r\n\r\n <a (click)=\"openObject(rowData)\" class=\"{{rowData.class}} file-ex-name\">\r\n <span>\r\n <span>{{rowData.nameWithoutExtension}}</span>\r\n <div *ngIf=\"rowData.signatures\" class=\"signature\" pTooltip=\"Xem chi ti\u1EBFt k\u00FD s\u1ED1\"\r\n tooltipPosition=\"top\" (click)=\"viewListSign($event, rowData.signatures)\">\r\n <i class=\"fas fa-signature\"></i>\r\n </div>\r\n </span>\r\n <span class=\"file-ex-extension\">{{rowData.extension}}</span>\r\n </a>\r\n </div>\r\n\r\n <div *ngIf=\"rowData.isFile\" class=\"nfl-version\">\r\n v{{rowData.currentFileVersion}}\r\n </div>\r\n\r\n <div class=\"nfl-function\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button class=\"p-button-rounded p-button-text link-or-action\" (click)=\"onButtonClick(rowData)\"\r\n pButton type=\"button\" tooltipPosition=\"top\" pTooltip=\"{{getButtonTooltip(rowData)}}\"\r\n icon=\"{{getButtonIcon(rowData)}}\"></button>\r\n\r\n <button class=\"p-button-danger p-button-rounded p-button-text link-or-action\"\r\n (click)=\"deleteFile(rowData)\" pButton type=\"button\" pTooltip=\"X\u00F3a\" tooltipPosition=\"top\"\r\n icon=\"pi pi-trash\"></button>\r\n\r\n <button type=\"button\" pButton icon=\"pi pi-ellipsis-v\"\r\n class=\"link-or-action p-button-text p-button-rounded\" pTooltip=\"Th\u00EAm\" tooltipPosition=\"top\"\r\n (click)=\"showContextMenu($event, rowData)\"></button>\r\n </ng-container>\r\n\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n (click)=\"download(rowData)\" pButton type=\"button\" pTooltip=\"T\u1EA3i v\u1EC1\" tooltipPosition=\"top\"\r\n icon=\"pi pi-cloud-download\"></button>\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n pButton type=\"button\" pTooltip=\"Sao ch\u00E9p \u0111\u01B0\u1EDDng d\u1EABn\" tooltipPosition=\"top\" icon=\"pi pi-link\"\r\n (click)=\"copyDownloadLink(rowData)\"></button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!_dataSource || !_dataSource.length\" class=\"nfl-no-item\">\r\n Ch\u01B0a c\u00F3 t\u00E0i li\u1EC7u \u0111\u01B0\u1EE3c t\u1EA3i l\u00EAn\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #breadCrumb>\r\n <div *ngIf=\"data.breadcrumbs.length > 0\" class=\"fm-toolbar-path\">\r\n <p-breadcrumb class=\"customBreadCrumb\" [model]=\"data.breadcrumbs\"></p-breadcrumb>\r\n </div>\r\n</ng-template>\r\n\r\n<p-fileUpload #fileControl [ngStyle]=\"{'display': 'none'}\" mode=\"basic\" [chooseLabel]=\"chooseLabel\" name=\"file\"\r\n [url]=\"apiUploadUrl\" [maxFileSize]=\"maxFileSize\" auto=\"true\"\r\n [invalidFileSizeMessageSummary]=\"invalidFileSizeMessageSummary\"\r\n [invalidFileSizeMessageDetail]=\"invalidFileSizeMessageDetail\"\r\n [invalidFileTypeMessageSummary]=\"invalidFileTypeMessageSummary\"\r\n [invalidFileTypeMessageDetail]=\"invalidFileTypeMessageDetail\"\r\n [invalidFileLimitMessageSummary]=\"invalidFileLimitMessageSummary\"\r\n [invalidFileLimitMessageDetail]=\"invalidFileLimitMessageDetail\" (onProgress)=\"onUploadProgress($event)\"\r\n (onBeforeUpload)=\"onBeforeUpload($event)\" (onSelect)=\"handleSelectFile($event)\" (onUpload)=\"onUploaded($event)\">\r\n</p-fileUpload>\r\n<p-contextMenu #contextMenu [appendTo]=\"'body'\" [model]=\"data.itemsMenuFile\" styleClass=\"fm-contextMenu-panel\">\r\n</p-contextMenu>\r\n\r\n<!-- T\u1EA1o m\u1EDBi/ \u0111\u1ED5i t\u00EAn th\u01B0 m\u1EE5c -->\r\n<tn-dialog *ngIf=\"forms.createFolder.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.createFolder.header | translate\" [popupSize]=\"forms[formIds.createFolder].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.createFolder)\">\r\n <folder-form #formBase [parentModel]=\"model\" [parentContext]=\"context\"\r\n [model]=\"forms[formIds.createFolder].formData\" (onSaved)=\"onSavedForm(formIds.createFolder)\"\r\n (onCancel)=\"onCancelForm(formIds.createFolder)\">\r\n </folder-form>\r\n</tn-dialog>\r\n\r\n<!-- \u0110\u1ED5i t\u00EAn file -->\r\n<tn-dialog *ngIf=\"forms.renameFile.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.renameFile.header | translate\" [popupSize]=\"forms[formIds.renameFile].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.renameFile)\">\r\n <file-form #formBase [parentModel]=\"model\" [parentContext]=\"context\" [model]=\"forms[formIds.renameFile].formData\"\r\n (onSaved)=\"onSavedForm(formIds.renameFile)\" (onCancel)=\"onCancelForm(formIds.renameFile)\">\r\n </file-form>\r\n</tn-dialog>\r\n\r\n<!-- Xem file tr\u1EF1c tuy\u1EBFn -->\r\n<file-viewer *ngIf=\"forms.fileViewer.show\" [parentModel]=\"model\" [parentContext]=\"context\" [readonly]=\"readonly\"\r\n [model]=\"forms.fileViewer.formData\" (onClose)=\"closeFileViewer()\">\r\n</file-viewer>\r\n\r\n<!-- Xem phi\u00EAn b\u1EA3n -->\r\n<tn-dialog *ngIf=\"forms.fileVersionList.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.fileVersionList.header | translate\" [popupSize]=\"forms[formIds.fileVersionList].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.fileVersionList)\">\r\n <file-version-list *ngIf=\"forms.fileVersionList.show\" [parentModel]=\"model\" [parentContext]=\"context\"\r\n [fileId]=\"forms[formIds.fileVersionList].fileId\" [readonly]=\"readonly\">\r\n </file-version-list>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showAttachLinkBox\" #dialog2 [maximizable]=\"false\" [header]=\"'Nh\u1EADp li\u00EAn k\u1EBFt' | translate\"\r\n [popupSize]=\"{ width: 600, height: 50}\" (onHide)=\"showAttachLinkBox = false; typedLink=''\">\r\n <div class=\"p-col-12\">\r\n <div class=\"p-grid\">\r\n <div class=\"p-md-10\">\r\n <input #input type=\"text\" placeholder=\"Nh\u1EADp li\u00EAn k\u1EBFt sao ch\u00E9p t\u1EEB t\u1EC7p tin kh\u00E1c...\"\r\n (keyup.enter)=\"addAttachLink()\" pInputText [(ngModel)]=\"typedLink\" class=\"p-col-12\" />\r\n </div>\r\n <div class=\"p-md-2\">\r\n <button type=\"button\" (click)=\"addAttachLink()\" [disabled]=\"typedLink != ''? null : true\" pButton\r\n class=\"p-button-primary p-col-12\" label=\"Ok\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <after-view-checked (loaded)=\"focusInput(input)\"></after-view-checked>\r\n</tn-dialog>\r\n<!--\r\n\r\n<share-file *ngIf=\"forms.shareFile.show\" [parentDataModel]=\"model\" [parentDataContext]=\"context\"\r\n [model]=\"forms.shareFile.formData\">\r\n</share-file>\r\n\r\n<share-folder *ngIf=\"forms.shareFolder.show\" [parentDataModel]=\"model\" [parentDataContext]=\"context\"\r\n [model]=\"forms.shareFolder.formData\">\r\n</share-folder>\r\n -->\r\n\r\n<!-- Xem ch\u1EEF k\u00FD s\u1ED1 -->\r\n<tn-dialog *ngIf=\"forms.signatureDetail.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.signatureDetail.header | translate\" [popupSize]=\"forms[formIds.signatureDetail].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.signatureDetail)\">\r\n <signature-detail [parentModel]=\"model\" [parentContext]=\"context\">\r\n </signature-detail>\r\n</tn-dialog>\r\n<!--K\u00FD s\u1ED1 sim-->\r\n<tn-dialog *ngIf=\"forms.kySoSim.show\" #dialog [styleClass]=\"'address-form'\" [header]=\"forms.kySoSim.header | translate\"\r\n [popupSize]=\"forms.kySoSim.popupSize\" [showFooter]=\"true\" (onHide)=\"onCancelForm(formIds.kySoSim)\">\r\n <app-file-ky-so-sim #fileKySoSim [parentModel]=\"model\" [parentContext]=\"context\">\r\n </app-file-ky-so-sim>\r\n <ng-template #footer>\r\n <button type=\"button\" pButton icon=\"fas fa-images\" [disabled]=\"model.submitting\" class=\"p-button-text\"\r\n [label]=\"'Ch\u1ECDn ch\u1EEF k\u00FD' | translate\" (click)=\"chonChuKy()\"></button>\r\n <button type=\"button\" pButton icon=\"fas fa-signature\" class=\"p-button-text ui-button-success\"\r\n [disabled]=\"model.submitting\" [label]=\"'Th\u1EF1c hi\u1EC7n k\u00FD' | translate\" (click)=\"kySo()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"forms.kySoSim.show=false\"></button>\r\n </ng-template>\r\n</tn-dialog>",
|
|
35284
35415
|
providers: [
|
|
35285
35416
|
{
|
|
35286
35417
|
provide: forms.NG_VALUE_ACCESSOR,
|
|
@@ -36728,7 +36859,7 @@
|
|
|
36728
36859
|
];
|
|
36729
36860
|
NotFoundComponent.ctorParameters = function () { return [
|
|
36730
36861
|
{ type: i0.Injector },
|
|
36731
|
-
{ type:
|
|
36862
|
+
{ type: i3.Router },
|
|
36732
36863
|
{ type: UserService },
|
|
36733
36864
|
{ type: ModuleConfigService },
|
|
36734
36865
|
{ type: AuthenService }
|
|
@@ -38663,7 +38794,7 @@
|
|
|
38663
38794
|
{ type: PermissionService },
|
|
38664
38795
|
{ type: ngxDeviceDetector.DeviceDetectorService },
|
|
38665
38796
|
{ type: UserService },
|
|
38666
|
-
{ type:
|
|
38797
|
+
{ type: i3.Router },
|
|
38667
38798
|
{ type: AuthenService },
|
|
38668
38799
|
{ type: GlobalService }
|
|
38669
38800
|
]; };
|
|
@@ -41652,7 +41783,7 @@
|
|
|
41652
41783
|
{ type: SignalRService },
|
|
41653
41784
|
{ type: UserV5Service },
|
|
41654
41785
|
{ type: NotificationService },
|
|
41655
|
-
{ type:
|
|
41786
|
+
{ type: i3.Router },
|
|
41656
41787
|
{ type: ModuleConfigService },
|
|
41657
41788
|
{ type: CrudService },
|
|
41658
41789
|
{ type: NotifierService },
|
|
@@ -42676,7 +42807,7 @@
|
|
|
42676
42807
|
];
|
|
42677
42808
|
UniversalLinkProcessorComponent.ctorParameters = function () { return [
|
|
42678
42809
|
{ type: i0.Injector },
|
|
42679
|
-
{ type:
|
|
42810
|
+
{ type: i3.ActivatedRoute }
|
|
42680
42811
|
]; };
|
|
42681
42812
|
|
|
42682
42813
|
var UserPickerBoxComponent = /** @class */ (function (_super) {
|
|
@@ -50264,36 +50395,6 @@
|
|
|
50264
50395
|
imgSignImage: [{ type: i0.ViewChild, args: ['signImage',] }]
|
|
50265
50396
|
};
|
|
50266
50397
|
|
|
50267
|
-
var SendAccessTokenInterceptor = /** @class */ (function () {
|
|
50268
|
-
function SendAccessTokenInterceptor(authenService, _moduleConfigService) {
|
|
50269
|
-
this.authenService = authenService;
|
|
50270
|
-
this._moduleConfigService = _moduleConfigService;
|
|
50271
|
-
this.env = this._moduleConfigService.getConfig().environment;
|
|
50272
|
-
}
|
|
50273
|
-
SendAccessTokenInterceptor.prototype.intercept = function (request, next) {
|
|
50274
|
-
if (!this.env.disableAuthentication) {
|
|
50275
|
-
request = request.clone({
|
|
50276
|
-
setHeaders: {
|
|
50277
|
-
Authorization: "Bearer " + this.authenService.getAccessToken(),
|
|
50278
|
-
PortalAlias: location.origin
|
|
50279
|
-
}
|
|
50280
|
-
});
|
|
50281
|
-
}
|
|
50282
|
-
return next.handle(request);
|
|
50283
|
-
};
|
|
50284
|
-
return SendAccessTokenInterceptor;
|
|
50285
|
-
}());
|
|
50286
|
-
SendAccessTokenInterceptor.ɵprov = i0.ɵɵdefineInjectable({ factory: function SendAccessTokenInterceptor_Factory() { return new SendAccessTokenInterceptor(i0.ɵɵinject(AuthenService), i0.ɵɵinject(ModuleConfigService)); }, token: SendAccessTokenInterceptor, providedIn: "root" });
|
|
50287
|
-
SendAccessTokenInterceptor.decorators = [
|
|
50288
|
-
{ type: i0.Injectable, args: [{
|
|
50289
|
-
providedIn: 'root'
|
|
50290
|
-
},] }
|
|
50291
|
-
];
|
|
50292
|
-
SendAccessTokenInterceptor.ctorParameters = function () { return [
|
|
50293
|
-
{ type: AuthenService },
|
|
50294
|
-
{ type: ModuleConfigService }
|
|
50295
|
-
]; };
|
|
50296
|
-
|
|
50297
50398
|
function coreDeclaration() {
|
|
50298
50399
|
return [
|
|
50299
50400
|
AddressComponent,
|
|
@@ -50502,12 +50603,9 @@
|
|
|
50502
50603
|
chart.ChartModule,
|
|
50503
50604
|
colorpicker.ColorPickerModule,
|
|
50504
50605
|
fieldset.FieldsetModule,
|
|
50505
|
-
// TODO: Comment vì không tương thích với angular 9+
|
|
50506
|
-
// ImageViewerModule,
|
|
50507
50606
|
ngxMask.NgxMaskModule,
|
|
50508
50607
|
selectbutton.SelectButtonModule,
|
|
50509
50608
|
steps.StepsModule,
|
|
50510
|
-
ngxLightbox.LightboxModule,
|
|
50511
50609
|
ngxExtendedPdfViewer.NgxExtendedPdfViewerModule,
|
|
50512
50610
|
steps.StepsModule,
|
|
50513
50611
|
progressspinner.ProgressSpinnerModule
|
|
@@ -50536,12 +50634,7 @@
|
|
|
50536
50634
|
{ type: i0.NgModule, args: [{
|
|
50537
50635
|
imports: __spread(coreModuleImport()),
|
|
50538
50636
|
providers: __spread(coreProvider(), [
|
|
50539
|
-
ngxDeviceDetector.DeviceDetectorService
|
|
50540
|
-
{
|
|
50541
|
-
provide: i1$1.HTTP_INTERCEPTORS,
|
|
50542
|
-
useClass: SendAccessTokenInterceptor,
|
|
50543
|
-
multi: true
|
|
50544
|
-
},
|
|
50637
|
+
ngxDeviceDetector.DeviceDetectorService
|
|
50545
50638
|
]),
|
|
50546
50639
|
declarations: __spread(coreDeclaration(), coreProvider(), [CheckReadyComponent]),
|
|
50547
50640
|
exports: __spread(coreDeclaration(), coreModuleImport(), coreProvider())
|
|
@@ -50792,6 +50885,36 @@
|
|
|
50792
50885
|
{ type: ModuleConfigService }
|
|
50793
50886
|
]; };
|
|
50794
50887
|
|
|
50888
|
+
var SendAccessTokenInterceptor = /** @class */ (function () {
|
|
50889
|
+
function SendAccessTokenInterceptor(authenService, _moduleConfigService) {
|
|
50890
|
+
this.authenService = authenService;
|
|
50891
|
+
this._moduleConfigService = _moduleConfigService;
|
|
50892
|
+
this.env = this._moduleConfigService.getConfig().environment;
|
|
50893
|
+
}
|
|
50894
|
+
SendAccessTokenInterceptor.prototype.intercept = function (request, next) {
|
|
50895
|
+
if (!this.env.disableAuthentication) {
|
|
50896
|
+
request = request.clone({
|
|
50897
|
+
setHeaders: {
|
|
50898
|
+
Authorization: "Bearer " + this.authenService.getAccessToken(),
|
|
50899
|
+
PortalAlias: location.origin
|
|
50900
|
+
}
|
|
50901
|
+
});
|
|
50902
|
+
}
|
|
50903
|
+
return next.handle(request);
|
|
50904
|
+
};
|
|
50905
|
+
return SendAccessTokenInterceptor;
|
|
50906
|
+
}());
|
|
50907
|
+
SendAccessTokenInterceptor.ɵprov = i0.ɵɵdefineInjectable({ factory: function SendAccessTokenInterceptor_Factory() { return new SendAccessTokenInterceptor(i0.ɵɵinject(AuthenService), i0.ɵɵinject(ModuleConfigService)); }, token: SendAccessTokenInterceptor, providedIn: "root" });
|
|
50908
|
+
SendAccessTokenInterceptor.decorators = [
|
|
50909
|
+
{ type: i0.Injectable, args: [{
|
|
50910
|
+
providedIn: 'root'
|
|
50911
|
+
},] }
|
|
50912
|
+
];
|
|
50913
|
+
SendAccessTokenInterceptor.ctorParameters = function () { return [
|
|
50914
|
+
{ type: AuthenService },
|
|
50915
|
+
{ type: ModuleConfigService }
|
|
50916
|
+
]; };
|
|
50917
|
+
|
|
50795
50918
|
var PublicFunction = /** @class */ (function () {
|
|
50796
50919
|
function PublicFunction() {
|
|
50797
50920
|
}
|
|
@@ -51301,7 +51424,7 @@
|
|
|
51301
51424
|
};
|
|
51302
51425
|
return GuardService;
|
|
51303
51426
|
}());
|
|
51304
|
-
GuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GuardService_Factory() { return new GuardService(i0.ɵɵinject(UserService), i0.ɵɵinject(PermissionService), i0.ɵɵinject(
|
|
51427
|
+
GuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GuardService_Factory() { return new GuardService(i0.ɵɵinject(UserService), i0.ɵɵinject(PermissionService), i0.ɵɵinject(i3.Router), i0.ɵɵinject(NotifierService)); }, token: GuardService, providedIn: "root" });
|
|
51305
51428
|
GuardService.decorators = [
|
|
51306
51429
|
{ type: i0.Injectable, args: [{
|
|
51307
51430
|
providedIn: 'root'
|
|
@@ -51310,72 +51433,10 @@
|
|
|
51310
51433
|
GuardService.ctorParameters = function () { return [
|
|
51311
51434
|
{ type: UserService },
|
|
51312
51435
|
{ type: PermissionService },
|
|
51313
|
-
{ type:
|
|
51436
|
+
{ type: i3.Router },
|
|
51314
51437
|
{ type: NotifierService }
|
|
51315
51438
|
]; };
|
|
51316
51439
|
|
|
51317
|
-
var GenericGuardService = /** @class */ (function () {
|
|
51318
|
-
function GenericGuardService(_permissionService, _injector) {
|
|
51319
|
-
this._permissionService = _permissionService;
|
|
51320
|
-
this._injector = _injector;
|
|
51321
|
-
this.storage = sessionStorage;
|
|
51322
|
-
}
|
|
51323
|
-
GenericGuardService.prototype.canActivate = function (route, state) {
|
|
51324
|
-
var _this = this;
|
|
51325
|
-
return new Promise(function (resolve) { return __awaiter(_this, void 0, void 0, function () {
|
|
51326
|
-
var _applicationContext, root, service, permission, isAuthorized, firstTimeLogin;
|
|
51327
|
-
return __generator(this, function (_a) {
|
|
51328
|
-
switch (_a.label) {
|
|
51329
|
-
case 0:
|
|
51330
|
-
_applicationContext = this._injector.get(ApplicationContextService);
|
|
51331
|
-
root = _applicationContext.getRootContext();
|
|
51332
|
-
if (state.url == '/') {
|
|
51333
|
-
resolve(true);
|
|
51334
|
-
return [2 /*return*/];
|
|
51335
|
-
}
|
|
51336
|
-
if ((top.location.href.indexOf('/dashboard') > -1)
|
|
51337
|
-
|| (top.location.href.indexOf('/access-denied') > -1)) {
|
|
51338
|
-
resolve(true);
|
|
51339
|
-
return [2 /*return*/];
|
|
51340
|
-
}
|
|
51341
|
-
service = root.data.currentAppMetadata.code;
|
|
51342
|
-
permission = ("" + root.data.currentAppMetadata.code + state.url.split('#')[0].split('?')[0]).toUpperCase();
|
|
51343
|
-
return [4 /*yield*/, this._permissionService.isAuthorized(service, permission)];
|
|
51344
|
-
case 1:
|
|
51345
|
-
isAuthorized = _a.sent();
|
|
51346
|
-
if (isAuthorized) {
|
|
51347
|
-
resolve(true);
|
|
51348
|
-
}
|
|
51349
|
-
else {
|
|
51350
|
-
firstTimeLogin = localStorage.getItem('firstTimeLogin');
|
|
51351
|
-
if (firstTimeLogin && firstTimeLogin !== '' && firstTimeLogin == 'true') {
|
|
51352
|
-
localStorage.removeItem('firstTimeLogin');
|
|
51353
|
-
top.location.href = '/';
|
|
51354
|
-
}
|
|
51355
|
-
else {
|
|
51356
|
-
top.location.href = '/access-denied';
|
|
51357
|
-
}
|
|
51358
|
-
resolve(false);
|
|
51359
|
-
}
|
|
51360
|
-
resolve(true);
|
|
51361
|
-
return [2 /*return*/];
|
|
51362
|
-
}
|
|
51363
|
-
});
|
|
51364
|
-
}); });
|
|
51365
|
-
};
|
|
51366
|
-
return GenericGuardService;
|
|
51367
|
-
}());
|
|
51368
|
-
GenericGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GenericGuardService_Factory() { return new GenericGuardService(i0.ɵɵinject(PermissionService), i0.ɵɵinject(i0.INJECTOR)); }, token: GenericGuardService, providedIn: "root" });
|
|
51369
|
-
GenericGuardService.decorators = [
|
|
51370
|
-
{ type: i0.Injectable, args: [{
|
|
51371
|
-
providedIn: 'root'
|
|
51372
|
-
},] }
|
|
51373
|
-
];
|
|
51374
|
-
GenericGuardService.ctorParameters = function () { return [
|
|
51375
|
-
{ type: PermissionService },
|
|
51376
|
-
{ type: i0.Injector }
|
|
51377
|
-
]; };
|
|
51378
|
-
|
|
51379
51440
|
var GuardSvService = /** @class */ (function () {
|
|
51380
51441
|
function GuardSvService(_userService, _router, _notifierService) {
|
|
51381
51442
|
this._userService = _userService;
|
|
@@ -51409,7 +51470,7 @@
|
|
|
51409
51470
|
};
|
|
51410
51471
|
return GuardSvService;
|
|
51411
51472
|
}());
|
|
51412
|
-
GuardSvService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GuardSvService_Factory() { return new GuardSvService(i0.ɵɵinject(UserService), i0.ɵɵinject(
|
|
51473
|
+
GuardSvService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GuardSvService_Factory() { return new GuardSvService(i0.ɵɵinject(UserService), i0.ɵɵinject(i3.Router), i0.ɵɵinject(NotifierService)); }, token: GuardSvService, providedIn: "root" });
|
|
51413
51474
|
GuardSvService.decorators = [
|
|
51414
51475
|
{ type: i0.Injectable, args: [{
|
|
51415
51476
|
providedIn: 'root'
|
|
@@ -51417,7 +51478,7 @@
|
|
|
51417
51478
|
];
|
|
51418
51479
|
GuardSvService.ctorParameters = function () { return [
|
|
51419
51480
|
{ type: UserService },
|
|
51420
|
-
{ type:
|
|
51481
|
+
{ type: i3.Router },
|
|
51421
51482
|
{ type: NotifierService }
|
|
51422
51483
|
]; };
|
|
51423
51484
|
|
|
@@ -51482,7 +51543,7 @@
|
|
|
51482
51543
|
};
|
|
51483
51544
|
return DhvinhGuardService;
|
|
51484
51545
|
}());
|
|
51485
|
-
DhvinhGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DhvinhGuardService_Factory() { return new DhvinhGuardService(i0.ɵɵinject(UserService), i0.ɵɵinject(PermissionService), i0.ɵɵinject(
|
|
51546
|
+
DhvinhGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DhvinhGuardService_Factory() { return new DhvinhGuardService(i0.ɵɵinject(UserService), i0.ɵɵinject(PermissionService), i0.ɵɵinject(i3.Router), i0.ɵɵinject(NotifierService)); }, token: DhvinhGuardService, providedIn: "root" });
|
|
51486
51547
|
DhvinhGuardService.decorators = [
|
|
51487
51548
|
{ type: i0.Injectable, args: [{
|
|
51488
51549
|
providedIn: 'root'
|
|
@@ -51491,7 +51552,7 @@
|
|
|
51491
51552
|
DhvinhGuardService.ctorParameters = function () { return [
|
|
51492
51553
|
{ type: UserService },
|
|
51493
51554
|
{ type: PermissionService },
|
|
51494
|
-
{ type:
|
|
51555
|
+
{ type: i3.Router },
|
|
51495
51556
|
{ type: NotifierService }
|
|
51496
51557
|
]; };
|
|
51497
51558
|
|
|
@@ -52853,8 +52914,8 @@
|
|
|
52853
52914
|
exports.ɵem = KySoSimChuKyUserService;
|
|
52854
52915
|
exports.ɵen = FileKySoSimComponent;
|
|
52855
52916
|
exports.ɵeo = KySoSimSignPDFService;
|
|
52856
|
-
exports.ɵep =
|
|
52857
|
-
exports.ɵeq =
|
|
52917
|
+
exports.ɵep = CheckReadyComponent;
|
|
52918
|
+
exports.ɵeq = SendAccessTokenInterceptor;
|
|
52858
52919
|
exports.ɵer = LogInterceptor;
|
|
52859
52920
|
exports.ɵes = PermissionUtilsInterceptor;
|
|
52860
52921
|
exports.ɵf = AfterViewCheckedComponent;
|