@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.
- package/bundles/simpleangularcontrols-sac-common.umd.js +2232 -1604
- package/bundles/simpleangularcontrols-sac-common.umd.js.map +1 -1
- package/bundles/simpleangularcontrols-sac-common.umd.min.js +1 -1
- package/bundles/simpleangularcontrols-sac-common.umd.min.js.map +1 -1
- package/common/basedatetimecontrol.d.ts +100 -14
- package/common/baseinputcontrol.d.ts +0 -4
- package/common/basemodelcontrol.d.ts +55 -27
- package/common/baseuploadcontrol.d.ts +71 -55
- package/controls/checkbox/checkbox.d.ts +12 -3
- package/controls/checkbox/radiobutton.d.ts +61 -26
- package/controls/contextmenu/contextmenu.d.ts +26 -19
- package/controls/contextmenu/contextmenu.interface.d.ts +3 -0
- package/controls/contextmenu/contextmenuitem.d.ts +5 -0
- package/controls/contextmenu/contextmenuitembutton.d.ts +21 -20
- package/controls/datetime/date.d.ts +28 -31
- package/controls/datetime/datetime.d.ts +27 -31
- package/controls/datetime/time.d.ts +26 -30
- package/controls/dialog/dialog.d.ts +31 -43
- package/controls/grid/grid.d.ts +38 -36
- package/controls/grid/gridbutton.d.ts +13 -13
- package/controls/grid/gridcolumn.d.ts +8 -8
- package/controls/grid/gridcolumnaction.d.ts +3 -3
- package/controls/grid/gridcolumnbase.d.ts +45 -37
- package/controls/grid/gridimage.d.ts +2 -2
- package/controls/grid/model.d.ts +51 -42
- package/controls/grid/paging.d.ts +41 -43
- package/controls/input/input.d.ts +3 -3
- package/controls/input/inputarea.d.ts +5 -5
- package/controls/input/inputpassword.d.ts +7 -7
- package/controls/input/inputsearch.d.ts +13 -4
- package/controls/layout/formlayout.d.ts +17 -1
- package/controls/list/buildvaluestring.d.ts +6 -0
- package/controls/list/dropdown.d.ts +9 -51
- package/controls/list/dropdownoptions.d.ts +38 -0
- package/controls/multilanguage/multilanguageinput.d.ts +2 -2
- package/controls/multilanguage/multilanguageinputarea.d.ts +4 -4
- package/controls/static/formcontainer.d.ts +7 -3
- package/controls/tooltip/tooltip.d.ts +76 -69
- package/controls/treeview/treeview.d.ts +107 -107
- package/esm2015/common/basedatetimecontrol.js +185 -30
- package/esm2015/common/baseinputcontrol.js +2 -7
- package/esm2015/common/basemodelcontrol.js +109 -57
- package/esm2015/common/baseuploadcontrol.js +92 -59
- package/esm2015/controls/checkbox/checkbox.js +29 -6
- package/esm2015/controls/checkbox/radiobutton.js +94 -45
- package/esm2015/controls/contextmenu/contextmenu.interface.js +1 -0
- package/esm2015/controls/contextmenu/contextmenu.interface.ngfactory.js +7 -0
- package/esm2015/controls/contextmenu/contextmenu.js +22 -23
- package/esm2015/controls/contextmenu/contextmenuitem.js +13 -2
- package/esm2015/controls/contextmenu/contextmenuitembutton.js +34 -25
- package/esm2015/controls/datetime/date.js +44 -43
- package/esm2015/controls/datetime/datetime.js +43 -43
- package/esm2015/controls/datetime/time.js +43 -43
- package/esm2015/controls/dialog/dialog.js +41 -83
- package/esm2015/controls/grid/grid.js +21 -21
- package/esm2015/controls/grid/gridbutton.js +19 -13
- package/esm2015/controls/grid/gridcolumn.js +14 -7
- package/esm2015/controls/grid/gridcolumnaction.js +6 -5
- package/esm2015/controls/grid/gridcolumnbase.js +67 -55
- package/esm2015/controls/grid/gridimage.js +3 -3
- package/esm2015/controls/grid/model.js +51 -30
- package/esm2015/controls/grid/paging.js +40 -42
- package/esm2015/controls/input/input.js +6 -8
- package/esm2015/controls/input/inputarea.js +19 -12
- package/esm2015/controls/input/inputpassword.js +12 -12
- package/esm2015/controls/input/inputsearch.js +35 -6
- package/esm2015/controls/layout/formlayout.js +20 -8
- package/esm2015/controls/list/buildvaluestring.js +18 -0
- package/esm2015/controls/{treeview/ngtreeitemaction.ngfactory.js → list/buildvaluestring.ngfactory.js} +1 -1
- package/esm2015/controls/list/dropdown.js +16 -114
- package/esm2015/controls/list/dropdownoptions.js +72 -0
- package/esm2015/controls/{treeview/treeviewchild.ngfactory.js → list/dropdownoptions.ngfactory.js} +1 -1
- package/esm2015/controls/multilanguage/multilanguageinput.js +8 -14
- package/esm2015/controls/multilanguage/multilanguageinputarea.js +9 -15
- package/esm2015/controls/static/formcontainer.js +16 -5
- package/esm2015/controls/tooltip/tooltip.js +126 -245
- package/esm2015/controls/treeview/treeview.js +276 -231
- package/esm2015/interfaces/ISacConfigurationService.js +1 -1
- package/esm2015/interfaces/ISacIconService.js +1 -1
- package/esm2015/interfaces/ISacUploadEventCompleteState.js +1 -0
- package/esm2015/interfaces/ISacUploadEventCompleteState.ngfactory.js +7 -0
- package/esm2015/interfaces/ISacValidationKeyService.js +1 -1
- package/esm2015/interfaces/treeviewaction.interface.js +1 -0
- package/esm2015/interfaces/treeviewaction.interface.ngfactory.js +7 -0
- package/esm2015/public_api.js +15 -8
- package/esm2015/services/sac-configuration.service.js +31 -5
- package/esm2015/services/sac-icon.service.js +37 -1
- package/esm2015/services/sac-localisation.service.js +69 -180
- package/esm2015/services/sac-validationkey.service.js +12 -9
- package/esm2015/simpleangularcontrols-sac-common.js +1 -7
- package/esm2015/utilities/enums.js +5 -1
- package/esm2015/utilities/guid.js +4 -2
- package/esm2015/utilities/popuphelper.js +343 -0
- package/esm2015/utilities/popuphelper.ngfactory.js +7 -0
- package/esm2015/validation/equals.validator.js +14 -0
- package/esm2015/validation/equals.validator.ngfactory.js +7 -0
- package/esm2015/validation/isDateValid.js +9 -1
- package/esm2015/validation/mintextlength.validator.js +23 -0
- package/esm2015/validation/mintextlength.validator.ngfactory.js +7 -0
- package/esm2015/validation/notequals.validator.js +14 -0
- package/esm2015/validation/{minlength.validator.ngfactory.js → notequals.validator.ngfactory.js} +1 -1
- package/esm2015/validation/validation.class.js +35 -6
- package/fesm2015/simpleangularcontrols-sac-common.js +2070 -1498
- package/fesm2015/simpleangularcontrols-sac-common.js.map +1 -1
- package/interfaces/ISacConfigurationService.d.ts +20 -0
- package/interfaces/ISacIconService.d.ts +24 -0
- package/interfaces/ISacUploadEventCompleteState.d.ts +5 -0
- package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts +1 -0
- package/interfaces/ISacValidationKeyService.d.ts +2 -2
- package/interfaces/treeviewaction.interface.d.ts +4 -0
- package/interfaces/treeviewaction.interface.ngfactory.d.ts +1 -0
- package/package.json +2 -2
- package/public_api.d.ts +13 -6
- package/services/sac-configuration.service.d.ts +40 -0
- package/services/sac-icon.service.d.ts +49 -1
- package/services/sac-localisation.service.d.ts +10 -10
- package/services/sac-validationkey.service.d.ts +7 -7
- package/simpleangularcontrols-sac-common-10.0.0-rc.21.tgz +0 -0
- package/simpleangularcontrols-sac-common.d.ts +0 -6
- package/simpleangularcontrols-sac-common.metadata.json +1 -1
- package/utilities/enums.d.ts +3 -1
- package/utilities/popuphelper.d.ts +83 -0
- package/utilities/popuphelper.ngfactory.d.ts +1 -0
- package/validation/equals.validator.d.ts +2 -0
- package/validation/equals.validator.ngfactory.d.ts +1 -0
- package/validation/mintextlength.validator.d.ts +2 -0
- package/validation/mintextlength.validator.ngfactory.d.ts +1 -0
- package/validation/notequals.validator.d.ts +2 -0
- package/validation/notequals.validator.ngfactory.d.ts +1 -0
- package/validation/validation.class.d.ts +22 -3
- package/controls/treeview/ngtreeitemaction.d.ts +0 -40
- package/controls/treeview/treeviewchild.d.ts +0 -12
- package/esm2015/controls/treeview/ngtreeitemaction.js +0 -60
- package/esm2015/controls/treeview/treeviewchild.js +0 -18
- package/esm2015/validation/minlength.validator.js +0 -21
- package/simpleangularcontrols-sac-common-10.0.0-rc.2.tgz +0 -0
- package/validation/minlength.validator.d.ts +0 -2
- /package/controls/{treeview/ngtreeitemaction.ngfactory.d.ts → contextmenu/contextmenu.interface.ngfactory.d.ts} +0 -0
- /package/controls/{treeview/treeviewchild.ngfactory.d.ts → list/buildvaluestring.ngfactory.d.ts} +0 -0
- /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
|
-
*
|
|
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
|
-
*
|
|
7
|
-
* @param PageSize
|
|
8
|
-
* @param CurrentPageIndex
|
|
9
|
-
* @param TotalRowCount Total Rows in
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
|
39
|
+
* Model if page is to be changed
|
|
31
40
|
*/
|
|
32
41
|
export class PagerRequest {
|
|
42
|
+
// #endregion Properties
|
|
43
|
+
// #region Constructors
|
|
33
44
|
/**
|
|
34
|
-
*
|
|
35
|
-
* @param PageSize
|
|
36
|
-
* @param NewPageIndex
|
|
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
|
-
*
|
|
52
|
+
* Index of the page to which you want to switch
|
|
41
53
|
*/
|
|
42
|
-
this.
|
|
54
|
+
this.NewPageIndex = 0;
|
|
43
55
|
/**
|
|
44
|
-
*
|
|
56
|
+
* Number of elements on the page
|
|
45
57
|
*/
|
|
46
|
-
this.
|
|
58
|
+
this.PageSize = 0;
|
|
47
59
|
this.PageSize = PageSize;
|
|
48
60
|
this.NewPageIndex = NewPageIndex;
|
|
49
61
|
}
|
|
50
62
|
}
|
|
51
63
|
/**
|
|
52
|
-
*
|
|
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
|
-
*
|
|
62
|
-
* @param sortcolumn Column
|
|
63
|
-
* @param sortorder
|
|
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
|
|
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
|
-
|
|
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
|
-
*
|
|
6
|
+
* Basic component for paging
|
|
7
7
|
*/
|
|
8
8
|
export class SacPagingCommon {
|
|
9
9
|
// #endregion Properties
|
|
10
10
|
// #region Constructors
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
* Inject des Formulars
|
|
12
|
+
* Constructor
|
|
14
13
|
* @parent SacFormCommon
|
|
15
14
|
* @injector Injector
|
|
16
15
|
*/
|
|
17
16
|
constructor(injector) {
|
|
18
17
|
/**
|
|
19
|
-
* Total
|
|
18
|
+
* Total number of rows
|
|
20
19
|
*/
|
|
21
20
|
this.totalRowCount = 0;
|
|
22
21
|
/**
|
|
23
|
-
*
|
|
22
|
+
* Deactivate page size selection
|
|
24
23
|
*/
|
|
25
24
|
this.pagesizedisabled = false;
|
|
26
25
|
/**
|
|
27
|
-
* Text in Page
|
|
28
|
-
*
|
|
29
|
-
* {{PAGESIZE}}:
|
|
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
|
|
34
|
-
*
|
|
35
|
-
* {{PAGESIZE}}:
|
|
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
|
|
40
|
-
*
|
|
41
|
-
* {{
|
|
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
|
|
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
|
-
*
|
|
48
|
+
* Active page index
|
|
51
49
|
*/
|
|
52
50
|
this.activePageIndex = 0;
|
|
53
51
|
/**
|
|
54
|
-
*
|
|
52
|
+
* First page index
|
|
55
53
|
*/
|
|
56
54
|
this.firstPageIndex = 0;
|
|
57
55
|
/**
|
|
58
|
-
*
|
|
56
|
+
* Last page index
|
|
59
57
|
*/
|
|
60
58
|
this.lastPageIndex = 0;
|
|
61
59
|
/**
|
|
62
|
-
*
|
|
60
|
+
* Number of elements per page
|
|
63
61
|
*/
|
|
64
62
|
this.pageSize = 20;
|
|
65
63
|
/**
|
|
66
|
-
* Item
|
|
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
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
-
*
|
|
113
|
-
* @param newPageIndex
|
|
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
|
-
*
|
|
122
|
-
* @param newSize
|
|
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
|
-
*
|
|
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
|
-
*
|
|
135
|
+
* Returns the current page number
|
|
138
136
|
*/
|
|
139
137
|
getCurrentPageNumber() {
|
|
140
138
|
return this.activePageIndex + 1;
|
|
141
139
|
}
|
|
142
140
|
/**
|
|
143
|
-
*
|
|
141
|
+
* Returns the total number of pages
|
|
144
142
|
*/
|
|
145
143
|
getTotalPageNumber() {
|
|
146
144
|
return this.lastPageIndex + 1;
|
|
147
145
|
}
|
|
148
146
|
/**
|
|
149
|
-
* Paging
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
-
*
|
|
203
|
-
* @param totalPageCount Total
|
|
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
|
-
*
|
|
218
|
-
* @param totalPageCount Total
|
|
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
|
-
*
|
|
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
|
|
16
|
+
* Max length of characters for input field
|
|
17
17
|
*/
|
|
18
|
-
this.
|
|
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
|
-
|
|
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,
|
|
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
|
-
*
|
|
11
|
+
* Property mit dem Custom CSS Klassen auf dem Form-Control definiert werden können.
|
|
11
12
|
*/
|
|
12
|
-
this.
|
|
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
|
-
*
|
|
19
|
+
* Definiert die Höhe der TextArea Box.
|
|
19
20
|
*/
|
|
20
|
-
this.
|
|
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
|
|
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
|
|
38
|
-
if (this.
|
|
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.
|
|
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
|
-
|
|
57
|
+
customcssclass: [{ type: Input }],
|
|
51
58
|
height: [{ type: Input }],
|
|
52
|
-
|
|
59
|
+
rows: [{ type: Input }]
|
|
53
60
|
};
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRhcmVhLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2lucHV0L2lucHV0YXJlYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGNBQWM7SUFEdEQ7UUFFSSxxQkFBcUI7O1FBRXJCOztXQUVHO1FBQ2EsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFFNUM7O1dBRUc7UUFDYSxXQUFNLEdBQVcsSUFBSSxDQUFDO1FBRXRDOztXQUVHO1FBQ2EsU0FBSSxHQUFXLENBQUMsQ0FBQztRQXNDakMsNEJBQTRCO0lBQ2hDLENBQUM7SUFyQ0csd0JBQXdCO0lBRXhCLHFDQUFxQztJQUVyQzs7T0FFRztJQUNILElBQVcsY0FBYztRQUNyQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ2pELE9BQU8sQ0FBQyxDQUFDO1NBQ1o7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNuRTtJQUNMLENBQUM7SUFFRCx3Q0FBd0M7SUFFeEMseUJBQXlCO0lBRXpCOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEtBQW9CO1FBQ2xDLHFDQUFxQztRQUNyQyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxFQUFFO1lBQ2pFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUNJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGFBQWE7WUFDekMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUNqRztZQUNFLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7OztZQXJESixTQUFTOzs7NkJBT0wsS0FBSztxQkFLTCxLQUFLO21CQUtMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNJbnB1dENvbW1vbiB9IGZyb20gJy4vaW5wdXQnO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQmFzaXMgS29tcG9uZW50ZSBmw7xyIFNhY0lucHV0QXJlYVxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBjbGFzcyBTYWNJbnB1dEFyZWFDb21tb24gZXh0ZW5kcyBTYWNJbnB1dENvbW1vbiB7XHJcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG1pdCBkZW0gQ3VzdG9tIENTUyBLbGFzc2VuIGF1ZiBkZW0gRm9ybS1Db250cm9sIGRlZmluaWVydCB3ZXJkZW4ga8O2bm5lbi5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGN1c3RvbWNzc2NsYXNzOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluaWVydCBkaWUgSMO2aGUgZGVyIFRleHRBcmVhIEJveC4gSXN0IG5vcm1hbGZhbGwgbGVlciwgZGEgSMO2aGUgYXVjaCDDvGJlciBSb3dzIGdlc2V0enQgd2VyZGVuIGthbm4uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWlnaHQ6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmllcnQgZGllIEjDtmhlIGRlciBUZXh0QXJlYSBCb3guXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dzOiBudW1iZXIgPSA1O1xyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHRlciBmw7xyIGRpZSBMw6RuZ2UgZGVzIElucHV0c1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IF9jdXJyZW50TGVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwgfHwgdGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlLmxlbmd0aCArIHRoaXMudmFsdWUuc3BsaXQoL1xccnxcXG4vKS5sZW5ndGggLSAxO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kZSB3aXJkICd0cnVlJyBlcmdlYmVuIHdlbm4gZWluIEtleSBnZWRyw7xja3Qgd2lyZCB1bmQgbWF4dGV4dGxlbmd0aCBpc3QgbmljaHQgZGVmaW5pZXJ0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogQm9vbGVhbiB7XHJcbiAgICAgICAgLy8gRXhpc3QgaWYgTWF4VGV4dExlbmd0aCBub3QgZGVmaW5lZFxyXG4gICAgICAgIGlmICh0aGlzLm1heHRleHRsZW5ndGggPT09IHVuZGVmaW5lZCB8fCB0aGlzLm1heHRleHRsZW5ndGggPT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRMZW5ndGggPj0gdGhpcy5tYXh0ZXh0bGVuZ3RoIHx8XHJcbiAgICAgICAgICAgICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSAmJiB0aGlzLl9jdXJyZW50TGVuZ3RoICsgMSA+PSB0aGlzLm1heHRleHRsZW5ndGgpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxufVxyXG4iXX0=
|