tnx-shared 5.3.205 → 5.3.207

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.
@@ -16,6 +16,7 @@ export class WorkflowPermissionDetailService extends BaseService {
16
16
  super(http, injector, `${_moduleConfigService.getConfig().environment.apiDomain.workflowEndpoint}/${_moduleConfigService.getConfig().environment.apiVersion}/WorkflowPermissionDetail`);
17
17
  this.serviceManagers = {};
18
18
  this.entityName = 'WorkflowPermissionDetail';
19
+ this.tableName = '';
19
20
  this.endPoint = _moduleConfigService.getConfig().environment.apiDomain.workflowEndpoint;
20
21
  this._moduleConfig = _moduleConfigService.getConfig();
21
22
  }
@@ -27,6 +28,7 @@ export class WorkflowPermissionDetailService extends BaseService {
27
28
  }
28
29
  changeEndpoint(baseService) {
29
30
  this.serviceUri = `${this.getEndpointByService(baseService)}/WorkflowPermissionDetail`;
31
+ this.tableName = baseService.entityName;
30
32
  return this;
31
33
  }
32
34
  appendInfoForWorkflowSingle(userIdCurrent, data, fieldKey = 'id', ignoreWorkflow = false, callBackWhenNotHaveStatus = null) {
@@ -112,10 +114,13 @@ export class WorkflowPermissionDetailService extends BaseService {
112
114
  };
113
115
  }
114
116
  const lstItemId = data.filter(q => q[fieldKey]).map(q => q[fieldKey]);
115
- const filters = [
117
+ let filters = [
116
118
  this.newFilter('itemId', Operator.in, lstItemId),
117
119
  this.newFilter('notInWorkflow', Operator.equal, false),
118
120
  ];
121
+ if (this.tableName) {
122
+ filters.push(this.newFilter('tableName', Operator.equal, this.tableName));
123
+ }
119
124
  const sorts = [];
120
125
  if (!ignoreWorkflow) {
121
126
  filters.push(this.newFilter('userId', Operator.equal, userIdCurrent));
@@ -146,4 +151,4 @@ WorkflowPermissionDetailService.ctorParameters = () => [
146
151
  { type: Injector },
147
152
  { type: ModuleConfigService }
148
153
  ];
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctcGVybWlzc2lvbi1kZXRhaWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9zZXJ2aWNlcy93b3JrZmxvdy1wZXJtaXNzaW9uLWRldGFpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWxELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQUtyRCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsV0FBVztJQU81RCxZQUNJLElBQWdCLEVBQ2hCLFFBQWtCLEVBQ2xCLG9CQUF5QztRQUV6QyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLElBQUksb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsMkJBQTJCLENBQUMsQ0FBQztRQVZwTCxvQkFBZSxHQUVuQixFQUFFLENBQUM7UUFDUCxlQUFVLEdBQUcsMEJBQTBCLENBQUM7UUFRcEMsSUFB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QixDQUFDO0tBQUE7Ozs7WUFoTUosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFiUSxVQUFVO1lBQ0UsUUFBUTtZQU9wQixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IER1bW15V29ya2Zsb3dDb2RlIH0gZnJvbSAnLi4vY2xhc3Nlcy9jb25zdGFudHMnO1xuaW1wb3J0IHsgT3BlcmF0b3IgfSBmcm9tICcuLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcbmltcG9ydCB7IE1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZ3MvbW9kdWxlLWNvbmZpZyc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uQmFzZSB9IGZyb20gJy4uL2VudW1zL2NvbW1vbic7XG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtaW5mbyc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZS1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmllclNlcnZpY2UgfSBmcm9tICcuL25vdGlmaWVyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtmbG93UGVybWlzc2lvbkRldGFpbFNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gICAgcmVhZG9ubHkgX21vZHVsZUNvbmZpZzogTW9kdWxlQ29uZmlnO1xuICAgIHByaXZhdGUgc2VydmljZU1hbmFnZXJzOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IEJhc2VTZXJ2aWNlXG4gICAgfSA9IHt9O1xuICAgIGVudGl0eU5hbWUgPSAnV29ya2Zsb3dQZXJtaXNzaW9uRGV0YWlsJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIF9tb2R1bGVDb25maWdTZXJ2aWNlOiBNb2R1bGVDb25maWdTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGh0dHAsIGluamVjdG9yLCBgJHtfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlEb21haW4ud29ya2Zsb3dFbmRwb2ludH0vJHtfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlWZXJzaW9ufS9Xb3JrZmxvd1Blcm1pc3Npb25EZXRhaWxgKTtcbiAgICAgICAgdGhpcy5lbmRQb2ludCA9IF9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi53b3JrZmxvd0VuZHBvaW50O1xuXG4gICAgICAgIHRoaXMuX21vZHVsZUNvbmZpZyA9IF9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyU2VydmljZShzZXR0aW5nS2V5OiBzdHJpbmcsIHNlcnZpY2U6IEJhc2VTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuc2VydmljZU1hbmFnZXJzW3NldHRpbmdLZXldID0gc2VydmljZTtcbiAgICB9XG5cbiAgICBnZXRFbmRwb2ludEJ5U2VydmljZShzZXJ2aWNlOiBCYXNlU2VydmljZSkge1xuICAgICAgICByZXR1cm4gYCR7c2VydmljZS5lbmRQb2ludH0vJHt0aGlzLl9tb2R1bGVDb25maWcuZW52aXJvbm1lbnQuYXBpVmVyc2lvbn1gO1xuICAgIH1cblxuICAgIGNoYW5nZUVuZHBvaW50KGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZSk6IFdvcmtmbG93UGVybWlzc2lvbkRldGFpbFNlcnZpY2Uge1xuICAgICAgICB0aGlzLnNlcnZpY2VVcmkgPSBgJHt0aGlzLmdldEVuZHBvaW50QnlTZXJ2aWNlKGJhc2VTZXJ2aWNlKX0vV29ya2Zsb3dQZXJtaXNzaW9uRGV0YWlsYDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG5cbiAgICBhc3luYyBhcHBlbmRJbmZvRm9yV29ya2Zsb3dTaW5nbGUoXG4gICAgICAgIHVzZXJJZEN1cnJlbnQ6IHN0cmluZyxcbiAgICAgICAgZGF0YTogYW55LFxuICAgICAgICBmaWVsZEtleTogc3RyaW5nID0gJ2lkJyxcbiAgICAgICAgaWdub3JlV29ya2Zsb3c6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICAgICAgY2FsbEJhY2tXaGVuTm90SGF2ZVN0YXR1czogKGl0ZW1TdGF0dXMsIHJvd0l0ZW0pID0+IHZvaWQgPSBudWxsXG4gICAgKSB7XG4gICAgICAgIGlmIChjYWxsQmFja1doZW5Ob3RIYXZlU3RhdHVzID09IG51bGwpIHtcbiAgICAgICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXMgPSAoaXRlbVN0YXR1cywgcm93SXRlbSkgPT4ge1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpdGVtSWQgPSBkYXRhW2ZpZWxkS2V5XTtcbiAgICAgICAgY29uc3QgZmlsdGVycyA9IFtcbiAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdpdGVtSWQnLCBPcGVyYXRvci5lcXVhbCwgaXRlbUlkKSxcbiAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdub3RJbldvcmtmbG93JywgT3BlcmF0b3IuZXF1YWwsIGZhbHNlKSxcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3Qgc29ydHMgPSBbXTtcbiAgICAgICAgaWYgKCFpZ25vcmVXb3JrZmxvdykge1xuICAgICAgICAgICAgZmlsdGVycy5wdXNoKHRoaXMubmV3RmlsdGVyKCd1c2VySWQnLCBPcGVyYXRvci5lcXVhbCwgdXNlcklkQ3VycmVudCkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc29ydHMucHVzaChcbiAgICAgICAgICAgICAgICBuZXcgU29ydCh7IGZpZWxkOiAncGVybWlzc2lvbicsIGRpcjogLTEgfSksXG4gICAgICAgICAgICAgICAgbmV3IFNvcnQoeyBmaWVsZDogJ2luQ29taW5nJywgZGlyOiAtMSB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YVN0YXR1czogYW55W10gPSAoYXdhaXQgdGhpcy5nZXRBbGwoXG4gICAgICAgICAgICBmaWx0ZXJzLFxuICAgICAgICAgICAgJ2l0ZW1JZCx1c2VySWQsdHJhbmdUaGFpLHRleHRUcmFuZ1RoYWksd29ya2Zsb3dDb2RlLHBlcm1pc3Npb24nLFxuICAgICAgICAgICAgc29ydHMsXG4gICAgICAgICkpLmRhdGE7XG4gICAgICAgIGlmIChkYXRhU3RhdHVzID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vdGlmaWVyU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChOb3RpZmllclNlcnZpY2UpO1xuICAgICAgICAgICAgcmV0dXJuIG5vdGlmaWVyU2VydmljZS5zaG93V2FybmluZygnS2jDtG5nIGzhuqV5IMSRxrDhu6NjIHRow7RuZyB0aW4gdHLhuqFuZyB0aMOhaSBoaeG7h24gdOG6oWkgY+G7p2EgYuG6o24gZ2hpJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFwcGVuZFdvcmtmbG93SW5mb1RvSXRlbShcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBpdGVtSWQsXG4gICAgICAgICAgICB1c2VySWRDdXJyZW50LFxuICAgICAgICAgICAgaWdub3JlV29ya2Zsb3csXG4gICAgICAgICAgICBkYXRhU3RhdHVzLFxuICAgICAgICAgICAgY2FsbEJhY2tXaGVuTm90SGF2ZVN0YXR1c1xuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGVuZFdvcmtmbG93SW5mb1RvSXRlbShcbiAgICAgICAgZGF0YTogYW55LFxuICAgICAgICBpdGVtSWQ6IGFueSxcbiAgICAgICAgdXNlcklkQ3VycmVudDogc3RyaW5nLFxuICAgICAgICBpZ25vcmVXb3JrZmxvdzogYm9vbGVhbixcbiAgICAgICAgZGF0YVN0YXR1czogYW55W10sXG4gICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXM6IChpdGVtU3RhdHVzLCByb3dJdGVtKSA9PiB2b2lkID0gbnVsbFxuICAgICkge1xuICAgICAgICBsZXQgaXRlbVN0YXR1czogYW55ID0ge1xuICAgICAgICAgICAgdGV4dFRyYW5nVGhhaTogJ0NoxrBhIGNo4bqheSBxdXkgdHLDrG5oJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChpdGVtSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGxzdEl0ZW1TdGF0dXMgPSBkYXRhU3RhdHVzLmZpbHRlcihxID0+IHEuaXRlbUlkID09IGl0ZW1JZCAmJiBxLnVzZXJJZCA9PSB1c2VySWRDdXJyZW50KTtcbiAgICAgICAgICAgIGlmIChpZ25vcmVXb3JrZmxvdyA9PT0gdHJ1ZSAmJiBsc3RJdGVtU3RhdHVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGxzdEl0ZW1TdGF0dXMucHVzaCguLi5kYXRhU3RhdHVzLmZpbHRlcihxID0+IHEuaXRlbUlkID09PSBpdGVtSWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGxldCBpdGVtU3RhdHVzID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChsc3RJdGVtU3RhdHVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGl0ZW1TdGF0dXMgPSBsc3RJdGVtU3RhdHVzLmZpbmQocSA9PiAocS5wZXJtaXNzaW9uICYgUGVybWlzc2lvbkJhc2UuRURJVCkgPT0gUGVybWlzc2lvbkJhc2UuRURJVCk7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1TdGF0dXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtU3RhdHVzID0gbHN0SXRlbVN0YXR1c1swXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBO4bq/dSBraMO0bmcgY8OzIGLhuqNuIGdoaSB0cuG6oW5nIHRow6FpXG4gICAgICAgIC8vIE5oxrBuZyDEkcOjIHThuqFvIHRhc2sgcuG7k2kgdGjDrCBoaeG7g24gdGjhu4sgdHLhuqFuZyB0aMOhaSBcIsSRw6MgdOG6oW8gY8O0bmcgdmnhu4djXCIgxJHhu4MgdHLDoW5oIHRyxrDhu51uZyBo4bujcCBoaeG7g24gdGjhu4sgbsO6dCBi4bqvdCDEkeG6p3UgdGjhu6thIHRyw6puIGdpYW8gZGnhu4duXG4gICAgICAgIGlmICghaXRlbVN0YXR1cy50cmFuZ1RoYWkpIHtcbiAgICAgICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXMoaXRlbVN0YXR1cywgZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhLl9fdHJhbmdUaGFpID0gaXRlbVN0YXR1cy50cmFuZ1RoYWk7XG4gICAgICAgIGRhdGEuX190ZXh0VHJhbmdUaGFpID0gaXRlbVN0YXR1cy50ZXh0VHJhbmdUaGFpO1xuICAgICAgICBpZiAoaXRlbVN0YXR1cy53b3JrZmxvd0NvZGUgPT0gRHVtbXlXb3JrZmxvd0NvZGUpIHtcbiAgICAgICAgICAgIGRhdGEuaGlkZGVuV29ya2Zsb3dBY3Rpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGRhdGEuX193b3JrZmxvd0NvZGUgPSBpdGVtU3RhdHVzLndvcmtmbG93Q29kZTtcbiAgICAgICAgZGF0YS5fX3Blcm1pc3Npb24gPSBpdGVtU3RhdHVzLnBlcm1pc3Npb247XG5cbiAgICAgICAgZGF0YS5fX2Rpc2FibGVFZGl0ID0gdHJ1ZTtcbiAgICAgICAgZGF0YS5fX2Rpc2FibGVEZWxldGUgPSB0cnVlO1xuICAgICAgICBpZiAoZGF0YS5iYXNlUGVybWlzc2lvbiAmIFBlcm1pc3Npb25CYXNlLkVESVRcbiAgICAgICAgICAgIHx8IGRhdGEuX19wZXJtaXNzaW9uICYgUGVybWlzc2lvbkJhc2UuRURJVFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGRhdGEuX19kaXNhYmxlRWRpdCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZGF0YS5fX2Rpc2FibGVQZXJtaXNzaW9uRWRpdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYmFzZVBlcm1pc3Npb24gJiBQZXJtaXNzaW9uQmFzZS5ERUxFVEVcbiAgICAgICAgICAgIHx8IGRhdGEuX19wZXJtaXNzaW9uICYgUGVybWlzc2lvbkJhc2UuREVMRVRFXG4gICAgICAgICkge1xuICAgICAgICAgICAgZGF0YS5fX2Rpc2FibGVEZWxldGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGRhdGEuX19kaXNhYmxlUGVybWlzc2lvbkRlbGV0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIEzhuqV5IHRow6ptIGPDoWMgdGjDtG5nIHRpbiBj4bqnbiBjaG8gcXV5IHRyw6xuaCBuZ2hp4buHcCB24bulIGNobyBjw6FjIGLhuqNuIGdoaSB0cm9uZyBkYXRhXG4gICAgICovXG4gICAgYXN5bmMgYXBwZW5kSW5mb0ZvcldvcmtmbG93KFxuICAgICAgICB1c2VySWRDdXJyZW50OiBzdHJpbmcsIGRhdGE6IGFueVtdLFxuICAgICAgICBmaWVsZEtleTogc3RyaW5nID0gJ2lkJyxcbiAgICAgICAgaWdub3JlV29ya2Zsb3c6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICAgICAgY2FsbEJhY2tXaGVuTm90SGF2ZVN0YXR1czogKGl0ZW1TdGF0dXMsIHJvd0l0ZW0pID0+IHZvaWQgPSBudWxsXG4gICAgKSB7XG4gICAgICAgIGlmIChjYWxsQmFja1doZW5Ob3RIYXZlU3RhdHVzID09IG51bGwpIHtcbiAgICAgICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXMgPSAoaXRlbVN0YXR1cywgcm93SXRlbSkgPT4ge1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsc3RJdGVtSWQgPSBkYXRhLmZpbHRlcihxID0+IHFbZmllbGRLZXldKS5tYXAocSA9PiBxW2ZpZWxkS2V5XSk7XG4gICAgICAgIGNvbnN0IGZpbHRlcnMgPSBbXG4gICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignaXRlbUlkJywgT3BlcmF0b3IuaW4sIGxzdEl0ZW1JZCksXG4gICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignbm90SW5Xb3JrZmxvdycsIE9wZXJhdG9yLmVxdWFsLCBmYWxzZSksXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IHNvcnRzID0gW107XG4gICAgICAgIGlmICghaWdub3JlV29ya2Zsb3cpIHtcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh0aGlzLm5ld0ZpbHRlcigndXNlcklkJywgT3BlcmF0b3IuZXF1YWwsIHVzZXJJZEN1cnJlbnQpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHNvcnRzLnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IFNvcnQoeyBmaWVsZDogJ3Blcm1pc3Npb24nLCBkaXI6IC0xIH0pLFxuICAgICAgICAgICAgICAgIG5ldyBTb3J0KHsgZmllbGQ6ICdpbkNvbWluZycsIGRpcjogLTEgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGFTdGF0dXM6IGFueVtdID0gKGF3YWl0IHRoaXMuZ2V0QWxsKFxuICAgICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgICAgICdpdGVtSWQsdXNlcklkLHRyYW5nVGhhaSx0ZXh0VHJhbmdUaGFpLHdvcmtmbG93Q29kZSxwZXJtaXNzaW9uJyxcbiAgICAgICAgICAgIHNvcnRzLFxuICAgICAgICApKS5kYXRhO1xuICAgICAgICBpZiAoZGF0YVN0YXR1cyA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub3RpZmllclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoTm90aWZpZXJTZXJ2aWNlKTtcbiAgICAgICAgICAgIHJldHVybiBub3RpZmllclNlcnZpY2Uuc2hvd1dhcm5pbmcoJ0tow7RuZyBs4bqleSDEkcaw4bujYyB0aMO0bmcgdGluIHRy4bqhbmcgdGjDoWkgaGnhu4duIHThuqFpIGPhu6dhIGLhuqNuIGdoaScpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGEuZm9yRWFjaChyb3dJdGVtID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXBwZW5kV29ya2Zsb3dJbmZvVG9JdGVtKFxuICAgICAgICAgICAgICAgIHJvd0l0ZW0sXG4gICAgICAgICAgICAgICAgcm93SXRlbVtmaWVsZEtleV0sXG4gICAgICAgICAgICAgICAgdXNlcklkQ3VycmVudCxcbiAgICAgICAgICAgICAgICBpZ25vcmVXb3JrZmxvdyxcbiAgICAgICAgICAgICAgICBkYXRhU3RhdHVzLFxuICAgICAgICAgICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXNcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbiJdfQ==
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctcGVybWlzc2lvbi1kZXRhaWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9zZXJ2aWNlcy93b3JrZmxvdy1wZXJtaXNzaW9uLWRldGFpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWxELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQUtyRCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsV0FBVztJQU81RCxZQUNJLElBQWdCLEVBQ2hCLFFBQWtCLEVBQ2xCLG9CQUF5QztRQUV6QyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLElBQUksb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsMkJBQTJCLENBQUMsQ0FBQztRQVZwTCxvQkFBZSxHQUVuQixFQUFFLENBQUM7UUFDUCxlQUFVLEdBQUcsMEJBQTBCLENBQUM7UUFDeEMsY0FB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Q0FBQyxDQUFDO2FBQ2xHO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLHdCQUF3QixDQUN6QixPQUFPLEVBQ1AsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUNqQixhQUFhLEVBQ2IsY0FBYyxFQUNkLFVBQVUsRUFDVix5QkFBeUIsQ0FDNUIsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztLQUFBOzs7O1lBcE1KLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBYlEsVUFBVTtZQUNFLFFBQVE7WUFPcEIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEdW1teVdvcmtmbG93Q29kZSB9IGZyb20gJy4uL2NsYXNzZXMvY29uc3RhbnRzJztcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XG5pbXBvcnQgeyBNb2R1bGVDb25maWcgfSBmcm9tICcuLi9jb25maWdzL21vZHVsZS1jb25maWcnO1xuaW1wb3J0IHsgUGVybWlzc2lvbkJhc2UgfSBmcm9tICcuLi9lbnVtcy9jb21tb24nO1xuaW1wb3J0IHsgU29ydCB9IGZyb20gJy4uL21vZGVscy9ncmlkLWluZm8nO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmllci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd1Blcm1pc3Npb25EZXRhaWxTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICAgIHJlYWRvbmx5IF9tb2R1bGVDb25maWc6IE1vZHVsZUNvbmZpZztcbiAgICBwcml2YXRlIHNlcnZpY2VNYW5hZ2Vyczoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBCYXNlU2VydmljZVxuICAgIH0gPSB7fTtcbiAgICBlbnRpdHlOYW1lID0gJ1dvcmtmbG93UGVybWlzc2lvbkRldGFpbCc7XG4gICAgdGFibGVOYW1lID0gJyc7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaHR0cCwgaW5qZWN0b3IsIGAke19tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi53b3JrZmxvd0VuZHBvaW50fS8ke19tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaVZlcnNpb259L1dvcmtmbG93UGVybWlzc2lvbkRldGFpbGApO1xuICAgICAgICB0aGlzLmVuZFBvaW50ID0gX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQuYXBpRG9tYWluLndvcmtmbG93RW5kcG9pbnQ7XG5cbiAgICAgICAgdGhpcy5fbW9kdWxlQ29uZmlnID0gX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJTZXJ2aWNlKHNldHRpbmdLZXk6IHN0cmluZywgc2VydmljZTogQmFzZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlTWFuYWdlcnNbc2V0dGluZ0tleV0gPSBzZXJ2aWNlO1xuICAgIH1cblxuICAgIGdldEVuZHBvaW50QnlTZXJ2aWNlKHNlcnZpY2U6IEJhc2VTZXJ2aWNlKSB7XG4gICAgICAgIHJldHVybiBgJHtzZXJ2aWNlLmVuZFBvaW50fS8ke3RoaXMuX21vZHVsZUNvbmZpZy5lbnZpcm9ubWVudC5hcGlWZXJzaW9ufWA7XG4gICAgfVxuXG4gICAgY2hhbmdlRW5kcG9pbnQoYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlKTogV29ya2Zsb3dQZXJtaXNzaW9uRGV0YWlsU2VydmljZSB7XG4gICAgICAgIHRoaXMuc2VydmljZVVyaSA9IGAke3RoaXMuZ2V0RW5kcG9pbnRCeVNlcnZpY2UoYmFzZVNlcnZpY2UpfS9Xb3JrZmxvd1Blcm1pc3Npb25EZXRhaWxgO1xuICAgICAgICB0aGlzLnRhYmxlTmFtZSA9IGJhc2VTZXJ2aWNlLmVudGl0eU5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuXG4gICAgYXN5bmMgYXBwZW5kSW5mb0ZvcldvcmtmbG93U2luZ2xlKFxuICAgICAgICB1c2VySWRDdXJyZW50OiBzdHJpbmcsXG4gICAgICAgIGRhdGE6IGFueSxcbiAgICAgICAgZmllbGRLZXk6IHN0cmluZyA9ICdpZCcsXG4gICAgICAgIGlnbm9yZVdvcmtmbG93OiBib29sZWFuID0gZmFsc2UsXG4gICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXM6IChpdGVtU3RhdHVzLCByb3dJdGVtKSA9PiB2b2lkID0gbnVsbFxuICAgICkge1xuICAgICAgICBpZiAoY2FsbEJhY2tXaGVuTm90SGF2ZVN0YXR1cyA9PSBudWxsKSB7XG4gICAgICAgICAgICBjYWxsQmFja1doZW5Ob3RIYXZlU3RhdHVzID0gKGl0ZW1TdGF0dXMsIHJvd0l0ZW0pID0+IHtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbUlkID0gZGF0YVtmaWVsZEtleV07XG4gICAgICAgIGNvbnN0IGZpbHRlcnMgPSBbXG4gICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignaXRlbUlkJywgT3BlcmF0b3IuZXF1YWwsIGl0ZW1JZCksXG4gICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignbm90SW5Xb3JrZmxvdycsIE9wZXJhdG9yLmVxdWFsLCBmYWxzZSksXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IHNvcnRzID0gW107XG4gICAgICAgIGlmICghaWdub3JlV29ya2Zsb3cpIHtcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh0aGlzLm5ld0ZpbHRlcigndXNlcklkJywgT3BlcmF0b3IuZXF1YWwsIHVzZXJJZEN1cnJlbnQpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHNvcnRzLnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IFNvcnQoeyBmaWVsZDogJ3Blcm1pc3Npb24nLCBkaXI6IC0xIH0pLFxuICAgICAgICAgICAgICAgIG5ldyBTb3J0KHsgZmllbGQ6ICdpbkNvbWluZycsIGRpcjogLTEgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGFTdGF0dXM6IGFueVtdID0gKGF3YWl0IHRoaXMuZ2V0QWxsKFxuICAgICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgICAgICdpdGVtSWQsdXNlcklkLHRyYW5nVGhhaSx0ZXh0VHJhbmdUaGFpLHdvcmtmbG93Q29kZSxwZXJtaXNzaW9uJyxcbiAgICAgICAgICAgIHNvcnRzLFxuICAgICAgICApKS5kYXRhO1xuICAgICAgICBpZiAoZGF0YVN0YXR1cyA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub3RpZmllclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoTm90aWZpZXJTZXJ2aWNlKTtcbiAgICAgICAgICAgIHJldHVybiBub3RpZmllclNlcnZpY2Uuc2hvd1dhcm5pbmcoJ0tow7RuZyBs4bqleSDEkcaw4bujYyB0aMO0bmcgdGluIHRy4bqhbmcgdGjDoWkgaGnhu4duIHThuqFpIGPhu6dhIGLhuqNuIGdoaScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hcHBlbmRXb3JrZmxvd0luZm9Ub0l0ZW0oXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgaXRlbUlkLFxuICAgICAgICAgICAgdXNlcklkQ3VycmVudCxcbiAgICAgICAgICAgIGlnbm9yZVdvcmtmbG93LFxuICAgICAgICAgICAgZGF0YVN0YXR1cyxcbiAgICAgICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXNcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmRXb3JrZmxvd0luZm9Ub0l0ZW0oXG4gICAgICAgIGRhdGE6IGFueSxcbiAgICAgICAgaXRlbUlkOiBhbnksXG4gICAgICAgIHVzZXJJZEN1cnJlbnQ6IHN0cmluZyxcbiAgICAgICAgaWdub3JlV29ya2Zsb3c6IGJvb2xlYW4sXG4gICAgICAgIGRhdGFTdGF0dXM6IGFueVtdLFxuICAgICAgICBjYWxsQmFja1doZW5Ob3RIYXZlU3RhdHVzOiAoaXRlbVN0YXR1cywgcm93SXRlbSkgPT4gdm9pZCA9IG51bGxcbiAgICApIHtcbiAgICAgICAgbGV0IGl0ZW1TdGF0dXM6IGFueSA9IHtcbiAgICAgICAgICAgIHRleHRUcmFuZ1RoYWk6ICdDaMawYSBjaOG6oXkgcXV5IHRyw6xuaCdcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoaXRlbUlkKSB7XG4gICAgICAgICAgICBjb25zdCBsc3RJdGVtU3RhdHVzID0gZGF0YVN0YXR1cy5maWx0ZXIocSA9PiBxLml0ZW1JZCA9PSBpdGVtSWQgJiYgcS51c2VySWQgPT0gdXNlcklkQ3VycmVudCk7XG4gICAgICAgICAgICBpZiAoaWdub3JlV29ya2Zsb3cgPT09IHRydWUgJiYgbHN0SXRlbVN0YXR1cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBsc3RJdGVtU3RhdHVzLnB1c2goLi4uZGF0YVN0YXR1cy5maWx0ZXIocSA9PiBxLml0ZW1JZCA9PT0gaXRlbUlkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBsZXQgaXRlbVN0YXR1cyA9IG51bGw7XG4gICAgICAgICAgICBpZiAobHN0SXRlbVN0YXR1cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBpdGVtU3RhdHVzID0gbHN0SXRlbVN0YXR1cy5maW5kKHEgPT4gKHEucGVybWlzc2lvbiAmIFBlcm1pc3Npb25CYXNlLkVESVQpID09IFBlcm1pc3Npb25CYXNlLkVESVQpO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtU3RhdHVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbVN0YXR1cyA9IGxzdEl0ZW1TdGF0dXNbMF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gTuG6v3Uga2jDtG5nIGPDsyBi4bqjbiBnaGkgdHLhuqFuZyB0aMOhaVxuICAgICAgICAvLyBOaMawbmcgxJHDoyB04bqhbyB0YXNrIHLhu5NpIHRow6wgaGnhu4NuIHRo4buLIHRy4bqhbmcgdGjDoWkgXCLEkcOjIHThuqFvIGPDtG5nIHZp4buHY1wiIMSR4buDIHRyw6FuaCB0csaw4budbmcgaOG7o3AgaGnhu4NuIHRo4buLIG7DunQgYuG6r3QgxJHhuqd1IHRo4burYSB0csOqbiBnaWFvIGRp4buHblxuICAgICAgICBpZiAoIWl0ZW1TdGF0dXMudHJhbmdUaGFpKSB7XG4gICAgICAgICAgICBjYWxsQmFja1doZW5Ob3RIYXZlU3RhdHVzKGl0ZW1TdGF0dXMsIGRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YS5fX3RyYW5nVGhhaSA9IGl0ZW1TdGF0dXMudHJhbmdUaGFpO1xuICAgICAgICBkYXRhLl9fdGV4dFRyYW5nVGhhaSA9IGl0ZW1TdGF0dXMudGV4dFRyYW5nVGhhaTtcbiAgICAgICAgaWYgKGl0ZW1TdGF0dXMud29ya2Zsb3dDb2RlID09IER1bW15V29ya2Zsb3dDb2RlKSB7XG4gICAgICAgICAgICBkYXRhLmhpZGRlbldvcmtmbG93QWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBkYXRhLl9fd29ya2Zsb3dDb2RlID0gaXRlbVN0YXR1cy53b3JrZmxvd0NvZGU7XG4gICAgICAgIGRhdGEuX19wZXJtaXNzaW9uID0gaXRlbVN0YXR1cy5wZXJtaXNzaW9uO1xuXG4gICAgICAgIGRhdGEuX19kaXNhYmxlRWRpdCA9IHRydWU7XG4gICAgICAgIGRhdGEuX19kaXNhYmxlRGVsZXRlID0gdHJ1ZTtcbiAgICAgICAgaWYgKGRhdGEuYmFzZVBlcm1pc3Npb24gJiBQZXJtaXNzaW9uQmFzZS5FRElUXG4gICAgICAgICAgICB8fCBkYXRhLl9fcGVybWlzc2lvbiAmIFBlcm1pc3Npb25CYXNlLkVESVRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBkYXRhLl9fZGlzYWJsZUVkaXQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGRhdGEuX19kaXNhYmxlUGVybWlzc2lvbkVkaXQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmJhc2VQZXJtaXNzaW9uICYgUGVybWlzc2lvbkJhc2UuREVMRVRFXG4gICAgICAgICAgICB8fCBkYXRhLl9fcGVybWlzc2lvbiAmIFBlcm1pc3Npb25CYXNlLkRFTEVURVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGRhdGEuX19kaXNhYmxlRGVsZXRlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBkYXRhLl9fZGlzYWJsZVBlcm1pc3Npb25EZWxldGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBM4bqleSB0aMOqbSBjw6FjIHRow7RuZyB0aW4gY+G6p24gY2hvIHF1eSB0csOsbmggbmdoaeG7h3AgduG7pSBjaG8gY8OhYyBi4bqjbiBnaGkgdHJvbmcgZGF0YVxuICAgICAqL1xuICAgIGFzeW5jIGFwcGVuZEluZm9Gb3JXb3JrZmxvdyhcbiAgICAgICAgdXNlcklkQ3VycmVudDogc3RyaW5nLCBkYXRhOiBhbnlbXSxcbiAgICAgICAgZmllbGRLZXk6IHN0cmluZyA9ICdpZCcsXG4gICAgICAgIGlnbm9yZVdvcmtmbG93OiBib29sZWFuID0gZmFsc2UsXG4gICAgICAgIGNhbGxCYWNrV2hlbk5vdEhhdmVTdGF0dXM6IChpdGVtU3RhdHVzLCByb3dJdGVtKSA9PiB2b2lkID0gbnVsbFxuICAgICkge1xuICAgICAgICBpZiAoY2FsbEJhY2tXaGVuTm90SGF2ZVN0YXR1cyA9PSBudWxsKSB7XG4gICAgICAgICAgICBjYWxsQmFja1doZW5Ob3RIYXZlU3RhdHVzID0gKGl0ZW1TdGF0dXMsIHJvd0l0ZW0pID0+IHtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbHN0SXRlbUlkID0gZGF0YS5maWx0ZXIocSA9PiBxW2ZpZWxkS2V5XSkubWFwKHEgPT4gcVtmaWVsZEtleV0pO1xuICAgICAgICBsZXQgZmlsdGVycyA9IFtcbiAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdpdGVtSWQnLCBPcGVyYXRvci5pbiwgbHN0SXRlbUlkKSxcbiAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdub3RJbldvcmtmbG93JywgT3BlcmF0b3IuZXF1YWwsIGZhbHNlKSxcbiAgICAgICAgXTtcbiAgICAgICAgaWYgKHRoaXMudGFibGVOYW1lKSB7XG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIoJ3RhYmxlTmFtZScsIE9wZXJhdG9yLmVxdWFsLCB0aGlzLnRhYmxlTmFtZSkpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc29ydHMgPSBbXTtcbiAgICAgICAgaWYgKCFpZ25vcmVXb3JrZmxvdykge1xuICAgICAgICAgICAgZmlsdGVycy5wdXNoKHRoaXMubmV3RmlsdGVyKCd1c2VySWQnLCBPcGVyYXRvci5lcXVhbCwgdXNlcklkQ3VycmVudCkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc29ydHMucHVzaChcbiAgICAgICAgICAgICAgICBuZXcgU29ydCh7IGZpZWxkOiAncGVybWlzc2lvbicsIGRpcjogLTEgfSksXG4gICAgICAgICAgICAgICAgbmV3IFNvcnQoeyBmaWVsZDogJ2luQ29taW5nJywgZGlyOiAtMSB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YVN0YXR1czogYW55W10gPSAoYXdhaXQgdGhpcy5nZXRBbGwoXG4gICAgICAgICAgICBmaWx0ZXJzLFxuICAgICAgICAgICAgJ2l0ZW1JZCx1c2VySWQsdHJhbmdUaGFpLHRleHRUcmFuZ1RoYWksd29ya2Zsb3dDb2RlLHBlcm1pc3Npb24nLFxuICAgICAgICAgICAgc29ydHMsXG4gICAgICAgICkpLmRhdGE7XG4gICAgICAgIGlmIChkYXRhU3RhdHVzID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vdGlmaWVyU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChOb3RpZmllclNlcnZpY2UpO1xuICAgICAgICAgICAgcmV0dXJuIG5vdGlmaWVyU2VydmljZS5zaG93V2FybmluZygnS2jDtG5nIGzhuqV5IMSRxrDhu6NjIHRow7RuZyB0aW4gdHLhuqFuZyB0aMOhaSBoaeG7h24gdOG6oWkgY+G7p2EgYuG6o24gZ2hpJyk7XG4gICAgICAgIH1cbiAgICAgICAgZGF0YS5mb3JFYWNoKHJvd0l0ZW0gPT4ge1xuICAgICAgICAgICAgdGhpcy5hcHBlbmRXb3JrZmxvd0luZm9Ub0l0ZW0oXG4gICAgICAgICAgICAgICAgcm93SXRlbSxcbiAgICAgICAgICAgICAgICByb3dJdGVtW2ZpZWxkS2V5XSxcbiAgICAgICAgICAgICAgICB1c2VySWRDdXJyZW50LFxuICAgICAgICAgICAgICAgIGlnbm9yZVdvcmtmbG93LFxuICAgICAgICAgICAgICAgIGRhdGFTdGF0dXMsXG4gICAgICAgICAgICAgICAgY2FsbEJhY2tXaGVuTm90SGF2ZVN0YXR1c1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIl19
@@ -18090,6 +18090,7 @@ class WorkflowPermissionDetailService extends BaseService {
18090
18090
  super(http, injector, `${_moduleConfigService.getConfig().environment.apiDomain.workflowEndpoint}/${_moduleConfigService.getConfig().environment.apiVersion}/WorkflowPermissionDetail`);
18091
18091
  this.serviceManagers = {};
18092
18092
  this.entityName = 'WorkflowPermissionDetail';
18093
+ this.tableName = '';
18093
18094
  this.endPoint = _moduleConfigService.getConfig().environment.apiDomain.workflowEndpoint;
18094
18095
  this._moduleConfig = _moduleConfigService.getConfig();
18095
18096
  }
@@ -18101,6 +18102,7 @@ class WorkflowPermissionDetailService extends BaseService {
18101
18102
  }
18102
18103
  changeEndpoint(baseService) {
18103
18104
  this.serviceUri = `${this.getEndpointByService(baseService)}/WorkflowPermissionDetail`;
18105
+ this.tableName = baseService.entityName;
18104
18106
  return this;
18105
18107
  }
18106
18108
  appendInfoForWorkflowSingle(userIdCurrent, data, fieldKey = 'id', ignoreWorkflow = false, callBackWhenNotHaveStatus = null) {
@@ -18186,10 +18188,13 @@ class WorkflowPermissionDetailService extends BaseService {
18186
18188
  };
18187
18189
  }
18188
18190
  const lstItemId = data.filter(q => q[fieldKey]).map(q => q[fieldKey]);
18189
- const filters = [
18191
+ let filters = [
18190
18192
  this.newFilter('itemId', Operator.in, lstItemId),
18191
18193
  this.newFilter('notInWorkflow', Operator.equal, false),
18192
18194
  ];
18195
+ if (this.tableName) {
18196
+ filters.push(this.newFilter('tableName', Operator.equal, this.tableName));
18197
+ }
18193
18198
  const sorts = [];
18194
18199
  if (!ignoreWorkflow) {
18195
18200
  filters.push(this.newFilter('userId', Operator.equal, userIdCurrent));
@@ -40805,10 +40810,11 @@ class EquationEditorComponent extends ComponentBase {
40805
40810
  });
40806
40811
  }
40807
40812
  onModelChange(evt) {
40813
+ console.log(evt);
40808
40814
  clearTimeout(this.timeoutModelChange);
40809
- if (this.equationLatex && this.equationLatex.trim() != '') {
40815
+ if (evt && typeof evt == 'string' && evt.trim() != '') {
40810
40816
  this.timeoutModelChange = setTimeout(() => {
40811
- this.showPreview(this.equationLatex.trim());
40817
+ this.showPreview(evt.trim());
40812
40818
  }, 500);
40813
40819
  }
40814
40820
  }
@@ -40816,7 +40822,7 @@ class EquationEditorComponent extends ComponentBase {
40816
40822
  scaleDataURL(dataURL, maxSizeRatio) {
40817
40823
  return __awaiter(this, void 0, void 0, function* () {
40818
40824
  return new Promise(done => {
40819
- let img = new Image;
40825
+ const img = new Image;
40820
40826
  img.onload = () => {
40821
40827
  let newWidth, newHeight, canvas, ctx;
40822
40828
  const maxWidth = img.width * maxSizeRatio;
@@ -40856,12 +40862,12 @@ EquationEditorComponent.decorators = [
40856
40862
  selector: 'equation-editor',
40857
40863
  template: "<div class=\"ui-fluid\">\n <textarea #textarea class=\"latexContent\" placeholder=\"G\u00F5 c\u00F4ng th\u1EE9c to\u00E1n h\u1ECDc t\u1EA1i \u0111\u00E2y...\" rows=\"6\" pInputTextarea\n (ngModelChange)=\"onModelChange($event)\" [(ngModel)]=\"equationLatex\"></textarea>\n</div>\n<div class=\"preview\">\n <img #preview latex=\"true\" *ngIf=\"imageSrc\" [attr.height]=\"data.height != 0 ? data.height : null\"\n class=\"latex\" [style]=\"data.style | safeStyle\" [src]=\"imageSrc\" [alt]=\"equationLatex\" />\n</div>",
40858
40864
  providers: [ComponentContextService],
40859
- styles: [".btn-equation{width:30px;height:30px;cursor:pointer}.preview{text-align:center;margin-top:10px;padding:0 10px}.latexContent{resize:none;border-radius:0}"]
40865
+ styles: [".btn-equation{width:30px;height:30px;cursor:pointer}.preview{text-align:center;margin:20px 10px}.latexContent{resize:none;border-radius:0}textarea{width:100%}"]
40860
40866
  },] }
40861
40867
  ];
40862
40868
  EquationEditorComponent.ctorParameters = () => [
40863
40869
  { type: Injector },
40864
- { type: TemplateService },
40870
+ { type: TemplateInstanceService },
40865
40871
  { type: DomSanitizer }
40866
40872
  ];
40867
40873
  EquationEditorComponent.propDecorators = {
@@ -44694,6 +44700,21 @@ class TnTinymceComponent extends ComponentBase {
44694
44700
  }
44695
44701
  getTinyMceConfigByMode(mode) {
44696
44702
  const $this = this;
44703
+ tinymce.PluginManager.add('equation', function (editor) {
44704
+ const openDialog = function () {
44705
+ $this.header = 'Công thức toán học (dùng laTex)';
44706
+ $this.equationFormModel.show = true;
44707
+ $this.popupSize = { width: 1200, height: 700 };
44708
+ };
44709
+ editor.ui.registry.addButton('equation', {
44710
+ tooltip: 'Công thức toán học vào nội dung',
44711
+ // icon: 'insert-character',
44712
+ icon: 'ltr',
44713
+ onAction: function () {
44714
+ openDialog();
44715
+ }
44716
+ });
44717
+ });
44697
44718
  tinymce.PluginManager.add('addNews', function (editor) {
44698
44719
  const openDialog = function () {
44699
44720
  $this.header = 'Thêm/Chọn tin bài';
@@ -44717,7 +44738,7 @@ class TnTinymceComponent extends ComponentBase {
44717
44738
  };
44718
44739
  editor.ui.registry.addButton('template', {
44719
44740
  tooltip: 'Template',
44720
- icon: 'non-breaking',
44741
+ icon: 'template',
44721
44742
  onAction: function () {
44722
44743
  openDialog();
44723
44744
  }
@@ -44845,33 +44866,34 @@ class TnTinymceComponent extends ComponentBase {
44845
44866
  },
44846
44867
  mobile: {
44847
44868
  theme: 'silver',
44848
- plugins: ['advlist autolink lists link image charmap print preview anchor textcolor searchreplace visualblocks code fullscreen insertdatetime media table media code lists colorpicker imagetools tabfocus textcolor'],
44869
+ plugins: ['advlist autolink lists link image charmap print preview anchor textcolor searchreplace visualblocks code fullscreen insertdatetime media table media code lists colorpicker imagetools tabfocus textcolor equation'],
44849
44870
  }
44850
44871
  };
44851
44872
  if (mode == 'full') {
44852
44873
  config.plugins = [
44853
- 'advlist autolink lists link image charmap print preview anchor textcolor searchreplace visualblocks code fullscreen insertdatetime media table media code lists colorpicker imagetools tabfocus editFileNew addNews'
44874
+ 'advlist autolink lists link image charmap print preview anchor textcolor searchreplace visualblocks code fullscreen insertdatetime media table media code lists colorpicker imagetools tabfocus editFileNew addNews equation'
44854
44875
  ];
44855
- config.toolbar = 'formatselect | bold italic Strikethrough forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | table link editFileNew addNews | print removeformat undo redo | fullscreen ';
44856
- config.mobile.toolbar = 'bold italic Strikethrough forecolor backcolor | bullist numlist | fullscreen';
44857
- config.paste_data_images = true;
44876
+ config.toolbar = 'formatselect | bold italic Strikethrough forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | table link editFileNew addNews | print removeformat undo redo | equation | fullscreen ';
44877
+ config.mobile.toolbar = 'bold italic Strikethrough forecolor backcolor | bullist numlist | equation | fullscreen';
44858
44878
  return config;
44859
44879
  }
44860
44880
  else if (mode == 'medium') {
44861
- config.plugins = ['advlist autolink lists link image charmap print preview anchor textcolor searchreplace visualblocks code fullscreen insertdatetime media table media code lists colorpicker imagetools tabfocus textcolor'];
44862
- config.toolbar = 'formatselect | bold italic Strikethrough forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | table link | print removeformat undo redo | fullscreen';
44863
- config.mobile.toolbar = 'bold italic Strikethrough forecolor backcolor | bullist numlist | fullscreen';
44864
- config.paste_data_images = true;
44881
+ config.plugins = ['advlist autolink lists link image charmap print preview anchor textcolor searchreplace visualblocks code fullscreen insertdatetime media table media code lists colorpicker imagetools tabfocus textcolor equation'];
44882
+ config.toolbar = 'formatselect | bold italic Strikethrough forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | table link | print removeformat undo redo | equation | fullscreen';
44883
+ config.mobile.toolbar = 'bold italic Strikethrough forecolor backcolor | bullist numlist | equation | fullscreen';
44865
44884
  return config;
44866
44885
  }
44867
44886
  else if (mode == 'simple') {
44868
- config.plugins = ['advlist autolink lists link image charmap print preview anchor textcolor searchreplace visualblocks code fullscreen insertdatetime media table media code lists colorpicker imagetools tabfocus textcolor'];
44869
- config.toolbar = 'bold italic Strikethrough forecolor backcolor | bullist numlist | fullscreen';
44870
- config.mobile.toolbar = 'fullscreen | bold italic Strikethrough forecolor backcolor | bullist numlist';
44887
+ config.plugins = ['advlist autolink lists link image charmap print preview anchor textcolor searchreplace visualblocks code fullscreen insertdatetime media table media code lists colorpicker imagetools tabfocus textcolor equation'];
44888
+ config.toolbar = 'bold italic Strikethrough forecolor backcolor | bullist numlist | equation | fullscreen';
44889
+ config.mobile.toolbar = 'fullscreen | bold italic Strikethrough forecolor backcolor | bullist numlist | equation';
44890
+ return config;
44891
+ }
44892
+ else {
44893
+ config.plugins = ['advlist autolink lists link image charmap print preview anchor textcolor searchreplace visualblocks code fullscreen insertdatetime media table media code lists colorpicker imagetools tabfocus textcolor equation'];
44894
+ config.toolbar = 'formatselect | bold italic Strikethrough forecolor backcolor| alignleft aligncenter alignright alignjustify | bullist numlist | equation';
44895
+ config.toolbar = 'bold italic Strikethrough forecolor backcolor | bullist numlist | equation | fullscreen';
44871
44896
  }
44872
- config.plugins = ['advlist autolink lists link image charmap print preview anchor textcolor searchreplace visualblocks code fullscreen insertdatetime media table media code lists colorpicker imagetools tabfocus textcolor'];
44873
- config.toolbar = 'formatselect | bold italic Strikethrough forecolor backcolor| alignleft aligncenter alignright alignjustify | bullist numlist';
44874
- config.toolbar = 'bold italic Strikethrough forecolor backcolor | bullist numlist | fullscreen';
44875
44897
  config.paste_data_images = true;
44876
44898
  return config;
44877
44899
  }
@@ -44894,8 +44916,14 @@ class TnTinymceComponent extends ComponentBase {
44894
44916
  this.keydown.next({ event: e, topic });
44895
44917
  }
44896
44918
  handleOk(evt) {
44897
- const data = this.equationForm.preview.nativeElement.outerHTML;
44898
- this.editor.execCommand('mceInsertContent', true, data);
44919
+ const html = this.equationForm.preview.nativeElement;
44920
+ html.height = 41;
44921
+ let data = html.outerHTML;
44922
+ if (data) {
44923
+ data = data.replace(/width\s*=\s*"(.+?)"/g, '');
44924
+ this.editor.insertContent(data);
44925
+ }
44926
+ this.equationFormModel.show = false;
44899
44927
  }
44900
44928
  focusTrap(event) {
44901
44929
  if (this.editor) {
@@ -45022,7 +45050,7 @@ class TnTinymceComponent extends ComponentBase {
45022
45050
  TnTinymceComponent.decorators = [
45023
45051
  { type: Component, args: [{
45024
45052
  selector: 'tn-tinymce',
45025
- template: "<input *ngIf=\"!_deviceDetectorService.isDesktop()\" class=\"input-tab-trap\" (focus)=\"focusTrap($event)\" />\n<textarea class=\"tinymce-control\" id={{id}} [ngStyle]=\"{height: height+'px'}\"></textarea>\n<tn-dialog #dialog *ngIf=\"equationFormModel.show\" [closeOnEscape]=\"false\"\n [header]=\"'C\u00F4ng th\u1EE9c to\u00E1n h\u1ECDc (d\u00F9ng laTex)' | translate\" [popupSize]=\"popupSize\">\n <tn-custom-scrollbar #scrollbar>\n <equation-editor [data]=\"dataEquation\">\n </equation-editor>\n </tn-custom-scrollbar>\n <ng-template #footer>\n <button icon=\"fas fa-check\" [disabled]=\"model.submitting\" pButton type=\"button\" (click)=\"handleOk($event)\"\n [label]=\"'Ok' | translate\"></button>\n <button icon=\"fas fa-undo\" [disabled]=\"model.submitting\" pButton class=\"ui-button-secondary\" type=\"button\"\n (click)=\"equationFormModel.show = false\" [label]=\"'FORM.CANCEL' | translate\"></button>\n </ng-template>\n</tn-dialog>\n\n<tn-dialog *ngIf=\"isAddNews\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\" [popupSize]=\"popupSize\"\n (onHide)=\"isAddNews = false\">\n <add-news #listBase [languageCode]=\"languageCode\" (showChange)=\"showChanged($event)\"></add-news>\n</tn-dialog>\n\n<tn-dialog *ngIf=\"showTemplate\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\"\n [popupSize]=\"popupSize\" (onHide)=\"showTemplate = false\">\n <tn-template (onChanged)=\"addTemplate($event)\"></tn-template>\n</tn-dialog>\n\n<tn-dialog *ngIf=\"isAddFile\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\" [popupSize]=\"popupSize\"\n (onHide)=\"isAddFile = false\">\n <file-picker-dialog #formBase [parentModel]=\" model\" [parentContext]=\"context\" (closeForm)=\"isAddFile = false\"\n (onCancel)=\"handleRFCancel($event)\" (onChanged)=\"showChanged($event)\">\n </file-picker-dialog>\n</tn-dialog>",
45053
+ template: "<input *ngIf=\"!_deviceDetectorService.isDesktop()\" class=\"input-tab-trap\" (focus)=\"focusTrap($event)\" />\n<textarea class=\"tinymce-control\" id={{id}} [ngStyle]=\"{height: height+'px'}\"></textarea>\n<tn-dialog #dialog *ngIf=\"equationFormModel.show\" [closeOnEscape]=\"false\"\n [header]=\"'C\u00F4ng th\u1EE9c to\u00E1n h\u1ECDc (d\u00F9ng laTex)' | translate\" [popupSize]=\"popupSize\"\n (onHide)=\"equationFormModel.show = false\">\n <tn-custom-scrollbar #scrollbar>\n <equation-editor [data]=\"dataEquation\">\n </equation-editor>\n </tn-custom-scrollbar>\n <ng-template #footer>\n <button icon=\"fas fa-check\" class=\"p-button-text\" [disabled]=\"model.submitting\" pButton type=\"button\"\n (click)=\"handleOk($event)\" [label]=\"'X\u00E1c nh\u1EADn' | translate\"></button>\n <button icon=\"fas fa-undo\" [disabled]=\"model.submitting\" pButton class=\"p-button-text p-button-secondary\"\n type=\"button\" (click)=\"equationFormModel.show = false\" [label]=\"'FORM.CANCEL' | translate\"></button>\n </ng-template>\n</tn-dialog>\n\n<tn-dialog *ngIf=\"isAddNews\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\" [popupSize]=\"popupSize\"\n (onHide)=\"isAddNews = false\">\n <add-news #listBase [languageCode]=\"languageCode\" (showChange)=\"showChanged($event)\"></add-news>\n</tn-dialog>\n\n<tn-dialog *ngIf=\"showTemplate\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\"\n [popupSize]=\"popupSize\" (onHide)=\"showTemplate = false\">\n <tn-template (onChanged)=\"addTemplate($event)\"></tn-template>\n</tn-dialog>\n\n<tn-dialog *ngIf=\"isAddFile\" #dialog [styleClass]=\"'address-form'\" [header]=\"header | translate\" [popupSize]=\"popupSize\"\n (onHide)=\"isAddFile = false\">\n <file-picker-dialog #formBase [parentModel]=\" model\" [parentContext]=\"context\" (closeForm)=\"isAddFile = false\"\n (onCancel)=\"handleRFCancel($event)\" (onChanged)=\"showChanged($event)\">\n </file-picker-dialog>\n</tn-dialog>",
45026
45054
  providers: [
45027
45055
  {
45028
45056
  provide: NG_VALUE_ACCESSOR,