@simpleangularcontrols/sac-common 10.0.0-rc.27 → 10.0.0-rc.28

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 (121) hide show
  1. package/bundles/simpleangularcontrols-sac-common.umd.js +716 -361
  2. package/bundles/simpleangularcontrols-sac-common.umd.js.map +1 -1
  3. package/bundles/simpleangularcontrols-sac-common.umd.min.js +1 -1
  4. package/bundles/simpleangularcontrols-sac-common.umd.min.js.map +1 -1
  5. package/common/basedatetimecontrol.d.ts +5 -0
  6. package/common/basemodelcontrol.d.ts +4 -0
  7. package/common/baseuploadcontrol.d.ts +4 -0
  8. package/controls/buttons/button.d.ts +25 -21
  9. package/controls/checkbox/checkbox.d.ts +1 -1
  10. package/controls/confirm/confirm.d.ts +19 -19
  11. package/controls/confirm/confirm.service.d.ts +10 -10
  12. package/controls/contextmenu/contextmenu.d.ts +8 -0
  13. package/controls/datetime/dateselector.d.ts +9 -1
  14. package/controls/dialog/dialog.d.ts +5 -1
  15. package/controls/form/form.d.ts +4 -4
  16. package/controls/grid/grid.d.ts +22 -18
  17. package/controls/grid/gridbutton.d.ts +23 -4
  18. package/controls/grid/gridcolumn.d.ts +5 -5
  19. package/controls/grid/gridcolumnaction.d.ts +1 -1
  20. package/controls/grid/gridcolumnbase.d.ts +17 -5
  21. package/controls/grid/model.d.ts +17 -17
  22. package/controls/grid/paging.d.ts +33 -29
  23. package/controls/input/inputdecimal.d.ts +1 -1
  24. package/controls/input/inputemail.d.ts +1 -1
  25. package/controls/input/inputinteger.d.ts +1 -1
  26. package/controls/input/inputsearch.d.ts +5 -5
  27. package/controls/list/dropdown.d.ts +3 -3
  28. package/controls/list/dropdownoptions.d.ts +1 -1
  29. package/controls/list/listbox.d.ts +1 -1
  30. package/controls/multilanguage/multilanguageinput.d.ts +2 -2
  31. package/controls/static/staticlabel.d.ts +1 -1
  32. package/controls/tabs/tab.d.ts +19 -15
  33. package/controls/tabs/tabitem.d.ts +4 -4
  34. package/controls/tinymce/tinymce.d.ts +26 -22
  35. package/controls/tinymce/tinymcedialogsettings.d.ts +9 -9
  36. package/controls/tooltip/tooltip.d.ts +8 -0
  37. package/controls/upload/dropzonemultiple.d.ts +4 -0
  38. package/controls/upload/dropzonesingle.d.ts +4 -0
  39. package/controls/upload/uploadmultiple.d.ts +4 -0
  40. package/controls/upload/uploadsingle.d.ts +4 -0
  41. package/controls/validation/validationsummary.d.ts +8 -4
  42. package/controls/wizard/wizard.d.ts +30 -30
  43. package/controls/wizard/wizarditem.d.ts +4 -4
  44. package/esm2015/common/basedatetimecontrol.js +6 -1
  45. package/esm2015/common/basemodelcontrol.js +6 -1
  46. package/esm2015/common/baseuploadcontrol.js +18 -5
  47. package/esm2015/controls/buttons/button.js +37 -32
  48. package/esm2015/controls/checkbox/checkbox.js +2 -2
  49. package/esm2015/controls/confirm/confirm.button.js +1 -1
  50. package/esm2015/controls/confirm/confirm.js +33 -35
  51. package/esm2015/controls/confirm/confirm.service.js +2 -2
  52. package/esm2015/controls/contextmenu/contextmenu.js +12 -1
  53. package/esm2015/controls/contextmenu/contextmenuanchor.js +1 -1
  54. package/esm2015/controls/contextmenu/contextmenucontainer.js +1 -1
  55. package/esm2015/controls/datetime/dateselector.js +41 -19
  56. package/esm2015/controls/dialog/dialog.js +22 -12
  57. package/esm2015/controls/form/form.js +3 -4
  58. package/esm2015/controls/grid/grid.js +23 -13
  59. package/esm2015/controls/grid/gridbutton.js +55 -14
  60. package/esm2015/controls/grid/gridcolumn.js +8 -8
  61. package/esm2015/controls/grid/gridcolumnaction.js +2 -2
  62. package/esm2015/controls/grid/gridcolumnbase.js +18 -7
  63. package/esm2015/controls/grid/gridimage.js +1 -1
  64. package/esm2015/controls/grid/model.js +23 -23
  65. package/esm2015/controls/grid/paging.js +48 -38
  66. package/esm2015/controls/input/inputdecimal.js +2 -2
  67. package/esm2015/controls/input/inputemail.js +2 -2
  68. package/esm2015/controls/input/inputinteger.js +2 -2
  69. package/esm2015/controls/input/inputsearch.js +8 -8
  70. package/esm2015/controls/layout/formlayout.js +6 -2
  71. package/esm2015/controls/list/buildvaluestring.js +3 -1
  72. package/esm2015/controls/list/dropdown.js +11 -2
  73. package/esm2015/controls/list/dropdownoptions.js +9 -2
  74. package/esm2015/controls/list/list.module.js +2 -2
  75. package/esm2015/controls/list/listbox.js +4 -4
  76. package/esm2015/controls/multilanguage/multilanguageinput.js +2 -2
  77. package/esm2015/controls/static/staticlabel.js +6 -2
  78. package/esm2015/controls/tabs/tab.js +38 -28
  79. package/esm2015/controls/tabs/tabitem.js +5 -3
  80. package/esm2015/controls/tinymce/tinymce.js +33 -32
  81. package/esm2015/controls/tinymce/tinymcedialogsettings.js +3 -1
  82. package/esm2015/controls/tinymce/tinymcedialogsettingsmeta.js +1 -4
  83. package/esm2015/controls/tinymce/tinymceinstance.js +1 -1
  84. package/esm2015/controls/tooltip/tooltip.js +12 -1
  85. package/esm2015/controls/upload/dropzonemultiple.js +10 -2
  86. package/esm2015/controls/upload/dropzonesingle.js +10 -2
  87. package/esm2015/controls/upload/uploadmultiple.js +10 -2
  88. package/esm2015/controls/upload/uploadsingle.js +10 -2
  89. package/esm2015/controls/validation/validationsummary.js +12 -6
  90. package/esm2015/controls/wizard/wizard.js +55 -49
  91. package/esm2015/controls/wizard/wizarditem.js +8 -6
  92. package/esm2015/interfaces/ISacConfigurationService.js +1 -1
  93. package/esm2015/interfaces/ISacIconService.js +1 -1
  94. package/esm2015/public_api.js +4 -1
  95. package/esm2015/services/sac-configuration.service.js +15 -5
  96. package/esm2015/services/sac-filebrowser.service.js +68 -62
  97. package/esm2015/services/sac-icon.service.js +31 -1
  98. package/esm2015/services/sac-language.service.js +6 -2
  99. package/esm2015/utilities/guid.js +4 -4
  100. package/esm2015/utilities/popuphelper.js +2 -2
  101. package/esm2015/utilities/testingattribute.pipe.js +39 -0
  102. package/esm2015/utilities/testingattribute.pipe.ngfactory.js +7 -0
  103. package/esm2015/utilities/utilities.module.js +12 -0
  104. package/esm2015/utilities/utilities.module.ngfactory.js +7 -0
  105. package/fesm2015/simpleangularcontrols-sac-common.js +708 -382
  106. package/fesm2015/simpleangularcontrols-sac-common.js.map +1 -1
  107. package/interfaces/ISacConfigurationService.d.ts +4 -0
  108. package/interfaces/ISacIconService.d.ts +20 -0
  109. package/package.json +1 -1
  110. package/public_api.d.ts +2 -0
  111. package/services/sac-configuration.service.d.ts +13 -5
  112. package/services/sac-filebrowser.service.d.ts +59 -59
  113. package/services/sac-icon.service.d.ts +40 -0
  114. package/services/sac-language.service.d.ts +2 -2
  115. package/simpleangularcontrols-sac-common-10.0.0-rc.28.tgz +0 -0
  116. package/simpleangularcontrols-sac-common.metadata.json +1 -1
  117. package/utilities/testingattribute.pipe.d.ts +12 -0
  118. package/utilities/testingattribute.pipe.ngfactory.d.ts +1 -0
  119. package/utilities/utilities.module.d.ts +2 -0
  120. package/utilities/utilities.module.ngfactory.d.ts +3 -0
  121. package/simpleangularcontrols-sac-common-10.0.0-rc.27.tgz +0 -0
@@ -1,5 +1,6 @@
1
1
  import { convertToBoolean } from '../../utilities/convertion';
2
2
  import { TooltipPosition } from '../../utilities/enums';
3
+ import { createGuid } from '../../utilities/guid';
3
4
  import { PopUpHelper } from '../../utilities/popuphelper';
4
5
  import { ChangeDetectorRef, Directive, ElementRef, Input, ViewChild, } from '@angular/core';
5
6
  /**
@@ -48,6 +49,14 @@ export class SacTooltipCommon {
48
49
  * Position of the tooltip at the top
49
50
  */
50
51
  this.TopPos = 0;
52
+ /**
53
+ * Identifier used for the E2E data attribute.
54
+ */
55
+ this.e2eidentifier = null;
56
+ /**
57
+ * name of control
58
+ */
59
+ this.name = createGuid();
51
60
  /**
52
61
  * Position of the picker arrow at the left
53
62
  */
@@ -234,9 +243,11 @@ SacTooltipCommon.ctorParameters = () => [
234
243
  ];
235
244
  SacTooltipCommon.propDecorators = {
236
245
  content: [{ type: ViewChild, args: ['container', { static: true },] }],
246
+ e2eidentifier: [{ type: Input }],
247
+ name: [{ type: Input }],
237
248
  position: [{ type: Input }],
238
249
  tooltiptext: [{ type: Input }],
239
250
  inlinemode: [{ type: Input }],
240
251
  tooltip: [{ type: ViewChild, args: ['tooltip', { static: false },] }]
241
252
  };
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULFVBQVUsRUFDVixLQUFLLEVBR0wsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCOzs7Ozs7Ozs7O0dBVUc7QUFFSCxNQUFNLE9BQWdCLGdCQUFnQjtJQXlFbEMsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUE2QixLQUF3QixFQUFtQixHQUFlO1FBQTFELFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQW1CLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFoRnZGLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNjLGdCQUFXLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFPOUQ7O1dBRUc7UUFDSyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFPM0M7O1dBRUc7UUFDSSw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFFaEQ7O1dBRUc7UUFDSSxZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBRTNCOztXQUVHO1FBQ0ksb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFFekM7O1dBRUc7UUFDSSxXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBUTFCOztXQUVHO1FBQ0ksaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBRTFD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LENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN4RDthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDNUI7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs7WUF0U0osU0FBUzs7O1lBckJOLGlCQUFpQjtZQUdqQixVQUFVOzs7c0JBaUVULFNBQVMsU0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO3VCQWtCdkMsS0FBSzswQkFNTCxLQUFLO3lCQTJCTCxLQUFLO3NCQVFMLFNBQVMsU0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9jb252ZXJ0aW9uJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9lbnVtcyc7XG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVG9vbHRpcCBDb21wb25lbnRcbiAqXG4gKiBSZXF1aXJlcyB0aGUgZm9sbG93aW5nIGlkZW50aWZpZXJzIGluIHRoZSBIVE1MIG1hcmt1cFxuICogLSBjb250YWluZXI6IENvbnRhaW5lciBmb3IgbmctY29udGVudCBpbiB3aGljaCB0aGUgZWxlbWVudCBpcyBkaXNwbGF5ZWQgd2hlcmUgdGhlIHRvb2x0aXAgaXMgYXR0YWNoZWQuXG4gKiAtIHRvb2x0aXA6IENvbnRhaW5lciBmb3IgdG9vbHRpcFxuICpcbiAqIFRvb2x0aXAgbXVzdCBiZSBkaXNwbGF5ZWQgaW4gMiBzdGVwcy4gSW4gYSBmaXJzdCBzdGVwIHRoZSB0b29sdGlwIG1hcmt1cCBpcyBjcmVhdGVkIHdpdGggKG5nSWYpLiBJbiBhIDJuZCBzdGVwXG4gKiB0aGUgdG9vbHRpcCBjYW4gdGhlbiBiZSBkaXNwbGF5ZWQgdmlhIHRoZSBDU1MgdmlzaWJpbGl0eS4gSWYgdGhpcyBpcyBub3QgZG9uZSwgaXQgY2FuIGxlYWQgdG8gYSBmbGlja2VyaW5nIGVmZmVjdCBpbiBjZXJ0YWluIGJyb3dzZXJzLlxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjVG9vbHRpcENvbW1vbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkLCBEb0NoZWNrIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEhlbHBlciBjbGFzcyB0byBkaXNwbGF5IHRvb2x0aXAgb24gY29ycmVjdCBwb3NpdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9wdXBIZWxwZXI6IFBvcFVwSGVscGVyID0gbmV3IFBvcFVwSGVscGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBJbmxpbmUgbW9kZSBmb3IgdG9vbHRpcFxuICAgICAqL1xuICAgIHByaXZhdGUgX2lubGluZW1vZGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgdmlzaWJsZVxuICAgICAqL1xuICAgIHByaXZhdGUgX2lzVG9vbHRpcFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b29sdGlwY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIG9uIHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIElzVG9vbHRpcENvbnRlbnRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBkZXMgVG9vbHRpcHMgbGlua3NcbiAgICAgKi9cbiAgICBwdWJsaWMgTGVmdFBvczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBlbnVtIGluIEFuZ3VsYXIgSFRNTCB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIFRvcFBvczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgY29udGVudCAoZS5nLiBpY29uKSBvbiB3aGljaCB0aGUgdG9vbHRpcCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgY29udGVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93TGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSB0b3BcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zQXJyb3dUb3A6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuIFZhbHVlczogbGVmdHx0b3B8cmlnaHR8Ym90dG9tfGF1dG9cbiAgICAgKlxuICAgICAqIFZhbHVlICdhdXRvJyBjYW4gYmUgY29tYmluZWQgd2l0aCBhbm90aGVyIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBvc2l0aW9uOiBzdHJpbmcgPSAncmlnaHR8YXV0byc7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IGZvciBUb29sVGlwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcHRleHQ6IHN0cmluZztcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIEtvbnN0cnVrdG9yXG4gICAgICogQHBhcmFtIHJlZiBFbGVtZW50IFJlZmVyZW56XG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVhZG9ubHkgcmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBpbmxpbmUgbW9kZSBmb3IgdG9vbHRpcC4gU2V0cyB0aGUgZGlzcGxheSBtb2RlIG9uIHRoZSB3cmFwcGVyIGVsZW1lbnQgdG8gYGlubGluZWBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlubGluZW1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVtb2RlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmb3IgaW5saW5lIG1vZGUgZm9yIHRvb2x0aXBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgaW5saW5lbW9kZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pbmxpbmVtb2RlID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0dGVyIGZvciB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGUgdG9vbHRpcC4gSXMgcmVxdWlyZWQgYXMgdGhlIHRvb2x0aXAgY2FuIGJlIGhpZGRlbiB2aWEgbmdJZi5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCd0b29sdGlwJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCB0b29sdGlwKGNvbnRlbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgaWYgKGNvbnRlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250ZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b29sdGlwY29udGFpbmVyID0gY29udGVudDtcbiAgICAgICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b29sdG9wKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwY29udGFpbmVyO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEdldFRvb2x0aXBQb3NpdGlvbigpOiBUb29sdGlwUG9zaXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXREaXNwbGF5UG9zaXRpb24oXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgSGlkZVRvb2x0aXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzVG9vbHRpcFZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciB0aGUgdG9vbHRpcCBpcyBwcmVzZW50IGluIHRoZSBtYXJrdXBcbiAgICAgKi9cbiAgICBwdWJsaWMgSXNUb29sdGlwVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVG9vbHRpcFZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIFNob3dUb29sdGlwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldExlZnRQb3NpdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5nZXRUb3BQb3NpdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBvZiB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUb29sVGlwSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMudG9vbHRpcGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIHRvb2x0aXBzXG4gICAgICovXG4gICAgcHVibGljIGdldFRvb2xUaXBXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cFdpZHRoKHRoaXMudG9vbHRpcGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZWN0IENoYW5nZXMgYWZ0ZXIgdmlldyBjaGVja2VkLiBQcmV2ZW50IEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IgZXJyb3JcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmlsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVjdCBVSSBDaGFuZ2VzIHRvIENhbGN1bGF0ZSBUb29sdGlwIGNvcnJlY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmlsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0TGVmdFBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3aGVuIHRoZSBjb250cm9sIGlzIGRlc3Ryb3llZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIFVucmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy50b29sdGlwY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2hlbiB0aGUgY29udHJvbCBpcyBpbml0aWFsaXplZFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gUmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogT2Zmc2V0IGZvciBUb29sdGlwLiBSZXF1aXJlZCBmb3IgQlM0L0JTNSB0byBjcmVhdGUgcGFkZGluZ1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRUb29sdGlwT2Zmc2V0KCk6IG51bWJlcjtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIGxpbmtzXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRMZWZ0UG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uTGVmdChcbiAgICAgICAgICAgIHRoaXMuY29udGVudCxcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcGNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMucmVmLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuTGVmdFBvcyA9IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUG9zaXRpb24gPSB0aGlzLkdldFRvb2x0aXBQb3NpdGlvbigpO1xuICAgICAgICBpZiAocmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLmxlZnQgfHwgcmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLnJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gdGhpcy5nZXRUb29sVGlwSGVpZ2h0KCkgLyAyIC0gNi41O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9wXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRUb3BQb3NpdGlvbigpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25Ub3AoXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLnJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLlRvcFBvcyA9IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUG9zaXRpb24gPSB0aGlzLkdldFRvb2x0aXBQb3NpdGlvbigpO1xuICAgICAgICBpZiAocmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSB8fCByZXF1aXJlZFBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24udG9wKSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IHRoaXMuZ2V0VG9vbFRpcFdpZHRoKCkgLyAyIC0gNi41O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG1ldGhvZCBpZiBjb250ZW50IGhhcyBjaGFuZ2VkIGFuZCBwcm9wb3J0aW9ucyBuZWVkIHRvIGJlIHJlc2V0IGluIHRoZSBVSS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uQ29udGVudENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRMZWZ0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXX0=
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2Qjs7Ozs7Ozs7OztHQVVHO0FBRUgsTUFBTSxPQUFnQixnQkFBZ0I7SUFxRmxDLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7OztPQUdHO0lBQ0gsWUFBNkIsS0FBd0IsRUFBbUIsR0FBZTtRQUExRCxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUFtQixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBNUZ2RixxQkFBcUI7UUFFckI7O1dBRUc7UUFDYyxnQkFBVyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBTzlEOztXQUVHO1FBQ0ssc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBTzNDOztXQUVHO1FBQ0ksNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBRWhEOztXQUVHO1FBQ0ksWUFBTyxHQUFXLENBQUMsQ0FBQztRQUUzQjs7V0FFRztRQUNJLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBRXpDOztXQUVHO1FBQ0ksV0FBTSxHQUFXLENBQUMsQ0FBQztR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QyxrQkFBa0IsRUFBRSxDQUFDO1FBQ25ELElBQUksZ0JBQWdCLEtBQUssZUFBZSxDQUFDLE1BQU0sSUFBSSxnQkFBZ0IsS0FBSyxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3pGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDeEQ7YUFBTTtZQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQzVCO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs7O1lBbFRKLFNBQVM7OztZQXJCTixpQkFBaUI7WUFHakIsVUFBVTs7O3NCQWlFVCxTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs0QkFNdkMsS0FBSzttQkFNTCxLQUFLO3VCQWtCTCxLQUFLOzBCQU1MLEtBQUs7eUJBMkJMLEtBQUs7c0JBUUwsU0FBUyxTQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2NvbnZlcnRpb24nO1xuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2VudW1zJztcbmltcG9ydCB7IGNyZWF0ZUd1aWQgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZ3VpZCc7XG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVG9vbHRpcCBDb21wb25lbnRcbiAqXG4gKiBSZXF1aXJlcyB0aGUgZm9sbG93aW5nIGlkZW50aWZpZXJzIGluIHRoZSBIVE1MIG1hcmt1cFxuICogLSBjb250YWluZXI6IENvbnRhaW5lciBmb3IgbmctY29udGVudCBpbiB3aGljaCB0aGUgZWxlbWVudCBpcyBkaXNwbGF5ZWQgd2hlcmUgdGhlIHRvb2x0aXAgaXMgYXR0YWNoZWQuXG4gKiAtIHRvb2x0aXA6IENvbnRhaW5lciBmb3IgdG9vbHRpcFxuICpcbiAqIFRvb2x0aXAgbXVzdCBiZSBkaXNwbGF5ZWQgaW4gMiBzdGVwcy4gSW4gYSBmaXJzdCBzdGVwIHRoZSB0b29sdGlwIG1hcmt1cCBpcyBjcmVhdGVkIHdpdGggKG5nSWYpLiBJbiBhIDJuZCBzdGVwXG4gKiB0aGUgdG9vbHRpcCBjYW4gdGhlbiBiZSBkaXNwbGF5ZWQgdmlhIHRoZSBDU1MgdmlzaWJpbGl0eS4gSWYgdGhpcyBpcyBub3QgZG9uZSwgaXQgY2FuIGxlYWQgdG8gYSBmbGlja2VyaW5nIGVmZmVjdCBpbiBjZXJ0YWluIGJyb3dzZXJzLlxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjVG9vbHRpcENvbW1vbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkLCBEb0NoZWNrIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEhlbHBlciBjbGFzcyB0byBkaXNwbGF5IHRvb2x0aXAgb24gY29ycmVjdCBwb3NpdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9wdXBIZWxwZXI6IFBvcFVwSGVscGVyID0gbmV3IFBvcFVwSGVscGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBJbmxpbmUgbW9kZSBmb3IgdG9vbHRpcFxuICAgICAqL1xuICAgIHByaXZhdGUgX2lubGluZW1vZGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgdmlzaWJsZVxuICAgICAqL1xuICAgIHByaXZhdGUgX2lzVG9vbHRpcFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b29sdGlwY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIG9uIHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIElzVG9vbHRpcENvbnRlbnRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBkZXMgVG9vbHRpcHMgbGlua3NcbiAgICAgKi9cbiAgICBwdWJsaWMgTGVmdFBvczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBlbnVtIGluIEFuZ3VsYXIgSFRNTCB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIFRvcFBvczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgY29udGVudCAoZS5nLiBpY29uKSBvbiB3aGljaCB0aGUgdG9vbHRpcCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgY29udGVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVyIHVzZWQgZm9yIHRoZSBFMkUgZGF0YSBhdHRyaWJ1dGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZTJlaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBuYW1lIG9mIGNvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSBjcmVhdGVHdWlkKCk7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93TGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSB0b3BcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zQXJyb3dUb3A6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuIFZhbHVlczogbGVmdHx0b3B8cmlnaHR8Ym90dG9tfGF1dG9cbiAgICAgKlxuICAgICAqIFZhbHVlICdhdXRvJyBjYW4gYmUgY29tYmluZWQgd2l0aCBhbm90aGVyIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBvc2l0aW9uOiBzdHJpbmcgPSAncmlnaHR8YXV0byc7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IGZvciBUb29sVGlwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcHRleHQ6IHN0cmluZztcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIEtvbnN0cnVrdG9yXG4gICAgICogQHBhcmFtIHJlZiBFbGVtZW50IFJlZmVyZW56XG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVhZG9ubHkgcmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBpbmxpbmUgbW9kZSBmb3IgdG9vbHRpcC4gU2V0cyB0aGUgZGlzcGxheSBtb2RlIG9uIHRoZSB3cmFwcGVyIGVsZW1lbnQgdG8gYGlubGluZWBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlubGluZW1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVtb2RlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmb3IgaW5saW5lIG1vZGUgZm9yIHRvb2x0aXBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgaW5saW5lbW9kZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pbmxpbmVtb2RlID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0dGVyIGZvciB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGUgdG9vbHRpcC4gSXMgcmVxdWlyZWQgYXMgdGhlIHRvb2x0aXAgY2FuIGJlIGhpZGRlbiB2aWEgbmdJZi5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCd0b29sdGlwJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCB0b29sdGlwKGNvbnRlbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgaWYgKGNvbnRlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250ZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b29sdGlwY29udGFpbmVyID0gY29udGVudDtcbiAgICAgICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b29sdG9wKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwY29udGFpbmVyO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEdldFRvb2x0aXBQb3NpdGlvbigpOiBUb29sdGlwUG9zaXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXREaXNwbGF5UG9zaXRpb24oXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgSGlkZVRvb2x0aXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzVG9vbHRpcFZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciB0aGUgdG9vbHRpcCBpcyBwcmVzZW50IGluIHRoZSBtYXJrdXBcbiAgICAgKi9cbiAgICBwdWJsaWMgSXNUb29sdGlwVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVG9vbHRpcFZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIFNob3dUb29sdGlwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldExlZnRQb3NpdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5nZXRUb3BQb3NpdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBvZiB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUb29sVGlwSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMudG9vbHRpcGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIHRvb2x0aXBzXG4gICAgICovXG4gICAgcHVibGljIGdldFRvb2xUaXBXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cFdpZHRoKHRoaXMudG9vbHRpcGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZWN0IENoYW5nZXMgYWZ0ZXIgdmlldyBjaGVja2VkLiBQcmV2ZW50IEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IgZXJyb3JcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmlsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVjdCBVSSBDaGFuZ2VzIHRvIENhbGN1bGF0ZSBUb29sdGlwIGNvcnJlY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmlsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0TGVmdFBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3aGVuIHRoZSBjb250cm9sIGlzIGRlc3Ryb3llZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIFVucmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy50b29sdGlwY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2hlbiB0aGUgY29udHJvbCBpcyBpbml0aWFsaXplZFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gUmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogT2Zmc2V0IGZvciBUb29sdGlwLiBSZXF1aXJlZCBmb3IgQlM0L0JTNSB0byBjcmVhdGUgcGFkZGluZ1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRUb29sdGlwT2Zmc2V0KCk6IG51bWJlcjtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIGxpbmtzXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRMZWZ0UG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uTGVmdChcbiAgICAgICAgICAgIHRoaXMuY29udGVudCxcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcGNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMucmVmLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuTGVmdFBvcyA9IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUG9zaXRpb24gPSB0aGlzLkdldFRvb2x0aXBQb3NpdGlvbigpO1xuICAgICAgICBpZiAocmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLmxlZnQgfHwgcmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLnJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gdGhpcy5nZXRUb29sVGlwSGVpZ2h0KCkgLyAyIC0gNi41O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9wXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRUb3BQb3NpdGlvbigpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25Ub3AoXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLnJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLlRvcFBvcyA9IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUG9zaXRpb24gPSB0aGlzLkdldFRvb2x0aXBQb3NpdGlvbigpO1xuICAgICAgICBpZiAocmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSB8fCByZXF1aXJlZFBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24udG9wKSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IHRoaXMuZ2V0VG9vbFRpcFdpZHRoKCkgLyAyIC0gNi41O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG1ldGhvZCBpZiBjb250ZW50IGhhcyBjaGFuZ2VkIGFuZCBwcm9wb3J0aW9ucyBuZWVkIHRvIGJlIHJlc2V0IGluIHRoZSBVSS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uQ29udGVudENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRMZWZ0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXX0=
@@ -32,7 +32,7 @@ export class SacDropzoneMultipleCommon extends SacUploadBase {
32
32
  * Resource Key für Validation Message Required in Validation Summary
33
33
  */
34
34
  this.validationmessagesummaryminfiles = this.validationKeyService.ValidationErrorSummaryFilesMin;
35
- // #endregion Public Methods
35
+ // #endregion Protected Methods
36
36
  }
37
37
  // #endregion Properties
38
38
  // #region Public Methods
@@ -147,6 +147,14 @@ export class SacDropzoneMultipleCommon extends SacUploadBase {
147
147
  }
148
148
  return error;
149
149
  }
150
+ // #endregion Public Methods
151
+ // #region Protected Methods
152
+ /**
153
+ * @inheritdoc
154
+ */
155
+ GetMaxFiles() {
156
+ return this.maxfiles;
157
+ }
150
158
  }
151
159
  SacDropzoneMultipleCommon.decorators = [
152
160
  { type: Directive }
@@ -158,4 +166,4 @@ SacDropzoneMultipleCommon.propDecorators = {
158
166
  validationmessageminfiles: [{ type: Input }],
159
167
  validationmessagesummaryminfiles: [{ type: Input }]
160
168
  };
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmVtdWx0aXBsZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3VwbG9hZC9kcm9wem9uZW11bHRpcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJekQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsYUFBdUI7SUFEdEU7UUFFSSxxQkFBcUI7O1FBRXJCOztXQUVHO1FBQ0ksV0FBTSxHQUFHLEtBQUssQ0FBQztRQUV0Qjs7V0FFRztRQUVJLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFFNUI7O1dBRUc7UUFFSSxhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBRTVCOztXQUVHO1FBRUksaUJBQVksR0FBVyxJQUFJLENBQUM7UUFFbkM7O1dBRUc7UUFDYSw4QkFBeUIsR0FBVyxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUM7UUFFdEc7O1dBRUc7UUFFSSxxQ0FBZ0MsR0FBVyxJQUFJLENBQUMsb0JBQW9CLENBQUMsOEJBQThCLENBQUM7UUF1STNHLDRCQUE0QjtJQUNoQyxDQUFDO0lBdElHLHdCQUF3QjtJQUV4Qix5QkFBeUI7SUFFekI7Ozs7T0FJRztJQUNJLG1CQUFtQixDQUFDLElBQWlCO1FBQ3hDLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMz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QUFDLFlBQVksQ0FBQyxLQUFLO1lBQ3hCLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQztZQUN4RCxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUNyQztZQUNFLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztZQUN2QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxZQUFZLENBQUMsQ0FBa0I7UUFDbEMsSUFBSSxLQUFLLEdBQTRCLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFM0QsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2hCLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUN2QixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyx5QkFBeUIsRUFDOUIsSUFBSSxDQUFDLGdDQUFnQyxDQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs7WUF6S0osU0FBUzs7O3VCQVlMLEtBQUs7dUJBTUwsS0FBSzsyQkFNTCxLQUFLO3dDQU1MLEtBQUs7K0NBS0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY1VwbG9hZEJhc2UgfSBmcm9tICcuLi8uLi9jb21tb24vYmFzZXVwbG9hZGNvbnRyb2wnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBVcGxvYWRTdGF0ZSB9IGZyb20gJ25neC11cGxvYWR4JztcblxuLyoqXG4gKiBVcGxvYWQgS29tcG9uZW50ZSBmw7xyIGVpbiBlaW56ZWxuZXMgRmlsZVxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBTYWNEcm9wem9uZU11bHRpcGxlQ29tbW9uIGV4dGVuZHMgU2FjVXBsb2FkQmFzZTxzdHJpbmdbXT4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgd2VubiBEcmFnIEV2ZW50IGFrdGl2IGlzdCAoTWF1cyDDvGJlciBab25lKVxuICAgICAqL1xuICAgIHB1YmxpYyBhY3RpdmUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIE1heC4gQW56YWhsIEZpbGVzIGRpZSBob2NoZ2VsYWRlbiB3ZXJkZW4ga8O2bm5lblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heGZpbGVzOiBudW1iZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICogTWluLiBBbnphaGwgRmlsZXMgZGllIGhvY2hnZWxhZGVuIHdlcmRlbiBtw7xzc2VuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluZmlsZXM6IG51bWJlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBIw7ZoZSBkZXMgVXBsb2FkIENvbnRyb2xzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdXBsb2FkaGVpZ2h0OiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlbWluZmlsZXM6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yRmlsZXNNaW47XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5bWluZmlsZXM6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeUZpbGVzTWluO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBQcsO8ZnQgb2IgZGllIG1heC4gRmlsZXMgaW4gZGVyIFF1ZXVlIG5pY2h0IMO8YmVyc2Nocml0dGVuIHdlcmRlblxuICAgICAqXG4gICAgICogQHBhcmFtIGZpbGUgRmlsZSBkYXMgaGluenVnZWbDvGd0IHd1cmRlXG4gICAgICovXG4gICAgcHVibGljIEN1c3RvbUFkZFZhbGlkYXRpb24oZmlsZTogVXBsb2FkU3RhdGUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMubWF4ZmlsZXMgPiAwICYmIHRoaXMudXBsb2Fkcy5sZW5ndGggPj0gdGhpcy5tYXhmaWxlcykge1xuICAgICAgICAgICAgdGhpcy5vbmZpbGVlcnJvci5lbWl0KCdJTlZBTElEX01BWEZJTEVTJyk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHp0IGRpZSBGaWxlIElEJ3MgZGVyIGhvY2hnZWxhZGVuIEZpbGVzIGluIGRhcyBNb2RlbFxuICAgICAqXG4gICAgICogQHBhcmFtIGZpbGUgSUQgZGVzIEZpbGVzIHdlbGNoZXMgaG9jaGdlbGFkZW4gd3VyZGUuXG4gICAgICovXG4gICAgcHVibGljIFNldFVwbG9hZFZhbHVlKGZpbGU6IFVwbG9hZFN0YXRlKSB7XG4gICAgICAgIGxldCBkb2N1bWVudGlkOiBzdHJpbmcgPSBudWxsO1xuICAgICAgICBpZiAoZmlsZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgZG9jdW1lbnRpZCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZmlsZS5yZXNwb25zZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgZmlsZS5yZXNwb25zZSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UuZG9jdW1lbnRpZCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UuZG9jdW1lbnRpZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudGlkID0gZmlsZS5yZXNwb25zZS5kb2N1bWVudGlkO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudGlkID0gZmlsZS51cGxvYWRJZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRG9jdW1lbnQgSUQgYWt0dWFsaXNpZXJlbiwgZGFtaXQgV2VydCB2b24gU2VydmVyIGluIE1vZGVsIGdlc2V0enQgd2VyZGVuIGthbm4uXG4gICAgICAgICAgICB0aGlzLnVwbG9hZHNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChpdG0pID0+IGl0bSAhPT0gbnVsbCAmJiBpdG0udXBsb2FkSWQgPT09IGZpbGUudXBsb2FkSWQpXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGl0bSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpdG0uZG9jdW1lbnRpZCA9IGRvY3VtZW50aWQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMaXN0IG9mIEZpbGVzXG4gICAgICAgIGNvbnN0IGZpbGVJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgLy8gQWRkIGFsbCBJdGVtcyB3aXRoIFVwbG9hZGVkIFN0YXRlIHRvIE1vZGVsXG4gICAgICAgIHRoaXMudXBsb2Fkc1xuICAgICAgICAgICAgLmZpbHRlcigoaXRtKSA9PiBpdG0uc3RhdHVzID09PSAnY29tcGxldGUnKVxuICAgICAgICAgICAgLmZvckVhY2goKGl0bSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdG0uZG9jdW1lbnRpZCAhPT0gbnVsbCAmJiBpdG0uZG9jdW1lbnRpZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVJZHMucHVzaChpdG0uZG9jdW1lbnRpZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGZpbGVJZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUoZmlsZUlkcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZsO8ciBEcmFnIGFuZCBEcm9wIHZvbiBGaWxlc1xuICAgICAqIEBwYXJhbSBldmVudCBEcmFnIEV2ZW50XG4gICAgICovXG4gICAgcHVibGljIGRyb3BIYW5kbGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmRhdGFUcmFuc2ZlciAmJiBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLml0ZW0oMCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuaGFuZGxlRmlsZUxpc3QoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVydmVudCB3ZW5uIGRhcyBDb250cm9sIGluaXRpYWxpc2VydCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIHRoaXMuYXV0b3VwbG9hZCA9IHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSB3ZW5uIERyYWcgZGllIFpvbmUgdmVybMOkc3N0XG4gICAgICogQHBhcmFtIGV2ZW50IERyYWdMZWF2ZSBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSB3ZW5uIERyYWcgaW4gZGllIFpvbmUgZWludHJpdHRcbiAgICAgKiBAcGFyYW0gZXZlbnQgRHJhZ0VudGVyIEV2ZW50XG4gICAgICovXG4gICAgcHVibGljIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIgJiZcbiAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyAmJlxuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmV2ZXJ5KChpdG0pID0+IGl0bSA9PT0gJ0ZpbGVzJykgJiZcbiAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5sZW5ndGggPiAwXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnY29weSc7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGllcnQgZGFzIENvbnRyb2xcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjIENvbnRyb2xcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IHN1cGVyLnZhbGlkYXRlRGF0YShjKTtcblxuICAgICAgICBpZiAoZXJyb3IgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5taW5GaWxlcyhcbiAgICAgICAgICAgICAgICB0aGlzLm1pbmZpbGVzLFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VtaW5maWxlcyxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1pbmZpbGVzXG4gICAgICAgICAgICApKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcbn1cbiJdfQ==
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmVtdWx0aXBsZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3VwbG9hZC9kcm9wem9uZW11bHRpcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJekQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsYUFBdUI7SUFEdEU7UUFFSSxxQkFBcUI7O1FBRXJCOztXQUVHO1FBQ0ksV0FBTSxHQUFHLEtBQUssQ0FBQztRQUV0Qjs7V0FFRztRQUVJLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFFNUI7O1dBRUc7UUFFSSxhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBRTVCOztXQUVHO1FBRUksaUJBQVksR0FBVyxJQUFJLENBQUM7UUFFbkM7O1dBRUc7UUFDYSw4QkFBeUIsR0FBVyxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUM7UUFFdEc7O1dBRUc7UUFFSSxxQ0FBZ0MsR0FBVyxJQUFJLENBQUMsb0JBQW9CLENBQUMsOEJBQThCLENBQUM7UUFrSjNHLCtCQUErQjtJQUNuQyxDQUFDO0lBakpHLHdCQUF3QjtJQUV4Qix5QkFBeUI7SUFFekI7Ozs7T0FJRztJQUNJLG1CQUFtQixDQUFDLElBQWlCO1FBQ3hDLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMz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QUFDLFlBQVksQ0FBQyxLQUFLO1lBQ3hCLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQztZQUN4RCxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUNyQztZQUNFLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztZQUN2QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxZQUFZLENBQUMsQ0FBa0I7UUFDbEMsSUFBSSxLQUFLLEdBQTRCLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFM0QsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2hCLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUN2QixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyx5QkFBeUIsRUFDOUIsSUFBSSxDQUFDLGdDQUFnQyxDQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsNEJBQTRCO0lBRTVCLDRCQUE0QjtJQUU1Qjs7T0FFRztJQUNPLFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7OztZQXBMSixTQUFTOzs7dUJBWUwsS0FBSzt1QkFNTCxLQUFLOzJCQU1MLEtBQUs7d0NBTUwsS0FBSzsrQ0FLTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjVXBsb2FkQmFzZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNldXBsb2FkY29udHJvbCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVwbG9hZFN0YXRlIH0gZnJvbSAnbmd4LXVwbG9hZHgnO1xuXG4vKipcbiAqIFVwbG9hZCBLb21wb25lbnRlIGbDvHIgZWluIGVpbnplbG5lcyBGaWxlXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFNhY0Ryb3B6b25lTXVsdGlwbGVDb21tb24gZXh0ZW5kcyBTYWNVcGxvYWRCYXNlPHN0cmluZ1tdPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB3ZW5uIERyYWcgRXZlbnQgYWt0aXYgaXN0IChNYXVzIMO8YmVyIFpvbmUpXG4gICAgICovXG4gICAgcHVibGljIGFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTWF4LiBBbnphaGwgRmlsZXMgZGllIGhvY2hnZWxhZGVuIHdlcmRlbiBrw7ZubmVuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4ZmlsZXM6IG51bWJlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBNaW4uIEFuemFobCBGaWxlcyBkaWUgaG9jaGdlbGFkZW4gd2VyZGVuIG3DvHNzZW5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW5maWxlczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIEjDtmhlIGRlcyBVcGxvYWQgQ29udHJvbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB1cGxvYWRoZWlnaHQ6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VtaW5maWxlczogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JGaWxlc01pbjtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltaW5maWxlczogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RmlsZXNNaW47XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFByw7xmdCBvYiBkaWUgbWF4LiBGaWxlcyBpbiBkZXIgUXVldWUgbmljaHQgw7xiZXJzY2hyaXR0ZW4gd2VyZGVuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBGaWxlIGRhcyBoaW56dWdlZsO8Z3Qgd3VyZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgQ3VzdG9tQWRkVmFsaWRhdGlvbihmaWxlOiBVcGxvYWRTdGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5tYXhmaWxlcyA+IDAgJiYgdGhpcy51cGxvYWRzLmxlbmd0aCA+PSB0aGlzLm1heGZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLm9uZmlsZWVycm9yLmVtaXQoJ0lOVkFMSURfTUFYRklMRVMnKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0enQgZGllIEZpbGUgSUQncyBkZXIgaG9jaGdlbGFkZW4gRmlsZXMgaW4gZGFzIE1vZGVsXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBJRCBkZXMgRmlsZXMgd2VsY2hlcyBob2NoZ2VsYWRlbiB3dXJkZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgU2V0VXBsb2FkVmFsdWUoZmlsZTogVXBsb2FkU3RhdGUpIHtcbiAgICAgICAgbGV0IGRvY3VtZW50aWQ6IHN0cmluZyA9IG51bGw7XG4gICAgICAgIGlmIChmaWxlID09PSBudWxsKSB7XG4gICAgICAgICAgICBkb2N1bWVudGlkID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgZmlsZS5yZXNwb25zZS5kb2N1bWVudGlkICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgZmlsZS5yZXNwb25zZS5kb2N1bWVudGlkICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50aWQgPSBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50aWQgPSBmaWxlLnVwbG9hZElkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBEb2N1bWVudCBJRCBha3R1YWxpc2llcmVuLCBkYW1pdCBXZXJ0IHZvbiBTZXJ2ZXIgaW4gTW9kZWwgZ2VzZXR6dCB3ZXJkZW4ga2Fubi5cbiAgICAgICAgICAgIHRoaXMudXBsb2Fkc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0bSkgPT4gaXRtICE9PSBudWxsICYmIGl0bS51cGxvYWRJZCA9PT0gZmlsZS51cGxvYWRJZClcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoaXRtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGl0bS5kb2N1bWVudGlkID0gZG9jdW1lbnRpZDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExpc3Qgb2YgRmlsZXNcbiAgICAgICAgY29uc3QgZmlsZUlkczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICAvLyBBZGQgYWxsIEl0ZW1zIHdpdGggVXBsb2FkZWQgU3RhdGUgdG8gTW9kZWxcbiAgICAgICAgdGhpcy51cGxvYWRzXG4gICAgICAgICAgICAuZmlsdGVyKChpdG0pID0+IGl0bS5zdGF0dXMgPT09ICdjb21wbGV0ZScpXG4gICAgICAgICAgICAuZm9yRWFjaCgoaXRtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0bS5kb2N1bWVudGlkICE9PSBudWxsICYmIGl0bS5kb2N1bWVudGlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZUlkcy5wdXNoKGl0bS5kb2N1bWVudGlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZmlsZUlkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBzdXBlci5zZXRWYWx1ZShmaWxlSWRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBmw7xyIERyYWcgYW5kIERyb3Agdm9uIEZpbGVzXG4gICAgICogQHBhcmFtIGV2ZW50IERyYWcgRXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgZHJvcEhhbmRsZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyICYmIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyAmJiBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMuaXRlbSgwKSkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkU2VydmljZS5oYW5kbGVGaWxlTGlzdChldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXJ2ZW50IHdlbm4gZGFzIENvbnRyb2wgaW5pdGlhbGlzZXJ0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgdGhpcy5hdXRvdXBsb2FkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIHdlbm4gRHJhZyBkaWUgWm9uZSB2ZXJsw6Rzc3RcbiAgICAgKiBAcGFyYW0gZXZlbnQgRHJhZ0xlYXZlIEV2ZW50XG4gICAgICovXG4gICAgcHVibGljIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIHdlbm4gRHJhZyBpbiBkaWUgWm9uZSBlaW50cml0dFxuICAgICAqIEBwYXJhbSBldmVudCBEcmFnRW50ZXIgRXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2ZlciAmJlxuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzICYmXG4gICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMuZXZlcnkoKGl0bSkgPT4gaXRtID09PSAnRmlsZXMnKSAmJlxuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmxlbmd0aCA+IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdjb3B5JztcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkaWVydCBkYXMgQ29udHJvbFxuICAgICAqXG4gICAgICogQHBhcmFtIGMgQ29udHJvbFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gc3VwZXIudmFsaWRhdGVEYXRhKGMpO1xuXG4gICAgICAgIGlmIChlcnJvciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLm1pbkZpbGVzKFxuICAgICAgICAgICAgICAgIHRoaXMubWluZmlsZXMsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZW1pbmZpbGVzLFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5bWluZmlsZXNcbiAgICAgICAgICAgICkoYyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgR2V0TWF4RmlsZXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4ZmlsZXM7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xufVxuIl19
@@ -15,7 +15,7 @@ export class SacDropzoneSingleCommon extends SacUploadBase {
15
15
  * Höhe der Dropzone. Wert wird mit Einheit angegeben.
16
16
  */
17
17
  this.uploadheight = null;
18
- // #endregion Public Methods
18
+ // #endregion Protected Methods
19
19
  }
20
20
  // #endregion Properties
21
21
  // #region Public Methods
@@ -98,6 +98,14 @@ export class SacDropzoneSingleCommon extends SacUploadBase {
98
98
  this.active = true;
99
99
  }
100
100
  }
101
+ // #endregion Public Methods
102
+ // #region Protected Methods
103
+ /**
104
+ * @inheritdoc
105
+ */
106
+ GetMaxFiles() {
107
+ return 1;
108
+ }
101
109
  }
102
110
  SacDropzoneSingleCommon.decorators = [
103
111
  { type: Directive }
@@ -105,4 +113,4 @@ SacDropzoneSingleCommon.decorators = [
105
113
  SacDropzoneSingleCommon.propDecorators = {
106
114
  uploadheight: [{ type: Input }]
107
115
  };
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmVzaW5nbGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy91cGxvYWQvZHJvcHpvbmVzaW5nbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pEOztHQUVHO0FBRUgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGFBQXFCO0lBRGxFO1FBRUkscUJBQXFCOztRQUVyQjs7V0FFRztRQUNJLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFdEI7O1dBRUc7UUFFSSxpQkFBWSxHQUFXLElBQUksQ0FBQztRQWdHbkMsNEJBQTRCO0lBQ2hDLENBQUM7SUEvRkcsd0JBQXdCO0lBRXhCLHlCQUF5QjtJQUV6Qjs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsSUFBaUI7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsSUFBaUI7UUFDbkMsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ2YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjthQUFNO1lBQ0gsSUFDSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSTtnQkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssSUFBSTtnQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUN4QztnQkFDRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDNUM7aUJBQU07Z0JBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDakM7U0FDSjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXLENBQUMsS0FBZ0I7UUFDL0IsSUFDSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDcEIsS0FBSyxDQUFDLFlBQVk7WUFDbEIsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLO1lBQ3hCLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDbEM7WUFDRSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBRXBCLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMvRDtpQkFBTTtnQkFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO2FBQ3REO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ1gsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXLENBQUMsS0FBZ0I7UUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxLQUFnQjtRQUM5QixJQUNJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNwQixLQUFLLENBQUMsWUFBWTtZQUNsQixLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUs7WUFDeEIsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDO1lBQ3hELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3JDO1lBQ0UsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBQ3ZDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDdEI7SUFDTCxDQUFDOzs7WUEzR0osU0FBUzs7OzJCQVlMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNVcGxvYWRCYXNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2V1cGxvYWRjb250cm9sJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXBsb2FkU3RhdGUgfSBmcm9tICduZ3gtdXBsb2FkeCc7XG5cbi8qKlxuICogVXBsb2FkIEtvbXBvbmVudGUgZsO8ciBlaW4gZWluemVsbmVzIEZpbGVcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjRHJvcHpvbmVTaW5nbGVDb21tb24gZXh0ZW5kcyBTYWNVcGxvYWRCYXNlPHN0cmluZz4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgd2VubiBEcmFnIEV2ZW50IGFrdGl2IGlzdCAoTWF1cyDDvGJlciBab25lKVxuICAgICAqL1xuICAgIHB1YmxpYyBhY3RpdmUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEjDtmhlIGRlciBEcm9wem9uZS4gV2VydCB3aXJkIG1pdCBFaW5oZWl0IGFuZ2VnZWJlbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB1cGxvYWRoZWlnaHQ6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE1hY2h0IGtlaW5lIFZhbGlkaWVydW5nIGluIGRpZXNlbSBDb250cm9sXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBGaWxlIGRhcyBoaW56dWdlZsO8Z3Qgd3VyZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgQ3VzdG9tQWRkVmFsaWRhdGlvbihmaWxlOiBVcGxvYWRTdGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXR6dCBkaWUgRmlsZSBJRCBkZXMgaG9jaGdlbGFkZW4gRmlsZXMgaW4gZGFzIE1vZGVsXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBJRCBkZXMgRmlsZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgU2V0VXBsb2FkVmFsdWUoZmlsZTogVXBsb2FkU3RhdGUpIHtcbiAgICAgICAgaWYgKGZpbGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUoZmlsZS5yZXNwb25zZS5kb2N1bWVudGlkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUoZmlsZS51cGxvYWRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGbDvHIgRHJhZyBhbmQgRHJvcCB2b24gRmlsZXNcbiAgICAgKiBAcGFyYW0gZXZlbnQgRHJhZyBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBkcm9wSGFuZGxlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLkhhc1F1ZXVlSXRlbSgpICYmXG4gICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIgJiZcbiAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyAmJlxuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLml0ZW0oMClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkU2VydmljZS5oYW5kbGVGaWxlTGlzdChldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uZmlsZWVycm9yLmVtaXQoJ0lOVkFMSURfRFJBR0RST1BfTUFYRklMRVMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVydmVudCB3ZW5uIGRhcyBDb250cm9sIGluaXRpYWxpc2VydCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIHRoaXMuYXV0b3VwbG9hZCA9IHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSB3ZW5uIERyYWcgZGllIFpvbmUgdmVybMOkc3N0XG4gICAgICogQHBhcmFtIGV2ZW50IERyYWdMZWF2ZSBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSB3ZW5uIERyYWcgaW4gZGllIFpvbmUgZWludHJpdHRcbiAgICAgKiBAcGFyYW0gZXZlbnQgRHJhZ0VudGVyIEV2ZW50XG4gICAgICovXG4gICAgcHVibGljIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5IYXNRdWV1ZUl0ZW0oKSAmJlxuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyICYmXG4gICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMgJiZcbiAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5ldmVyeSgoaXRtKSA9PiBpdG0gPT09ICdGaWxlcycpICYmXG4gICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMubGVuZ3RoID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gJ2NvcHknO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xufVxuIl19
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmVzaW5nbGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy91cGxvYWQvZHJvcHpvbmVzaW5nbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pEOztHQUVHO0FBRUgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGFBQXFCO0lBRGxFO1FBRUkscUJBQXFCOztRQUVyQjs7V0FFRztRQUNJLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFdEI7O1dBRUc7UUFFSSxpQkFBWSxHQUFXLElBQUksQ0FBQztRQTJHbkMsK0JBQStCO0lBQ25DLENBQUM7SUExR0csd0JBQXdCO0lBRXhCLHlCQUF5QjtJQUV6Qjs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsSUFBaUI7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsSUFBaUI7UUFDbkMsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ2YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjthQUFNO1lBQ0gsSUFDSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSTtnQkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssSUFBSTtnQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUN4QztnQkFDRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDNUM7aUJBQU07Z0JBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDakM7U0FDSjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXLENBQUMsS0FBZ0I7UUFDL0IsSUFDSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDcEIsS0FBSyxDQUFDLFlBQVk7WUFDbEIsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLO1lBQ3hCLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDbEM7WUFDRSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBRXBCLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMvRDtpQkFBTTtnQkFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO2FBQ3REO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ1gsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXLENBQUMsS0FBZ0I7UUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxLQUFnQjtRQUM5QixJQUNJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNwQixLQUFLLENBQUMsWUFBWTtZQUNsQixLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUs7WUFDeEIsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDO1lBQ3hELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3JDO1lBQ0UsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBQ3ZDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBRUQsNEJBQTRCO0lBRTVCLDRCQUE0QjtJQUU1Qjs7T0FFRztJQUNPLFdBQVc7UUFDakIsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDOzs7WUF0SEosU0FBUzs7OzJCQVlMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNVcGxvYWRCYXNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2V1cGxvYWRjb250cm9sJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXBsb2FkU3RhdGUgfSBmcm9tICduZ3gtdXBsb2FkeCc7XG5cbi8qKlxuICogVXBsb2FkIEtvbXBvbmVudGUgZsO8ciBlaW4gZWluemVsbmVzIEZpbGVcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjRHJvcHpvbmVTaW5nbGVDb21tb24gZXh0ZW5kcyBTYWNVcGxvYWRCYXNlPHN0cmluZz4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgd2VubiBEcmFnIEV2ZW50IGFrdGl2IGlzdCAoTWF1cyDDvGJlciBab25lKVxuICAgICAqL1xuICAgIHB1YmxpYyBhY3RpdmUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEjDtmhlIGRlciBEcm9wem9uZS4gV2VydCB3aXJkIG1pdCBFaW5oZWl0IGFuZ2VnZWJlbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB1cGxvYWRoZWlnaHQ6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE1hY2h0IGtlaW5lIFZhbGlkaWVydW5nIGluIGRpZXNlbSBDb250cm9sXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBGaWxlIGRhcyBoaW56dWdlZsO8Z3Qgd3VyZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgQ3VzdG9tQWRkVmFsaWRhdGlvbihmaWxlOiBVcGxvYWRTdGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXR6dCBkaWUgRmlsZSBJRCBkZXMgaG9jaGdlbGFkZW4gRmlsZXMgaW4gZGFzIE1vZGVsXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBJRCBkZXMgRmlsZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgU2V0VXBsb2FkVmFsdWUoZmlsZTogVXBsb2FkU3RhdGUpIHtcbiAgICAgICAgaWYgKGZpbGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUoZmlsZS5yZXNwb25zZS5kb2N1bWVudGlkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUoZmlsZS51cGxvYWRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGbDvHIgRHJhZyBhbmQgRHJvcCB2b24gRmlsZXNcbiAgICAgKiBAcGFyYW0gZXZlbnQgRHJhZyBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBkcm9wSGFuZGxlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLkhhc1F1ZXVlSXRlbSgpICYmXG4gICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIgJiZcbiAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyAmJlxuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLml0ZW0oMClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkU2VydmljZS5oYW5kbGVGaWxlTGlzdChldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uZmlsZWVycm9yLmVtaXQoJ0lOVkFMSURfRFJBR0RST1BfTUFYRklMRVMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVydmVudCB3ZW5uIGRhcyBDb250cm9sIGluaXRpYWxpc2VydCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIHRoaXMuYXV0b3VwbG9hZCA9IHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSB3ZW5uIERyYWcgZGllIFpvbmUgdmVybMOkc3N0XG4gICAgICogQHBhcmFtIGV2ZW50IERyYWdMZWF2ZSBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSB3ZW5uIERyYWcgaW4gZGllIFpvbmUgZWludHJpdHRcbiAgICAgKiBAcGFyYW0gZXZlbnQgRHJhZ0VudGVyIEV2ZW50XG4gICAgICovXG4gICAgcHVibGljIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5IYXNRdWV1ZUl0ZW0oKSAmJlxuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyICYmXG4gICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMgJiZcbiAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5ldmVyeSgoaXRtKSA9PiBpdG0gPT09ICdGaWxlcycpICYmXG4gICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMubGVuZ3RoID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gJ2NvcHknO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgR2V0TWF4RmlsZXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xufVxuIl19
@@ -32,7 +32,7 @@ export class SacUploadMultipleCommon extends SacUploadBase {
32
32
  * Resource Key für Validation Message Required in Validation Summary
33
33
  */
34
34
  this.validationmessagesummaryminfiles = this.validationKeyService.ValidationErrorSummaryFilesMin;
35
- // #endregion Public Methods
35
+ // #endregion Protected Methods
36
36
  }
37
37
  // #endregion Properties
38
38
  // #region Public Methods
@@ -106,6 +106,14 @@ export class SacUploadMultipleCommon extends SacUploadBase {
106
106
  }
107
107
  return error;
108
108
  }
109
+ // #endregion Public Methods
110
+ // #region Protected Methods
111
+ /**
112
+ * @inheritdoc
113
+ */
114
+ GetMaxFiles() {
115
+ return this.maxfiles;
116
+ }
109
117
  }
110
118
  SacUploadMultipleCommon.decorators = [
111
119
  { type: Directive }
@@ -118,4 +126,4 @@ SacUploadMultipleCommon.propDecorators = {
118
126
  validationmessageminfiles: [{ type: Input }],
119
127
  validationmessagesummaryminfiles: [{ type: Input }]
120
128
  };
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkbXVsdGlwbGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy91cGxvYWQvdXBsb2FkbXVsdGlwbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlqRDs7R0FFRztBQUVILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUF1QjtJQURwRTtRQUVJLHFCQUFxQjs7UUFFckI7O1dBRUc7UUFFSSxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUVqQzs7V0FFRztRQUVJLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRWpDOztXQUVHO1FBRUksYUFBUSxHQUFXLENBQUMsQ0FBQztRQUU1Qjs7V0FFRztRQUVJLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFFNUI7O1dBRUc7UUFDYSw4QkFBeUIsR0FBVyxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUM7UUFFdEc7O1dBRUc7UUFFSSxxQ0FBZ0MsR0FBVyxJQUFJLENBQUMsb0JBQW9CLENBQUMsOEJBQThCLENBQUM7UUF1RjNHLDRCQUE0QjtJQUNoQyxDQUFDO0lBdEZHLHdCQUF3QjtJQUV4Qix5QkFBeUI7SUFFekI7Ozs7T0FJRztJQUNJLG1CQUFtQixDQUFDLElBQWlCO1FBQ3hDLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsSUFBaUI7UUFDbkMsSUFBSSxVQUFVLEdBQVcsSUFBSSxDQUFDO1FBQzlCLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtZQUNmLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDckI7YUFBTTtZQUNILElBQ0ksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTO2dCQUMzQixJQUFJLENBQUMsUUFBUSxLQUFLLElBQUk7Z0JBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxLQUFLLElBQUk7Z0JBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFDeEM7Z0JBQ0UsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO2FBQ3pDO2lCQUFNO2dCQUNILFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQzlCO1lBRUQsaUZBQWlGO1lBQ2pGLElBQUksQ0FBQyxPQUFPO2lCQUNQLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUM7aUJBQy9ELE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxnQkFBZ0I7UUFDaEIsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO1FBRTdCLDZDQUE2QztRQUM3QyxJQUFJLENBQUMsT0FBTzthQUNQLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUM7YUFDMUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDYixJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO2dCQUN6RCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNCO2FBQU07WUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxZQUFZLENBQUMsQ0FBa0I7UUFDbEMsSUFBSSxLQUFLLEdBQTRCLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFM0QsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2hCLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUN2QixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyx5QkFBeUIsRUFDOUIsSUFBSSxDQUFDLGdDQUFnQyxDQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs7WUExSEosU0FBUzs7OzJCQU9MLEtBQUs7MkJBTUwsS0FBSzt1QkFNTCxLQUFLO3VCQU1MLEtBQUs7d0NBTUwsS0FBSzsrQ0FLTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjVXBsb2FkQmFzZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNldXBsb2FkY29udHJvbCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBVcGxvYWRTdGF0ZSB9IGZyb20gJ25neC11cGxvYWR4JztcblxuLyoqXG4gKiBVcGxvYWQgQ29tcG9uZW50ZSBmw7xyIG1laHJlcmUgRmlsZXNcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjVXBsb2FkTXVsdGlwbGVDb21tb24gZXh0ZW5kcyBTYWNVcGxvYWRCYXNlPHN0cmluZ1tdPiB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBmw7xyIEJyb3dzZSBCdXR0b25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBidXR0b25icm93c2U6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgZsO8ciBVcGxvYWQgQnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYnV0dG9udXBsb2FkOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIE1heC4gRmlsZXMgZGllIGhvY2hnZWxhZGVuIHdlcmRlbiBrw7ZubmVuLiAwIGRlYWt0aXZpZXJ0IGRhcyBMaW1pdFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heGZpbGVzOiBudW1iZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICogTWluLiBGaWxlcyBkaWUgaG9jaGdlbGFkZW4gd2VyZGVuIG3DvHNzZW4uIDAgZGVha3RpdmllcnQgZGFzIExpbWl0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluZmlsZXM6IG51bWJlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VtaW5maWxlczogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JGaWxlc01pbjtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltaW5maWxlczogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RmlsZXNNaW47XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFByw7xmdCBvYiBkaWUgbWF4LiBGaWxlcyBpbiBkZXIgUXVldWUgbmljaHQgw7xiZXJzY2hyaXR0ZW4gd2VyZGVuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBGaWxlIGRhcyBoaW56dWdlZsO8Z3Qgd3VyZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgQ3VzdG9tQWRkVmFsaWRhdGlvbihmaWxlOiBVcGxvYWRTdGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5tYXhmaWxlcyA+IDAgJiYgdGhpcy51cGxvYWRzLmxlbmd0aCA+PSB0aGlzLm1heGZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLm9uZmlsZWVycm9yLmVtaXQoJ0lOVkFMSURfTUFYRklMRVMnKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0enQgZGllIEZpbGUgSUQncyBkZXIgaG9jaGdlbGFkZW4gRmlsZXMgaW4gZGFzIE1vZGVsXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBJRCBkZXMgRmlsZXMgd2VsY2hlcyBob2NoZ2VsYWRlbiB3dXJkZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgU2V0VXBsb2FkVmFsdWUoZmlsZTogVXBsb2FkU3RhdGUpIHtcbiAgICAgICAgbGV0IGRvY3VtZW50aWQ6IHN0cmluZyA9IG51bGw7XG4gICAgICAgIGlmIChmaWxlID09PSBudWxsKSB7XG4gICAgICAgICAgICBkb2N1bWVudGlkID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgZmlsZS5yZXNwb25zZS5kb2N1bWVudGlkICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgZmlsZS5yZXNwb25zZS5kb2N1bWVudGlkICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50aWQgPSBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50aWQgPSBmaWxlLnVwbG9hZElkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBEb2N1bWVudCBJRCBha3R1YWxpc2llcmVuLCBkYW1pdCBXZXJ0IHZvbiBTZXJ2ZXIgaW4gTW9kZWwgZ2VzZXR6dCB3ZXJkZW4ga2Fubi5cbiAgICAgICAgICAgIHRoaXMudXBsb2Fkc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0bSkgPT4gaXRtICE9PSBudWxsICYmIGl0bS51cGxvYWRJZCA9PT0gZmlsZS51cGxvYWRJZClcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoaXRtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGl0bS5kb2N1bWVudGlkID0gZG9jdW1lbnRpZDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExpc3Qgb2YgRmlsZXNcbiAgICAgICAgY29uc3QgZmlsZUlkczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICAvLyBBZGQgYWxsIEl0ZW1zIHdpdGggVXBsb2FkZWQgU3RhdGUgdG8gTW9kZWxcbiAgICAgICAgdGhpcy51cGxvYWRzXG4gICAgICAgICAgICAuZmlsdGVyKChpdG0pID0+IGl0bS5zdGF0dXMgPT09ICdjb21wbGV0ZScpXG4gICAgICAgICAgICAuZm9yRWFjaCgoaXRtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0bS5kb2N1bWVudGlkICE9PSBudWxsICYmIGl0bS5kb2N1bWVudGlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZUlkcy5wdXNoKGl0bS5kb2N1bWVudGlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZmlsZUlkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBzdXBlci5zZXRWYWx1ZShmaWxlSWRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRpZXJ0IGRhcyBDb250cm9sXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYyBDb250cm9sXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBzdXBlci52YWxpZGF0ZURhdGEoYyk7XG5cbiAgICAgICAgaWYgKGVycm9yID09PSBudWxsKSB7XG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ubWluRmlsZXMoXG4gICAgICAgICAgICAgICAgdGhpcy5taW5maWxlcyxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlbWluZmlsZXMsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltaW5maWxlc1xuICAgICAgICAgICAgKShjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG59XG4iXX0=
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkbXVsdGlwbGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy91cGxvYWQvdXBsb2FkbXVsdGlwbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlqRDs7R0FFRztBQUVILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUF1QjtJQURwRTtRQUVJLHFCQUFxQjs7UUFFckI7O1dBRUc7UUFFSSxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUVqQzs7V0FFRztRQUVJLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRWpDOztXQUVHO1FBRUksYUFBUSxHQUFXLENBQUMsQ0FBQztRQUU1Qjs7V0FFRztRQUVJLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFFNUI7O1dBRUc7UUFDYSw4QkFBeUIsR0FBVyxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUM7UUFFdEc7O1dBRUc7UUFFSSxxQ0FBZ0MsR0FBVyxJQUFJLENBQUMsb0JBQW9CLENBQUMsOEJBQThCLENBQUM7UUFrRzNHLCtCQUErQjtJQUNuQyxDQUFDO0lBakdHLHdCQUF3QjtJQUV4Qix5QkFBeUI7SUFFekI7Ozs7T0FJRztJQUNJLG1CQUFtQixDQUFDLElBQWlCO1FBQ3hDLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsSUFBaUI7UUFDbkMsSUFBSSxVQUFVLEdBQVcsSUFBSSxDQUFDO1FBQzlCLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtZQUNmLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDckI7YUFBTTtZQUNILElBQ0ksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTO2dCQUMzQixJQUFJLENBQUMsUUFBUSxLQUFLLElBQUk7Z0JBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxLQUFLLElBQUk7Z0JBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFDeEM7Z0JBQ0UsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO2FBQ3pDO2lCQUFNO2dCQUNILFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQzlCO1lBRUQsaUZBQWlGO1lBQ2pGLElBQUksQ0FBQyxPQUFPO2lCQUNQLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUM7aUJBQy9ELE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxnQkFBZ0I7UUFDaEIsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO1FBRTdCLDZDQUE2QztRQUM3QyxJQUFJLENBQUMsT0FBTzthQUNQLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUM7YUFDMUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDYixJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO2dCQUN6RCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNCO2FBQU07WUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxZQUFZLENBQUMsQ0FBa0I7UUFDbEMsSUFBSSxLQUFLLEdBQTRCLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFM0QsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2hCLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUN2QixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyx5QkFBeUIsRUFDOUIsSUFBSSxDQUFDLGdDQUFnQyxDQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsNEJBQTRCO0lBRTVCLDRCQUE0QjtJQUU1Qjs7T0FFRztJQUNPLFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7OztZQXJJSixTQUFTOzs7MkJBT0wsS0FBSzsyQkFNTCxLQUFLO3VCQU1MLEtBQUs7dUJBTUwsS0FBSzt3Q0FNTCxLQUFLOytDQUtMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNVcGxvYWRCYXNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2V1cGxvYWRjb250cm9sJztcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVwbG9hZFN0YXRlIH0gZnJvbSAnbmd4LXVwbG9hZHgnO1xuXG4vKipcbiAqIFVwbG9hZCBDb21wb25lbnRlIGbDvHIgbWVocmVyZSBGaWxlc1xuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBTYWNVcGxvYWRNdWx0aXBsZUNvbW1vbiBleHRlbmRzIFNhY1VwbG9hZEJhc2U8c3RyaW5nW10+IHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIExhYmVsIGbDvHIgQnJvd3NlIEJ1dHRvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJ1dHRvbmJyb3dzZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBmw7xyIFVwbG9hZCBCdXR0b25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBidXR0b251cGxvYWQ6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogTWF4LiBGaWxlcyBkaWUgaG9jaGdlbGFkZW4gd2VyZGVuIGvDtm5uZW4uIDAgZGVha3RpdmllcnQgZGFzIExpbWl0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4ZmlsZXM6IG51bWJlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBNaW4uIEZpbGVzIGRpZSBob2NoZ2VsYWRlbiB3ZXJkZW4gbcO8c3Nlbi4gMCBkZWFrdGl2aWVydCBkYXMgTGltaXRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW5maWxlczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZW1pbmZpbGVzOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvckZpbGVzTWluO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1pbmZpbGVzOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlGaWxlc01pbjtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogUHLDvGZ0IG9iIGRpZSBtYXguIEZpbGVzIGluIGRlciBRdWV1ZSBuaWNodCDDvGJlcnNjaHJpdHRlbiB3ZXJkZW5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWxlIEZpbGUgZGFzIGhpbnp1Z2Vmw7xndCB3dXJkZVxuICAgICAqL1xuICAgIHB1YmxpYyBDdXN0b21BZGRWYWxpZGF0aW9uKGZpbGU6IFVwbG9hZFN0YXRlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLm1heGZpbGVzID4gMCAmJiB0aGlzLnVwbG9hZHMubGVuZ3RoID49IHRoaXMubWF4ZmlsZXMpIHtcbiAgICAgICAgICAgIHRoaXMub25maWxlZXJyb3IuZW1pdCgnSU5WQUxJRF9NQVhGSUxFUycpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXR6dCBkaWUgRmlsZSBJRCdzIGRlciBob2NoZ2VsYWRlbiBGaWxlcyBpbiBkYXMgTW9kZWxcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWxlIElEIGRlcyBGaWxlcyB3ZWxjaGVzIGhvY2hnZWxhZGVuIHd1cmRlLlxuICAgICAqL1xuICAgIHB1YmxpYyBTZXRVcGxvYWRWYWx1ZShmaWxlOiBVcGxvYWRTdGF0ZSkge1xuICAgICAgICBsZXQgZG9jdW1lbnRpZDogc3RyaW5nID0gbnVsbDtcbiAgICAgICAgaWYgKGZpbGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGRvY3VtZW50aWQgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnRpZCA9IGZpbGUucmVzcG9uc2UuZG9jdW1lbnRpZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnRpZCA9IGZpbGUudXBsb2FkSWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIERvY3VtZW50IElEIGFrdHVhbGlzaWVyZW4sIGRhbWl0IFdlcnQgdm9uIFNlcnZlciBpbiBNb2RlbCBnZXNldHp0IHdlcmRlbiBrYW5uLlxuICAgICAgICAgICAgdGhpcy51cGxvYWRzXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoaXRtKSA9PiBpdG0gIT09IG51bGwgJiYgaXRtLnVwbG9hZElkID09PSBmaWxlLnVwbG9hZElkKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChpdG0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaXRtLmRvY3VtZW50aWQgPSBkb2N1bWVudGlkO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTGlzdCBvZiBGaWxlc1xuICAgICAgICBjb25zdCBmaWxlSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIC8vIEFkZCBhbGwgSXRlbXMgd2l0aCBVcGxvYWRlZCBTdGF0ZSB0byBNb2RlbFxuICAgICAgICB0aGlzLnVwbG9hZHNcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0bSkgPT4gaXRtLnN0YXR1cyA9PT0gJ2NvbXBsZXRlJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChpdG0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRtLmRvY3VtZW50aWQgIT09IG51bGwgJiYgaXRtLmRvY3VtZW50aWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBmaWxlSWRzLnB1c2goaXRtLmRvY3VtZW50aWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChmaWxlSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKGZpbGVJZHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGllcnQgZGFzIENvbnRyb2xcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjIENvbnRyb2xcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IHN1cGVyLnZhbGlkYXRlRGF0YShjKTtcblxuICAgICAgICBpZiAoZXJyb3IgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5taW5GaWxlcyhcbiAgICAgICAgICAgICAgICB0aGlzLm1pbmZpbGVzLFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VtaW5maWxlcyxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1pbmZpbGVzXG4gICAgICAgICAgICApKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHJvdGVjdGVkIEdldE1heEZpbGVzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heGZpbGVzO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcbn1cbiJdfQ==
@@ -15,7 +15,7 @@ export class SacUploadSingleCommon extends SacUploadBase {
15
15
  * Label für Upload Button
16
16
  */
17
17
  this.buttonupload = '';
18
- // #endregion Public Methods
18
+ // #endregion Protected Methods
19
19
  }
20
20
  // #endregion Properties
21
21
  // #region Public Methods
@@ -48,6 +48,14 @@ export class SacUploadSingleCommon extends SacUploadBase {
48
48
  }
49
49
  }
50
50
  }
51
+ // #endregion Public Methods
52
+ // #region Protected Methods
53
+ /**
54
+ * @inheritdoc
55
+ */
56
+ GetMaxFiles() {
57
+ return 1;
58
+ }
51
59
  }
52
60
  SacUploadSingleCommon.decorators = [
53
61
  { type: Directive }
@@ -56,4 +64,4 @@ SacUploadSingleCommon.propDecorators = {
56
64
  buttonbrowse: [{ type: Input }],
57
65
  buttonupload: [{ type: Input }]
58
66
  };
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2Fkc2luZ2xlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdXBsb2FkL3VwbG9hZHNpbmdsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBcUI7SUFEaEU7UUFFSSxxQkFBcUI7O1FBRXJCOztXQUVHO1FBRUksaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFakM7O1dBRUc7UUFFSSxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQXFDakMsNEJBQTRCO0lBQ2hDLENBQUM7SUFwQ0csd0JBQXdCO0lBRXhCLHlCQUF5QjtJQUV6Qjs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsSUFBaUI7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsSUFBaUI7UUFDbkMsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ2YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjthQUFNO1lBQ0gsSUFDSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSTtnQkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssSUFBSTtnQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUN4QztnQkFDRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDNUM7aUJBQU07Z0JBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDakM7U0FDSjtJQUNMLENBQUM7OztZQWpESixTQUFTOzs7MkJBT0wsS0FBSzsyQkFNTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjVXBsb2FkQmFzZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNldXBsb2FkY29udHJvbCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVcGxvYWRTdGF0ZSB9IGZyb20gJ25neC11cGxvYWR4JztcblxuLyoqXG4gKiBVcGxvYWQgS29tcG9uZW50ZSBmw7xyIGVpbiBlaW56ZWxuZXMgRmlsZVxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBTYWNVcGxvYWRTaW5nbGVDb21tb24gZXh0ZW5kcyBTYWNVcGxvYWRCYXNlPHN0cmluZz4ge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgZsO8ciBCcm93c2UgQnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYnV0dG9uYnJvd3NlOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIExhYmVsIGbDvHIgVXBsb2FkIEJ1dHRvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJ1dHRvbnVwbG9hZDogc3RyaW5nID0gJyc7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE1hY2h0IGtlaW5lIFZhbGlkaWVydW5nIGluIGRpZXNlbSBDb250cm9sXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBGaWxlIGRhcyBoaW56dWdlZsO8Z3Qgd3VyZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgQ3VzdG9tQWRkVmFsaWRhdGlvbihmaWxlOiBVcGxvYWRTdGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXR6dCBkaWUgRmlsZSBJRCBkZXMgaG9jaGdlbGFkZW4gRmlsZXMgaW4gZGFzIE1vZGVsXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBJRCBkZXMgRmlsZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgU2V0VXBsb2FkVmFsdWUoZmlsZTogVXBsb2FkU3RhdGUpIHtcbiAgICAgICAgaWYgKGZpbGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUoZmlsZS5yZXNwb25zZS5kb2N1bWVudGlkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUoZmlsZS51cGxvYWRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG59XG4iXX0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2Fkc2luZ2xlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdXBsb2FkL3VwbG9hZHNpbmdsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBcUI7SUFEaEU7UUFFSSxxQkFBcUI7O1FBRXJCOztXQUVHO1FBRUksaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFakM7O1dBRUc7UUFFSSxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQWdEakMsK0JBQStCO0lBQ25DLENBQUM7SUEvQ0csd0JBQXdCO0lBRXhCLHlCQUF5QjtJQUV6Qjs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsSUFBaUI7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsSUFBaUI7UUFDbkMsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ2YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjthQUFNO1lBQ0gsSUFDSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSTtnQkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssSUFBSTtnQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUN4QztnQkFDRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDNUM7aUJBQU07Z0JBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDakM7U0FDSjtJQUNMLENBQUM7SUFFRCw0QkFBNEI7SUFFNUIsNEJBQTRCO0lBRTVCOztPQUVHO0lBQ08sV0FBVztRQUNqQixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7OztZQTVESixTQUFTOzs7MkJBT0wsS0FBSzsyQkFNTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjVXBsb2FkQmFzZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNldXBsb2FkY29udHJvbCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVcGxvYWRTdGF0ZSB9IGZyb20gJ25neC11cGxvYWR4JztcblxuLyoqXG4gKiBVcGxvYWQgS29tcG9uZW50ZSBmw7xyIGVpbiBlaW56ZWxuZXMgRmlsZVxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBTYWNVcGxvYWRTaW5nbGVDb21tb24gZXh0ZW5kcyBTYWNVcGxvYWRCYXNlPHN0cmluZz4ge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgZsO8ciBCcm93c2UgQnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYnV0dG9uYnJvd3NlOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIExhYmVsIGbDvHIgVXBsb2FkIEJ1dHRvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJ1dHRvbnVwbG9hZDogc3RyaW5nID0gJyc7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE1hY2h0IGtlaW5lIFZhbGlkaWVydW5nIGluIGRpZXNlbSBDb250cm9sXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBGaWxlIGRhcyBoaW56dWdlZsO8Z3Qgd3VyZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgQ3VzdG9tQWRkVmFsaWRhdGlvbihmaWxlOiBVcGxvYWRTdGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXR6dCBkaWUgRmlsZSBJRCBkZXMgaG9jaGdlbGFkZW4gRmlsZXMgaW4gZGFzIE1vZGVsXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBJRCBkZXMgRmlsZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgU2V0VXBsb2FkVmFsdWUoZmlsZTogVXBsb2FkU3RhdGUpIHtcbiAgICAgICAgaWYgKGZpbGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUoZmlsZS5yZXNwb25zZS5kb2N1bWVudGlkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUoZmlsZS51cGxvYWRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBHZXRNYXhGaWxlcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG59XG4iXX0=
@@ -1,8 +1,9 @@
1
+ import { SACLOCALISATION_SERVICE, SacDefaultLocalisationService } from '../../services/sac-localisation.service';
2
+ import { SACVALIDATIONKEY_SERVICE, SacDefaultValidationKeyService } from '../../services/sac-validationkey.service';
3
+ import { createGuid } from '../../utilities/guid';
4
+ import { SacFormCommon } from '../form/form';
1
5
  import { Directive, Injector, Input } from '@angular/core';
2
6
  import { FormGroup } from '@angular/forms';
3
- import { SACLOCALISATION_SERVICE, SacDefaultLocalisationService, } from '../../services/sac-localisation.service';
4
- import { SACVALIDATIONKEY_SERVICE, SacDefaultValidationKeyService, } from '../../services/sac-validationkey.service';
5
- import { SacFormCommon } from '../form/form';
6
7
  /**
7
8
  * Basis Komponente für SacValidationSummary
8
9
  */
@@ -15,9 +16,13 @@ export class SacValidationSummaryCommon {
15
16
  */
16
17
  constructor(parent, injector) {
17
18
  /**
18
- * Name-Property
19
+ * Identifier used for the E2E data attribute.
20
+ */
21
+ this.e2eidentifier = null;
22
+ /**
23
+ * name of control
19
24
  */
20
- this.name = '';
25
+ this.name = createGuid();
21
26
  this.parent = parent;
22
27
  this.validationKeyService = injector.get(SACVALIDATIONKEY_SERVICE, new SacDefaultValidationKeyService());
23
28
  this.lngResourceService = injector.get(SACLOCALISATION_SERVICE, new SacDefaultLocalisationService(this.validationKeyService));
@@ -126,8 +131,9 @@ SacValidationSummaryCommon.ctorParameters = () => [
126
131
  { type: Injector }
127
132
  ];
128
133
  SacValidationSummaryCommon.propDecorators = {
134
+ e2eidentifier: [{ type: Input }],
129
135
  form: [{ type: Input }],
130
136
  formGroupName: [{ type: Input }],
131
137
  name: [{ type: Input }]
132
138
  };
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy92YWxpZGF0aW9uL3ZhbGlkYXRpb25zdW1tYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQThCLFNBQVMsRUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBSy9FLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsNkJBQTZCLEdBQzlCLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qiw4QkFBOEIsR0FDL0IsTUFBTSwwQ0FBMEMsQ0FBQztBQUVsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDOztHQUVHO0FBRUgsTUFBTSxPQUFPLDBCQUEwQjtJQWtDckMsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUFZLE1BQXFCLEVBQUUsUUFBa0I7UUFkckQ7O1dBRUc7UUFFSSxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBV3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRXJCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUN0Qyx3QkFBd0IsRUFDeEIsSUFBSSw4QkFBOEIsRUFBRSxDQUNyQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQ3BDLHVCQUF1QixFQUN2QixJQUFJLDZCQUE2QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUM3RCxDQUFDO0lBQ0osQ0FBQztJQUVE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UUFBUTs7O21CQXdDekIsS0FBSzs0QkFPTCxLQUFLO21CQUtMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdG9yLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Hcm91cCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lTYWNMb2NhbGlzYXRpb25TZXJ2aWNlJztcbmltcG9ydCB7IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlJztcbmltcG9ydCB7IElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaWFic3RyYWN0Y29udHJvbGxhYmVsJztcbmltcG9ydCB7XG4gIFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLFxuICBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FjLWxvY2FsaXNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSxcbiAgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zYWMtdmFsaWRhdGlvbmtleS5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvckl0ZW0gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IFNhY0Zvcm1Db21tb24gfSBmcm9tICcuLi9mb3JtL2Zvcm0nO1xuXG4vKipcbiAqIEJhc2lzIEtvbXBvbmVudGUgZsO8ciBTYWNWYWxpZGF0aW9uU3VtbWFyeVxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBTYWNWYWxpZGF0aW9uU3VtbWFyeUNvbW1vbiB7XG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBTZXJ2aWNlIGbDvHIgRXJyb3IgTG9jYWxpc2F0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgbG5nUmVzb3VyY2VTZXJ2aWNlOiBJU2FjTG9jYWxpc2F0aW9uU2VydmljZTtcbiAgLyoqXG4gICAqIFBhcmVudCBGb3JtdWxhclxuICAgKi9cbiAgcHJvdGVjdGVkIHBhcmVudDogU2FjRm9ybUNvbW1vbjtcbiAgLyoqXG4gICAqIFNlcnZpY2UgdG8gcmVjZWl2ZSBzdGFuZGFyZCB2YWxpZGF0aW9uIG1lc3NhZ2Uga2V5cyBhbmQgdGV4dHNcbiAgICovXG4gIHByb3RlY3RlZCB2YWxpZGF0aW9uS2V5U2VydmljZTogSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiByZWFjdGl2ZSBmb3JtIGluc3RhbmNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuICAvKipcbiAgICogRm9ybSBncm91cG5hbWUgdG8gZmlsdGVyIHN1bW1hcnkgdG8gZm9ybWdyb3VwXG4gICAqXG4gICAqIEltcG9ydGFudDogaXQgd29ya3Mgb25seSBpbiByZWFjdGl2ZSBmb3JtcyBtb2RlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGZvcm1Hcm91cE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIE5hbWUtUHJvcGVydHlcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSAnJztcblxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gIC8qKlxuICAgKiBLb25zdHJ1a3RvclxuICAgKiBJbmplY3QgZGVzIEZvcm11bGFyc1xuICAgKi9cbiAgY29uc3RydWN0b3IocGFyZW50OiBTYWNGb3JtQ29tbW9uLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcblxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXG4gICAgICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXG4gICAgICBuZXcgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlKClcbiAgICApO1xuICAgIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxuICAgICAgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsXG4gICAgICBuZXcgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UodGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSlcbiAgICApO1xuICB9XG5cbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgLyoqXG4gICAqIFZhbGlkYXRpb24gTWV0aG9kZVxuICAgKi9cbiAgcHVibGljIGdldCBmb3JtRXJyb3JzKCk6IE9ic2VydmFibGU8c3RyaW5nPltdIHtcbiAgICBjb25zdCBjb2xsZWN0aW9uOiBBcnJheTxPYnNlcnZhYmxlPHN0cmluZz4+ID0gbmV3IEFycmF5PFxuICAgICAgT2JzZXJ2YWJsZTxzdHJpbmc+XG4gICAgPigpO1xuXG4gICAgbGV0IGZvcm1CYXNlOiBGb3JtR3JvdXA7XG4gICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICBmb3JtQmFzZSA9IHRoaXMucGFyZW50LmdldEZvcm0oKS5mb3JtO1xuICAgIH0gZWxzZSBpZiAodGhpcy5mb3JtIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICBmb3JtQmFzZSA9IHRoaXMuZm9ybTtcblxuICAgICAgLy8gZm9ybWdyb3VwIGNhbiBvbmx5IGJlIGdldCBpbiByZWFjdGl2ZSBmb3JtcyBtb2RlXG4gICAgICBpZiAodGhpcy5mb3JtR3JvdXBOYW1lKSB7XG4gICAgICAgIGZvcm1CYXNlID0gZm9ybUJhc2UuZ2V0KHRoaXMuZm9ybUdyb3VwTmFtZSkgYXMgRm9ybUdyb3VwO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgZm9ybScpO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1zOiBBcnJheTxOZ0Zvcm0gfCBGb3JtQXJyYXk+ID0gT2JqZWN0LmtleXMoZm9ybUJhc2UuY29udHJvbHMpLm1hcChcbiAgICAgIChrZXkpID0+IHtcbiAgICAgICAgcmV0dXJuIDxOZ0Zvcm0gfCBGb3JtQXJyYXk+Zm9ybUJhc2UuY29udHJvbHNba2V5XTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5nZXRFcnJvckNvbGxlY3Rpb24oaXRlbXMsIGNvbGxlY3Rpb24pO1xuXG4gICAgcmV0dXJuIGNvbGxlY3Rpb24uZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgd2VubiBFcnJvcnMgZW50c3RlaGVuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGhhc0Vycm9ycygpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtRXJyb3JzLmxlbmd0aCA+IDA7XG4gIH1cblxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcblxuICAvKipcbiAgICogRsO8Z3QgZWluZW4gVmFsaWRhdGlvbiBFcnJvciBpbiBkaWUgRXJyb3IgQ29sbGVjdGlvbiBoaW56dVxuICAgKiBAcGFyYW0gY3RsIEZlaGxlcmhhZnRlcyBDb250cm9sXG4gICAqIEBwYXJhbSBjb2xsZWN0aW9uIENvbGxlY3Rpb24gYWxsZXIgRmVobGVybWVsZHVuZ2VuXG4gICAqL1xuICBwcml2YXRlIGFkZEVycm9yVG9Db2xsZWN0aW9uKFxuICAgIGN0bDogQWJzdHJhY3RDb250cm9sLFxuICAgIGNvbGxlY3Rpb246IEFycmF5PE9ic2VydmFibGU8c3RyaW5nPj5cbiAgKTogdm9pZCB7XG4gICAgaWYgKGN0bC5lcnJvcnMgPT09IG51bGwgfHwgY3RsLnRvdWNoZWQgPT09IGZhbHNlIHx8IGN0bC52YWxpZCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoY3RsLmVycm9ycyk7XG5cbiAgICBpZiAoa2V5cy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9ySXRlbTogVmFsaWRhdGlvbkVycm9ySXRlbSA9IGN0bC5lcnJvcnNba2V5c1swXV07XG5cbiAgICAvLyBWYWxpZGF0aW9uIFBhcmFtZXRlcnNcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0ge307XG4gICAgaWYgKGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSBudWxsICYmIGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGVycm9ySXRlbS5wYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgcGFyYW1ldGVyc1trXSA9IHY7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoKGN0bCBhcyB1bmtub3duIGFzIElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbik/LmNvbnRyb2xsYWJlbCkge1xuICAgICAgcGFyYW1ldGVyc1snRklFTEQnXSA9IChcbiAgICAgICAgY3RsIGFzIHVua25vd24gYXMgSUFic3RyYWN0Q29udHJvbExhYmVsRXh0ZW5zaW9uXG4gICAgICApLmNvbnRyb2xsYWJlbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1ldGVyc1snRklFTEQnXSA9IGVycm9ySXRlbS5maWVsZE5hbWU7XG4gICAgfVxuXG4gICAgY29sbGVjdGlvbi5wdXNoKFxuICAgICAgdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKFxuICAgICAgICBlcnJvckl0ZW0uZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXksXG4gICAgICAgIHBhcmFtZXRlcnNcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERpZSBNZXRob2RlIGdpYnQgQ29sbGVjdGlvbiB2b24gRXJyb3JzLiBWZXJsYW5ndCBjb250cm9sczogQXJyYXk8TmdGb3JtIHwgRm9ybUFycmF5PiB1bmQgIGNvbGxlY3Rpb246IEFycmF5PE9ic2VydmFibGU8c3RyaW5nPj5cbiAgICovXG4gIHByaXZhdGUgZ2V0RXJyb3JDb2xsZWN0aW9uKFxuICAgIGNvbnRyb2xzOiBBcnJheTxOZ0Zvcm0gfCBGb3JtQXJyYXk+LFxuICAgIGNvbGxlY3Rpb246IEFycmF5PE9ic2VydmFibGU8c3RyaW5nPj5cbiAgKTogdm9pZCB7XG4gICAgY29udHJvbHMuZm9yRWFjaCgoY3RsKSA9PiB7XG4gICAgICBpZiAoY3RsLmNvbnRyb2xzID09PSB1bmRlZmluZWQgfHwgY3RsLmNvbnRyb2xzID09PSBudWxsKSB7XG4gICAgICAgIHRoaXMuYWRkRXJyb3JUb0NvbGxlY3Rpb24oPEFic3RyYWN0Q29udHJvbD5jdGwsIGNvbGxlY3Rpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgT2JqZWN0LmtleXMoY3RsLmNvbnRyb2xzKS5tYXAoKGNvbnRyb2xLZXkpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250cm9sID0gY3RsLmNvbnRyb2xzW2NvbnRyb2xLZXldO1xuXG4gICAgICAgICAgLy8gQ2FuY2VsIEFuYWx5c2Ugd2VubiBJdGVtIG5vdCBUb3VjaGVkIG9kZXIgVmFsaWRcbiAgICAgICAgICBpZiAoY29udHJvbC50b3VjaGVkID09PSBmYWxzZSB8fCBjb250cm9sLnZhbGlkID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gSGFuZGxlIHdlbm4gQ29udHJvbCBrZWluIENvbnRhaW5lciBpc3RcbiAgICAgICAgICBpZiAoY29udHJvbC5jb250cm9scyA9PT0gdW5kZWZpbmVkIHx8IGNvbnRyb2wuY29udHJvbHMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkRXJyb3JUb0NvbGxlY3Rpb24oY29udHJvbCwgY29sbGVjdGlvbik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEhhbmRsaW5nIGVpbmVzIENvbnRyb2wgQ29udGFpbmVyc1xuICAgICAgICAgICAgY29uc3QgaXRlbXM6IEFycmF5PE5nRm9ybSB8IEZvcm1BcnJheT4gPSBPYmplY3Qua2V5cyhcbiAgICAgICAgICAgICAgY29udHJvbC5jb250cm9sc1xuICAgICAgICAgICAgKS5tYXAoKGZvcm1LZXkpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIDxOZ0Zvcm0gfCBGb3JtQXJyYXk+Y29udHJvbC5jb250cm9sc1tmb3JtS2V5XTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmdldEVycm9yQ29sbGVjdGlvbihpdGVtcywgY29sbGVjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy92YWxpZGF0aW9uL3ZhbGlkYXRpb25zdW1tYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQThCLFNBQVMsRUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBRy9FOztHQUVHO0FBRUgsTUFBTSxPQUFPLDBCQUEwQjtJQTRDbkMsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUFZLE1BQXFCLEVBQUUsUUFBa0I7UUFsQ3JEOztXQUVHO1FBRUksa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBZ0IzQzs7V0FFRztRQUVJLFNBQUksR0FBVyxVQUFVLEVBQUUsQ0FBQztRQVcvQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUVyQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLDhCQUE4QixFQUFFLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcs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QyxDQUFDLENBQUM7YUFDTjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBNUtKLFNBQVM7OztZQVJELGFBQWE7WUFDRixRQUFROzs7NEJBNkJ2QixLQUFLO21CQU1MLEtBQUs7NEJBUUwsS0FBSzttQkFNTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lTYWNMb2NhbGlzYXRpb25TZXJ2aWNlJztcbmltcG9ydCB7IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlJztcbmltcG9ydCB7IElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaWFic3RyYWN0Y29udHJvbGxhYmVsJztcbmltcG9ydCB7IFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NhYy1sb2NhbGlzYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsIFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NhYy12YWxpZGF0aW9ua2V5LnNlcnZpY2UnO1xuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9ndWlkJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvckl0ZW0gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IFNhY0Zvcm1Db21tb24gfSBmcm9tICcuLi9mb3JtL2Zvcm0nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtR3JvdXAsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBCYXNpcyBLb21wb25lbnRlIGbDvHIgU2FjVmFsaWRhdGlvblN1bW1hcnlcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjVmFsaWRhdGlvblN1bW1hcnlDb21tb24ge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogU2VydmljZSBmw7xyIEVycm9yIExvY2FsaXNhdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBsbmdSZXNvdXJjZVNlcnZpY2U6IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlO1xuXG4gICAgLyoqXG4gICAgICogUGFyZW50IEZvcm11bGFyXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHBhcmVudDogU2FjRm9ybUNvbW1vbjtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgdG8gcmVjZWl2ZSBzdGFuZGFyZCB2YWxpZGF0aW9uIG1lc3NhZ2Uga2V5cyBhbmQgdGV4dHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbktleVNlcnZpY2U6IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXIgdXNlZCBmb3IgdGhlIEUyRSBkYXRhIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlMmVpZGVudGlmaWVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIHJlYWN0aXZlIGZvcm0gaW5zdGFuY2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIGdyb3VwbmFtZSB0byBmaWx0ZXIgc3VtbWFyeSB0byBmb3JtZ3JvdXBcbiAgICAgKlxuICAgICAqIEltcG9ydGFudDogaXQgd29ya3Mgb25seSBpbiByZWFjdGl2ZSBmb3JtcyBtb2RlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1Hcm91cE5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIG5hbWUgb2YgY29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyA9IGNyZWF0ZUd1aWQoKTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIEtvbnN0cnVrdG9yXG4gICAgICogSW5qZWN0IGRlcyBGb3JtdWxhcnNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihwYXJlbnQ6IFNhY0Zvcm1Db21tb24sIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcblxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSgpKTtcbiAgICAgICAgdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcbiAgICAgICAgICAgIG5ldyBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSh0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0aW9uIE1ldGhvZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGZvcm1FcnJvcnMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+W10ge1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9uOiBBcnJheTxPYnNlcnZhYmxlPHN0cmluZz4+ID0gbmV3IEFycmF5PE9ic2VydmFibGU8c3RyaW5nPj4oKTtcblxuICAgICAgICBsZXQgZm9ybUJhc2U6IEZvcm1Hcm91cDtcbiAgICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgICAgICBmb3JtQmFzZSA9IHRoaXMucGFyZW50LmdldEZvcm0oKS5mb3JtO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZm9ybSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgZm9ybUJhc2UgPSB0aGlzLmZvcm07XG5cbiAgICAgICAgICAgIC8vIGZvcm1ncm91cCBjYW4gb25seSBiZSBnZXQgaW4gcmVhY3RpdmUgZm9ybXMgbW9kZVxuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwTmFtZSkge1xuICAgICAgICAgICAgICAgIGZvcm1CYXNlID0gZm9ybUJhc2UuZ2V0KHRoaXMuZm9ybUdyb3VwTmFtZSkgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIGZvcm0nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW1zOiBBcnJheTxOZ0Zvcm0gfCBGb3JtQXJyYXk+ID0gT2JqZWN0LmtleXMoZm9ybUJhc2UuY29udHJvbHMpLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gPE5nRm9ybSB8IEZvcm1BcnJheT5mb3JtQmFzZS5jb250cm9sc1trZXldO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmdldEVycm9yQ29sbGVjdGlvbihpdGVtcywgY29sbGVjdGlvbik7XG5cbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb24uZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSBudWxsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXR0ZXIgd2VubiBFcnJvcnMgZW50c3RlaGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBoYXNFcnJvcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1FcnJvcnMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRsO8Z3QgZWluZW4gVmFsaWRhdGlvbiBFcnJvciBpbiBkaWUgRXJyb3IgQ29sbGVjdGlvbiBoaW56dVxuICAgICAqIEBwYXJhbSBjdGwgRmVobGVyaGFmdGVzIENvbnRyb2xcbiAgICAgKiBAcGFyYW0gY29sbGVjdGlvbiBDb2xsZWN0aW9uIGFsbGVyIEZlaGxlcm1lbGR1bmdlblxuICAgICAqL1xuICAgIHByaXZhdGUgYWRkRXJyb3JUb0NvbGxlY3Rpb24oY3RsOiBBYnN0cmFjdENvbnRyb2wsIGNvbGxlY3Rpb246IEFycmF5PE9ic2VydmFibGU8c3RyaW5nPj4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGN0bC5lcnJvcnMgPT09IG51bGwgfHwgY3RsLnRvdWNoZWQgPT09IGZhbHNlIHx8IGN0bC52YWxpZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhjdGwuZXJyb3JzKTtcblxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXJyb3JJdGVtOiBWYWxpZGF0aW9uRXJyb3JJdGVtID0gY3RsLmVycm9yc1trZXlzWzBdXTtcblxuICAgICAgICAvLyBWYWxpZGF0aW9uIFBhcmFtZXRlcnNcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHt9O1xuICAgICAgICBpZiAoZXJyb3JJdGVtLnBhcmFtZXRlcnMgIT09IG51bGwgJiYgZXJyb3JJdGVtLnBhcmFtZXRlcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZXJyb3JJdGVtLnBhcmFtZXRlcnMuZm9yRWFjaCgodiwgaykgPT4ge1xuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnNba10gPSB2O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKGN0bCBhcyB1bmtub3duIGFzIElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbik/LmNvbnRyb2xsYWJlbCkge1xuICAgICAgICAgICAgcGFyYW1ldGVyc1snRklFTEQnXSA9IChjdGwgYXMgdW5rbm93biBhcyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb24pLmNvbnRyb2xsYWJlbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcnNbJ0ZJRUxEJ10gPSBlcnJvckl0ZW0uZmllbGROYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgY29sbGVjdGlvbi5wdXNoKHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyhlcnJvckl0ZW0uZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXksIHBhcmFtZXRlcnMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaWUgTWV0aG9kZSBnaWJ0IENvbGxlY3Rpb24gdm9uIEVycm9ycy4gVmVybGFuZ3QgY29udHJvbHM6IEFycmF5PE5nRm9ybSB8IEZvcm1BcnJheT4gdW5kICBjb2xsZWN0aW9uOiBBcnJheTxPYnNlcnZhYmxlPHN0cmluZz4+XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRFcnJvckNvbGxlY3Rpb24oY29udHJvbHM6IEFycmF5PE5nRm9ybSB8IEZvcm1BcnJheT4sIGNvbGxlY3Rpb246IEFycmF5PE9ic2VydmFibGU8c3RyaW5nPj4pOiB2b2lkIHtcbiAgICAgICAgY29udHJvbHMuZm9yRWFjaCgoY3RsKSA9PiB7XG4gICAgICAgICAgICBpZiAoY3RsLmNvbnRyb2xzID09PSB1bmRlZmluZWQgfHwgY3RsLmNvbnRyb2xzID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRFcnJvclRvQ29sbGVjdGlvbig8QWJzdHJhY3RDb250cm9sPmN0bCwgY29sbGVjdGlvbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGN0bC5jb250cm9scykubWFwKChjb250cm9sS2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBjdGwuY29udHJvbHNbY29udHJvbEtleV07XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FuY2VsIEFuYWx5c2Ugd2VubiBJdGVtIG5vdCBUb3VjaGVkIG9kZXIgVmFsaWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wudG91Y2hlZCA9PT0gZmFsc2UgfHwgY29udHJvbC52YWxpZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSGFuZGxlIHdlbm4gQ29udHJvbCBrZWluIENvbnRhaW5lciBpc3RcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wuY29udHJvbHMgPT09IHVuZGVmaW5lZCB8fCBjb250cm9sLmNvbnRyb2xzID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZEVycm9yVG9Db2xsZWN0aW9uKGNvbnRyb2wsIGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGFuZGxpbmcgZWluZXMgQ29udHJvbCBDb250YWluZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtczogQXJyYXk8TmdGb3JtIHwgRm9ybUFycmF5PiA9IE9iamVjdC5rZXlzKGNvbnRyb2wuY29udHJvbHMpLm1hcCgoZm9ybUtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8TmdGb3JtIHwgRm9ybUFycmF5PmNvbnRyb2wuY29udHJvbHNbZm9ybUtleV07XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRFcnJvckNvbGxlY3Rpb24oaXRlbXMsIGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXX0=