@sumaris-net/ngx-components 1.10.9 → 1.11.0-rc3

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 (72) hide show
  1. package/bundles/sumaris-net.ngx-components.umd.js +5489 -4218
  2. package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
  3. package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
  4. package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
  5. package/doc/changelog.md +10 -0
  6. package/esm2015/public_api.js +36 -10
  7. package/esm2015/src/app/core/core.module.js +13 -5
  8. package/esm2015/src/app/core/core.testing.module.js +51 -0
  9. package/esm2015/src/app/core/form/entity-editor.class.js +1 -1
  10. package/esm2015/src/app/core/form/form.utils.js +58 -393
  11. package/esm2015/src/app/core/services/validator/base.validator.class.js +1 -1
  12. package/esm2015/src/app/core/table/table.class.js +2 -1
  13. package/esm2015/src/app/core/table/testing/table.testing.js +246 -0
  14. package/esm2015/src/app/core/table/testing/table.testing.module.js +26 -0
  15. package/esm2015/src/app/core/text-popover/testing/text-popover.testing.js +37 -0
  16. package/esm2015/src/app/core/text-popover/testing/text-popover.testing.module.js +33 -0
  17. package/esm2015/src/app/core/text-popover/text-form.component.js +72 -0
  18. package/esm2015/src/app/core/text-popover/text-popover.component.js +90 -0
  19. package/esm2015/src/app/shared/directives/directives.module.js +6 -3
  20. package/esm2015/src/app/shared/directives/drag-and-drop.directive.js +43 -0
  21. package/esm2015/src/app/shared/forms.js +339 -0
  22. package/esm2015/src/app/shared/material/chips/chips.module.js +3 -3
  23. package/esm2015/src/app/shared/material/material.module.js +3 -3
  24. package/esm2015/src/app/shared/material/material.testing.module.js +102 -0
  25. package/esm2015/src/app/shared/material/numpad/testing/numpad.test.js +44 -0
  26. package/esm2015/src/app/shared/shared.module.js +13 -3
  27. package/esm2015/src/app/shared/shared.testing.module.js +13 -5
  28. package/esm2015/src/app/shared/testing/tests.page.js +34 -0
  29. package/esm2015/src/app/shared/toast/toast.testing.js +1 -1
  30. package/esm2015/src/app/shared/upload-file/testing/upload-file.testing.js +69 -0
  31. package/esm2015/src/app/shared/upload-file/testing/upload-file.testing.module.js +33 -0
  32. package/esm2015/src/app/shared/upload-file/upload-file-popover.component.js +100 -0
  33. package/esm2015/src/app/shared/upload-file/upload-file.component.js +189 -0
  34. package/esm2015/src/app/shared/upload-file/upload-file.model.js +3 -0
  35. package/esm2015/src/app/shared/validator/form-error-adapter.class.js +1 -1
  36. package/esm2015/sumaris-net.ngx-components.js +12 -13
  37. package/fesm2015/sumaris-net.ngx-components.js +3755 -2696
  38. package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
  39. package/package.json +3 -3
  40. package/public_api.d.ts +26 -8
  41. package/src/app/core/core.testing.module.d.ts +4 -0
  42. package/src/app/core/form/entity-editor.class.d.ts +1 -1
  43. package/src/app/core/form/form.utils.d.ts +39 -114
  44. package/src/app/core/services/validator/base.validator.class.d.ts +1 -1
  45. package/src/app/core/table/testing/table.testing.d.ts +51 -0
  46. package/src/app/core/table/testing/table.testing.module.d.ts +2 -0
  47. package/src/app/core/text-popover/testing/text-popover.testing.d.ts +7 -0
  48. package/src/app/core/text-popover/testing/text-popover.testing.module.d.ts +2 -0
  49. package/src/app/core/text-popover/text-form.component.d.ts +28 -0
  50. package/src/app/core/text-popover/text-popover.component.d.ts +37 -0
  51. package/src/app/shared/directives/drag-and-drop.directive.d.ts +14 -0
  52. package/src/app/shared/forms.d.ts +78 -0
  53. package/src/app/shared/material/chips/chips.module.d.ts +1 -1
  54. package/src/app/shared/material/material.testing.module.d.ts +4 -0
  55. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +10 -0
  56. package/src/app/shared/shared.testing.module.d.ts +1 -1
  57. package/src/app/shared/{material/testing/material.testing.page.d.ts → testing/tests.page.d.ts} +3 -2
  58. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +15 -0
  59. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +2 -0
  60. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +36 -0
  61. package/src/app/shared/upload-file/upload-file.component.d.ts +45 -0
  62. package/src/app/shared/upload-file/upload-file.model.d.ts +10 -0
  63. package/src/app/shared/validator/form-error-adapter.class.d.ts +1 -1
  64. package/src/assets/i18n/en-US.json +11 -1
  65. package/src/assets/i18n/en.json +11 -1
  66. package/src/assets/i18n/fr.json +11 -1
  67. package/src/theme/_ngx-components.scss +8 -0
  68. package/sumaris-net.ngx-components.d.ts +11 -12
  69. package/sumaris-net.ngx-components.metadata.json +1 -1
  70. package/esm2015/src/app/shared/material/testing/material.testing.module.js +0 -92
  71. package/esm2015/src/app/shared/material/testing/material.testing.page.js +0 -34
  72. package/src/app/shared/material/testing/material.testing.module.d.ts +0 -2
@@ -45,4 +45,4 @@ AppValidatorService.ctorParameters = () => [
45
45
  { type: FormBuilder },
46
46
  { type: TranslateService }
47
47
  ];
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS52YWxpZGF0b3IuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvdmFsaWRhdG9yL2Jhc2UudmFsaWRhdG9yLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBa0IsV0FBVyxFQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUMsWUFBWSxFQUFhLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFDLHNCQUFzQixFQUFlLE1BQU0sMkJBQTJCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFHckQsTUFBTSxPQUFnQixtQkFDcEIsU0FBUSxnQkFBZ0I7SUFHeEIsWUFDWSxXQUF3QixFQUN4QixTQUE0QjtRQUV0QyxLQUFLLEVBQUUsQ0FBQztRQUhFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQW1CO0lBR3hDLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFRO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVE7UUFDekIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBd0I7UUFDeEMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFrQjtRQUM5QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVTLFlBQVksQ0FBQyxRQUFnQixFQUFFLFlBQWtCO1FBQ3pELE1BQU0sT0FBTyxHQUFHLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbEUsSUFBSSxPQUFPLEtBQUssV0FBVztZQUFFLE9BQU8sV0FBVyxDQUFDO1FBQ2hELElBQUksT0FBTyxZQUFZLEtBQUssUUFBUTtZQUFFLE9BQU8sWUFBWSxDQUFDO1FBRTFELDZCQUE2QjtRQUM3QixPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxRQUFRLHVEQUF1RCxDQUFDLENBQUM7UUFFMUgsT0FBTyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs7WUEzQ0YsU0FBUzs7O1lBUGUsV0FBVztZQUs1QixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ZhbGlkYXRvclNlcnZpY2V9IGZyb20gJ0BlLWlzL25neC1tYXRlcmlhbC10YWJsZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtJVmFsaWRhdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL3ZhbGlkYXRvci1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7RGlyZWN0aXZlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QXBwRm9ybVV0aWxzLCBGb3JtRXJyb3JzfSBmcm9tICcuLi8uLi9mb3JtL2Zvcm0udXRpbHMnO1xuaW1wb3J0IHtjaGFuZ2VDYXNlVG9VbmRlcnNjb3JlLCBpc0VtcHR5QXJyYXl9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwVmFsaWRhdG9yU2VydmljZTxUID0gYW55PlxuICBleHRlbmRzIFZhbGlkYXRvclNlcnZpY2VcbiAgaW1wbGVtZW50cyBJVmFsaWRhdG9yU2VydmljZTxUPiB7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZT86IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldFJvd1ZhbGlkYXRvcigpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmdldEZvcm1Hcm91cCgpO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwKGRhdGE/OiBUKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh0aGlzLmdldEZvcm1Hcm91cENvbmZpZyhkYXRhKSk7XG4gIH1cblxuICBnZXRGb3JtR3JvdXBDb25maWcoZGF0YT86IFQpOiB7IFtrZXk6IHN0cmluZ106IGFueX0gIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBnZXRJMThuRm9ybUVycm9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZXJyb3JzID0gQXBwRm9ybVV0aWxzLmdldEZvcm1FcnJvcnMoY29udHJvbCk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0STE4bkVycm9ycyhlcnJvcnMpO1xuICB9XG5cbiAgZ2V0STE4bkVycm9ycyhlcnJvcnM6IEZvcm1FcnJvcnMpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVycm9ycyB8fCB7fSkubWFwKGVycm9yS2V5ID0+IHRoaXMuZ2V0STE4bkVycm9yKGVycm9yS2V5LCBlcnJvcnNbZXJyb3JLZXldKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0STE4bkVycm9yKGVycm9yS2V5OiBzdHJpbmcsIGVycm9yQ29udGVudD86IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgaTE4bktleSA9ICdFUlJPUi5GSUVMRF8nICsgY2hhbmdlQ2FzZVRvVW5kZXJzY29yZShlcnJvcktleSkudG9VcHBlckNhc2UoKTtcbiAgICBjb25zdCBpMThuTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoaTE4bktleSwgZXJyb3JDb250ZW50KTtcbiAgICBpZiAoaTE4bktleSAhPT0gaTE4bk1lc3NhZ2UpIHJldHVybiBpMThuTWVzc2FnZTtcbiAgICBpZiAodHlwZW9mIGVycm9yQ29udGVudCA9PT0gJ3N0cmluZycpIHJldHVybiBlcnJvckNvbnRlbnQ7XG5cbiAgICAvLyBOb3QgdHJhbnNsYXRlZDogc2hvdyBlcnJvclxuICAgIGNvbnNvbGUuZXJyb3IoYFt2YWxpZGF0b3JdIENhbm5vdCB0cmFuc2xhdGUgZXJyb3Iga2V5ICcke2Vycm9yS2V5fScuIFBsZWFzZSBvdmVycmlkZSB0cmFuc2xhdGVFcnJvcigpIGluIHlvdXIgdmFsaWRhdG9yYCk7XG5cbiAgICByZXR1cm4gY2hhbmdlQ2FzZVRvVW5kZXJzY29yZShlcnJvcktleSk7XG4gIH1cbn1cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS52YWxpZGF0b3IuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvdmFsaWRhdG9yL2Jhc2UudmFsaWRhdG9yLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBa0IsV0FBVyxFQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFDLHNCQUFzQixFQUFlLE1BQU0sMkJBQTJCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFJckQsTUFBTSxPQUFnQixtQkFDcEIsU0FBUSxnQkFBZ0I7SUFHeEIsWUFDWSxXQUF3QixFQUN4QixTQUE0QjtRQUV0QyxLQUFLLEVBQUUsQ0FBQztRQUhFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQW1CO0lBR3hDLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFRO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVE7UUFDekIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBd0I7UUFDeEMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFrQjtRQUM5QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVTLFlBQVksQ0FBQyxRQUFnQixFQUFFLFlBQWtCO1FBQ3pELE1BQU0sT0FBTyxHQUFHLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbEUsSUFBSSxPQUFPLEtBQUssV0FBVztZQUFFLE9BQU8sV0FBVyxDQUFDO1FBQ2hELElBQUksT0FBTyxZQUFZLEtBQUssUUFBUTtZQUFFLE9BQU8sWUFBWSxDQUFDO1FBRTFELDZCQUE2QjtRQUM3QixPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxRQUFRLHVEQUF1RCxDQUFDLENBQUM7UUFFMUgsT0FBTyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs7WUEzQ0YsU0FBUzs7O1lBUmUsV0FBVztZQUs1QixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ZhbGlkYXRvclNlcnZpY2V9IGZyb20gJ0BlLWlzL25neC1tYXRlcmlhbC10YWJsZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtJVmFsaWRhdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL3ZhbGlkYXRvci1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7RGlyZWN0aXZlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QXBwRm9ybVV0aWxzfSBmcm9tICcuLi8uLi9mb3JtL2Zvcm0udXRpbHMnO1xuaW1wb3J0IHtjaGFuZ2VDYXNlVG9VbmRlcnNjb3JlLCBpc0VtcHR5QXJyYXl9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Rm9ybUVycm9yc30gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm1zJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwVmFsaWRhdG9yU2VydmljZTxUID0gYW55PlxuICBleHRlbmRzIFZhbGlkYXRvclNlcnZpY2VcbiAgaW1wbGVtZW50cyBJVmFsaWRhdG9yU2VydmljZTxUPiB7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZT86IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldFJvd1ZhbGlkYXRvcigpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmdldEZvcm1Hcm91cCgpO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwKGRhdGE/OiBUKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh0aGlzLmdldEZvcm1Hcm91cENvbmZpZyhkYXRhKSk7XG4gIH1cblxuICBnZXRGb3JtR3JvdXBDb25maWcoZGF0YT86IFQpOiB7IFtrZXk6IHN0cmluZ106IGFueX0gIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBnZXRJMThuRm9ybUVycm9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZXJyb3JzID0gQXBwRm9ybVV0aWxzLmdldEZvcm1FcnJvcnMoY29udHJvbCk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0STE4bkVycm9ycyhlcnJvcnMpO1xuICB9XG5cbiAgZ2V0STE4bkVycm9ycyhlcnJvcnM6IEZvcm1FcnJvcnMpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVycm9ycyB8fCB7fSkubWFwKGVycm9yS2V5ID0+IHRoaXMuZ2V0STE4bkVycm9yKGVycm9yS2V5LCBlcnJvcnNbZXJyb3JLZXldKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0STE4bkVycm9yKGVycm9yS2V5OiBzdHJpbmcsIGVycm9yQ29udGVudD86IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgaTE4bktleSA9ICdFUlJPUi5GSUVMRF8nICsgY2hhbmdlQ2FzZVRvVW5kZXJzY29yZShlcnJvcktleSkudG9VcHBlckNhc2UoKTtcbiAgICBjb25zdCBpMThuTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoaTE4bktleSwgZXJyb3JDb250ZW50KTtcbiAgICBpZiAoaTE4bktleSAhPT0gaTE4bk1lc3NhZ2UpIHJldHVybiBpMThuTWVzc2FnZTtcbiAgICBpZiAodHlwZW9mIGVycm9yQ29udGVudCA9PT0gJ3N0cmluZycpIHJldHVybiBlcnJvckNvbnRlbnQ7XG5cbiAgICAvLyBOb3QgdHJhbnNsYXRlZDogc2hvdyBlcnJvclxuICAgIGNvbnNvbGUuZXJyb3IoYFt2YWxpZGF0b3JdIENhbm5vdCB0cmFuc2xhdGUgZXJyb3Iga2V5ICcke2Vycm9yS2V5fScuIFBsZWFzZSBvdmVycmlkZSB0cmFuc2xhdGVFcnJvcigpIGluIHlvdXIgdmFsaWRhdG9yYCk7XG5cbiAgICByZXR1cm4gY2hhbmdlQ2FzZVRvVW5kZXJzY29yZShlcnJvcktleSk7XG4gIH1cbn1cbiJdfQ==