tnx-shared 5.3.333 → 5.3.335

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.
@@ -35,6 +35,14 @@ export class WorkflowPermissionDetailService extends BaseService {
35
35
  return __awaiter(this, void 0, void 0, function* () {
36
36
  if (callBackWhenNotHaveStatus == null) {
37
37
  callBackWhenNotHaveStatus = (itemStatus, rowItem) => {
38
+ if (rowItem[fieldKey]
39
+ && rowItem.workflowCode
40
+ && rowItem.currentStateCode) {
41
+ itemStatus.textTrangThai = 'Đã bắt đầu quy trình';
42
+ itemStatus.trangThai = rowItem.currentStateCode;
43
+ itemStatus.workflowCode = rowItem.workflowCode;
44
+ itemStatus.permission = PermissionBase.READ;
45
+ }
38
46
  };
39
47
  }
40
48
  const itemId = data[fieldKey];
@@ -49,7 +57,7 @@ export class WorkflowPermissionDetailService extends BaseService {
49
57
  else {
50
58
  sorts.push(new Sort({ field: 'permission', dir: -1 }), new Sort({ field: 'inComing', dir: -1 }));
51
59
  }
52
- const dataStatus = (yield this.getAll(filters, 'itemId,userId,trangThai,textTrangThai,workflowCode,permission', sorts)).data;
60
+ const dataStatus = (yield this.getAll(filters, 'itemId,userId,trangThai,textTrangThai,workflowCode,permission', sorts, 'ForCrudList')).data;
53
61
  if (dataStatus == null) {
54
62
  const notifierService = this._injector.get(NotifierService);
55
63
  return notifierService.showWarning('Không lấy được thông tin trạng thái hiện tại của bản ghi');
@@ -63,10 +71,11 @@ export class WorkflowPermissionDetailService extends BaseService {
63
71
  textTrangThai: 'Chưa chạy quy trình'
64
72
  };
65
73
  if (itemId) {
66
- const lstItemStatus = dataStatus.filter(q => q.itemId == itemId && q.userId == userIdCurrent);
67
- if (ignoreWorkflow === true && lstItemStatus.length === 0) {
68
- lstItemStatus.push(...dataStatus.filter(q => q.itemId === itemId));
69
- }
74
+ // const lstItemStatus = dataStatus.filter(q => q.itemId == itemId && q.userId == userIdCurrent);
75
+ // if (ignoreWorkflow === true && lstItemStatus.length === 0) {
76
+ // lstItemStatus.push(...dataStatus.filter(q => q.itemId === itemId));
77
+ // }
78
+ const lstItemStatus = dataStatus.filter(q => q.itemId === itemId);
70
79
  // let itemStatus = null;
71
80
  if (lstItemStatus.length) {
72
81
  itemStatus = lstItemStatus.find(q => (q.permission & PermissionBase.EDIT) == PermissionBase.EDIT);
@@ -111,6 +120,14 @@ export class WorkflowPermissionDetailService extends BaseService {
111
120
  return __awaiter(this, void 0, void 0, function* () {
112
121
  if (callBackWhenNotHaveStatus == null) {
113
122
  callBackWhenNotHaveStatus = (itemStatus, rowItem) => {
123
+ if (rowItem[fieldKey]
124
+ && rowItem.workflowCode
125
+ && rowItem.currentStateCode) {
126
+ itemStatus.textTrangThai = 'Đã bắt đầu quy trình';
127
+ itemStatus.trangThai = rowItem.currentStateCode;
128
+ itemStatus.workflowCode = rowItem.workflowCode;
129
+ itemStatus.permission = PermissionBase.READ;
130
+ }
114
131
  };
115
132
  }
116
133
  const lstItemId = data.filter(q => q[fieldKey]).map(q => q[fieldKey]);
@@ -122,13 +139,11 @@ export class WorkflowPermissionDetailService extends BaseService {
122
139
  filters.push(this.newFilter('tableName', Operator.equal, this.tableName));
123
140
  }
124
141
  const sorts = [];
125
- if (!ignoreWorkflow) {
126
- filters.push(this.newFilter('userId', Operator.equal, userIdCurrent));
127
- }
128
- else {
129
- sorts.push(new Sort({ field: 'permission', dir: -1 }), new Sort({ field: 'inComing', dir: -1 }));
130
- }
131
- const dataStatus = (yield this.getAll(filters, 'itemId,userId,trangThai,textTrangThai,workflowCode,permission', sorts)).data;
142
+ // if (!ignoreWorkflow) {
143
+ // filters.push(this.newFilter('userId', Operator.equal, userIdCurrent));
144
+ // }
145
+ sorts.push(new Sort({ field: 'permission', dir: -1 }), new Sort({ field: 'inComing', dir: -1 }));
146
+ const dataStatus = (yield this.getAll(filters, 'itemId,userId,trangThai,textTrangThai,workflowCode,permission', sorts, 'ForCrudList')).data;
132
147
  if (dataStatus == null) {
133
148
  const notifierService = this._injector.get(NotifierService);
134
149
  return notifierService.showWarning('Không lấy được thông tin trạng thái hiện tại của bản ghi');
@@ -151,4 +166,4 @@ WorkflowPermissionDetailService.ctorParameters = () => [
151
166
  { type: Injector },
152
167
  { type: ModuleConfigService }
153
168
  ];
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctcGVybWlzc2lvbi1kZXRhaWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9zZXJ2aWNlcy93b3JrZmxvdy1wZXJtaXNzaW9uLWRldGFpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWxELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQUtyRCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsV0FBVztJQU81RCxZQUNJLElBQWdCLEVBQ2hCLFFBQWtCLEVBQ2xCLG9CQUF5QztRQUV6QyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLElBQUksb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsMkJBQTJCLENBQUMsQ0FBQztRQVZwTCxvQkFBZSxHQUVuQixFQUFFLENBQUM7UUFDUCxlQUFVLEdBQUcsMEJBQTBCLENBQUM7UUFDeEMsY0FB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Q0FBQyxDQUFDO2FBQ2xHO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLHdCQUF3QixDQUN6QixPQUFPLEVBQ1AsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUNqQixhQUFhLEVBQ2IsY0FBYyxFQUNkLFVBQVUsRUFDVix5QkFBeUIsQ0FDNUIsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztLQUFBOzs7O1lBcE1KLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBYlEsVUFBVTtZQUNFLFFBQVE7WUFPcEIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEdW1teVdvcmtmbG93Q29kZSB9IGZyb20gJy4uL2NsYXNzZXMvY29uc3RhbnRzJztcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XG5pbXBvcnQgeyBNb2R1bGVDb25maWcgfSBmcm9tICcuLi9jb25maWdzL21vZHVsZS1jb25maWcnO1xuaW1wb3J0IHsgUGVybWlzc2lvbkJhc2UgfSBmcm9tICcuLi9lbnVtcy9jb21tb24nO1xuaW1wb3J0IHsgU29ydCB9IGZyb20gJy4uL21vZGVscy9ncmlkLWluZm8nO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmllci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd1Blcm1pc3Npb25EZXRhaWxTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICAgIHJlYWRvbmx5IF9tb2R1bGVDb25maWc6IE1vZHVsZUNvbmZpZztcbiAgICBwcml2YXRlIHNlcnZpY2VNYW5hZ2Vyczoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBCYXNlU2VydmljZVxuICAgIH0gPSB7fTtcbiAgICBlbnRpdHlOYW1lID0gJ1dvcmtmbG93UGVybWlzc2lvbkRldGFpbCc7XG4gICAgdGFibGVOYW1lID0gJyc7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaHR0cCwgaW5qZWN0b3IsIGAke19tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi53b3JrZmxvd0VuZHBvaW50fS8ke19tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaVZlcnNpb259L1dvcmtmbG93UGVybWlzc2lvbkRldGFpbGApO1xuICAgICAgICB0aGlzLmVuZFBvaW50ID0gX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQuYXBpRG9tYWluLndvcmtmbG93RW5kcG9pbnQ7XG5cbiAgICAgICAgdGhpcy5fbW9kdWxlQ29uZmlnID0gX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJTZXJ2aWNlKHNldHRpbmdLZXk6IHN0cmluZywgc2VydmljZTogQmFzZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlTWFuYWdlcnNbc2V0dGluZ0tleV0gPSBzZXJ2aWNlO1xuICAgIH1cblxuICAgIGdldEVuZHBvaW50QnlTZXJ2aWNlKHNlcnZpY2U6IEJhc2VTZXJ2aWNlKSB7XG4gICAgICAgIHJldHVybiBgJHtzZXJ2aWNlLmVuZFBvaW50fS8ke3RoaXMuX21vZHVsZUNvbmZpZy5lbnZpcm9ubWVudC5hcGlWZXJzaW9ufWA7XG4gICAgfVxuXG4gICAgY2hhbmdlRW5kcG9pbnQoYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlKTogV29ya2Zsb3dQZXJtaXNzaW9uRGV0YWlsU2VydmljZSB7XG4gICAgICAgIHRoaXMuc2VydmljZVVyaSA9IGAke3RoaXMuZ2V0RW5kcG9pbnRCeVNlcnZpY2UoYmFzZVNlcnZpY2UpfS9Xb3JrZmxvd1Blcm1pc3Npb25EZXRhaWxgO1xuICAgICAgICB0aGlzLnRhYmxlTmFtZSA9IGJhc2VTZXJ2aWNlLmVudGl0eU5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuXG4gICAgYXN5bmMgYXBwZW5kSW5mb0ZvcldvcmtmbG93U2luZ2xlKFxuICAgICAgICB1c2VySWRDdXJyZW50OiBzdHJpbmcsXG4gICAgICAgIGRhdGE6IGFueSxcbiAgICAgICAgZmllbGRLZXk6IHN0cmluZyA9ICdpZCcsXG4gICAgICAgIGlnbm9yZVdvcmtmbG93OiBib29sZWFuID0gZmFsc2UsXG4gICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXM6IChpdGVtU3RhdHVzLCByb3dJdGVtKSA9PiB2b2lkID0gbnVsbFxuICAgICkge1xuICAgICAgICBpZiAoY2FsbEJhY2tXaGVuTm90SGF2ZVN0YXR1cyA9PSBudWxsKSB7XG4gICAgICAgICAgICBjYWxsQmFja1doZW5Ob3RIYXZlU3RhdHVzID0gKGl0ZW1TdGF0dXMsIHJvd0l0ZW0pID0+IHtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbUlkID0gZGF0YVtmaWVsZEtleV07XG4gICAgICAgIGNvbnN0IGZpbHRlcnMgPSBbXG4gICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignaXRlbUlkJywgT3BlcmF0b3IuZXF1YWwsIGl0ZW1JZCksXG4gICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignbm90SW5Xb3JrZmxvdycsIE9wZXJhdG9yLmVxdWFsLCBmYWxzZSksXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IHNvcnRzID0gW107XG4gICAgICAgIGlmICghaWdub3JlV29ya2Zsb3cpIHtcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh0aGlzLm5ld0ZpbHRlcigndXNlcklkJywgT3BlcmF0b3IuZXF1YWwsIHVzZXJJZEN1cnJlbnQpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHNvcnRzLnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IFNvcnQoeyBmaWVsZDogJ3Blcm1pc3Npb24nLCBkaXI6IC0xIH0pLFxuICAgICAgICAgICAgICAgIG5ldyBTb3J0KHsgZmllbGQ6ICdpbkNvbWluZycsIGRpcjogLTEgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGFTdGF0dXM6IGFueVtdID0gKGF3YWl0IHRoaXMuZ2V0QWxsKFxuICAgICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgICAgICdpdGVtSWQsdXNlcklkLHRyYW5nVGhhaSx0ZXh0VHJhbmdUaGFpLHdvcmtmbG93Q29kZSxwZXJtaXNzaW9uJyxcbiAgICAgICAgICAgIHNvcnRzLFxuICAgICAgICApKS5kYXRhO1xuICAgICAgICBpZiAoZGF0YVN0YXR1cyA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub3RpZmllclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoTm90aWZpZXJTZXJ2aWNlKTtcbiAgICAgICAgICAgIHJldHVybiBub3RpZmllclNlcnZpY2Uuc2hvd1dhcm5pbmcoJ0tow7RuZyBs4bqleSDEkcaw4bujYyB0aMO0bmcgdGluIHRy4bqhbmcgdGjDoWkgaGnhu4duIHThuqFpIGPhu6dhIGLhuqNuIGdoaScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hcHBlbmRXb3JrZmxvd0luZm9Ub0l0ZW0oXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgaXRlbUlkLFxuICAgICAgICAgICAgdXNlcklkQ3VycmVudCxcbiAgICAgICAgICAgIGlnbm9yZVdvcmtmbG93LFxuICAgICAgICAgICAgZGF0YVN0YXR1cyxcbiAgICAgICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXNcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmRXb3JrZmxvd0luZm9Ub0l0ZW0oXG4gICAgICAgIGRhdGE6IGFueSxcbiAgICAgICAgaXRlbUlkOiBhbnksXG4gICAgICAgIHVzZXJJZEN1cnJlbnQ6IHN0cmluZyxcbiAgICAgICAgaWdub3JlV29ya2Zsb3c6IGJvb2xlYW4sXG4gICAgICAgIGRhdGFTdGF0dXM6IGFueVtdLFxuICAgICAgICBjYWxsQmFja1doZW5Ob3RIYXZlU3RhdHVzOiAoaXRlbVN0YXR1cywgcm93SXRlbSkgPT4gdm9pZCA9IG51bGxcbiAgICApIHtcbiAgICAgICAgbGV0IGl0ZW1TdGF0dXM6IGFueSA9IHtcbiAgICAgICAgICAgIHRleHRUcmFuZ1RoYWk6ICdDaMawYSBjaOG6oXkgcXV5IHRyw6xuaCdcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoaXRlbUlkKSB7XG4gICAgICAgICAgICBjb25zdCBsc3RJdGVtU3RhdHVzID0gZGF0YVN0YXR1cy5maWx0ZXIocSA9PiBxLml0ZW1JZCA9PSBpdGVtSWQgJiYgcS51c2VySWQgPT0gdXNlcklkQ3VycmVudCk7XG4gICAgICAgICAgICBpZiAoaWdub3JlV29ya2Zsb3cgPT09IHRydWUgJiYgbHN0SXRlbVN0YXR1cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBsc3RJdGVtU3RhdHVzLnB1c2goLi4uZGF0YVN0YXR1cy5maWx0ZXIocSA9PiBxLml0ZW1JZCA9PT0gaXRlbUlkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBsZXQgaXRlbVN0YXR1cyA9IG51bGw7XG4gICAgICAgICAgICBpZiAobHN0SXRlbVN0YXR1cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBpdGVtU3RhdHVzID0gbHN0SXRlbVN0YXR1cy5maW5kKHEgPT4gKHEucGVybWlzc2lvbiAmIFBlcm1pc3Npb25CYXNlLkVESVQpID09IFBlcm1pc3Npb25CYXNlLkVESVQpO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtU3RhdHVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbVN0YXR1cyA9IGxzdEl0ZW1TdGF0dXNbMF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gTuG6v3Uga2jDtG5nIGPDsyBi4bqjbiBnaGkgdHLhuqFuZyB0aMOhaVxuICAgICAgICAvLyBOaMawbmcgxJHDoyB04bqhbyB0YXNrIHLhu5NpIHRow6wgaGnhu4NuIHRo4buLIHRy4bqhbmcgdGjDoWkgXCLEkcOjIHThuqFvIGPDtG5nIHZp4buHY1wiIMSR4buDIHRyw6FuaCB0csaw4budbmcgaOG7o3AgaGnhu4NuIHRo4buLIG7DunQgYuG6r3QgxJHhuqd1IHRo4burYSB0csOqbiBnaWFvIGRp4buHblxuICAgICAgICBpZiAoIWl0ZW1TdGF0dXMudHJhbmdUaGFpKSB7XG4gICAgICAgICAgICBjYWxsQmFja1doZW5Ob3RIYXZlU3RhdHVzKGl0ZW1TdGF0dXMsIGRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YS5fX3RyYW5nVGhhaSA9IGl0ZW1TdGF0dXMudHJhbmdUaGFpO1xuICAgICAgICBkYXRhLl9fdGV4dFRyYW5nVGhhaSA9IGl0ZW1TdGF0dXMudGV4dFRyYW5nVGhhaTtcbiAgICAgICAgaWYgKGl0ZW1TdGF0dXMud29ya2Zsb3dDb2RlID09IER1bW15V29ya2Zsb3dDb2RlKSB7XG4gICAgICAgICAgICBkYXRhLmhpZGRlbldvcmtmbG93QWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBkYXRhLl9fd29ya2Zsb3dDb2RlID0gaXRlbVN0YXR1cy53b3JrZmxvd0NvZGU7XG4gICAgICAgIGRhdGEuX19wZXJtaXNzaW9uID0gaXRlbVN0YXR1cy5wZXJtaXNzaW9uO1xuXG4gICAgICAgIGRhdGEuX19kaXNhYmxlRWRpdCA9IHRydWU7XG4gICAgICAgIGRhdGEuX19kaXNhYmxlRGVsZXRlID0gdHJ1ZTtcbiAgICAgICAgaWYgKGRhdGEuYmFzZVBlcm1pc3Npb24gJiBQZXJtaXNzaW9uQmFzZS5FRElUXG4gICAgICAgICAgICB8fCBkYXRhLl9fcGVybWlzc2lvbiAmIFBlcm1pc3Npb25CYXNlLkVESVRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBkYXRhLl9fZGlzYWJsZUVkaXQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGRhdGEuX19kaXNhYmxlUGVybWlzc2lvbkVkaXQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmJhc2VQZXJtaXNzaW9uICYgUGVybWlzc2lvbkJhc2UuREVMRVRFXG4gICAgICAgICAgICB8fCBkYXRhLl9fcGVybWlzc2lvbiAmIFBlcm1pc3Npb25CYXNlLkRFTEVURVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGRhdGEuX19kaXNhYmxlRGVsZXRlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBkYXRhLl9fZGlzYWJsZVBlcm1pc3Npb25EZWxldGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBM4bqleSB0aMOqbSBjw6FjIHRow7RuZyB0aW4gY+G6p24gY2hvIHF1eSB0csOsbmggbmdoaeG7h3AgduG7pSBjaG8gY8OhYyBi4bqjbiBnaGkgdHJvbmcgZGF0YVxuICAgICAqL1xuICAgIGFzeW5jIGFwcGVuZEluZm9Gb3JXb3JrZmxvdyhcbiAgICAgICAgdXNlcklkQ3VycmVudDogc3RyaW5nLCBkYXRhOiBhbnlbXSxcbiAgICAgICAgZmllbGRLZXk6IHN0cmluZyA9ICdpZCcsXG4gICAgICAgIGlnbm9yZVdvcmtmbG93OiBib29sZWFuID0gZmFsc2UsXG4gICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXM6IChpdGVtU3RhdHVzLCByb3dJdGVtKSA9PiB2b2lkID0gbnVsbFxuICAgICkge1xuICAgICAgICBpZiAoY2FsbEJhY2tXaGVuTm90SGF2ZVN0YXR1cyA9PSBudWxsKSB7XG4gICAgICAgICAgICBjYWxsQmFja1doZW5Ob3RIYXZlU3RhdHVzID0gKGl0ZW1TdGF0dXMsIHJvd0l0ZW0pID0+IHtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbHN0SXRlbUlkID0gZGF0YS5maWx0ZXIocSA9PiBxW2ZpZWxkS2V5XSkubWFwKHEgPT4gcVtmaWVsZEtleV0pO1xuICAgICAgICBsZXQgZmlsdGVycyA9IFtcbiAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdpdGVtSWQnLCBPcGVyYXRvci5pbiwgbHN0SXRlbUlkKSxcbiAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdub3RJbldvcmtmbG93JywgT3BlcmF0b3IuZXF1YWwsIGZhbHNlKSxcbiAgICAgICAgXTtcbiAgICAgICAgaWYgKHRoaXMudGFibGVOYW1lKSB7XG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIoJ3RhYmxlTmFtZScsIE9wZXJhdG9yLmVxdWFsLCB0aGlzLnRhYmxlTmFtZSkpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc29ydHMgPSBbXTtcbiAgICAgICAgaWYgKCFpZ25vcmVXb3JrZmxvdykge1xuICAgICAgICAgICAgZmlsdGVycy5wdXNoKHRoaXMubmV3RmlsdGVyKCd1c2VySWQnLCBPcGVyYXRvci5lcXVhbCwgdXNlcklkQ3VycmVudCkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc29ydHMucHVzaChcbiAgICAgICAgICAgICAgICBuZXcgU29ydCh7IGZpZWxkOiAncGVybWlzc2lvbicsIGRpcjogLTEgfSksXG4gICAgICAgICAgICAgICAgbmV3IFNvcnQoeyBmaWVsZDogJ2luQ29taW5nJywgZGlyOiAtMSB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YVN0YXR1czogYW55W10gPSAoYXdhaXQgdGhpcy5nZXRBbGwoXG4gICAgICAgICAgICBmaWx0ZXJzLFxuICAgICAgICAgICAgJ2l0ZW1JZCx1c2VySWQsdHJhbmdUaGFpLHRleHRUcmFuZ1RoYWksd29ya2Zsb3dDb2RlLHBlcm1pc3Npb24nLFxuICAgICAgICAgICAgc29ydHMsXG4gICAgICAgICkpLmRhdGE7XG4gICAgICAgIGlmIChkYXRhU3RhdHVzID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vdGlmaWVyU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChOb3RpZmllclNlcnZpY2UpO1xuICAgICAgICAgICAgcmV0dXJuIG5vdGlmaWVyU2VydmljZS5zaG93V2FybmluZygnS2jDtG5nIGzhuqV5IMSRxrDhu6NjIHRow7RuZyB0aW4gdHLhuqFuZyB0aMOhaSBoaeG7h24gdOG6oWkgY+G7p2EgYuG6o24gZ2hpJyk7XG4gICAgICAgIH1cbiAgICAgICAgZGF0YS5mb3JFYWNoKHJvd0l0ZW0gPT4ge1xuICAgICAgICAgICAgdGhpcy5hcHBlbmRXb3JrZmxvd0luZm9Ub0l0ZW0oXG4gICAgICAgICAgICAgICAgcm93SXRlbSxcbiAgICAgICAgICAgICAgICByb3dJdGVtW2ZpZWxkS2V5XSxcbiAgICAgICAgICAgICAgICB1c2VySWRDdXJyZW50LFxuICAgICAgICAgICAgICAgIGlnbm9yZVdvcmtmbG93LFxuICAgICAgICAgICAgICAgIGRhdGFTdGF0dXMsXG4gICAgICAgICAgICAgICAgY2FsbEJhY2tXaGVuTm90SGF2ZVN0YXR1c1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIl19
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctcGVybWlzc2lvbi1kZXRhaWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9zZXJ2aWNlcy93b3JrZmxvdy1wZXJtaXNzaW9uLWRldGFpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWxELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQUtyRCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsV0FBVztJQU81RCxZQUNJLElBQWdCLEVBQ2hCLFFBQWtCLEVBQ2xCLG9CQUF5QztRQUV6QyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLElBQUksb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsMkJBQTJCLENBQUMsQ0FBQztRQVZwTCxvQkFBZSxHQUVuQixFQUFFLENBQUM7UUFDUCxlQUFVLEdBQUcsMEJBQTBCLENBQUM7UUFDeEMsY0FB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VSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQzNDLENBQUM7WUFFRixNQUFNLFVBQVUsR0FBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FDeEMsT0FBTyxFQUNQLCtEQUErRCxFQUMvRCxLQUFLLEVBQ0wsYUFBYSxDQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ1IsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFO2dCQUNwQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDNUQsT0FBTyxlQUFlLENBQUMsV0FBVyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7YUFDbEc7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNuQixJQUFJLENBQUMsd0JBQXdCLENBQ3pCLE9BQU8sRUFDUCxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQ2pCLGFBQWEsRUFDYixjQUFjLEVBQ2QsVUFBVSxFQUNWLHlCQUF5QixDQUM1QixDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0tBQUE7Ozs7WUF4TkosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFiUSxVQUFVO1lBQ0UsUUFBUTtZQU9wQixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IER1bW15V29ya2Zsb3dDb2RlIH0gZnJvbSAnLi4vY2xhc3Nlcy9jb25zdGFudHMnO1xuaW1wb3J0IHsgT3BlcmF0b3IgfSBmcm9tICcuLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcbmltcG9ydCB7IE1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZ3MvbW9kdWxlLWNvbmZpZyc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uQmFzZSB9IGZyb20gJy4uL2VudW1zL2NvbW1vbic7XG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtaW5mbyc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZS1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmllclNlcnZpY2UgfSBmcm9tICcuL25vdGlmaWVyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtmbG93UGVybWlzc2lvbkRldGFpbFNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gICAgcmVhZG9ubHkgX21vZHVsZUNvbmZpZzogTW9kdWxlQ29uZmlnO1xuICAgIHByaXZhdGUgc2VydmljZU1hbmFnZXJzOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IEJhc2VTZXJ2aWNlXG4gICAgfSA9IHt9O1xuICAgIGVudGl0eU5hbWUgPSAnV29ya2Zsb3dQZXJtaXNzaW9uRGV0YWlsJztcbiAgICB0YWJsZU5hbWUgPSAnJztcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBfbW9kdWxlQ29uZmlnU2VydmljZTogTW9kdWxlQ29uZmlnU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihodHRwLCBpbmplY3RvciwgYCR7X21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQuYXBpRG9tYWluLndvcmtmbG93RW5kcG9pbnR9LyR7X21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQuYXBpVmVyc2lvbn0vV29ya2Zsb3dQZXJtaXNzaW9uRGV0YWlsYCk7XG4gICAgICAgIHRoaXMuZW5kUG9pbnQgPSBfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlEb21haW4ud29ya2Zsb3dFbmRwb2ludDtcblxuICAgICAgICB0aGlzLl9tb2R1bGVDb25maWcgPSBfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKTtcbiAgICB9XG5cbiAgICByZWdpc3RlclNlcnZpY2Uoc2V0dGluZ0tleTogc3RyaW5nLCBzZXJ2aWNlOiBCYXNlU2VydmljZSkge1xuICAgICAgICB0aGlzLnNlcnZpY2VNYW5hZ2Vyc1tzZXR0aW5nS2V5XSA9IHNlcnZpY2U7XG4gICAgfVxuXG4gICAgZ2V0RW5kcG9pbnRCeVNlcnZpY2Uoc2VydmljZTogQmFzZVNlcnZpY2UpIHtcbiAgICAgICAgcmV0dXJuIGAke3NlcnZpY2UuZW5kUG9pbnR9LyR7dGhpcy5fbW9kdWxlQ29uZmlnLmVudmlyb25tZW50LmFwaVZlcnNpb259YDtcbiAgICB9XG5cbiAgICBjaGFuZ2VFbmRwb2ludChiYXNlU2VydmljZTogQmFzZVNlcnZpY2UpOiBXb3JrZmxvd1Blcm1pc3Npb25EZXRhaWxTZXJ2aWNlIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlVXJpID0gYCR7dGhpcy5nZXRFbmRwb2ludEJ5U2VydmljZShiYXNlU2VydmljZSl9L1dvcmtmbG93UGVybWlzc2lvbkRldGFpbGA7XG4gICAgICAgIHRoaXMudGFibGVOYW1lID0gYmFzZVNlcnZpY2UuZW50aXR5TmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG5cbiAgICBhc3luYyBhcHBlbmRJbmZvRm9yV29ya2Zsb3dTaW5nbGUoXG4gICAgICAgIHVzZXJJZEN1cnJlbnQ6IHN0cmluZyxcbiAgICAgICAgZGF0YTogYW55LFxuICAgICAgICBmaWVsZEtleTogc3RyaW5nID0gJ2lkJyxcbiAgICAgICAgaWdub3JlV29ya2Zsb3c6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICAgICAgY2FsbEJhY2tXaGVuTm90SGF2ZVN0YXR1czogKGl0ZW1TdGF0dXMsIHJvd0l0ZW0pID0+IHZvaWQgPSBudWxsXG4gICAgKSB7XG4gICAgICAgIGlmIChjYWxsQmFja1doZW5Ob3RIYXZlU3RhdHVzID09IG51bGwpIHtcbiAgICAgICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXMgPSAoaXRlbVN0YXR1cywgcm93SXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyb3dJdGVtW2ZpZWxkS2V5XVxuICAgICAgICAgICAgICAgICAgICAmJiByb3dJdGVtLndvcmtmbG93Q29kZVxuICAgICAgICAgICAgICAgICAgICAmJiByb3dJdGVtLmN1cnJlbnRTdGF0ZUNvZGVcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbVN0YXR1cy50ZXh0VHJhbmdUaGFpID0gJ8SQw6MgYuG6r3QgxJHhuqd1IHF1eSB0csOsbmgnO1xuICAgICAgICAgICAgICAgICAgICBpdGVtU3RhdHVzLnRyYW5nVGhhaSA9IHJvd0l0ZW0uY3VycmVudFN0YXRlQ29kZTtcbiAgICAgICAgICAgICAgICAgICAgaXRlbVN0YXR1cy53b3JrZmxvd0NvZGUgPSByb3dJdGVtLndvcmtmbG93Q29kZTtcbiAgICAgICAgICAgICAgICAgICAgaXRlbVN0YXR1cy5wZXJtaXNzaW9uID0gUGVybWlzc2lvbkJhc2UuUkVBRFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbUlkID0gZGF0YVtmaWVsZEtleV07XG4gICAgICAgIGNvbnN0IGZpbHRlcnMgPSBbXG4gICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignaXRlbUlkJywgT3BlcmF0b3IuZXF1YWwsIGl0ZW1JZCksXG4gICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignbm90SW5Xb3JrZmxvdycsIE9wZXJhdG9yLmVxdWFsLCBmYWxzZSksXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IHNvcnRzID0gW107XG4gICAgICAgIGlmICghaWdub3JlV29ya2Zsb3cpIHtcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh0aGlzLm5ld0ZpbHRlcigndXNlcklkJywgT3BlcmF0b3IuZXF1YWwsIHVzZXJJZEN1cnJlbnQpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHNvcnRzLnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IFNvcnQoeyBmaWVsZDogJ3Blcm1pc3Npb24nLCBkaXI6IC0xIH0pLFxuICAgICAgICAgICAgICAgIG5ldyBTb3J0KHsgZmllbGQ6ICdpbkNvbWluZycsIGRpcjogLTEgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGFTdGF0dXM6IGFueVtdID0gKGF3YWl0IHRoaXMuZ2V0QWxsKFxuICAgICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgICAgICdpdGVtSWQsdXNlcklkLHRyYW5nVGhhaSx0ZXh0VHJhbmdUaGFpLHdvcmtmbG93Q29kZSxwZXJtaXNzaW9uJyxcbiAgICAgICAgICAgIHNvcnRzLFxuICAgICAgICAgICAgJ0ZvckNydWRMaXN0J1xuICAgICAgICApKS5kYXRhO1xuICAgICAgICBpZiAoZGF0YVN0YXR1cyA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub3RpZmllclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoTm90aWZpZXJTZXJ2aWNlKTtcbiAgICAgICAgICAgIHJldHVybiBub3RpZmllclNlcnZpY2Uuc2hvd1dhcm5pbmcoJ0tow7RuZyBs4bqleSDEkcaw4bujYyB0aMO0bmcgdGluIHRy4bqhbmcgdGjDoWkgaGnhu4duIHThuqFpIGPhu6dhIGLhuqNuIGdoaScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hcHBlbmRXb3JrZmxvd0luZm9Ub0l0ZW0oXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgaXRlbUlkLFxuICAgICAgICAgICAgdXNlcklkQ3VycmVudCxcbiAgICAgICAgICAgIGlnbm9yZVdvcmtmbG93LFxuICAgICAgICAgICAgZGF0YVN0YXR1cyxcbiAgICAgICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXNcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmRXb3JrZmxvd0luZm9Ub0l0ZW0oXG4gICAgICAgIGRhdGE6IGFueSxcbiAgICAgICAgaXRlbUlkOiBhbnksXG4gICAgICAgIHVzZXJJZEN1cnJlbnQ6IHN0cmluZyxcbiAgICAgICAgaWdub3JlV29ya2Zsb3c6IGJvb2xlYW4sXG4gICAgICAgIGRhdGFTdGF0dXM6IGFueVtdLFxuICAgICAgICBjYWxsQmFja1doZW5Ob3RIYXZlU3RhdHVzOiAoaXRlbVN0YXR1cywgcm93SXRlbSkgPT4gdm9pZCA9IG51bGxcbiAgICApIHtcbiAgICAgICAgbGV0IGl0ZW1TdGF0dXM6IGFueSA9IHtcbiAgICAgICAgICAgIHRleHRUcmFuZ1RoYWk6ICdDaMawYSBjaOG6oXkgcXV5IHRyw6xuaCdcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoaXRlbUlkKSB7XG4gICAgICAgICAgICAvLyBjb25zdCBsc3RJdGVtU3RhdHVzID0gZGF0YVN0YXR1cy5maWx0ZXIocSA9PiBxLml0ZW1JZCA9PSBpdGVtSWQgJiYgcS51c2VySWQgPT0gdXNlcklkQ3VycmVudCk7XG4gICAgICAgICAgICAvLyBpZiAoaWdub3JlV29ya2Zsb3cgPT09IHRydWUgJiYgbHN0SXRlbVN0YXR1cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8vICAgICBsc3RJdGVtU3RhdHVzLnB1c2goLi4uZGF0YVN0YXR1cy5maWx0ZXIocSA9PiBxLml0ZW1JZCA9PT0gaXRlbUlkKSk7XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICBjb25zdCBsc3RJdGVtU3RhdHVzID0gZGF0YVN0YXR1cy5maWx0ZXIocSA9PiBxLml0ZW1JZCA9PT0gaXRlbUlkKTtcbiAgICAgICAgICAgIC8vIGxldCBpdGVtU3RhdHVzID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChsc3RJdGVtU3RhdHVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGl0ZW1TdGF0dXMgPSBsc3RJdGVtU3RhdHVzLmZpbmQocSA9PiAocS5wZXJtaXNzaW9uICYgUGVybWlzc2lvbkJhc2UuRURJVCkgPT0gUGVybWlzc2lvbkJhc2UuRURJVCk7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1TdGF0dXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtU3RhdHVzID0gbHN0SXRlbVN0YXR1c1swXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBO4bq/dSBraMO0bmcgY8OzIGLhuqNuIGdoaSB0cuG6oW5nIHRow6FpXG4gICAgICAgIC8vIE5oxrBuZyDEkcOjIHThuqFvIHRhc2sgcuG7k2kgdGjDrCBoaeG7g24gdGjhu4sgdHLhuqFuZyB0aMOhaSBcIsSRw6MgdOG6oW8gY8O0bmcgdmnhu4djXCIgxJHhu4MgdHLDoW5oIHRyxrDhu51uZyBo4bujcCBoaeG7g24gdGjhu4sgbsO6dCBi4bqvdCDEkeG6p3UgdGjhu6thIHRyw6puIGdpYW8gZGnhu4duXG4gICAgICAgIGlmICghaXRlbVN0YXR1cy50cmFuZ1RoYWkpIHtcbiAgICAgICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXMoaXRlbVN0YXR1cywgZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhLl9fdHJhbmdUaGFpID0gaXRlbVN0YXR1cy50cmFuZ1RoYWk7XG4gICAgICAgIGRhdGEuX190ZXh0VHJhbmdUaGFpID0gaXRlbVN0YXR1cy50ZXh0VHJhbmdUaGFpO1xuICAgICAgICBpZiAoaXRlbVN0YXR1cy53b3JrZmxvd0NvZGUgPT0gRHVtbXlXb3JrZmxvd0NvZGUpIHtcbiAgICAgICAgICAgIGRhdGEuaGlkZGVuV29ya2Zsb3dBY3Rpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGRhdGEuX193b3JrZmxvd0NvZGUgPSBpdGVtU3RhdHVzLndvcmtmbG93Q29kZTtcbiAgICAgICAgZGF0YS5fX3Blcm1pc3Npb24gPSBpdGVtU3RhdHVzLnBlcm1pc3Npb247XG5cbiAgICAgICAgZGF0YS5fX2Rpc2FibGVFZGl0ID0gdHJ1ZTtcbiAgICAgICAgZGF0YS5fX2Rpc2FibGVEZWxldGUgPSB0cnVlO1xuICAgICAgICBpZiAoZGF0YS5iYXNlUGVybWlzc2lvbiAmIFBlcm1pc3Npb25CYXNlLkVESVRcbiAgICAgICAgICAgIHx8IGRhdGEuX19wZXJtaXNzaW9uICYgUGVybWlzc2lvbkJhc2UuRURJVFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGRhdGEuX19kaXNhYmxlRWRpdCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZGF0YS5fX2Rpc2FibGVQZXJtaXNzaW9uRWRpdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYmFzZVBlcm1pc3Npb24gJiBQZXJtaXNzaW9uQmFzZS5ERUxFVEVcbiAgICAgICAgICAgIHx8IGRhdGEuX19wZXJtaXNzaW9uICYgUGVybWlzc2lvbkJhc2UuREVMRVRFXG4gICAgICAgICkge1xuICAgICAgICAgICAgZGF0YS5fX2Rpc2FibGVEZWxldGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGRhdGEuX19kaXNhYmxlUGVybWlzc2lvbkRlbGV0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIEzhuqV5IHRow6ptIGPDoWMgdGjDtG5nIHRpbiBj4bqnbiBjaG8gcXV5IHRyw6xuaCBuZ2hp4buHcCB24bulIGNobyBjw6FjIGLhuqNuIGdoaSB0cm9uZyBkYXRhXG4gICAgICovXG4gICAgYXN5bmMgYXBwZW5kSW5mb0ZvcldvcmtmbG93KFxuICAgICAgICB1c2VySWRDdXJyZW50OiBzdHJpbmcsIGRhdGE6IGFueVtdLFxuICAgICAgICBmaWVsZEtleTogc3RyaW5nID0gJ2lkJyxcbiAgICAgICAgaWdub3JlV29ya2Zsb3c6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICAgICAgY2FsbEJhY2tXaGVuTm90SGF2ZVN0YXR1czogKGl0ZW1TdGF0dXMsIHJvd0l0ZW0pID0+IHZvaWQgPSBudWxsXG4gICAgKSB7XG4gICAgICAgIGlmIChjYWxsQmFja1doZW5Ob3RIYXZlU3RhdHVzID09IG51bGwpIHtcbiAgICAgICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXMgPSAoaXRlbVN0YXR1cywgcm93SXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyb3dJdGVtW2ZpZWxkS2V5XVxuICAgICAgICAgICAgICAgICAgICAmJiByb3dJdGVtLndvcmtmbG93Q29kZVxuICAgICAgICAgICAgICAgICAgICAmJiByb3dJdGVtLmN1cnJlbnRTdGF0ZUNvZGVcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbVN0YXR1cy50ZXh0VHJhbmdUaGFpID0gJ8SQw6MgYuG6r3QgxJHhuqd1IHF1eSB0csOsbmgnO1xuICAgICAgICAgICAgICAgICAgICBpdGVtU3RhdHVzLnRyYW5nVGhhaSA9IHJvd0l0ZW0uY3VycmVudFN0YXRlQ29kZTtcbiAgICAgICAgICAgICAgICAgICAgaXRlbVN0YXR1cy53b3JrZmxvd0NvZGUgPSByb3dJdGVtLndvcmtmbG93Q29kZTtcbiAgICAgICAgICAgICAgICAgICAgaXRlbVN0YXR1cy5wZXJtaXNzaW9uID0gUGVybWlzc2lvbkJhc2UuUkVBRFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbHN0SXRlbUlkID0gZGF0YS5maWx0ZXIocSA9PiBxW2ZpZWxkS2V5XSkubWFwKHEgPT4gcVtmaWVsZEtleV0pO1xuICAgICAgICBsZXQgZmlsdGVycyA9IFtcbiAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdpdGVtSWQnLCBPcGVyYXRvci5pbiwgbHN0SXRlbUlkKSxcbiAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdub3RJbldvcmtmbG93JywgT3BlcmF0b3IuZXF1YWwsIGZhbHNlKSxcbiAgICAgICAgXTtcbiAgICAgICAgaWYgKHRoaXMudGFibGVOYW1lKSB7XG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIoJ3RhYmxlTmFtZScsIE9wZXJhdG9yLmVxdWFsLCB0aGlzLnRhYmxlTmFtZSkpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc29ydHMgPSBbXTtcbiAgICAgICAgLy8gaWYgKCFpZ25vcmVXb3JrZmxvdykge1xuICAgICAgICAvLyAgICAgZmlsdGVycy5wdXNoKHRoaXMubmV3RmlsdGVyKCd1c2VySWQnLCBPcGVyYXRvci5lcXVhbCwgdXNlcklkQ3VycmVudCkpO1xuICAgICAgICAvLyB9XG4gICAgICAgIHNvcnRzLnB1c2goXG4gICAgICAgICAgICBuZXcgU29ydCh7IGZpZWxkOiAncGVybWlzc2lvbicsIGRpcjogLTEgfSksXG4gICAgICAgICAgICBuZXcgU29ydCh7IGZpZWxkOiAnaW5Db21pbmcnLCBkaXI6IC0xIH0pLFxuICAgICAgICApO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgZGF0YVN0YXR1czogYW55W10gPSAoYXdhaXQgdGhpcy5nZXRBbGwoXG4gICAgICAgICAgICBmaWx0ZXJzLFxuICAgICAgICAgICAgJ2l0ZW1JZCx1c2VySWQsdHJhbmdUaGFpLHRleHRUcmFuZ1RoYWksd29ya2Zsb3dDb2RlLHBlcm1pc3Npb24nLFxuICAgICAgICAgICAgc29ydHMsXG4gICAgICAgICAgICAnRm9yQ3J1ZExpc3QnXG4gICAgICAgICkpLmRhdGE7XG4gICAgICAgIGlmIChkYXRhU3RhdHVzID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vdGlmaWVyU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChOb3RpZmllclNlcnZpY2UpO1xuICAgICAgICAgICAgcmV0dXJuIG5vdGlmaWVyU2VydmljZS5zaG93V2FybmluZygnS2jDtG5nIGzhuqV5IMSRxrDhu6NjIHRow7RuZyB0aW4gdHLhuqFuZyB0aMOhaSBoaeG7h24gdOG6oWkgY+G7p2EgYuG6o24gZ2hpJyk7XG4gICAgICAgIH1cbiAgICAgICAgZGF0YS5mb3JFYWNoKHJvd0l0ZW0gPT4ge1xuICAgICAgICAgICAgdGhpcy5hcHBlbmRXb3JrZmxvd0luZm9Ub0l0ZW0oXG4gICAgICAgICAgICAgICAgcm93SXRlbSxcbiAgICAgICAgICAgICAgICByb3dJdGVtW2ZpZWxkS2V5XSxcbiAgICAgICAgICAgICAgICB1c2VySWRDdXJyZW50LFxuICAgICAgICAgICAgICAgIGlnbm9yZVdvcmtmbG93LFxuICAgICAgICAgICAgICAgIGRhdGFTdGF0dXMsXG4gICAgICAgICAgICAgICAgY2FsbEJhY2tXaGVuTm90SGF2ZVN0YXR1c1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIl19
@@ -18675,6 +18675,14 @@ class WorkflowPermissionDetailService extends BaseService {
18675
18675
  return __awaiter(this, void 0, void 0, function* () {
18676
18676
  if (callBackWhenNotHaveStatus == null) {
18677
18677
  callBackWhenNotHaveStatus = (itemStatus, rowItem) => {
18678
+ if (rowItem[fieldKey]
18679
+ && rowItem.workflowCode
18680
+ && rowItem.currentStateCode) {
18681
+ itemStatus.textTrangThai = 'Đã bắt đầu quy trình';
18682
+ itemStatus.trangThai = rowItem.currentStateCode;
18683
+ itemStatus.workflowCode = rowItem.workflowCode;
18684
+ itemStatus.permission = PermissionBase.READ;
18685
+ }
18678
18686
  };
18679
18687
  }
18680
18688
  const itemId = data[fieldKey];
@@ -18689,7 +18697,7 @@ class WorkflowPermissionDetailService extends BaseService {
18689
18697
  else {
18690
18698
  sorts.push(new Sort({ field: 'permission', dir: -1 }), new Sort({ field: 'inComing', dir: -1 }));
18691
18699
  }
18692
- const dataStatus = (yield this.getAll(filters, 'itemId,userId,trangThai,textTrangThai,workflowCode,permission', sorts)).data;
18700
+ const dataStatus = (yield this.getAll(filters, 'itemId,userId,trangThai,textTrangThai,workflowCode,permission', sorts, 'ForCrudList')).data;
18693
18701
  if (dataStatus == null) {
18694
18702
  const notifierService = this._injector.get(NotifierService);
18695
18703
  return notifierService.showWarning('Không lấy được thông tin trạng thái hiện tại của bản ghi');
@@ -18703,10 +18711,11 @@ class WorkflowPermissionDetailService extends BaseService {
18703
18711
  textTrangThai: 'Chưa chạy quy trình'
18704
18712
  };
18705
18713
  if (itemId) {
18706
- const lstItemStatus = dataStatus.filter(q => q.itemId == itemId && q.userId == userIdCurrent);
18707
- if (ignoreWorkflow === true && lstItemStatus.length === 0) {
18708
- lstItemStatus.push(...dataStatus.filter(q => q.itemId === itemId));
18709
- }
18714
+ // const lstItemStatus = dataStatus.filter(q => q.itemId == itemId && q.userId == userIdCurrent);
18715
+ // if (ignoreWorkflow === true && lstItemStatus.length === 0) {
18716
+ // lstItemStatus.push(...dataStatus.filter(q => q.itemId === itemId));
18717
+ // }
18718
+ const lstItemStatus = dataStatus.filter(q => q.itemId === itemId);
18710
18719
  // let itemStatus = null;
18711
18720
  if (lstItemStatus.length) {
18712
18721
  itemStatus = lstItemStatus.find(q => (q.permission & PermissionBase.EDIT) == PermissionBase.EDIT);
@@ -18751,6 +18760,14 @@ class WorkflowPermissionDetailService extends BaseService {
18751
18760
  return __awaiter(this, void 0, void 0, function* () {
18752
18761
  if (callBackWhenNotHaveStatus == null) {
18753
18762
  callBackWhenNotHaveStatus = (itemStatus, rowItem) => {
18763
+ if (rowItem[fieldKey]
18764
+ && rowItem.workflowCode
18765
+ && rowItem.currentStateCode) {
18766
+ itemStatus.textTrangThai = 'Đã bắt đầu quy trình';
18767
+ itemStatus.trangThai = rowItem.currentStateCode;
18768
+ itemStatus.workflowCode = rowItem.workflowCode;
18769
+ itemStatus.permission = PermissionBase.READ;
18770
+ }
18754
18771
  };
18755
18772
  }
18756
18773
  const lstItemId = data.filter(q => q[fieldKey]).map(q => q[fieldKey]);
@@ -18762,13 +18779,11 @@ class WorkflowPermissionDetailService extends BaseService {
18762
18779
  filters.push(this.newFilter('tableName', Operator.equal, this.tableName));
18763
18780
  }
18764
18781
  const sorts = [];
18765
- if (!ignoreWorkflow) {
18766
- filters.push(this.newFilter('userId', Operator.equal, userIdCurrent));
18767
- }
18768
- else {
18769
- sorts.push(new Sort({ field: 'permission', dir: -1 }), new Sort({ field: 'inComing', dir: -1 }));
18770
- }
18771
- const dataStatus = (yield this.getAll(filters, 'itemId,userId,trangThai,textTrangThai,workflowCode,permission', sorts)).data;
18782
+ // if (!ignoreWorkflow) {
18783
+ // filters.push(this.newFilter('userId', Operator.equal, userIdCurrent));
18784
+ // }
18785
+ sorts.push(new Sort({ field: 'permission', dir: -1 }), new Sort({ field: 'inComing', dir: -1 }));
18786
+ const dataStatus = (yield this.getAll(filters, 'itemId,userId,trangThai,textTrangThai,workflowCode,permission', sorts, 'ForCrudList')).data;
18772
18787
  if (dataStatus == null) {
18773
18788
  const notifierService = this._injector.get(NotifierService);
18774
18789
  return notifierService.showWarning('Không lấy được thông tin trạng thái hiện tại của bản ghi');
@@ -19435,7 +19450,7 @@ class ListComponentBase extends ComponentBase {
19435
19450
  }
19436
19451
  }
19437
19452
  initColumnSchema(cols) {
19438
- var _a, _b, _c, _d;
19453
+ var _a, _b, _c, _d, _e;
19439
19454
  if (!cols || !cols.length)
19440
19455
  return;
19441
19456
  let colFunction = null, colGroup = null, colHasToggleIcon = null;
@@ -19458,7 +19473,7 @@ class ListComponentBase extends ComponentBase {
19458
19473
  colHasToggleIcon = this.setting.cols[0];
19459
19474
  }
19460
19475
  colHasToggleIcon.colHasToggleIcon = true;
19461
- this.componentKey = `${location.pathname}/${((_d = (_c = (_b = (_a = this.container) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.closest('crud-list').parentNode) === null || _c === void 0 ? void 0 : _c.tagName) === null || _d === void 0 ? void 0 : _d.toLowerCase()) || ''}${this.setting.settingKey ? '/' + this.setting.settingKey : ''}`;
19476
+ this.componentKey = `${location.pathname}/${((_e = (_d = (_c = (_b = (_a = this.container) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.closest('crud-list')) === null || _c === void 0 ? void 0 : _c.parentNode) === null || _d === void 0 ? void 0 : _d.tagName) === null || _e === void 0 ? void 0 : _e.toLowerCase()) || ''}${this.setting.settingKey ? '/' + this.setting.settingKey : ''}`;
19462
19477
  this.getColorSetting();
19463
19478
  this.getColumnSetting(colGroup);
19464
19479
  this.getPageSetting();