@seniorsistemas/tmsx-angular-components 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/bundles/seniorsistemas-tmsx-angular-components.umd.js +130 -371
  2. package/bundles/seniorsistemas-tmsx-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-tmsx-angular-components.umd.min.js +1 -15
  4. package/bundles/seniorsistemas-tmsx-angular-components.umd.min.js.map +1 -1
  5. package/components/painel-processamento/painel-processamento.component.d.ts +4 -1
  6. package/esm2015/components/grid-editable-nested/grid-editable-nested.component.js +5 -5
  7. package/esm2015/components/grid-editable-nested/grid-editable-nested.module.js +2 -7
  8. package/esm2015/components/painel-processamento/painel-processamento.component.js +54 -19
  9. package/esm2015/components/painel-processamento/processamento.js +5 -5
  10. package/esm2015/locale/fallback.js +37 -331
  11. package/esm2015/utils/services/utils.service.js +10 -10
  12. package/esm5/components/grid-editable-nested/grid-editable-nested.component.js +5 -5
  13. package/esm5/components/grid-editable-nested/grid-editable-nested.module.js +2 -7
  14. package/esm5/components/painel-processamento/painel-processamento.component.js +73 -19
  15. package/esm5/components/painel-processamento/processamento.js +5 -5
  16. package/esm5/locale/fallback.js +37 -331
  17. package/esm5/utils/services/utils.service.js +10 -10
  18. package/fesm2015/seniorsistemas-tmsx-angular-components.js +108 -371
  19. package/fesm2015/seniorsistemas-tmsx-angular-components.js.map +1 -1
  20. package/fesm5/seniorsistemas-tmsx-angular-components.js +127 -371
  21. package/fesm5/seniorsistemas-tmsx-angular-components.js.map +1 -1
  22. package/package.json +4 -4
  23. package/seniorsistemas-tmsx-angular-components.metadata.json +1 -1
@@ -16,7 +16,7 @@ let UtilsService = class UtilsService {
16
16
  }
17
17
  let date = '';
18
18
  this.dataPipe.transform(createdDate).subscribe((item) => date = item.split(' '));
19
- return this.translate.instant('tmsx_com.tmsx_angular_components.audit_created_by', { nome: createdBy, data: date[0], hora: date[1] });
19
+ return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_created_by', { nome: createdBy, data: date[0], hora: date[1] });
20
20
  }
21
21
  getAuditModifiedBy(modifiedBy, modifiedDate) {
22
22
  if (!modifiedBy || !modifiedDate) {
@@ -24,7 +24,7 @@ let UtilsService = class UtilsService {
24
24
  }
25
25
  let date = '';
26
26
  this.dataPipe.transform(modifiedDate).subscribe((item) => date = item.split(' '));
27
- return this.translate.instant('tmsx_com.tmsx_angular_components.audit_modified_by', { nome: modifiedBy, data: date[0], hora: date[1] });
27
+ return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_modified_by', { nome: modifiedBy, data: date[0], hora: date[1] });
28
28
  }
29
29
  getAuditInactivatedBy(inactivatedBy, inactivatedDate) {
30
30
  if (!inactivatedBy || !inactivatedDate) {
@@ -32,7 +32,7 @@ let UtilsService = class UtilsService {
32
32
  }
33
33
  let date = '';
34
34
  this.dataPipe.transform(inactivatedDate).subscribe((item) => date = item.split(' '));
35
- return this.translate.instant('tmsx_com.tmsx_angular_components.audit_inactivated_by', { nome: inactivatedBy, data: date[0], hora: date[1] });
35
+ return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_inactivated_by', { nome: inactivatedBy, data: date[0], hora: date[1] });
36
36
  }
37
37
  /* usage: [innerHTML]="getProp(rowData, 'nome')" */
38
38
  getProp(obj, path, type) {
@@ -43,7 +43,7 @@ let UtilsService = class UtilsService {
43
43
  }
44
44
  return `<span>${value}</span>`;
45
45
  }
46
- return `<span class="empty-grid">${this.translate.instant('tmsx_com.tmsx_angular_components.list_grid_empty_field')}</span>`;
46
+ return `<span class="empty-grid">${this.translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_empty_field')}</span>`;
47
47
  }
48
48
  formatType(value, type) {
49
49
  if (value) {
@@ -82,7 +82,7 @@ let UtilsService = class UtilsService {
82
82
  infoContent(entity) {
83
83
  let text = '';
84
84
  if (!entity) {
85
- return this.translate.instant("tmsx_com.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit");
85
+ return this.translate.instant("tmsx_fnd.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit");
86
86
  }
87
87
  text += this.getAuditCreatedBy(entity.createdBy, entity.createdDate);
88
88
  if (text) {
@@ -98,8 +98,8 @@ let UtilsService = class UtilsService {
98
98
  const { name, type, label } = formField;
99
99
  if (type === FieldType.Radio) {
100
100
  const labelValue = value
101
- ? translate.instant('tmsx_com.tmsx_angular_components.situacao_ativo_true')
102
- : translate.instant('tmsx_com.tmsx_angular_components.situacao_ativo_false');
101
+ ? translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_true')
102
+ : translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_false');
103
103
  return { id: name, label: `${label}: ${labelValue}` };
104
104
  }
105
105
  return this.createFilterTokens(formField, value, translate);
@@ -144,8 +144,8 @@ let UtilsService = class UtilsService {
144
144
  }
145
145
  getBooleanLabel(value, translate) {
146
146
  return value
147
- ? translate.instant('tmsx_com.tmsx_angular_components.list_grid_boolean_true')
148
- : translate.instant('tmsx_com.tmsx_angular_components.list_grid_boolean_false');
147
+ ? translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_true')
148
+ : translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_false');
149
149
  }
150
150
  getTimeFromDate(value) {
151
151
  let dateObj;
@@ -193,4 +193,4 @@ UtilsService = __decorate([
193
193
  })
194
194
  ], UtilsService);
195
195
  export { UtilsService };
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy90bXN4LWFuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInV0aWxzL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFLckcsSUFBYSxZQUFZLEdBQXpCLE1BQWEsWUFBWTtJQUVyQixZQUNxQixTQUEyQixFQUMzQixRQUEyQjtRQUQzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFtQjtJQUM1QyxDQUFDO0lBRUUsaUJBQWlCLENBQUMsU0FBaUIsRUFBRSxXQUFpQjtRQUN6RCxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzlCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxtREFBbUQsRUFBRSxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBRU0s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LENBQUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRTtZQUM3QixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhO1lBQ25FLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQ25ELElBQUksRUFBRSxTQUFTO2dCQUNmLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixNQUFNLEVBQUUsU0FBUztnQkFDakIsTUFBTSxFQUFFLEtBQUs7YUFDZCxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ2YsT0FBTyxHQUFHLFFBQVEsSUFBSSxRQUFRLEVBQUUsQ0FBQztTQUNsQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFBOztZQXJNbUMsZ0JBQWdCO1lBQ2pCLGlCQUFpQjs7O0FBSnZDLFlBQVk7SUFIeEIsVUFBVSxDQUFDO1FBQ1YsVUFBVSxFQUFFLE1BQU07S0FDbkIsQ0FBQztHQUNXLFlBQVksQ0F3TXhCO1NBeE1ZLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1GaWVsZCwgTG9jYWxpemVkRGF0ZVBpcGUsIE9wdGlvbiB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVdGlsc1NlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFQaXBlOiBMb2NhbGl6ZWREYXRlUGlwZVxuICAgICkgeyB9XG5cbiAgICBwdWJsaWMgZ2V0QXVkaXRDcmVhdGVkQnkoY3JlYXRlZEJ5OiBzdHJpbmcsIGNyZWF0ZWREYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFjcmVhdGVkQnkgfHwgIWNyZWF0ZWREYXRlKSB7XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGxldCBkYXRlID0gJyc7XG4gICAgICAgIHRoaXMuZGF0YVBpcGUudHJhbnNmb3JtKGNyZWF0ZWREYXRlKS5zdWJzY3JpYmUoKGl0ZW06IGFueSkgPT4gZGF0ZSA9IGl0ZW0uc3BsaXQoJyAnKSk7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd0bXN4X2NvbS50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5hdWRpdF9jcmVhdGVkX2J5Jywge25vbWU6IGNyZWF0ZWRCeSwgZGF0YTogZGF0ZVswXSwgaG9yYTogZGF0ZVsxXX0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBdWRpdE1vZGlmaWVkQnkobW9kaWZpZWRCeTogc3RyaW5nLCBtb2RpZmllZERhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIW1vZGlmaWVkQnkgfHwgIW1vZGlmaWVkRGF0ZSkge1xuICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBsZXQgZGF0ZSA9ICcnO1xuICAgICAgICB0aGlzLmRhdGFQaXBlLnRyYW5zZm9ybShtb2RpZmllZERhdGUpLnN1YnNjcmliZSgoaXRlbTogYW55KSA9PiBkYXRlID0gaXRlbS5zcGxpdCgnICcpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmF1ZGl0X21vZGlmaWVkX2J5Jywge25vbWU6IG1vZGlmaWVkQnksIGRhdGE6IGRhdGVbMF0sIGhvcmE6IGRhdGVbMV19KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXVkaXRJbmFjdGl2YXRlZEJ5KGluYWN0aXZhdGVkQnk6IHN0cmluZywgaW5hY3RpdmF0ZWREYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFpbmFjdGl2YXRlZEJ5IHx8ICFpbmFjdGl2YXRlZERhdGUpIHtcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGRhdGUgPSAnJztcbiAgICAgICAgdGhpcy5kYXRhUGlwZS50cmFuc2Zvcm0oaW5hY3RpdmF0ZWREYXRlKS5zdWJzY3JpYmUoKGl0ZW06IGFueSkgPT4gZGF0ZSA9IGl0ZW0uc3BsaXQoJyAnKSk7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd0bXN4X2NvbS50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5hdWRpdF9pbmFjdGl2YXRlZF9ieScsIHtub21lOiBpbmFjdGl2YXRlZEJ5LCBkYXRhOiBkYXRlWzBdLCBob3JhOiBkYXRlWzFdfSk7XG4gICAgfVxuXG4gICAgLyogdXNhZ2U6IFtpbm5lckhUTUxdPVwiZ2V0UHJvcChyb3dEYXRhLCAnbm9tZScpXCIgKi9cbiAgICBwdWJsaWMgZ2V0UHJvcChvYmo6IGFueSwgcGF0aDogYW55LCB0eXBlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHZhbHVlID0gcGF0aC5zcGxpdCgnLicpLnJlZHVjZSgocmVzdWx0OiBhbnksIHByb3A6IGFueSkgPT4gKHJlc3VsdFtwcm9wXSA9PT0gdW5kZWZpbmVkID8gJycgOiByZXN1bHRbcHJvcF0pLCBvYmopO1xuICAgICAgICBpZiAodmFsdWUgfHwgdmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmZvcm1hdFR5cGUodmFsdWUsIHR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGA8c3Bhbj4ke3ZhbHVlfTwvc3Bhbj5gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCJlbXB0eS1ncmlkXCI+JHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd0bXN4X2NvbS50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5saXN0X2dyaWRfZW1wdHlfZmllbGQnKX08L3NwYW4+YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9ybWF0VHlwZSh2YWx1ZTogYW55LCB0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnZGF0ZScpIHtcbiAgICAgICAgICAgICAgICBsZXQgZGF0ZSA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YVBpcGUudHJhbnNmb3JtKHZhbHVlKS5zdWJzY3JpYmUoKGl0ZW06IGFueSkgPT4gZGF0ZSA9IGl0ZW0uc3BsaXQoJyAnKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGVbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2RhdGV0aW1lJykge1xuICAgICAgICAgICAgICAgIGxldCBkYXRlID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhUGlwZS50cmFuc2Zvcm0odmFsdWUpLnN1YnNjcmliZSgoaXRlbTogYW55KSA9PiBkYXRlID0gaXRlbSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2RlY2ltYWwnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9Mb2NhbGVTdHJpbmcoJ3B0LUJSJywgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnY3VycmVuY3knKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvTG9jYWxlU3RyaW5nKCdwdC1CUicsIHsgc3R5bGU6ICdjdXJyZW5jeScsIGN1cnJlbmN5OiAnQlJMJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnY2VwJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9eKFxcZHsyfSkoXFxkezN9KShcXGR7M30pLywgJyQxLiQyLSQzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qIHVzYWdlOiBbbmdDbGFzc109XCJlbXB0eUdyaWRDbGFzcyh2YWx1ZSlcIiAqL1xuICAgIHB1YmxpYyBlbXB0eUdyaWRDbGFzcyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9mbmQucmVwbGljYWNhby5saXN0X2dyaWRfZW1wdHlfZmllbGQnKSkge1xuICAgICAgICAgICAgcmV0dXJuICdlbXB0eS1ncmlkJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGluZm9Db250ZW50KGVudGl0eT86IGFueSkge1xuICAgICAgICBsZXQgdGV4dCA9ICcnO1xuICAgICAgICBpZiAoIWVudGl0eSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ0bXN4X2NvbS50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5jb25kaWNhb192YWxvcl9sb29rdXBfY29uZGljaW9uYWxfbm9fYXVkaXRcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGV4dCArPSB0aGlzLmdldEF1ZGl0Q3JlYXRlZEJ5KGVudGl0eS5jcmVhdGVkQnksIGVudGl0eS5jcmVhdGVkRGF0ZSk7XG4gICAgICAgIGlmICh0ZXh0KSB7XG4gICAgICAgICAgdGV4dCArPSAnXFxuJztcbiAgICAgICAgfVxuICAgICAgICB0ZXh0ICs9IHRoaXMuZ2V0QXVkaXRNb2RpZmllZEJ5KGVudGl0eS5sYXN0TW9kaWZpZWRCeSwgZW50aXR5Lmxhc3RNb2RpZmllZERhdGUpO1xuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9ybWF0Q3VycmVuY3kodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50b0xvY2FsZVN0cmluZygncHQtQlInLCB7IHN0eWxlOiAnY3VycmVuY3knLCBjdXJyZW5jeTogJ0JSTCcgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEF0aXZvVG9rZW5MYWJlbChmb3JtRmllbGQ6IEZvcm1GaWVsZCwgdmFsdWU6IGFueSwgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgdHlwZSwgbGFiZWwgfSA9IGZvcm1GaWVsZCBhcyBhbnk7XG4gICAgICAgIGlmICh0eXBlID09PSBGaWVsZFR5cGUuUmFkaW8pIHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsVmFsdWUgPSB2YWx1ZVxuICAgICAgICAgICAgICAgID8gdHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnNpdHVhY2FvX2F0aXZvX3RydWUnKVxuICAgICAgICAgICAgICAgIDogdHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnNpdHVhY2FvX2F0aXZvX2ZhbHNlJyk7XG4gICAgICAgICAgICByZXR1cm4geyBpZDogbmFtZSwgbGFiZWw6IGAke2xhYmVsfTogJHtsYWJlbFZhbHVlfWAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVGaWx0ZXJUb2tlbnMoZm9ybUZpZWxkLCB2YWx1ZSwgdHJhbnNsYXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VXRpbHNQcm9wKG9iajogYW55LCBwYXRoOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHBhdGguc3BsaXQoJy4nKS5yZWR1Y2UoKHJlc3VsdDogYW55LCBwcm9wOiBhbnkpID0+IChyZXN1bHRbcHJvcF0gPT09IHVuZGVmaW5lZCA/ICcnIDogcmVzdWx0W3Byb3BdKSwgb2JqKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlRmlsdGVyVG9rZW5zKGZvcm1GaWVsZDogRm9ybUZpZWxkLCB2YWx1ZTogYW55LCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgdHlwZSwgbGFiZWwsIHNlYXJjaEZpZWxkcywgb3B0aW9ucyB9ID0gZm9ybUZpZWxkIGFzIGFueTtcbiAgICAgIGNvbnN0IGxhYmVsVmFsdWUgPSB0aGlzLmdldExhYmVsVmFsdWVCeVR5cGUodHlwZSwgdmFsdWUsIHNlYXJjaEZpZWxkcywgb3B0aW9ucywgdHJhbnNsYXRlKTtcbiAgICAgIHJldHVybiB7IGlkOiBuYW1lLCBsYWJlbDogYCR7bGFiZWx9OiAke2xhYmVsVmFsdWV9YCB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TGFiZWxWYWx1ZUJ5VHlwZShcbiAgICAgIHR5cGU6IEZpZWxkVHlwZSxcbiAgICAgIHZhbHVlOiBhbnksXG4gICAgICBzZWFyY2hGaWVsZHM6IEZvcm1GaWVsZFtdLFxuICAgICAgb3B0aW9uczogT3B0aW9uW10sXG4gICAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApOiBzdHJpbmcge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZUxhYmVsKHZhbHVlKTtcbiAgICAgICAgY2FzZSBGaWVsZFR5cGUuVGltZTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUaW1lRnJvbURhdGUodmFsdWUpO1xuICAgICAgICBjYXNlIEZpZWxkVHlwZS5Mb2NhbERhdGVUaW1lOlxuICAgICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlVGltZTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlVGltZUZyb21EYXRlKHZhbHVlKTtcbiAgICAgICAgY2FzZSBGaWVsZFR5cGUuTG9va3VwOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldExvb2t1cExhYmVsKHZhbHVlLCBzZWFyY2hGaWVsZHMpO1xuICAgICAgICBjYXNlIEZpZWxkVHlwZS5FbnVtOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldEVudW1MYWJlbCh2YWx1ZSwgb3B0aW9ucyk7XG4gICAgICAgIGNhc2UgRmllbGRUeXBlLkJvb2xlYW46XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Qm9vbGVhbkxhYmVsKHZhbHVlLCB0cmFuc2xhdGUpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGVMYWJlbCh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgIGNvbnN0IGRhdGVPYmogPSB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgIHJldHVybiAhaXNOYU4oZGF0ZU9iai5nZXRUaW1lKCkpID8gZGF0ZU9iai50b0xvY2FsZURhdGVTdHJpbmcoJ3B0LUJSJykgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExvb2t1cExhYmVsKHZhbHVlOiBhbnksIHNlYXJjaEZpZWxkczogRm9ybUZpZWxkW10pOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHNlYXJjaEZpZWxkcy5tYXAoKGZpZWxkOiBGb3JtRmllbGQpID0+IHRoaXMuZ2V0VXRpbHNQcm9wKHZhbHVlLCBmaWVsZC5uYW1lKSkuam9pbignIC0gJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFbnVtTGFiZWwodmFsdWU6IGFueSwgb3B0aW9uczogT3B0aW9uW10pOiBzdHJpbmcge1xuICAgICAgY29uc3Qgb3B0aW9uID0gb3B0aW9ucy5maW5kKChvcHQ6IE9wdGlvbikgPT4gb3B0LnZhbHVlID09PSB2YWx1ZSk7XG4gICAgICByZXR1cm4gb3B0aW9uID8gb3B0aW9uLmxhYmVsIDogdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRCb29sZWFuTGFiZWwodmFsdWU6IGFueSwgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgPyB0cmFuc2xhdGUuaW5zdGFudCgndG1zeF9jb20udG1zeF9hbmd1bGFyX2NvbXBvbmVudHMubGlzdF9ncmlkX2Jvb2xlYW5fdHJ1ZScpXG4gICAgICAgICAgICA6IHRyYW5zbGF0ZS5pbnN0YW50KCd0bXN4X2NvbS50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5saXN0X2dyaWRfYm9vbGVhbl9mYWxzZScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUaW1lRnJvbURhdGUodmFsdWU6IGFueSkge1xuICAgICAgIGxldCBkYXRlT2JqOiBEYXRlO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAvXlxcZHsyfTpcXGR7Mn0oOlxcZHsyfSk/JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCBbaCwgbSwgcyA9ICcwMCddID0gdmFsdWUuc3BsaXQoJzonKTtcbiAgICAgICAgICBkYXRlT2JqID0gbmV3IERhdGUoKTtcbiAgICAgICAgICBkYXRlT2JqLnNldEhvdXJzKCtoLCArbSwgK3MsIDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGVPYmogPSB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTmFOKGRhdGVPYmouZ2V0VGltZSgpKSkge1xuICAgICAgICAgIHJldHVybiBkYXRlT2JqLnRvTG9jYWxlVGltZVN0cmluZygncHQtQlInLCB7XG4gICAgICAgICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgIHNlY29uZDogJzItZGlnaXQnLFxuICAgICAgICAgICAgaG91cjEyOiBmYWxzZVxuICAgICAgICAgIH0pOyAvLyBISDptbTpzc1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGF0ZVRpbWVGcm9tRGF0ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGNvbnN0IGRhdGVPYmogPSB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgaWYgKCFpc05hTihkYXRlT2JqLmdldFRpbWUoKSkpIHtcbiAgICAgICAgICBjb25zdCBkYXRlUGFydCA9IGRhdGVPYmoudG9Mb2NhbGVEYXRlU3RyaW5nKCdwdC1CUicpOyAvLyBERC9NTS9BQUFBXG4gICAgICAgICAgY29uc3QgdGltZVBhcnQgPSBkYXRlT2JqLnRvTG9jYWxlVGltZVN0cmluZygncHQtQlInLCB7XG4gICAgICAgICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgIHNlY29uZDogJzItZGlnaXQnLFxuICAgICAgICAgICAgaG91cjEyOiBmYWxzZVxuICAgICAgICAgIH0pOyAvLyBISDptbTpzc1xuICAgICAgICAgIHJldHVybiBgJHtkYXRlUGFydH0gJHt0aW1lUGFydH1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59XG4iXX0=
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy90bXN4LWFuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInV0aWxzL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFLckcsSUFBYSxZQUFZLEdBQXpCLE1BQWEsWUFBWTtJQUVyQixZQUNxQixTQUEyQixFQUMzQixRQUEyQjtRQUQzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFtQjtJQUM1QyxDQUFDO0lBRUUsaUJBQWlCLENBQUMsU0FBaUIsRUFBRSxXQUFpQjtRQUN6RCxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzlCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxtREFBbUQsRUFBRSxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBRU0s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LENBQUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRTtZQUM3QixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhO1lBQ25FLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQ25ELElBQUksRUFBRSxTQUFTO2dCQUNmLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixNQUFNLEVBQUUsU0FBUztnQkFDakIsTUFBTSxFQUFFLEtBQUs7YUFDZCxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ2YsT0FBTyxHQUFHLFFBQVEsSUFBSSxRQUFRLEVBQUUsQ0FBQztTQUNsQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFBOztZQXJNbUMsZ0JBQWdCO1lBQ2pCLGlCQUFpQjs7O0FBSnZDLFlBQVk7SUFIeEIsVUFBVSxDQUFDO1FBQ1YsVUFBVSxFQUFFLE1BQU07S0FDbkIsQ0FBQztHQUNXLFlBQVksQ0F3TXhCO1NBeE1ZLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1GaWVsZCwgTG9jYWxpemVkRGF0ZVBpcGUsIE9wdGlvbiB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVdGlsc1NlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFQaXBlOiBMb2NhbGl6ZWREYXRlUGlwZVxuICAgICkgeyB9XG5cbiAgICBwdWJsaWMgZ2V0QXVkaXRDcmVhdGVkQnkoY3JlYXRlZEJ5OiBzdHJpbmcsIGNyZWF0ZWREYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFjcmVhdGVkQnkgfHwgIWNyZWF0ZWREYXRlKSB7XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGxldCBkYXRlID0gJyc7XG4gICAgICAgIHRoaXMuZGF0YVBpcGUudHJhbnNmb3JtKGNyZWF0ZWREYXRlKS5zdWJzY3JpYmUoKGl0ZW06IGFueSkgPT4gZGF0ZSA9IGl0ZW0uc3BsaXQoJyAnKSk7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5hdWRpdF9jcmVhdGVkX2J5Jywge25vbWU6IGNyZWF0ZWRCeSwgZGF0YTogZGF0ZVswXSwgaG9yYTogZGF0ZVsxXX0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBdWRpdE1vZGlmaWVkQnkobW9kaWZpZWRCeTogc3RyaW5nLCBtb2RpZmllZERhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIW1vZGlmaWVkQnkgfHwgIW1vZGlmaWVkRGF0ZSkge1xuICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBsZXQgZGF0ZSA9ICcnO1xuICAgICAgICB0aGlzLmRhdGFQaXBlLnRyYW5zZm9ybShtb2RpZmllZERhdGUpLnN1YnNjcmliZSgoaXRlbTogYW55KSA9PiBkYXRlID0gaXRlbS5zcGxpdCgnICcpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmF1ZGl0X21vZGlmaWVkX2J5Jywge25vbWU6IG1vZGlmaWVkQnksIGRhdGE6IGRhdGVbMF0sIGhvcmE6IGRhdGVbMV19KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXVkaXRJbmFjdGl2YXRlZEJ5KGluYWN0aXZhdGVkQnk6IHN0cmluZywgaW5hY3RpdmF0ZWREYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFpbmFjdGl2YXRlZEJ5IHx8ICFpbmFjdGl2YXRlZERhdGUpIHtcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGRhdGUgPSAnJztcbiAgICAgICAgdGhpcy5kYXRhUGlwZS50cmFuc2Zvcm0oaW5hY3RpdmF0ZWREYXRlKS5zdWJzY3JpYmUoKGl0ZW06IGFueSkgPT4gZGF0ZSA9IGl0ZW0uc3BsaXQoJyAnKSk7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5hdWRpdF9pbmFjdGl2YXRlZF9ieScsIHtub21lOiBpbmFjdGl2YXRlZEJ5LCBkYXRhOiBkYXRlWzBdLCBob3JhOiBkYXRlWzFdfSk7XG4gICAgfVxuXG4gICAgLyogdXNhZ2U6IFtpbm5lckhUTUxdPVwiZ2V0UHJvcChyb3dEYXRhLCAnbm9tZScpXCIgKi9cbiAgICBwdWJsaWMgZ2V0UHJvcChvYmo6IGFueSwgcGF0aDogYW55LCB0eXBlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHZhbHVlID0gcGF0aC5zcGxpdCgnLicpLnJlZHVjZSgocmVzdWx0OiBhbnksIHByb3A6IGFueSkgPT4gKHJlc3VsdFtwcm9wXSA9PT0gdW5kZWZpbmVkID8gJycgOiByZXN1bHRbcHJvcF0pLCBvYmopO1xuICAgICAgICBpZiAodmFsdWUgfHwgdmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmZvcm1hdFR5cGUodmFsdWUsIHR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGA8c3Bhbj4ke3ZhbHVlfTwvc3Bhbj5gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCJlbXB0eS1ncmlkXCI+JHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5saXN0X2dyaWRfZW1wdHlfZmllbGQnKX08L3NwYW4+YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9ybWF0VHlwZSh2YWx1ZTogYW55LCB0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnZGF0ZScpIHtcbiAgICAgICAgICAgICAgICBsZXQgZGF0ZSA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YVBpcGUudHJhbnNmb3JtKHZhbHVlKS5zdWJzY3JpYmUoKGl0ZW06IGFueSkgPT4gZGF0ZSA9IGl0ZW0uc3BsaXQoJyAnKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGVbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2RhdGV0aW1lJykge1xuICAgICAgICAgICAgICAgIGxldCBkYXRlID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhUGlwZS50cmFuc2Zvcm0odmFsdWUpLnN1YnNjcmliZSgoaXRlbTogYW55KSA9PiBkYXRlID0gaXRlbSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2RlY2ltYWwnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9Mb2NhbGVTdHJpbmcoJ3B0LUJSJywgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnY3VycmVuY3knKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvTG9jYWxlU3RyaW5nKCdwdC1CUicsIHsgc3R5bGU6ICdjdXJyZW5jeScsIGN1cnJlbmN5OiAnQlJMJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnY2VwJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9eKFxcZHsyfSkoXFxkezN9KShcXGR7M30pLywgJyQxLiQyLSQzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qIHVzYWdlOiBbbmdDbGFzc109XCJlbXB0eUdyaWRDbGFzcyh2YWx1ZSlcIiAqL1xuICAgIHB1YmxpYyBlbXB0eUdyaWRDbGFzcyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9mbmQucmVwbGljYWNhby5saXN0X2dyaWRfZW1wdHlfZmllbGQnKSkge1xuICAgICAgICAgICAgcmV0dXJuICdlbXB0eS1ncmlkJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGluZm9Db250ZW50KGVudGl0eT86IGFueSkge1xuICAgICAgICBsZXQgdGV4dCA9ICcnO1xuICAgICAgICBpZiAoIWVudGl0eSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5jb25kaWNhb192YWxvcl9sb29rdXBfY29uZGljaW9uYWxfbm9fYXVkaXRcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGV4dCArPSB0aGlzLmdldEF1ZGl0Q3JlYXRlZEJ5KGVudGl0eS5jcmVhdGVkQnksIGVudGl0eS5jcmVhdGVkRGF0ZSk7XG4gICAgICAgIGlmICh0ZXh0KSB7XG4gICAgICAgICAgdGV4dCArPSAnXFxuJztcbiAgICAgICAgfVxuICAgICAgICB0ZXh0ICs9IHRoaXMuZ2V0QXVkaXRNb2RpZmllZEJ5KGVudGl0eS5sYXN0TW9kaWZpZWRCeSwgZW50aXR5Lmxhc3RNb2RpZmllZERhdGUpO1xuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9ybWF0Q3VycmVuY3kodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50b0xvY2FsZVN0cmluZygncHQtQlInLCB7IHN0eWxlOiAnY3VycmVuY3knLCBjdXJyZW5jeTogJ0JSTCcgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEF0aXZvVG9rZW5MYWJlbChmb3JtRmllbGQ6IEZvcm1GaWVsZCwgdmFsdWU6IGFueSwgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgdHlwZSwgbGFiZWwgfSA9IGZvcm1GaWVsZCBhcyBhbnk7XG4gICAgICAgIGlmICh0eXBlID09PSBGaWVsZFR5cGUuUmFkaW8pIHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsVmFsdWUgPSB2YWx1ZVxuICAgICAgICAgICAgICAgID8gdHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnNpdHVhY2FvX2F0aXZvX3RydWUnKVxuICAgICAgICAgICAgICAgIDogdHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnNpdHVhY2FvX2F0aXZvX2ZhbHNlJyk7XG4gICAgICAgICAgICByZXR1cm4geyBpZDogbmFtZSwgbGFiZWw6IGAke2xhYmVsfTogJHtsYWJlbFZhbHVlfWAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVGaWx0ZXJUb2tlbnMoZm9ybUZpZWxkLCB2YWx1ZSwgdHJhbnNsYXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VXRpbHNQcm9wKG9iajogYW55LCBwYXRoOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHBhdGguc3BsaXQoJy4nKS5yZWR1Y2UoKHJlc3VsdDogYW55LCBwcm9wOiBhbnkpID0+IChyZXN1bHRbcHJvcF0gPT09IHVuZGVmaW5lZCA/ICcnIDogcmVzdWx0W3Byb3BdKSwgb2JqKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlRmlsdGVyVG9rZW5zKGZvcm1GaWVsZDogRm9ybUZpZWxkLCB2YWx1ZTogYW55LCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgdHlwZSwgbGFiZWwsIHNlYXJjaEZpZWxkcywgb3B0aW9ucyB9ID0gZm9ybUZpZWxkIGFzIGFueTtcbiAgICAgIGNvbnN0IGxhYmVsVmFsdWUgPSB0aGlzLmdldExhYmVsVmFsdWVCeVR5cGUodHlwZSwgdmFsdWUsIHNlYXJjaEZpZWxkcywgb3B0aW9ucywgdHJhbnNsYXRlKTtcbiAgICAgIHJldHVybiB7IGlkOiBuYW1lLCBsYWJlbDogYCR7bGFiZWx9OiAke2xhYmVsVmFsdWV9YCB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TGFiZWxWYWx1ZUJ5VHlwZShcbiAgICAgIHR5cGU6IEZpZWxkVHlwZSxcbiAgICAgIHZhbHVlOiBhbnksXG4gICAgICBzZWFyY2hGaWVsZHM6IEZvcm1GaWVsZFtdLFxuICAgICAgb3B0aW9uczogT3B0aW9uW10sXG4gICAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApOiBzdHJpbmcge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZUxhYmVsKHZhbHVlKTtcbiAgICAgICAgY2FzZSBGaWVsZFR5cGUuVGltZTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUaW1lRnJvbURhdGUodmFsdWUpO1xuICAgICAgICBjYXNlIEZpZWxkVHlwZS5Mb2NhbERhdGVUaW1lOlxuICAgICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlVGltZTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlVGltZUZyb21EYXRlKHZhbHVlKTtcbiAgICAgICAgY2FzZSBGaWVsZFR5cGUuTG9va3VwOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldExvb2t1cExhYmVsKHZhbHVlLCBzZWFyY2hGaWVsZHMpO1xuICAgICAgICBjYXNlIEZpZWxkVHlwZS5FbnVtOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldEVudW1MYWJlbCh2YWx1ZSwgb3B0aW9ucyk7XG4gICAgICAgIGNhc2UgRmllbGRUeXBlLkJvb2xlYW46XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Qm9vbGVhbkxhYmVsKHZhbHVlLCB0cmFuc2xhdGUpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGVMYWJlbCh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgIGNvbnN0IGRhdGVPYmogPSB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgIHJldHVybiAhaXNOYU4oZGF0ZU9iai5nZXRUaW1lKCkpID8gZGF0ZU9iai50b0xvY2FsZURhdGVTdHJpbmcoJ3B0LUJSJykgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExvb2t1cExhYmVsKHZhbHVlOiBhbnksIHNlYXJjaEZpZWxkczogRm9ybUZpZWxkW10pOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHNlYXJjaEZpZWxkcy5tYXAoKGZpZWxkOiBGb3JtRmllbGQpID0+IHRoaXMuZ2V0VXRpbHNQcm9wKHZhbHVlLCBmaWVsZC5uYW1lKSkuam9pbignIC0gJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFbnVtTGFiZWwodmFsdWU6IGFueSwgb3B0aW9uczogT3B0aW9uW10pOiBzdHJpbmcge1xuICAgICAgY29uc3Qgb3B0aW9uID0gb3B0aW9ucy5maW5kKChvcHQ6IE9wdGlvbikgPT4gb3B0LnZhbHVlID09PSB2YWx1ZSk7XG4gICAgICByZXR1cm4gb3B0aW9uID8gb3B0aW9uLmxhYmVsIDogdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRCb29sZWFuTGFiZWwodmFsdWU6IGFueSwgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgPyB0cmFuc2xhdGUuaW5zdGFudCgndG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMubGlzdF9ncmlkX2Jvb2xlYW5fdHJ1ZScpXG4gICAgICAgICAgICA6IHRyYW5zbGF0ZS5pbnN0YW50KCd0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5saXN0X2dyaWRfYm9vbGVhbl9mYWxzZScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUaW1lRnJvbURhdGUodmFsdWU6IGFueSkge1xuICAgICAgIGxldCBkYXRlT2JqOiBEYXRlO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAvXlxcZHsyfTpcXGR7Mn0oOlxcZHsyfSk/JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCBbaCwgbSwgcyA9ICcwMCddID0gdmFsdWUuc3BsaXQoJzonKTtcbiAgICAgICAgICBkYXRlT2JqID0gbmV3IERhdGUoKTtcbiAgICAgICAgICBkYXRlT2JqLnNldEhvdXJzKCtoLCArbSwgK3MsIDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGVPYmogPSB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTmFOKGRhdGVPYmouZ2V0VGltZSgpKSkge1xuICAgICAgICAgIHJldHVybiBkYXRlT2JqLnRvTG9jYWxlVGltZVN0cmluZygncHQtQlInLCB7XG4gICAgICAgICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgIHNlY29uZDogJzItZGlnaXQnLFxuICAgICAgICAgICAgaG91cjEyOiBmYWxzZVxuICAgICAgICAgIH0pOyAvLyBISDptbTpzc1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGF0ZVRpbWVGcm9tRGF0ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGNvbnN0IGRhdGVPYmogPSB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgaWYgKCFpc05hTihkYXRlT2JqLmdldFRpbWUoKSkpIHtcbiAgICAgICAgICBjb25zdCBkYXRlUGFydCA9IGRhdGVPYmoudG9Mb2NhbGVEYXRlU3RyaW5nKCdwdC1CUicpOyAvLyBERC9NTS9BQUFBXG4gICAgICAgICAgY29uc3QgdGltZVBhcnQgPSBkYXRlT2JqLnRvTG9jYWxlVGltZVN0cmluZygncHQtQlInLCB7XG4gICAgICAgICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgIHNlY29uZDogJzItZGlnaXQnLFxuICAgICAgICAgICAgaG91cjEyOiBmYWxzZVxuICAgICAgICAgIH0pOyAvLyBISDptbTpzc1xuICAgICAgICAgIHJldHVybiBgJHtkYXRlUGFydH0gJHt0aW1lUGFydH1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59XG4iXX0=
@@ -38,7 +38,7 @@ var GridEditableNestedComponent = /** @class */ (function () {
38
38
  this.frozenWidth = '200px';
39
39
  this.frozenColumns = [];
40
40
  this.ngUnsubscribe = new Subject();
41
- this.calendarTooltipText = this.translate.instant('tmsx_com.tmsx_angular_components.grid_editable_nested_calendar_required');
41
+ this.calendarTooltipText = this.translate.instant('tmsx_fnd.tmsx_angular_components.grid_editable_nested_calendar_required');
42
42
  }
43
43
  GridEditableNestedComponent.prototype.ngOnInit = function () {
44
44
  this.setGridData();
@@ -86,7 +86,7 @@ var GridEditableNestedComponent = /** @class */ (function () {
86
86
  return [
87
87
  {
88
88
  id: 'edit',
89
- label: this.translate.instant('tmsx_com.tmsx_angular_components.edit'),
89
+ label: this.translate.instant('tmsx_fnd.tmsx_angular_components.edit'),
90
90
  disabled: !this.detailsEnabled,
91
91
  command: function () {
92
92
  _this.openRowDetails(data.id);
@@ -95,7 +95,7 @@ var GridEditableNestedComponent = /** @class */ (function () {
95
95
  { separator: true },
96
96
  {
97
97
  id: 'delete',
98
- label: this.translate.instant('tmsx_com.tmsx_angular_components.delete'),
98
+ label: this.translate.instant('tmsx_fnd.tmsx_angular_components.delete'),
99
99
  disabled: !this.deleteEnabled,
100
100
  command: function () {
101
101
  _this.onDelete(data.id);
@@ -272,11 +272,11 @@ var GridEditableNestedComponent = /** @class */ (function () {
272
272
  }),
273
273
  Component({
274
274
  selector: 'tmsx-grid-editable-nested',
275
- template: "<div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button id=\"add-button\"\n data-cy=\"add-button\"\n priority=\"primary\" type=\"button\"\n [label]=\"'tmsx_com.tmsx_angular_components.add' | translate\"\n tooltip=\"{{'tmsx_com.tmsx_angular_components.add' | translate}} (Alt + Shift + N)\"\n [disabled]=\"!addEnabled\"\n (click)=\"onAdd()\">\n </s-button>\n <s-button\n *ngIf=\"!editing\"\n priority=\"primary\"\n iconClass=\"fa fa-edit\"\n label=\"{{'tmsx_com.tmsx_angular_components.grid_editable_nested_editar' | translate}}\"\n tooltip=\"{{'tmsx_com.tmsx_angular_components.grid_editable_nested_editar' | translate}}\"\n [disabled]=\"!editEnabled\"\n sTieredMenu\n (click)=\"initAllRowsEdit()\"\n ></s-button>\n <s-button\n *ngIf=\"editing\"\n priority=\"primary\"\n label=\"{{'tmsx_com.tmsx_angular_components.grid_editable_nested_salvar' | translate}}\"\n iconClass=\"fa fa-check\"\n [disabled]=\"false\"\n (click)=\"onEditSave()\"\n ></s-button>\n <s-button\n *ngIf=\"editing\"\n priority=\"default\"\n label=\"{{'tmsx_com.tmsx_angular_components.grid_editable_nested_cancelar' | translate}}\"\n iconClass=\"fa fa-times\"\n [disabled]=\"false\"\n (click)=\"onEditCancel()\"\n ></s-button>\n <p-table\n selectionMode=\"single\"\n [(selection)]=\"selected\"\n [value]=\"gridData\"\n [columns]=\"gridColumns\"\n dataKey=\"id\"\n rows=\"10\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\n [paginator]=\"true\"\n [totalRecords]=\"gridTotalRecords\"\n [lazy]=\"lazy\"\n (onLazyLoad)=\"updateGridData($event)\"\n *sLoadingState=\"gridLoading\"\n sortMode=\"multiple\"\n [frozenWidth]=\"frozenWidth\"\n [scrollable]=\"true\"\n [sTableFrozenPosition]=\"frozenPosition\"\n [sTableFrozenValue]=\"gridData\"\n editMode=\"row\"\n #table\n >\n <ng-template pTemplate=\"frozencolgroup\" let-columns>\n <colgroup>\n <col class=\"col50\" />\n <col *ngFor=\"let col of frozenColumns\" class=\"col200\" />\n <col class=\"frozenButton\" />\n </colgroup>\n </ng-template>\n\n <ng-template pTemplate=\"frozenheader\">\n <tr>\n <th pResizableColumn scope=\"col\"></th>\n <th pResizableColumn *ngFor=\"let col of frozenColumns\" scope=\"col\">{{ col.header }}</th>\n <th pResizableColumn scope=\"col\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"frozenbody\" let-rowData let-expanded=\"expanded\">\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"col50\" tabindex=\"0\" [sRowToggler]=\"rowData\">\n <i class=\"fa fa-{{ expanded ? 'minus' : 'plus' }} \"></i>\n </td>\n <td *ngFor=\"let col of frozenColumns\" class=\"colText\"\n tooltipPosition=\"top\" showDelay=\"500\"\n [innerHTML]=\"getSpanProp(rowData, col.field)\">\n </td>\n <td class=\"frozenButton\">\n <s-button\n id=\"edit-button\"\n data-cy=\"edit-button\"\n priority=\"default\"\n type=\"button\"\n size=\"small\"\n [auxiliary]=\"true\"\n [disabled]=\"false\"\n [model]=\"getActions(rowData)\">\n </s-button>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\" [style.width]=\"col.width\" />\n </colgroup>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" scope=\"col\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n </div>\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-expanded=\"expanded\" let-columns=\"columns\">\n <tr sNavigation tabindex=\"0\" [pEditableRow]=\"rowData\">\n <td\n *ngFor=\"let col of columns\"\n [ngClass]=\"editing? 'editPadding': ''\"\n pResizableColumn\n [pTooltip]=\"rowData[col.field]\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n tabindex=\"0\"\n class=\"col80 colText\"\n >\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <div class=\"ui-fluid\">\n <ng-container [ngSwitch]=\"col.type\">\n <ng-container *ngSwitchCase=\"'Text'\">\n <span>{{ rowData[col.field] }}</span>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Date'\">\n <p-calendar\n [(ngModel)]=\"rowData[col.field]\"\n appendTo=\"body\"\n [showIcon]=\"true\"\n [required]=\"true\"\n pTooltip=\"{{ calendarTooltipText }}\"\n tooltipPosition=\"bottom\"\n [tooltipDisabled]=\"rowData[col.field]\"\n ></p-calendar>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Autocomplete'\">\n <p-autoComplete\n [(ngModel)]=\"rowData[col.field]\"\n [suggestions]=\"col.options\"\n appendTo=\"body\"\n (completeMethod)=\"filterOptions($event)\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n ></p-autoComplete>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Decimal'\">\n <div class=\"ui-inputgroup\">\n <span class=\"ui-inputgroup-addon\"\n *ngIf=\"'MONETARIO' === rowData.tiposDados[col.field]\"\n >R$</span>\n <input sNumberInput [scale]=\"2\"\n alignTo=\"right\"\n thousandsSeparator=\".\"\n pInputText\n [(ngModel)]=\"rowData[col.field]\"\n (keydown)=\"onTab($event)\"\n />\n <span class=\"ui-inputgroup-addon\"\n *ngIf=\"'PERCENTUAL' === rowData.tiposDados[col.field]\"\n >%</span>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <input pInputText type=\"text\"\n [(ngModel)]=\"rowData[col.field]\"\n (keydown)=\"onTab($event)\"\n />\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"output\">\n <div [innerHTML]=\"getSpanProp(rowData, col.field, col.type)\"></div>\n </ng-template>\n </p-cellEditor>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"rowexpansion\" let-rowData>\n <tr class=\"sds-expanded-row\">\n <td [attr.colspan]=\"gridColumns.length + 1\">\n <p-table\n [value]=\"rowData.nestedGridData\"\n [columns]=\"rowData.nestedGridColumns\"\n dataKey=\"id\"\n rows=\"5\"\n [first]=\"getRowIndex()\"\n [rows]=\"getPageSize()\"\n [rowsPerPageOptions]=\"[5, 10, 20, 50]\"\n [paginator]=\"true\"\n [totalRecords]=\"rowData.nestedGridTotalRecords\"\n [responsive]=\"true\"\n [lazy]=\"true\"\n (onLazyLoad)=\"updateNestedGridData($event, rowData)\"\n sortMode=\"multiple\"\n *sLoadingState=\"rowData.nestedGridLoading\"\n >\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" scope=\"col\"\n [pSortableColumn]=\"col.field\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n <tr [pSelectableRow]=\"rowData\">\n <td *ngFor=\"let col of columns\" class=\"colText\">\n {{ formatData(col, rowData[col.field]) }}\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>\n {{ rowData.nestedGridTotalRecords }}\n {{'tmsx_com.tmsx_angular_components.grid_editable_nested_paging' | translate}}\n </span>\n </ng-template>\n </p-table>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>\n {{ gridTotalRecords }}\n {{'tmsx_com.tmsx_angular_components.grid_editable_nested_paging' | translate}}\n </span>\n </ng-template>\n </p-table>\n </div>\n</div>\n",
275
+ template: "<div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button id=\"add-button\"\n data-cy=\"add-button\"\n priority=\"primary\" type=\"button\"\n [label]=\"'tmsx_fnd.tmsx_angular_components.add' | translate\"\n tooltip=\"{{'tmsx_fnd.tmsx_angular_components.add' | translate}} (Alt + Shift + N)\"\n [disabled]=\"!addEnabled\"\n (click)=\"onAdd()\">\n </s-button>\n <s-button\n *ngIf=\"!editing\"\n priority=\"primary\"\n iconClass=\"fa fa-edit\"\n label=\"{{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_editar' | translate}}\"\n tooltip=\"{{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_editar' | translate}}\"\n [disabled]=\"!editEnabled\"\n (click)=\"initAllRowsEdit()\"\n ></s-button>\n <s-button\n *ngIf=\"editing\"\n priority=\"primary\"\n label=\"{{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_salvar' | translate}}\"\n iconClass=\"fa fa-check\"\n [disabled]=\"false\"\n (click)=\"onEditSave()\"\n ></s-button>\n <s-button\n *ngIf=\"editing\"\n priority=\"default\"\n label=\"{{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_cancelar' | translate}}\"\n iconClass=\"fa fa-times\"\n [disabled]=\"false\"\n (click)=\"onEditCancel()\"\n ></s-button>\n <p-table\n selectionMode=\"single\"\n [(selection)]=\"selected\"\n [value]=\"gridData\"\n [columns]=\"gridColumns\"\n dataKey=\"id\"\n rows=\"10\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\n [paginator]=\"true\"\n [totalRecords]=\"gridTotalRecords\"\n [lazy]=\"lazy\"\n (onLazyLoad)=\"updateGridData($event)\"\n *sLoadingState=\"gridLoading\"\n sortMode=\"multiple\"\n [frozenWidth]=\"frozenWidth\"\n [scrollable]=\"true\"\n [sTableFrozenPosition]=\"frozenPosition\"\n [sTableFrozenValue]=\"gridData\"\n editMode=\"row\"\n #table\n >\n <ng-template pTemplate=\"frozencolgroup\" let-columns>\n <colgroup>\n <col class=\"col50\" />\n <col *ngFor=\"let col of frozenColumns\" class=\"col200\" />\n <col class=\"frozenButton\" />\n </colgroup>\n </ng-template>\n\n <ng-template pTemplate=\"frozenheader\">\n <tr>\n <th pResizableColumn scope=\"col\"></th>\n <th pResizableColumn *ngFor=\"let col of frozenColumns\" scope=\"col\">{{ col.header }}</th>\n <th pResizableColumn scope=\"col\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"frozenbody\" let-rowData let-expanded=\"expanded\">\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"col50\" tabindex=\"0\" [sRowToggler]=\"rowData\">\n <i class=\"fa fa-{{ expanded ? 'minus' : 'plus' }} \"></i>\n </td>\n <td *ngFor=\"let col of frozenColumns\" class=\"colText\"\n tooltipPosition=\"top\" showDelay=\"500\"\n [innerHTML]=\"getSpanProp(rowData, col.field)\">\n </td>\n <td class=\"frozenButton\">\n <s-button\n id=\"edit-button\"\n data-cy=\"edit-button\"\n priority=\"default\"\n type=\"button\"\n size=\"small\"\n [auxiliary]=\"true\"\n [disabled]=\"false\"\n [model]=\"getActions(rowData)\">\n </s-button>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\" [style.width]=\"col.width\" />\n </colgroup>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" scope=\"col\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n </div>\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-expanded=\"expanded\" let-columns=\"columns\">\n <tr sNavigation tabindex=\"0\" [pEditableRow]=\"rowData\">\n <td\n *ngFor=\"let col of columns\"\n [ngClass]=\"editing? 'editPadding': ''\"\n pResizableColumn\n [pTooltip]=\"rowData[col.field]\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n tabindex=\"0\"\n class=\"col80 colText\"\n >\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <div class=\"ui-fluid\">\n <ng-container [ngSwitch]=\"col.type\">\n <ng-container *ngSwitchCase=\"'Text'\">\n <span>{{ rowData[col.field] }}</span>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Date'\">\n <p-calendar\n [(ngModel)]=\"rowData[col.field]\"\n appendTo=\"body\"\n [showIcon]=\"true\"\n [required]=\"true\"\n pTooltip=\"{{ calendarTooltipText }}\"\n tooltipPosition=\"bottom\"\n [tooltipDisabled]=\"rowData[col.field]\"\n ></p-calendar>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Autocomplete'\">\n <p-autoComplete\n [(ngModel)]=\"rowData[col.field]\"\n [suggestions]=\"col.options\"\n appendTo=\"body\"\n (completeMethod)=\"filterOptions($event)\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n ></p-autoComplete>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Decimal'\">\n <div class=\"ui-inputgroup\">\n <span class=\"ui-inputgroup-addon\"\n *ngIf=\"'MONETARIO' === rowData.tiposDados[col.field]\"\n >R$</span>\n <input sNumberInput [scale]=\"2\"\n alignTo=\"right\"\n thousandsSeparator=\".\"\n pInputText\n [(ngModel)]=\"rowData[col.field]\"\n (keydown)=\"onTab($event)\"\n />\n <span class=\"ui-inputgroup-addon\"\n *ngIf=\"'PERCENTUAL' === rowData.tiposDados[col.field]\"\n >%</span>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <input pInputText type=\"text\"\n [(ngModel)]=\"rowData[col.field]\"\n (keydown)=\"onTab($event)\"\n />\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"output\">\n <div [innerHTML]=\"getSpanProp(rowData, col.field, col.type)\"></div>\n </ng-template>\n </p-cellEditor>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"rowexpansion\" let-rowData>\n <tr class=\"sds-expanded-row\">\n <td [attr.colspan]=\"gridColumns.length + 1\">\n <p-table\n [value]=\"rowData.nestedGridData\"\n [columns]=\"rowData.nestedGridColumns\"\n dataKey=\"id\"\n rows=\"5\"\n [first]=\"getRowIndex()\"\n [rows]=\"getPageSize()\"\n [rowsPerPageOptions]=\"[5, 10, 20, 50]\"\n [paginator]=\"true\"\n [totalRecords]=\"rowData.nestedGridTotalRecords\"\n [responsive]=\"true\"\n [lazy]=\"true\"\n (onLazyLoad)=\"updateNestedGridData($event, rowData)\"\n sortMode=\"multiple\"\n *sLoadingState=\"rowData.nestedGridLoading\"\n >\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" scope=\"col\"\n [pSortableColumn]=\"col.field\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n <tr [pSelectableRow]=\"rowData\">\n <td *ngFor=\"let col of columns\" class=\"colText\">\n {{ formatData(col, rowData[col.field]) }}\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>\n {{ rowData.nestedGridTotalRecords }}\n {{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_paging' | translate}}\n </span>\n </ng-template>\n </p-table>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>\n {{ gridTotalRecords }}\n {{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_paging' | translate}}\n </span>\n </ng-template>\n </p-table>\n </div>\n</div>\n",
276
276
  styles: [":host ::ng-deep div.contents{margin-top:15px}input{max-width:100%}.col50{width:50px}.col80{width:80px}.col200{width:200px}.colText{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.frozenButton{width:70px;padding:5px}.editPadding{padding-top:8px;padding-bottom:9px}"]
277
277
  })
278
278
  ], GridEditableNestedComponent);
279
279
  return GridEditableNestedComponent;
280
280
  }());
281
281
  export { GridEditableNestedComponent };
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1lZGl0YWJsZS1uZXN0ZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9ncmlkLWVkaXRhYmxlLW5lc3RlZC9ncmlkLWVkaXRhYmxlLW5lc3RlZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQ2pFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7O0FBVWxFO0lBaUNJLHFDQUNxQixpQkFBb0MsRUFDcEMsU0FBMkIsRUFDM0IsS0FBbUIsRUFDbkIsY0FBOEI7UUFIOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQWxDekMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3RDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQy9CLFFBQUcsR0FBRyxJQUFJLFlBQVksRUFB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QXZPdUMsaUJBQWlCO2dCQUN6QixnQkFBZ0I7Z0JBQ3BCLFlBQVk7Z0JBQ0gsY0FBYzs7O0lBcEMxQztRQUFSLEtBQUssRUFBRTsrREFBNEI7SUFDM0I7UUFBUixLQUFLLEVBQUU7dUVBQTBFO0lBQ3hFO1FBQVQsTUFBTSxFQUFFO29FQUF1QztJQUN0QztRQUFULE1BQU0sRUFBRTsrREFBa0M7SUFDakM7UUFBVCxNQUFNLEVBQUU7K0RBQWtDO0lBQ2pDO1FBQVQsTUFBTSxFQUFFOzZEQUFnQztJQUMvQjtRQUFULE1BQU0sRUFBRTs0REFBK0I7SUFFRDtRQUF0QyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDOzhEQUFzQjtJQVRuRCwyQkFBMkI7UUFSdkMsVUFBVSxDQUFDO1lBQ1IsVUFBVSxFQUFFLE1BQU07U0FDckIsQ0FBQztRQUNELFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSwyQkFBMkI7WUFDckMsMjZZQUFvRDs7U0FFckQsQ0FBQztPQUNXLDJCQUEyQixDQTBRdkM7c0NBN1JEO0NBNlJDLEFBMVFELElBMFFDO1NBMVFZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdGFibGUsIElucHV0LCBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYXp5TG9hZEV2ZW50LCBNZW51SXRlbSwgU29ydE1ldGEgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR3JpZENvbmZpZywgRnJvemVuQ29sdW1uIH0gZnJvbSAnLi9ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IEhvdGtleXNTZXJ2aWNlLCBIb3RrZXkgfSBmcm9tICdhbmd1bGFyMi1ob3RrZXlzJztcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG1zeC1ncmlkLWVkaXRhYmxlLW5lc3RlZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWVkaXRhYmxlLW5lc3RlZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWQtZWRpdGFibGUtbmVzdGVkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR3JpZEVkaXRhYmxlTmVzdGVkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgcHVibGljIGNvbmZpZyE6IEdyaWRDb25maWc7XG4gICAgQElucHV0KCkgbmVzdGVkRnVuY3Rpb24hOiAobGlzdFBhcmFtczogTGlzdFBhcmFtcywgcm93RGF0YTogYW55KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIEBPdXRwdXQoKSBvcGVuRGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwYWdpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgZGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgYWRkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAVmlld0NoaWxkKFwidGFibGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyB0YWJsZSE6IFRhYmxlO1xuICAgIHB1YmxpYyBjbG9uZWREYXRhOiB7IFtzOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIHB1YmxpYyBncmlkTG9hZGluZyA9IHRydWU7XG4gICAgcHVibGljIGVkaXRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgbGF6eSA9IHRydWU7XG4gICAgcHVibGljIGRlbGV0ZUVuYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgZWRpdEVuYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgYWRkRW5hYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBkZXRhaWxzRW5hYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBjYWxlbmRhclRvb2x0aXBUZXh0ID0gJyc7XG4gICAgcHVibGljIGN1cnJlbnRMaXN0UGFyYW1zOiBMaXN0UGFyYW1zID0geyBwYWdlOiAwLCBzaXplOiA1LCBzb3J0OiBbXSB9O1xuXG4gICAgcHVibGljIGdyaWREYXRhOiBhbnlbXSA9IFtdO1xuICAgIHB1YmxpYyBncmlkQ29sdW1uczogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgZ3JpZFRvdGFsUmVjb3JkcyA9IDA7XG4gICAgcHVibGljIHNlbGVjdGVkOiBhbnlbXSA9IFtdO1xuXG4gICAgcHVibGljIG5lc3RlZEdyaWRMb2FkaW5nID0gZmFsc2U7XG4gICAgcHVibGljIGZyb3plblBvc2l0aW9uID0gJ2xlZnQnO1xuICAgIHB1YmxpYyBmcm96ZW5XaWR0aCA9ICcyMDBweCc7XG4gICAgcHVibGljIGZyb3plbkNvbHVtbnM6IEZyb3plbkNvbHVtbltdID0gW107XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1dGlsczogVXRpbHNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhvdGtleXNTZXJ2aWNlOiBIb3RrZXlzU2VydmljZSxcbiAgICApIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJUb29sdGlwVGV4dCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmdyaWRfZWRpdGFibGVfbmVzdGVkX2NhbGVuZGFyX3JlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0R3JpZERhdGEoKTtcbiAgICAgICAgdGhpcy5zZXRIb3RrZXlzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5jb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0R3JpZERhdGEoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgcHVibGljIGZvcm1hdERhdGEoY29sdW1uOiBhbnksIHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0R3JpZERhdGEoKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBkYXRhLCBzaXplLCBjb2x1bW5zLCBmcm96ZW5Qb3NpdGlvbiwgZnJvemVuQ29sdW1ucywgZWRpdGluZywgbGF6eSxcbiAgICAgICAgICBkZWxldGVBY3Rpb25zRW5hYmxlZCwgZWRpdEVuYWJsZWQsIGFkZEVuYWJsZWQsIGVkaXRBY3Rpb25zRW5hYmxlZCB9ID0gdGhpcy5jb25maWc7XG5cbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGRhdGEgPz8gW107XG4gICAgICAgIHRoaXMuZ3JpZFRvdGFsUmVjb3JkcyA9IHNpemUgPz8gMDtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IGNvbHVtbnMgPz8gW107XG4gICAgICAgIHRoaXMuZnJvemVuUG9zaXRpb24gPSBmcm96ZW5Qb3NpdGlvbiA/PyAnbGVmdCc7XG4gICAgICAgIHRoaXMuZnJvemVuQ29sdW1ucyA9IGZyb3plbkNvbHVtbnMgPz8gW107XG4gICAgICAgIHRoaXMuZnJvemVuV2lkdGggPSB0aGlzLmNhbGN1bGF0ZUZyb3plbldpZHRoKHRoaXMuZnJvemVuQ29sdW1ucyk7XG5cbiAgICAgICAgdGhpcy5lZGl0aW5nID0gISFlZGl0aW5nO1xuICAgICAgICB0aGlzLmxhenkgPSAhIWxhenk7XG4gICAgICAgIHRoaXMuZGVsZXRlRW5hYmxlZCA9ICEhZGVsZXRlQWN0aW9uc0VuYWJsZWQ7XG4gICAgICAgIHRoaXMuZWRpdEVuYWJsZWQgPSAhIWVkaXRFbmFibGVkO1xuICAgICAgICB0aGlzLmFkZEVuYWJsZWQgPSAhIWFkZEVuYWJsZWQ7XG4gICAgICAgIHRoaXMuZGV0YWlsc0VuYWJsZWQgPSAhIWVkaXRBY3Rpb25zRW5hYmxlZDtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5uZXN0ZWRHcmlkTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVGcm96ZW5XaWR0aChmcm96ZW5Db2x1bW5zOiBGcm96ZW5Db2x1bW5bXSk6IHN0cmluZyB7XG4gICAgICBjb25zdCBndXR0ZXIgPSAxMjA7XG4gICAgICBpZiAoIShmcm96ZW5Db2x1bW5zPy5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiAnMTIwcHgnO1xuICAgICAgfVxuICAgICAgY29uc3QgdG90YWxXaWR0aCA9IGZyb3plbkNvbHVtbnMucmVkdWNlKChzdW0sIGNvbCkgPT4gc3VtICsgZ3V0dGVyICsgKHBhcnNlSW50KGNvbC53aWR0aCwgMTApIHx8IDApLCAwKTtcbiAgICAgIHJldHVybiBgJHt0b3RhbFdpZHRofXB4YDtcbiAgICB9XG5cblxuICAgIHB1YmxpYyBnZXRBY3Rpb25zKGRhdGE6IGFueSk6IE1lbnVJdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAnZWRpdCcsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmVkaXQnKSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogIXRoaXMuZGV0YWlsc0VuYWJsZWQsXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5Sb3dEZXRhaWxzKGRhdGEuaWQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBzZXBhcmF0b3I6IHRydWUgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmRlbGV0ZScpLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhdGhpcy5kZWxldGVFbmFibGVkLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShkYXRhLmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlR3JpZERhdGEoZXZlbnQ6IExhenlMb2FkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGV2ZW50LnJvd3MgPyBldmVudC5yb3dzIDogMTA7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBldmVudC5maXJzdCA/IGV2ZW50LmZpcnN0IC8gc2l6ZSA6IDA7XG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmNsb25lZERhdGEgJiYgT2JqZWN0LmtleXModGhpcy5jbG9uZWREYXRhKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvbmVkRGF0YSA9IHt9O1xuICAgICAgICAgICAgdGhpcy50YWJsZS5lZGl0aW5nUm93S2V5cyA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wYWdpbmcuZW1pdCh7IHBhZ2UsIHNpemUgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVwZGF0ZU5lc3RlZEdyaWREYXRhKGV2ZW50OiBMYXp5TG9hZEV2ZW50LCByb3dEYXRhOiBhbnkpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGV2ZW50LnJvd3MgPyBldmVudC5yb3dzIDogMTA7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBldmVudC5maXJzdCA/IGV2ZW50LmZpcnN0IC8gc2l6ZSA6IDA7XG4gICAgICAgIGNvbnN0IHNvcnQgPSBldmVudC5tdWx0aVNvcnRNZXRhIHx8IFtdO1xuXG4gICAgICAgIHJvd0RhdGEubmVzdGVkR3JpZExvYWRpbmcgPSB0cnVlO1xuICAgICAgICBhd2FpdCB0aGlzLm5lc3RlZEZ1bmN0aW9uKHsgcGFnZSwgc2l6ZSwgc29ydCB9LCByb3dEYXRhKTtcbiAgICB9XG5cbiAgICBvblRhYihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQua2V5ICE9PSAnVGFiJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29uc3QgZm9jdXNhYmxlcyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihcbiAgICAgICAgICAgICdwLWNlbGxFZGl0b3IgaW5wdXQsIHAtY2VsbEVkaXRvciB0ZXh0YXJlYSwgcC1jZWxsRWRpdG9yIFt0YWJpbmRleD1cIjBcIl0nXG4gICAgICAgICAgICApXG4gICAgICAgICkuZmlsdGVyKGVsID0+IGVsLm9mZnNldFBhcmVudCAhPT0gbnVsbCk7XG5cbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gZm9jdXNhYmxlcy5pbmRleE9mKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICAgICAgbGV0IG5leHQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgbmV4dCA9IGZvY3VzYWJsZXNbY3VycmVudEluZGV4IC0gMV0gfHwgZm9jdXNhYmxlc1tmb2N1c2FibGVzLmxlbmd0aCAtIDFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCA9IGZvY3VzYWJsZXNbY3VycmVudEluZGV4ICsgMV0gfHwgZm9jdXNhYmxlc1swXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgICBuZXh0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHB1YmxpYyBnZXRSb3dJbmRleCgpIHtcbiAgICAgICAgY29uc3QgcGFnZSA9IHRoaXMuY3VycmVudExpc3RQYXJhbXMucGFnZSB8fCAwO1xuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zaXplIHx8IDA7XG4gICAgICAgIHJldHVybiBwYWdlICogc2l6ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFnZVNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemUgPz8gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlblJvd0RldGFpbHMoaWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLm9wZW5EZXRhaWxzLmVtaXQoaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkRlbGV0ZShpZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZGVsZXRlLmVtaXQoaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFkZCgpIHtcbiAgICAgICAgdGhpcy5hZGQuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRWRpdFNhdmUoKSB7XG4gICAgICAgIHRoaXMuc2F2ZUFsbFJvd3MoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25FZGl0Q2FuY2VsKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNsb25lZERhdGFbZGF0YS5pZF0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZ3JpZERhdGEuZmluZEluZGV4KChyb3cpID0+IHJvdy5pZCA9PT0gZGF0YS5pZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YVtpbmRleF0gPSB0aGlzLmNsb25lZERhdGFbZGF0YS5pZF07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuY2xvbmVkRGF0YVtkYXRhLmlkXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudGFibGUuY2FuY2VsUm93RWRpdChkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZWRpdGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0QWxsUm93c0VkaXQoKSB7XG4gICAgICAgIHRoaXMuZ3JpZERhdGEuZm9yRWFjaCgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW5pdFJvd0VkaXQoZGF0YSk7XG4gICAgICAgICAgICB0aGlzLmNsb25lZERhdGFbZGF0YS5pZF0gPSB7IC4uLmRhdGEgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmVBbGxSb3dzKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNsb25lZERhdGFbZGF0YS5pZF0pIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5jbG9uZWREYXRhW2RhdGEuaWRdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy50YWJsZS5jYW5jZWxSb3dFZGl0KGRhdGEpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZS5lbWl0KHRoaXMuZ3JpZERhdGEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb3JtYXRSb3dEYXRhKGZpZWxkOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaWx0ZXJPcHRpb25zKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTcGFuUHJvcChvYmo6IGFueSwgcGF0aDogYW55LCB0eXBlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgdHlwZSA9IHR5cGU/LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy51dGlscy5nZXRQcm9wKG9iaiwgcGF0aCwgdHlwZSk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJzxzcGFuPjA8L3NwYW4+JyAgJiYgdHlwZSA9PT0gJ2RlY2ltYWwnKSB7XG4gICAgICAgICAgIHJldHVybiAnPHNwYW4+MCwwMDwvc3Bhbj4nO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb2JqLnRpcG9zRGFkb3MpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ01PTkVUQVJJTycgPT09IG9iai50aXBvc0RhZG9zW3BhdGhdKSB7XG4gICAgICAgICAgICByZXR1cm4gJ1IkICcgKyB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ1BFUkNFTlRVQUwnID09PSBvYmoudGlwb3NEYWRvc1twYXRoXSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlICsgJyAlJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEhvdGtleXMoKSB7XG4gICAgICAgIHRoaXMuaG90a2V5c1NlcnZpY2UuYWRkKFxuICAgICAgICAgICAgbmV3IEhvdGtleShcbiAgICAgICAgICAgICAgICAnYWx0K3NoaWZ0K24nLFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkFkZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbJ0lOUFVUJywgJ1NFTEVDVCcsICdURVhUQVJFQSddXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQYXJhbXMge1xuICAgIHBhZ2U/OiBudW1iZXI7XG4gICAgc2l6ZT86IG51bWJlcjtcbiAgICBzb3J0PzogU29ydE1ldGFbXTtcbiAgICBmaWx0ZXJRdWVyeT86IHN0cmluZztcbiAgICBkaXNwbGF5RmllbGRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9keVBhcmFtcyB7XG4gICAgb2Zmc2V0PzogbnVtYmVyO1xuICAgIHNpemU/OiBudW1iZXI7XG4gICAgb3JkZXJCeT86IHN0cmluZztcbiAgICBmaWx0ZXI/OiBzdHJpbmc7XG4gICAgZGlzcGxheWZpZWxkcz86IHN0cmluZztcbn1cbiJdfQ==
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1lZGl0YWJsZS1uZXN0ZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9ncmlkLWVkaXRhYmxlLW5lc3RlZC9ncmlkLWVkaXRhYmxlLW5lc3RlZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQ2pFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7O0FBVWxFO0lBaUNJLHFDQUNxQixpQkFBb0MsRUFDcEMsU0FBMkIsRUFDM0IsS0FBbUIsRUFDbkIsY0FBOEI7UUFIOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQWxDekMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3RDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQy9CLFFBQUcsR0FBRyxJQUFJLFlBQVksRUFB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QXZPdUMsaUJBQWlCO2dCQUN6QixnQkFBZ0I7Z0JBQ3BCLFlBQVk7Z0JBQ0gsY0FBYzs7O0lBcEMxQztRQUFSLEtBQUssRUFBRTsrREFBNEI7SUFDM0I7UUFBUixLQUFLLEVBQUU7dUVBQTBFO0lBQ3hFO1FBQVQsTUFBTSxFQUFFO29FQUF1QztJQUN0QztRQUFULE1BQU0sRUFBRTsrREFBa0M7SUFDakM7UUFBVCxNQUFNLEVBQUU7K0RBQWtDO0lBQ2pDO1FBQVQsTUFBTSxFQUFFOzZEQUFnQztJQUMvQjtRQUFULE1BQU0sRUFBRTs0REFBK0I7SUFFRDtRQUF0QyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDOzhEQUFzQjtJQVRuRCwyQkFBMkI7UUFSdkMsVUFBVSxDQUFDO1lBQ1IsVUFBVSxFQUFFLE1BQU07U0FDckIsQ0FBQztRQUNELFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSwyQkFBMkI7WUFDckMsazVZQUFvRDs7U0FFckQsQ0FBQztPQUNXLDJCQUEyQixDQTBRdkM7c0NBN1JEO0NBNlJDLEFBMVFELElBMFFDO1NBMVFZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdGFibGUsIElucHV0LCBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYXp5TG9hZEV2ZW50LCBNZW51SXRlbSwgU29ydE1ldGEgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR3JpZENvbmZpZywgRnJvemVuQ29sdW1uIH0gZnJvbSAnLi9ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IEhvdGtleXNTZXJ2aWNlLCBIb3RrZXkgfSBmcm9tICdhbmd1bGFyMi1ob3RrZXlzJztcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG1zeC1ncmlkLWVkaXRhYmxlLW5lc3RlZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWVkaXRhYmxlLW5lc3RlZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWQtZWRpdGFibGUtbmVzdGVkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR3JpZEVkaXRhYmxlTmVzdGVkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgcHVibGljIGNvbmZpZyE6IEdyaWRDb25maWc7XG4gICAgQElucHV0KCkgbmVzdGVkRnVuY3Rpb24hOiAobGlzdFBhcmFtczogTGlzdFBhcmFtcywgcm93RGF0YTogYW55KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIEBPdXRwdXQoKSBvcGVuRGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwYWdpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgZGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgYWRkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAVmlld0NoaWxkKFwidGFibGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyB0YWJsZSE6IFRhYmxlO1xuICAgIHB1YmxpYyBjbG9uZWREYXRhOiB7IFtzOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIHB1YmxpYyBncmlkTG9hZGluZyA9IHRydWU7XG4gICAgcHVibGljIGVkaXRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgbGF6eSA9IHRydWU7XG4gICAgcHVibGljIGRlbGV0ZUVuYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgZWRpdEVuYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgYWRkRW5hYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBkZXRhaWxzRW5hYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBjYWxlbmRhclRvb2x0aXBUZXh0ID0gJyc7XG4gICAgcHVibGljIGN1cnJlbnRMaXN0UGFyYW1zOiBMaXN0UGFyYW1zID0geyBwYWdlOiAwLCBzaXplOiA1LCBzb3J0OiBbXSB9O1xuXG4gICAgcHVibGljIGdyaWREYXRhOiBhbnlbXSA9IFtdO1xuICAgIHB1YmxpYyBncmlkQ29sdW1uczogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgZ3JpZFRvdGFsUmVjb3JkcyA9IDA7XG4gICAgcHVibGljIHNlbGVjdGVkOiBhbnlbXSA9IFtdO1xuXG4gICAgcHVibGljIG5lc3RlZEdyaWRMb2FkaW5nID0gZmFsc2U7XG4gICAgcHVibGljIGZyb3plblBvc2l0aW9uID0gJ2xlZnQnO1xuICAgIHB1YmxpYyBmcm96ZW5XaWR0aCA9ICcyMDBweCc7XG4gICAgcHVibGljIGZyb3plbkNvbHVtbnM6IEZyb3plbkNvbHVtbltdID0gW107XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1dGlsczogVXRpbHNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhvdGtleXNTZXJ2aWNlOiBIb3RrZXlzU2VydmljZSxcbiAgICApIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJUb29sdGlwVGV4dCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmdyaWRfZWRpdGFibGVfbmVzdGVkX2NhbGVuZGFyX3JlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0R3JpZERhdGEoKTtcbiAgICAgICAgdGhpcy5zZXRIb3RrZXlzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5jb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0R3JpZERhdGEoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgcHVibGljIGZvcm1hdERhdGEoY29sdW1uOiBhbnksIHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0R3JpZERhdGEoKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBkYXRhLCBzaXplLCBjb2x1bW5zLCBmcm96ZW5Qb3NpdGlvbiwgZnJvemVuQ29sdW1ucywgZWRpdGluZywgbGF6eSxcbiAgICAgICAgICBkZWxldGVBY3Rpb25zRW5hYmxlZCwgZWRpdEVuYWJsZWQsIGFkZEVuYWJsZWQsIGVkaXRBY3Rpb25zRW5hYmxlZCB9ID0gdGhpcy5jb25maWc7XG5cbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGRhdGEgPz8gW107XG4gICAgICAgIHRoaXMuZ3JpZFRvdGFsUmVjb3JkcyA9IHNpemUgPz8gMDtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IGNvbHVtbnMgPz8gW107XG4gICAgICAgIHRoaXMuZnJvemVuUG9zaXRpb24gPSBmcm96ZW5Qb3NpdGlvbiA/PyAnbGVmdCc7XG4gICAgICAgIHRoaXMuZnJvemVuQ29sdW1ucyA9IGZyb3plbkNvbHVtbnMgPz8gW107XG4gICAgICAgIHRoaXMuZnJvemVuV2lkdGggPSB0aGlzLmNhbGN1bGF0ZUZyb3plbldpZHRoKHRoaXMuZnJvemVuQ29sdW1ucyk7XG5cbiAgICAgICAgdGhpcy5lZGl0aW5nID0gISFlZGl0aW5nO1xuICAgICAgICB0aGlzLmxhenkgPSAhIWxhenk7XG4gICAgICAgIHRoaXMuZGVsZXRlRW5hYmxlZCA9ICEhZGVsZXRlQWN0aW9uc0VuYWJsZWQ7XG4gICAgICAgIHRoaXMuZWRpdEVuYWJsZWQgPSAhIWVkaXRFbmFibGVkO1xuICAgICAgICB0aGlzLmFkZEVuYWJsZWQgPSAhIWFkZEVuYWJsZWQ7XG4gICAgICAgIHRoaXMuZGV0YWlsc0VuYWJsZWQgPSAhIWVkaXRBY3Rpb25zRW5hYmxlZDtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5uZXN0ZWRHcmlkTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVGcm96ZW5XaWR0aChmcm96ZW5Db2x1bW5zOiBGcm96ZW5Db2x1bW5bXSk6IHN0cmluZyB7XG4gICAgICBjb25zdCBndXR0ZXIgPSAxMjA7XG4gICAgICBpZiAoIShmcm96ZW5Db2x1bW5zPy5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiAnMTIwcHgnO1xuICAgICAgfVxuICAgICAgY29uc3QgdG90YWxXaWR0aCA9IGZyb3plbkNvbHVtbnMucmVkdWNlKChzdW0sIGNvbCkgPT4gc3VtICsgZ3V0dGVyICsgKHBhcnNlSW50KGNvbC53aWR0aCwgMTApIHx8IDApLCAwKTtcbiAgICAgIHJldHVybiBgJHt0b3RhbFdpZHRofXB4YDtcbiAgICB9XG5cblxuICAgIHB1YmxpYyBnZXRBY3Rpb25zKGRhdGE6IGFueSk6IE1lbnVJdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAnZWRpdCcsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmVkaXQnKSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogIXRoaXMuZGV0YWlsc0VuYWJsZWQsXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5Sb3dEZXRhaWxzKGRhdGEuaWQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBzZXBhcmF0b3I6IHRydWUgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmRlbGV0ZScpLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhdGhpcy5kZWxldGVFbmFibGVkLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShkYXRhLmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlR3JpZERhdGEoZXZlbnQ6IExhenlMb2FkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGV2ZW50LnJvd3MgPyBldmVudC5yb3dzIDogMTA7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBldmVudC5maXJzdCA/IGV2ZW50LmZpcnN0IC8gc2l6ZSA6IDA7XG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmNsb25lZERhdGEgJiYgT2JqZWN0LmtleXModGhpcy5jbG9uZWREYXRhKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvbmVkRGF0YSA9IHt9O1xuICAgICAgICAgICAgdGhpcy50YWJsZS5lZGl0aW5nUm93S2V5cyA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wYWdpbmcuZW1pdCh7IHBhZ2UsIHNpemUgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVwZGF0ZU5lc3RlZEdyaWREYXRhKGV2ZW50OiBMYXp5TG9hZEV2ZW50LCByb3dEYXRhOiBhbnkpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGV2ZW50LnJvd3MgPyBldmVudC5yb3dzIDogMTA7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBldmVudC5maXJzdCA/IGV2ZW50LmZpcnN0IC8gc2l6ZSA6IDA7XG4gICAgICAgIGNvbnN0IHNvcnQgPSBldmVudC5tdWx0aVNvcnRNZXRhIHx8IFtdO1xuXG4gICAgICAgIHJvd0RhdGEubmVzdGVkR3JpZExvYWRpbmcgPSB0cnVlO1xuICAgICAgICBhd2FpdCB0aGlzLm5lc3RlZEZ1bmN0aW9uKHsgcGFnZSwgc2l6ZSwgc29ydCB9LCByb3dEYXRhKTtcbiAgICB9XG5cbiAgICBvblRhYihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQua2V5ICE9PSAnVGFiJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29uc3QgZm9jdXNhYmxlcyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihcbiAgICAgICAgICAgICdwLWNlbGxFZGl0b3IgaW5wdXQsIHAtY2VsbEVkaXRvciB0ZXh0YXJlYSwgcC1jZWxsRWRpdG9yIFt0YWJpbmRleD1cIjBcIl0nXG4gICAgICAgICAgICApXG4gICAgICAgICkuZmlsdGVyKGVsID0+IGVsLm9mZnNldFBhcmVudCAhPT0gbnVsbCk7XG5cbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gZm9jdXNhYmxlcy5pbmRleE9mKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICAgICAgbGV0IG5leHQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgbmV4dCA9IGZvY3VzYWJsZXNbY3VycmVudEluZGV4IC0gMV0gfHwgZm9jdXNhYmxlc1tmb2N1c2FibGVzLmxlbmd0aCAtIDFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCA9IGZvY3VzYWJsZXNbY3VycmVudEluZGV4ICsgMV0gfHwgZm9jdXNhYmxlc1swXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgICBuZXh0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHB1YmxpYyBnZXRSb3dJbmRleCgpIHtcbiAgICAgICAgY29uc3QgcGFnZSA9IHRoaXMuY3VycmVudExpc3RQYXJhbXMucGFnZSB8fCAwO1xuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zaXplIHx8IDA7XG4gICAgICAgIHJldHVybiBwYWdlICogc2l6ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFnZVNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemUgPz8gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlblJvd0RldGFpbHMoaWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLm9wZW5EZXRhaWxzLmVtaXQoaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkRlbGV0ZShpZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZGVsZXRlLmVtaXQoaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFkZCgpIHtcbiAgICAgICAgdGhpcy5hZGQuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRWRpdFNhdmUoKSB7XG4gICAgICAgIHRoaXMuc2F2ZUFsbFJvd3MoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25FZGl0Q2FuY2VsKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNsb25lZERhdGFbZGF0YS5pZF0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZ3JpZERhdGEuZmluZEluZGV4KChyb3cpID0+IHJvdy5pZCA9PT0gZGF0YS5pZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YVtpbmRleF0gPSB0aGlzLmNsb25lZERhdGFbZGF0YS5pZF07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuY2xvbmVkRGF0YVtkYXRhLmlkXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudGFibGUuY2FuY2VsUm93RWRpdChkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZWRpdGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0QWxsUm93c0VkaXQoKSB7XG4gICAgICAgIHRoaXMuZ3JpZERhdGEuZm9yRWFjaCgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW5pdFJvd0VkaXQoZGF0YSk7XG4gICAgICAgICAgICB0aGlzLmNsb25lZERhdGFbZGF0YS5pZF0gPSB7IC4uLmRhdGEgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmVBbGxSb3dzKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNsb25lZERhdGFbZGF0YS5pZF0pIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5jbG9uZWREYXRhW2RhdGEuaWRdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy50YWJsZS5jYW5jZWxSb3dFZGl0KGRhdGEpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZS5lbWl0KHRoaXMuZ3JpZERhdGEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb3JtYXRSb3dEYXRhKGZpZWxkOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaWx0ZXJPcHRpb25zKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTcGFuUHJvcChvYmo6IGFueSwgcGF0aDogYW55LCB0eXBlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgdHlwZSA9IHR5cGU/LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy51dGlscy5nZXRQcm9wKG9iaiwgcGF0aCwgdHlwZSk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJzxzcGFuPjA8L3NwYW4+JyAgJiYgdHlwZSA9PT0gJ2RlY2ltYWwnKSB7XG4gICAgICAgICAgIHJldHVybiAnPHNwYW4+MCwwMDwvc3Bhbj4nO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb2JqLnRpcG9zRGFkb3MpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ01PTkVUQVJJTycgPT09IG9iai50aXBvc0RhZG9zW3BhdGhdKSB7XG4gICAgICAgICAgICByZXR1cm4gJ1IkICcgKyB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ1BFUkNFTlRVQUwnID09PSBvYmoudGlwb3NEYWRvc1twYXRoXSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlICsgJyAlJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEhvdGtleXMoKSB7XG4gICAgICAgIHRoaXMuaG90a2V5c1NlcnZpY2UuYWRkKFxuICAgICAgICAgICAgbmV3IEhvdGtleShcbiAgICAgICAgICAgICAgICAnYWx0K3NoaWZ0K24nLFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkFkZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbJ0lOUFVUJywgJ1NFTEVDVCcsICdURVhUQVJFQSddXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQYXJhbXMge1xuICAgIHBhZ2U/OiBudW1iZXI7XG4gICAgc2l6ZT86IG51bWJlcjtcbiAgICBzb3J0PzogU29ydE1ldGFbXTtcbiAgICBmaWx0ZXJRdWVyeT86IHN0cmluZztcbiAgICBkaXNwbGF5RmllbGRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9keVBhcmFtcyB7XG4gICAgb2Zmc2V0PzogbnVtYmVyO1xuICAgIHNpemU/OiBudW1iZXI7XG4gICAgb3JkZXJCeT86IHN0cmluZztcbiAgICBmaWx0ZXI/OiBzdHJpbmc7XG4gICAgZGlzcGxheWZpZWxkcz86IHN0cmluZztcbn1cbiJdfQ==
@@ -3,9 +3,8 @@ import { NgModule } from '@angular/core';
3
3
  import { TranslateModule } from '@ngx-translate/core';
4
4
  import { GridEditableNestedComponent } from './grid-editable-nested.component';
5
5
  import { TableModule as PrimeTableModule } from 'primeng/table';
6
- import { ButtonModule, LoadingStateModule, LocaleModule, NumberInputModule, TableModule, TooltipModule, BreadcrumbModule, ControlErrorsModule, CustomFieldsModule, DynamicFormModule, EmptyStateModule, TokenListModule, TieredMenuModule } from '@seniorsistemas/angular-components';
6
+ import { ButtonModule, LoadingStateModule, LocaleModule, NumberInputModule, TableModule, TooltipModule, BreadcrumbModule, ControlErrorsModule, CustomFieldsModule, DynamicFormModule, EmptyStateModule, TokenListModule, } from '@seniorsistemas/angular-components';
7
7
  import { ToastModule } from 'primeng/toast';
8
- import { TabMenuModule } from 'primeng/tabmenu';
9
8
  import { PanelModule } from 'primeng/panel';
10
9
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
11
10
  import { CommonModule } from '@angular/common';
@@ -13,7 +12,6 @@ import { InputTextModule } from 'primeng/inputtext';
13
12
  import { ConfirmDialogModule } from 'primeng/confirmdialog';
14
13
  import { CalendarModule } from 'primeng/calendar';
15
14
  import { DropdownModule } from 'primeng/dropdown';
16
- import { TabViewModule } from 'primeng/tabview';
17
15
  import { SharedModule } from 'primeng/api';
18
16
  import { TooltipModule as PrimeTooltipModule } from 'primeng/tooltip';
19
17
  import { AutoCompleteModule } from 'primeng/autocomplete';
@@ -38,13 +36,10 @@ var GridEditableNestedModule = /** @class */ (function () {
38
36
  DynamicFormModule,
39
37
  EmptyStateModule,
40
38
  TokenListModule,
41
- TieredMenuModule,
42
39
  // PrimeNG modules
43
40
  ToastModule,
44
41
  PrimeTableModule,
45
42
  PrimeTooltipModule,
46
- TabMenuModule,
47
- TabViewModule,
48
43
  PanelModule,
49
44
  InputTextModule,
50
45
  ConfirmDialogModule,
@@ -69,4 +64,4 @@ var GridEditableNestedModule = /** @class */ (function () {
69
64
  return GridEditableNestedModule;
70
65
  }());
71
66
  export { GridEditableNestedModule };
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1lZGl0YWJsZS1uZXN0ZWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9ncmlkLWVkaXRhYmxlLW5lc3RlZC9ncmlkLWVkaXRhYmxlLW5lc3RlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLElBQUksZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEUsT0FBTyxFQUNILFlBQVksRUFDWixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGdCQUFnQixFQUNuQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxJQUFJLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBK0NsRDtJQUFBO0lBQXVDLENBQUM7SUFBM0Isd0JBQXdCO1FBN0NwQyxRQUFRLENBQUM7WUFDTixPQUFPLEVBQUU7Z0JBQ0wsWUFBWTtnQkFDWixZQUFZLENBQUMsUUFBUSxFQUFFO2dCQUN2QixlQUFlLENBQUMsUUFBUSxFQUFFO2dCQUMxQixZQUFZO2dCQUNaLFdBQVc7Z0JBQ1gsYUFBYTtnQkFDYixrQkFBa0I7Z0JBQ2xCLGlCQUFpQjtnQkFDakIsZ0JBQWdCO2dCQUNoQixtQkFBbUI7Z0JBQ25CLGtCQUFrQjtnQkFDbEIsaUJBQWlCO2dCQUNqQixnQkFBZ0I7Z0JBQ2hCLGVBQWU7Z0JBQ2YsZ0JBQWdCO2dCQUVoQixrQkFBa0I7Z0JBQ2xCLFdBQVc7Z0JBQ1gsZ0JBQWdCO2dCQUNoQixrQkFBa0I7Z0JBQ2xCLGFBQWE7Z0JBQ2IsYUFBYTtnQkFDYixXQUFXO2dCQUNYLGVBQWU7Z0JBQ2YsbUJBQW1CO2dCQUNuQixjQUFjO2dCQUNkLGNBQWM7Z0JBQ2QsWUFBWTtnQkFDWixrQkFBa0I7Z0JBQ2xCLGNBQWM7Z0JBRWQsa0JBQWtCO2dCQUNsQixXQUFXO2dCQUNYLG1CQUFtQjthQUN0QjtZQUNELFlBQVksRUFBRTtnQkFDViwyQkFBMkI7YUFDOUI7WUFDRCxTQUFTLEVBQUUsRUFBRTtZQUNiLE9BQU8sRUFBRTtnQkFDTCwyQkFBMkI7YUFDOUI7U0FDSixDQUFDO09BQ1csd0JBQXdCLENBQUc7SUFBRCwrQkFBQztDQUFBLEFBQXhDLElBQXdDO1NBQTNCLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgR3JpZEVkaXRhYmxlTmVzdGVkQ29tcG9uZW50IH0gZnJvbSAnLi9ncmlkLWVkaXRhYmxlLW5lc3RlZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgYXMgUHJpbWVUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuXG5pbXBvcnQge1xuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBMb2FkaW5nU3RhdGVNb2R1bGUsXG4gICAgTG9jYWxlTW9kdWxlLFxuICAgIE51bWJlcklucHV0TW9kdWxlLFxuICAgIFRhYmxlTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgQnJlYWRjcnVtYk1vZHVsZSxcbiAgICBDb250cm9sRXJyb3JzTW9kdWxlLFxuICAgIEN1c3RvbUZpZWxkc01vZHVsZSxcbiAgICBEeW5hbWljRm9ybU1vZHVsZSxcbiAgICBFbXB0eVN0YXRlTW9kdWxlLFxuICAgIFRva2VuTGlzdE1vZHVsZSxcbiAgICBUaWVyZWRNZW51TW9kdWxlXG59IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xuaW1wb3J0IHsgVGFiTWVudU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibWVudSc7XG5pbXBvcnQgeyBQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcGFuZWwnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHsgQ29uZmlybURpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY29uZmlybWRpYWxvZyc7XG5pbXBvcnQgeyBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcbmltcG9ydCB7IFRhYlZpZXdNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYnZpZXcnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSBhcyBQcmltZVRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgQ2hlY2tib3hNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NoZWNrYm94JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTG9jYWxlTW9kdWxlLmZvckNoaWxkKCksXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgICAgICBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFRhYmxlTW9kdWxlLFxuICAgICAgICBUb29sdGlwTW9kdWxlLFxuICAgICAgICBMb2FkaW5nU3RhdGVNb2R1bGUsXG4gICAgICAgIE51bWJlcklucHV0TW9kdWxlLFxuICAgICAgICBCcmVhZGNydW1iTW9kdWxlLFxuICAgICAgICBDb250cm9sRXJyb3JzTW9kdWxlLFxuICAgICAgICBDdXN0b21GaWVsZHNNb2R1bGUsXG4gICAgICAgIER5bmFtaWNGb3JtTW9kdWxlLFxuICAgICAgICBFbXB0eVN0YXRlTW9kdWxlLFxuICAgICAgICBUb2tlbkxpc3RNb2R1bGUsXG4gICAgICAgIFRpZXJlZE1lbnVNb2R1bGUsXG5cbiAgICAgICAgLy8gUHJpbWVORyBtb2R1bGVzXG4gICAgICAgIFRvYXN0TW9kdWxlLFxuICAgICAgICBQcmltZVRhYmxlTW9kdWxlLFxuICAgICAgICBQcmltZVRvb2x0aXBNb2R1bGUsXG4gICAgICAgIFRhYk1lbnVNb2R1bGUsXG4gICAgICAgIFRhYlZpZXdNb2R1bGUsXG4gICAgICAgIFBhbmVsTW9kdWxlLFxuICAgICAgICBJbnB1dFRleHRNb2R1bGUsXG4gICAgICAgIENvbmZpcm1EaWFsb2dNb2R1bGUsXG4gICAgICAgIENhbGVuZGFyTW9kdWxlLFxuICAgICAgICBEcm9wZG93bk1vZHVsZSxcbiAgICAgICAgU2hhcmVkTW9kdWxlLFxuICAgICAgICBBdXRvQ29tcGxldGVNb2R1bGUsXG4gICAgICAgIENoZWNrYm94TW9kdWxlLFxuXG4gICAgICAgIC8vIEFuZ3VsYXIgbW9kdWxlc1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEdyaWRFZGl0YWJsZU5lc3RlZENvbXBvbmVudCxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW10sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBHcmlkRWRpdGFibGVOZXN0ZWRDb21wb25lbnQsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR3JpZEVkaXRhYmxlTmVzdGVkTW9kdWxlIHt9XG4iXX0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1lZGl0YWJsZS1uZXN0ZWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9ncmlkLWVkaXRhYmxlLW5lc3RlZC9ncmlkLWVkaXRhYmxlLW5lc3RlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLElBQUksZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEUsT0FBTyxFQUNILFlBQVksRUFDWixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxHQUNsQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQTRDbEQ7SUFBQTtJQUF1QyxDQUFDO0lBQTNCLHdCQUF3QjtRQTFDcEMsUUFBUSxDQUFDO1lBQ04sT0FBTyxFQUFFO2dCQUNMLFlBQVk7Z0JBQ1osWUFBWSxDQUFDLFFBQVEsRUFBRTtnQkFDdkIsZUFBZSxDQUFDLFFBQVEsRUFBRTtnQkFDMUIsWUFBWTtnQkFDWixXQUFXO2dCQUNYLGFBQWE7Z0JBQ2Isa0JBQWtCO2dCQUNsQixpQkFBaUI7Z0JBQ2pCLGdCQUFnQjtnQkFDaEIsbUJBQW1CO2dCQUNuQixrQkFBa0I7Z0JBQ2xCLGlCQUFpQjtnQkFDakIsZ0JBQWdCO2dCQUNoQixlQUFlO2dCQUVmLGtCQUFrQjtnQkFDbEIsV0FBVztnQkFDWCxnQkFBZ0I7Z0JBQ2hCLGtCQUFrQjtnQkFDbEIsV0FBVztnQkFDWCxlQUFlO2dCQUNmLG1CQUFtQjtnQkFDbkIsY0FBYztnQkFDZCxjQUFjO2dCQUNkLFlBQVk7Z0JBQ1osa0JBQWtCO2dCQUNsQixjQUFjO2dCQUVkLGtCQUFrQjtnQkFDbEIsV0FBVztnQkFDWCxtQkFBbUI7YUFDdEI7WUFDRCxZQUFZLEVBQUU7Z0JBQ1YsMkJBQTJCO2FBQzlCO1lBQ0QsU0FBUyxFQUFFLEVBQUU7WUFDYixPQUFPLEVBQUU7Z0JBQ0wsMkJBQTJCO2FBQzlCO1NBQ0osQ0FBQztPQUNXLHdCQUF3QixDQUFHO0lBQUQsK0JBQUM7Q0FBQSxBQUF4QyxJQUF3QztTQUEzQix3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEdyaWRFZGl0YWJsZU5lc3RlZENvbXBvbmVudCB9IGZyb20gJy4vZ3JpZC1lZGl0YWJsZS1uZXN0ZWQuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIGFzIFByaW1lVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcblxuaW1wb3J0IHtcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgTG9hZGluZ1N0YXRlTW9kdWxlLFxuICAgIExvY2FsZU1vZHVsZSxcbiAgICBOdW1iZXJJbnB1dE1vZHVsZSxcbiAgICBUYWJsZU1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIEJyZWFkY3J1bWJNb2R1bGUsXG4gICAgQ29udHJvbEVycm9yc01vZHVsZSxcbiAgICBDdXN0b21GaWVsZHNNb2R1bGUsXG4gICAgRHluYW1pY0Zvcm1Nb2R1bGUsXG4gICAgRW1wdHlTdGF0ZU1vZHVsZSxcbiAgICBUb2tlbkxpc3RNb2R1bGUsXG59IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xuaW1wb3J0IHsgUGFuZWxNb2R1bGUgfSBmcm9tICdwcmltZW5nL3BhbmVsJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcbmltcG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIGFzIFByaW1lVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBDaGVja2JveE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2hlY2tib3gnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBMb2NhbGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVGFibGVNb2R1bGUsXG4gICAgICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIExvYWRpbmdTdGF0ZU1vZHVsZSxcbiAgICAgICAgTnVtYmVySW5wdXRNb2R1bGUsXG4gICAgICAgIEJyZWFkY3J1bWJNb2R1bGUsXG4gICAgICAgIENvbnRyb2xFcnJvcnNNb2R1bGUsXG4gICAgICAgIEN1c3RvbUZpZWxkc01vZHVsZSxcbiAgICAgICAgRHluYW1pY0Zvcm1Nb2R1bGUsXG4gICAgICAgIEVtcHR5U3RhdGVNb2R1bGUsXG4gICAgICAgIFRva2VuTGlzdE1vZHVsZSxcblxuICAgICAgICAvLyBQcmltZU5HIG1vZHVsZXNcbiAgICAgICAgVG9hc3RNb2R1bGUsXG4gICAgICAgIFByaW1lVGFibGVNb2R1bGUsXG4gICAgICAgIFByaW1lVG9vbHRpcE1vZHVsZSxcbiAgICAgICAgUGFuZWxNb2R1bGUsXG4gICAgICAgIElucHV0VGV4dE1vZHVsZSxcbiAgICAgICAgQ29uZmlybURpYWxvZ01vZHVsZSxcbiAgICAgICAgQ2FsZW5kYXJNb2R1bGUsXG4gICAgICAgIERyb3Bkb3duTW9kdWxlLFxuICAgICAgICBTaGFyZWRNb2R1bGUsXG4gICAgICAgIEF1dG9Db21wbGV0ZU1vZHVsZSxcbiAgICAgICAgQ2hlY2tib3hNb2R1bGUsXG5cbiAgICAgICAgLy8gQW5ndWxhciBtb2R1bGVzXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgR3JpZEVkaXRhYmxlTmVzdGVkQ29tcG9uZW50LFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEdyaWRFZGl0YWJsZU5lc3RlZENvbXBvbmVudCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHcmlkRWRpdGFibGVOZXN0ZWRNb2R1bGUge31cbiJdfQ==