tnx-shared 5.0.64 → 5.0.66

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.
@@ -28,6 +28,7 @@
28
28
 
29
29
  var stringify__default = /*#__PURE__*/_interopDefaultLegacy(stringify);
30
30
  var moment___namespace = /*#__PURE__*/_interopNamespace(moment_);
31
+ var moment___default = /*#__PURE__*/_interopDefaultLegacy(moment_);
31
32
  var FileSaver__default = /*#__PURE__*/_interopDefaultLegacy(FileSaver);
32
33
  var printJS___default = /*#__PURE__*/_interopDefaultLegacy(printJS_);
33
34
  var printJS___namespace = /*#__PURE__*/_interopNamespace(printJS_);
@@ -32546,7 +32547,24 @@
32546
32547
  if (dataSource === void 0) { dataSource = []; }
32547
32548
  this._dataSource = dataSource;
32548
32549
  this._oldValue = this._value;
32549
- this._value = dataSource.map(function (item) { return item.id; });
32550
+ var value = [];
32551
+ dataSource.forEach(function (item) {
32552
+ value.push(item.id);
32553
+ if (item.name) {
32554
+ item.nameWithoutExtension = item.name;
32555
+ var index = item.name.lastIndexOf('.');
32556
+ if (index > -1) {
32557
+ item.nameWithoutExtension = item.name.substring(0, index);
32558
+ }
32559
+ if (item.extension) {
32560
+ item.extension = item.extension.toLowerCase();
32561
+ }
32562
+ item.tailFile = item.name.substring(index);
32563
+ item.tailFileUpper = item.tailFile.toUpperCase();
32564
+ item.isFile = item.fileExplorerItemType == FileExplorerItemType.File;
32565
+ }
32566
+ });
32567
+ this._value = value;
32550
32568
  if (this._oldValue != null) {
32551
32569
  if (JSON.stringify(this._oldValue) != JSON.stringify(this._value)) {
32552
32570
  this.fireEventChange();
@@ -32666,6 +32684,10 @@
32666
32684
  show: false,
32667
32685
  formData: {}
32668
32686
  };
32687
+ this.forms[this.formIds.signatureDetail] = {
32688
+ header: 'Thông tin chữ ký số',
32689
+ show: false,
32690
+ };
32669
32691
  this.forms[this.formIds.fileVersionList] = {
32670
32692
  header: 'Danh sách phiên bản',
32671
32693
  show: false,
@@ -33179,32 +33201,71 @@
33179
33201
  // TODO: Lưu ý xử lý trường double click vào nút
33180
33202
  FileManagerComponent.prototype.signFile = function (file) {
33181
33203
  var _this = this;
33182
- this._notifierService.showConfirm('Bạn có chắc chắn muốn ký số văn bản này?').then(function (rs) {
33183
- if (rs) {
33184
- _this._fileExplorerService.generateLinkDownload({
33185
- fileId: file.id
33186
- }).then(function (rs) {
33187
- var url = _this._fileExplorerService.getDownloadForSignUrl(rs.data);
33188
- var prms = {};
33189
- prms['FileUploadHandler'] = _this._moduleConfig.environment.apiDomain.fileEndpoint + "/" + _this._moduleConfig.environment.apiVersion + "/KySoFile/SavePhysicalSignedFile";
33190
- prms['SessionId'] = '';
33191
- prms['FileName'] = url;
33192
- // tslint:disable-next-line: variable-name
33193
- var json_prms = JSON.stringify(prms);
33194
- vgca_sign_approved(json_prms, function (result) {
33195
- var resultObj = JSON.parse(result);
33196
- if (resultObj.FileServer != '') {
33197
- _this._fileExplorerService.saveSignedFile({
33198
- sourceFile: file,
33199
- tempFileId: resultObj.FileServer
33200
- }).then(function (rss) {
33201
- _this._notifierService.showSuccess('Ký số thành công');
33202
- });
33204
+ this._notifierService.showConfirm('Bạn có chắc chắn muốn ký số văn bản này?').then(function (rs) { return __awaiter(_this, void 0, void 0, function () {
33205
+ var sourceFileId, sourceFile_1, rsConvert, e_1;
33206
+ var _this = this;
33207
+ return __generator(this, function (_b) {
33208
+ switch (_b.label) {
33209
+ case 0:
33210
+ if (!rs) return [3 /*break*/, 5];
33211
+ sourceFileId = file.id;
33212
+ sourceFile_1 = file;
33213
+ if (!this._fileExplorerService.needConvertBeforeSign(file.name)) return [3 /*break*/, 4];
33214
+ _b.label = 1;
33215
+ case 1:
33216
+ _b.trys.push([1, 3, , 4]);
33217
+ return [4 /*yield*/, this._fileExplorerService.convertDocumentToPdfAndSave({
33218
+ id: sourceFileId,
33219
+ name: this._fileExplorerService.changeFileExtension(file.name, 'pdf'),
33220
+ folderId: file.parentFolderId,
33221
+ ownerType: this._userService.getCurrentUser().userId.toString(),
33222
+ })];
33223
+ case 2:
33224
+ rsConvert = _b.sent();
33225
+ if (!rsConvert || !rsConvert.success) {
33226
+ this._notifierService.showWarning("C\u00F3 l\u1ED7i x\u1EA3y ra khi chuy\u1EC3n \u0111\u1ED5i t\u00E0i li\u1EC7u " + file.name + " th\u00E0nh pdf \u0111\u1EC3 k\u00FD. Vui l\u00F2ng th\u1EED l\u1EA1i sau");
33227
+ return [2 /*return*/];
33203
33228
  }
33204
- });
33205
- });
33206
- }
33207
- });
33229
+ else {
33230
+ this._notifierService.showSuccess("Chuy\u1EC3n \u0111\u1ED5i t\u00E0i li\u1EC7u " + file.name + " th\u00E0nh pdf th\u00E0nh c\u00F4ng");
33231
+ sourceFileId = rsConvert.data;
33232
+ sourceFile_1 = { id: sourceFileId };
33233
+ this._triggerProcessData();
33234
+ }
33235
+ return [3 /*break*/, 4];
33236
+ case 3:
33237
+ e_1 = _b.sent();
33238
+ this._notifierService.showWarning("C\u00F3 l\u1ED7i x\u1EA3y ra khi chuy\u1EC3n \u0111\u1ED5i t\u00E0i li\u1EC7u " + file.name + " th\u00E0nh pdf \u0111\u1EC3 k\u00FD. Vui l\u00F2ng th\u1EED l\u1EA1i sau");
33239
+ return [2 /*return*/];
33240
+ case 4:
33241
+ this._fileExplorerService.generateLinkDownload({
33242
+ fileId: sourceFileId,
33243
+ }).then(function (rs) {
33244
+ var url = _this._downloadLinkService.getDownloadForSignUrl(rs.data);
33245
+ var prms = {};
33246
+ prms['FileUploadHandler'] = _this._moduleConfig.environment.apiDomain.fileEndpoint + "/" + _this._moduleConfig.environment.apiVersion + "/KySoFile/SavePhysicalSignedFile";
33247
+ prms['SessionId'] = '';
33248
+ prms['FileName'] = url;
33249
+ // tslint:disable-next-line: variable-name
33250
+ var json_prms = JSON.stringify(prms);
33251
+ vgca_sign_approved(json_prms, function (result) {
33252
+ var resultObj = JSON.parse(result);
33253
+ if (resultObj.FileServer != '') {
33254
+ _this._fileExplorerService.saveSignedFile({
33255
+ sourceFile: sourceFile_1,
33256
+ tempFileId: resultObj.FileServer,
33257
+ }).then(function (rss) {
33258
+ _this._triggerProcessData();
33259
+ _this._notifierService.showSuccess('Ký số thành công');
33260
+ });
33261
+ }
33262
+ });
33263
+ });
33264
+ _b.label = 5;
33265
+ case 5: return [2 /*return*/];
33266
+ }
33267
+ });
33268
+ }); });
33208
33269
  };
33209
33270
  FileManagerComponent.prototype.shareFolder = function (file) {
33210
33271
  return __awaiter(this, void 0, void 0, function () {
@@ -33231,7 +33292,7 @@
33231
33292
  };
33232
33293
  FileManagerComponent.prototype.viewListSign = function (e, signatures) {
33233
33294
  e.stopPropagation();
33234
- this.forms.signatureDetail.data = signatures;
33295
+ this.model.advanceData = signatures;
33235
33296
  this.forms.signatureDetail.show = true;
33236
33297
  };
33237
33298
  FileManagerComponent.prototype.onRowSelect = function (evt) {
@@ -33257,8 +33318,8 @@
33257
33318
  };
33258
33319
  FileManagerComponent.prototype.signFileMultiple = function (lstFile) {
33259
33320
  return __awaiter(this, void 0, void 0, function () {
33260
- var prms, rs, lstFile_1, lstFile_1_1, file, sourceFileId, sourceFile, rsConvert, result, url, e_1, result, url, e_2_1, json_prms;
33261
- var e_2, _b;
33321
+ var prms, rs, lstFile_1, lstFile_1_1, file, sourceFileId, sourceFile, rsConvert, result, url, e_2, result, url, e_3_1, json_prms;
33322
+ var e_3, _b;
33262
33323
  var _this = this;
33263
33324
  return __generator(this, function (_c) {
33264
33325
  switch (_c.label) {
@@ -33312,7 +33373,7 @@
33312
33373
  _c.label = 8;
33313
33374
  case 8: return [3 /*break*/, 10];
33314
33375
  case 9:
33315
- e_1 = _c.sent();
33376
+ e_2 = _c.sent();
33316
33377
  this._notifierService.showWarning("C\u00F3 l\u1ED7i x\u1EA3y ra khi chuy\u1EC3n \u0111\u1ED5i t\u00E0i li\u1EC7u " + file.name + " th\u00E0nh pdf \u0111\u1EC3 k\u00FD. Vui l\u00F2ng th\u1EED l\u1EA1i sau");
33317
33378
  return [3 /*break*/, 13];
33318
33379
  case 10: return [3 /*break*/, 13];
@@ -33333,14 +33394,14 @@
33333
33394
  return [3 /*break*/, 3];
33334
33395
  case 14: return [3 /*break*/, 17];
33335
33396
  case 15:
33336
- e_2_1 = _c.sent();
33337
- e_2 = { error: e_2_1 };
33397
+ e_3_1 = _c.sent();
33398
+ e_3 = { error: e_3_1 };
33338
33399
  return [3 /*break*/, 17];
33339
33400
  case 16:
33340
33401
  try {
33341
33402
  if (lstFile_1_1 && !lstFile_1_1.done && (_b = lstFile_1.return)) _b.call(lstFile_1);
33342
33403
  }
33343
- finally { if (e_2) throw e_2.error; }
33404
+ finally { if (e_3) throw e_3.error; }
33344
33405
  return [7 /*endfinally*/];
33345
33406
  case 17:
33346
33407
  json_prms = JSON.stringify(prms);
@@ -33378,7 +33439,7 @@
33378
33439
  { type: i0.Component, args: [{
33379
33440
  // tslint:disable-next-line: component-selector
33380
33441
  selector: 'file-manager',
33381
- template: "<div *ngIf=\"layout == _layout.LIST\" class=\"full-layout\" [class.readonly]=\"readonly\">\r\n <div class=\"p-grid fm-toolbar\">\r\n <div class=\"fm-toolbar-path\">\r\n <p-breadcrumb class=\"customBreadCrumb\" [model]=\"data.breadcrumbs\"></p-breadcrumb>\r\n </div>\r\n <div *ngIf=\"!readonly && rootFolderId\" class=\"fm-toolbar-buttons\">\r\n <button *ngIf=\"!hiddenCreateFolder\" pButton type=\"button\" pTooltip=\"T\u1EA1o th\u01B0 m\u1EE5c\" tooltipPosition=\"top\"\r\n icon=\"pi pi-folder\" class=\"p-button-text p-button-rounded\" iconPos=\"left\" (click)=\"createFolder()\">\r\n </button>\r\n\r\n <button pButton icon=\"pi pi-cloud-upload\" pTooltip=\"T\u1EA3i l\u00EAn\" tooltipPosition=\"top\" type=\"button\"\r\n class=\"p-button-rounded p-button-text p-button-primary\" (click)=\"selectFile()\"></button>\r\n\r\n <button *ngIf=\"canSelect()\" class=\"p-button-rounded p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"Di chuy\u1EC3n\" tooltipPosition=\"top\" icon=\"fas fa-arrows-alt\" iconPos=\"left\"\r\n (click)=\"moveExplorerItems()\">\r\n </button>\r\n\r\n <ng-container *ngIf=\"canSetMove()\">\r\n <button class=\"p-button-rounded p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"\u0110\u1EB7t \u1EDF \u0111\u00E2y\" tooltipPosition=\"top\" icon=\"far fa-hand-paper\" iconPos=\"left\"\r\n (click)=\"setMoveExplorerItems()\">\r\n </button>\r\n\r\n <button icon=\"pi pi-undo\" pButton class=\"p-button-rounded p-button-text p-button-secondary\"\r\n type=\"button\" pTooltip=\"B\u1ECF qua\" tooltipPosition=\"top\" (click)=\"cancelMove()\">\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"hasSelect()\">\r\n <button class=\"p-button-rounded 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\"\r\n (click)=\"downloadMultiple()\">\r\n </button>\r\n <button *ngIf=\"!control.uploadOnly\" class=\"p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"K\u00FD s\u1ED1 nhi\u1EC1u\" tooltipPosition=\"top\" icon=\"fas fa-signature\" iconPos=\"left\"\r\n label=\"K\u00FD s\u1ED1 nhi\u1EC1u\" (click)=\"signMultiple()\">\r\n </button>\r\n <button pButton type=\"button\" pTooltip=\"{{ 'X\u00F3a' | translate }}\" tooltipPosition=\"top\"\r\n icon=\"pi pi-trash\" iconPos=\"left\" class=\"p-button-rounded p-button-text p-button-danger\"\r\n (click)=\"deleteMutiple(model.selectedItems)\"></button>\r\n </ng-container>\r\n </div>\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 (onReload)=\"_triggerProcessData($event)\" (onRowSelect)=\"onRowSelect($event)\">\r\n\r\n <ng-template #explorerItem let-rowData='rowData' let-col='col'>\r\n <span class=\"pull-left file-ex-icon\" [innerHTML]=\"rowData.name | fileIcon : !rowData.isFile\"\r\n (click)=\"openObject(rowData)\">\r\n </span>\r\n\r\n <span class=\"{{rowData.class}} file-ex-name\" (click)=\"openObject(rowData)\">\r\n {{rowData.name}}\r\n <div *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 </div>\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 <button class=\"p-button-rounded p-button-text\" pButton type=\"button\" tooltipPosition=\"top\"\r\n pTooltip=\"{{getButtonTooltip(rowData)}}\" icon=\"{{getButtonIcon(rowData)}}\"\r\n (click)=\"onButtonClick(rowData)\"></button>\r\n\r\n <ng-container *ngIf=\"!readonly\">\r\n <button class=\"p-button-danger p-button-rounded p-button-text\" pButton type=\"button\"\r\n pTooltip=\"X\u00F3a\" tooltipPosition=\"top\" icon=\"pi pi-trash\"\r\n (click)=\"deleteFile(rowData)\"></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 </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 class=\"nfl-toolbar\">\r\n <button *ngIf=\"!readonly\" type=\"button\" pButton class=\"p-button-text p-button-info link-or-action\"\r\n icon=\"fas fa-cloud-upload-alt\" label=\"T\u1EA3i l\u00EAn\" (click)=\"selectFile()\"></button>\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\">\r\n </span>\r\n <a class=\"{{rowData.class}} file-ex-name\" (click)=\"openObject(rowData)\">\r\n <span>{{rowData.name}}</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 </div>\r\n\r\n <div 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\" pButton type=\"button\" tooltipPosition=\"top\"\r\n pTooltip=\"{{getButtonTooltip(rowData)}}\" icon=\"{{getButtonIcon(rowData)}}\"\r\n (click)=\"onButtonClick(rowData)\"></button>\r\n\r\n <button class=\"p-button-danger p-button-rounded p-button-text\" pButton type=\"button\" pTooltip=\"X\u00F3a\"\r\n tooltipPosition=\"top\" icon=\"pi pi-trash\" (click)=\"deleteFile(rowData)\"></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 </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<p-fileUpload #fileControl [name]=\"fileInForm\" mode=\"basic\" [ngStyle]=\"{'display': 'none'}\" [chooseLabel]=\"chooseLabel\"\r\n [multiple]=\"control?control.multiple:false\" [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\"\r\n [model]=\"forms.fileViewer.formData\" [readonly]=\"readonly\" (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<!--<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<signature-detail *ngIf=\"forms.signatureDetail.show\" [parentDataModel]=\"model\" [parentDataContext]=\"context\"\r\n [model]=\"forms.signatureDetail.formData\">\r\n</signature-detail> -->",
33442
+ template: "<div *ngIf=\"layout == _layout.LIST\" class=\"full-layout\" [class.readonly]=\"readonly\">\r\n <div class=\"p-grid fm-toolbar\">\r\n <div class=\"fm-toolbar-path\">\r\n <p-breadcrumb class=\"customBreadCrumb\" [model]=\"data.breadcrumbs\"></p-breadcrumb>\r\n </div>\r\n <div *ngIf=\"!readonly && rootFolderId\" class=\"fm-toolbar-buttons\">\r\n <button *ngIf=\"!hiddenCreateFolder\" pButton type=\"button\" pTooltip=\"T\u1EA1o th\u01B0 m\u1EE5c\" tooltipPosition=\"top\"\r\n icon=\"pi pi-folder\" class=\"p-button-text p-button-rounded\" iconPos=\"left\" (click)=\"createFolder()\">\r\n </button>\r\n\r\n <button pButton icon=\"pi pi-cloud-upload\" pTooltip=\"T\u1EA3i l\u00EAn\" tooltipPosition=\"top\" type=\"button\"\r\n class=\"p-button-rounded p-button-text p-button-primary\" (click)=\"selectFile()\"></button>\r\n\r\n <button *ngIf=\"canSelect()\" class=\"p-button-rounded p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"Di chuy\u1EC3n\" tooltipPosition=\"top\" icon=\"fas fa-arrows-alt\" iconPos=\"left\"\r\n (click)=\"moveExplorerItems()\">\r\n </button>\r\n\r\n <ng-container *ngIf=\"canSetMove()\">\r\n <button class=\"p-button-rounded p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"\u0110\u1EB7t \u1EDF \u0111\u00E2y\" tooltipPosition=\"top\" icon=\"far fa-hand-paper\" iconPos=\"left\"\r\n (click)=\"setMoveExplorerItems()\">\r\n </button>\r\n\r\n <button icon=\"pi pi-undo\" pButton class=\"p-button-rounded p-button-text p-button-secondary\"\r\n type=\"button\" pTooltip=\"B\u1ECF qua\" tooltipPosition=\"top\" (click)=\"cancelMove()\">\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"hasSelect()\">\r\n <button class=\"p-button-rounded 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\"\r\n (click)=\"downloadMultiple()\">\r\n </button>\r\n <button *ngIf=\"!control.uploadOnly\" class=\"p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"K\u00FD s\u1ED1 nhi\u1EC1u\" tooltipPosition=\"top\" icon=\"fas fa-signature\" iconPos=\"left\"\r\n label=\"K\u00FD s\u1ED1 nhi\u1EC1u\" (click)=\"signMultiple()\">\r\n </button>\r\n <button pButton type=\"button\" pTooltip=\"{{ 'X\u00F3a' | translate }}\" tooltipPosition=\"top\"\r\n icon=\"pi pi-trash\" iconPos=\"left\" class=\"p-button-rounded p-button-text p-button-danger\"\r\n (click)=\"deleteMutiple(model.selectedItems)\"></button>\r\n </ng-container>\r\n </div>\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 (onReload)=\"_triggerProcessData($event)\" (onRowSelect)=\"onRowSelect($event)\">\r\n\r\n <ng-template #explorerItem let-rowData='rowData' let-col='col'>\r\n <span class=\"pull-left file-ex-icon\" [innerHTML]=\"rowData.name | fileIcon : !rowData.isFile\"\r\n (click)=\"openObject(rowData)\">\r\n </span>\r\n\r\n <span class=\"{{rowData.class}} file-ex-name\" (click)=\"openObject(rowData)\">\r\n {{rowData.name}}\r\n <div *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 </div>\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 <button class=\"p-button-rounded p-button-text\" pButton type=\"button\" tooltipPosition=\"top\"\r\n pTooltip=\"{{getButtonTooltip(rowData)}}\" icon=\"{{getButtonIcon(rowData)}}\"\r\n (click)=\"onButtonClick(rowData)\"></button>\r\n\r\n <ng-container *ngIf=\"!readonly\">\r\n <button class=\"p-button-danger p-button-rounded p-button-text\" pButton type=\"button\"\r\n pTooltip=\"X\u00F3a\" tooltipPosition=\"top\" icon=\"pi pi-trash\"\r\n (click)=\"deleteFile(rowData)\"></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 </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 class=\"nfl-toolbar\">\r\n <button *ngIf=\"!readonly\" type=\"button\" pButton class=\"p-button-text p-button-info link-or-action\"\r\n icon=\"fas fa-cloud-upload-alt\" label=\"T\u1EA3i l\u00EAn\" (click)=\"selectFile()\"></button>\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\">\r\n </span>\r\n <a class=\"{{rowData.class}} file-ex-name\" (click)=\"openObject(rowData)\">\r\n <span>{{rowData.name}}</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 </div>\r\n\r\n <div 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\" pButton type=\"button\" tooltipPosition=\"top\"\r\n pTooltip=\"{{getButtonTooltip(rowData)}}\" icon=\"{{getButtonIcon(rowData)}}\"\r\n (click)=\"onButtonClick(rowData)\"></button>\r\n\r\n <button class=\"p-button-danger p-button-rounded p-button-text\" pButton type=\"button\" pTooltip=\"X\u00F3a\"\r\n tooltipPosition=\"top\" icon=\"pi pi-trash\" (click)=\"deleteFile(rowData)\"></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 </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<p-fileUpload #fileControl [name]=\"fileInForm\" mode=\"basic\" [ngStyle]=\"{'display': 'none'}\" [chooseLabel]=\"chooseLabel\"\r\n [multiple]=\"control?control.multiple:false\" [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\"\r\n [model]=\"forms.fileViewer.formData\" [readonly]=\"readonly\" (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<!--<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<!-- 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>",
33382
33443
  providers: [
33383
33444
  {
33384
33445
  provide: forms.NG_VALUE_ACCESSOR,
@@ -45451,6 +45512,70 @@
45451
45512
  { type: UserService }
45452
45513
  ]; };
45453
45514
 
45515
+ // fix for build prod
45516
+ var moment$1 = moment___default['default'];
45517
+ var SignatureDetailComponent = /** @class */ (function (_super) {
45518
+ __extends(SignatureDetailComponent, _super);
45519
+ function SignatureDetailComponent(injector) {
45520
+ return _super.call(this, injector) || this;
45521
+ }
45522
+ SignatureDetailComponent.prototype.ngOnInit = function () {
45523
+ this.model.data = this.parentModel.advanceData;
45524
+ this.buildTree();
45525
+ };
45526
+ SignatureDetailComponent.prototype.buildTree = function () {
45527
+ var nodes = [];
45528
+ for (var ind in this.model.data) {
45529
+ var item = this.model.data[ind];
45530
+ var childNodes = { expanded: true, children: [] };
45531
+ childNodes.label = "" + item.reason;
45532
+ childNodes.expandedIcon = 'fas fa-signature';
45533
+ childNodes.collapsedIcon = 'fas fa-signature';
45534
+ childNodes.leaf = false;
45535
+ if (item.reason) {
45536
+ childNodes.children.push({
45537
+ label: 'Người ký: ' + item.certificate.subject.nameOfSigner,
45538
+ expandedIcon: 'fas fa-user-tag',
45539
+ collapsedIcon: 'fas fa-user-tag',
45540
+ leaf: true
45541
+ });
45542
+ }
45543
+ childNodes.children.push({
45544
+ label: 'Đơn vị: ' + item.certificate.subject.organizationUnit + ' - ' + item.certificate.subject.organization,
45545
+ expandedIcon: 'fas fa-building',
45546
+ collapsedIcon: 'fas fa-building',
45547
+ leaf: true
45548
+ });
45549
+ childNodes.children.push({
45550
+ label: 'Chứng thư cấp bởi: ' + item.certificate.issuerDN.nameOfIssuer,
45551
+ expandedIcon: 'fas fa-certificate',
45552
+ collapsedIcon: 'fas fa-certificate',
45553
+ leaf: true
45554
+ });
45555
+ childNodes.children.push({
45556
+ label: 'Thời gian ký: ' + moment$1(item.signDate).format('D/MM/Y hh:mm:ss Z'),
45557
+ expandedIcon: 'fas fa-clock',
45558
+ collapsedIcon: 'fas fa-clock',
45559
+ leaf: true
45560
+ });
45561
+ nodes.push(childNodes);
45562
+ }
45563
+ this.model.dataSource = nodes;
45564
+ };
45565
+ return SignatureDetailComponent;
45566
+ }(ComponentBase));
45567
+ SignatureDetailComponent.decorators = [
45568
+ { type: i0.Component, args: [{
45569
+ selector: 'signature-detail',
45570
+ template: "<div class=\"tree-signature\">\r\n <p-tree [value]=\"model.dataSource\" [filter]=\"true\" [emptyMessage]=\"'Kh\u00F4ng c\u00F3 ch\u1EEF k\u00FD'\" styleClass=\"signature-tree\">\r\n </p-tree>\r\n</div>",
45571
+ providers: [ComponentContextService],
45572
+ styles: [":host::ng-deep .signature-tree{border:none;width:100%}:host::ng-deep .signature-tree .ui-treenode-icon{color:#888;padding-right:10px}:host::ng-deep .signature-tree span.fas.fa-signature+span{font-weight:700}:host::ng-deep .signature-tree span.ui-treenode-icon.fas.fa-signature{color:#212529!important;padding-left:5px}:host::ng-deep .signature-tree span.ui-tree-toggler{color:#212529!important}"]
45573
+ },] }
45574
+ ];
45575
+ SignatureDetailComponent.ctorParameters = function () { return [
45576
+ { type: i0.Injector }
45577
+ ]; };
45578
+
45454
45579
  function coreDeclaration() {
45455
45580
  return [
45456
45581
  AddressComponent,
@@ -45580,7 +45705,8 @@
45580
45705
  FilePickerDialogComponent,
45581
45706
  AddNewsComponent,
45582
45707
  CommonDashboardComponent,
45583
- NotFoundComponent
45708
+ NotFoundComponent,
45709
+ SignatureDetailComponent
45584
45710
  ];
45585
45711
  }
45586
45712
  function coreModuleImport() {
@@ -47933,10 +48059,11 @@
47933
48059
  exports.ɵds = AddNewsComponent;
47934
48060
  exports.ɵdt = ArticleService;
47935
48061
  exports.ɵdu = NewsCategoryService;
47936
- exports.ɵdv = CheckReadyComponent;
47937
- exports.ɵdw = SendAccessTokenInterceptor;
47938
- exports.ɵdx = LogInterceptor;
47939
- exports.ɵdy = PermissionUtilsInterceptor;
48062
+ exports.ɵdv = SignatureDetailComponent;
48063
+ exports.ɵdw = CheckReadyComponent;
48064
+ exports.ɵdx = SendAccessTokenInterceptor;
48065
+ exports.ɵdy = LogInterceptor;
48066
+ exports.ɵdz = PermissionUtilsInterceptor;
47940
48067
  exports.ɵe = CanBo_HoSoService;
47941
48068
  exports.ɵf = AfterViewCheckedComponent;
47942
48069
  exports.ɵg = AdvanceSearchComponent;