@sumaris-net/ngx-components 0.25.11 → 0.25.12

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.
@@ -5,6 +5,8 @@ import { Injectable } from '@angular/core';
5
5
  import { TranslateService } from '@ngx-translate/core';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@ngx-translate/core";
8
+ export class IFormI18nService {
9
+ }
8
10
  export class FormErrorAdapter {
9
11
  constructor(translate) {
10
12
  this.translate = translate;
@@ -15,12 +17,12 @@ export class FormErrorAdapter {
15
17
  const separator = opts && opts.separator || ', ';
16
18
  const recursive = !opts || opts.recursive !== false;
17
19
  const errors = AppFormUtils.getFormErrors(form, { recursive });
18
- const i18nErrors = errors && Object.keys(errors).reduce((res, key) => {
19
- const control = form.get(key);
20
+ const i18nErrors = errors && Object.keys(errors).reduce((res, fieldName) => {
21
+ const control = form.get(fieldName);
20
22
  // Should be a control map of errors
21
23
  if (control) {
22
24
  // Try to convert from a map, for one column control
23
- const i18nFieldNameKey = this.getI18nFieldName(key, opts);
25
+ const i18nFieldNameKey = this.getI18nKey(fieldName, opts);
24
26
  const i18nFieldName = this.translate.instant(i18nFieldNameKey);
25
27
  // OK, we have a field name: use it
26
28
  const columnErrors = Object.keys(control.errors).map(errorKey => this.getI18nError(errorKey, control.errors[errorKey]));
@@ -32,17 +34,23 @@ export class FormErrorAdapter {
32
34
  return res + i18nFieldName + ": " + columnErrors.join(separator);
33
35
  }
34
36
  // Or try as global form error
35
- const formError = this.getI18nError(key, errors[key]);
37
+ const formError = this.getI18nError(fieldName, errors[fieldName]);
36
38
  if (isNil(formError))
37
39
  return res;
38
40
  return res + (res.length ? separator : '') + formError;
39
41
  }, "");
40
42
  return i18nErrors;
41
43
  }
42
- getI18nFieldName(fieldName, opts) {
44
+ getI18nKey(fieldName, opts) {
45
+ if (opts === null || opts === void 0 ? void 0 : opts.i18nService) {
46
+ return opts === null || opts === void 0 ? void 0 : opts.i18nService.getI18nFieldName(fieldName);
47
+ }
43
48
  return (opts && opts.i18nPrefix || '') + changeCaseToUnderscore(fieldName).toUpperCase();
44
49
  }
45
- getI18nError(errorKey, errorContent) {
50
+ getI18nError(errorKey, errorContent, opts) {
51
+ if ((opts === null || opts === void 0 ? void 0 : opts.i18nService) && (opts === null || opts === void 0 ? void 0 : opts.i18nService.getI18nError)) {
52
+ return opts === null || opts === void 0 ? void 0 : opts.i18nService.getI18nError(errorKey, errorContent);
53
+ }
46
54
  return SharedValidators.translateError((a, b) => this.translate.instant(a, b), errorKey, errorContent);
47
55
  }
48
56
  }
@@ -53,4 +61,4 @@ FormErrorAdapter.decorators = [
53
61
  FormErrorAdapter.ctorParameters = () => [
54
62
  { type: TranslateService }
55
63
  ];
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vZm9ybS1lcnJvci5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFDLHNCQUFzQixFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsVUFBVSxFQUFzQixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBVXJELE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFDVSxTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUVyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWUsRUFBRSxJQUE4QjtRQUN6RCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUV0QyxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUM7UUFDakQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUE7UUFDbkQsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUVuRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLG9DQUFvQztZQUNwQyxJQUFJLE9BQU8sRUFBRTtnQkFDWCxvREFBb0Q7Z0JBQ3BELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDMUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFFL0QsbUNBQW1DO2dCQUNuQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEgsSUFBSSxZQUFZLENBQUMsWUFBWSxDQUFDO29CQUFFLE9BQU8sR0FBRyxDQUFDO2dCQUMzQyxnQkFBZ0I7Z0JBQ2hCLElBQUksR0FBRyxDQUFDLE1BQU07b0JBQUUsR0FBRyxJQUFJLFNBQVMsQ0FBQztnQkFDakMsT0FBTyxHQUFHLEdBQUcsYUFBYSxHQUFHLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ2xFO1lBRUQsOEJBQThCO1lBQzlCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3RELElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQztnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUNqQyxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ3pELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNQLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxTQUFpQixFQUFFLElBQTRCO1FBQ3hFLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzRixDQUFDO0lBRVMsWUFBWSxDQUFDLFFBQWdCLEVBQUUsWUFBa0I7UUFDekQsT0FBTyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3pHLENBQUM7Ozs7WUE3Q0YsVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7O1lBVHhCLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBwRm9ybVV0aWxzfSBmcm9tICcuL2Zvcm0udXRpbHMnO1xuaW1wb3J0IHtjaGFuZ2VDYXNlVG9VbmRlcnNjb3JlLCBpc0VtcHR5QXJyYXksIGlzTmlsfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7U2hhcmVkVmFsaWRhdG9yc30gZnJvbSAnLi4vLi4vc2hhcmVkL3ZhbGlkYXRvci92YWxpZGF0b3JzJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgUGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtRXJyb3JBZGFwdGVyT3B0aW9ucyB7XG4gIGkxOG5QcmVmaXg/OiBzdHJpbmc7XG4gIHNlcGFyYXRvcj86IHN0cmluZztcbiAgcmVjdXJzaXZlPzogYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgRm9ybUVycm9yQWRhcHRlciB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBmb3JtYXRFcnJvcihmb3JtOiBGb3JtR3JvdXAsIG9wdHM/OiBGb3JtRXJyb3JBZGFwdGVyT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgaWYgKCFmb3JtIHx8ICFmb3JtLmludmFsaWQpIHJldHVybiAnJztcblxuICAgIGNvbnN0IHNlcGFyYXRvciA9IG9wdHMgJiYgb3B0cy5zZXBhcmF0b3IgfHwgJywgJztcbiAgICBjb25zdCByZWN1cnNpdmUgPSAhb3B0cyB8fCBvcHRzLnJlY3Vyc2l2ZSAhPT0gZmFsc2VcbiAgICBjb25zdCBlcnJvcnMgPSBBcHBGb3JtVXRpbHMuZ2V0Rm9ybUVycm9ycyhmb3JtLCB7cmVjdXJzaXZlfSk7XG4gICAgY29uc3QgaTE4bkVycm9ycyA9IGVycm9ycyAmJiBPYmplY3Qua2V5cyhlcnJvcnMpLnJlZHVjZSgocmVzLCBrZXkpID0+IHtcblxuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm0uZ2V0KGtleSk7XG4gICAgICAvLyBTaG91bGQgYmUgYSBjb250cm9sIG1hcCBvZiBlcnJvcnNcbiAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgIC8vIFRyeSB0byBjb252ZXJ0IGZyb20gYSBtYXAsIGZvciBvbmUgY29sdW1uIGNvbnRyb2xcbiAgICAgICAgY29uc3QgaTE4bkZpZWxkTmFtZUtleSA9IHRoaXMuZ2V0STE4bkZpZWxkTmFtZShrZXksIG9wdHMpO1xuICAgICAgICBjb25zdCBpMThuRmllbGROYW1lID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChpMThuRmllbGROYW1lS2V5KTtcblxuICAgICAgICAvLyBPSywgd2UgaGF2ZSBhIGZpZWxkIG5hbWU6IHVzZSBpdFxuICAgICAgICBjb25zdCBjb2x1bW5FcnJvcnMgPSBPYmplY3Qua2V5cyhjb250cm9sLmVycm9ycykubWFwKGVycm9yS2V5ID0+IHRoaXMuZ2V0STE4bkVycm9yKGVycm9yS2V5LCBjb250cm9sLmVycm9yc1tlcnJvcktleV0pKTtcbiAgICAgICAgaWYgKGlzRW1wdHlBcnJheShjb2x1bW5FcnJvcnMpKSByZXR1cm4gcmVzO1xuICAgICAgICAvLyBBZGQgc2VwYXJhdG9yXG4gICAgICAgIGlmIChyZXMubGVuZ3RoKSByZXMgKz0gc2VwYXJhdG9yO1xuICAgICAgICByZXR1cm4gcmVzICsgaTE4bkZpZWxkTmFtZSArIFwiOiBcIiArIGNvbHVtbkVycm9ycy5qb2luKHNlcGFyYXRvcik7XG4gICAgICB9XG5cbiAgICAgIC8vIE9yIHRyeSBhcyBnbG9iYWwgZm9ybSBlcnJvclxuICAgICAgY29uc3QgZm9ybUVycm9yID0gdGhpcy5nZXRJMThuRXJyb3Ioa2V5LCBlcnJvcnNba2V5XSk7XG4gICAgICBpZiAoaXNOaWwoZm9ybUVycm9yKSkgcmV0dXJuIHJlcztcbiAgICAgIHJldHVybiByZXMgKyAocmVzLmxlbmd0aCA/IHNlcGFyYXRvciA6ICcnKSArIGZvcm1FcnJvcjtcbiAgICB9LCBcIlwiKTtcbiAgICByZXR1cm4gaTE4bkVycm9ycztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJMThuRmllbGROYW1lKGZpZWxkTmFtZTogc3RyaW5nLCBvcHRzPzoge2kxOG5QcmVmaXg/OiBzdHJpbmd9KSB7XG4gICAgcmV0dXJuIChvcHRzICYmIG9wdHMuaTE4blByZWZpeCB8fCAnJykgKyBjaGFuZ2VDYXNlVG9VbmRlcnNjb3JlKGZpZWxkTmFtZSkudG9VcHBlckNhc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJMThuRXJyb3IoZXJyb3JLZXk6IHN0cmluZywgZXJyb3JDb250ZW50PzogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gU2hhcmVkVmFsaWRhdG9ycy50cmFuc2xhdGVFcnJvcigoYSwgYikgPT4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChhLCBiKSwgZXJyb3JLZXksIGVycm9yQ29udGVudCk7XG4gIH1cbn1cbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vZm9ybS1lcnJvci5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFDLHNCQUFzQixFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7QUFHckQsTUFBTSxPQUFPLGdCQUFnQjtDQWE1QjtBQVVELE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFDVSxTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUVyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWUsRUFBRSxJQUE4QjtRQUN6RCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUV0QyxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUM7UUFDakQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUE7UUFDbkQsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRTtZQUV6RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BDLG9DQUFvQztZQUNwQyxJQUFJLE9BQU8sRUFBRTtnQkFDWCxvREFBb0Q7Z0JBQ3BELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzFELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBRS9ELG1DQUFtQztnQkFDbkMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hILElBQUksWUFBWSxDQUFDLFlBQVksQ0FBQztvQkFBRSxPQUFPLEdBQUcsQ0FBQztnQkFDM0MsZ0JBQWdCO2dCQUNoQixJQUFJLEdBQUcsQ0FBQyxNQUFNO29CQUFFLEdBQUcsSUFBSSxTQUFTLENBQUM7Z0JBQ2pDLE9BQU8sR0FBRyxHQUFHLGFBQWEsR0FBRyxJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNsRTtZQUVELDhCQUE4QjtZQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNsRSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFDakMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN6RCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDUCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRVMsVUFBVSxDQUFDLFNBQWlCLEVBQUUsSUFBOEI7UUFDcEUsSUFBSSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsV0FBVyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUU7U0FDdEQ7UUFDRCxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0YsQ0FBQztJQUVTLFlBQVksQ0FBQyxRQUFnQixFQUFFLFlBQWtCLEVBQUUsSUFBOEI7UUFDekYsSUFBSSxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxXQUFXLE1BQUksSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUEsRUFBRTtZQUN2RCxPQUFPLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxXQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUU7U0FDL0Q7UUFDRCxPQUFPLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDekcsQ0FBQzs7OztZQW5ERixVQUFVLFNBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzs7WUF6QnhCLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBwRm9ybVV0aWxzfSBmcm9tICcuL2Zvcm0udXRpbHMnO1xuaW1wb3J0IHtjaGFuZ2VDYXNlVG9VbmRlcnNjb3JlLCBpc0VtcHR5QXJyYXksIGlzTmlsfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7U2hhcmVkVmFsaWRhdG9yc30gZnJvbSAnLi4vLi4vc2hhcmVkL3ZhbGlkYXRvci92YWxpZGF0b3JzJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGNsYXNzIElGb3JtSTE4blNlcnZpY2Uge1xuICAvKipcbiAgICogRnJvbSBhIGZpZWxkTmFtZSBjb21wbGV0ZSBuYW1lIChlLmcuICdzdGFydERhdGUnLCAndGF4b25Hcm91cCcsICdtZWFzdXJlbWVudFZhbHVlcy4xJyksIHNob3VsZCByZXR1cm4gYW4gaTE4biBrZXkgdG8gYmUgdXNlZCB0cmFuc2xhdGlvblxuICAgKiBAcGFyYW0gZmllbGROYW1lIHRoZSBmaWVsZCBuYW1lIHRvIGNvbnZlcnRcbiAgICovXG4gIGdldEkxOG5GaWVsZE5hbWU6IChmaWVsZE5hbWUpID0+IHN0cmluZztcblxuICAvKipcbiAgICogRnJvbSBhIGVycm9yIGtleSAoZS5nLiAncmVxdWlyZWQnKSwgc2hvdWxkIHJldHVybiBhbiBpMThuIGtleSB0byBiZSB1c2VkIHRyYW5zbGF0aW9uXG4gICAqIEBwYXJhbSBlcnJvcktleSB0aGUgZXJyb3Iga2V5XG4gICAqIEBwYXJhbSBlcnJvckNvbnRlbnQgdGhlIGVycm9yIGNvbnRlbnRcbiAgICovXG4gIGdldEkxOG5FcnJvcj86IChlLCBjKSA9PiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUVycm9yQWRhcHRlck9wdGlvbnMge1xuICBpMThuUHJlZml4Pzogc3RyaW5nO1xuICBpMThuU2VydmljZT86IElGb3JtSTE4blNlcnZpY2U7XG4gIHNlcGFyYXRvcj86IHN0cmluZztcbiAgcmVjdXJzaXZlPzogYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgRm9ybUVycm9yQWRhcHRlciB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBmb3JtYXRFcnJvcihmb3JtOiBGb3JtR3JvdXAsIG9wdHM/OiBGb3JtRXJyb3JBZGFwdGVyT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgaWYgKCFmb3JtIHx8ICFmb3JtLmludmFsaWQpIHJldHVybiAnJztcblxuICAgIGNvbnN0IHNlcGFyYXRvciA9IG9wdHMgJiYgb3B0cy5zZXBhcmF0b3IgfHwgJywgJztcbiAgICBjb25zdCByZWN1cnNpdmUgPSAhb3B0cyB8fCBvcHRzLnJlY3Vyc2l2ZSAhPT0gZmFsc2VcbiAgICBjb25zdCBlcnJvcnMgPSBBcHBGb3JtVXRpbHMuZ2V0Rm9ybUVycm9ycyhmb3JtLCB7cmVjdXJzaXZlfSk7XG4gICAgY29uc3QgaTE4bkVycm9ycyA9IGVycm9ycyAmJiBPYmplY3Qua2V5cyhlcnJvcnMpLnJlZHVjZSgocmVzLCBmaWVsZE5hbWUpID0+IHtcblxuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm0uZ2V0KGZpZWxkTmFtZSk7XG4gICAgICAvLyBTaG91bGQgYmUgYSBjb250cm9sIG1hcCBvZiBlcnJvcnNcbiAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgIC8vIFRyeSB0byBjb252ZXJ0IGZyb20gYSBtYXAsIGZvciBvbmUgY29sdW1uIGNvbnRyb2xcbiAgICAgICAgY29uc3QgaTE4bkZpZWxkTmFtZUtleSA9IHRoaXMuZ2V0STE4bktleShmaWVsZE5hbWUsIG9wdHMpO1xuICAgICAgICBjb25zdCBpMThuRmllbGROYW1lID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChpMThuRmllbGROYW1lS2V5KTtcblxuICAgICAgICAvLyBPSywgd2UgaGF2ZSBhIGZpZWxkIG5hbWU6IHVzZSBpdFxuICAgICAgICBjb25zdCBjb2x1bW5FcnJvcnMgPSBPYmplY3Qua2V5cyhjb250cm9sLmVycm9ycykubWFwKGVycm9yS2V5ID0+IHRoaXMuZ2V0STE4bkVycm9yKGVycm9yS2V5LCBjb250cm9sLmVycm9yc1tlcnJvcktleV0pKTtcbiAgICAgICAgaWYgKGlzRW1wdHlBcnJheShjb2x1bW5FcnJvcnMpKSByZXR1cm4gcmVzO1xuICAgICAgICAvLyBBZGQgc2VwYXJhdG9yXG4gICAgICAgIGlmIChyZXMubGVuZ3RoKSByZXMgKz0gc2VwYXJhdG9yO1xuICAgICAgICByZXR1cm4gcmVzICsgaTE4bkZpZWxkTmFtZSArIFwiOiBcIiArIGNvbHVtbkVycm9ycy5qb2luKHNlcGFyYXRvcik7XG4gICAgICB9XG5cbiAgICAgIC8vIE9yIHRyeSBhcyBnbG9iYWwgZm9ybSBlcnJvclxuICAgICAgY29uc3QgZm9ybUVycm9yID0gdGhpcy5nZXRJMThuRXJyb3IoZmllbGROYW1lLCBlcnJvcnNbZmllbGROYW1lXSk7XG4gICAgICBpZiAoaXNOaWwoZm9ybUVycm9yKSkgcmV0dXJuIHJlcztcbiAgICAgIHJldHVybiByZXMgKyAocmVzLmxlbmd0aCA/IHNlcGFyYXRvciA6ICcnKSArIGZvcm1FcnJvcjtcbiAgICB9LCBcIlwiKTtcbiAgICByZXR1cm4gaTE4bkVycm9ycztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJMThuS2V5KGZpZWxkTmFtZTogc3RyaW5nLCBvcHRzPzogRm9ybUVycm9yQWRhcHRlck9wdGlvbnMpIHtcbiAgICBpZiAob3B0cz8uaTE4blNlcnZpY2UpIHtcbiAgICAgIHJldHVybiBvcHRzPy5pMThuU2VydmljZS5nZXRJMThuRmllbGROYW1lKGZpZWxkTmFtZSk7XG4gICAgfVxuICAgIHJldHVybiAob3B0cyAmJiBvcHRzLmkxOG5QcmVmaXggfHwgJycpICsgY2hhbmdlQ2FzZVRvVW5kZXJzY29yZShmaWVsZE5hbWUpLnRvVXBwZXJDYXNlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0STE4bkVycm9yKGVycm9yS2V5OiBzdHJpbmcsIGVycm9yQ29udGVudD86IGFueSwgb3B0cz86IEZvcm1FcnJvckFkYXB0ZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICBpZiAob3B0cz8uaTE4blNlcnZpY2UgJiYgb3B0cz8uaTE4blNlcnZpY2UuZ2V0STE4bkVycm9yKSB7XG4gICAgICByZXR1cm4gb3B0cz8uaTE4blNlcnZpY2UuZ2V0STE4bkVycm9yKGVycm9yS2V5LCBlcnJvckNvbnRlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gU2hhcmVkVmFsaWRhdG9ycy50cmFuc2xhdGVFcnJvcigoYSwgYikgPT4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChhLCBiKSwgZXJyb3JLZXksIGVycm9yQ29udGVudCk7XG4gIH1cbn1cbiJdfQ==