@simpleangularcontrols/sac-common 16.0.0-rc.7 → 16.0.0-rc.9

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 (79) hide show
  1. package/common/basedatetimecontrol.d.ts +1 -1
  2. package/common/basedatetimecontrol.d.ts.map +1 -1
  3. package/common/baseinputcontrol.d.ts +1 -5
  4. package/common/baseinputcontrol.d.ts.map +1 -1
  5. package/common/basemodelcontrol.d.ts +26 -2
  6. package/common/basemodelcontrol.d.ts.map +1 -1
  7. package/common/baseuploadcontrol.d.ts +0 -5
  8. package/common/baseuploadcontrol.d.ts.map +1 -1
  9. package/controls/checkbox/checkbox.d.ts +13 -4
  10. package/controls/checkbox/checkbox.d.ts.map +1 -1
  11. package/controls/datetime/date.d.ts +0 -4
  12. package/controls/datetime/date.d.ts.map +1 -1
  13. package/controls/datetime/datetime.d.ts +0 -4
  14. package/controls/datetime/datetime.d.ts.map +1 -1
  15. package/controls/datetime/time.d.ts +0 -4
  16. package/controls/datetime/time.d.ts.map +1 -1
  17. package/controls/grid/grid.d.ts +38 -36
  18. package/controls/grid/grid.d.ts.map +1 -1
  19. package/controls/grid/gridbutton.d.ts +14 -14
  20. package/controls/grid/gridbutton.d.ts.map +1 -1
  21. package/controls/grid/gridcolumn.d.ts +8 -8
  22. package/controls/grid/gridcolumn.d.ts.map +1 -1
  23. package/controls/grid/gridcolumnaction.d.ts +3 -3
  24. package/controls/grid/gridcolumnaction.d.ts.map +1 -1
  25. package/controls/grid/gridcolumnbase.d.ts +38 -38
  26. package/controls/grid/gridcolumnbase.d.ts.map +1 -1
  27. package/controls/grid/gridimage.d.ts +2 -2
  28. package/controls/grid/gridimage.d.ts.map +1 -1
  29. package/controls/grid/model.d.ts +51 -42
  30. package/controls/grid/model.d.ts.map +1 -1
  31. package/controls/grid/paging.d.ts +41 -43
  32. package/controls/grid/paging.d.ts.map +1 -1
  33. package/controls/input/inputsearch.d.ts +14 -5
  34. package/controls/input/inputsearch.d.ts.map +1 -1
  35. package/controls/layout/formlayout.d.ts +13 -1
  36. package/controls/layout/formlayout.d.ts.map +1 -1
  37. package/controls/static/formcontainer.d.ts +3 -7
  38. package/controls/static/formcontainer.d.ts.map +1 -1
  39. package/controls/tooltip/tooltip.d.ts +88 -63
  40. package/controls/tooltip/tooltip.d.ts.map +1 -1
  41. package/esm2022/common/basedatetimecontrol.mjs +3 -3
  42. package/esm2022/common/baseinputcontrol.mjs +8 -10
  43. package/esm2022/common/basemodelcontrol.mjs +66 -57
  44. package/esm2022/common/baseuploadcontrol.mjs +42 -42
  45. package/esm2022/controls/checkbox/checkbox.mjs +12 -6
  46. package/esm2022/controls/datetime/date.mjs +16 -15
  47. package/esm2022/controls/datetime/datetime.mjs +16 -15
  48. package/esm2022/controls/datetime/time.mjs +16 -15
  49. package/esm2022/controls/grid/grid.mjs +23 -23
  50. package/esm2022/controls/grid/gridbutton.mjs +20 -15
  51. package/esm2022/controls/grid/gridcolumn.mjs +20 -13
  52. package/esm2022/controls/grid/gridcolumnaction.mjs +8 -7
  53. package/esm2022/controls/grid/gridcolumnbase.mjs +31 -30
  54. package/esm2022/controls/grid/gridimage.mjs +5 -5
  55. package/esm2022/controls/grid/model.mjs +53 -35
  56. package/esm2022/controls/grid/paging.mjs +42 -44
  57. package/esm2022/controls/input/inputsearch.mjs +14 -7
  58. package/esm2022/controls/layout/formlayout.mjs +16 -12
  59. package/esm2022/controls/static/formcontainer.mjs +13 -10
  60. package/esm2022/controls/tooltip/tooltip.mjs +101 -76
  61. package/esm2022/interfaces/ISacConfigurationService.mjs +3 -3
  62. package/esm2022/interfaces/ISacIconService.mjs +3 -3
  63. package/esm2022/services/sac-configuration.service.mjs +18 -12
  64. package/esm2022/services/sac-icon.service.mjs +15 -11
  65. package/esm2022/validation/isDateValid.mjs +10 -5
  66. package/fesm2022/simpleangularcontrols-sac-common.mjs +1294 -1194
  67. package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
  68. package/interfaces/ISacConfigurationService.d.ts +12 -0
  69. package/interfaces/ISacConfigurationService.d.ts.map +1 -1
  70. package/interfaces/ISacIconService.d.ts +8 -0
  71. package/interfaces/ISacIconService.d.ts.map +1 -1
  72. package/package.json +1 -1
  73. package/services/sac-configuration.service.d.ts +24 -0
  74. package/services/sac-configuration.service.d.ts.map +1 -1
  75. package/services/sac-icon.service.d.ts +16 -0
  76. package/services/sac-icon.service.d.ts.map +1 -1
  77. package/simpleangularcontrols-sac-common-16.0.0-rc.9.tgz +0 -0
  78. package/validation/isDateValid.d.ts.map +1 -1
  79. package/simpleangularcontrols-sac-common-16.0.0-rc.7.tgz +0 -0
@@ -1,141 +1,166 @@
1
- import { ChangeDetectorRef, ElementRef, OnDestroy, OnInit } from '@angular/core';
1
+ import { AfterViewChecked, ChangeDetectorRef, DoCheck, ElementRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { TooltipPosition } from '../../utilities/enums';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * Tooltip Component
6
6
  *
7
- * Benötigt im HTML Markup folgende Identifier
8
- * - container: Container für ng-content in welchem das Element angezeigt wird, wo der Tooltip angehängt wird.
9
- * - tooltip: Container für Tooltip
7
+ * Requires the following identifiers in the HTML markup
8
+ * - container: Container for ng-content in which the element is displayed where the tooltip is attached.
9
+ * - tooltip: Container for tooltip
10
10
  *
11
- * Tooltip muss in 2 Schritten angezeigt werden. In einem ersten Schritt wird der Tooltip Markup erzeugt mit (ngIf). In einem 2. Schritt
12
- * kann der Tooltip dann über die CSS visibility angezeigt werden. Wird dies nicht so gemacht, kann es bei gewissen Browsern zu einem Flacker Effekt führen.
11
+ * Tooltip must be displayed in 2 steps. In a first step the tooltip markup is created with (ngIf). In a 2nd step
12
+ * the tooltip can then be displayed via the CSS visibility. If this is not done, it can lead to a flickering effect in certain browsers.
13
13
  *
14
14
  */
15
- export declare class SacTooltipCommon implements OnInit, OnDestroy {
16
- private cdRef;
17
- private ref;
15
+ export declare abstract class SacTooltipCommon implements OnInit, OnDestroy, AfterViewChecked, DoCheck {
16
+ private readonly cdRef;
17
+ private readonly ref;
18
18
  /**
19
- * Property für Enum in Angular HTML Template
19
+ * Inline mode for tooltip
20
20
  */
21
- TooltipPosition: typeof TooltipPosition;
21
+ private _inlinemode;
22
22
  /**
23
- * Definiert ob der Tooltip sichtbar ist
23
+ * Defines whether the tooltip is visible
24
24
  */
25
25
  private _isTooltipVisible;
26
26
  /**
27
- * Position des Tooltips oben
27
+ * method if content has changed and proportions need to be reset in the UI.
28
28
  */
29
- TopPos: number;
29
+ private readonly onContentChange;
30
30
  /**
31
- * Position des Tooltips links
31
+ * Containers for the tooltip
32
32
  */
33
- LeftPos: number;
33
+ private tooltipcontainer;
34
34
  /**
35
- * Position des Tooltips. Werte: left|top|right|bottom|auto
35
+ * Position of the tooltip. Values: left|top|right|bottom|auto
36
36
  *
37
- * Wert 'auto' kann mit einem anderen Wert kombiniert werden.
37
+ * Value 'auto' can be combined with another value.
38
38
  */
39
39
  position: string;
40
40
  /**
41
- * Text für ToolTip
41
+ * Text for ToolTip
42
42
  */
43
43
  tooltiptext: string;
44
44
  /**
45
- * Inline Mode für Tooltip
45
+ * Name of the container for content (e.g. icon) on which the tooltip is displayed.
46
46
  */
47
- private _inlinemode;
47
+ content: ElementRef<HTMLElement>;
48
48
  /**
49
- * Definiert ob der Tooltip sichtbar sein soll
49
+ * Position of the tooltip on the left
50
50
  */
51
51
  IsTooltipContentVisible: boolean;
52
52
  /**
53
- * Setter für Inline Mode für Tooltip
53
+ * Position des Tooltips links
54
54
  */
55
- set inlinemode(value: boolean);
55
+ LeftPos: number;
56
56
  /**
57
- * Getter für Inline Mode für Tooltip
57
+ * Property for enum in Angular HTML template
58
58
  */
59
- get inlinemode(): boolean;
59
+ TooltipPosition: typeof TooltipPosition;
60
60
  /**
61
- * Name des Containers für Content (z.B. Icon) auf welchem der Tooltip angezeigt wird.
61
+ * Position of the tooltip at the top
62
62
  */
63
- content: ElementRef<HTMLElement>;
63
+ TopPos: number;
64
64
  /**
65
- * Name des Containers für den Tooltip
65
+ * Konstruktor
66
+ * @param ref Element Referenz
66
67
  */
67
- private tooltipcontainer;
68
+ constructor(cdRef: ChangeDetectorRef, ref: ElementRef);
68
69
  /**
69
- * Setter für Name des Containers für den Tooltip. Wird benötigt, da Tooltip via NGIF ausgeblendet werden kann.
70
+ * Setter for inline mode for tooltip
70
71
  */
71
- set tooltip(content: ElementRef);
72
+ set inlinemode(value: boolean);
72
73
  /**
73
- * Konstruktor
74
- * @param ref Element Referenz
74
+ * Setter for the name of the container for the tooltip. Is required as the tooltip can be hidden via ngIf.
75
75
  */
76
- constructor(cdRef: ChangeDetectorRef, ref: ElementRef);
76
+ set tooltip(content: ElementRef);
77
77
  /**
78
- * Ervent wenn das Control initialisert wird
78
+ * Property for inline mode for tooltip. Sets the display mode on the wrapper element to `inline`
79
79
  */
80
- ngOnInit(): void;
80
+ get inlinemode(): boolean;
81
+ get tooltop(): ElementRef;
81
82
  /**
82
- * Event wenn das Control zerstört wird.
83
+ * Returns the position of the tooltip
83
84
  */
84
- ngOnDestroy(): void;
85
+ GetTooltipPosition(): TooltipPosition;
85
86
  /**
86
- * Berechnet die Position des Tooltips von Oben
87
+ * Hide tooltip
87
88
  */
88
- private getTopPosition;
89
+ HideTooltip(): void;
89
90
  /**
90
- * Berechnet die Position des Tooltips von Links
91
+ * Defines whether the tooltip is present in the markup
91
92
  */
92
- private getLeftPosition;
93
+ IsTooltipVisible(): boolean;
93
94
  /**
94
- * Berechnet die Höhe des Tooltips
95
+ * Show tooltip
95
96
  */
96
- private getToolTipHeight;
97
+ ShowTooltip(): void;
97
98
  /**
98
- * Berechnet die Breite die Tooltips
99
+ * Calculates the height of the tooltip
99
100
  */
100
- private getToolTipWidth;
101
+ getToolTipHeight(): number;
101
102
  /**
102
- * Definiert ob der Tooltip im Markup vorhanden ist
103
+ * Calculates the width of the tooltips
103
104
  */
104
- IsTooltipVisible(): boolean;
105
+ getToolTipWidth(): number;
105
106
  /**
106
- * Tooltip anzeigen
107
+ * Detect Changes after view checked. Prevent ExpressionChangedAfterItHasBeenCheckedError error
107
108
  */
108
- ShowTooltip(): void;
109
+ ngAfterViewChecked(): void;
109
110
  /**
110
- * Tooltip ausblenden
111
+ * Detect UI Changes to Calculate Tooltip correct
111
112
  */
112
- HideTooltip(): void;
113
+ ngDoCheck(): void;
113
114
  /**
114
- * Methode wenn Content geändert hat und Proporties im UI neu gesetzt werden müssen.
115
+ * Event when the control is destroyed.
115
116
  */
116
- private onContentChange;
117
+ ngOnDestroy(): void;
117
118
  /**
118
- * Gibt die Position des Tooltips zurück
119
+ * Event when the control is initialized
119
120
  */
120
- GetTooltipPosition(): TooltipPosition;
121
+ ngOnInit(): void;
121
122
  /**
122
- * Definiert ob AutoPosition aktiv ist
123
+ * Offset for Tooltip. Required for BS4/BS5 to create padding
123
124
  */
124
- private IsAutoPosition;
125
+ protected abstract getTooltipOffset(): number;
125
126
  /**
126
- * Gibt die definierte Position für den Tooltip zurück
127
+ * Returns the defined position for the tooltip
127
128
  */
128
129
  private GetPosition;
129
130
  /**
130
- * Gibt zurück, ob die Position konfiguriert wurde
131
+ * Returns whether the position has been configured
131
132
  *
132
- * @param position Position auf welche geprüft wird
133
+ * @param position Position to be checked
133
134
  */
134
135
  private HasPosition;
135
136
  /**
136
- * Prüft ob die Position gültig ist, resp. der Tooltip auf die Position platz hat
137
+ * Defines whether AutoPosition is active
138
+ */
139
+ private IsAutoPosition;
140
+ /**
141
+ * Checks whether the position is valid or whether the tooltip on the position has space
137
142
  */
138
143
  private ValidatePositions;
144
+ /**
145
+ * Calculates the position of the tooltip from links
146
+ */
147
+ private getLeftPosition;
148
+ /**
149
+ * Calculates the position of the tooltip from the top
150
+ */
151
+ private getTopPosition;
152
+ /**
153
+ * Calculates the top of the page inside all elements
154
+ * @param element HTML Element
155
+ * @returns summarized top value for absolute position
156
+ */
157
+ private getOffsetTopParent;
158
+ /**
159
+ * Caclulate Scrollbars inside tree
160
+ * @param element HTML Element
161
+ * @returns Scroll top value of element with all childs
162
+ */
163
+ private getScrollTopParent;
139
164
  static ɵfac: i0.ɵɵFactoryDeclaration<SacTooltipCommon, never>;
140
165
  static ɵdir: i0.ɵɵDirectiveDeclaration<SacTooltipCommon, never, never, { "position": { "alias": "position"; "required": false; }; "tooltiptext": { "alias": "tooltiptext"; "required": false; }; "inlinemode": { "alias": "inlinemode"; "required": false; }; }, {}, never, never, false, never>;
141
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../projects/sac-common/src/controls/tooltip/tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAa,UAAU,EAAS,SAAS,EAAE,MAAM,EAAa,MAAM,eAAe,CAAC;AAE9G,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;;AAExD;;;;;;;;;;GAUG;AACH,qBACa,gBAAiB,YAAW,MAAM,EAAE,SAAS;IAuF5C,OAAO,CAAC,KAAK;IAAqB,OAAO,CAAC,GAAG;IAtFzD;;OAEG;IACH,eAAe,yBAAmB;IAElC;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAAkB;IAE3C;;OAEG;IACH,MAAM,EAAE,MAAM,CAAK;IAEnB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAK;IAEpB;;;;OAIG;IAEH,QAAQ,EAAE,MAAM,CAAgB;IAEhC;;OAEG;IAEH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,WAAW,CAAU;IAE7B;;OAEG;IACH,uBAAuB,EAAE,OAAO,CAAS;IAEzC;;OAEG;IACH,IACI,UAAU,CAAC,KAAK,EAAE,OAAO,EAE5B;IACD;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACuC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAE3E;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAA0B;IAElD;;OAEG;IACH,IACI,OAAO,CAAC,OAAO,EAAE,UAAU,EAQ9B;IAED;;;OAGG;gBACiB,KAAK,EAAE,iBAAiB,EAAU,GAAG,EAAE,UAAU;IAErE;;OAEG;IACH,QAAQ;IAUR;;OAEG;IACH,WAAW;IAUX;;OAEG;IACH,OAAO,CAAC,cAAc;IAiCtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAkCvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAI3B;;OAEG;IACH,WAAW,IAAI,IAAI;IASnB;;OAEG;IACH,WAAW,IAAI,IAAI;IAKnB;;OAEG;IACH,OAAO,CAAC,eAAe,CAKtB;IAED;;OAEG;IACI,kBAAkB,IAAI,eAAe;IAoD5C;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAuBnB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAsBnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;yCA/Wd,gBAAgB;2CAAhB,gBAAgB;CAyZ5B"}
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../projects/sac-common/src/controls/tooltip/tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAEjB,OAAO,EACP,UAAU,EAEV,SAAS,EACT,MAAM,EAEP,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;;AAExD;;;;;;;;;;GAUG;AACH,8BACsB,gBAAiB,YAAW,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO;IAyEhF,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAqB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAtE3E;;OAEG;IACH,OAAO,CAAC,WAAW,CAAU;IAC7B;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAAkB;IAC3C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAU9B;IACF;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAA0B;IAElD;;;;OAIG;IAEI,QAAQ,EAAE,MAAM,CAAgB;IACvC;;OAEG;IAEI,WAAW,EAAE,MAAM,CAAC;IAC3B;;OAEG;IAEI,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAExC;;OAEG;IACI,uBAAuB,EAAE,OAAO,CAAS;IAChD;;OAEG;IACI,OAAO,EAAE,MAAM,CAAK;IAC3B;;OAEG;IACI,eAAe,yBAAmB;IACzC;;OAEG;IACI,MAAM,EAAE,MAAM,CAAK;IAM1B;;;OAGG;gBAC0B,KAAK,EAAE,iBAAiB,EAAmB,GAAG,EAAE,UAAU;IAMvF;;OAEG;IACH,IACW,UAAU,CAAC,KAAK,EAAE,OAAO,EAEnC;IAED;;OAEG;IACH,IACW,OAAO,CAAC,OAAO,EAAE,UAAU,EAQrC;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED,IAAW,OAAO,IAAI,UAAU,CAE/B;IAMD;;OAEG;IACI,kBAAkB,IAAI,eAAe;IA+D5C;;OAEG;IACI,WAAW,IAAI,IAAI;IAK1B;;OAEG;IACI,gBAAgB,IAAI,OAAO;IAIlC;;OAEG;IACI,WAAW,IAAI,IAAI;IAW1B;;OAEG;IACI,gBAAgB,IAAI,MAAM;IAQjC;;OAEG;IACI,eAAe,IAAI,MAAM;IAQhC;;OAEG;IACI,kBAAkB,IAAI,IAAI;IASjC;;OAEG;IACI,SAAS,IAAI,IAAI;IAUxB;;OAEG;IACI,WAAW;IAUlB;;OAEG;IACI,QAAQ;IAcf;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,MAAM;IAM7C;;OAEG;IACH,OAAO,CAAC,WAAW;IAuBnB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAyBnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2CzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiCvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmCtB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;yCArfN,gBAAgB;2CAAhB,gBAAgB;CAigBrC"}
@@ -1,4 +1,4 @@
1
- function cov_2if8on3zmg(){var path="C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\common\\basedatetimecontrol.mjs";var hash="91db58b81e55ff178a9c36c73e9bc0f0f1777104";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\common\\basedatetimecontrol.mjs",statementMap:{"0":{start:{line:10,column:15},end:{line:10,column:33}},"1":{start:{line:24,column:8},end:{line:24,column:36}},"2":{start:{line:25,column:8},end:{line:25,column:37}},"3":{start:{line:30,column:8},end:{line:30,column:33}},"4":{start:{line:34,column:8},end:{line:34,column:32}},"5":{start:{line:38,column:8},end:{line:38,column:32}},"6":{start:{line:42,column:8},end:{line:42,column:103}},"7":{start:{line:46,column:8},end:{line:46,column:117}},"8":{start:{line:50,column:8},end:{line:50,column:91}},"9":{start:{line:54,column:8},end:{line:54,column:105}},"10":{start:{line:62,column:8},end:{line:62,column:32}},"11":{start:{line:63,column:19},end:{line:63,column:68}},"12":{start:{line:64,column:8},end:{line:64,column:58}},"13":{start:{line:65,column:8},end:{line:70,column:9}},"14":{start:{line:66,column:12},end:{line:66,column:39}},"15":{start:{line:69,column:12},end:{line:69,column:30}},"16":{start:{line:76,column:8},end:{line:82,column:9}},"17":{start:{line:77,column:12},end:{line:77,column:39}},"18":{start:{line:80,column:25},end:{line:80,column:47}},"19":{start:{line:81,column:12},end:{line:81,column:71}},"20":{start:{line:90,column:21},end:{line:90,column:40}},"21":{start:{line:91,column:21},end:{line:91,column:42}},"22":{start:{line:92,column:22},end:{line:92,column:40}},"23":{start:{line:93,column:20},end:{line:93,column:37}},"24":{start:{line:94,column:22},end:{line:94,column:40}},"25":{start:{line:95,column:24},end:{line:95,column:44}},"26":{start:{line:96,column:24},end:{line:96,column:44}},"27":{start:{line:97,column:8},end:{line:97,column:75}},"28":{start:{line:103,column:8},end:{line:103,column:25}},"29":{start:{line:104,column:8},end:{line:104,column:33}},"30":{start:{line:110,column:8},end:{line:110,column:29}},"31":{start:{line:116,column:20},end:{line:116,column:24}},"32":{start:{line:117,column:8},end:{line:117,column:125}},"33":{start:{line:118,column:8},end:{line:120,column:9}},"34":{start:{line:119,column:12},end:{line:119,column:114}},"35":{start:{line:121,column:8},end:{line:121,column:21}},"36":{start:{line:127,column:8},end:{line:135,column:9}},"37":{start:{line:129,column:12},end:{line:129,column:37}},"38":{start:{line:131,column:12},end:{line:131,column:31}},"39":{start:{line:134,column:12},end:{line:134,column:55}},"40":{start:{line:136,column:8},end:{line:136,column:38}},"41":{start:{line:142,column:8},end:{line:145,column:9}},"42":{start:{line:143,column:12},end:{line:144,column:47}},"43":{start:{line:147,column:13},end:{line:147,column:268}},"44":{start:{line:148,column:13},end:{line:148,column:532}},"45":{start:{line:151,column:0},end:{line:167,column:20}},"46":{start:{line:153,column:42},end:{line:153,column:132}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:23,column:4},end:{line:23,column:5}},loc:{start:{line:23,column:50},end:{line:55,column:5}},line:23},"1":{name:"(anonymous_1)",decl:{start:{line:61,column:4},end:{line:61,column:5}},loc:{start:{line:61,column:23},end:{line:71,column:5}},line:61},"2":{name:"(anonymous_2)",decl:{start:{line:75,column:4},end:{line:75,column:5}},loc:{start:{line:75,column:22},end:{line:83,column:5}},line:75},"3":{name:"(anonymous_3)",decl:{start:{line:89,column:4},end:{line:89,column:5}},loc:{start:{line:89,column:23},end:{line:98,column:5}},line:89},"4":{name:"(anonymous_4)",decl:{start:{line:102,column:4},end:{line:102,column:5}},loc:{start:{line:102,column:15},end:{line:105,column:5}},line:102},"5":{name:"(anonymous_5)",decl:{start:{line:109,column:4},end:{line:109,column:5}},loc:{start:{line:109,column:22},end:{line:111,column:5}},line:109},"6":{name:"(anonymous_6)",decl:{start:{line:115,column:4},end:{line:115,column:5}},loc:{start:{line:115,column:20},end:{line:122,column:5}},line:115},"7":{name:"(anonymous_7)",decl:{start:{line:126,column:4},end:{line:126,column:5}},loc:{start:{line:126,column:22},end:{line:137,column:5}},line:126},"8":{name:"(anonymous_8)",decl:{start:{line:140,column:4},end:{line:140,column:5}},loc:{start:{line:140,column:24},end:{line:146,column:5}},line:140},"9":{name:"(anonymous_9)",decl:{start:{line:153,column:28},end:{line:153,column:29}},loc:{start:{line:153,column:40},end:{line:153,column:134}},line:153}},branchMap:{"0":{loc:{start:{line:65,column:8},end:{line:70,column:9}},type:"if",locations:[{start:{line:65,column:8},end:{line:70,column:9}},{start:{line:65,column:8},end:{line:70,column:9}}],line:65},"1":{loc:{start:{line:76,column:8},end:{line:82,column:9}},type:"if",locations:[{start:{line:76,column:8},end:{line:82,column:9}},{start:{line:76,column:8},end:{line:82,column:9}}],line:76},"2":{loc:{start:{line:118,column:8},end:{line:120,column:9}},type:"if",locations:[{start:{line:118,column:8},end:{line:120,column:9}},{start:{line:118,column:8},end:{line:120,column:9}}],line:118},"3":{loc:{start:{line:127,column:8},end:{line:135,column:9}},type:"if",locations:[{start:{line:127,column:8},end:{line:135,column:9}},{start:{line:127,column:8},end:{line:135,column:9}}],line:127},"4":{loc:{start:{line:127,column:12},end:{line:127,column:65}},type:"binary-expr",locations:[{start:{line:127,column:12},end:{line:127,column:24}},{start:{line:127,column:28},end:{line:127,column:42}},{start:{line:127,column:46},end:{line:127,column:65}}],line:127},"5":{loc:{start:{line:142,column:8},end:{line:145,column:9}},type:"if",locations:[{start:{line:142,column:8},end:{line:145,column:9}},{start:{line:142,column:8},end:{line:145,column:9}}],line:142}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0,0],"5":[0,0]},inputSourceMap:{version:3,file:"basedatetimecontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/basedatetimecontrol.ts"],names:[],mappings:"AAAA,OAAO,EAAE,SAAS,EAAwB,KAAK,EAAU,MAAM,eAAe,CAAC;AAE/E,OAAO,KAAK,OAAO,MAAM,QAAQ,CAAC;AAIlC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;;;AACzD;;GAEG;AACH,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC;;GAEG;AACH,MACsB,sBACpB,SAAQ,mBAAyB;IAuCjC,wBAAwB;IAExB,uBAAuB;IAEvB;;;;;OAKG;IACH,YACE,UAA+B,EAC/B,QAAkB,EACR,UAAsB;QAEhC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAFlB,eAAU,GAAV,UAAU,CAAY;QAjDlC,qBAAqB;QAErB;;WAEG;QACO,mBAAc,GAAG,EAAE,CAAC;QAE9B;;WAEG;QACa,eAAU,GAAY,KAAK,CAAC;QAC5C;;WAEG;QACa,gBAAW,GAAW,IAAI,CAAC;QAC3C;;WAEG;QACa,oCAA+B,GAC7C,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC;QAC1D;;WAEG;QACa,2CAAsC,GACpD,IAAI,CAAC,oBAAoB,CAAC,oCAAoC,CAAC;QACjE;;WAEG;QACa,8BAAyB,GACvC,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,CAAC;QACpD;;WAEG;QACa,qCAAgC,GAC9C,IAAI,CAAC,oBAAoB,CAAC,8BAA8B,CAAC;IAkB3D,CAAC;IAED,0BAA0B;IAE1B,qCAAqC;IAErC;;OAEG;IACH,IACW,WAAW,CAAC,CAAS;QAC9B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,IAAI,GAAW,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAErE,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QAElD,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;IAED;;OAEG;IACH,IAAW,WAAW;QACpB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YACvB,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;aAAM;YACL,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;SAC5D;IACH,CAAC;IAED,wCAAwC;IAExC,yBAAyB;IAEzB;;OAEG;IACI,OAAO,CAAC,SAAS;QACtB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAErC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACI,QAAQ;QACb,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,CAAS;QAC7B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,CAAkB;QACpC,IAAI,KAAK,GAA4B,IAAI,CAAC;QAE1C,KAAK,GAAG,UAAU,CAAC,WAAW,CAC5B,IAAI,CAAC,+BAA+B,EACpC,IAAI,CAAC,sCAAsC,CAC5C,CAAC,CAAC,CAAC,CAAC;QAEL,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,KAAK,GAAG,UAAU,CAAC,QAAQ,CACzB,IAAI,CAAC,yBAAyB,EAC9B,IAAI,CAAC,gCAAgC,CACtC,CAAC,CAAC,CAAC,CAAC;SACN;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,KAAoB;QACpC,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YACzD,qFAAqF;YACrF,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,wBAAwB;YACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;SAC5C;QAED,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAeD,qCAAqC;IAErC,0BAA0B;IAElB,iBAAiB;QACvB,mIAAmI;QACnI,IAAI,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAyC,CAAC,oBAAoB;gBAClE,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAClC;IACH,CAAC;+GAzLmB,sBAAsB;mGAAtB,sBAAsB;;SAAtB,sBAAsB;4FAAtB,sBAAsB;kBAD3C,SAAS;0JAeQ,UAAU;sBAAzB,KAAK;gBAIU,WAAW;sBAA1B,KAAK;gBAIU,+BAA+B;sBAA9C,KAAK;gBAKU,sCAAsC;sBAArD,KAAK;gBAKU,yBAAyB;sBAAxC,KAAK;gBAKU,gCAAgC;sBAA/C,KAAK;gBA6BK,WAAW;sBADrB,KAAK",sourcesContent:["import { Directive, ElementRef, Injector, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport * as moment_ from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { SacFormLayoutCommon } from '../controls/layout/formlayout';\r\nimport { IDateTimeControl } from '../interfaces/idatetimecontrol';\r\nimport { Validation } from '../validation';\r\nimport { SacBaseModelControl } from './basemodelcontrol';\r\n/**\r\n * Moment\r\n */\r\nconst moment = moment_['default'];\r\n/**\r\n * Base Klasse f\xFCr Date/Time Controls\r\n */\r\n@Directive()\r\nexport abstract class SacBaseDateTimeControl\r\n extends SacBaseModelControl<Date>\r\n implements OnInit\r\n{\r\n // #region Properties\r\n\r\n /**\r\n * das property enthielt das Value als string. Default ist ''\r\n */\r\n protected _valueAsString = '';\r\n\r\n /**\r\n * Definiert das Control als Required\r\n */\r\n @Input() public isrequired: boolean = false;\r\n /**\r\n * TextBox Placeholder\r\n */\r\n @Input() public placeholder: string = null;\r\n /**\r\n * Resource Key f\xFCr Validation Message DateTimeFormat bei Control\r\n */\r\n @Input() public validationmessagedatetimeformat: string =\r\n this.validationKeyService.ValidationErrorDatetimeFormat;\r\n /**\r\n * Resource Key f\xFCr Validation Message DateTimeFormat in Validation Summary\r\n */\r\n @Input() public validationmessagedatetimeformatsummary: string =\r\n this.validationKeyService.ValidationErrorSummaryDatetimeFormat;\r\n /**\r\n * Resource Key f\xFCr Validation Message Required bei Control\r\n */\r\n @Input() public validationmessagerequired: string =\r\n this.validationKeyService.ValidationErrorRequired;\r\n /**\r\n * Resource Key f\xFCr Validation Message Required in Validation Summary\r\n */\r\n @Input() public validationmessagerequiredsummary: string =\r\n this.validationKeyService.ValidationErrorSummaryRequired;\r\n\r\n // #endregion Properties\r\n\r\n // #region Constructors\r\n\r\n /**\r\n * Constructor\r\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\r\n * @param injector Injector for injecting services\r\n * @param elementRef reference to html element\r\n */\r\n constructor(\r\n formlayout: SacFormLayoutCommon,\r\n injector: Injector,\r\n protected elementRef: ElementRef\r\n ) {\r\n super(formlayout, injector);\r\n }\r\n\r\n // #endregion Constructors\r\n\r\n // #region Public Getters And Setters\r\n\r\n /**\r\n * Das Input bekommt das value von typ string\r\n */\r\n @Input()\r\n public set valuestring(v: string) {\r\n this._valueAsString = v;\r\n let date: Moment = moment(v, [this.GetDateTimeFormatString()], true);\r\n\r\n date = this.ModifyParsedDateTimeValue(date).utc();\r\n\r\n if (date.isValid()) {\r\n this.value = date.toDate();\r\n } else {\r\n this.value = null;\r\n }\r\n }\r\n\r\n /**\r\n * getter f\xFCr valuestring\r\n */\r\n public get valuestring(): string {\r\n if (this.value === null) {\r\n return this._valueAsString;\r\n } else {\r\n const date = moment.utc(this.value);\r\n return date.local().format(this.GetDateTimeFormatString());\r\n }\r\n }\r\n\r\n // #endregion Public Getters And Setters\r\n\r\n // #region Public Methods\r\n\r\n /**\r\n * JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann\r\n */\r\n public getDate(timestamp) {\r\n const date = new Date(timestamp);\r\n const year = date.getUTCFullYear();\r\n const month = date.getUTCMonth();\r\n const day = date.getUTCDate();\r\n const hours = date.getUTCHours();\r\n const minutes = date.getUTCMinutes();\r\n const seconds = date.getUTCSeconds();\r\n\r\n return moment(Date.UTC(year, month, day, hours, minutes, seconds));\r\n }\r\n\r\n /**\r\n * Init Event\r\n */\r\n public ngOnInit(): void {\r\n super.ngOnInit();\r\n this.SetDateTimeFormat();\r\n }\r\n\r\n /**\r\n * setzt das value von typ string zu property valuestring\r\n */\r\n public setValueString(v: string) {\r\n this.valuestring = v;\r\n }\r\n\r\n /**\r\n * Validator\r\n */\r\n public validateData(c: AbstractControl): ValidationErrors | null {\r\n let error: ValidationErrors | null = null;\r\n\r\n error = Validation.isValidDate(\r\n this.validationmessagedatetimeformat,\r\n this.validationmessagedatetimeformatsummary\r\n )(c);\r\n\r\n if (this.isrequired) {\r\n error = Validation.required(\r\n this.validationmessagerequired,\r\n this.validationmessagerequiredsummary\r\n )(c);\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * Overwrite WriteValue to Set correct Date Object\r\n */\r\n public writeValue(value: Date | string) {\r\n if (value === '' || value === null || value === undefined) {\r\n // Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.\r\n this._valueAsString = '';\r\n // Set Internal Property\r\n this._value = null;\r\n } else {\r\n this._value = this.getDate(value).toDate();\r\n }\r\n\r\n super.writeValue(this._value);\r\n }\r\n\r\n // #endregion Public Methods\r\n\r\n // #region Public Abstract Methods\r\n\r\n /**\r\n * Die methode returns dateTime in string\r\n */\r\n public abstract GetDateTimeFormatString(): string;\r\n /**\r\n * Die methode modifiziert das eingegebene Value von typ Moment\r\n */\r\n public abstract ModifyParsedDateTimeValue(v: Moment): Moment;\r\n\r\n // #endregion Public Abstract Methods\r\n\r\n // #region Private Methods\r\n\r\n private SetDateTimeFormat(): void {\r\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\r\n if (this.ngControl) {\r\n (this.ngControl as unknown as IDateTimeControl).datetimeformatstring =\r\n this.GetDateTimeFormatString();\r\n }\r\n }\r\n\r\n // #endregion Private Methods\r\n}\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"91db58b81e55ff178a9c36c73e9bc0f0f1777104"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
1
+ function cov_2if8on3zmg(){var path="C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\common\\basedatetimecontrol.mjs";var hash="8690cba56036d39f4ad94329ac08f9c7bebaede5";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\common\\basedatetimecontrol.mjs",statementMap:{"0":{start:{line:10,column:15},end:{line:10,column:33}},"1":{start:{line:24,column:8},end:{line:24,column:36}},"2":{start:{line:25,column:8},end:{line:25,column:37}},"3":{start:{line:30,column:8},end:{line:30,column:33}},"4":{start:{line:34,column:8},end:{line:34,column:32}},"5":{start:{line:38,column:8},end:{line:38,column:32}},"6":{start:{line:42,column:8},end:{line:42,column:103}},"7":{start:{line:46,column:8},end:{line:46,column:117}},"8":{start:{line:50,column:8},end:{line:50,column:91}},"9":{start:{line:54,column:8},end:{line:54,column:105}},"10":{start:{line:62,column:8},end:{line:62,column:32}},"11":{start:{line:63,column:19},end:{line:63,column:68}},"12":{start:{line:64,column:8},end:{line:64,column:58}},"13":{start:{line:65,column:8},end:{line:70,column:9}},"14":{start:{line:66,column:12},end:{line:66,column:39}},"15":{start:{line:69,column:12},end:{line:69,column:30}},"16":{start:{line:76,column:8},end:{line:82,column:9}},"17":{start:{line:77,column:12},end:{line:77,column:39}},"18":{start:{line:80,column:25},end:{line:80,column:47}},"19":{start:{line:81,column:12},end:{line:81,column:71}},"20":{start:{line:90,column:21},end:{line:90,column:40}},"21":{start:{line:91,column:21},end:{line:91,column:42}},"22":{start:{line:92,column:22},end:{line:92,column:40}},"23":{start:{line:93,column:20},end:{line:93,column:37}},"24":{start:{line:94,column:22},end:{line:94,column:40}},"25":{start:{line:95,column:24},end:{line:95,column:44}},"26":{start:{line:96,column:24},end:{line:96,column:44}},"27":{start:{line:97,column:8},end:{line:97,column:75}},"28":{start:{line:103,column:8},end:{line:103,column:25}},"29":{start:{line:104,column:8},end:{line:104,column:33}},"30":{start:{line:110,column:8},end:{line:110,column:29}},"31":{start:{line:116,column:20},end:{line:116,column:24}},"32":{start:{line:117,column:8},end:{line:117,column:125}},"33":{start:{line:118,column:8},end:{line:120,column:9}},"34":{start:{line:119,column:12},end:{line:119,column:114}},"35":{start:{line:121,column:8},end:{line:121,column:21}},"36":{start:{line:127,column:8},end:{line:135,column:9}},"37":{start:{line:129,column:12},end:{line:129,column:37}},"38":{start:{line:131,column:12},end:{line:131,column:31}},"39":{start:{line:134,column:12},end:{line:134,column:55}},"40":{start:{line:136,column:8},end:{line:136,column:38}},"41":{start:{line:142,column:8},end:{line:145,column:9}},"42":{start:{line:143,column:12},end:{line:144,column:47}},"43":{start:{line:147,column:13},end:{line:147,column:268}},"44":{start:{line:148,column:13},end:{line:148,column:532}},"45":{start:{line:151,column:0},end:{line:167,column:20}},"46":{start:{line:153,column:42},end:{line:153,column:132}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:23,column:4},end:{line:23,column:5}},loc:{start:{line:23,column:50},end:{line:55,column:5}},line:23},"1":{name:"(anonymous_1)",decl:{start:{line:61,column:4},end:{line:61,column:5}},loc:{start:{line:61,column:23},end:{line:71,column:5}},line:61},"2":{name:"(anonymous_2)",decl:{start:{line:75,column:4},end:{line:75,column:5}},loc:{start:{line:75,column:22},end:{line:83,column:5}},line:75},"3":{name:"(anonymous_3)",decl:{start:{line:89,column:4},end:{line:89,column:5}},loc:{start:{line:89,column:23},end:{line:98,column:5}},line:89},"4":{name:"(anonymous_4)",decl:{start:{line:102,column:4},end:{line:102,column:5}},loc:{start:{line:102,column:15},end:{line:105,column:5}},line:102},"5":{name:"(anonymous_5)",decl:{start:{line:109,column:4},end:{line:109,column:5}},loc:{start:{line:109,column:22},end:{line:111,column:5}},line:109},"6":{name:"(anonymous_6)",decl:{start:{line:115,column:4},end:{line:115,column:5}},loc:{start:{line:115,column:20},end:{line:122,column:5}},line:115},"7":{name:"(anonymous_7)",decl:{start:{line:126,column:4},end:{line:126,column:5}},loc:{start:{line:126,column:22},end:{line:137,column:5}},line:126},"8":{name:"(anonymous_8)",decl:{start:{line:140,column:4},end:{line:140,column:5}},loc:{start:{line:140,column:24},end:{line:146,column:5}},line:140},"9":{name:"(anonymous_9)",decl:{start:{line:153,column:28},end:{line:153,column:29}},loc:{start:{line:153,column:40},end:{line:153,column:134}},line:153}},branchMap:{"0":{loc:{start:{line:65,column:8},end:{line:70,column:9}},type:"if",locations:[{start:{line:65,column:8},end:{line:70,column:9}},{start:{line:65,column:8},end:{line:70,column:9}}],line:65},"1":{loc:{start:{line:76,column:8},end:{line:82,column:9}},type:"if",locations:[{start:{line:76,column:8},end:{line:82,column:9}},{start:{line:76,column:8},end:{line:82,column:9}}],line:76},"2":{loc:{start:{line:118,column:8},end:{line:120,column:9}},type:"if",locations:[{start:{line:118,column:8},end:{line:120,column:9}},{start:{line:118,column:8},end:{line:120,column:9}}],line:118},"3":{loc:{start:{line:127,column:8},end:{line:135,column:9}},type:"if",locations:[{start:{line:127,column:8},end:{line:135,column:9}},{start:{line:127,column:8},end:{line:135,column:9}}],line:127},"4":{loc:{start:{line:127,column:12},end:{line:127,column:65}},type:"binary-expr",locations:[{start:{line:127,column:12},end:{line:127,column:24}},{start:{line:127,column:28},end:{line:127,column:42}},{start:{line:127,column:46},end:{line:127,column:65}}],line:127},"5":{loc:{start:{line:142,column:8},end:{line:145,column:9}},type:"if",locations:[{start:{line:142,column:8},end:{line:145,column:9}},{start:{line:142,column:8},end:{line:145,column:9}}],line:142}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0,0],"5":[0,0]},inputSourceMap:{version:3,file:"basedatetimecontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/basedatetimecontrol.ts"],names:[],mappings:"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",sourcesContent:["import { Directive, ElementRef, Injector, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport * as moment_ from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { SacFormLayoutCommon } from '../controls/layout/formlayout';\r\nimport { IDateTimeControl } from '../interfaces/idatetimecontrol';\r\nimport { Validation } from '../validation';\r\nimport { SacBaseModelControl } from './basemodelcontrol';\r\n/**\r\n * Moment\r\n */\r\nconst moment = moment_['default'];\r\n/**\r\n * Base Klasse f\xFCr Date/Time Controls\r\n */\r\n@Directive()\r\nexport abstract class SacBaseDateTimeControl\r\n extends SacBaseModelControl<Date>\r\n implements OnInit\r\n{\r\n // #region Properties\r\n\r\n /**\r\n * das property enthielt das Value als string. Default ist ''\r\n */\r\n protected _valueAsString = '';\r\n\r\n /**\r\n * Definiert das Control als Required\r\n */\r\n @Input() public isrequired: boolean = false;\r\n /**\r\n * TextBox Placeholder\r\n */\r\n @Input() public placeholder: string = null;\r\n /**\r\n * Resource Key f\xFCr Validation Message DateTimeFormat bei Control\r\n */\r\n @Input() public validationmessagedatetimeformat: string =\r\n this.validationKeyService.ValidationErrorDatetimeFormat;\r\n /**\r\n * Resource Key f\xFCr Validation Message DateTimeFormat in Validation Summary\r\n */\r\n @Input() public validationmessagedatetimeformatsummary: string =\r\n this.validationKeyService.ValidationErrorSummaryDatetimeFormat;\r\n /**\r\n * Resource Key f\xFCr Validation Message Required bei Control\r\n */\r\n @Input() public validationmessagerequired: string =\r\n this.validationKeyService.ValidationErrorRequired;\r\n /**\r\n * Resource Key f\xFCr Validation Message Required in Validation Summary\r\n */\r\n @Input() public validationmessagerequiredsummary: string =\r\n this.validationKeyService.ValidationErrorSummaryRequired;\r\n\r\n // #endregion Properties\r\n\r\n // #region Constructors\r\n\r\n /**\r\n * Constructor\r\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\r\n * @param injector Injector for injecting services\r\n * @param elementRef reference to html element\r\n */\r\n constructor(\r\n formlayout: SacFormLayoutCommon,\r\n injector: Injector,\r\n protected elementRef: ElementRef\r\n ) {\r\n super(formlayout, injector);\r\n }\r\n\r\n // #endregion Constructors\r\n\r\n // #region Public Getters And Setters\r\n\r\n /**\r\n * Das Input bekommt das value von typ string\r\n */\r\n @Input()\r\n public set valuestring(v: string) {\r\n this._valueAsString = v;\r\n let date: Moment = moment(v, [this.GetDateTimeFormatString()], true);\r\n\r\n date = this.ModifyParsedDateTimeValue(date).utc();\r\n\r\n if (date.isValid()) {\r\n this.value = date.toDate();\r\n } else {\r\n this.value = null;\r\n }\r\n }\r\n\r\n /**\r\n * getter f\xFCr valuestring\r\n */\r\n public get valuestring(): string {\r\n if (this.value === null) {\r\n return this._valueAsString;\r\n } else {\r\n const date = moment.utc(this.value);\r\n return date.local().format(this.GetDateTimeFormatString());\r\n }\r\n }\r\n\r\n // #endregion Public Getters And Setters\r\n\r\n // #region Public Methods\r\n\r\n /**\r\n * JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann\r\n */\r\n public getDate(timestamp): moment.Moment {\r\n const date = new Date(timestamp);\r\n const year = date.getUTCFullYear();\r\n const month = date.getUTCMonth();\r\n const day = date.getUTCDate();\r\n const hours = date.getUTCHours();\r\n const minutes = date.getUTCMinutes();\r\n const seconds = date.getUTCSeconds();\r\n\r\n return moment(Date.UTC(year, month, day, hours, minutes, seconds));\r\n }\r\n\r\n /**\r\n * Init Event\r\n */\r\n public ngOnInit(): void {\r\n super.ngOnInit();\r\n this.SetDateTimeFormat();\r\n }\r\n\r\n /**\r\n * setzt das value von typ string zu property valuestring\r\n */\r\n public setValueString(v: string) {\r\n this.valuestring = v;\r\n }\r\n\r\n /**\r\n * Validator\r\n */\r\n public validateData(c: AbstractControl): ValidationErrors | null {\r\n let error: ValidationErrors | null = null;\r\n\r\n error = Validation.isValidDate(\r\n this.validationmessagedatetimeformat,\r\n this.validationmessagedatetimeformatsummary\r\n )(c);\r\n\r\n if (this.isrequired) {\r\n error = Validation.required(\r\n this.validationmessagerequired,\r\n this.validationmessagerequiredsummary\r\n )(c);\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * Overwrite WriteValue to Set correct Date Object\r\n */\r\n public writeValue(value: Date | string) {\r\n if (value === '' || value === null || value === undefined) {\r\n // Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.\r\n this._valueAsString = '';\r\n // Set Internal Property\r\n this._value = null;\r\n } else {\r\n this._value = this.getDate(value).toDate();\r\n }\r\n\r\n super.writeValue(this._value);\r\n }\r\n\r\n // #endregion Public Methods\r\n\r\n // #region Public Abstract Methods\r\n\r\n /**\r\n * Die methode returns dateTime in string\r\n */\r\n public abstract GetDateTimeFormatString(): string;\r\n /**\r\n * Die methode modifiziert das eingegebene Value von typ Moment\r\n */\r\n public abstract ModifyParsedDateTimeValue(v: Moment): Moment;\r\n\r\n // #endregion Public Abstract Methods\r\n\r\n // #region Private Methods\r\n\r\n private SetDateTimeFormat(): void {\r\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\r\n if (this.ngControl) {\r\n (this.ngControl as unknown as IDateTimeControl).datetimeformatstring =\r\n this.GetDateTimeFormatString();\r\n }\r\n }\r\n\r\n // #endregion Private Methods\r\n}\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"8690cba56036d39f4ad94329ac08f9c7bebaede5"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
2
  cov_2if8on3zmg=function(){return actualCoverage;};}return actualCoverage;}cov_2if8on3zmg();import{Directive,Input}from'@angular/core';import*as moment_ from'moment';import{Validation}from'../validation';import{SacBaseModelControl}from'./basemodelcontrol';import*as i0 from"@angular/core";import*as i1 from"../controls/layout/formlayout";/**
3
3
  * Moment
4
4
  */const moment=(cov_2if8on3zmg().s[0]++,moment_['default']);/**
@@ -48,5 +48,5 @@ this._valueAsString='';// Set Internal Property
48
48
  cov_2if8on3zmg().s[38]++;this._value=null;}else{cov_2if8on3zmg().b[3][1]++;cov_2if8on3zmg().s[39]++;this._value=this.getDate(value).toDate();}cov_2if8on3zmg().s[40]++;super.writeValue(this._value);}// #endregion Public Abstract Methods
49
49
  // #region Private Methods
50
50
  SetDateTimeFormat(){cov_2if8on3zmg().f[8]++;cov_2if8on3zmg().s[41]++;// HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
51
- if(this.ngControl){cov_2if8on3zmg().b[5][0]++;cov_2if8on3zmg().s[42]++;this.ngControl.datetimeformatstring=this.GetDateTimeFormatString();}else{cov_2if8on3zmg().b[5][1]++;}}static{cov_2if8on3zmg().s[43]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacBaseDateTimeControl,deps:[{token:i1.SacFormLayoutCommon},{token:i0.Injector},{token:i0.ElementRef}],target:i0.ɵɵFactoryTarget.Directive});}static{cov_2if8on3zmg().s[44]++;this.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"16.2.12",type:SacBaseDateTimeControl,inputs:{isrequired:"isrequired",placeholder:"placeholder",validationmessagedatetimeformat:"validationmessagedatetimeformat",validationmessagedatetimeformatsummary:"validationmessagedatetimeformatsummary",validationmessagerequired:"validationmessagerequired",validationmessagerequiredsummary:"validationmessagerequiredsummary",valuestring:"valuestring"},usesInheritance:true,ngImport:i0});}}export{SacBaseDateTimeControl};cov_2if8on3zmg().s[45]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacBaseDateTimeControl,decorators:[{type:Directive}],ctorParameters:function(){cov_2if8on3zmg().f[9]++;cov_2if8on3zmg().s[46]++;return[{type:i1.SacFormLayoutCommon},{type:i0.Injector},{type:i0.ElementRef}];},propDecorators:{isrequired:[{type:Input}],placeholder:[{type:Input}],validationmessagedatetimeformat:[{type:Input}],validationmessagedatetimeformatsummary:[{type:Input}],validationmessagerequired:[{type:Input}],validationmessagerequiredsummary:[{type:Input}],valuestring:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXdCLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUlsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFDekQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbEM7O0dBRUc7QUFDSCxNQUNzQixzQkFDcEIsU0FBUSxtQkFBeUI7SUF1Q2pDLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7O09BS0c7SUFDSCxZQUNFLFVBQStCLEVBQy9CLFFBQWtCLEVBQ1IsVUFBc0I7UUFFaEMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUZsQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBakRsQyxxQkFBcUI7UUFFckI7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUU5Qjs7V0FFRztRQUNhLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUM7O1dBRUc7UUFDYSxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUMzQzs7V0FFRztRQUNhLG9DQUErQixHQUM3QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsNkJBQTZCLENBQUM7UUFDMUQ7O1dBRUc7UUFDYSwyQ0FBc0MsR0FDcEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9DQUFvQyxDQUFDO1FBQ2pFOztXQUVHO1FBQ2EsOEJBQXlCLEdBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIs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b0I7UUFDcEMsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN6RCxxRkFBcUY7WUFDckYsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekIsd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDNUM7UUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBZUQscUNBQXFDO0lBRXJDLDBCQUEwQjtJQUVsQixpQkFBaUI7UUFDdkIsbUlBQW1JO1FBQ25JLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBeUMsQ0FBQyxvQkFBb0I7Z0JBQ2xFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzsrR0F6TG1CLHNCQUFzQjttR0FBdEIsc0JBQXNCOztTQUF0QixzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFEM0MsU0FBUzswSkFlUSxVQUFVO3NCQUF6QixLQUFLO2dCQUlVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBSVUsK0JBQStCO3NCQUE5QyxLQUFLO2dCQUtVLHNDQUFzQztzQkFBckQsS0FBSztnQkFLVSx5QkFBeUI7c0JBQXhDLEtBQUs7Z0JBS1UsZ0NBQWdDO3NCQUEvQyxLQUFLO2dCQTZCSyxXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2NvbnRyb2xzL2xheW91dC9mb3JtbGF5b3V0JztcclxuaW1wb3J0IHsgSURhdGVUaW1lQ29udHJvbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWRhdGV0aW1lY29udHJvbCc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi92YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4vYmFzZW1vZGVsY29udHJvbCc7XHJcbi8qKlxyXG4gKiBNb21lbnRcclxuICovXHJcbmNvbnN0IG1vbWVudCA9IG1vbWVudF9bJ2RlZmF1bHQnXTtcclxuLyoqXHJcbiAqIEJhc2UgS2xhc3NlIGbDvHIgRGF0ZS9UaW1lIENvbnRyb2xzXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VEYXRlVGltZUNvbnRyb2xcclxuICBleHRlbmRzIFNhY0Jhc2VNb2RlbENvbnRyb2w8RGF0ZT5cclxuICBpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIGRhcyBwcm9wZXJ0eSBlbnRoaWVsdCBkYXMgVmFsdWUgYWxzIHN0cmluZy4gRGVmYXVsdCBpc3QgJydcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgX3ZhbHVlQXNTdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IGRhcyBDb250cm9sIGFscyBSZXF1aXJlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogVGV4dEJveCBQbGFjZWhvbGRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgYmVpIENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdDogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQ7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeTogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeURhdGV0aW1lRm9ybWF0O1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkOiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5OiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIHJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvKipcclxuICAgKiBEYXMgSW5wdXQgYmVrb21tdCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmdcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdmFsdWVzdHJpbmcodjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gdjtcclxuICAgIGxldCBkYXRlOiBNb21lbnQgPSBtb21lbnQodiwgW3RoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKV0sIHRydWUpO1xyXG5cclxuICAgIGRhdGUgPSB0aGlzLk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUoZGF0ZSkudXRjKCk7XHJcblxyXG4gICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlLnRvRGF0ZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBnZXR0ZXIgZsO8ciB2YWx1ZXN0cmluZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgdmFsdWVzdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZUFzU3RyaW5nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudC51dGModGhpcy52YWx1ZSk7XHJcbiAgICAgIHJldHVybiBkYXRlLmxvY2FsKCkuZm9ybWF0KHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogSlNPTiBEYXRlIFN0cmluZyBpbiBlaW4gVVRDIERhdGVUaW1lIE9iamVjdCBrb252ZXJ0aWVyZW4sIHdlbGNoZXMgdm9tIENvbnRyb2wgdmVyd2VuZGV0ZSB3ZXJkZW4ga2FublxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXREYXRlKHRpbWVzdGFtcCkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XHJcbiAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XHJcbiAgICBjb25zdCBkYXkgPSBkYXRlLmdldFVUQ0RhdGUoKTtcclxuICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xyXG4gICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0VVRDTWludXRlcygpO1xyXG4gICAgY29uc3Qgc2Vjb25kcyA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xyXG5cclxuICAgIHJldHVybiBtb21lbnQoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXQgRXZlbnRcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5TZXREYXRlVGltZUZvcm1hdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogc2V0enQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nIHp1IHByb3BlcnR5IHZhbHVlc3RyaW5nXHJcbiAgICovXHJcbiAgcHVibGljIHNldFZhbHVlU3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgdGhpcy52YWx1ZXN0cmluZyA9IHY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0b3JcclxuICAgKi9cclxuICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGVycm9yID0gVmFsaWRhdGlvbi5pc1ZhbGlkRGF0ZShcclxuICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0LFxyXG4gICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5XHJcbiAgICApKGMpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcclxuICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnJlcXVpcmVkKFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCxcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5XHJcbiAgICAgICkoYyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVycm9yO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3ZlcndyaXRlIFdyaXRlVmFsdWUgdG8gU2V0IGNvcnJlY3QgRGF0ZSBPYmplY3RcclxuICAgKi9cclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIC8vIFJlc2V0IFZhbHVlIFN0cmluZywgZGFtaXQgYmVpbSBVcGRhdGUgZGVzIE1vZGVscyBhdWNoIGRhcyBJbnB1dCBGZWxkIGdlbGVlcnQgd2lyZC5cclxuICAgICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9ICcnO1xyXG4gICAgICAvLyBTZXQgSW50ZXJuYWwgUHJvcGVydHlcclxuICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmdldERhdGUodmFsdWUpLnRvRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHN1cGVyLndyaXRlVmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBBYnN0cmFjdCBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBtZXRob2RlIHJldHVybnMgZGF0ZVRpbWUgaW4gc3RyaW5nXHJcbiAgICovXHJcbiAgcHVibGljIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcclxuICAvKipcclxuICAgKiBEaWUgbWV0aG9kZSBtb2RpZml6aWVydCBkYXMgZWluZ2VnZWJlbmUgVmFsdWUgdm9uIHR5cCBNb21lbnRcclxuICAgKi9cclxuICBwdWJsaWMgYWJzdHJhY3QgTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSh2OiBNb21lbnQpOiBNb21lbnQ7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEFic3RyYWN0IE1ldGhvZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgcHJpdmF0ZSBTZXREYXRlVGltZUZvcm1hdCgpOiB2b2lkIHtcclxuICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSURhdGVUaW1lQ29udHJvbCkuZGF0ZXRpbWVmb3JtYXRzdHJpbmcgPVxyXG4gICAgICAgIHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcbn1cclxuIl19
52
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMmlmOG9uM3ptZyIsImFjdHVhbENvdmVyYWdlIiwiRGlyZWN0aXZlIiwiSW5wdXQiLCJtb21lbnRfIiwiVmFsaWRhdGlvbiIsIlNhY0Jhc2VNb2RlbENvbnRyb2wiLCJtb21lbnQiLCJzIiwiU2FjQmFzZURhdGVUaW1lQ29udHJvbCIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwiZWxlbWVudFJlZiIsImYiLCJfdmFsdWVBc1N0cmluZyIsImlzcmVxdWlyZWQiLCJwbGFjZWhvbGRlciIsInZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQiLCJ2YWxpZGF0aW9uS2V5U2VydmljZSIsIlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0IiwidmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnkiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkIiwiVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeSIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZCIsInZhbHVlc3RyaW5nIiwidiIsImRhdGUiLCJHZXREYXRlVGltZUZvcm1hdFN0cmluZyIsIk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUiLCJ1dGMiLCJpc1ZhbGlkIiwiYiIsInZhbHVlIiwidG9EYXRlIiwibG9jYWwiLCJmb3JtYXQiLCJnZXREYXRlIiwidGltZXN0YW1wIiwiRGF0ZSIsInllYXIiLCJnZXRVVENGdWxsWWVhciIsIm1vbnRoIiwiZ2V0VVRDTW9udGgiLCJkYXkiLCJnZXRVVENEYXRlIiwiaG91cnMiLCJnZXRVVENIb3VycyIsIm1pbnV0ZXMiLCJnZXRVVENNaW51dGVzIiwic2Vjb25kcyIsImdldFVUQ1NlY29uZHMiLCJVVEMiLCJuZ09uSW5pdCIsIlNldERhdGVUaW1lRm9ybWF0Iiwic2V0VmFsdWVTdHJpbmciLCJ2YWxpZGF0ZURhdGEiLCJjIiwiZXJyb3IiLCJpc1ZhbGlkRGF0ZSIsInJlcXVpcmVkIiwid3JpdGVWYWx1ZSIsInVuZGVmaW5lZCIsIl92YWx1ZSIsIm5nQ29udHJvbCIsImRhdGV0aW1lZm9ybWF0c3RyaW5nIiwiZGVwcyIsInRva2VuIiwiaTEiLCJTYWNGb3JtTGF5b3V0Q29tbW9uIiwiaTAiLCJJbmplY3RvciIsIkVsZW1lbnRSZWYiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsInVzZXNJbmhlcml0YW5jZSIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XHJcbmltcG9ydCB7IElEYXRlVGltZUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lkYXRldGltZWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG4vKipcclxuICogTW9tZW50XHJcbiAqL1xyXG5jb25zdCBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XHJcbi8qKlxyXG4gKiBCYXNlIEtsYXNzZSBmw7xyIERhdGUvVGltZSBDb250cm9sc1xyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sXHJcbiAgZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPERhdGU+XHJcbiAgaW1wbGVtZW50cyBPbkluaXRcclxue1xyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvKipcclxuICAgKiBkYXMgcHJvcGVydHkgZW50aGllbHQgZGFzIFZhbHVlIGFscyBzdHJpbmcuIERlZmF1bHQgaXN0ICcnXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIF92YWx1ZUFzU3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaXNyZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIFRleHRCb3ggUGxhY2Vob2xkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGJlaSBDb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQ6IHN0cmluZyA9XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0O1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnk6IHN0cmluZyA9XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeTogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiByZWZlcmVuY2UgdG8gaHRtbCBlbGVtZW50XHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLyoqXHJcbiAgICogRGFzIElucHV0IGJla29tbXQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHZhbHVlc3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9IHY7XHJcbiAgICBsZXQgZGF0ZTogTW9tZW50ID0gbW9tZW50KHYsIFt0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCldLCB0cnVlKTtcclxuXHJcbiAgICBkYXRlID0gdGhpcy5Nb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKGRhdGUpLnV0YygpO1xyXG5cclxuICAgIGlmIChkYXRlLmlzVmFsaWQoKSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gZGF0ZS50b0RhdGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogZ2V0dGVyIGbDvHIgdmFsdWVzdHJpbmdcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IHZhbHVlc3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWVBc1N0cmluZztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQudXRjKHRoaXMudmFsdWUpO1xyXG4gICAgICByZXR1cm4gZGF0ZS5sb2NhbCgpLmZvcm1hdCh0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIEpTT04gRGF0ZSBTdHJpbmcgaW4gZWluIFVUQyBEYXRlVGltZSBPYmplY3Qga29udmVydGllcmVuLCB3ZWxjaGVzIHZvbSBDb250cm9sIHZlcndlbmRldGUgd2VyZGVuIGthbm5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0RGF0ZSh0aW1lc3RhbXApIHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoID0gZGF0ZS5nZXRVVENNb250aCgpO1xyXG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXRVVENEYXRlKCk7XHJcbiAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0VVRDSG91cnMoKTtcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcclxuICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcclxuXHJcbiAgICByZXR1cm4gbW9tZW50KERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0IEV2ZW50XHJcbiAgICovXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuU2V0RGF0ZVRpbWVGb3JtYXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHNldHp0IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZyB6dSBwcm9wZXJ0eSB2YWx1ZXN0cmluZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRWYWx1ZVN0cmluZyh2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMudmFsdWVzdHJpbmcgPSB2O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yXHJcbiAgICovXHJcbiAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBlcnJvciA9IFZhbGlkYXRpb24uaXNWYWxpZERhdGUoXHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcclxuICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxyXG4gICAgKShjKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZChcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeVxyXG4gICAgICApKGMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE92ZXJ3cml0ZSBXcml0ZVZhbHVlIHRvIFNldCBjb3JyZWN0IERhdGUgT2JqZWN0XHJcbiAgICovXHJcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IERhdGUgfCBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAvLyBSZXNldCBWYWx1ZSBTdHJpbmcsIGRhbWl0IGJlaW0gVXBkYXRlIGRlcyBNb2RlbHMgYXVjaCBkYXMgSW5wdXQgRmVsZCBnZWxlZXJ0IHdpcmQuXHJcbiAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSAnJztcclxuICAgICAgLy8gU2V0IEludGVybmFsIFByb3BlcnR5XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5nZXREYXRlKHZhbHVlKS50b0RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdXBlci53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgQWJzdHJhY3QgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBEaWUgbWV0aG9kZSByZXR1cm5zIGRhdGVUaW1lIGluIHN0cmluZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyBhYnN0cmFjdCBHZXREYXRlVGltZUZvcm1hdFN0cmluZygpOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogRGllIG1ldGhvZGUgbW9kaWZpemllcnQgZGFzIGVpbmdlZ2ViZW5lIFZhbHVlIHZvbiB0eXAgTW9tZW50XHJcbiAgICovXHJcbiAgcHVibGljIGFic3RyYWN0IE1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUodjogTW9tZW50KTogTW9tZW50O1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBBYnN0cmFjdCBNZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcblxyXG4gIHByaXZhdGUgU2V0RGF0ZVRpbWVGb3JtYXQoKTogdm9pZCB7XHJcbiAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxyXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElEYXRlVGltZUNvbnRyb2wpLmRhdGV0aW1lZm9ybWF0c3RyaW5nID1cclxuICAgICAgICB0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcbiJdLCJtYXBwaW5ncyI6Imd4ZkEwREU7QUFBQUEsY0FBQSxTQUFBQSxDQUFBLFNBQUFDLGNBQUEsV0FBQUEsY0FBQSxFQUFBRCxjQUFBLEdBMURGLE9BQVNFLFNBQVMsQ0FBd0JDLEtBQUssS0FBZ0IsZUFBZSxDQUU5RSxNQUFPLEdBQUssQ0FBQUMsT0FBTyxLQUFNLFFBQVEsQ0FJakMsT0FBU0MsVUFBVSxLQUFRLGVBQWUsQ0FDMUMsT0FBU0MsbUJBQW1CLEtBQVEsb0JBQW9CLEMsa0ZBQ3hEOztHQUdBLEtBQU0sQ0FBQUMsTUFBTSxFQUFBUCxjQUFBLEdBQUFRLENBQUEsTUFBR0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUNqQzs7R0FHQSxLQUNzQixDQUFBSyxzQkFDcEIsUUFBUSxDQUFBSCxtQkFBeUIsQ0F1Q2pDO0FBRUE7QUFFQTs7Ozs7T0FNQUksWUFDRUMsVUFBK0IsQ0FDL0JDLFFBQWtCLENBQ1JDLFVBQXNCLEVBQUFiLGNBQUEsR0FBQWMsQ0FBQSxNQUFBZCxjQUFBLEdBQUFRLENBQUEsTUFFaEMsS0FBSyxDQUFDRyxVQUFVLENBQUVDLFFBQVEsQ0FBQyxDQUFDWixjQUFBLEdBQUFRLENBQUEsTUFGbEIsS0FBQUssVUFBVSxDQUFWQSxVQUFVLENBakR0QjtBQUVBOztXQUFBYixjQUFBLEdBQUFRLENBQUEsTUFHVSxLQUFBTyxjQUFjLENBQUcsRUFBRSxDQUU3Qjs7V0FBQWYsY0FBQSxHQUFBUSxDQUFBLE1BR2dCLEtBQUFRLFVBQVUsQ0FBWSxLQUFLLENBQzNDOztXQUFBaEIsY0FBQSxHQUFBUSxDQUFBLE1BR2dCLEtBQUFTLFdBQVcsQ0FBVyxJQUFJLENBQzFDOztXQUFBakIsY0FBQSxHQUFBUSxD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
51
+ if(this.ngControl){cov_2if8on3zmg().b[5][0]++;cov_2if8on3zmg().s[42]++;this.ngControl.datetimeformatstring=this.GetDateTimeFormatString();}else{cov_2if8on3zmg().b[5][1]++;}}static{cov_2if8on3zmg().s[43]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacBaseDateTimeControl,deps:[{token:i1.SacFormLayoutCommon},{token:i0.Injector},{token:i0.ElementRef}],target:i0.ɵɵFactoryTarget.Directive});}static{cov_2if8on3zmg().s[44]++;this.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"16.2.12",type:SacBaseDateTimeControl,inputs:{isrequired:"isrequired",placeholder:"placeholder",validationmessagedatetimeformat:"validationmessagedatetimeformat",validationmessagedatetimeformatsummary:"validationmessagedatetimeformatsummary",validationmessagerequired:"validationmessagerequired",validationmessagerequiredsummary:"validationmessagerequiredsummary",valuestring:"valuestring"},usesInheritance:true,ngImport:i0});}}export{SacBaseDateTimeControl};cov_2if8on3zmg().s[45]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacBaseDateTimeControl,decorators:[{type:Directive}],ctorParameters:function(){cov_2if8on3zmg().f[9]++;cov_2if8on3zmg().s[46]++;return[{type:i1.SacFormLayoutCommon},{type:i0.Injector},{type:i0.ElementRef}];},propDecorators:{isrequired:[{type:Input}],placeholder:[{type:Input}],validationmessagedatetimeformat:[{type:Input}],validationmessagedatetimeformatsummary:[{type:Input}],validationmessagerequired:[{type:Input}],validationmessagerequiredsummary:[{type:Input}],valuestring:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXdCLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUlsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFDekQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbEM7O0dBRUc7QUFDSCxNQUNzQixzQkFDcEIsU0FBUSxtQkFBeUI7SUF1Q2pDLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7O09BS0c7SUFDSCxZQUNFLFVBQStCLEVBQy9CLFFBQWtCLEVBQ1IsVUFBc0I7UUFFaEMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUZsQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBakRsQyxxQkFBcUI7UUFFckI7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUU5Qjs7V0FFRztRQUNhLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUM7O1dBRUc7UUFDYSxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUMzQzs7V0FFRztRQUNhLG9DQUErQixHQUM3QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsNkJBQTZCLENBQUM7UUFDMUQ7O1dBRUc7UUFDYSwyQ0FBc0MsR0FDcEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9DQUFvQyxDQUFDO1FBQ2pFOztXQUVHO1FBQ2EsOEJBQXlCLEdBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIs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b0I7UUFDcEMsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN6RCxxRkFBcUY7WUFDckYsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekIsd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDNUM7UUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBZUQscUNBQXFDO0lBRXJDLDBCQUEwQjtJQUVsQixpQkFBaUI7UUFDdkIsbUlBQW1JO1FBQ25JLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBeUMsQ0FBQyxvQkFBb0I7Z0JBQ2xFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzsrR0F6TG1CLHNCQUFzQjttR0FBdEIsc0JBQXNCOztTQUF0QixzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFEM0MsU0FBUzswSkFlUSxVQUFVO3NCQUF6QixLQUFLO2dCQUlVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBSVUsK0JBQStCO3NCQUE5QyxLQUFLO2dCQUtVLHNDQUFzQztzQkFBckQsS0FBSztnQkFLVSx5QkFBeUI7c0JBQXhDLEtBQUs7Z0JBS1UsZ0NBQWdDO3NCQUEvQyxLQUFLO2dCQTZCSyxXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2NvbnRyb2xzL2xheW91dC9mb3JtbGF5b3V0JztcclxuaW1wb3J0IHsgSURhdGVUaW1lQ29udHJvbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWRhdGV0aW1lY29udHJvbCc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi92YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4vYmFzZW1vZGVsY29udHJvbCc7XHJcbi8qKlxyXG4gKiBNb21lbnRcclxuICovXHJcbmNvbnN0IG1vbWVudCA9IG1vbWVudF9bJ2RlZmF1bHQnXTtcclxuLyoqXHJcbiAqIEJhc2UgS2xhc3NlIGbDvHIgRGF0ZS9UaW1lIENvbnRyb2xzXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VEYXRlVGltZUNvbnRyb2xcclxuICBleHRlbmRzIFNhY0Jhc2VNb2RlbENvbnRyb2w8RGF0ZT5cclxuICBpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIGRhcyBwcm9wZXJ0eSBlbnRoaWVsdCBkYXMgVmFsdWUgYWxzIHN0cmluZy4gRGVmYXVsdCBpc3QgJydcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgX3ZhbHVlQXNTdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IGRhcyBDb250cm9sIGFscyBSZXF1aXJlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogVGV4dEJveCBQbGFjZWhvbGRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgYmVpIENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdDogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQ7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeTogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeURhdGV0aW1lRm9ybWF0O1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkOiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5OiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIHJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvKipcclxuICAgKiBEYXMgSW5wdXQgYmVrb21tdCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmdcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdmFsdWVzdHJpbmcodjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gdjtcclxuICAgIGxldCBkYXRlOiBNb21lbnQgPSBtb21lbnQodiwgW3RoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKV0sIHRydWUpO1xyXG5cclxuICAgIGRhdGUgPSB0aGlzLk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUoZGF0ZSkudXRjKCk7XHJcblxyXG4gICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlLnRvRGF0ZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBnZXR0ZXIgZsO8ciB2YWx1ZXN0cmluZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgdmFsdWVzdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZUFzU3RyaW5nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudC51dGModGhpcy52YWx1ZSk7XHJcbiAgICAgIHJldHVybiBkYXRlLmxvY2FsKCkuZm9ybWF0KHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogSlNPTiBEYXRlIFN0cmluZyBpbiBlaW4gVVRDIERhdGVUaW1lIE9iamVjdCBrb252ZXJ0aWVyZW4sIHdlbGNoZXMgdm9tIENvbnRyb2wgdmVyd2VuZGV0ZSB3ZXJkZW4ga2FublxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXREYXRlKHRpbWVzdGFtcCk6IG1vbWVudC5Nb21lbnQge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XHJcbiAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XHJcbiAgICBjb25zdCBkYXkgPSBkYXRlLmdldFVUQ0RhdGUoKTtcclxuICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xyXG4gICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0VVRDTWludXRlcygpO1xyXG4gICAgY29uc3Qgc2Vjb25kcyA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xyXG5cclxuICAgIHJldHVybiBtb21lbnQoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXQgRXZlbnRcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5TZXREYXRlVGltZUZvcm1hdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogc2V0enQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nIHp1IHByb3BlcnR5IHZhbHVlc3RyaW5nXHJcbiAgICovXHJcbiAgcHVibGljIHNldFZhbHVlU3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgdGhpcy52YWx1ZXN0cmluZyA9IHY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0b3JcclxuICAgKi9cclxuICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGVycm9yID0gVmFsaWRhdGlvbi5pc1ZhbGlkRGF0ZShcclxuICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0LFxyXG4gICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5XHJcbiAgICApKGMpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcclxuICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnJlcXVpcmVkKFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCxcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5XHJcbiAgICAgICkoYyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVycm9yO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3ZlcndyaXRlIFdyaXRlVmFsdWUgdG8gU2V0IGNvcnJlY3QgRGF0ZSBPYmplY3RcclxuICAgKi9cclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIC8vIFJlc2V0IFZhbHVlIFN0cmluZywgZGFtaXQgYmVpbSBVcGRhdGUgZGVzIE1vZGVscyBhdWNoIGRhcyBJbnB1dCBGZWxkIGdlbGVlcnQgd2lyZC5cclxuICAgICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9ICcnO1xyXG4gICAgICAvLyBTZXQgSW50ZXJuYWwgUHJvcGVydHlcclxuICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmdldERhdGUodmFsdWUpLnRvRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHN1cGVyLndyaXRlVmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBBYnN0cmFjdCBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBtZXRob2RlIHJldHVybnMgZGF0ZVRpbWUgaW4gc3RyaW5nXHJcbiAgICovXHJcbiAgcHVibGljIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcclxuICAvKipcclxuICAgKiBEaWUgbWV0aG9kZSBtb2RpZml6aWVydCBkYXMgZWluZ2VnZWJlbmUgVmFsdWUgdm9uIHR5cCBNb21lbnRcclxuICAgKi9cclxuICBwdWJsaWMgYWJzdHJhY3QgTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSh2OiBNb21lbnQpOiBNb21lbnQ7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEFic3RyYWN0IE1ldGhvZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgcHJpdmF0ZSBTZXREYXRlVGltZUZvcm1hdCgpOiB2b2lkIHtcclxuICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSURhdGVUaW1lQ29udHJvbCkuZGF0ZXRpbWVmb3JtYXRzdHJpbmcgPVxyXG4gICAgICAgIHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcbn1cclxuIl19
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMmlmOG9uM3ptZyIsImFjdHVhbENvdmVyYWdlIiwiRGlyZWN0aXZlIiwiSW5wdXQiLCJtb21lbnRfIiwiVmFsaWRhdGlvbiIsIlNhY0Jhc2VNb2RlbENvbnRyb2wiLCJtb21lbnQiLCJzIiwiU2FjQmFzZURhdGVUaW1lQ29udHJvbCIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwiZWxlbWVudFJlZiIsImYiLCJfdmFsdWVBc1N0cmluZyIsImlzcmVxdWlyZWQiLCJwbGFjZWhvbGRlciIsInZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQiLCJ2YWxpZGF0aW9uS2V5U2VydmljZSIsIlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0IiwidmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnkiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkIiwiVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeSIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZCIsInZhbHVlc3RyaW5nIiwidiIsImRhdGUiLCJHZXREYXRlVGltZUZvcm1hdFN0cmluZyIsIk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUiLCJ1dGMiLCJpc1ZhbGlkIiwiYiIsInZhbHVlIiwidG9EYXRlIiwibG9jYWwiLCJmb3JtYXQiLCJnZXREYXRlIiwidGltZXN0YW1wIiwiRGF0ZSIsInllYXIiLCJnZXRVVENGdWxsWWVhciIsIm1vbnRoIiwiZ2V0VVRDTW9udGgiLCJkYXkiLCJnZXRVVENEYXRlIiwiaG91cnMiLCJnZXRVVENIb3VycyIsIm1pbnV0ZXMiLCJnZXRVVENNaW51dGVzIiwic2Vjb25kcyIsImdldFVUQ1NlY29uZHMiLCJVVEMiLCJuZ09uSW5pdCIsIlNldERhdGVUaW1lRm9ybWF0Iiwic2V0VmFsdWVTdHJpbmciLCJ2YWxpZGF0ZURhdGEiLCJjIiwiZXJyb3IiLCJpc1ZhbGlkRGF0ZSIsInJlcXVpcmVkIiwid3JpdGVWYWx1ZSIsInVuZGVmaW5lZCIsIl92YWx1ZSIsIm5nQ29udHJvbCIsImRhdGV0aW1lZm9ybWF0c3RyaW5nIiwiZGVwcyIsInRva2VuIiwiaTEiLCJTYWNGb3JtTGF5b3V0Q29tbW9uIiwiaTAiLCJJbmplY3RvciIsIkVsZW1lbnRSZWYiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsInVzZXNJbmhlcml0YW5jZSIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XHJcbmltcG9ydCB7IElEYXRlVGltZUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lkYXRldGltZWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG4vKipcclxuICogTW9tZW50XHJcbiAqL1xyXG5jb25zdCBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XHJcbi8qKlxyXG4gKiBCYXNlIEtsYXNzZSBmw7xyIERhdGUvVGltZSBDb250cm9sc1xyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sXHJcbiAgZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPERhdGU+XHJcbiAgaW1wbGVtZW50cyBPbkluaXRcclxue1xyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvKipcclxuICAgKiBkYXMgcHJvcGVydHkgZW50aGllbHQgZGFzIFZhbHVlIGFscyBzdHJpbmcuIERlZmF1bHQgaXN0ICcnXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIF92YWx1ZUFzU3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaXNyZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIFRleHRCb3ggUGxhY2Vob2xkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGJlaSBDb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQ6IHN0cmluZyA9XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0O1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnk6IHN0cmluZyA9XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeTogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiByZWZlcmVuY2UgdG8gaHRtbCBlbGVtZW50XHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLyoqXHJcbiAgICogRGFzIElucHV0IGJla29tbXQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHZhbHVlc3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9IHY7XHJcbiAgICBsZXQgZGF0ZTogTW9tZW50ID0gbW9tZW50KHYsIFt0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCldLCB0cnVlKTtcclxuXHJcbiAgICBkYXRlID0gdGhpcy5Nb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKGRhdGUpLnV0YygpO1xyXG5cclxuICAgIGlmIChkYXRlLmlzVmFsaWQoKSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gZGF0ZS50b0RhdGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogZ2V0dGVyIGbDvHIgdmFsdWVzdHJpbmdcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IHZhbHVlc3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWVBc1N0cmluZztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQudXRjKHRoaXMudmFsdWUpO1xyXG4gICAgICByZXR1cm4gZGF0ZS5sb2NhbCgpLmZvcm1hdCh0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIEpTT04gRGF0ZSBTdHJpbmcgaW4gZWluIFVUQyBEYXRlVGltZSBPYmplY3Qga29udmVydGllcmVuLCB3ZWxjaGVzIHZvbSBDb250cm9sIHZlcndlbmRldGUgd2VyZGVuIGthbm5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0RGF0ZSh0aW1lc3RhbXApOiBtb21lbnQuTW9tZW50IHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoID0gZGF0ZS5nZXRVVENNb250aCgpO1xyXG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXRVVENEYXRlKCk7XHJcbiAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0VVRDSG91cnMoKTtcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcclxuICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcclxuXHJcbiAgICByZXR1cm4gbW9tZW50KERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0IEV2ZW50XHJcbiAgICovXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuU2V0RGF0ZVRpbWVGb3JtYXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHNldHp0IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZyB6dSBwcm9wZXJ0eSB2YWx1ZXN0cmluZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRWYWx1ZVN0cmluZyh2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMudmFsdWVzdHJpbmcgPSB2O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yXHJcbiAgICovXHJcbiAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBlcnJvciA9IFZhbGlkYXRpb24uaXNWYWxpZERhdGUoXHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcclxuICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxyXG4gICAgKShjKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZChcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeVxyXG4gICAgICApKGMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE92ZXJ3cml0ZSBXcml0ZVZhbHVlIHRvIFNldCBjb3JyZWN0IERhdGUgT2JqZWN0XHJcbiAgICovXHJcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IERhdGUgfCBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAvLyBSZXNldCBWYWx1ZSBTdHJpbmcsIGRhbWl0IGJlaW0gVXBkYXRlIGRlcyBNb2RlbHMgYXVjaCBkYXMgSW5wdXQgRmVsZCBnZWxlZXJ0IHdpcmQuXHJcbiAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSAnJztcclxuICAgICAgLy8gU2V0IEludGVybmFsIFByb3BlcnR5XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5nZXREYXRlKHZhbHVlKS50b0RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdXBlci53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgQWJzdHJhY3QgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBEaWUgbWV0aG9kZSByZXR1cm5zIGRhdGVUaW1lIGluIHN0cmluZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyBhYnN0cmFjdCBHZXREYXRlVGltZUZvcm1hdFN0cmluZygpOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogRGllIG1ldGhvZGUgbW9kaWZpemllcnQgZGFzIGVpbmdlZ2ViZW5lIFZhbHVlIHZvbiB0eXAgTW9tZW50XHJcbiAgICovXHJcbiAgcHVibGljIGFic3RyYWN0IE1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUodjogTW9tZW50KTogTW9tZW50O1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBBYnN0cmFjdCBNZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcblxyXG4gIHByaXZhdGUgU2V0RGF0ZVRpbWVGb3JtYXQoKTogdm9pZCB7XHJcbiAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxyXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElEYXRlVGltZUNvbnRyb2wpLmRhdGV0aW1lZm9ybWF0c3RyaW5nID1cclxuICAgICAgICB0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcbiJdLCJtYXBwaW5ncyI6Iit4ZkEwREU7QUFBQUEsY0FBQSxTQUFBQSxDQUFBLFNBQUFDLGNBQUEsV0FBQUEsY0FBQSxFQUFBRCxjQUFBLEdBMURGLE9BQVNFLFNBQVMsQ0FBd0JDLEtBQUssS0FBZ0IsZUFBZSxDQUU5RSxNQUFPLEdBQUssQ0FBQUMsT0FBTyxLQUFNLFFBQVEsQ0FJakMsT0FBU0MsVUFBVSxLQUFRLGVBQWUsQ0FDMUMsT0FBU0MsbUJBQW1CLEtBQVEsb0JBQW9CLEMsa0ZBQ3hEOztHQUdBLEtBQU0sQ0FBQUMsTUFBTSxFQUFBUCxjQUFBLEdBQUFRLENBQUEsTUFBR0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUNqQzs7R0FHQSxLQUNzQixDQUFBSyxzQkFDcEIsUUFBUSxDQUFBSCxtQkFBeUIsQ0F1Q2pDO0FBRUE7QUFFQTs7Ozs7T0FNQUksWUFDRUMsVUFBK0IsQ0FDL0JDLFFBQWtCLENBQ1JDLFVBQXNCLEVBQUFiLGNBQUEsR0FBQWMsQ0FBQSxNQUFBZCxjQUFBLEdBQUFRLENBQUEsTUFFaEMsS0FBSyxDQUFDRyxVQUFVLENBQUVDLFFBQVEsQ0FBQyxDQUFDWixjQUFBLEdBQUFRLENBQUEsTUFGbEIsS0FBQUssVUFBVSxDQUFWQSxVQUFVLENBakR0QjtBQUVBOztXQUFBYixjQUFBLEdBQUFRLENBQUEsTUFHVSxLQUFBTyxjQUFjLENBQUcsRUFBRSxDQUU3Qjs7V0FBQWYsY0FBQSxHQUFBUSxDQUFBLE1BR2dCLEtBQUFRLFVBQVUsQ0FBWSxLQUFLLENBQzNDOztXQUFBaEIsY0FBQSxHQUFBUSxDQUFBLE1BR2dCLEtBQUFTLFdBQVcsQ0FBVyxJQUFJLENBQzFDOztXQUFB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