@simpleangularcontrols/sac-common 16.0.0-rc.2 → 16.0.0-rc.3

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 (68) hide show
  1. package/common/basedatetimecontrol.d.ts +33 -33
  2. package/common/basedatetimecontrol.d.ts.map +1 -1
  3. package/common/baseinputcontrol.d.ts +9 -9
  4. package/common/baseinputcontrol.d.ts.map +1 -1
  5. package/common/basemodelcontrol.d.ts +117 -89
  6. package/common/basemodelcontrol.d.ts.map +1 -1
  7. package/common/baseuploadcontrol.d.ts +140 -140
  8. package/common/baseuploadcontrol.d.ts.map +1 -1
  9. package/controls/checkbox/checkbox.d.ts +7 -3
  10. package/controls/checkbox/checkbox.d.ts.map +1 -1
  11. package/controls/checkbox/radiobuttons.d.ts +5 -4
  12. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  13. package/controls/contextmenu/contextmenu.d.ts +42 -42
  14. package/controls/contextmenu/contextmenu.d.ts.map +1 -1
  15. package/controls/contextmenu/contextmenuanchor.d.ts +2 -2
  16. package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -1
  17. package/controls/contextmenu/contextmenucontainer.d.ts +2 -2
  18. package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -1
  19. package/controls/datetime/date.d.ts +7 -7
  20. package/controls/datetime/date.d.ts.map +1 -1
  21. package/controls/datetime/datetime.d.ts +7 -7
  22. package/controls/datetime/datetime.d.ts.map +1 -1
  23. package/controls/datetime/time.d.ts +7 -7
  24. package/controls/datetime/time.d.ts.map +1 -1
  25. package/controls/form/form.d.ts +7 -43
  26. package/controls/form/form.d.ts.map +1 -1
  27. package/controls/input/inputdecimal.d.ts +21 -21
  28. package/controls/input/inputdecimal.d.ts.map +1 -1
  29. package/controls/layout/formlayout.d.ts +45 -0
  30. package/controls/layout/formlayout.d.ts.map +1 -0
  31. package/controls/list/dropdown.d.ts +45 -45
  32. package/controls/list/dropdown.d.ts.map +1 -1
  33. package/controls/multilanguage/multilanguageinput.d.ts +5 -4
  34. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  35. package/controls/multilanguage/multilanguageinputarea.d.ts +5 -4
  36. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  37. package/controls/tinymce/tinymce.d.ts +63 -63
  38. package/controls/tinymce/tinymce.d.ts.map +1 -1
  39. package/esm2022/common/basedatetimecontrol.mjs +75 -81
  40. package/esm2022/common/baseinputcontrol.mjs +20 -20
  41. package/esm2022/common/basemodelcontrol.mjs +280 -201
  42. package/esm2022/common/baseuploadcontrol.mjs +225 -224
  43. package/esm2022/controls/checkbox/checkbox.mjs +11 -5
  44. package/esm2022/controls/checkbox/radiobuttons.mjs +13 -12
  45. package/esm2022/controls/contextmenu/contextmenu.mjs +85 -75
  46. package/esm2022/controls/contextmenu/contextmenuanchor.mjs +6 -4
  47. package/esm2022/controls/contextmenu/contextmenucontainer.mjs +6 -4
  48. package/esm2022/controls/datetime/date.mjs +12 -12
  49. package/esm2022/controls/datetime/datetime.mjs +15 -15
  50. package/esm2022/controls/datetime/time.mjs +15 -15
  51. package/esm2022/controls/form/form.mjs +26 -80
  52. package/esm2022/controls/input/inputdecimal.mjs +58 -53
  53. package/esm2022/controls/layout/formlayout.mjs +73 -0
  54. package/esm2022/controls/list/dropdown.mjs +110 -91
  55. package/esm2022/controls/multilanguage/multilanguageinput.mjs +10 -9
  56. package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +10 -9
  57. package/esm2022/controls/tinymce/tinymce.mjs +102 -95
  58. package/esm2022/interfaces/ISacLabelSizes.mjs +2 -0
  59. package/esm2022/public_api.mjs +20 -18
  60. package/fesm2022/simpleangularcontrols-sac-common.mjs +1958 -1813
  61. package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
  62. package/interfaces/ISacLabelSizes.d.ts +27 -0
  63. package/interfaces/ISacLabelSizes.d.ts.map +1 -0
  64. package/package.json +1 -1
  65. package/public_api.d.ts +19 -17
  66. package/public_api.d.ts.map +1 -1
  67. package/simpleangularcontrols-sac-common-16.0.0-rc.3.tgz +0 -0
  68. package/simpleangularcontrols-sac-common-16.0.0-rc.2.tgz +0 -0
@@ -4,7 +4,7 @@ import { SacInputBase } from '../../common/baseinputcontrol';
4
4
  import { IconType } from '../../enums/IconType';
5
5
  import { ISacLanguageService } from '../../interfaces/ISacLanguageService';
6
6
  import { LanguageModel } from '../../models/languagemodel';
7
- import { SacFormCommon } from '../form/form';
7
+ import { SacFormLayoutCommon } from '../layout/formlayout';
8
8
  import * as i0 from "@angular/core";
9
9
  /**
10
10
  * Base Klasse für Multi Language Textarea Control
@@ -47,10 +47,11 @@ export declare class SacMultilanguageInputAreaCommon extends SacInputBase<any> {
47
47
  */
48
48
  protected lngLanguageService: ISacLanguageService;
49
49
  /**
50
- * Konstruktor
51
- * Inject des Formulars
50
+ * Constructor
51
+ * @param formlayout SacFormLayoutCommon to define scoped layout settings
52
+ * @param injector Injector for injecting services
52
53
  */
53
- constructor(parent: SacFormCommon, injector: Injector);
54
+ constructor(formlayout: SacFormLayoutCommon, injector: Injector);
54
55
  /**
55
56
  * Sprache für das Control
56
57
  */
@@ -1 +1 @@
1
- {"version":3,"file":"multilanguageinputarea.d.ts","sourceRoot":"","sources":["../../../../projects/sac-common/src/controls/multilanguage/multilanguageinputarea.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,QAAQ,EAAS,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAAoB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAM3D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;;AAE7C;;GAEG;AACH,qBACa,+BAAgC,SAAQ,YAAY,CAAC,GAAG,CAAC;IACpE;;OAEG;IACM,SAAS,EAAE,MAAM,CAAQ;IAElC;;OAEG;IACM,IAAI,EAAE,MAAM,CAAK;IAE1B;;OAEG;IACM,YAAY,EAAE,MAAM,CAAQ;IAErC;;OAEG;IACM,WAAW,EAAE,OAAO,CAAS;IAEtC;;OAEG;IACM,yBAAyB,EAAE,MAAM,CACC;IAC3C;;OAEG;IACM,gCAAgC,EAAE,MAAM,CACE;IAEnD;;OAEG;IACM,4BAA4B,EAAE,MAAM,CACC;IAC9C;;OAEG;IACM,mCAAmC,EAAE,MAAM,CACE;IAEtD;;OAEG;IACH,SAAS,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;IAElD;;;OAGG;gBACiB,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ;IAqB7D;;OAEG;IACH,OAAO,CAAC,SAAS,CAAuB;IACxC;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAAuB;IAE/C;;OAEG;IACH,IAAI,SAAS,IAAI,aAAa,EAAE,CAE/B;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAMzB;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,QAAQ,CAM/B;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,MAAM,CAe1B;IAED;;;OAGG;IACI,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAgBrC;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,aAAa;IAI7C;;;;OAIG;IACI,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAiB/C;;;OAGG;IACI,UAAU,IAAI,OAAO;IAuB5B;;;OAGG;IACH,YAAY,CAAC,CAAC,EAAE,eAAe,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;yCArN7C,+BAA+B;2CAA/B,+BAA+B;CAwP3C"}
1
+ {"version":3,"file":"multilanguageinputarea.d.ts","sourceRoot":"","sources":["../../../../projects/sac-common/src/controls/multilanguage/multilanguageinputarea.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,QAAQ,EAAS,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAAoB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAM3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;;AAE3D;;GAEG;AACH,qBACa,+BAAgC,SAAQ,YAAY,CAAC,GAAG,CAAC;IACpE;;OAEG;IACM,SAAS,EAAE,MAAM,CAAQ;IAElC;;OAEG;IACM,IAAI,EAAE,MAAM,CAAK;IAE1B;;OAEG;IACM,YAAY,EAAE,MAAM,CAAQ;IAErC;;OAEG;IACM,WAAW,EAAE,OAAO,CAAS;IAEtC;;OAEG;IACM,yBAAyB,EAAE,MAAM,CACC;IAC3C;;OAEG;IACM,gCAAgC,EAAE,MAAM,CACE;IAEnD;;OAEG;IACM,4BAA4B,EAAE,MAAM,CACC;IAC9C;;OAEG;IACM,mCAAmC,EAAE,MAAM,CACE;IAEtD;;OAEG;IACH,SAAS,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;IAElD;;;;OAIG;gBACiB,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ;IAqBvE;;OAEG;IACH,OAAO,CAAC,SAAS,CAAuB;IACxC;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAAuB;IAE/C;;OAEG;IACH,IAAI,SAAS,IAAI,aAAa,EAAE,CAE/B;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAMzB;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,QAAQ,CAM/B;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,MAAM,CAe1B;IAED;;;OAGG;IACI,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAgBrC;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,aAAa;IAI7C;;;;OAIG;IACI,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAiB/C;;;OAGG;IACI,UAAU,IAAI,OAAO;IAuB5B;;;OAGG;IACH,YAAY,CAAC,CAAC,EAAE,eAAe,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;yCAtN7C,+BAA+B;2CAA/B,+BAA+B;CAyP3C"}
@@ -1,8 +1,8 @@
1
1
  import { EventEmitter, Injector, NgZone } from '@angular/core';
2
2
  import { AbstractControl, ValidationErrors } from '@angular/forms';
3
3
  import { SacBaseModelControl } from '../../common/basemodelcontrol';
4
- import { SacFormCommon } from '../../controls/form/form';
5
4
  import { ISacLocalisationService } from '../../interfaces/ISacLocalisationService';
5
+ import { SacFormLayoutCommon } from '../layout/formlayout';
6
6
  import { TinyMceDialogSettings } from './tinymcedialogsettings';
7
7
  import { TinyMceDialogSettingsMeta } from './tinymcedialogsettingsmeta';
8
8
  import { TinyMceInstance } from './tinymceinstance';
@@ -17,61 +17,37 @@ export declare abstract class SacTinyMceCommon extends SacBaseModelControl<strin
17
17
  */
18
18
  private baseConfig;
19
19
  /**
20
- * Service für Error Localisation
21
- */
22
- lngResourceService: ISacLocalisationService;
23
- /**
24
- * Settings Instanz für Dialog
25
- */
26
- selectDialogSettings: TinyMceDialogSettings;
27
- /**
28
- * TinyMCE Config
29
- */
30
- _config: any;
31
- /**
32
- * Der Select Dialog wird angezeigt
33
- */
34
- selectdialogvisible: boolean;
35
- /**
36
- * Instanz auf TinyMCE Settings. Wird durch TinyMCE gesetzt und wird für den Callback des Dialog benötigt
37
- */
38
- settings: TinyMceInstance;
39
- /**
40
- * Definiert das Control als Required
20
+ * Erlaubt im Filebrowser das löschen von Dateien
41
21
  */
42
- isrequired: boolean;
22
+ allowfiledelete: boolean;
43
23
  /**
44
- * Höhe des Editors
24
+ * Erlaubt im Filebrowser das umbennen von Dateien
45
25
  */
46
- height: string;
26
+ allowfilerename: boolean;
47
27
  /**
48
- * URL zu Filebrowser Backend
28
+ * Erlaubt im Filebrowser das hochladen von Files
49
29
  */
50
- filebrowserapiurl: string;
30
+ allowfileupload: boolean;
51
31
  /**
52
32
  * Erlaubt im Filebrowser das anlegen eines Ordners
53
33
  */
54
34
  allowfoldercreate: boolean;
55
- /**
56
- * Erlaubt im Filebrowser das umbennen eines Ordners
57
- */
58
- allowfolderrename: boolean;
59
35
  /**
60
36
  * Erlaubt im Filebrowser das löschen eines Ordners
61
37
  */
62
38
  allowfolderdelete: boolean;
63
39
  /**
64
- * Erlaubt im Filebrowser das hochladen von Files
40
+ * Erlaubt im Filebrowser das umbennen eines Ordners
65
41
  */
66
- allowfileupload: boolean;
42
+ allowfolderrename: boolean;
67
43
  /**
68
- * Erlaubt im Filebrowser das umbennen von Dateien
44
+ * URL zu Filebrowser Backend
69
45
  */
70
- allowfilerename: boolean;
46
+ filebrowserapiurl: string;
71
47
  /**
72
- * Erlaubt im Filebrowser das löschen von Dateien
48
+ * File Extensions für Links (Format: .xxx,.yyy,.eee)
73
49
  */
74
- allowfiledelete: boolean;
50
+ filetypesfiles: string;
75
51
  /**
76
52
  * File Extensions für Images (Format: .xxx,.yyy,.eee)
77
53
  */
@@ -81,9 +57,13 @@ export declare abstract class SacTinyMceCommon extends SacBaseModelControl<strin
81
57
  */
82
58
  filetypesvideo: string;
83
59
  /**
84
- * File Extensions für Links (Format: .xxx,.yyy,.eee)
60
+ * Höhe des Editors
85
61
  */
86
- filetypesfiles: string;
62
+ height: string;
63
+ /**
64
+ * Definiert das Control als Required
65
+ */
66
+ isrequired: boolean;
87
67
  /**
88
68
  * Resource Key für Validation Message Required bei Control
89
69
  */
@@ -93,36 +73,45 @@ export declare abstract class SacTinyMceCommon extends SacBaseModelControl<strin
93
73
  */
94
74
  validationmessagesummaryrequired: string;
95
75
  /**
96
- * TinyMCE Konfiguration
97
- * @link https://www.tiny.cloud/docs/configure/
76
+ * Event wenn Save Action in TinyMCE ausgelöst wird
98
77
  */
99
- set config(v: any);
78
+ onsave: EventEmitter<string>;
100
79
  /**
101
- * TinyMCE Konfiguration
80
+ * TinyMCE Config
102
81
  */
103
- get config(): any;
82
+ _config: any;
104
83
  /**
105
- * Event wenn Save Action in TinyMCE ausgelöst wird
84
+ * Service für Error Localisation
106
85
  */
107
- onsave: EventEmitter<string>;
86
+ lngResourceService: ISacLocalisationService;
87
+ /**
88
+ * Settings Instanz für Dialog
89
+ */
90
+ selectDialogSettings: TinyMceDialogSettings;
108
91
  /**
109
- * Konstruktor
110
- * @param parent Instanz vom Formular
111
- * @param injector Injector Service
112
- * @param ngZone NgZone für Javascript in TinyMCE
92
+ * Der Select Dialog wird angezeigt
113
93
  */
114
- constructor(parent: SacFormCommon, injector: Injector, ngZone: NgZone);
94
+ selectdialogvisible: boolean;
115
95
  /**
116
- * Zeigt den Dateiauswahl Dialog an
117
- * @param callback Callback Methode welche aufgerufen wird, wenn der Dialog geschlossen wird
118
- * @param value Wert aus dem Datei Dialog
119
- * @param meta Meta Daten zur Datei
96
+ * Instanz auf TinyMCE Settings. Wird durch TinyMCE gesetzt und wird für den Callback des Dialog benötigt
120
97
  */
121
- showSelectDialog(callback: any, value: string, meta: TinyMceDialogSettingsMeta): void;
98
+ settings: TinyMceInstance;
122
99
  /**
123
- * Setzt das Resultat aus dem Dateiauswahl Dialog
100
+ * Constructor
101
+ * @param formlayout SacFormLayoutCommon to define scoped layout settings
102
+ * @param injector Injector for injecting services
103
+ * @param ngZone ngzone for handling external javascripts
124
104
  */
125
- setSelectDialogResult(): void;
105
+ constructor(formlayout: SacFormLayoutCommon, injector: Injector, ngZone: NgZone);
106
+ /**
107
+ * TinyMCE Konfiguration
108
+ * @link https://www.tiny.cloud/docs/configure/
109
+ */
110
+ set config(v: any);
111
+ /**
112
+ * TinyMCE Konfiguration
113
+ */
114
+ get config(): any;
126
115
  /**
127
116
  * Schliesst den Dateiauswahl Dialog
128
117
  */
@@ -132,22 +121,33 @@ export declare abstract class SacTinyMceCommon extends SacBaseModelControl<strin
132
121
  * @param content Content als String
133
122
  */
134
123
  save(content: any): void;
124
+ /**
125
+ * Setzt das Resultat aus dem Dateiauswahl Dialog
126
+ */
127
+ setSelectDialogResult(): void;
128
+ /**
129
+ * Zeigt den Dateiauswahl Dialog an
130
+ * @param callback Callback Methode welche aufgerufen wird, wenn der Dialog geschlossen wird
131
+ * @param value Wert aus dem Datei Dialog
132
+ * @param meta Meta Daten zur Datei
133
+ */
134
+ showSelectDialog(callback: any, value: string, meta: TinyMceDialogSettingsMeta): void;
135
135
  /**
136
136
  * Validiert das Control
137
137
  * @param c Control Instanz die valdidiert wird
138
138
  * @returns Gibt eine Fehlermeldung oder NULL zurück
139
139
  */
140
140
  validateData(c: AbstractControl): ValidationErrors;
141
+ /**
142
+ * get settings in effective implementation that overwrites the defaults. use {} for non overwrites.
143
+ */
144
+ abstract overwriteDefaultSettings(): any;
141
145
  /**
142
146
  * Gibt die TinyMCE Settings zurück, die aus den Properties der Angular Komponenten erzeugt werden
143
147
  * @returns Objekt mit Settings
144
148
  */
145
149
  private getDynamicSettings;
146
- /**
147
- * get settings in effective implementation that overwrites the defaults. use {} for non overwrites.
148
- */
149
- abstract overwriteDefaultSettings(): any;
150
150
  static ɵfac: i0.ɵɵFactoryDeclaration<SacTinyMceCommon, [{ host: true; }, null, null]>;
151
- static ɵdir: i0.ɵɵDirectiveDeclaration<SacTinyMceCommon, never, never, { "isrequired": { "alias": "isrequired"; "required": false; }; "height": { "alias": "height"; "required": false; }; "filebrowserapiurl": { "alias": "filebrowserapiurl"; "required": false; }; "allowfoldercreate": { "alias": "allowfoldercreate"; "required": false; }; "allowfolderrename": { "alias": "allowfolderrename"; "required": false; }; "allowfolderdelete": { "alias": "allowfolderdelete"; "required": false; }; "allowfileupload": { "alias": "allowfileupload"; "required": false; }; "allowfilerename": { "alias": "allowfilerename"; "required": false; }; "allowfiledelete": { "alias": "allowfiledelete"; "required": false; }; "filetypesimages": { "alias": "filetypesimages"; "required": false; }; "filetypesvideo": { "alias": "filetypesvideo"; "required": false; }; "filetypesfiles": { "alias": "filetypesfiles"; "required": false; }; "validationmessagerequired": { "alias": "validationmessagerequired"; "required": false; }; "validationmessagesummaryrequired": { "alias": "validationmessagesummaryrequired"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "onsave": "onsave"; }, never, never, false, never>;
151
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SacTinyMceCommon, never, never, { "allowfiledelete": { "alias": "allowfiledelete"; "required": false; }; "allowfilerename": { "alias": "allowfilerename"; "required": false; }; "allowfileupload": { "alias": "allowfileupload"; "required": false; }; "allowfoldercreate": { "alias": "allowfoldercreate"; "required": false; }; "allowfolderdelete": { "alias": "allowfolderdelete"; "required": false; }; "allowfolderrename": { "alias": "allowfolderrename"; "required": false; }; "filebrowserapiurl": { "alias": "filebrowserapiurl"; "required": false; }; "filetypesfiles": { "alias": "filetypesfiles"; "required": false; }; "filetypesimages": { "alias": "filetypesimages"; "required": false; }; "filetypesvideo": { "alias": "filetypesvideo"; "required": false; }; "height": { "alias": "height"; "required": false; }; "isrequired": { "alias": "isrequired"; "required": false; }; "validationmessagerequired": { "alias": "validationmessagerequired"; "required": false; }; "validationmessagesummaryrequired": { "alias": "validationmessagesummaryrequired"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "onsave": "onsave"; }, never, never, false, never>;
152
152
  }
153
153
  //# sourceMappingURL=tinymce.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tinymce.d.ts","sourceRoot":"","sources":["../../../../projects/sac-common/src/controls/tinymce/tinymce.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EAEZ,QAAQ,EAER,MAAM,EAGP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAInF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;;AAEpD;;GAEG;AACH,8BACsB,gBAAiB,SAAQ,mBAAmB,CAAC,MAAM,CAAC;IA8JtE,SAAS,CAAC,MAAM,EAAE,MAAM;IA7J1B;;OAEG;IACH,OAAO,CAAC,UAAU,CAQhB;IAEF;;OAEG;IACI,kBAAkB,EAAE,uBAAuB,CAAC;IAEnD;;OAEG;IACI,oBAAoB,EAAE,qBAAqB,CAAC;IAEnD;;OAEG;IACI,OAAO,EAAE,GAAG,CAAM;IAEzB;;OAEG;IACI,mBAAmB,UAAS;IAEnC;;OAEG;IACI,QAAQ,EAAE,eAAe,CAAC;IAEjC;;OAEG;IAEI,UAAU,EAAE,OAAO,CAAS;IAEnC;;OAEG;IAEI,MAAM,EAAE,MAAM,CAAa;IAElC;;OAEG;IAEI,iBAAiB,EAAE,MAAM,CAAQ;IAExC;;OAEG;IAEI,iBAAiB,UAAS;IAEjC;;OAEG;IAEI,iBAAiB,UAAS;IAEjC;;OAEG;IAEI,iBAAiB,UAAS;IAEjC;;OAEG;IAEI,eAAe,UAAS;IAE/B;;OAEG;IAEI,eAAe,UAAS;IAE/B;;OAEG;IAEI,eAAe,UAAS;IAE/B;;OAEG;IAEI,eAAe,SAA0C;IAEhE;;OAEG;IAEI,cAAc,SAA+B;IAEpD;;OAEG;IAEI,cAAc,SAAM;IAE3B;;OAEG;IACM,yBAAyB,EAAE,MAAM,CAA+B;IAEzE;;OAEG;IAEH,gCAAgC,EAAE,MAAM,CACF;IAEtC;;;OAGG;IACH,IACI,MAAM,CAAC,CAAC,EAAE,GAAG,EAOhB;IACD;;OAEG;IACH,IAAI,MAAM,IAAI,GAAG,CAEhB;IAED;;OAEG;IAEI,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAA8B;IAEjE;;;;;OAKG;gBAEO,MAAM,EAAE,aAAa,EAC7B,QAAQ,EAAE,QAAQ,EACR,MAAM,EAAE,MAAM;IAc1B;;;;;OAKG;IACI,gBAAgB,CACrB,QAAQ,KAAA,EACR,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,yBAAyB,GAC9B,IAAI;IA+BP;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAgBpC;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAMhC;;;OAGG;IACI,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAI/B;;;;OAIG;IACH,YAAY,CAAC,CAAC,EAAE,eAAe,GAAG,gBAAgB;IAalD;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,QAAQ,CAAC,wBAAwB,IAAI,GAAG;yCA3RpB,gBAAgB;2CAAhB,gBAAgB;CA4RrC"}
1
+ {"version":3,"file":"tinymce.d.ts","sourceRoot":"","sources":["../../../../projects/sac-common/src/controls/tinymce/tinymce.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EAEZ,QAAQ,EAER,MAAM,EAEP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAInF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;;AAEpD;;GAEG;AACH,8BACsB,gBAAiB,SAAQ,mBAAmB,CAAC,MAAM,CAAC;IA+HtE,SAAS,CAAC,MAAM,EAAE,MAAM;IA5H1B;;OAEG;IACH,OAAO,CAAC,UAAU,CAQhB;IAEF;;OAEG;IAEI,eAAe,UAAS;IAC/B;;OAEG;IAEI,eAAe,UAAS;IAC/B;;OAEG;IAEI,eAAe,UAAS;IAC/B;;OAEG;IAEI,iBAAiB,UAAS;IACjC;;OAEG;IAEI,iBAAiB,UAAS;IACjC;;OAEG;IAEI,iBAAiB,UAAS;IACjC;;OAEG;IAEI,iBAAiB,EAAE,MAAM,CAAQ;IACxC;;OAEG;IAEI,cAAc,SAAM;IAC3B;;OAEG;IAEI,eAAe,SAA0C;IAChE;;OAEG;IAEI,cAAc,SAA+B;IACpD;;OAEG;IAEI,MAAM,EAAE,MAAM,CAAa;IAClC;;OAEG;IAEI,UAAU,EAAE,OAAO,CAAS;IACnC;;OAEG;IACa,yBAAyB,EAAE,MAAM,CACnB;IAC9B;;OAEG;IAEI,gCAAgC,EAAE,MAAM,CACT;IACtC;;OAEG;IAEI,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAA8B;IAEjE;;OAEG;IACI,OAAO,EAAE,GAAG,CAAM;IACzB;;OAEG;IACI,kBAAkB,EAAE,uBAAuB,CAAC;IACnD;;OAEG;IACI,oBAAoB,EAAE,qBAAqB,CAAC;IACnD;;OAEG;IACI,mBAAmB,UAAS;IACnC;;OAEG;IACI,QAAQ,EAAE,eAAe,CAAC;IAMjC;;;;;OAKG;gBAEO,UAAU,EAAE,mBAAmB,EACvC,QAAQ,EAAE,QAAQ,EACR,MAAM,EAAE,MAAM;IAgB1B;;;OAGG;IACH,IACW,MAAM,CAAC,CAAC,EAAE,GAAG,EAOvB;IAED;;OAEG;IACH,IAAW,MAAM,IAAI,GAAG,CAEvB;IAMD;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAIhC;;;OAGG;IACI,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAI/B;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAgBpC;;;;;OAKG;IACI,gBAAgB,CACrB,QAAQ,KAAA,EACR,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,yBAAyB,GAC9B,IAAI;IA+BP;;;;OAIG;IACI,YAAY,CAAC,CAAC,EAAE,eAAe,GAAG,gBAAgB;IAiBzD;;OAEG;aACa,wBAAwB,IAAI,GAAG;IAM/C;;;OAGG;IACH,OAAO,CAAC,kBAAkB;yCAtRN,gBAAgB;2CAAhB,gBAAgB;CAgSrC"}
@@ -3,7 +3,7 @@ import * as moment_ from 'moment';
3
3
  import { Validation } from '../validation';
4
4
  import { SacBaseModelControl } from './basemodelcontrol';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "../controls/form/form";
6
+ import * as i1 from "../controls/layout/formlayout";
7
7
  /**
8
8
  * Moment
9
9
  */
@@ -12,17 +12,18 @@ const moment = moment_['default'];
12
12
  * Base Klasse für Date/Time Controls
13
13
  */
14
14
  class SacBaseDateTimeControl extends SacBaseModelControl {
15
- // #region Constructor
15
+ // #endregion Properties
16
+ // #region Constructors
16
17
  /**
17
- * Konstruktor
18
- * @param parent typ SacFormCommon
19
- * @param injector typ Injector
20
- * @param _elementRef typ ElementRef
18
+ * Constructor
19
+ * @param formlayout SacFormLayoutCommon to define scoped layout settings
20
+ * @param injector Injector for injecting services
21
+ * @param elementRef reference to html element
21
22
  */
22
- constructor(parent, injector, _elementRef) {
23
- super(parent, injector);
24
- this._elementRef = _elementRef;
25
- //#region Abstract Methods
23
+ constructor(formlayout, injector, elementRef) {
24
+ super(formlayout, injector);
25
+ this.elementRef = elementRef;
26
+ // #region Properties
26
27
  /**
27
28
  * das property enthielt das Value als string. Default ist ''
28
29
  */
@@ -35,14 +36,6 @@ class SacBaseDateTimeControl extends SacBaseModelControl {
35
36
  * TextBox Placeholder
36
37
  */
37
38
  this.placeholder = null;
38
- /**
39
- * Resource Key für Validation Message Required bei Control
40
- */
41
- this.validationmessagerequired = 'VALIDATION_ERROR_REQUIRED';
42
- /**
43
- * Resource Key für Validation Message Required in Validation Summary
44
- */
45
- this.validationmessagerequiredsummary = 'VALIDATION_ERROR_SUMMARY_REQUIRED';
46
39
  /**
47
40
  * Resource Key für Validation Message DateTimeFormat bei Control
48
41
  */
@@ -51,51 +44,17 @@ class SacBaseDateTimeControl extends SacBaseModelControl {
51
44
  * Resource Key für Validation Message DateTimeFormat in Validation Summary
52
45
  */
53
46
  this.validationmessagedatetimeformatsummary = 'VALIDATION_ERROR_SUMMARY_DATETIMEFORMAT';
47
+ /**
48
+ * Resource Key für Validation Message Required bei Control
49
+ */
50
+ this.validationmessagerequired = 'VALIDATION_ERROR_REQUIRED';
51
+ /**
52
+ * Resource Key für Validation Message Required in Validation Summary
53
+ */
54
+ this.validationmessagerequiredsummary = 'VALIDATION_ERROR_SUMMARY_REQUIRED';
54
55
  }
55
- // #endregion
56
- /**
57
- * Init Event
58
- */
59
- ngOnInit() {
60
- super.ngOnInit();
61
- this.SetDateTimeFormat();
62
- }
63
- //#endregion
64
- //#region Variablen
65
- //#endregion
66
- // #region Properties
67
- //#endregion
68
- //#region ValueControlAccess
69
- /**
70
- * Overwrite WriteValue to Set correct Date Object
71
- */
72
- writeValue(value) {
73
- if (value === '' || value === null || value === undefined) {
74
- // Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.
75
- this._valueAsString = '';
76
- // Set Internal Property
77
- this._value = null;
78
- }
79
- else {
80
- this._value = this.getDate(value).toDate();
81
- }
82
- super.writeValue(this._value);
83
- }
84
- /**
85
- * JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann
86
- */
87
- getDate(timestamp) {
88
- const date = new Date(timestamp);
89
- const year = date.getUTCFullYear();
90
- const month = date.getUTCMonth();
91
- const day = date.getUTCDate();
92
- const hours = date.getUTCHours();
93
- const minutes = date.getUTCMinutes();
94
- const seconds = date.getUTCSeconds();
95
- return moment(Date.UTC(year, month, day, hours, minutes, seconds));
96
- }
97
- //#endregion
98
- // #region Value as String
56
+ // #endregion Constructors
57
+ // #region Public Getters And Setters
99
58
  /**
100
59
  * Das Input bekommt das value von typ string
101
60
  */
@@ -122,23 +81,34 @@ class SacBaseDateTimeControl extends SacBaseModelControl {
122
81
  return date.local().format(this.GetDateTimeFormatString());
123
82
  }
124
83
  }
84
+ // #endregion Public Getters And Setters
85
+ // #region Public Methods
86
+ /**
87
+ * JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann
88
+ */
89
+ getDate(timestamp) {
90
+ const date = new Date(timestamp);
91
+ const year = date.getUTCFullYear();
92
+ const month = date.getUTCMonth();
93
+ const day = date.getUTCDate();
94
+ const hours = date.getUTCHours();
95
+ const minutes = date.getUTCMinutes();
96
+ const seconds = date.getUTCSeconds();
97
+ return moment(Date.UTC(year, month, day, hours, minutes, seconds));
98
+ }
99
+ /**
100
+ * Init Event
101
+ */
102
+ ngOnInit() {
103
+ super.ngOnInit();
104
+ this.SetDateTimeFormat();
105
+ }
125
106
  /**
126
107
  * setzt das value von typ string zu property valuestring
127
108
  */
128
109
  setValueString(v) {
129
110
  this.valuestring = v;
130
111
  }
131
- // #endregion
132
- // #region Private Methods
133
- SetDateTimeFormat() {
134
- // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
135
- if (this.ngControl) {
136
- this.ngControl.datetimeformatstring =
137
- this.GetDateTimeFormatString();
138
- }
139
- }
140
- // #endregion
141
- //#region Validation
142
112
  /**
143
113
  * Validator
144
114
  */
@@ -150,25 +120,49 @@ class SacBaseDateTimeControl extends SacBaseModelControl {
150
120
  }
151
121
  return error;
152
122
  }
153
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacBaseDateTimeControl, deps: [{ token: i1.SacFormCommon }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
154
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SacBaseDateTimeControl, inputs: { isrequired: "isrequired", placeholder: "placeholder", validationmessagerequired: "validationmessagerequired", validationmessagerequiredsummary: "validationmessagerequiredsummary", validationmessagedatetimeformat: "validationmessagedatetimeformat", validationmessagedatetimeformatsummary: "validationmessagedatetimeformatsummary", valuestring: "valuestring" }, usesInheritance: true, ngImport: i0 }); }
123
+ /**
124
+ * Overwrite WriteValue to Set correct Date Object
125
+ */
126
+ writeValue(value) {
127
+ if (value === '' || value === null || value === undefined) {
128
+ // Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.
129
+ this._valueAsString = '';
130
+ // Set Internal Property
131
+ this._value = null;
132
+ }
133
+ else {
134
+ this._value = this.getDate(value).toDate();
135
+ }
136
+ super.writeValue(this._value);
137
+ }
138
+ // #endregion Public Abstract Methods
139
+ // #region Private Methods
140
+ SetDateTimeFormat() {
141
+ // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
142
+ if (this.ngControl) {
143
+ this.ngControl.datetimeformatstring =
144
+ this.GetDateTimeFormatString();
145
+ }
146
+ }
147
+ static { 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 }); }
148
+ static { 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 }); }
155
149
  }
156
150
  export { SacBaseDateTimeControl };
157
151
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacBaseDateTimeControl, decorators: [{
158
152
  type: Directive
159
- }], ctorParameters: function () { return [{ type: i1.SacFormCommon }, { type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { isrequired: [{
153
+ }], ctorParameters: function () { return [{ type: i1.SacFormLayoutCommon }, { type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { isrequired: [{
160
154
  type: Input
161
155
  }], placeholder: [{
162
156
  type: Input
163
- }], validationmessagerequired: [{
164
- type: Input
165
- }], validationmessagerequiredsummary: [{
166
- type: Input
167
157
  }], validationmessagedatetimeformat: [{
168
158
  type: Input
169
159
  }], validationmessagedatetimeformatsummary: [{
170
160
  type: Input
161
+ }], validationmessagerequired: [{
162
+ type: Input
163
+ }], validationmessagerequiredsummary: [{
164
+ type: Input
171
165
  }], valuestring: [{
172
166
  type: Input
173
167
  }] } });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXdCLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUdsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFFekQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbEM7O0dBRUc7QUFDSCxNQUNzQixzQkFDcEIsU0FBUSxtQkFBeUI7SUFHakMsc0JBQXNCO0lBRXRCOzs7OztPQUtHO0lBQ0gsWUFDRSxNQUFxQixFQUNyQixRQUFrQixFQUNSLFdBQXVCO1FBRWpDLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFGZCxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQWVuQywwQkFBMEI7UUFFMUI7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUU5Qjs7V0FFRztRQUNNLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFckM7O1dBRUc7UUFDTSxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUVwQzs7V0FFRztRQUNNLDhCQUF5QixHQUFXLDJCQUEyQixDQUFDO1FBQ3pFOztXQUVHO1FBQ00scUNBQWdDLEdBQ3ZDLG1DQUFtQyxDQUFDO1FBRXRDOztXQUVHO1FBQ00sb0NBQStCLEdBQ3RDLGlDQUFpQyxDQUFDO1FBQ3BDOztXQUVHO1FBQ00sMkNBQXNDLEdBQzdDLHlDQUF5QyxDQUFDO0lBaEQ1QyxDQUFDO0lBRUQsYUFBYTtJQUViOztPQUVHO0lB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QUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBeUMsQ0FBQyxvQkFBb0I7Z0JBQ2xFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELGFBQWE7SUFFYixvQkFBb0I7SUFFcEI7O09BRUc7SUFDSCxZQUFZLENBQUMsQ0FBa0I7UUFDN0IsSUFBSSxLQUFLLEdBQTRCLElBQUksQ0FBQztRQUUxQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FDNUIsSUFBSSxDQUFDLCtCQUErQixFQUNwQyxJQUFJLENBQUMsc0NBQXNDLENBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQ3pCLElBQUksQ0FBQyx5QkFBeUIsRUFDOUIsSUFBSSxDQUFDLGdDQUFnQyxDQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBcE1tQixzQkFBc0I7bUdBQXRCLHNCQUFzQjs7U0FBdEIsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBRDNDLFNBQVM7b0pBeUNDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBSUcsZ0NBQWdDO3NCQUF4QyxLQUFLO2dCQU1HLCtCQUErQjtzQkFBdkMsS0FBSztnQkFLRyxzQ0FBc0M7c0JBQTlDLEtBQUs7Z0JBZ0VGLFdBQVc7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IFNhY0Zvcm1Db21tb24gfSBmcm9tICcuLi9jb250cm9scy9mb3JtL2Zvcm0nO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG5pbXBvcnQgeyBJRGF0ZVRpbWVDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZGF0ZXRpbWVjb250cm9sJztcclxuLyoqXHJcbiAqIE1vbWVudFxyXG4gKi9cclxuY29uc3QgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBEYXRlL1RpbWUgQ29udHJvbHNcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZURhdGVUaW1lQ29udHJvbFxyXG4gIGV4dGVuZHMgU2FjQmFzZU1vZGVsQ29udHJvbDxEYXRlPlxyXG4gIGltcGxlbWVudHMgT25Jbml0XHJcbntcclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yXHJcblxyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIHBhcmVudCB0eXAgU2FjRm9ybUNvbW1vblxyXG4gICAqIEBwYXJhbSBpbmplY3RvciB0eXAgSW5qZWN0b3JcclxuICAgKiBAcGFyYW0gX2VsZW1lbnRSZWYgdHlwIEVsZW1lbnRSZWZcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHBhcmVudDogU2FjRm9ybUNvbW1vbixcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByb3RlY3RlZCBfZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgc3VwZXIocGFyZW50LCBpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXQgRXZlbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLlNldERhdGVUaW1lRm9ybWF0KCk7XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gQWJzdHJhY3QgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBkYXMgcHJvcGVydHkgZW50aGllbHQgZGFzIFZhbHVlIGFscyBzdHJpbmcuIERlZmF1bHQgaXN0ICcnXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIF92YWx1ZUFzU3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRleHRCb3ggUGxhY2Vob2xkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KCkgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gJ1ZBTElEQVRJT05fRVJST1JfUkVRVUlSRUQnO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKSB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeTogc3RyaW5nID1cclxuICAgICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfUkVRVUlSRUQnO1xyXG5cclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgYmVpIENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0OiBzdHJpbmcgPVxyXG4gICAgJ1ZBTElEQVRJT05fRVJST1JfREFURVRJTUVGT1JNQVQnO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKSB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeTogc3RyaW5nID1cclxuICAgICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfREFURVRJTUVGT1JNQVQnO1xyXG5cclxuICAvKipcclxuICAgKiBEaWUgbWV0aG9kZSByZXR1cm5zIGRhdGVUaW1lIGluIHN0cmluZ1xyXG4gICAqL1xyXG4gIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogRGllIG1ldGhvZGUgbW9kaWZpemllcnQgZGFzIGVpbmdlZ2ViZW5lIFZhbHVlIHZvbiB0eXAgTW9tZW50XHJcbiAgICovXHJcbiAgYWJzdHJhY3QgTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSh2OiBNb21lbnQpOiBNb21lbnQ7XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gVmFyaWFibGVuXHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBWYWx1ZUNvbnRyb2xBY2Nlc3NcclxuXHJcbiAgLyoqXHJcbiAgICogT3ZlcndyaXRlIFdyaXRlVmFsdWUgdG8gU2V0IGNvcnJlY3QgRGF0ZSBPYmplY3RcclxuICAgKi9cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gUmVzZXQgVmFsdWUgU3RyaW5nLCBkYW1pdCBiZWltIFVwZGF0ZSBkZXMgTW9kZWxzIGF1Y2ggZGFzIElucHV0IEZlbGQgZ2VsZWVydCB3aXJkLlxyXG4gICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gJyc7XHJcbiAgICAgIC8vIFNldCBJbnRlcm5hbCBQcm9wZXJ0eVxyXG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZ2V0RGF0ZSh2YWx1ZSkudG9EYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3VwZXIud3JpdGVWYWx1ZSh0aGlzLl92YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBKU09OIERhdGUgU3RyaW5nIGluIGVpbiBVVEMgRGF0ZVRpbWUgT2JqZWN0IGtvbnZlcnRpZXJlbiwgd2VsY2hlcyB2b20gQ29udHJvbCB2ZXJ3ZW5kZXRlIHdlcmRlbiBrYW5uXHJcbiAgICovXHJcbiAgZ2V0RGF0ZSh0aW1lc3RhbXApIHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoID0gZGF0ZS5nZXRVVENNb250aCgpO1xyXG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXRVVENEYXRlKCk7XHJcbiAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0VVRDSG91cnMoKTtcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcclxuICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcclxuXHJcbiAgICByZXR1cm4gbW9tZW50KERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSk7XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8gI3JlZ2lvbiBWYWx1ZSBhcyBTdHJpbmdcclxuXHJcbiAgLyoqXHJcbiAgICogRGFzIElucHV0IGJla29tbXQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWVzdHJpbmcodjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gdjtcclxuICAgIGxldCBkYXRlOiBNb21lbnQgPSBtb21lbnQodiwgW3RoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKV0sIHRydWUpO1xyXG5cclxuICAgIGRhdGUgPSB0aGlzLk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUoZGF0ZSkudXRjKCk7XHJcblxyXG4gICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlLnRvRGF0ZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBnZXR0ZXIgZsO8ciB2YWx1ZXN0cmluZ1xyXG4gICAqL1xyXG4gIGdldCB2YWx1ZXN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlQXNTdHJpbmc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50LnV0Yyh0aGlzLnZhbHVlKTtcclxuICAgICAgcmV0dXJuIGRhdGUubG9jYWwoKS5mb3JtYXQodGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHNldHp0IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZyB6dSBwcm9wZXJ0eSB2YWx1ZXN0cmluZ1xyXG4gICAqL1xyXG4gIHNldFZhbHVlU3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgdGhpcy52YWx1ZXN0cmluZyA9IHY7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcblxyXG4gIHByaXZhdGUgU2V0RGF0ZVRpbWVGb3JtYXQoKTogdm9pZCB7XHJcbiAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxyXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElEYXRlVGltZUNvbnRyb2wpLmRhdGV0aW1lZm9ybWF0c3RyaW5nID1cclxuICAgICAgICB0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBWYWxpZGF0aW9uXHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvclxyXG4gICAqL1xyXG4gIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBlcnJvciA9IFZhbGlkYXRpb24uaXNWYWxpZERhdGUoXHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcclxuICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxyXG4gICAgKShjKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZChcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeVxyXG4gICAgICApKGMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvcjtcclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG59XHJcbiJdfQ==
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXdCLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUlsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFDekQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbEM7O0dBRUc7QUFDSCxNQUNzQixzQkFDcEIsU0FBUSxtQkFBeUI7SUF1Q2pDLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7O09BS0c7SUFDSCxZQUNFLFVBQStCLEVBQy9CLFFBQWtCLEVBQ1IsVUFBc0I7UUFFaEMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUZsQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBakRsQyxxQkFBcUI7UUFFckI7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUU5Qjs7V0FFRztRQUNhLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUM7O1dBRUc7UUFDYSxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUMzQzs7V0FFRztRQUNhLG9DQUErQixHQUM3QyxpQ0FBaUMsQ0FBQztRQUNwQzs7V0FFRztRQUNhLDJDQUFzQyxHQUNwRCx5Q0FBeUMsQ0FBQztRQUM1Qzs7V0FFRztRQUNhLDhCQUF5QixHQUN2QywyQkFBMkIsQ0FBQztRQUM5Qjs7V0FFRztRQUNhLHFDQUFnQyxHQUM5QyxtQ0FBbUMsQ0FBQztJQWtCdEMsQ0FBQztJQUVELDBC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QUNyRixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztZQUN6Qix3QkFBd0I7WUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDcEI7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUM1QztRQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFlRCxxQ0FBcUM7SUFFckMsMEJBQTBCO0lBRWxCLGlCQUFpQjtRQUN2QixtSUFBbUk7UUFDbkksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxTQUF5QyxDQUFDLG9CQUFvQjtnQkFDbEUsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7U0FDbEM7SUFDSCxDQUFDOytHQXpMbUIsc0JBQXNCO21HQUF0QixzQkFBc0I7O1NBQXRCLHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQUQzQyxTQUFTOzBKQWVRLFVBQVU7c0JBQXpCLEtBQUs7Z0JBSVUsV0FBVztzQkFBMUIsS0FBSztnQkFJVSwrQkFBK0I7c0JBQTlDLEtBQUs7Z0JBS1Usc0NBQXNDO3NCQUFyRCxLQUFLO2dCQUtVLHlCQUF5QjtzQkFBeEMsS0FBSztnQkFLVSxnQ0FBZ0M7c0JBQS9DLEtBQUs7Z0JBNkJLLFdBQVc7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xyXG5pbXBvcnQgeyBJRGF0ZVRpbWVDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZGF0ZXRpbWVjb250cm9sJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uL3ZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBTYWNCYXNlTW9kZWxDb250cm9sIH0gZnJvbSAnLi9iYXNlbW9kZWxjb250cm9sJztcclxuLyoqXHJcbiAqIE1vbWVudFxyXG4gKi9cclxuY29uc3QgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBEYXRlL1RpbWUgQ29udHJvbHNcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZURhdGVUaW1lQ29udHJvbFxyXG4gIGV4dGVuZHMgU2FjQmFzZU1vZGVsQ29udHJvbDxEYXRlPlxyXG4gIGltcGxlbWVudHMgT25Jbml0XHJcbntcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogZGFzIHByb3BlcnR5IGVudGhpZWx0IGRhcyBWYWx1ZSBhbHMgc3RyaW5nLiBEZWZhdWx0IGlzdCAnJ1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBfdmFsdWVBc1N0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmllcnQgZGFzIENvbnRyb2wgYWxzIFJlcXVpcmVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlzcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBUZXh0Qm94IFBsYWNlaG9sZGVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBiZWkgQ29udHJvbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0OiBzdHJpbmcgPVxyXG4gICAgJ1ZBTElEQVRJT05fRVJST1JfREFURVRJTUVGT1JNQVQnO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnk6IHN0cmluZyA9XHJcbiAgICAnVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0RBVEVUSU1FRk9STUFUJztcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID1cclxuICAgICdWQUxJREFUSU9OX0VSUk9SX1JFUVVJUkVEJztcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5OiBzdHJpbmcgPVxyXG4gICAgJ1ZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9SRVFVSVJFRCc7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIHJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvKipcclxuICAgKiBEYXMgSW5wdXQgYmVrb21tdCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmdcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdmFsdWVzdHJpbmcodjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gdjtcclxuICAgIGxldCBkYXRlOiBNb21lbnQgPSBtb21lbnQodiwgW3RoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKV0sIHRydWUpO1xyXG5cclxuICAgIGRhdGUgPSB0aGlzLk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUoZGF0ZSkudXRjKCk7XHJcblxyXG4gICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlLnRvRGF0ZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBnZXR0ZXIgZsO8ciB2YWx1ZXN0cmluZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgdmFsdWVzdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZUFzU3RyaW5nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudC51dGModGhpcy52YWx1ZSk7XHJcbiAgICAgIHJldHVybiBkYXRlLmxvY2FsKCkuZm9ybWF0KHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogSlNPTiBEYXRlIFN0cmluZyBpbiBlaW4gVVRDIERhdGVUaW1lIE9iamVjdCBrb252ZXJ0aWVyZW4sIHdlbGNoZXMgdm9tIENvbnRyb2wgdmVyd2VuZGV0ZSB3ZXJkZW4ga2FublxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXREYXRlKHRpbWVzdGFtcCkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XHJcbiAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XHJcbiAgICBjb25zdCBkYXkgPSBkYXRlLmdldFVUQ0RhdGUoKTtcclxuICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xyXG4gICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0VVRDTWludXRlcygpO1xyXG4gICAgY29uc3Qgc2Vjb25kcyA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xyXG5cclxuICAgIHJldHVybiBtb21lbnQoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXQgRXZlbnRcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5TZXREYXRlVGltZUZvcm1hdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogc2V0enQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nIHp1IHByb3BlcnR5IHZhbHVlc3RyaW5nXHJcbiAgICovXHJcbiAgcHVibGljIHNldFZhbHVlU3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgdGhpcy52YWx1ZXN0cmluZyA9IHY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0b3JcclxuICAgKi9cclxuICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGVycm9yID0gVmFsaWRhdGlvbi5pc1ZhbGlkRGF0ZShcclxuICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0LFxyXG4gICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5XHJcbiAgICApKGMpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcclxuICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnJlcXVpcmVkKFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCxcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5XHJcbiAgICAgICkoYyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVycm9yO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3ZlcndyaXRlIFdyaXRlVmFsdWUgdG8gU2V0IGNvcnJlY3QgRGF0ZSBPYmplY3RcclxuICAgKi9cclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIC8vIFJlc2V0IFZhbHVlIFN0cmluZywgZGFtaXQgYmVpbSBVcGRhdGUgZGVzIE1vZGVscyBhdWNoIGRhcyBJbnB1dCBGZWxkIGdlbGVlcnQgd2lyZC5cclxuICAgICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9ICcnO1xyXG4gICAgICAvLyBTZXQgSW50ZXJuYWwgUHJvcGVydHlcclxuICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmdldERhdGUodmFsdWUpLnRvRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHN1cGVyLndyaXRlVmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBBYnN0cmFjdCBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBtZXRob2RlIHJldHVybnMgZGF0ZVRpbWUgaW4gc3RyaW5nXHJcbiAgICovXHJcbiAgcHVibGljIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcclxuICAvKipcclxuICAgKiBEaWUgbWV0aG9kZSBtb2RpZml6aWVydCBkYXMgZWluZ2VnZWJlbmUgVmFsdWUgdm9uIHR5cCBNb21lbnRcclxuICAgKi9cclxuICBwdWJsaWMgYWJzdHJhY3QgTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSh2OiBNb21lbnQpOiBNb21lbnQ7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEFic3RyYWN0IE1ldGhvZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgcHJpdmF0ZSBTZXREYXRlVGltZUZvcm1hdCgpOiB2b2lkIHtcclxuICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSURhdGVUaW1lQ29udHJvbCkuZGF0ZXRpbWVmb3JtYXRzdHJpbmcgPVxyXG4gICAgICAgIHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcbn1cclxuIl19
@@ -1,4 +1,4 @@
1
- import { Input, Directive } from '@angular/core';
1
+ import { Directive, Input } from '@angular/core';
2
2
  import { SacBaseModelControl } from './basemodelcontrol';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
@@ -8,6 +8,14 @@ class SacInputBase extends SacBaseModelControl {
8
8
  constructor() {
9
9
  super(...arguments);
10
10
  // #region Properties
11
+ /**
12
+ * Erlaubte Zeichen bei der Eingabe
13
+ */
14
+ this.allowedchars = '';
15
+ /**
16
+ * Autofill aktivieren oder deaktivieren
17
+ */
18
+ this.disableautocomplete = false;
11
19
  /**
12
20
  * Definiert das Control als Required
13
21
  */
@@ -16,10 +24,6 @@ class SacInputBase extends SacBaseModelControl {
16
24
  * TextBox Placeholder
17
25
  */
18
26
  this.placeholder = null;
19
- /**
20
- * Erlaubte Zeichen bei der Eingabe
21
- */
22
- this.allowedchars = '';
23
27
  /**
24
28
  * Macht das Input readonly
25
29
  */
@@ -28,13 +32,9 @@ class SacInputBase extends SacBaseModelControl {
28
32
  * Text welcher als Tooltip angezeigt wird.
29
33
  */
30
34
  this.tooltiptext = '';
31
- /**
32
- * Autofill aktivieren oder deaktivieren
33
- */
34
- this.disableautocomplete = false;
35
35
  }
36
- // #endregion
37
- // #region Event Handler
36
+ // #endregion Properties
37
+ // #region Public Methods
38
38
  /**
39
39
  * Methode validiert Input wenn KeyPress-Event passiert
40
40
  */
@@ -54,8 +54,8 @@ class SacInputBase extends SacBaseModelControl {
54
54
  event.preventDefault();
55
55
  }
56
56
  }
57
- // #endregion
58
- // #region Protected Virtual Methods
57
+ // #endregion Public Methods
58
+ // #region Protected Methods
59
59
  /**
60
60
  * Methode validiert wenn ein Drück-Event passiert
61
61
  */
@@ -63,16 +63,18 @@ class SacInputBase extends SacBaseModelControl {
63
63
  return true;
64
64
  }
65
65
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacInputBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
66
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SacInputBase, inputs: { isrequired: "isrequired", placeholder: "placeholder", allowedchars: "allowedchars", readonly: "readonly", regexvalidation: "regexvalidation", tooltiptext: "tooltiptext", disableautocomplete: "disableautocomplete" }, usesInheritance: true, ngImport: i0 }); }
66
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SacInputBase, inputs: { allowedchars: "allowedchars", disableautocomplete: "disableautocomplete", isrequired: "isrequired", placeholder: "placeholder", readonly: "readonly", regexvalidation: "regexvalidation", tooltiptext: "tooltiptext" }, usesInheritance: true, ngImport: i0 }); }
67
67
  }
68
68
  export { SacInputBase };
69
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacInputBase, decorators: [{
70
70
  type: Directive
71
- }], propDecorators: { isrequired: [{
71
+ }], propDecorators: { allowedchars: [{
72
72
  type: Input
73
- }], placeholder: [{
73
+ }], disableautocomplete: [{
74
+ type: Input
75
+ }], isrequired: [{
74
76
  type: Input
75
- }], allowedchars: [{
77
+ }], placeholder: [{
76
78
  type: Input
77
79
  }], readonly: [{
78
80
  type: Input
@@ -80,7 +82,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
80
82
  type: Input
81
83
  }], tooltiptext: [{
82
84
  type: Input
83
- }], disableautocomplete: [{
84
- type: Input
85
85
  }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWlucHV0Y29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlaW5wdXRjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV6RDs7R0FFRztBQUNILE1BQ3NCLFlBQW9CLFNBQVEsbUJBQTBCO0lBRDVFOztRQUdFLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNNLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFckM7O1dBRUc7UUFDTSxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUVwQzs7V0FFRztRQUNNLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRW5DOztXQUVHO1FBQ00sYUFBUSxHQUFZLEtBQUssQ0FBQztRQU9uQzs7V0FFRztRQUNNLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRWxDOztXQUVHO1FBQ00sd0JBQW1CLEdBQVksS0FBSyxDQUFDO0tBMkMvQztJQXhDQyxhQUFhO0lBRWIsd0JBQXdCO0lBRXhCOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEtBQW9CO1FBRXBDLHNDQUFzQztRQUN0QyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNsQyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsaUJBQWlCO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDNUIsbUVBQW1FO1FBQ25FLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzVDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtRQUVELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBRXRELElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsRUFBRTtZQUN0RSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsYUFBYTtJQUViLG9DQUFvQztJQUVwQzs7T0FFRztJQUNPLG9CQUFvQixDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDaEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQTdFbUIsWUFBWTttR0FBWixZQUFZOztTQUFaLFlBQVk7NEZBQVosWUFBWTtrQkFEakMsU0FBUzs4QkFRQyxVQUFVO3NCQUFsQixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyxtQkFBbUI7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvbnZlcnRUb09iamVjdCB9IGZyb20gJ3R5cGVzY3JpcHQnO1xyXG5pbXBvcnQgeyBTYWNCYXNlTW9kZWxDb250cm9sIH0gZnJvbSAnLi9iYXNlbW9kZWxjb250cm9sJztcclxuXHJcbi8qKlxyXG4gKiBBYnN0cmFjdCBLbGFzc2UgZsO8ciBTYWNJbnB1dEJhc2UuIEV4dGVuZGVzIFNhY0Jhc2VNb2RlbENvbnRyb2xcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjSW5wdXRCYXNlPFZBTFVFPiBleHRlbmRzIFNhY0Jhc2VNb2RlbENvbnRyb2w8VkFMVUU+IHtcclxuXHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRleHRCb3ggUGxhY2Vob2xkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogRXJsYXVidGUgWmVpY2hlbiBiZWkgZGVyIEVpbmdhYmVcclxuICAgKi9cclxuICBASW5wdXQoKSBhbGxvd2VkY2hhcnM6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBNYWNodCBkYXMgSW5wdXQgcmVhZG9ubHlcclxuICAgKi9cclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmllcnQgZGFzIEZlbGQgYWxzIHZhbGlkL2ludmFsaWQgdm9uIGVpbmdlZ2ViZW5lbiByZWdleC1wYXR0ZXJuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmVnZXh2YWxpZGF0aW9uOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRleHQgd2VsY2hlciBhbHMgVG9vbHRpcCBhbmdlemVpZ3Qgd2lyZC5cclxuICAgKi9cclxuICBASW5wdXQoKSB0b29sdGlwdGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEF1dG9maWxsIGFrdGl2aWVyZW4gb2RlciBkZWFrdGl2aWVyZW5cclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNhYmxlYXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vICNyZWdpb24gRXZlbnQgSGFuZGxlclxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIHZhbGlkaWVydCBJbnB1dCB3ZW5uIEtleVByZXNzLUV2ZW50IHBhc3NpZXJ0XHJcbiAgICovXHJcbiAgcHVibGljIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBCb29sZWFuIHtcclxuXHJcbiAgICAvLyBDYW5jZWwgd2VubiBfYWxsb3dlZENoYXJzIGxlZXIgaXN0LlxyXG4gICAgaWYgKHRoaXMuYWxsb3dlZGNoYXJzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBWYWxpZGF0ZSBJbnB1dFxyXG4gICAgY29uc3QgY2hhcmFjdGVyID0gZXZlbnQua2V5O1xyXG4gICAgLy8gWmVpY2hlbiBpbiBBbGxvd2VkIENoYXJzIG5pY2h0IGdlZnVuZGVuLCBFdmVudCBuaWNodCB3ZWl0ZXJnZWJlblxyXG4gICAgaWYgKHRoaXMuYWxsb3dlZGNoYXJzLmluZGV4T2YoY2hhcmFjdGVyKSA8IDApIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpbnB1dENvbnRyb2wgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgICBpZiAoIXRoaXMuT25LZXlQcmVzc1ZhbGlkYXRpb24oaW5wdXRDb250cm9sLnNlbGVjdGlvblN0YXJ0LCBjaGFyYWN0ZXIpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vICNyZWdpb24gUHJvdGVjdGVkIFZpcnR1YWwgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIHZhbGlkaWVydCB3ZW5uIGVpbiBEcsO8Y2stRXZlbnQgcGFzc2llcnRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgT25LZXlQcmVzc1ZhbGlkYXRpb24ocG9zaXRpb246IG51bWJlciwgY2hhcmFjdGVyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvblxyXG59XHJcblxyXG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWlucHV0Y29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlaW5wdXRjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV6RDs7R0FFRztBQUNILE1BQ3NCLFlBQW9CLFNBQVEsbUJBQTBCO0lBRDVFOztRQUVFLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNhLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFDOztXQUVHO1FBQ2Esd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JEOztXQUVHO1FBQ2EsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1Qzs7V0FFRztRQUNhLGdCQUFXLEdBQVcsSUFBSSxDQUFDO1FBQzNDOztXQUVHO1FBQ2EsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUsxQzs7V0FFRztRQUNhLGdCQUFXLEdBQVcsRUFBRSxDQUFDO0tBeUMxQztJQXZDQyx3QkFBd0I7SUFFeEIseUJBQXlCO0lBRXpCOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEtBQW9CO1FBQ3BDLHNDQUFzQztRQUN0QyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNsQyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsaUJBQWlCO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDNUIsbUVBQW1FO1FBQ25FLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzVDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtRQUVELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBRXRELElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsRUFBRTtZQUN0RSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsNEJBQTRCO0lBRTVCLDRCQUE0QjtJQUU1Qjs7T0FFRztJQUNPLG9CQUFvQixDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDaEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQXBFbUIsWUFBWTttR0FBWixZQUFZOztTQUFaLFlBQVk7NEZBQVosWUFBWTtrQkFEakMsU0FBUzs4QkFPUSxZQUFZO3NCQUEzQixLQUFLO2dCQUlVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFJVSxVQUFVO3NCQUF6QixLQUFLO2dCQUlVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBSVUsUUFBUTtzQkFBdkIsS0FBSztnQkFJVSxlQUFlO3NCQUE5QixLQUFLO2dCQUlVLFdBQVc7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG5cclxuLyoqXHJcbiAqIEFic3RyYWN0IEtsYXNzZSBmw7xyIFNhY0lucHV0QmFzZS4gRXh0ZW5kZXMgU2FjQmFzZU1vZGVsQ29udHJvbFxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNJbnB1dEJhc2U8VkFMVUU+IGV4dGVuZHMgU2FjQmFzZU1vZGVsQ29udHJvbDxWQUxVRT4ge1xyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvKipcclxuICAgKiBFcmxhdWJ0ZSBaZWljaGVuIGJlaSBkZXIgRWluZ2FiZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhbGxvd2VkY2hhcnM6IHN0cmluZyA9ICcnO1xyXG4gIC8qKlxyXG4gICAqIEF1dG9maWxsIGFrdGl2aWVyZW4gb2RlciBkZWFrdGl2aWVyZW5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWF1dG9jb21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaXNyZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIFRleHRCb3ggUGxhY2Vob2xkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogTWFjaHQgZGFzIElucHV0IHJlYWRvbmx5XHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IGRhcyBGZWxkIGFscyB2YWxpZC9pbnZhbGlkIHZvbiBlaW5nZWdlYmVuZW4gcmVnZXgtcGF0dGVyblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWdleHZhbGlkYXRpb246IHN0cmluZztcclxuICAvKipcclxuICAgKiBUZXh0IHdlbGNoZXIgYWxzIFRvb2x0aXAgYW5nZXplaWd0IHdpcmQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHRvb2x0aXB0ZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSB2YWxpZGllcnQgSW5wdXQgd2VubiBLZXlQcmVzcy1FdmVudCBwYXNzaWVydFxyXG4gICAqL1xyXG4gIHB1YmxpYyBvbktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogQm9vbGVhbiB7XHJcbiAgICAvLyBDYW5jZWwgd2VubiBfYWxsb3dlZENoYXJzIGxlZXIgaXN0LlxyXG4gICAgaWYgKHRoaXMuYWxsb3dlZGNoYXJzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBWYWxpZGF0ZSBJbnB1dFxyXG4gICAgY29uc3QgY2hhcmFjdGVyID0gZXZlbnQua2V5O1xyXG4gICAgLy8gWmVpY2hlbiBpbiBBbGxvd2VkIENoYXJzIG5pY2h0IGdlZnVuZGVuLCBFdmVudCBuaWNodCB3ZWl0ZXJnZWJlblxyXG4gICAgaWYgKHRoaXMuYWxsb3dlZGNoYXJzLmluZGV4T2YoY2hhcmFjdGVyKSA8IDApIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpbnB1dENvbnRyb2wgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgICBpZiAoIXRoaXMuT25LZXlQcmVzc1ZhbGlkYXRpb24oaW5wdXRDb250cm9sLnNlbGVjdGlvblN0YXJ0LCBjaGFyYWN0ZXIpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSB2YWxpZGllcnQgd2VubiBlaW4gRHLDvGNrLUV2ZW50IHBhc3NpZXJ0XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIE9uS2V5UHJlc3NWYWxpZGF0aW9uKHBvc2l0aW9uOiBudW1iZXIsIGNoYXJhY3Rlcjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcclxufVxyXG4iXX0=