@simpleangularcontrols/sac-common 10.0.0-rc.2 → 10.0.0-rc.21

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 (140) hide show
  1. package/bundles/simpleangularcontrols-sac-common.umd.js +2232 -1604
  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 +100 -14
  6. package/common/baseinputcontrol.d.ts +0 -4
  7. package/common/basemodelcontrol.d.ts +55 -27
  8. package/common/baseuploadcontrol.d.ts +71 -55
  9. package/controls/checkbox/checkbox.d.ts +12 -3
  10. package/controls/checkbox/radiobutton.d.ts +61 -26
  11. package/controls/contextmenu/contextmenu.d.ts +26 -19
  12. package/controls/contextmenu/contextmenu.interface.d.ts +3 -0
  13. package/controls/contextmenu/contextmenuitem.d.ts +5 -0
  14. package/controls/contextmenu/contextmenuitembutton.d.ts +21 -20
  15. package/controls/datetime/date.d.ts +28 -31
  16. package/controls/datetime/datetime.d.ts +27 -31
  17. package/controls/datetime/time.d.ts +26 -30
  18. package/controls/dialog/dialog.d.ts +31 -43
  19. package/controls/grid/grid.d.ts +38 -36
  20. package/controls/grid/gridbutton.d.ts +13 -13
  21. package/controls/grid/gridcolumn.d.ts +8 -8
  22. package/controls/grid/gridcolumnaction.d.ts +3 -3
  23. package/controls/grid/gridcolumnbase.d.ts +45 -37
  24. package/controls/grid/gridimage.d.ts +2 -2
  25. package/controls/grid/model.d.ts +51 -42
  26. package/controls/grid/paging.d.ts +41 -43
  27. package/controls/input/input.d.ts +3 -3
  28. package/controls/input/inputarea.d.ts +5 -5
  29. package/controls/input/inputpassword.d.ts +7 -7
  30. package/controls/input/inputsearch.d.ts +13 -4
  31. package/controls/layout/formlayout.d.ts +17 -1
  32. package/controls/list/buildvaluestring.d.ts +6 -0
  33. package/controls/list/dropdown.d.ts +9 -51
  34. package/controls/list/dropdownoptions.d.ts +38 -0
  35. package/controls/multilanguage/multilanguageinput.d.ts +2 -2
  36. package/controls/multilanguage/multilanguageinputarea.d.ts +4 -4
  37. package/controls/static/formcontainer.d.ts +7 -3
  38. package/controls/tooltip/tooltip.d.ts +76 -69
  39. package/controls/treeview/treeview.d.ts +107 -107
  40. package/esm2015/common/basedatetimecontrol.js +185 -30
  41. package/esm2015/common/baseinputcontrol.js +2 -7
  42. package/esm2015/common/basemodelcontrol.js +109 -57
  43. package/esm2015/common/baseuploadcontrol.js +92 -59
  44. package/esm2015/controls/checkbox/checkbox.js +29 -6
  45. package/esm2015/controls/checkbox/radiobutton.js +94 -45
  46. package/esm2015/controls/contextmenu/contextmenu.interface.js +1 -0
  47. package/esm2015/controls/contextmenu/contextmenu.interface.ngfactory.js +7 -0
  48. package/esm2015/controls/contextmenu/contextmenu.js +22 -23
  49. package/esm2015/controls/contextmenu/contextmenuitem.js +13 -2
  50. package/esm2015/controls/contextmenu/contextmenuitembutton.js +34 -25
  51. package/esm2015/controls/datetime/date.js +44 -43
  52. package/esm2015/controls/datetime/datetime.js +43 -43
  53. package/esm2015/controls/datetime/time.js +43 -43
  54. package/esm2015/controls/dialog/dialog.js +41 -83
  55. package/esm2015/controls/grid/grid.js +21 -21
  56. package/esm2015/controls/grid/gridbutton.js +19 -13
  57. package/esm2015/controls/grid/gridcolumn.js +14 -7
  58. package/esm2015/controls/grid/gridcolumnaction.js +6 -5
  59. package/esm2015/controls/grid/gridcolumnbase.js +67 -55
  60. package/esm2015/controls/grid/gridimage.js +3 -3
  61. package/esm2015/controls/grid/model.js +51 -30
  62. package/esm2015/controls/grid/paging.js +40 -42
  63. package/esm2015/controls/input/input.js +6 -8
  64. package/esm2015/controls/input/inputarea.js +19 -12
  65. package/esm2015/controls/input/inputpassword.js +12 -12
  66. package/esm2015/controls/input/inputsearch.js +35 -6
  67. package/esm2015/controls/layout/formlayout.js +20 -8
  68. package/esm2015/controls/list/buildvaluestring.js +18 -0
  69. package/esm2015/controls/{treeview/ngtreeitemaction.ngfactory.js → list/buildvaluestring.ngfactory.js} +1 -1
  70. package/esm2015/controls/list/dropdown.js +16 -114
  71. package/esm2015/controls/list/dropdownoptions.js +72 -0
  72. package/esm2015/controls/{treeview/treeviewchild.ngfactory.js → list/dropdownoptions.ngfactory.js} +1 -1
  73. package/esm2015/controls/multilanguage/multilanguageinput.js +8 -14
  74. package/esm2015/controls/multilanguage/multilanguageinputarea.js +9 -15
  75. package/esm2015/controls/static/formcontainer.js +16 -5
  76. package/esm2015/controls/tooltip/tooltip.js +126 -245
  77. package/esm2015/controls/treeview/treeview.js +276 -231
  78. package/esm2015/interfaces/ISacConfigurationService.js +1 -1
  79. package/esm2015/interfaces/ISacIconService.js +1 -1
  80. package/esm2015/interfaces/ISacUploadEventCompleteState.js +1 -0
  81. package/esm2015/interfaces/ISacUploadEventCompleteState.ngfactory.js +7 -0
  82. package/esm2015/interfaces/ISacValidationKeyService.js +1 -1
  83. package/esm2015/interfaces/treeviewaction.interface.js +1 -0
  84. package/esm2015/interfaces/treeviewaction.interface.ngfactory.js +7 -0
  85. package/esm2015/public_api.js +15 -8
  86. package/esm2015/services/sac-configuration.service.js +31 -5
  87. package/esm2015/services/sac-icon.service.js +37 -1
  88. package/esm2015/services/sac-localisation.service.js +69 -180
  89. package/esm2015/services/sac-validationkey.service.js +12 -9
  90. package/esm2015/simpleangularcontrols-sac-common.js +1 -7
  91. package/esm2015/utilities/enums.js +5 -1
  92. package/esm2015/utilities/guid.js +4 -2
  93. package/esm2015/utilities/popuphelper.js +343 -0
  94. package/esm2015/utilities/popuphelper.ngfactory.js +7 -0
  95. package/esm2015/validation/equals.validator.js +14 -0
  96. package/esm2015/validation/equals.validator.ngfactory.js +7 -0
  97. package/esm2015/validation/isDateValid.js +9 -1
  98. package/esm2015/validation/mintextlength.validator.js +23 -0
  99. package/esm2015/validation/mintextlength.validator.ngfactory.js +7 -0
  100. package/esm2015/validation/notequals.validator.js +14 -0
  101. package/esm2015/validation/{minlength.validator.ngfactory.js → notequals.validator.ngfactory.js} +1 -1
  102. package/esm2015/validation/validation.class.js +35 -6
  103. package/fesm2015/simpleangularcontrols-sac-common.js +2070 -1498
  104. package/fesm2015/simpleangularcontrols-sac-common.js.map +1 -1
  105. package/interfaces/ISacConfigurationService.d.ts +20 -0
  106. package/interfaces/ISacIconService.d.ts +24 -0
  107. package/interfaces/ISacUploadEventCompleteState.d.ts +5 -0
  108. package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts +1 -0
  109. package/interfaces/ISacValidationKeyService.d.ts +2 -2
  110. package/interfaces/treeviewaction.interface.d.ts +4 -0
  111. package/interfaces/treeviewaction.interface.ngfactory.d.ts +1 -0
  112. package/package.json +2 -2
  113. package/public_api.d.ts +13 -6
  114. package/services/sac-configuration.service.d.ts +40 -0
  115. package/services/sac-icon.service.d.ts +49 -1
  116. package/services/sac-localisation.service.d.ts +10 -10
  117. package/services/sac-validationkey.service.d.ts +7 -7
  118. package/simpleangularcontrols-sac-common-10.0.0-rc.21.tgz +0 -0
  119. package/simpleangularcontrols-sac-common.d.ts +0 -6
  120. package/simpleangularcontrols-sac-common.metadata.json +1 -1
  121. package/utilities/enums.d.ts +3 -1
  122. package/utilities/popuphelper.d.ts +83 -0
  123. package/utilities/popuphelper.ngfactory.d.ts +1 -0
  124. package/validation/equals.validator.d.ts +2 -0
  125. package/validation/equals.validator.ngfactory.d.ts +1 -0
  126. package/validation/mintextlength.validator.d.ts +2 -0
  127. package/validation/mintextlength.validator.ngfactory.d.ts +1 -0
  128. package/validation/notequals.validator.d.ts +2 -0
  129. package/validation/notequals.validator.ngfactory.d.ts +1 -0
  130. package/validation/validation.class.d.ts +22 -3
  131. package/controls/treeview/ngtreeitemaction.d.ts +0 -40
  132. package/controls/treeview/treeviewchild.d.ts +0 -12
  133. package/esm2015/controls/treeview/ngtreeitemaction.js +0 -60
  134. package/esm2015/controls/treeview/treeviewchild.js +0 -18
  135. package/esm2015/validation/minlength.validator.js +0 -21
  136. package/simpleangularcontrols-sac-common-10.0.0-rc.2.tgz +0 -0
  137. package/validation/minlength.validator.d.ts +0 -2
  138. /package/controls/{treeview/ngtreeitemaction.ngfactory.d.ts → contextmenu/contextmenu.interface.ngfactory.d.ts} +0 -0
  139. /package/controls/{treeview/treeviewchild.ngfactory.d.ts → list/buildvaluestring.ngfactory.d.ts} +0 -0
  140. /package/{validation/minlength.validator.ngfactory.d.ts → controls/list/dropdownoptions.ngfactory.d.ts} +0 -0
@@ -1,79 +1,100 @@
1
+ // #region Classes
1
2
  /**
2
- * Model für Pager Settings
3
+ * GridResponse class
4
+ */
5
+ export class GridResponse {
6
+ }
7
+ /**
8
+ * Model for pager settings
3
9
  */
4
10
  export class PagerData {
11
+ // #endregion Properties
12
+ // #region Constructors
5
13
  /**
6
- * Konstruktor
7
- * @param PageSize Anzahl Elemente pro Seite
8
- * @param CurrentPageIndex Aktuelle Seite
9
- * @param TotalRowCount Total Rows in Datenbank
14
+ * Constructor
15
+ * @param PageSize Number of elements per page
16
+ * @param CurrentPageIndex Current page
17
+ * @param TotalRowCount Total Rows in database
10
18
  */
11
19
  constructor(PageSize, CurrentPageIndex, TotalRowCount) {
20
+ // #region Properties
12
21
  /**
13
- * Gesamte Anzahl der Zeilen
14
- */
15
- this.TotalRowCount = 0;
16
- /**
17
- * Aktueller Index der Seite
22
+ * Current index of the page
18
23
  */
19
24
  this.CurrentPageIndex = 0;
20
25
  /**
21
- * PageSize
26
+ * Number of elements on the page
22
27
  */
23
28
  this.PageSize = 20;
29
+ /**
30
+ * Total number of data records
31
+ */
32
+ this.TotalRowCount = 0;
24
33
  this.PageSize = PageSize;
25
34
  this.CurrentPageIndex = CurrentPageIndex;
26
35
  this.TotalRowCount = TotalRowCount;
27
36
  }
28
37
  }
29
38
  /**
30
- * Model wenn Seite geändert werden soll
39
+ * Model if page is to be changed
31
40
  */
32
41
  export class PagerRequest {
42
+ // #endregion Properties
43
+ // #region Constructors
33
44
  /**
34
- * Konstruktor
35
- * @param PageSize Seitegrösse / Anzahl Elemente pro Seite
36
- * @param NewPageIndex Neuer Seitenindex
45
+ * Constructor
46
+ * @param PageSize Page size / number of elements per page
47
+ * @param NewPageIndex New page index
37
48
  */
38
49
  constructor(PageSize, NewPageIndex) {
50
+ // #region Properties
39
51
  /**
40
- * Aktueller Index der Seite
52
+ * Index of the page to which you want to switch
41
53
  */
42
- this.PageSize = 0;
54
+ this.NewPageIndex = 0;
43
55
  /**
44
- * PageSize
56
+ * Number of elements on the page
45
57
  */
46
- this.NewPageIndex = 0;
58
+ this.PageSize = 0;
47
59
  this.PageSize = PageSize;
48
60
  this.NewPageIndex = NewPageIndex;
49
61
  }
50
62
  }
51
63
  /**
52
- * GridResponse-Klasse
53
- */
54
- export class GridResponse {
55
- }
56
- /**
57
- * Model für Sortierung
64
+ * Model for sorting
58
65
  */
59
66
  export class SortDescriptor {
67
+ // #endregion Properties
68
+ // #region Constructors
60
69
  /**
61
- * Konstruktor
62
- * @param sortcolumn Column die Sortiert wird
63
- * @param sortorder Art der Sortierung
70
+ * Constructor
71
+ * @param sortcolumn Column by which to sort
72
+ * @param sortorder Type of sorting
64
73
  */
65
74
  constructor(sortcolumn, sortorder) {
66
75
  this.SortColumn = sortcolumn;
67
76
  this.SortOrder = sortorder;
68
77
  }
69
78
  }
79
+ // #endregion Classes
80
+ // #region Enums
70
81
  /**
71
- * Enum für Sortierung
82
+ * Enum for sorting
72
83
  */
73
84
  export var SortOrder;
74
85
  (function (SortOrder) {
86
+ /**
87
+ * No sorting
88
+ */
75
89
  SortOrder[SortOrder["None"] = 0] = "None";
90
+ /**
91
+ * Ascending
92
+ */
76
93
  SortOrder[SortOrder["Ascending"] = 1] = "Ascending";
94
+ /**
95
+ * Descending
96
+ */
77
97
  SortOrder[SortOrder["Descending"] = 2] = "Descending";
78
98
  })(SortOrder || (SortOrder = {}));
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvZ3JpZC9tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBRXBCOzs7OztPQUtHO0lBQ0gsWUFBWSxRQUFnQixFQUFFLGdCQUF3QixFQUFFLGFBQXFCO1FBTTdFOztVQUVFO1FBQ0Ysa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFbEI7O1dBRUc7UUFDSCxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFFckI7O1dBRUc7UUFDSCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBbEJaLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0NBZ0JGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFBWSxRQUFnQixFQUFFLFlBQW9CO1FBS2xEOztXQUVHO1FBQ0gsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUVyQjs7V0FFRztRQUNILGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBWnZCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7Q0FZRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7Q0FTeEI7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBQ3pCOzs7O09BSUc7SUFDSCxZQUFZLFVBQW1CLEVBQUUsU0FBcUI7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztDQVdGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ25CLHlDQUFRLENBQUE7SUFDUixtREFBYSxDQUFBO0lBQ2IscURBQWMsQ0FBQTtBQUNoQixDQUFDLEVBSlcsU0FBUyxLQUFULFNBQVMsUUFJcEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogTW9kZWwgZsO8ciBQYWdlciBTZXR0aW5nc1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFBhZ2VyRGF0YSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIFBhZ2VTaXplIEFuemFobCBFbGVtZW50ZSBwcm8gU2VpdGVcclxuICAgKiBAcGFyYW0gQ3VycmVudFBhZ2VJbmRleCBBa3R1ZWxsZSBTZWl0ZVxyXG4gICAqIEBwYXJhbSBUb3RhbFJvd0NvdW50IFRvdGFsIFJvd3MgaW4gRGF0ZW5iYW5rXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoUGFnZVNpemU6IG51bWJlciwgQ3VycmVudFBhZ2VJbmRleDogbnVtYmVyLCBUb3RhbFJvd0NvdW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMuUGFnZVNpemUgPSBQYWdlU2l6ZTtcclxuICAgIHRoaXMuQ3VycmVudFBhZ2VJbmRleCA9IEN1cnJlbnRQYWdlSW5kZXg7XHJcbiAgICB0aGlzLlRvdGFsUm93Q291bnQgPSBUb3RhbFJvd0NvdW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VzYW10ZSBBbnphaGwgZGVyIFplaWxlblxyXG4gICovXHJcbiAgVG90YWxSb3dDb3VudCA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFrdHVlbGxlciBJbmRleCBkZXIgU2VpdGVcclxuICAgKi9cclxuICBDdXJyZW50UGFnZUluZGV4ID0gMDtcclxuXHJcbiAgLyoqXHJcbiAgICogUGFnZVNpemVcclxuICAgKi9cclxuICBQYWdlU2l6ZSA9IDIwO1xyXG59XHJcblxyXG4vKipcclxuICogTW9kZWwgd2VubiBTZWl0ZSBnZcOkbmRlcnQgd2VyZGVuIHNvbGxcclxuICovXHJcbmV4cG9ydCBjbGFzcyBQYWdlclJlcXVlc3Qge1xyXG5cclxuICAvKipcclxuICAgKiBLb25zdHJ1a3RvclxyXG4gICAqIEBwYXJhbSBQYWdlU2l6ZSBTZWl0ZWdyw7Zzc2UgLyBBbnphaGwgRWxlbWVudGUgcHJvIFNlaXRlXHJcbiAgICogQHBhcmFtIE5ld1BhZ2VJbmRleCBOZXVlciBTZWl0ZW5pbmRleFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFBhZ2VTaXplOiBudW1iZXIsIE5ld1BhZ2VJbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLlBhZ2VTaXplID0gUGFnZVNpemU7XHJcbiAgICB0aGlzLk5ld1BhZ2VJbmRleCA9IE5ld1BhZ2VJbmRleDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFrdHVlbGxlciBJbmRleCBkZXIgU2VpdGVcclxuICAgKi9cclxuICBQYWdlU2l6ZTogbnVtYmVyID0gMDtcclxuXHJcbiAgLyoqXHJcbiAgICogUGFnZVNpemVcclxuICAgKi9cclxuICBOZXdQYWdlSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG59XHJcblxyXG4vKipcclxuICogR3JpZFJlc3BvbnNlLUtsYXNzZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEdyaWRSZXNwb25zZTxUPiB7XHJcbiAgLyoqXHJcbiAgICogR2VzYW10ZSBBbnphaGwgZGVyIFplaWxlblxyXG4gICAqL1xyXG4gIFRvdGFsUm93Q291bnQ6IG51bWJlcjtcclxuICAvKipcclxuICAgKiBEYXRhXHJcbiAgICovXHJcbiAgRGF0YTogVFtdO1xyXG59XHJcblxyXG4vKipcclxuICogTW9kZWwgZsO8ciBTb3J0aWVydW5nXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU29ydERlc2NyaXB0b3Ige1xyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIHNvcnRjb2x1bW4gQ29sdW1uIGRpZSBTb3J0aWVydCB3aXJkXHJcbiAgICogQHBhcmFtIHNvcnRvcmRlciBBcnQgZGVyIFNvcnRpZXJ1bmdcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihzb3J0Y29sdW1uPzogc3RyaW5nLCBzb3J0b3JkZXI/OiBTb3J0T3JkZXIpIHtcclxuICAgIHRoaXMuU29ydENvbHVtbiA9IHNvcnRjb2x1bW47XHJcbiAgICB0aGlzLlNvcnRPcmRlciA9IHNvcnRvcmRlcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJlemVpY2hudW5nIC8gS2V5IGbDvHIgU29ydGllcnVuZ1xyXG4gICAqL1xyXG4gIFNvcnRDb2x1bW46IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogU29ydGllcnVuZ1xyXG4gICAqL1xyXG4gIFNvcnRPcmRlcjogU29ydE9yZGVyO1xyXG59XHJcblxyXG4vKipcclxuICogRW51bSBmw7xyIFNvcnRpZXJ1bmdcclxuICovXHJcbmV4cG9ydCBlbnVtIFNvcnRPcmRlciB7XHJcbiAgTm9uZSA9IDAsXHJcbiAgQXNjZW5kaW5nID0gMSxcclxuICBEZXNjZW5kaW5nID0gMlxyXG59XHJcbiJdfQ==
99
+ // #endregion Enums
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvZ3JpZC9tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQkFBa0I7QUFFbEI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtDQWF4QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFnQnBCLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7O09BS0c7SUFDSCxZQUNFLFFBQWdCLEVBQ2hCLGdCQUF3QixFQUN4QixhQUFxQjtRQTVCdkIscUJBQXFCO1FBRXJCOztXQUVHO1FBQ0kscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQzVCOztXQUVHO1FBQ0ksYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNyQjs7V0FFRztRQUNJLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBaUJ2QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztDQUdGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQVl2Qix3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7O09BSUc7SUFDSCxZQUFZLFFBQWdCLEVBQUUsWUFBb0I7UUFwQmxELHFCQUFxQjtRQUVyQjs7V0FFRztRQUNJLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ2hDOztXQUVHO1FBQ0ksYUFBUSxHQUFXLENBQUMsQ0FBQztRQVkxQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0NBR0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBWXpCLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7T0FJRztJQUNILFlBQVksVUFBbUIsRUFBRSxTQUFxQjtRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0NBR0Y7QUFFRCxxQkFBcUI7QUFFckIsZ0JBQWdCO0FBRWhCOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksU0FhWDtBQWJELFdBQVksU0FBUztJQUNuQjs7T0FFRztJQUNILHlDQUFRLENBQUE7SUFDUjs7T0FFRztJQUNILG1EQUFhLENBQUE7SUFDYjs7T0FFRztJQUNILHFEQUFjLENBQUE7QUFDaEIsQ0FBQyxFQWJXLFNBQVMsS0FBVCxTQUFTLFFBYXBCO0FBRUQsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gI3JlZ2lvbiBDbGFzc2VzXHJcblxyXG4vKipcclxuICogR3JpZFJlc3BvbnNlIGNsYXNzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgR3JpZFJlc3BvbnNlPFQ+IHtcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogRGF0YVxyXG4gICAqL1xyXG4gIHB1YmxpYyBEYXRhOiBUW107XHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIGRhdGEgcmVjb3Jkc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBUb3RhbFJvd0NvdW50OiBudW1iZXI7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG59XHJcblxyXG4vKipcclxuICogTW9kZWwgZm9yIHBhZ2VyIHNldHRpbmdzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUGFnZXJEYXRhIHtcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogQ3VycmVudCBpbmRleCBvZiB0aGUgcGFnZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBDdXJyZW50UGFnZUluZGV4ID0gMDtcclxuICAvKipcclxuICAgKiBOdW1iZXIgb2YgZWxlbWVudHMgb24gdGhlIHBhZ2VcclxuICAgKi9cclxuICBwdWJsaWMgUGFnZVNpemUgPSAyMDtcclxuICAvKipcclxuICAgKiBUb3RhbCBudW1iZXIgb2YgZGF0YSByZWNvcmRzXHJcbiAgICovXHJcbiAgcHVibGljIFRvdGFsUm93Q291bnQgPSAwO1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gUGFnZVNpemUgTnVtYmVyIG9mIGVsZW1lbnRzIHBlciBwYWdlXHJcbiAgICogQHBhcmFtIEN1cnJlbnRQYWdlSW5kZXggQ3VycmVudCBwYWdlXHJcbiAgICogQHBhcmFtIFRvdGFsUm93Q291bnQgVG90YWwgUm93cyBpbiBkYXRhYmFzZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgUGFnZVNpemU6IG51bWJlcixcclxuICAgIEN1cnJlbnRQYWdlSW5kZXg6IG51bWJlcixcclxuICAgIFRvdGFsUm93Q291bnQ6IG51bWJlclxyXG4gICkge1xyXG4gICAgdGhpcy5QYWdlU2l6ZSA9IFBhZ2VTaXplO1xyXG4gICAgdGhpcy5DdXJyZW50UGFnZUluZGV4ID0gQ3VycmVudFBhZ2VJbmRleDtcclxuICAgIHRoaXMuVG90YWxSb3dDb3VudCA9IFRvdGFsUm93Q291bnQ7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG59XHJcblxyXG4vKipcclxuICogTW9kZWwgaWYgcGFnZSBpcyB0byBiZSBjaGFuZ2VkXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUGFnZXJSZXF1ZXN0IHtcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kZXggb2YgdGhlIHBhZ2UgdG8gd2hpY2ggeW91IHdhbnQgdG8gc3dpdGNoXHJcbiAgICovXHJcbiAgcHVibGljIE5ld1BhZ2VJbmRleDogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBOdW1iZXIgb2YgZWxlbWVudHMgb24gdGhlIHBhZ2VcclxuICAgKi9cclxuICBwdWJsaWMgUGFnZVNpemU6IG51bWJlciA9IDA7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBQYWdlU2l6ZSBQYWdlIHNpemUgLyBudW1iZXIgb2YgZWxlbWVudHMgcGVyIHBhZ2VcclxuICAgKiBAcGFyYW0gTmV3UGFnZUluZGV4IE5ldyBwYWdlIGluZGV4XHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoUGFnZVNpemU6IG51bWJlciwgTmV3UGFnZUluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuUGFnZVNpemUgPSBQYWdlU2l6ZTtcclxuICAgIHRoaXMuTmV3UGFnZUluZGV4ID0gTmV3UGFnZUluZGV4O1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxufVxyXG5cclxuLyoqXHJcbiAqIE1vZGVsIGZvciBzb3J0aW5nXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU29ydERlc2NyaXB0b3Ige1xyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvKipcclxuICAgKiBEZXNjcmlwdGlvbiAvIEtleSBmb3Igc29ydGluZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyBTb3J0Q29sdW1uOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogU29ydCBvcmRlclxyXG4gICAqL1xyXG4gIHB1YmxpYyBTb3J0T3JkZXI6IFNvcnRPcmRlcjtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yXHJcbiAgICogQHBhcmFtIHNvcnRjb2x1bW4gQ29sdW1uIGJ5IHdoaWNoIHRvIHNvcnRcclxuICAgKiBAcGFyYW0gc29ydG9yZGVyIFR5cGUgb2Ygc29ydGluZ1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHNvcnRjb2x1bW4/OiBzdHJpbmcsIHNvcnRvcmRlcj86IFNvcnRPcmRlcikge1xyXG4gICAgdGhpcy5Tb3J0Q29sdW1uID0gc29ydGNvbHVtbjtcclxuICAgIHRoaXMuU29ydE9yZGVyID0gc29ydG9yZGVyO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxufVxyXG5cclxuLy8gI2VuZHJlZ2lvbiBDbGFzc2VzXHJcblxyXG4vLyAjcmVnaW9uIEVudW1zXHJcblxyXG4vKipcclxuICogRW51bSBmb3Igc29ydGluZ1xyXG4gKi9cclxuZXhwb3J0IGVudW0gU29ydE9yZGVyIHtcclxuICAvKipcclxuICAgKiBObyBzb3J0aW5nXHJcbiAgICovXHJcbiAgTm9uZSA9IDAsXHJcbiAgLyoqXHJcbiAgICogQXNjZW5kaW5nXHJcbiAgICovXHJcbiAgQXNjZW5kaW5nID0gMSxcclxuICAvKipcclxuICAgKiBEZXNjZW5kaW5nXHJcbiAgICovXHJcbiAgRGVzY2VuZGluZyA9IDIsXHJcbn1cclxuXHJcbi8vICNlbmRyZWdpb24gRW51bXNcclxuIl19
@@ -3,67 +3,65 @@ import { SACLOCALISATION_SERVICE, SacDefaultLocalisationService, } from '../../s
3
3
  import { SACVALIDATIONKEY_SERVICE, SacDefaultValidationKeyService, } from '../../services/sac-validationkey.service';
4
4
  import { PagerData, PagerRequest } from './model';
5
5
  /**
6
- * Basiskomponente für Paging
6
+ * Basic component for paging
7
7
  */
8
8
  export class SacPagingCommon {
9
9
  // #endregion Properties
10
10
  // #region Constructors
11
11
  /**
12
- * Konstruktor
13
- * Inject des Formulars
12
+ * Constructor
14
13
  * @parent SacFormCommon
15
14
  * @injector Injector
16
15
  */
17
16
  constructor(injector) {
18
17
  /**
19
- * Total Anzahl Rows
18
+ * Total number of rows
20
19
  */
21
20
  this.totalRowCount = 0;
22
21
  /**
23
- * Auswahl der Seitengrösse deaktivieren
22
+ * Deactivate page size selection
24
23
  */
25
24
  this.pagesizedisabled = false;
26
25
  /**
27
- * Text in Page für Anzahl Seitenelemente pro Seite
28
- * Folgende Interpolation Texte sind vorhanden:
29
- * {{PAGESIZE}}: Anzahl Elemente pro Seite
26
+ * Text in Page for number of page elements per page. The following interpolation texts are available:
27
+ *
28
+ * {{PAGESIZE}}: Number of elements per page
30
29
  */
31
30
  this.pagesizes = '20|50|100';
32
31
  /**
33
- * Text in Page für Anzahl Seitenelemente pro Seite
34
- * Folgende Interpolation Texte sind vorhanden:
35
- * {{PAGESIZE}}: Anzahl Elemente pro Seite
32
+ * Text in Page for number of page elements per page. The following interpolation texts are available:
33
+ *
34
+ * {{PAGESIZE}}: Number of elements per page
36
35
  */
37
36
  this.pagesizetext = '';
38
37
  /**
39
- * Text in Pager für 'Seite x von y'.
40
- * Folgende Interpolation Texte sind vorhanden:
41
- * {{CURRENTPAGE}}: Aktuelle Seite
42
- * {{TOTALPAGES}}: Anzahl Seiten
38
+ * Text in pager for 'Page x of y'. The following interpolation texts are available:
39
+ * {{CURRENTPAGE}}: Current page
40
+ * {{TOTALPAGES}}: Number of pages
43
41
  */
44
42
  this.pagingtext = '';
45
43
  /**
46
- * Event wenn im Grid die Seite geändert wird. Als Parameter wird der neue PageIndex mitgegeben.
44
+ * Event when the page is changed in the grid. The new PageIndex is given as a parameter.
47
45
  */
48
46
  this.paging = new EventEmitter();
49
47
  /**
50
- * Aktiver Seitenindex
48
+ * Active page index
51
49
  */
52
50
  this.activePageIndex = 0;
53
51
  /**
54
- * Erster Seitenindex
52
+ * First page index
55
53
  */
56
54
  this.firstPageIndex = 0;
57
55
  /**
58
- * Letzter Seitenindex
56
+ * Last page index
59
57
  */
60
58
  this.lastPageIndex = 0;
61
59
  /**
62
- * Anzahl Elemente pro Seite
60
+ * Number of elements per page
63
61
  */
64
62
  this.pageSize = 20;
65
63
  /**
66
- * Item für jedes Paging Element (Seitenzahl)
64
+ * Item for each paging element (page number)
67
65
  */
68
66
  this.paginators = [];
69
67
  this.validationKeyService = injector.get(SACVALIDATIONKEY_SERVICE, new SacDefaultValidationKeyService());
@@ -75,7 +73,7 @@ export class SacPagingCommon {
75
73
  // #endregion Constructors
76
74
  // #region Public Getters And Setters
77
75
  /**
78
- * Property für Pager Data
76
+ * Property for Pager Data
79
77
  */
80
78
  set pagerdata(p) {
81
79
  if (p != null) {
@@ -86,13 +84,13 @@ export class SacPagingCommon {
86
84
  this.createPager();
87
85
  }
88
86
  /**
89
- * Property mit Text für Total Einträge in Seite
87
+ * Property with text for total entries in page
90
88
  */
91
89
  get PageSizeText() {
92
90
  return this.lngResourceService.GetString(this.pagesizetext);
93
91
  }
94
92
  /**
95
- * Text mit Aktueller Seite und Total Seiten
93
+ * Text with current page and total pages
96
94
  */
97
95
  get PagingText() {
98
96
  return this.lngResourceService.GetString(this.pagingtext, {
@@ -101,7 +99,7 @@ export class SacPagingCommon {
101
99
  });
102
100
  }
103
101
  /**
104
- * Gibt die Page Sizes als Number Array zurück
102
+ * Returns the page sizes as a number array
105
103
  */
106
104
  get getPageSizes() {
107
105
  return this.pagesizes.split('|').map((itm) => Number(itm));
@@ -109,8 +107,8 @@ export class SacPagingCommon {
109
107
  // #endregion Public Getters And Setters
110
108
  // #region Public Methods
111
109
  /**
112
- * Andert die Seite auf den neuen Index
113
- * @param newPageIndex Seiten Index. Dies entspricht der Seitenzahl - 1.
110
+ * Changes the page to the new index
111
+ * @param newPageIndex Page index. This corresponds to the page number - 1.
114
112
  */
115
113
  changePage(newPageIndex) {
116
114
  if (this.activePageIndex !== newPageIndex) {
@@ -118,15 +116,15 @@ export class SacPagingCommon {
118
116
  }
119
117
  }
120
118
  /**
121
- * Ändert die Seitengrösse im Pager
122
- * @param newSize Neue Anzahl Elemente pro Seite
119
+ * Changes the page size in the pager
120
+ * @param newSize New number of elements per page
123
121
  */
124
122
  changePageSize(newSize) {
125
123
  const pagerData = new PagerRequest(newSize, this.activePageIndex);
126
124
  this.paging.emit(pagerData);
127
125
  }
128
126
  /**
129
- * Paging auf 1. Seite
127
+ *Switch to 1st page
130
128
  */
131
129
  firstPage() {
132
130
  if (this.activePageIndex !== this.firstPageIndex) {
@@ -134,19 +132,19 @@ export class SacPagingCommon {
134
132
  }
135
133
  }
136
134
  /**
137
- * Gibt die aktuelle Seitenzahl zurück
135
+ * Returns the current page number
138
136
  */
139
137
  getCurrentPageNumber() {
140
138
  return this.activePageIndex + 1;
141
139
  }
142
140
  /**
143
- * Gibt die totale Anzahl Seiten zurück
141
+ * Returns the total number of pages
144
142
  */
145
143
  getTotalPageNumber() {
146
144
  return this.lastPageIndex + 1;
147
145
  }
148
146
  /**
149
- * Paging auf letzter Seite
147
+ * Paging on last page
150
148
  */
151
149
  lastPage() {
152
150
  if (this.activePageIndex !== this.lastPageIndex) {
@@ -154,7 +152,7 @@ export class SacPagingCommon {
154
152
  }
155
153
  }
156
154
  /**
157
- * Paging auf nächste Seite
155
+ * Paging to next page
158
156
  */
159
157
  nextPage() {
160
158
  if (this.activePageIndex !== this.lastPageIndex) {
@@ -162,7 +160,7 @@ export class SacPagingCommon {
162
160
  }
163
161
  }
164
162
  /**
165
- * Paging eine Seite zurück
163
+ * Paging one page back
166
164
  */
167
165
  previousPage() {
168
166
  if (this.activePageIndex !== this.firstPageIndex) {
@@ -172,7 +170,7 @@ export class SacPagingCommon {
172
170
  // #endregion Public Methods
173
171
  // #region Protected Methods
174
172
  /**
175
- * Erzeugt die Pager Daten
173
+ * Generates the pager data
176
174
  */
177
175
  createPager() {
178
176
  this.paginators = [];
@@ -199,8 +197,8 @@ export class SacPagingCommon {
199
197
  }
200
198
  }
201
199
  /**
202
- * Gibt den letzten Seitenindex zurück.
203
- * @param totalPageCount Total Anzahl Seiten
200
+ * Returns the last page index.
201
+ * @param totalPageCount Total number of pages
204
202
  */
205
203
  getEndPageIndex(totalPageCount) {
206
204
  let endingPageToDisplay = this.activePageIndex + 2;
@@ -214,8 +212,8 @@ export class SacPagingCommon {
214
212
  return endingPageToDisplay;
215
213
  }
216
214
  /**
217
- * Gibt den Start Index zurück
218
- * @param totalPageCount Total Anzahl Seiten
215
+ * Returns the start index
216
+ * @param totalPageCount Total number of pages
219
217
  */
220
218
  getStartPageIndex(totalPageCount) {
221
219
  let startingPageToDisplay = 0;
@@ -229,7 +227,7 @@ export class SacPagingCommon {
229
227
  return startingPageToDisplay;
230
228
  }
231
229
  /**
232
- * Methode löst den Event aus, dass ein Paging stattgefunden hat
230
+ * method triggers the event that paging has taken place
233
231
  */
234
232
  paged(newPageIndex) {
235
233
  const pagerData = new PagerRequest(this.pageSize, newPageIndex);
@@ -251,4 +249,4 @@ SacPagingCommon.propDecorators = {
251
249
  paging: [{ type: Output }],
252
250
  pagerdata: [{ type: Input }]
253
251
  };
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5nLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2dyaWQvcGFnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsNkJBQTZCLEdBQzlCLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qiw4QkFBOEIsR0FDL0IsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVsRDs7R0FFRztBQUVILE1BQU0sT0FBZ0IsZUFBZTtJQTRFbkMsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7Ozs7T0FLRztJQUNILFlBQVksUUFBa0I7UUExRTlCOztXQUVHO1FBQ08sa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFPcEM7O1dBRUc7UUFFSSxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDekM7Ozs7V0FJRztRQUVJLGNBQVMsR0FBVyxXQUFXLENBQUM7UUFDdkM7Ozs7V0FJRztRQUVJLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQ2pDOzs7OztXQUtHO1FBRUksZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUMvQjs7V0FFRztRQUVJLFdBQU0sR0FBK0IsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFFN0U7O1dBRUc7UUFDSSxvQkFBZSxHQUFXLENBQUMsQ0FBQztRQUNuQzs7V0FFRztRQUNJLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQ2xDOztXQUVHO1FBQ0ksa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFD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QzdCLHFCQUFxQixHQUFHLENBQUMsQ0FBQztTQUMzQjtRQUNELE9BQU8scUJBQXFCLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ08sS0FBSyxDQUFDLFlBQW9CO1FBQ2xDLE1BQU0sU0FBUyxHQUFpQixJQUFJLFlBQVksQ0FDOUMsSUFBSSxDQUFDLFFBQVEsRUFDYixZQUFZLENBQ2IsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7OztZQTVTRixTQUFTOzs7WUFwQlIsUUFBUTs7O21CQXlDUCxLQUFLOytCQUtMLEtBQUs7d0JBT0wsS0FBSzsyQkFPTCxLQUFLO3lCQVFMLEtBQUs7cUJBS0wsTUFBTTt3QkF5RE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lTYWNMb2NhbGlzYXRpb25TZXJ2aWNlJztcclxuaW1wb3J0IHsgSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JU2FjVmFsaWRhdGlvbktleVNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLFxyXG4gIFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlLFxyXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NhYy1sb2NhbGlzYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLFxyXG4gIFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSxcclxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zYWMtdmFsaWRhdGlvbmtleS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFnZXJEYXRhLCBQYWdlclJlcXVlc3QgfSBmcm9tICcuL21vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBCYXNpc2tvbXBvbmVudGUgZsO8ciBQYWdpbmdcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjUGFnaW5nQ29tbW9uIHtcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogU2VydmljZSB0byByZWNlaXZlIHN0YW5kYXJkIHZhbGlkYXRpb24gbWVzc2FnZSBrZXlzIGFuZCB0ZXh0c1xyXG4gICAqL1xyXG4gIHByaXZhdGUgdmFsaWRhdGlvbktleVNlcnZpY2U6IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VydmljZSBmw7xyIEVycm9yIExvY2FsaXNhdGlvblxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBsbmdSZXNvdXJjZVNlcnZpY2U6IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlO1xyXG4gIC8qKlxyXG4gICAqIFRvdGFsIEFuemFobCBSb3dzXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHRvdGFsUm93Q291bnQ6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIE5hbWUgZGVzIEdyaWRzLiBXaXJkIGbDvHIgSUQgdW5kIE5hbWUgQmV6ZWljaG51bmdlbiB2ZXJ3ZW5kZXRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQXVzd2FobCBkZXIgU2VpdGVuZ3LDtnNzZSBkZWFrdGl2aWVyZW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwYWdlc2l6ZWRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogVGV4dCBpbiBQYWdlIGbDvHIgQW56YWhsIFNlaXRlbmVsZW1lbnRlIHBybyBTZWl0ZVxyXG4gICAqIEZvbGdlbmRlIEludGVycG9sYXRpb24gVGV4dGUgc2luZCB2b3JoYW5kZW46XHJcbiAgICoge3tQQUdFU0laRX19OiBBbnphaGwgRWxlbWVudGUgcHJvIFNlaXRlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFnZXNpemVzOiBzdHJpbmcgPSAnMjB8NTB8MTAwJztcclxuICAvKipcclxuICAgKiBUZXh0IGluIFBhZ2UgZsO8ciBBbnphaGwgU2VpdGVuZWxlbWVudGUgcHJvIFNlaXRlXHJcbiAgICogRm9sZ2VuZGUgSW50ZXJwb2xhdGlvbiBUZXh0ZSBzaW5kIHZvcmhhbmRlbjpcclxuICAgKiB7e1BBR0VTSVpFfX06IEFuemFobCBFbGVtZW50ZSBwcm8gU2VpdGVcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwYWdlc2l6ZXRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIC8qKlxyXG4gICAqIFRleHQgaW4gUGFnZXIgZsO8ciAnU2VpdGUgeCB2b24geScuXHJcbiAgICogRm9sZ2VuZGUgSW50ZXJwb2xhdGlvbiBUZXh0ZSBzaW5kIHZvcmhhbmRlbjpcclxuICAgKiB7e0NVUlJFTlRQQUdFfX06IEFrdHVlbGxlIFNlaXRlXHJcbiAgICoge3tUT1RBTFBBR0VTfX06IEFuemFobCBTZWl0ZW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwYWdpbmd0ZXh0OiBzdHJpbmcgPSAnJztcclxuICAvKipcclxuICAgKiBFdmVudCB3ZW5uIGltIEdyaWQgZGllIFNlaXRlIGdlw6RuZGVydCB3aXJkLiBBbHMgUGFyYW1ldGVyIHdpcmQgZGVyIG5ldWUgUGFnZUluZGV4IG1pdGdlZ2ViZW4uXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHBhZ2luZzogRXZlbnRFbWl0dGVyPFBhZ2VyUmVxdWVzdD4gPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2VyUmVxdWVzdD4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQWt0aXZlciBTZWl0ZW5pbmRleFxyXG4gICAqL1xyXG4gIHB1YmxpYyBhY3RpdmVQYWdlSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgLyoqXHJcbiAgICogRXJzdGVyIFNlaXRlbmluZGV4XHJcbiAgICovXHJcbiAgcHVibGljIGZpcnN0UGFnZUluZGV4OiBudW1iZXIgPSAwO1xyXG4gIC8qKlxyXG4gICAqIExldHp0ZXIgU2VpdGVuaW5kZXhcclxuICAgKi9cclxuICBwdWJsaWMgbGFzdFBhZ2VJbmRleDogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBBbnphaGwgRWxlbWVudGUgcHJvIFNlaXRlXHJcbiAgICovXHJcbiAgcHVibGljIHBhZ2VTaXplOiBudW1iZXIgPSAyMDtcclxuICAvKipcclxuICAgKiBJdGVtIGbDvHIgamVkZXMgUGFnaW5nIEVsZW1lbnQgKFNlaXRlbnphaGwpXHJcbiAgICovXHJcbiAgcHVibGljIHBhZ2luYXRvcnM6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogSW5qZWN0IGRlcyBGb3JtdWxhcnNcclxuICAgKiBAcGFyZW50IFNhY0Zvcm1Db21tb25cclxuICAgKiBAaW5qZWN0b3IgSW5qZWN0b3JcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXHJcbiAgICAgIFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSxcclxuICAgICAgbmV3IFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSgpXHJcbiAgICApO1xyXG5cclxuICAgIC8vIFNldCBEZWZhdWx0IFZhbHVlcyBmcm9tIEluamVjdG9yXHJcbiAgICB0aGlzLnBhZ2VzaXpldGV4dCA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuUGFnaW5nRW50cmllcztcclxuICAgIHRoaXMucGFnaW5ndGV4dCA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuUGFnaW5nUGFnZU9mO1xyXG5cclxuICAgIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxyXG4gICAgICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcclxuICAgICAgbmV3IFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlKHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvKipcclxuICAgKiBQcm9wZXJ0eSBmw7xyIFBhZ2VyIERhdGFcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgcGFnZXJkYXRhKHA6IFBhZ2VyRGF0YSkge1xyXG4gICAgaWYgKHAgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnRvdGFsUm93Q291bnQgPSBwLlRvdGFsUm93Q291bnQ7XHJcbiAgICAgIHRoaXMuYWN0aXZlUGFnZUluZGV4ID0gcC5DdXJyZW50UGFnZUluZGV4O1xyXG4gICAgICB0aGlzLnBhZ2VTaXplID0gcC5QYWdlU2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNyZWF0ZVBhZ2VyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcm9wZXJ0eSBtaXQgVGV4dCBmw7xyIFRvdGFsIEVpbnRyw6RnZSBpbiBTZWl0ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgUGFnZVNpemVUZXh0KCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKHRoaXMucGFnZXNpemV0ZXh0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRleHQgbWl0IEFrdHVlbGxlciBTZWl0ZSB1bmQgVG90YWwgU2VpdGVuXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBQYWdpbmdUZXh0KCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKHRoaXMucGFnaW5ndGV4dCwge1xyXG4gICAgICBDVVJSRU5UUEFHRTogdGhpcy5nZXRDdXJyZW50UGFnZU51bWJlcigpLFxyXG4gICAgICBUT1RBTFBBR0VTOiB0aGlzLmdldFRvdGFsUGFnZU51bWJlcigpLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRpZSBQYWdlIFNpemVzIGFscyBOdW1iZXIgQXJyYXkgenVyw7xja1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgZ2V0UGFnZVNpemVzKCk6IG51bWJlcltdIHtcclxuICAgIHJldHVybiB0aGlzLnBhZ2VzaXplcy5zcGxpdCgnfCcpLm1hcCgoaXRtKSA9PiBOdW1iZXIoaXRtKSk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogQW5kZXJ0IGRpZSBTZWl0ZSBhdWYgZGVuIG5ldWVuIEluZGV4XHJcbiAgICogQHBhcmFtIG5ld1BhZ2VJbmRleCBTZWl0ZW4gSW5kZXguIERpZXMgZW50c3ByaWNodCBkZXIgU2VpdGVuemFobCAtIDEuXHJcbiAgICovXHJcbiAgcHVibGljIGNoYW5nZVBhZ2UobmV3UGFnZUluZGV4OiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVBhZ2VJbmRleCAhPT0gbmV3UGFnZUluZGV4KSB7XHJcbiAgICAgIHRoaXMucGFnZWQobmV3UGFnZUluZGV4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIMOEbmRlcnQgZGllIFNlaXRlbmdyw7Zzc2UgaW0gUGFnZXJcclxuICAgKiBAcGFyYW0gbmV3U2l6ZSBOZXVlIEFuemFobCBFbGVtZW50ZSBwcm8gU2VpdGVcclxuICAgKi9cclxuICBwdWJsaWMgY2hhbmdlUGFnZVNpemUobmV3U2l6ZTogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBwYWdlckRhdGE6IFBhZ2VyUmVxdWVzdCA9IG5ldyBQYWdlclJlcXVlc3QoXHJcbiAgICAgIG5ld1NpemUsXHJcbiAgICAgIHRoaXMuYWN0aXZlUGFnZUluZGV4XHJcbiAgICApO1xyXG4gICAgdGhpcy5wYWdpbmcuZW1pdChwYWdlckRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFnaW5nIGF1ZiAxLiBTZWl0ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBmaXJzdFBhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggIT09IHRoaXMuZmlyc3RQYWdlSW5kZXgpIHtcclxuICAgICAgdGhpcy5wYWdlZCgwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpYnQgZGllIGFrdHVlbGxlIFNlaXRlbnphaGwgenVyw7xja1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRDdXJyZW50UGFnZU51bWJlcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlUGFnZUluZGV4ICsgMTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpYnQgZGllIHRvdGFsZSBBbnphaGwgU2VpdGVuIHp1csO8Y2tcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0VG90YWxQYWdlTnVtYmVyKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5sYXN0UGFnZUluZGV4ICsgMTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhZ2luZyBhdWYgbGV0enRlciBTZWl0ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBsYXN0UGFnZSgpIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVBhZ2VJbmRleCAhPT0gdGhpcy5sYXN0UGFnZUluZGV4KSB7XHJcbiAgICAgIHRoaXMucGFnZWQodGhpcy5sYXN0UGFnZUluZGV4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhZ2luZyBhdWYgbsOkY2hzdGUgU2VpdGVcclxuICAgKi9cclxuICBwdWJsaWMgbmV4dFBhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggIT09IHRoaXMubGFzdFBhZ2VJbmRleCkge1xyXG4gICAgICB0aGlzLnBhZ2VkKHRoaXMuYWN0aXZlUGFnZUluZGV4ICsgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQYWdpbmcgZWluZSBTZWl0ZSB6dXLDvGNrXHJcbiAgICovXHJcbiAgcHVibGljIHByZXZpb3VzUGFnZSgpIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVBhZ2VJbmRleCAhPT0gdGhpcy5maXJzdFBhZ2VJbmRleCkge1xyXG4gICAgICB0aGlzLnBhZ2VkKHRoaXMuYWN0aXZlUGFnZUluZGV4IC0gMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogRXJ6ZXVndCBkaWUgUGFnZXIgRGF0ZW5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgY3JlYXRlUGFnZXIoKSB7XHJcbiAgICB0aGlzLnBhZ2luYXRvcnMgPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy50b3RhbFJvd0NvdW50ID4gMCkge1xyXG4gICAgICBsZXQgdG90YWxQYWdlQ291bnQgPSBNYXRoLmNlaWwodGhpcy50b3RhbFJvd0NvdW50IC8gdGhpcy5wYWdlU2l6ZSk7XHJcblxyXG4gICAgICAvLyBQYWdlQ291bnQgYXVmIDEgc3RlbGxlbiwgd2VubiBrZWluZSBSZWNvcmRzIHZvcmhhbmRlbiBzaW5kLlxyXG4gICAgICBpZiAodG90YWxQYWdlQ291bnQgPT09IDApIHtcclxuICAgICAgICB0b3RhbFBhZ2VDb3VudCA9IDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFBhZ2VJbmRleCBiZXJlY2huZW5cclxuICAgICAgdGhpcy5sYXN0UGFnZUluZGV4ID0gdG90YWxQYWdlQ291bnQgLSAxO1xyXG4gICAgICBjb25zdCBzdGFydFBhZ2VJbmRleCA9IHRoaXMuZ2V0U3RhcnRQYWdlSW5kZXgodG90YWxQYWdlQ291bnQpO1xyXG4gICAgICBjb25zdCBlbmRQYWdlSW5kZXggPSB0aGlzLmdldEVuZFBhZ2VJbmRleCh0b3RhbFBhZ2VDb3VudCk7XHJcblxyXG4gICAgICAvLyBJbmRleCBGaXggd2VubiBBa3RpdmUgU2VpdGUgZ3LDtnNzZXIgYWxzIGxldHplIFNlaXRlXHJcbiAgICAgIGlmICh0aGlzLmFjdGl2ZVBhZ2VJbmRleCA+IHRoaXMubGFzdFBhZ2VJbmRleCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlUGFnZUluZGV4ID0gdGhpcy5sYXN0UGFnZUluZGV4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3IgKGxldCBpID0gc3RhcnRQYWdlSW5kZXg7IGkgPD0gZW5kUGFnZUluZGV4OyBpKyspIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRvcnMucHVzaChpKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wYWdpbmF0b3JzLnB1c2goMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRlbiBsZXR6dGVuIFNlaXRlbmluZGV4IHp1csO8Y2suXHJcbiAgICogQHBhcmFtIHRvdGFsUGFnZUNvdW50IFRvdGFsIEFuemFobCBTZWl0ZW5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZ2V0RW5kUGFnZUluZGV4KHRvdGFsUGFnZUNvdW50OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgbGV0IGVuZGluZ1BhZ2VUb0Rpc3BsYXkgPSB0aGlzLmFjdGl2ZVBhZ2VJbmRleCArIDI7XHJcbiAgICBjb25zdCBtYXhFbmRpbmdQYWdlSW5kZXggPSA0ID4gdG90YWxQYWdlQ291bnQgLSAxID8gdG90YWxQYWdlQ291bnQgLSAxIDogNDtcclxuXHJcbiAgICBpZiAoZW5kaW5nUGFnZVRvRGlzcGxheSA+IHRvdGFsUGFnZUNvdW50IC0gMSkge1xyXG4gICAgICBlbmRpbmdQYWdlVG9EaXNwbGF5ID0gdG90YWxQYWdlQ291bnQgLSAxO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVBhZ2VJbmRleCA8IDIpIHtcclxuICAgICAgZW5kaW5nUGFnZVRvRGlzcGxheSA9IG1heEVuZGluZ1BhZ2VJbmRleDtcclxuICAgIH1cclxuICAgIHJldHVybiBlbmRpbmdQYWdlVG9EaXNwbGF5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBkZW4gU3RhcnQgSW5kZXggenVyw7xja1xyXG4gICAqIEBwYXJhbSB0b3RhbFBhZ2VDb3VudCBUb3RhbCBBbnphaGwgU2VpdGVuXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdldFN0YXJ0UGFnZUluZGV4KHRvdGFsUGFnZUNvdW50OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgbGV0IHN0YXJ0aW5nUGFnZVRvRGlzcGxheTogbnVtYmVyID0gMDtcclxuICAgIHN0YXJ0aW5nUGFnZVRvRGlzcGxheSA9IHRoaXMuYWN0aXZlUGFnZUluZGV4IC0gMjtcclxuXHJcbiAgICBpZiAodG90YWxQYWdlQ291bnQgLSB0aGlzLmFjdGl2ZVBhZ2VJbmRleCAtIDEgPCAyKSB7XHJcbiAgICAgIHN0YXJ0aW5nUGFnZVRvRGlzcGxheSA9IHRvdGFsUGFnZUNvdW50IC0gNTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RhcnRpbmdQYWdlVG9EaXNwbGF5IDwgMCkge1xyXG4gICAgICBzdGFydGluZ1BhZ2VUb0Rpc3BsYXkgPSAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0YXJ0aW5nUGFnZVRvRGlzcGxheTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgbMO2c3QgZGVuIEV2ZW50IGF1cywgZGFzcyBlaW4gUGFnaW5nIHN0YXR0Z2VmdW5kZW4gaGF0XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHBhZ2VkKG5ld1BhZ2VJbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBwYWdlckRhdGE6IFBhZ2VyUmVxdWVzdCA9IG5ldyBQYWdlclJlcXVlc3QoXHJcbiAgICAgIHRoaXMucGFnZVNpemUsXHJcbiAgICAgIG5ld1BhZ2VJbmRleFxyXG4gICAgKTtcclxuICAgIHRoaXMucGFnaW5nLmVtaXQocGFnZXJEYXRhKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcclxufVxyXG4iXX0=
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5nLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2dyaWQvcGFnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsNkJBQTZCLEdBQzlCLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qiw4QkFBOEIsR0FDL0IsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVsRDs7R0FFRztBQUVILE1BQU0sT0FBZ0IsZUFBZTtJQTJFbkMsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFBWSxRQUFrQjtRQXhFOUI7O1dBRUc7UUFDTyxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQU9wQzs7V0FFRztRQUVJLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUN6Qzs7OztXQUlHO1FBRUksY0FBUyxHQUFXLFdBQVcsQ0FBQztRQUN2Qzs7OztXQUlHO1FBRUksaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDakM7Ozs7V0FJRztRQUVJLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDL0I7O1dBRUc7UUFFSSxXQUFNLEdBQStCLElBQUksWUFBWSxFQUFnQixDQUFDO1FBRTdFOztXQUVHO1FBQ0ksb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFDbkM7O1dBRUc7UUFDSSxtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUNsQzs7V0FFRztRQUNJLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBQ2pD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QixxQkFBcUIsR0FBRyxDQUFDLENBQUM7U0FDM0I7UUFDRCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNPLEtBQUssQ0FBQyxZQUFvQjtRQUNsQyxNQUFNLFNBQVMsR0FBaUIsSUFBSSxZQUFZLENBQzlDLElBQUksQ0FBQyxRQUFRLEVBQ2IsWUFBWSxDQUNiLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixDQUFDOzs7WUExU0YsU0FBUzs7O1lBcEJSLFFBQVE7OzttQkF5Q1AsS0FBSzsrQkFLTCxLQUFLO3dCQU9MLEtBQUs7MkJBT0wsS0FBSzt5QkFPTCxLQUFLO3FCQUtMLE1BQU07d0JBd0ROLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XHJcbmltcG9ydCB7IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcclxuICBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSxcclxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zYWMtbG9jYWxpc2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSxcclxuICBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FjLXZhbGlkYXRpb25rZXkuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhZ2VyRGF0YSwgUGFnZXJSZXF1ZXN0IH0gZnJvbSAnLi9tb2RlbCc7XHJcblxyXG4vKipcclxuICogQmFzaWMgY29tcG9uZW50IGZvciBwYWdpbmdcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjUGFnaW5nQ29tbW9uIHtcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogU2VydmljZSB0byByZWNlaXZlIHN0YW5kYXJkIHZhbGlkYXRpb24gbWVzc2FnZSBrZXlzIGFuZCB0ZXh0c1xyXG4gICAqL1xyXG4gIHByaXZhdGUgdmFsaWRhdGlvbktleVNlcnZpY2U6IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VydmljZSBmb3IgZXJyb3IgbG9jYWxpemF0aW9uXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGxuZ1Jlc291cmNlU2VydmljZTogSVNhY0xvY2FsaXNhdGlvblNlcnZpY2U7XHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIHJvd3NcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgdG90YWxSb3dDb3VudDogbnVtYmVyID0gMDtcclxuXHJcbiAgLyoqXHJcbiAgICogTmFtZSBvZiB0aGUgZ3JpZC4gVXNlZCBmb3IgSUQgYW5kIG5hbWUgZGVzaWduYXRpb25zXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIERlYWN0aXZhdGUgcGFnZSBzaXplIHNlbGVjdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBhZ2VzaXplZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBUZXh0IGluIFBhZ2UgZm9yIG51bWJlciBvZiBwYWdlIGVsZW1lbnRzIHBlciBwYWdlLiBUaGUgZm9sbG93aW5nIGludGVycG9sYXRpb24gdGV4dHMgYXJlIGF2YWlsYWJsZTpcclxuICAgKlxyXG4gICAqIHt7UEFHRVNJWkV9fTogTnVtYmVyIG9mIGVsZW1lbnRzIHBlciBwYWdlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFnZXNpemVzOiBzdHJpbmcgPSAnMjB8NTB8MTAwJztcclxuICAvKipcclxuICAgKiBUZXh0IGluIFBhZ2UgZm9yIG51bWJlciBvZiBwYWdlIGVsZW1lbnRzIHBlciBwYWdlLiBUaGUgZm9sbG93aW5nIGludGVycG9sYXRpb24gdGV4dHMgYXJlIGF2YWlsYWJsZTpcclxuICAgKlxyXG4gICAqIHt7UEFHRVNJWkV9fTogTnVtYmVyIG9mIGVsZW1lbnRzIHBlciBwYWdlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFnZXNpemV0ZXh0OiBzdHJpbmcgPSAnJztcclxuICAvKipcclxuICAgKiBUZXh0IGluIHBhZ2VyIGZvciAnUGFnZSB4IG9mIHknLiBUaGUgZm9sbG93aW5nIGludGVycG9sYXRpb24gdGV4dHMgYXJlIGF2YWlsYWJsZTpcclxuICAgKiB7e0NVUlJFTlRQQUdFfX06IEN1cnJlbnQgcGFnZVxyXG4gICAqIHt7VE9UQUxQQUdFU319OiBOdW1iZXIgb2YgcGFnZXNcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwYWdpbmd0ZXh0OiBzdHJpbmcgPSAnJztcclxuICAvKipcclxuICAgKiBFdmVudCB3aGVuIHRoZSBwYWdlIGlzIGNoYW5nZWQgaW4gdGhlIGdyaWQuIFRoZSBuZXcgUGFnZUluZGV4IGlzIGdpdmVuIGFzIGEgcGFyYW1ldGVyLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBwYWdpbmc6IEV2ZW50RW1pdHRlcjxQYWdlclJlcXVlc3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlclJlcXVlc3Q+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdGl2ZSBwYWdlIGluZGV4XHJcbiAgICovXHJcbiAgcHVibGljIGFjdGl2ZVBhZ2VJbmRleDogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBGaXJzdCBwYWdlIGluZGV4XHJcbiAgICovXHJcbiAgcHVibGljIGZpcnN0UGFnZUluZGV4OiBudW1iZXIgPSAwO1xyXG4gIC8qKlxyXG4gICAqIExhc3QgcGFnZSBpbmRleFxyXG4gICAqL1xyXG4gIHB1YmxpYyBsYXN0UGFnZUluZGV4OiBudW1iZXIgPSAwO1xyXG4gIC8qKlxyXG4gICAqIE51bWJlciBvZiBlbGVtZW50cyBwZXIgcGFnZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyID0gMjA7XHJcbiAgLyoqXHJcbiAgICogSXRlbSBmb3IgZWFjaCBwYWdpbmcgZWxlbWVudCAocGFnZSBudW1iZXIpXHJcbiAgICovXHJcbiAgcHVibGljIHBhZ2luYXRvcnM6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yXHJcbiAgICogQHBhcmVudCBTYWNGb3JtQ29tbW9uXHJcbiAgICogQGluamVjdG9yIEluamVjdG9yXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxyXG4gICAgICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXHJcbiAgICAgIG5ldyBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UoKVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBTZXQgRGVmYXVsdCBWYWx1ZXMgZnJvbSBJbmplY3RvclxyXG4gICAgdGhpcy5wYWdlc2l6ZXRleHQgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlBhZ2luZ0VudHJpZXM7XHJcbiAgICB0aGlzLnBhZ2luZ3RleHQgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlBhZ2luZ1BhZ2VPZjtcclxuXHJcbiAgICB0aGlzLmxuZ1Jlc291cmNlU2VydmljZSA9IGluamVjdG9yLmdldChcclxuICAgICAgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsXHJcbiAgICAgIG5ldyBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSh0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLyoqXHJcbiAgICogUHJvcGVydHkgZm9yIFBhZ2VyIERhdGFcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgcGFnZXJkYXRhKHA6IFBhZ2VyRGF0YSkge1xyXG4gICAgaWYgKHAgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnRvdGFsUm93Q291bnQgPSBwLlRvdGFsUm93Q291bnQ7XHJcbiAgICAgIHRoaXMuYWN0aXZlUGFnZUluZGV4ID0gcC5DdXJyZW50UGFnZUluZGV4O1xyXG4gICAgICB0aGlzLnBhZ2VTaXplID0gcC5QYWdlU2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNyZWF0ZVBhZ2VyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcm9wZXJ0eSB3aXRoIHRleHQgZm9yIHRvdGFsIGVudHJpZXMgaW4gcGFnZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgUGFnZVNpemVUZXh0KCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKHRoaXMucGFnZXNpemV0ZXh0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRleHQgd2l0aCBjdXJyZW50IHBhZ2UgYW5kIHRvdGFsIHBhZ2VzXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBQYWdpbmdUZXh0KCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKHRoaXMucGFnaW5ndGV4dCwge1xyXG4gICAgICBDVVJSRU5UUEFHRTogdGhpcy5nZXRDdXJyZW50UGFnZU51bWJlcigpLFxyXG4gICAgICBUT1RBTFBBR0VTOiB0aGlzLmdldFRvdGFsUGFnZU51bWJlcigpLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBwYWdlIHNpemVzIGFzIGEgbnVtYmVyIGFycmF5XHJcbiAgICovXHJcbiAgcHVibGljIGdldCBnZXRQYWdlU2l6ZXMoKTogbnVtYmVyW10ge1xyXG4gICAgcmV0dXJuIHRoaXMucGFnZXNpemVzLnNwbGl0KCd8JykubWFwKChpdG0pID0+IE51bWJlcihpdG0pKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBDaGFuZ2VzIHRoZSBwYWdlIHRvIHRoZSBuZXcgaW5kZXhcclxuICAgKiBAcGFyYW0gbmV3UGFnZUluZGV4IFBhZ2UgaW5kZXguIFRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIHBhZ2UgbnVtYmVyIC0gMS5cclxuICAgKi9cclxuICBwdWJsaWMgY2hhbmdlUGFnZShuZXdQYWdlSW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlUGFnZUluZGV4ICE9PSBuZXdQYWdlSW5kZXgpIHtcclxuICAgICAgdGhpcy5wYWdlZChuZXdQYWdlSW5kZXgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hhbmdlcyB0aGUgcGFnZSBzaXplIGluIHRoZSBwYWdlclxyXG4gICAqIEBwYXJhbSBuZXdTaXplIE5ldyBudW1iZXIgb2YgZWxlbWVudHMgcGVyIHBhZ2VcclxuICAgKi9cclxuICBwdWJsaWMgY2hhbmdlUGFnZVNpemUobmV3U2l6ZTogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBwYWdlckRhdGE6IFBhZ2VyUmVxdWVzdCA9IG5ldyBQYWdlclJlcXVlc3QoXHJcbiAgICAgIG5ld1NpemUsXHJcbiAgICAgIHRoaXMuYWN0aXZlUGFnZUluZGV4XHJcbiAgICApO1xyXG4gICAgdGhpcy5wYWdpbmcuZW1pdChwYWdlckRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpTd2l0Y2ggdG8gMXN0IHBhZ2VcclxuICAgKi9cclxuICBwdWJsaWMgZmlyc3RQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlUGFnZUluZGV4ICE9PSB0aGlzLmZpcnN0UGFnZUluZGV4KSB7XHJcbiAgICAgIHRoaXMucGFnZWQoMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyXHJcbiAgICovXHJcbiAgcHVibGljIGdldEN1cnJlbnRQYWdlTnVtYmVyKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVQYWdlSW5kZXggKyAxO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzXHJcbiAgICovXHJcbiAgcHVibGljIGdldFRvdGFsUGFnZU51bWJlcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubGFzdFBhZ2VJbmRleCArIDE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQYWdpbmcgb24gbGFzdCBwYWdlXHJcbiAgICovXHJcbiAgcHVibGljIGxhc3RQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlUGFnZUluZGV4ICE9PSB0aGlzLmxhc3RQYWdlSW5kZXgpIHtcclxuICAgICAgdGhpcy5wYWdlZCh0aGlzLmxhc3RQYWdlSW5kZXgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFnaW5nIHRvIG5leHQgcGFnZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZXh0UGFnZSgpIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVBhZ2VJbmRleCAhPT0gdGhpcy5sYXN0UGFnZUluZGV4KSB7XHJcbiAgICAgIHRoaXMucGFnZWQodGhpcy5hY3RpdmVQYWdlSW5kZXggKyAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhZ2luZyBvbmUgcGFnZSBiYWNrXHJcbiAgICovXHJcbiAgcHVibGljIHByZXZpb3VzUGFnZSgpIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVBhZ2VJbmRleCAhPT0gdGhpcy5maXJzdFBhZ2VJbmRleCkge1xyXG4gICAgICB0aGlzLnBhZ2VkKHRoaXMuYWN0aXZlUGFnZUluZGV4IC0gMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIHRoZSBwYWdlciBkYXRhXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGNyZWF0ZVBhZ2VyKCkge1xyXG4gICAgdGhpcy5wYWdpbmF0b3JzID0gW107XHJcblxyXG4gICAgaWYgKHRoaXMudG90YWxSb3dDb3VudCA+IDApIHtcclxuICAgICAgbGV0IHRvdGFsUGFnZUNvdW50ID0gTWF0aC5jZWlsKHRoaXMudG90YWxSb3dDb3VudCAvIHRoaXMucGFnZVNpemUpO1xyXG5cclxuICAgICAgLy8gUGFnZUNvdW50IGF1ZiAxIHN0ZWxsZW4sIHdlbm4ga2VpbmUgUmVjb3JkcyB2b3JoYW5kZW4gc2luZC5cclxuICAgICAgaWYgKHRvdGFsUGFnZUNvdW50ID09PSAwKSB7XHJcbiAgICAgICAgdG90YWxQYWdlQ291bnQgPSAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBQYWdlSW5kZXggYmVyZWNobmVuXHJcbiAgICAgIHRoaXMubGFzdFBhZ2VJbmRleCA9IHRvdGFsUGFnZUNvdW50IC0gMTtcclxuICAgICAgY29uc3Qgc3RhcnRQYWdlSW5kZXggPSB0aGlzLmdldFN0YXJ0UGFnZUluZGV4KHRvdGFsUGFnZUNvdW50KTtcclxuICAgICAgY29uc3QgZW5kUGFnZUluZGV4ID0gdGhpcy5nZXRFbmRQYWdlSW5kZXgodG90YWxQYWdlQ291bnQpO1xyXG5cclxuICAgICAgLy8gSW5kZXggRml4IHdlbm4gQWt0aXZlIFNlaXRlIGdyw7Zzc2VyIGFscyBsZXR6ZSBTZWl0ZVxyXG4gICAgICBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggPiB0aGlzLmxhc3RQYWdlSW5kZXgpIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmRleCA9IHRoaXMubGFzdFBhZ2VJbmRleDtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0UGFnZUluZGV4OyBpIDw9IGVuZFBhZ2VJbmRleDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0b3JzLnB1c2goaSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFnaW5hdG9ycy5wdXNoKDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbGFzdCBwYWdlIGluZGV4LlxyXG4gICAqIEBwYXJhbSB0b3RhbFBhZ2VDb3VudCBUb3RhbCBudW1iZXIgb2YgcGFnZXNcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZ2V0RW5kUGFnZUluZGV4KHRvdGFsUGFnZUNvdW50OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgbGV0IGVuZGluZ1BhZ2VUb0Rpc3BsYXkgPSB0aGlzLmFjdGl2ZVBhZ2VJbmRleCArIDI7XHJcbiAgICBjb25zdCBtYXhFbmRpbmdQYWdlSW5kZXggPSA0ID4gdG90YWxQYWdlQ291bnQgLSAxID8gdG90YWxQYWdlQ291bnQgLSAxIDogNDtcclxuXHJcbiAgICBpZiAoZW5kaW5nUGFnZVRvRGlzcGxheSA+IHRvdGFsUGFnZUNvdW50IC0gMSkge1xyXG4gICAgICBlbmRpbmdQYWdlVG9EaXNwbGF5ID0gdG90YWxQYWdlQ291bnQgLSAxO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVBhZ2VJbmRleCA8IDIpIHtcclxuICAgICAgZW5kaW5nUGFnZVRvRGlzcGxheSA9IG1heEVuZGluZ1BhZ2VJbmRleDtcclxuICAgIH1cclxuICAgIHJldHVybiBlbmRpbmdQYWdlVG9EaXNwbGF5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgc3RhcnQgaW5kZXhcclxuICAgKiBAcGFyYW0gdG90YWxQYWdlQ291bnQgVG90YWwgbnVtYmVyIG9mIHBhZ2VzXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdldFN0YXJ0UGFnZUluZGV4KHRvdGFsUGFnZUNvdW50OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgbGV0IHN0YXJ0aW5nUGFnZVRvRGlzcGxheTogbnVtYmVyID0gMDtcclxuICAgIHN0YXJ0aW5nUGFnZVRvRGlzcGxheSA9IHRoaXMuYWN0aXZlUGFnZUluZGV4IC0gMjtcclxuXHJcbiAgICBpZiAodG90YWxQYWdlQ291bnQgLSB0aGlzLmFjdGl2ZVBhZ2VJbmRleCAtIDEgPCAyKSB7XHJcbiAgICAgIHN0YXJ0aW5nUGFnZVRvRGlzcGxheSA9IHRvdGFsUGFnZUNvdW50IC0gNTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RhcnRpbmdQYWdlVG9EaXNwbGF5IDwgMCkge1xyXG4gICAgICBzdGFydGluZ1BhZ2VUb0Rpc3BsYXkgPSAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0YXJ0aW5nUGFnZVRvRGlzcGxheTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG1ldGhvZCB0cmlnZ2VycyB0aGUgZXZlbnQgdGhhdCBwYWdpbmcgaGFzIHRha2VuIHBsYWNlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHBhZ2VkKG5ld1BhZ2VJbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBwYWdlckRhdGE6IFBhZ2VyUmVxdWVzdCA9IG5ldyBQYWdlclJlcXVlc3QoXHJcbiAgICAgIHRoaXMucGFnZVNpemUsXHJcbiAgICAgIG5ld1BhZ2VJbmRleFxyXG4gICAgKTtcclxuICAgIHRoaXMucGFnaW5nLmVtaXQocGFnZXJEYXRhKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcclxufVxyXG4iXX0=
@@ -1,6 +1,6 @@
1
- import { Directive, Input } from '@angular/core';
2
1
  import { SacInputBase } from '../../common/baseinputcontrol';
3
2
  import { Validation } from '../../validation';
3
+ import { Directive, Input } from '@angular/core';
4
4
  /**
5
5
  * Basis Komponente für SacInput
6
6
  */
@@ -13,9 +13,9 @@ export class SacInputCommon extends SacInputBase {
13
13
  */
14
14
  this.controlwidth = null;
15
15
  /**
16
- * Max länge an Zeichen für Eingabefeld
16
+ * Max length of characters for input field
17
17
  */
18
- this.maxlength = null;
18
+ this.maxtextlength = null;
19
19
  /**
20
20
  * Resource Key für Validation Message Pattern bei Control
21
21
  */
@@ -44,9 +44,7 @@ export class SacInputCommon extends SacInputBase {
44
44
  if (this.isrequired) {
45
45
  error = Validation.required(this.validationmessagerequired, this.validationmessagesummaryrequired)(c);
46
46
  }
47
- if (error === null &&
48
- this.regexvalidation !== undefined &&
49
- this.regexvalidation !== null) {
47
+ if (error === null && this.regexvalidation !== undefined && this.regexvalidation !== null) {
50
48
  error = Validation.pattern(this.regexvalidation, this.validationmessagepattern, this.validationmessagesummarypattern)(c);
51
49
  }
52
50
  return error;
@@ -57,10 +55,10 @@ SacInputCommon.decorators = [
57
55
  ];
58
56
  SacInputCommon.propDecorators = {
59
57
  controlwidth: [{ type: Input }],
60
- maxlength: [{ type: Input }],
58
+ maxtextlength: [{ type: Input }],
61
59
  validationmessagepattern: [{ type: Input }],
62
60
  validationmessagerequired: [{ type: Input }],
63
61
  validationmessagesummarypattern: [{ type: Input }],
64
62
  validationmessagesummaryrequired: [{ type: Input }]
65
63
  };
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvaW5wdXQvaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxjQUFlLFNBQVEsWUFBb0I7SUFEeEQ7UUFFRSxxQkFBcUI7O1FBRXJCOztXQUVHO1FBQ2EsaUJBQVksR0FBVyxJQUFJLENBQUM7UUFDNUM7O1dBRUc7UUFDYSxjQUFTLEdBQVcsSUFBSSxDQUFDO1FBQ3pDOztXQUVHO1FBQ2EsNkJBQXdCLEdBQ3RDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQztRQUNuRDs7V0FFRztRQUNhLDhCQUF5QixHQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUM7UUFDcEQ7O1dBRUc7UUFDYSxvQ0FBK0IsR0FDN0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLDZCQUE2QixDQUFDO1FBQzFEOztXQUVHO1FBQ2EscUNBQWdDLEdBQzlDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyw4QkFBOEIsQ0FBQztRQWlDM0QsNEJBQTRCO0lBQzlCLENBQUM7SUFoQ0Msd0JBQXdCO0lBRXhCLHlCQUF5QjtJQUV6Qjs7T0FFRztJQUNJLFlBQVksQ0FBQyxDQUFrQjtRQUNwQyxJQUFJLEtBQUssR0FBNEIsSUFBSSxDQUFDO1FBRTFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FDekIsSUFBSSxDQUFDLHlCQUF5QixFQUM5QixJQUFJLENBQUMsZ0NBQWdDLENBQ3RDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELElBQ0UsS0FBSyxLQUFLLElBQUk7WUFDZCxJQUFJLENBQUMsZUFBZSxLQUFLLFNBQVM7WUFDbEMsSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQzdCO1lBQ0EsS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQ3hCLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyx3QkFBd0IsRUFDN0IsSUFBSSxDQUFDLCtCQUErQixDQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OztZQTlERixTQUFTOzs7MkJBT1AsS0FBSzt3QkFJTCxLQUFLO3VDQUlMLEtBQUs7d0NBS0wsS0FBSzs4Q0FLTCxLQUFLOytDQUtMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FjSW5wdXRCYXNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2VpbnB1dGNvbnRyb2wnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XHJcblxyXG4vKipcclxuICogQmFzaXMgS29tcG9uZW50ZSBmw7xyIFNhY0lucHV0XHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY0lucHV0Q29tbW9uIGV4dGVuZHMgU2FjSW5wdXRCYXNlPHN0cmluZz4ge1xyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvKipcclxuICAgKiBGaXggYnJlaXRlIGbDvHIgZGFzIENvbnRyb2wgZGVmaW5pZXJlbi5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgY29udHJvbHdpZHRoOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIE1heCBsw6RuZ2UgYW4gWmVpY2hlbiBmw7xyIEVpbmdhYmVmZWxkXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG1heGxlbmd0aDogbnVtYmVyID0gbnVsbDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUGF0dGVybiBiZWkgQ29udHJvbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXBhdHRlcm46IHN0cmluZyA9XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclBhdHRlcm47XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclJlcXVpcmVkO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBQYXR0ZXJuIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlwYXR0ZXJuOiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UGF0dGVybjtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkOiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgdmFsaWRpZXJ0LCBvYiBkZXIgV2VydCBkZW4gZ2VnZWJlbmVuIEtyaXRlcmllbiBlbnRzcHJpY2h0XHJcbiAgICovXHJcbiAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZChcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZFxyXG4gICAgICApKGMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgZXJyb3IgPT09IG51bGwgJiZcclxuICAgICAgdGhpcy5yZWdleHZhbGlkYXRpb24gIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLnJlZ2V4dmFsaWRhdGlvbiAhPT0gbnVsbFxyXG4gICAgKSB7XHJcbiAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5wYXR0ZXJuKFxyXG4gICAgICAgIHRoaXMucmVnZXh2YWxpZGF0aW9uLFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VwYXR0ZXJuLFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cGF0dGVyblxyXG4gICAgICApKGMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVycm9yO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG59XHJcbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvaW5wdXQvaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRDs7R0FFRztBQUVILE1BQU0sT0FBTyxjQUFlLFNBQVEsWUFBb0I7SUFEeEQ7UUFFSSxxQkFBcUI7O1FBRXJCOztXQUVHO1FBQ2EsaUJBQVksR0FBVyxJQUFJLENBQUM7UUFFNUM7O1dBRUc7UUFDYSxrQkFBYSxHQUFXLElBQUksQ0FBQztRQUU3Qzs7V0FFRztRQUNhLDZCQUF3QixHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQztRQUVwRzs7V0FFRztRQUNhLDhCQUF5QixHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQztRQUV0Rzs7V0FFRztRQUNhLG9DQUErQixHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyw2QkFBNkIsQ0FBQztRQUVsSDs7V0FFRztRQUNhLHFDQUFnQyxHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyw4QkFBOEIsQ0FBQztRQTBCcEgsNEJBQTRCO0lBQ2hDLENBQUM7SUF6Qkcsd0JBQXdCO0lBRXhCLHlCQUF5QjtJQUV6Qjs7T0FFRztJQUNJLFlBQVksQ0FBQyxDQUFrQjtRQUNsQyxJQUFJLEtBQUssR0FBNEIsSUFBSSxDQUFDO1FBRTFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekc7UUFFRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQUU7WUFDdkYsS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyx3QkFBd0IsRUFDN0IsSUFBSSxDQUFDLCtCQUErQixDQUN2QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs7WUF4REosU0FBUzs7OzJCQU9MLEtBQUs7NEJBS0wsS0FBSzt1Q0FLTCxLQUFLO3dDQUtMLEtBQUs7OENBS0wsS0FBSzsrQ0FLTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjSW5wdXRCYXNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2VpbnB1dGNvbnRyb2wnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqXHJcbiAqIEJhc2lzIEtvbXBvbmVudGUgZsO8ciBTYWNJbnB1dFxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBjbGFzcyBTYWNJbnB1dENvbW1vbiBleHRlbmRzIFNhY0lucHV0QmFzZTxzdHJpbmc+IHtcclxuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRml4IGJyZWl0ZSBmw7xyIGRhcyBDb250cm9sIGRlZmluaWVyZW4uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBjb250cm9sd2lkdGg6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXggbGVuZ3RoIG9mIGNoYXJhY3RlcnMgZm9yIGlucHV0IGZpZWxkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXh0ZXh0bGVuZ3RoOiBudW1iZXIgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFBhdHRlcm4gYmVpIENvbnRyb2xcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcGF0dGVybjogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JQYXR0ZXJuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclJlcXVpcmVkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFBhdHRlcm4gaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlwYXR0ZXJuOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlQYXR0ZXJuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZGUgdmFsaWRpZXJ0LCBvYiBkZXIgV2VydCBkZW4gZ2VnZWJlbmVuIEtyaXRlcmllbiBlbnRzcHJpY2h0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZCh0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQpKGMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGVycm9yID09PSBudWxsICYmIHRoaXMucmVnZXh2YWxpZGF0aW9uICE9PSB1bmRlZmluZWQgJiYgdGhpcy5yZWdleHZhbGlkYXRpb24gIT09IG51bGwpIHtcclxuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnBhdHRlcm4oXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4dmFsaWRhdGlvbixcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VwYXR0ZXJuLFxyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlwYXR0ZXJuXHJcbiAgICAgICAgICAgICkoYyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBlcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcbn1cclxuIl19
@@ -1,24 +1,28 @@
1
- import { Directive, Input } from '@angular/core';
2
1
  import { SacInputCommon } from './input';
2
+ import { Directive, Input } from '@angular/core';
3
3
  /**
4
4
  * Basis Komponente für SacInputArea
5
5
  */
6
6
  export class SacInputAreaCommon extends SacInputCommon {
7
7
  constructor() {
8
+ // #region Properties
8
9
  super(...arguments);
9
10
  /**
10
- * Definiert die Höhe der TextArea Box.
11
+ * Property mit dem Custom CSS Klassen auf dem Form-Control definiert werden können.
11
12
  */
12
- this.rows = 5;
13
+ this.customcssclass = '';
13
14
  /**
14
15
  * Definiert die Höhe der TextArea Box. Ist normalfall leer, da Höhe auch über Rows gesetzt werden kann.
15
16
  */
16
17
  this.height = null;
17
18
  /**
18
- * Property mit dem Custom CSS Klassen auf dem Form-Control definiert werden können.
19
+ * Definiert die Höhe der TextArea Box.
19
20
  */
20
- this.customcssclass = '';
21
+ this.rows = 5;
22
+ // #endregion Public Methods
21
23
  }
24
+ // #endregion Properties
25
+ // #region Public Getters And Setters
22
26
  /**
23
27
  * Getter für die Länge des Inputs
24
28
  */
@@ -30,15 +34,18 @@ export class SacInputAreaCommon extends SacInputCommon {
30
34
  return this.value.length + this.value.split(/\r|\n/).length - 1;
31
35
  }
32
36
  }
37
+ // #endregion Public Getters And Setters
38
+ // #region Public Methods
33
39
  /**
34
- * Methode wird 'true' ergeben wenn ein Key gedrückt wird und maxlength ist nicht definiert
40
+ * Methode wird 'true' ergeben wenn ein Key gedrückt wird und maxtextlength ist nicht definiert
35
41
  */
36
42
  onKeyPress(event) {
37
- // Exist if MaxLength not defined
38
- if (this.maxlength === undefined || this.maxlength === null) {
43
+ // Exist if MaxTextLength not defined
44
+ if (this.maxtextlength === undefined || this.maxtextlength === null) {
39
45
  return true;
40
46
  }
41
- if (this._currentLength >= this.maxlength || ((event.key === 'Enter' || event.key === ' ') && this._currentLength + 1 >= this.maxlength)) {
47
+ if (this._currentLength >= this.maxtextlength ||
48
+ ((event.key === 'Enter' || event.key === ' ') && this._currentLength + 1 >= this.maxtextlength)) {
42
49
  event.preventDefault();
43
50
  }
44
51
  }
@@ -47,8 +54,8 @@ SacInputAreaCommon.decorators = [
47
54
  { type: Directive }
48
55
  ];
49
56
  SacInputAreaCommon.propDecorators = {
50
- rows: [{ type: Input }],
57
+ customcssclass: [{ type: Input }],
51
58
  height: [{ type: Input }],
52
- customcssclass: [{ type: Input }]
59
+ rows: [{ type: Input }]
53
60
  };
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRhcmVhLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2lucHV0L2lucHV0YXJlYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXpDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGNBQWM7SUFEdEQ7O1FBR0U7O1dBRUc7UUFDTSxTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBRTFCOztXQUVHO1FBQ00sV0FBTSxHQUFXLElBQUksQ0FBQztRQUUvQjs7V0FFRztRQUNNLG1CQUFjLEdBQVcsRUFBRSxDQUFDO0lBMEJ2QyxDQUFDO0lBeEJDOztPQUVHO0lBQ0gsSUFBSSxjQUFjO1FBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDbkQsT0FBTyxDQUFDLENBQUM7U0FDVjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEtBQW9CO1FBQ3BDLGlDQUFpQztRQUNqQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFO1lBQzNELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDeEksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQzs7O1lBekNGLFNBQVM7OzttQkFNUCxLQUFLO3FCQUtMLEtBQUs7NkJBS0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2FjSW5wdXRDb21tb24gfSBmcm9tICcuL2lucHV0JztcclxuXHJcbi8qKlxyXG4gKiBCYXNpcyBLb21wb25lbnRlIGbDvHIgU2FjSW5wdXRBcmVhXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY0lucHV0QXJlYUNvbW1vbiBleHRlbmRzIFNhY0lucHV0Q29tbW9uIHtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IGRpZSBIw7ZoZSBkZXIgVGV4dEFyZWEgQm94LlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJvd3M6IG51bWJlciA9IDU7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBkaWUgSMO2aGUgZGVyIFRleHRBcmVhIEJveC4gSXN0IG5vcm1hbGZhbGwgbGVlciwgZGEgSMO2aGUgYXVjaCDDvGJlciBSb3dzIGdlc2V0enQgd2VyZGVuIGthbm4uXHJcbiAgICovXHJcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAvKipcclxuICAgKiBQcm9wZXJ0eSBtaXQgZGVtIEN1c3RvbSBDU1MgS2xhc3NlbiBhdWYgZGVtIEZvcm0tQ29udHJvbCBkZWZpbmllcnQgd2VyZGVuIGvDtm5uZW4uXHJcbiAgICovXHJcbiAgQElucHV0KCkgY3VzdG9tY3NzY2xhc3M6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZsO8ciBkaWUgTMOkbmdlIGRlcyBJbnB1dHNcclxuICAgKi9cclxuICBnZXQgX2N1cnJlbnRMZW5ndGgoKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsIHx8IHRoaXMudmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlLmxlbmd0aCArIHRoaXMudmFsdWUuc3BsaXQoL1xccnxcXG4vKS5sZW5ndGggLSAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSB3aXJkICd0cnVlJyBlcmdlYmVuIHdlbm4gZWluIEtleSBnZWRyw7xja3Qgd2lyZCB1bmQgbWF4bGVuZ3RoIGlzdCBuaWNodCBkZWZpbmllcnRcclxuICAgKi9cclxuICBwdWJsaWMgb25LZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IEJvb2xlYW4ge1xyXG4gICAgLy8gRXhpc3QgaWYgTWF4TGVuZ3RoIG5vdCBkZWZpbmVkXHJcbiAgICBpZiAodGhpcy5tYXhsZW5ndGggPT09IHVuZGVmaW5lZCB8fCB0aGlzLm1heGxlbmd0aCA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fY3VycmVudExlbmd0aCA+PSB0aGlzLm1heGxlbmd0aCB8fCAoKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICcgJykgJiYgdGhpcy5fY3VycmVudExlbmd0aCArIDEgPj0gdGhpcy5tYXhsZW5ndGgpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRhcmVhLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2lucHV0L2lucHV0YXJlYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGNBQWM7SUFEdEQ7UUFFSSxxQkFBcUI7O1FBRXJCOztXQUVHO1FBQ2EsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFFNUM7O1dBRUc7UUFDYSxXQUFNLEdBQVcsSUFBSSxDQUFDO1FBRXRDOztXQUVHO1FBQ2EsU0FBSSxHQUFXLENBQUMsQ0FBQztRQXNDakMsNEJBQTRCO0lBQ2hDLENBQUM7SUFyQ0csd0JBQXdCO0lBRXhCLHFDQUFxQztJQUVyQzs7T0FFRztJQUNILElBQVcsY0FBYztRQUNyQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ2pELE9BQU8sQ0FBQyxDQUFDO1NBQ1o7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNuRTtJQUNMLENBQUM7SUFFRCx3Q0FBd0M7SUFFeEMseUJBQXlCO0lBRXpCOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEtBQW9CO1FBQ2xDLHFDQUFxQztRQUNyQyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxFQUFFO1lBQ2pFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUNJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGFBQWE7WUFDekMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUNqRztZQUNFLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7OztZQXJESixTQUFTOzs7NkJBT0wsS0FBSztxQkFLTCxLQUFLO21CQUtMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNJbnB1dENvbW1vbiB9IGZyb20gJy4vaW5wdXQnO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQmFzaXMgS29tcG9uZW50ZSBmw7xyIFNhY0lucHV0QXJlYVxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBjbGFzcyBTYWNJbnB1dEFyZWFDb21tb24gZXh0ZW5kcyBTYWNJbnB1dENvbW1vbiB7XHJcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG1pdCBkZW0gQ3VzdG9tIENTUyBLbGFzc2VuIGF1ZiBkZW0gRm9ybS1Db250cm9sIGRlZmluaWVydCB3ZXJkZW4ga8O2bm5lbi5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGN1c3RvbWNzc2NsYXNzOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluaWVydCBkaWUgSMO2aGUgZGVyIFRleHRBcmVhIEJveC4gSXN0IG5vcm1hbGZhbGwgbGVlciwgZGEgSMO2aGUgYXVjaCDDvGJlciBSb3dzIGdlc2V0enQgd2VyZGVuIGthbm4uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWlnaHQ6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmllcnQgZGllIEjDtmhlIGRlciBUZXh0QXJlYSBCb3guXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dzOiBudW1iZXIgPSA1O1xyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHRlciBmw7xyIGRpZSBMw6RuZ2UgZGVzIElucHV0c1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IF9jdXJyZW50TGVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwgfHwgdGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlLmxlbmd0aCArIHRoaXMudmFsdWUuc3BsaXQoL1xccnxcXG4vKS5sZW5ndGggLSAxO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kZSB3aXJkICd0cnVlJyBlcmdlYmVuIHdlbm4gZWluIEtleSBnZWRyw7xja3Qgd2lyZCB1bmQgbWF4dGV4dGxlbmd0aCBpc3QgbmljaHQgZGVmaW5pZXJ0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogQm9vbGVhbiB7XHJcbiAgICAgICAgLy8gRXhpc3QgaWYgTWF4VGV4dExlbmd0aCBub3QgZGVmaW5lZFxyXG4gICAgICAgIGlmICh0aGlzLm1heHRleHRsZW5ndGggPT09IHVuZGVmaW5lZCB8fCB0aGlzLm1heHRleHRsZW5ndGggPT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRMZW5ndGggPj0gdGhpcy5tYXh0ZXh0bGVuZ3RoIHx8XHJcbiAgICAgICAgICAgICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSAmJiB0aGlzLl9jdXJyZW50TGVuZ3RoICsgMSA+PSB0aGlzLm1heHRleHRsZW5ndGgpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxufVxyXG4iXX0=