@simpleangularcontrols/sac-common 10.0.0-rc.2 → 10.0.0-rc.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/simpleangularcontrols-sac-common.umd.js +2232 -1604
- package/bundles/simpleangularcontrols-sac-common.umd.js.map +1 -1
- package/bundles/simpleangularcontrols-sac-common.umd.min.js +1 -1
- package/bundles/simpleangularcontrols-sac-common.umd.min.js.map +1 -1
- package/common/basedatetimecontrol.d.ts +100 -14
- package/common/baseinputcontrol.d.ts +0 -4
- package/common/basemodelcontrol.d.ts +55 -27
- package/common/baseuploadcontrol.d.ts +71 -55
- package/controls/checkbox/checkbox.d.ts +12 -3
- package/controls/checkbox/radiobutton.d.ts +61 -26
- package/controls/contextmenu/contextmenu.d.ts +26 -19
- package/controls/contextmenu/contextmenu.interface.d.ts +3 -0
- package/controls/contextmenu/contextmenuitem.d.ts +5 -0
- package/controls/contextmenu/contextmenuitembutton.d.ts +21 -20
- package/controls/datetime/date.d.ts +28 -31
- package/controls/datetime/datetime.d.ts +27 -31
- package/controls/datetime/time.d.ts +26 -30
- package/controls/dialog/dialog.d.ts +31 -43
- package/controls/grid/grid.d.ts +38 -36
- package/controls/grid/gridbutton.d.ts +13 -13
- package/controls/grid/gridcolumn.d.ts +8 -8
- package/controls/grid/gridcolumnaction.d.ts +3 -3
- package/controls/grid/gridcolumnbase.d.ts +45 -37
- package/controls/grid/gridimage.d.ts +2 -2
- package/controls/grid/model.d.ts +51 -42
- package/controls/grid/paging.d.ts +41 -43
- package/controls/input/input.d.ts +3 -3
- package/controls/input/inputarea.d.ts +5 -5
- package/controls/input/inputpassword.d.ts +7 -7
- package/controls/input/inputsearch.d.ts +13 -4
- package/controls/layout/formlayout.d.ts +17 -1
- package/controls/list/buildvaluestring.d.ts +6 -0
- package/controls/list/dropdown.d.ts +9 -51
- package/controls/list/dropdownoptions.d.ts +38 -0
- package/controls/multilanguage/multilanguageinput.d.ts +2 -2
- package/controls/multilanguage/multilanguageinputarea.d.ts +4 -4
- package/controls/static/formcontainer.d.ts +7 -3
- package/controls/tooltip/tooltip.d.ts +76 -69
- package/controls/treeview/treeview.d.ts +107 -107
- package/esm2015/common/basedatetimecontrol.js +185 -30
- package/esm2015/common/baseinputcontrol.js +2 -7
- package/esm2015/common/basemodelcontrol.js +109 -57
- package/esm2015/common/baseuploadcontrol.js +92 -59
- package/esm2015/controls/checkbox/checkbox.js +29 -6
- package/esm2015/controls/checkbox/radiobutton.js +94 -45
- package/esm2015/controls/contextmenu/contextmenu.interface.js +1 -0
- package/esm2015/controls/contextmenu/contextmenu.interface.ngfactory.js +7 -0
- package/esm2015/controls/contextmenu/contextmenu.js +22 -23
- package/esm2015/controls/contextmenu/contextmenuitem.js +13 -2
- package/esm2015/controls/contextmenu/contextmenuitembutton.js +34 -25
- package/esm2015/controls/datetime/date.js +44 -43
- package/esm2015/controls/datetime/datetime.js +43 -43
- package/esm2015/controls/datetime/time.js +43 -43
- package/esm2015/controls/dialog/dialog.js +41 -83
- package/esm2015/controls/grid/grid.js +21 -21
- package/esm2015/controls/grid/gridbutton.js +19 -13
- package/esm2015/controls/grid/gridcolumn.js +14 -7
- package/esm2015/controls/grid/gridcolumnaction.js +6 -5
- package/esm2015/controls/grid/gridcolumnbase.js +67 -55
- package/esm2015/controls/grid/gridimage.js +3 -3
- package/esm2015/controls/grid/model.js +51 -30
- package/esm2015/controls/grid/paging.js +40 -42
- package/esm2015/controls/input/input.js +6 -8
- package/esm2015/controls/input/inputarea.js +19 -12
- package/esm2015/controls/input/inputpassword.js +12 -12
- package/esm2015/controls/input/inputsearch.js +35 -6
- package/esm2015/controls/layout/formlayout.js +20 -8
- package/esm2015/controls/list/buildvaluestring.js +18 -0
- package/esm2015/controls/{treeview/ngtreeitemaction.ngfactory.js → list/buildvaluestring.ngfactory.js} +1 -1
- package/esm2015/controls/list/dropdown.js +16 -114
- package/esm2015/controls/list/dropdownoptions.js +72 -0
- package/esm2015/controls/{treeview/treeviewchild.ngfactory.js → list/dropdownoptions.ngfactory.js} +1 -1
- package/esm2015/controls/multilanguage/multilanguageinput.js +8 -14
- package/esm2015/controls/multilanguage/multilanguageinputarea.js +9 -15
- package/esm2015/controls/static/formcontainer.js +16 -5
- package/esm2015/controls/tooltip/tooltip.js +126 -245
- package/esm2015/controls/treeview/treeview.js +276 -231
- package/esm2015/interfaces/ISacConfigurationService.js +1 -1
- package/esm2015/interfaces/ISacIconService.js +1 -1
- package/esm2015/interfaces/ISacUploadEventCompleteState.js +1 -0
- package/esm2015/interfaces/ISacUploadEventCompleteState.ngfactory.js +7 -0
- package/esm2015/interfaces/ISacValidationKeyService.js +1 -1
- package/esm2015/interfaces/treeviewaction.interface.js +1 -0
- package/esm2015/interfaces/treeviewaction.interface.ngfactory.js +7 -0
- package/esm2015/public_api.js +15 -8
- package/esm2015/services/sac-configuration.service.js +31 -5
- package/esm2015/services/sac-icon.service.js +37 -1
- package/esm2015/services/sac-localisation.service.js +69 -180
- package/esm2015/services/sac-validationkey.service.js +12 -9
- package/esm2015/simpleangularcontrols-sac-common.js +1 -7
- package/esm2015/utilities/enums.js +5 -1
- package/esm2015/utilities/guid.js +4 -2
- package/esm2015/utilities/popuphelper.js +343 -0
- package/esm2015/utilities/popuphelper.ngfactory.js +7 -0
- package/esm2015/validation/equals.validator.js +14 -0
- package/esm2015/validation/equals.validator.ngfactory.js +7 -0
- package/esm2015/validation/isDateValid.js +9 -1
- package/esm2015/validation/mintextlength.validator.js +23 -0
- package/esm2015/validation/mintextlength.validator.ngfactory.js +7 -0
- package/esm2015/validation/notequals.validator.js +14 -0
- package/esm2015/validation/{minlength.validator.ngfactory.js → notequals.validator.ngfactory.js} +1 -1
- package/esm2015/validation/validation.class.js +35 -6
- package/fesm2015/simpleangularcontrols-sac-common.js +2070 -1498
- package/fesm2015/simpleangularcontrols-sac-common.js.map +1 -1
- package/interfaces/ISacConfigurationService.d.ts +20 -0
- package/interfaces/ISacIconService.d.ts +24 -0
- package/interfaces/ISacUploadEventCompleteState.d.ts +5 -0
- package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts +1 -0
- package/interfaces/ISacValidationKeyService.d.ts +2 -2
- package/interfaces/treeviewaction.interface.d.ts +4 -0
- package/interfaces/treeviewaction.interface.ngfactory.d.ts +1 -0
- package/package.json +2 -2
- package/public_api.d.ts +13 -6
- package/services/sac-configuration.service.d.ts +40 -0
- package/services/sac-icon.service.d.ts +49 -1
- package/services/sac-localisation.service.d.ts +10 -10
- package/services/sac-validationkey.service.d.ts +7 -7
- package/simpleangularcontrols-sac-common-10.0.0-rc.21.tgz +0 -0
- package/simpleangularcontrols-sac-common.d.ts +0 -6
- package/simpleangularcontrols-sac-common.metadata.json +1 -1
- package/utilities/enums.d.ts +3 -1
- package/utilities/popuphelper.d.ts +83 -0
- package/utilities/popuphelper.ngfactory.d.ts +1 -0
- package/validation/equals.validator.d.ts +2 -0
- package/validation/equals.validator.ngfactory.d.ts +1 -0
- package/validation/mintextlength.validator.d.ts +2 -0
- package/validation/mintextlength.validator.ngfactory.d.ts +1 -0
- package/validation/notequals.validator.d.ts +2 -0
- package/validation/notequals.validator.ngfactory.d.ts +1 -0
- package/validation/validation.class.d.ts +22 -3
- package/controls/treeview/ngtreeitemaction.d.ts +0 -40
- package/controls/treeview/treeviewchild.d.ts +0 -12
- package/esm2015/controls/treeview/ngtreeitemaction.js +0 -60
- package/esm2015/controls/treeview/treeviewchild.js +0 -18
- package/esm2015/validation/minlength.validator.js +0 -21
- package/simpleangularcontrols-sac-common-10.0.0-rc.2.tgz +0 -0
- package/validation/minlength.validator.d.ts +0 -2
- /package/controls/{treeview/ngtreeitemaction.ngfactory.d.ts → contextmenu/contextmenu.interface.ngfactory.d.ts} +0 -0
- /package/controls/{treeview/treeviewchild.ngfactory.d.ts → list/buildvaluestring.ngfactory.d.ts} +0 -0
- /package/{validation/minlength.validator.ngfactory.d.ts → controls/list/dropdownoptions.ngfactory.d.ts} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Directive, Host, Injector, Input } from '@angular/core';
|
|
2
2
|
import { SacInputBase } from '../../common/baseinputcontrol';
|
|
3
3
|
import { IconType } from '../../enums/IconType';
|
|
4
|
-
import { SACLANGUAGE_SERVICE, SacDefaultLanguageService
|
|
4
|
+
import { SACLANGUAGE_SERVICE, SacDefaultLanguageService } from '../../services/sac-language.service';
|
|
5
5
|
import { Validation } from '../../validation';
|
|
6
6
|
import { SacFormLayoutCommon } from '../layout/formlayout';
|
|
7
7
|
/**
|
|
@@ -31,9 +31,9 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
31
31
|
*/
|
|
32
32
|
this.controlwidth = null;
|
|
33
33
|
/**
|
|
34
|
-
* Max
|
|
34
|
+
* Max length of characters for input field
|
|
35
35
|
*/
|
|
36
|
-
this.
|
|
36
|
+
this.maxtextlength = null;
|
|
37
37
|
/**
|
|
38
38
|
* Aktiviert den Validator, das min. eine Sprache erfasst sein muss
|
|
39
39
|
*/
|
|
@@ -55,9 +55,7 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
55
55
|
*/
|
|
56
56
|
this.validationmessagesummaryrequiredany = this.validationKeyService.ValidationErrorSummaryMultilanguageRequiredAny;
|
|
57
57
|
this.lngLanguageService = injector.get(SACLANGUAGE_SERVICE, new SacDefaultLanguageService());
|
|
58
|
-
this.lngLanguageService
|
|
59
|
-
.GetLanguages()
|
|
60
|
-
.subscribe((result) => {
|
|
58
|
+
this.lngLanguageService.GetLanguages().subscribe((result) => {
|
|
61
59
|
this.languages = result;
|
|
62
60
|
if (this.languages.length > 0) {
|
|
63
61
|
this.selectedLanguage = this.languages[0];
|
|
@@ -73,9 +71,7 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
73
71
|
*/
|
|
74
72
|
get LanguageValue() {
|
|
75
73
|
if (this.value) {
|
|
76
|
-
const currentIsoCode = this.selectedLanguage
|
|
77
|
-
? this.selectedLanguage.IsoCode
|
|
78
|
-
: null;
|
|
74
|
+
const currentIsoCode = this.selectedLanguage ? this.selectedLanguage.IsoCode : null;
|
|
79
75
|
// Fallback falls keine Selektierte Sprache
|
|
80
76
|
if (currentIsoCode === null) {
|
|
81
77
|
return '';
|
|
@@ -175,9 +171,7 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
175
171
|
*/
|
|
176
172
|
SetLanguageValue(value) {
|
|
177
173
|
if (this.value) {
|
|
178
|
-
const currentIsoCode = this.selectedLanguage
|
|
179
|
-
? this.selectedLanguage.IsoCode
|
|
180
|
-
: null;
|
|
174
|
+
const currentIsoCode = this.selectedLanguage ? this.selectedLanguage.IsoCode : null;
|
|
181
175
|
// Fallback falls keine Selektierte Sprache
|
|
182
176
|
if (currentIsoCode === null) {
|
|
183
177
|
return;
|
|
@@ -220,11 +214,11 @@ SacMultilanguageInputCommon.ctorParameters = () => [
|
|
|
220
214
|
];
|
|
221
215
|
SacMultilanguageInputCommon.propDecorators = {
|
|
222
216
|
controlwidth: [{ type: Input }],
|
|
223
|
-
|
|
217
|
+
maxtextlength: [{ type: Input }],
|
|
224
218
|
requiredany: [{ type: Input }],
|
|
225
219
|
validationmessagerequired: [{ type: Input }],
|
|
226
220
|
validationmessagerequiredany: [{ type: Input }],
|
|
227
221
|
validationmessagesummaryrequired: [{ type: Input }],
|
|
228
222
|
validationmessagesummaryrequiredany: [{ type: Input }]
|
|
229
223
|
};
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0LmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHlCQUF5QixHQUMxQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRDs7R0FFRztBQUVILE1BQU0sT0FBTywyQkFBNEIsU0FBUSxZQUFpQjtJQW9EaEUsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFBb0IsVUFBK0IsRUFBRSxRQUFrQjtRQUNyRSxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBN0Q5QixxQkFBcUI7UUFFckI7O1dBRUc7UUFDSyxjQUFTLEdBQW9CLEVBQUUsQ0FBQztRQUN4Qzs7V0FFRztRQUNLLHFCQUFnQixHQUFrQixJQUFJLENBQUM7UUFPL0M7O1dBRUc7UUFDYSxpQkFBWSxHQUFXLElBQUksQ0FBQztRQUM1Qzs7V0FFRztRQUNhLGNBQVMsR0FBVyxJQUFJLENBQUM7UUFDekM7O1dBRUc7UUFDYSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3Qzs7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Szt3Q0FJTCxLQUFLOzJDQUtMLEtBQUs7K0NBS0wsS0FBSztrREFNTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0LCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYWNJbnB1dEJhc2UgfSBmcm9tICcuLi8uLi9jb21tb24vYmFzZWlucHV0Y29udHJvbCc7XHJcbmltcG9ydCB7IEljb25UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvSWNvblR5cGUnO1xyXG5pbXBvcnQgeyBJU2FjTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JU2FjTGFuZ3VhZ2VTZXJ2aWNlJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9sYW5ndWFnZW1vZGVsJztcclxuaW1wb3J0IHtcclxuICBTQUNMQU5HVUFHRV9TRVJWSUNFLFxyXG4gIFNhY0RlZmF1bHRMYW5ndWFnZVNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FjLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dCc7XHJcblxyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBNdWx0aSBMYW5ndWFnZSBJbnB1dCBDb250cm9sXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbW1vbiBleHRlbmRzIFNhY0lucHV0QmFzZTxhbnk+IHtcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogU3ByYWNoZSBmw7xyIGRhcyBDb250cm9sXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBsYW5ndWFnZXM6IExhbmd1YWdlTW9kZWxbXSA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIFNlbGVrdGllcnRlIFNwcmFjZSBkZXMgQ29udHJvbHNcclxuICAgKi9cclxuICBwcml2YXRlIHNlbGVjdGVkTGFuZ3VhZ2U6IExhbmd1YWdlTW9kZWwgPSBudWxsO1xyXG5cclxuICAvKipcclxuICAgKiBTZXJ2aWNlIGbDvHIgRXJyb3IgTG9jYWxpc2F0aW9uXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGxuZ0xhbmd1YWdlU2VydmljZTogSVNhY0xhbmd1YWdlU2VydmljZTtcclxuXHJcbiAgLyoqXHJcbiAgICogRml4IGJyZWl0ZSBmw7xyIGRhcyBDb250cm9sIGRlZmluaWVyZW4uXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGNvbnRyb2x3aWR0aDogc3RyaW5nID0gbnVsbDtcclxuICAvKipcclxuICAgKiBNYXggbMOkbmdlIGFuIFplaWNoZW4gZsO8ciBFaW5nYWJlZmVsZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhsZW5ndGg6IG51bWJlciA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogQWt0aXZpZXJ0IGRlbiBWYWxpZGF0b3IsIGRhcyBtaW4uIGVpbmUgU3ByYWNoZSBlcmZhc3N0IHNlaW4gbXVzc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZGFueTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkOiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNdWx0aWxhbmd1YWdlUmVxdWlyZWQ7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFBhdHRlcm4gYmVpIENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZGFueTogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55O1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZDogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUGF0dGVybiBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZGFueTogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueTtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yXHJcbiAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoQEhvc3QoKSBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcclxuXHJcbiAgICB0aGlzLmxuZ0xhbmd1YWdlU2VydmljZSA9IGluamVjdG9yLmdldChcclxuICAgICAgU0FDTEFOR1VBR0VfU0VSVklDRSxcclxuICAgICAgbmV3IFNhY0RlZmF1bHRMYW5ndWFnZVNlcnZpY2UoKVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmxuZ0xhbmd1YWdlU2VydmljZVxyXG4gICAgICAuR2V0TGFuZ3VhZ2VzKClcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBMYW5ndWFnZU1vZGVsW10pID0+IHtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlcyA9IHJlc3VsdDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubGFuZ3VhZ2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA9IHRoaXMubGFuZ3VhZ2VzWzBdO1xyXG4gICAgICAgICAgLy8gQ29udHJvbCBWYWxpZGllcnVuZyBhdXNmw7xocmVuLCBkYSBXZXJ0IHBvdGVudGllbGwgYmVyZWl0cyBnZXNldHp0IHNlaW4ga2FublxyXG4gICAgICAgICAgdGhpcy5VcGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBkZW4gV2VydCBkZXIgYWt0dWVsbCBhdXNnZXfDpGhsdGVuIFNwcmFjaGUgenVyw7xja1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgTGFuZ3VhZ2VWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgY29uc3QgY3VycmVudElzb0NvZGU6IHN0cmluZyA9IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZVxyXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZExhbmd1YWdlLklzb0NvZGVcclxuICAgICAgICA6IG51bGw7XHJcblxyXG4gICAgICAvLyBGYWxsYmFjayBmYWxscyBrZWluZSBTZWxla3RpZXJ0ZSBTcHJhY2hlXHJcbiAgICAgIGlmIChjdXJyZW50SXNvQ29kZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMudmFsdWVbY3VycmVudElzb0NvZGVdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVbY3VycmVudElzb0NvZGVdO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb2xsZWN0aW9uIGRlciBTcHJhY2hlblxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgTGFuZ3VhZ2VzKCk6IExhbmd1YWdlTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRhcyBJY29uIGRlciBzZWxla3RpZXJ0ZW4gU3ByYWNoZSB6dXLDvGNrXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBTZWxlY3RlZEljb24oKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZS5JY29uO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBkZW4gVHlwZSBkZXMgSWNvbnMgZsO8ciBkaWUgc2VsZWt0aWVydGUgU3ByYWNoZSB6dXLDvGNrXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBTZWxlY3RlZEljb25UeXBlKCk6IEljb25UeXBlIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZS5JY29uVHlwZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBJY29uVHlwZS5JbWFnZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBQcsO8ZnQgb2IgaW4gaXJnZW5kZWluZXIgU3ByYWNoZSBrZWluIFdlcnQgZGVmaW5pZXJ0IHd1cmRlXHJcbiAgICogQHJldHVybnMgTGVlcndlcnQgaXN0IHZvcmhhbmRlblxyXG4gICAqL1xyXG4gIHB1YmxpYyBJc0FueUVtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGZvdW5kID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgdGhpcy5sYW5ndWFnZXMuZm9yRWFjaCgoaXRtOiBMYW5ndWFnZU1vZGVsKSA9PiB7XHJcbiAgICAgICAgaWYgKGl0bSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgZm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy52YWx1ZVtpdG0uSXNvQ29kZV0gPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgdGhpcy52YWx1ZVtpdG0uSXNvQ29kZV0gPT09ICcnIHx8XHJcbiAgICAgICAgICB0aGlzLnZhbHVlW2l0bS5Jc29Db2RlXSA9PT0gbnVsbFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm91bmQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcsO8ZnQgb2IgaW4gZWluZXIgYmVzdGltbXRlbiBTcHJhY2hlIGVpbiBXZXJ0IHZvcmhhbmRlbiBpc3QuXHJcbiAgICogQHBhcmFtIHNwcmFjaGUgU3ByYWNoZSBpbiB3ZWxjaGVyIGRlciBXZXJ0IGdlcHLDvGZ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHJldHVybnMgV2VydCBpc3Qgdm9yaGFuZGVuXHJcbiAgICovXHJcbiAgcHVibGljIElzRW1wdHkoc3ByYWNoZTogTGFuZ3VhZ2VNb2RlbCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgLy8gRmFsbGJhY2sgZmFsbHMga2VpbmUgU2VsZWt0aWVydGUgU3ByYWNoZVxyXG4gICAgICBpZiAoc3ByYWNoZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHRoaXMudmFsdWVbc3ByYWNoZS5Jc29Db2RlXSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgdGhpcy52YWx1ZVtzcHJhY2hlLklzb0NvZGVdID09PSAnJyB8fFxyXG4gICAgICAgIHRoaXMudmFsdWVbc3ByYWNoZS5Jc29Db2RlXSA9PT0gbnVsbFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxla3RpZXJ0IGRpZSBTcHJhY2hlXHJcbiAgICogQHBhcmFtIGxhbmd1YWdlIFNwcmFjaGUgZGllIHNlbGVrdGllcnQgd2VyZGVuIHNvbGxcclxuICAgKi9cclxuICBwdWJsaWMgU2VsZWN0TGFuZ3VhZ2UobGFuZ3VhZ2U6IExhbmd1YWdlTW9kZWwpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA9IGxhbmd1YWdlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0enQgZGVuIFdlcnQgZsO8ciBkaWUgYWt0dWVsbCBnZXfDpGhsdGUgU3ByYWNoZVxyXG4gICAqIEBwYXJhbSB2YWx1ZSBXZXJ0IHdlbGNoZXIgZ2VzZXR6dCB3ZXJkZW4gc29sbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBTZXRMYW5ndWFnZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRJc29Db2RlOiBzdHJpbmcgPSB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VcclxuICAgICAgICA/IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZS5Jc29Db2RlXHJcbiAgICAgICAgOiBudWxsO1xyXG5cclxuICAgICAgLy8gRmFsbGJhY2sgZmFsbHMga2VpbmUgU2VsZWt0aWVydGUgU3ByYWNoZVxyXG4gICAgICBpZiAoY3VycmVudElzb0NvZGUgPT09IG51bGwpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudmFsdWVbY3VycmVudElzb0NvZGVdID0gdmFsdWU7XHJcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgdmFsaWRpZXJ0LCBvYiBkZXIgV2VydCBkZW4gZ2VnZWJlbmVuIEtyaXRlcmllbiBlbnRzcHJpY2h0XHJcbiAgICogQHBhcmFtIGMgQ29udHJvbCBkYXMgdmFsaWRpZXJ0IHdpcmRcclxuICAgKi9cclxuICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xyXG4gICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBlcnJvciA9PT0gbnVsbCAmJlxyXG4gICAgICBjLnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICBjLnZhbHVlICE9PSAnJyAmJlxyXG4gICAgICB0aGlzLmlzcmVxdWlyZWQgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLmlzcmVxdWlyZWQgPT09IHRydWVcclxuICAgICkge1xyXG4gICAgICBlcnJvciA9IFZhbGlkYXRpb24ubXVsdGlsYW5ndWFnZVJlcXVpcmVkKFxyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VzLFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCxcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkXHJcbiAgICAgICkoYyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBlcnJvciA9PT0gbnVsbCAmJlxyXG4gICAgICBjLnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICBjLnZhbHVlICE9PSAnJyAmJlxyXG4gICAgICB0aGlzLnJlcXVpcmVkYW55ICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgdGhpcy5yZXF1aXJlZGFueSA9PT0gdHJ1ZVxyXG4gICAgKSB7XHJcbiAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5tdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnkoXHJcbiAgICAgICAgdGhpcy5sYW5ndWFnZXMsXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkYW55LFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWRhbnlcclxuICAgICAgKShjKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3I7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcbn1cclxuIl19
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0LmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0Q7O0dBRUc7QUFFSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsWUFBaUI7SUFtRDlELHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7T0FJRztJQUNILFlBQW9CLFVBQStCLEVBQUUsUUFBa0I7UUFDbkUsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQTVEaEMscUJBQXFCO1FBRXJCOztXQUVHO1FBQ0ssY0FBUyxHQUFvQixFQUFFLENBQUM7UUFDeEM7O1dBRUc7UUFDSyxxQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO1FBTy9DOztXQUVHO1FBQ2EsaUJBQVksR0FBVyxJQUFJLENBQUM7UUFDNUM7O1dBRUc7UUFDYSxrQkFBYSxHQUFXLElBQUksQ0FBQztRQUM3Qzs7V0FFRztRQUNhLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdDOztX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QUs7MkNBSUwsS0FBSzsrQ0FLTCxLQUFLO2tEQU1MLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIEluamVjdG9yLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNhY0lucHV0QmFzZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNlaW5wdXRjb250cm9sJztcclxuaW1wb3J0IHsgSWNvblR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9JY29uVHlwZSc7XHJcbmltcG9ydCB7IElTYWNMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lTYWNMYW5ndWFnZVNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xhbmd1YWdlbW9kZWwnO1xyXG5pbXBvcnQgeyBTQUNMQU5HVUFHRV9TRVJWSUNFLCBTYWNEZWZhdWx0TGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FjLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dCc7XHJcblxyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBNdWx0aSBMYW5ndWFnZSBJbnB1dCBDb250cm9sXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbW1vbiBleHRlbmRzIFNhY0lucHV0QmFzZTxhbnk+IHtcclxuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3ByYWNoZSBmw7xyIGRhcyBDb250cm9sXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VzOiBMYW5ndWFnZU1vZGVsW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogU2VsZWt0aWVydGUgU3ByYWNlIGRlcyBDb250cm9sc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNlbGVjdGVkTGFuZ3VhZ2U6IExhbmd1YWdlTW9kZWwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VydmljZSBmw7xyIEVycm9yIExvY2FsaXNhdGlvblxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgbG5nTGFuZ3VhZ2VTZXJ2aWNlOiBJU2FjTGFuZ3VhZ2VTZXJ2aWNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRml4IGJyZWl0ZSBmw7xyIGRhcyBDb250cm9sIGRlZmluaWVyZW4uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBjb250cm9sd2lkdGg6IHN0cmluZyA9IG51bGw7XHJcbiAgICAvKipcclxuICAgICAqIE1heCBsZW5ndGggb2YgY2hhcmFjdGVycyBmb3IgaW5wdXQgZmllbGRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIG1heHRleHRsZW5ndGg6IG51bWJlciA9IG51bGw7XHJcbiAgICAvKipcclxuICAgICAqIEFrdGl2aWVydCBkZW4gVmFsaWRhdG9yLCBkYXMgbWluLiBlaW5lIFNwcmFjaGUgZXJmYXNzdCBzZWluIG11c3NcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkYW55OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNdWx0aWxhbmd1YWdlUmVxdWlyZWQ7XHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBQYXR0ZXJuIGJlaSBDb250cm9sXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkYW55OiBzdHJpbmcgPVxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55O1xyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQ6IHN0cmluZyA9XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TXVsdGlsYW5ndWFnZVJlcXVpcmVkO1xyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUGF0dGVybiBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZGFueTogc3RyaW5nID1cclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnk7XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcclxuXHJcbiAgICAgICAgdGhpcy5sbmdMYW5ndWFnZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDTEFOR1VBR0VfU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRMYW5ndWFnZVNlcnZpY2UoKSk7XHJcblxyXG4gICAgICAgIHRoaXMubG5nTGFuZ3VhZ2VTZXJ2aWNlLkdldExhbmd1YWdlcygpLnN1YnNjcmliZSgocmVzdWx0OiBMYW5ndWFnZU1vZGVsW10pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZXMgPSByZXN1bHQ7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5sYW5ndWFnZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gdGhpcy5sYW5ndWFnZXNbMF07XHJcbiAgICAgICAgICAgICAgICAvLyBDb250cm9sIFZhbGlkaWVydW5nIGF1c2bDvGhyZW4sIGRhIFdlcnQgcG90ZW50aWVsbCBiZXJlaXRzIGdlc2V0enQgc2VpbiBrYW5uXHJcbiAgICAgICAgICAgICAgICB0aGlzLlVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2lidCBkZW4gV2VydCBkZXIgYWt0dWVsbCBhdXNnZXfDpGhsdGVuIFNwcmFjaGUgenVyw7xja1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IExhbmd1YWdlVmFsdWUoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXNvQ29kZTogc3RyaW5nID0gdGhpcy5zZWxlY3RlZExhbmd1YWdlID8gdGhpcy5zZWxlY3RlZExhbmd1YWdlLklzb0NvZGUgOiBudWxsO1xyXG5cclxuICAgICAgICAgICAgLy8gRmFsbGJhY2sgZmFsbHMga2VpbmUgU2VsZWt0aWVydGUgU3ByYWNoZVxyXG4gICAgICAgICAgICBpZiAoY3VycmVudElzb0NvZGUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWVbY3VycmVudElzb0NvZGVdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlW2N1cnJlbnRJc29Db2RlXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb2xsZWN0aW9uIGRlciBTcHJhY2hlblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IExhbmd1YWdlcygpOiBMYW5ndWFnZU1vZGVsW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdpYnQgZGFzIEljb24gZGVyIHNlbGVrdGllcnRlbiBTcHJhY2hlIHp1csO8Y2tcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBTZWxlY3RlZEljb24oKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZExhbmd1YWdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UuSWNvbjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2lidCBkZW4gVHlwZSBkZXMgSWNvbnMgZsO8ciBkaWUgc2VsZWt0aWVydGUgU3ByYWNoZSB6dXLDvGNrXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgU2VsZWN0ZWRJY29uVHlwZSgpOiBJY29uVHlwZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZExhbmd1YWdlLkljb25UeXBlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBJY29uVHlwZS5JbWFnZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByw7xmdCBvYiBpbiBpcmdlbmRlaW5lciBTcHJhY2hlIGtlaW4gV2VydCBkZWZpbmllcnQgd3VyZGVcclxuICAgICAqIEByZXR1cm5zIExlZXJ3ZXJ0IGlzdCB2b3JoYW5kZW5cclxuICAgICAqL1xyXG4gICAgcHVibGljIElzQW55RW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VzLmZvckVhY2goKGl0bTogTGFuZ3VhZ2VNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0bSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVbaXRtLklzb0NvZGVdID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlW2l0bS5Jc29Db2RlXSA9PT0gJycgfHxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlW2l0bS5Jc29Db2RlXSA9PT0gbnVsbFxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmb3VuZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByw7xmdCBvYiBpbiBlaW5lciBiZXN0aW1tdGVuIFNwcmFjaGUgZWluIFdlcnQgdm9yaGFuZGVuIGlzdC5cclxuICAgICAqIEBwYXJhbSBzcHJhY2hlIFNwcmFjaGUgaW4gd2VsY2hlciBkZXIgV2VydCBnZXByw7xmdCB3ZXJkZW4gc29sbFxyXG4gICAgICogQHJldHVybnMgV2VydCBpc3Qgdm9yaGFuZGVuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBJc0VtcHR5KHNwcmFjaGU6IExhbmd1YWdlTW9kZWwpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICAgICAgICAvLyBGYWxsYmFjayBmYWxscyBrZWluZSBTZWxla3RpZXJ0ZSBTcHJhY2hlXHJcbiAgICAgICAgICAgIGlmIChzcHJhY2hlID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVbc3ByYWNoZS5Jc29Db2RlXSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlW3NwcmFjaGUuSXNvQ29kZV0gPT09ICcnIHx8XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlW3NwcmFjaGUuSXNvQ29kZV0gPT09IG51bGxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZWxla3RpZXJ0IGRpZSBTcHJhY2hlXHJcbiAgICAgKiBAcGFyYW0gbGFuZ3VhZ2UgU3ByYWNoZSBkaWUgc2VsZWt0aWVydCB3ZXJkZW4gc29sbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgU2VsZWN0TGFuZ3VhZ2UobGFuZ3VhZ2U6IExhbmd1YWdlTW9kZWwpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UgPSBsYW5ndWFnZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHp0IGRlbiBXZXJ0IGbDvHIgZGllIGFrdHVlbGwgZ2V3w6RobHRlIFNwcmFjaGVcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBXZXJ0IHdlbGNoZXIgZ2VzZXR6dCB3ZXJkZW4gc29sbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgU2V0TGFuZ3VhZ2VWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudElzb0NvZGU6IHN0cmluZyA9IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA/IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZS5Jc29Db2RlIDogbnVsbDtcclxuXHJcbiAgICAgICAgICAgIC8vIEZhbGxiYWNrIGZhbGxzIGtlaW5lIFNlbGVrdGllcnRlIFNwcmFjaGVcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRJc29Db2RlID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVbY3VycmVudElzb0NvZGVdID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2RlIHZhbGlkaWVydCwgb2IgZGVyIFdlcnQgZGVuIGdlZ2ViZW5lbiBLcml0ZXJpZW4gZW50c3ByaWNodFxyXG4gICAgICogQHBhcmFtIGMgQ29udHJvbCBkYXMgdmFsaWRpZXJ0IHdpcmRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcclxuICAgICAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBlcnJvciA9PT0gbnVsbCAmJlxyXG4gICAgICAgICAgICBjLnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgICAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICBjLnZhbHVlICE9PSAnJyAmJlxyXG4gICAgICAgICAgICB0aGlzLmlzcmVxdWlyZWQgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICB0aGlzLmlzcmVxdWlyZWQgPT09IHRydWVcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLm11bHRpbGFuZ3VhZ2VSZXF1aXJlZChcclxuICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VzLFxyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZFxyXG4gICAgICAgICAgICApKGMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBlcnJvciA9PT0gbnVsbCAmJlxyXG4gICAgICAgICAgICBjLnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgICAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICBjLnZhbHVlICE9PSAnJyAmJlxyXG4gICAgICAgICAgICB0aGlzLnJlcXVpcmVkYW55ICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgdGhpcy5yZXF1aXJlZGFueSA9PT0gdHJ1ZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ubXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55KFxyXG4gICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZXMsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRhbnksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkYW55XHJcbiAgICAgICAgICAgICkoYyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG59XHJcbiJdfQ==
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Directive, Host, Injector, Input } from '@angular/core';
|
|
2
1
|
import { SacInputBase } from '../../common/baseinputcontrol';
|
|
3
2
|
import { IconType } from '../../enums/IconType';
|
|
4
|
-
import { SACLANGUAGE_SERVICE, SacDefaultLanguageService
|
|
3
|
+
import { SACLANGUAGE_SERVICE, SacDefaultLanguageService } from '../../services/sac-language.service';
|
|
5
4
|
import { Validation } from '../../validation';
|
|
6
5
|
import { SacFormLayoutCommon } from '../layout/formlayout';
|
|
6
|
+
import { Directive, Host, Injector, Input } from '@angular/core';
|
|
7
7
|
/**
|
|
8
8
|
* Base Klasse für Multi Language Textarea Control
|
|
9
9
|
*/
|
|
@@ -31,9 +31,9 @@ export class SacMultilanguageInputAreaCommon extends SacInputBase {
|
|
|
31
31
|
*/
|
|
32
32
|
this.controlwidth = null;
|
|
33
33
|
/**
|
|
34
|
-
* Max
|
|
34
|
+
* Max length of characters for input field
|
|
35
35
|
*/
|
|
36
|
-
this.
|
|
36
|
+
this.maxtextlength = null;
|
|
37
37
|
/**
|
|
38
38
|
* Aktiviert den Validator, das min. eine Sprache erfasst sein muss
|
|
39
39
|
*/
|
|
@@ -59,9 +59,7 @@ export class SacMultilanguageInputAreaCommon extends SacInputBase {
|
|
|
59
59
|
*/
|
|
60
60
|
this.validationmessagesummaryrequiredany = this.validationKeyService.ValidationErrorSummaryMultilanguageRequiredAny;
|
|
61
61
|
this.lngLanguageService = injector.get(SACLANGUAGE_SERVICE, new SacDefaultLanguageService());
|
|
62
|
-
this.lngLanguageService
|
|
63
|
-
.GetLanguages()
|
|
64
|
-
.subscribe((result) => {
|
|
62
|
+
this.lngLanguageService.GetLanguages().subscribe((result) => {
|
|
65
63
|
this.languages = result;
|
|
66
64
|
if (this.languages.length > 0) {
|
|
67
65
|
this.selectedLanguage = this.languages[0];
|
|
@@ -78,9 +76,7 @@ export class SacMultilanguageInputAreaCommon extends SacInputBase {
|
|
|
78
76
|
*/
|
|
79
77
|
get LanguageValue() {
|
|
80
78
|
if (this.value) {
|
|
81
|
-
const currentIsoCode = this.selectedLanguage
|
|
82
|
-
? this.selectedLanguage.IsoCode
|
|
83
|
-
: null;
|
|
79
|
+
const currentIsoCode = this.selectedLanguage ? this.selectedLanguage.IsoCode : null;
|
|
84
80
|
// Fallback falls keine Selektierte Sprache
|
|
85
81
|
if (currentIsoCode === null) {
|
|
86
82
|
return '';
|
|
@@ -175,9 +171,7 @@ export class SacMultilanguageInputAreaCommon extends SacInputBase {
|
|
|
175
171
|
*/
|
|
176
172
|
SetLanguageValue(value) {
|
|
177
173
|
if (this.value) {
|
|
178
|
-
const currentIsoCode = this.selectedLanguage
|
|
179
|
-
? this.selectedLanguage.IsoCode
|
|
180
|
-
: null;
|
|
174
|
+
const currentIsoCode = this.selectedLanguage ? this.selectedLanguage.IsoCode : null;
|
|
181
175
|
// Fallback falls keine Selektierte Sprache
|
|
182
176
|
if (currentIsoCode === null) {
|
|
183
177
|
return;
|
|
@@ -220,7 +214,7 @@ SacMultilanguageInputAreaCommon.ctorParameters = () => [
|
|
|
220
214
|
];
|
|
221
215
|
SacMultilanguageInputAreaCommon.propDecorators = {
|
|
222
216
|
controlwidth: [{ type: Input }],
|
|
223
|
-
|
|
217
|
+
maxtextlength: [{ type: Input }],
|
|
224
218
|
requiredany: [{ type: Input }],
|
|
225
219
|
rows: [{ type: Input }],
|
|
226
220
|
validationmessagerequired: [{ type: Input }],
|
|
@@ -228,4 +222,4 @@ SacMultilanguageInputAreaCommon.propDecorators = {
|
|
|
228
222
|
validationmessagesummaryrequired: [{ type: Input }],
|
|
229
223
|
validationmessagesummaryrequiredany: [{ type: Input }]
|
|
230
224
|
};
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0YXJlYS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9tdWx0aWxhbmd1YWdlL211bHRpbGFuZ3VhZ2VpbnB1dGFyZWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2hELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIseUJBQXlCLEdBQzFCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTNEOztHQUVHO0FBRUgsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLFlBQWlCO0lBc0RwRSx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7O09BSUc7SUFDSCxZQUFvQixVQUErQixFQUFFLFFBQWtCO1FBQ3JFLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUEvRDlCLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNLLGNBQVMsR0FBb0IsRUFBRSxDQUFDO1FBQ3hDOztXQUVHO1FBQ0sscUJBQWdCLEdBQWtCLElBQUksQ0FBQztRQU8vQzs7V0FFRztRQUNhLGlCQUFZLEdBQVcsSUFBSSxDQUFDO1FBQzVDOztXQUVHO1FBQ2EsY0FBUyxHQUFXLElBQUksQ0FBQztRQUN6Qzs7V0FFRztRQUNhLGdCQUFXLEdBQVksS0FBSyxDQUFD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TCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0LCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYWNJbnB1dEJhc2UgfSBmcm9tICcuLi8uLi9jb21tb24vYmFzZWlucHV0Y29udHJvbCc7XHJcbmltcG9ydCB7IEljb25UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvSWNvblR5cGUnO1xyXG5pbXBvcnQgeyBJU2FjTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JU2FjTGFuZ3VhZ2VTZXJ2aWNlJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9sYW5ndWFnZW1vZGVsJztcclxuaW1wb3J0IHtcclxuICBTQUNMQU5HVUFHRV9TRVJWSUNFLFxyXG4gIFNhY0RlZmF1bHRMYW5ndWFnZVNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FjLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dCc7XHJcblxyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBNdWx0aSBMYW5ndWFnZSBUZXh0YXJlYSBDb250cm9sXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21tb24gZXh0ZW5kcyBTYWNJbnB1dEJhc2U8YW55PiB7XHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIFNwcmFjaGUgZsO8ciBkYXMgQ29udHJvbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgbGFuZ3VhZ2VzOiBMYW5ndWFnZU1vZGVsW10gPSBbXTtcclxuICAvKipcclxuICAgKiBTZWxla3RpZXJ0ZSBTcHJhY2UgZGVzIENvbnRyb2xzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZWxlY3RlZExhbmd1YWdlOiBMYW5ndWFnZU1vZGVsID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VydmljZSBmw7xyIEVycm9yIExvY2FsaXNhdGlvblxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBsbmdMYW5ndWFnZVNlcnZpY2U6IElTYWNMYW5ndWFnZVNlcnZpY2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpeCBicmVpdGUgZsO8ciBkYXMgQ29udHJvbCBkZWZpbmllcmVuLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjb250cm9sd2lkdGg6IHN0cmluZyA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogTWF4IGzDpG5nZSBhbiBaZWljaGVuIGbDvHIgRWluZ2FiZWZlbGRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbWF4bGVuZ3RoOiBudW1iZXIgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIEFrdGl2aWVydCBkZW4gVmFsaWRhdG9yLCBkYXMgbWluLiBlaW5lIFNwcmFjaGUgZXJmYXNzdCBzZWluIG11c3NcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWRhbnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBBbnphaGwgUm93cyBmw7xyIFRleHRBcmVhXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHJvd3M6IG51bWJlciA9IDc7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUGF0dGVybiBiZWkgQ29udHJvbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkYW55OiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnk7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZDogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUGF0dGVybiBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWRhbnk6IHN0cmluZyA9XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnk7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbiwgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XHJcblxyXG4gICAgdGhpcy5sbmdMYW5ndWFnZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXHJcbiAgICAgIFNBQ0xBTkdVQUdFX1NFUlZJQ0UsXHJcbiAgICAgIG5ldyBTYWNEZWZhdWx0TGFuZ3VhZ2VTZXJ2aWNlKClcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5sbmdMYW5ndWFnZVNlcnZpY2VcclxuICAgICAgLkdldExhbmd1YWdlcygpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogTGFuZ3VhZ2VNb2RlbFtdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sYW5ndWFnZXMgPSByZXN1bHQ7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmxhbmd1YWdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UgPSB0aGlzLmxhbmd1YWdlc1swXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQ29udHJvbCBWYWxpZGllcnVuZyBhdXNmw7xocmVuLCBkYSBXZXJ0IHBvdGVudGllbGwgYmVyZWl0cyBnZXNldHp0IHNlaW4ga2FublxyXG4gICAgICAgIHRoaXMuVXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIHdlbGNoZXIgZGVuIFdlcnQgZGVyIENvbXBvbmVudCBpbiBkZXIgZ2V3w6RobHRlbiBTcHJhY2hlIHp1csO8Y2tnaWJ0LiBXZW5uIGtlaW5lIFNwcmFjaGUgc2VsZWt0aWVydCBpc3QsIHdpcmQgZWluIGxlZXJlciBXZXJ0IHp1csO8Y2tnZWdlYmVuLlxyXG4gICAqIElzdCBpbiBkZXIgQ29tcG9uZW50IGtlaW4gV2VydCBnZXNwZWljaGVydCB3aXJkIGVpbiBsZWVyZXIgV2VydCB6dXLDvGNrZ2VnZWJlblxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgTGFuZ3VhZ2VWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgY29uc3QgY3VycmVudElzb0NvZGU6IHN0cmluZyA9IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZVxyXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZExhbmd1YWdlLklzb0NvZGVcclxuICAgICAgICA6IG51bGw7XHJcblxyXG4gICAgICAvLyBGYWxsYmFjayBmYWxscyBrZWluZSBTZWxla3RpZXJ0ZSBTcHJhY2hlXHJcbiAgICAgIGlmIChjdXJyZW50SXNvQ29kZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRoaXMudmFsdWVbY3VycmVudElzb0NvZGVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29sbGVjdGlvbiBkZXIgU3ByYWNoZW5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IExhbmd1YWdlcygpOiBMYW5ndWFnZU1vZGVsW10ge1xyXG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBkYXMgSWNvbiBkZXIgc2VsZWt0aWVydGVuIFNwcmFjaGUgenVyw7xja1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgU2VsZWN0ZWRJY29uKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZExhbmd1YWdlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UuSWNvbjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpYnQgZGVuIFR5cGUgZGVzIEljb25zIGbDvHIgZGllIHNlbGVrdGllcnRlIFNwcmFjaGUgenVyw7xja1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgU2VsZWN0ZWRJY29uVHlwZSgpOiBJY29uVHlwZSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZExhbmd1YWdlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UuSWNvblR5cGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gSWNvblR5cGUuSW1hZ2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogUHLDvGZ0LCBvYiBpbiBlaW5lciBiZWxpZWJpZ2VuIFNwcmFjaGUgZGVyIEtvbXBvbnRlbnRlIGtlaW4gV2VydCBkZWZpbmllcnQgaXN0LlxyXG4gICAqIEByZXR1cm5zIEdpYnQgYW4gb2IgZWluIExlZXJlcyBFbGVtZW50IHZvcmhhbmRlbiBpc3RcclxuICAgKi9cclxuICBwdWJsaWMgSXNBbnlFbXB0eSgpOiBib29sZWFuIHtcclxuICAgIGxldCBmb3VuZCA9IGZhbHNlO1xyXG5cclxuICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VzLmZvckVhY2goKGl0bTogTGFuZ3VhZ2VNb2RlbCkgPT4ge1xyXG4gICAgICAgIGlmIChpdG0gPT09IG51bGwpIHtcclxuICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMudmFsdWVbaXRtLklzb0NvZGVdID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgIHRoaXMudmFsdWVbaXRtLklzb0NvZGVdID09PSAnJyB8fFxyXG4gICAgICAgICAgdGhpcy52YWx1ZVtpdG0uSXNvQ29kZV0gPT09IG51bGxcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvdW5kO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBhbiwgb2IgaW4gZWluZXIgYmVzdGltbXRlbiBTcHJhY2hlIGVpbiBXZXJ0IGRlZmluaWVydCBpc3RcclxuICAgKiBAcGFyYW0gc3ByYWNoZSBTcHJhY2hlIGluIHdlbGNoZXIgZGVyIFdlcnQgZ2VwcsO8ZnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcmV0dXJucyBXZXJ0IGlzdCB2b3JoYW5kZW5cclxuICAgKi9cclxuICBwdWJsaWMgSXNFbXB0eShzcHJhY2hlOiBMYW5ndWFnZU1vZGVsKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICAvLyBGYWxsYmFjayBmYWxscyBrZWluZSBTZWxla3RpZXJ0ZSBTcHJhY2hlXHJcbiAgICAgIGlmIChzcHJhY2hlID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgdGhpcy52YWx1ZVtzcHJhY2hlLklzb0NvZGVdID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICB0aGlzLnZhbHVlW3NwcmFjaGUuSXNvQ29kZV0gPT09ICcnIHx8XHJcbiAgICAgICAgdGhpcy52YWx1ZVtzcHJhY2hlLklzb0NvZGVdID09PSBudWxsXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbGVrdGllcnQgZGllIFNwcmFjaGUgZGVyIEtvbXBvbmVudGVcclxuICAgKiBAcGFyYW0gbGFuZ3VhZ2UgU3ByYWNoZSBkaWUgc2VsZWt0aWVydCB3ZXJkZW4gc29sbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBTZWxlY3RMYW5ndWFnZShsYW5ndWFnZTogTGFuZ3VhZ2VNb2RlbCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gbGFuZ3VhZ2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTcGVpY2hlcnQgZWluZW4gV2VydCB6dXIgYWt0dWVsbCBnZXfDpGhsdGVuIFNwcmFjaGVcclxuICAgKiBAcGFyYW0gdmFsdWUgV2VydCB3ZWxjaGVyIGdlc3BlaWNoZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICovXHJcbiAgcHVibGljIFNldExhbmd1YWdlVmFsdWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgY29uc3QgY3VycmVudElzb0NvZGU6IHN0cmluZyA9IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZVxyXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZExhbmd1YWdlLklzb0NvZGVcclxuICAgICAgICA6IG51bGw7XHJcblxyXG4gICAgICAvLyBGYWxsYmFjayBmYWxscyBrZWluZSBTZWxla3RpZXJ0ZSBTcHJhY2hlXHJcbiAgICAgIGlmIChjdXJyZW50SXNvQ29kZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy52YWx1ZVtjdXJyZW50SXNvQ29kZV0gPSB2YWx1ZTtcclxuICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSB2YWxpZGllcnQsIG9iIGRlciBXZXJ0IGRlbiBnZWdlYmVuZW4gS3JpdGVyaWVuIGVudHNwcmljaHRcclxuICAgKiBAcGFyYW0gYyBDb250cm9scyBkYXMgdmFsaWRpZXJ0IHdpcmRcclxuICAgKi9cclxuICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xyXG4gICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBlcnJvciA9PT0gbnVsbCAmJlxyXG4gICAgICBjLnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICBjLnZhbHVlICE9PSAnJyAmJlxyXG4gICAgICB0aGlzLmlzcmVxdWlyZWQgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLmlzcmVxdWlyZWQgPT09IHRydWVcclxuICAgICkge1xyXG4gICAgICBlcnJvciA9IFZhbGlkYXRpb24ubXVsdGlsYW5ndWFnZVJlcXVpcmVkKFxyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VzLFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCxcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkXHJcbiAgICAgICkoYyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBlcnJvciA9PT0gbnVsbCAmJlxyXG4gICAgICBjLnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICBjLnZhbHVlICE9PSAnJyAmJlxyXG4gICAgICB0aGlzLnJlcXVpcmVkYW55ICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgdGhpcy5yZXF1aXJlZGFueSA9PT0gdHJ1ZVxyXG4gICAgKSB7XHJcbiAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5tdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnkoXHJcbiAgICAgICAgdGhpcy5sYW5ndWFnZXMsXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkYW55LFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWRhbnlcclxuICAgICAgKShjKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3I7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcbn1cclxuIl19
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0YXJlYS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9tdWx0aWxhbmd1YWdlL211bHRpbGFuZ3VhZ2VpbnB1dGFyZWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRTs7R0FFRztBQUVILE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxZQUFpQjtJQTZEbEUsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFBb0IsVUFBK0IsRUFBRSxRQUFrQjtRQUNuRSxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBdEVoQyxxQkFBcUI7UUFFckI7O1dBRUc7UUFDSyxjQUFTLEdBQW9CLEVBQUUsQ0FBQztRQUV4Qzs7V0FFRztRQUNLLHFCQUFnQixHQUFrQixJQUFJLENBQUM7UUFPL0M7O1dBRUc7UUFDYSxpQkFBWSxHQUFXLElBQUksQ0FBQztRQUU1Qzs7V0FFRztRQUNhLGtCQUFhLEdBQVcsSUFBSSxDQUFDO1FBRTdDOztXQUVHO1FBQ2EsZ0JBQVcsR0FBWSxLQUFLLENBQUM7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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNJbnB1dEJhc2UgfSBmcm9tICcuLi8uLi9jb21tb24vYmFzZWlucHV0Y29udHJvbCc7XHJcbmltcG9ydCB7IEljb25UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvSWNvblR5cGUnO1xyXG5pbXBvcnQgeyBJU2FjTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JU2FjTGFuZ3VhZ2VTZXJ2aWNlJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9sYW5ndWFnZW1vZGVsJztcclxuaW1wb3J0IHsgU0FDTEFOR1VBR0VfU0VSVklDRSwgU2FjRGVmYXVsdExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NhYy1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQnO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIEluamVjdG9yLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBNdWx0aSBMYW5ndWFnZSBUZXh0YXJlYSBDb250cm9sXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21tb24gZXh0ZW5kcyBTYWNJbnB1dEJhc2U8YW55PiB7XHJcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNwcmFjaGUgZsO8ciBkYXMgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlczogTGFuZ3VhZ2VNb2RlbFtdID0gW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZWxla3RpZXJ0ZSBTcHJhY2UgZGVzIENvbnRyb2xzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc2VsZWN0ZWRMYW5ndWFnZTogTGFuZ3VhZ2VNb2RlbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXJ2aWNlIGbDvHIgRXJyb3IgTG9jYWxpc2F0aW9uXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBsbmdMYW5ndWFnZVNlcnZpY2U6IElTYWNMYW5ndWFnZVNlcnZpY2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaXggYnJlaXRlIGbDvHIgZGFzIENvbnRyb2wgZGVmaW5pZXJlbi5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGNvbnRyb2x3aWR0aDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1heCBsZW5ndGggb2YgY2hhcmFjdGVycyBmb3IgaW5wdXQgZmllbGRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIG1heHRleHRsZW5ndGg6IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBa3RpdmllcnQgZGVuIFZhbGlkYXRvciwgZGFzIG1pbi4gZWluZSBTcHJhY2hlIGVyZmFzc3Qgc2VpbiBtdXNzXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZGFueTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW56YWhsIFJvd3MgZsO8ciBUZXh0QXJlYVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93czogbnVtYmVyID0gNztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUGF0dGVybiBiZWkgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZGFueTogc3RyaW5nID1cclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkOiBzdHJpbmcgPVxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBQYXR0ZXJuIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWRhbnk6IHN0cmluZyA9XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55O1xyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoQEhvc3QoKSBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XHJcblxyXG4gICAgICAgIHRoaXMubG5nTGFuZ3VhZ2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ0xBTkdVQUdFX1NFUlZJQ0UsIG5ldyBTYWNEZWZhdWx0TGFuZ3VhZ2VTZXJ2aWNlKCkpO1xyXG5cclxuICAgICAgICB0aGlzLmxuZ0xhbmd1YWdlU2VydmljZS5HZXRMYW5ndWFnZXMoKS5zdWJzY3JpYmUoKHJlc3VsdDogTGFuZ3VhZ2VNb2RlbFtdKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VzID0gcmVzdWx0O1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubGFuZ3VhZ2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA9IHRoaXMubGFuZ3VhZ2VzWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIENvbnRyb2wgVmFsaWRpZXJ1bmcgYXVzZsO8aHJlbiwgZGEgV2VydCBwb3RlbnRpZWxsIGJlcmVpdHMgZ2VzZXR6dCBzZWluIGthbm5cclxuICAgICAgICAgICAgdGhpcy5VcGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXR0ZXIgd2VsY2hlciBkZW4gV2VydCBkZXIgQ29tcG9uZW50IGluIGRlciBnZXfDpGhsdGVuIFNwcmFjaGUgenVyw7xja2dpYnQuIFdlbm4ga2VpbmUgU3ByYWNoZSBzZWxla3RpZXJ0IGlzdCwgd2lyZCBlaW4gbGVlcmVyIFdlcnQgenVyw7xja2dlZ2ViZW4uXHJcbiAgICAgKiBJc3QgaW4gZGVyIENvbXBvbmVudCBrZWluIFdlcnQgZ2VzcGVpY2hlcnQgd2lyZCBlaW4gbGVlcmVyIFdlcnQgenVyw7xja2dlZ2ViZW5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBMYW5ndWFnZVZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudElzb0NvZGU6IHN0cmluZyA9IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA/IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZS5Jc29Db2RlIDogbnVsbDtcclxuXHJcbiAgICAgICAgICAgIC8vIEZhbGxiYWNrIGZhbGxzIGtlaW5lIFNlbGVrdGllcnRlIFNwcmFjaGVcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRJc29Db2RlID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlW2N1cnJlbnRJc29Db2RlXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29sbGVjdGlvbiBkZXIgU3ByYWNoZW5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBMYW5ndWFnZXMoKTogTGFuZ3VhZ2VNb2RlbFtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHaWJ0IGRhcyBJY29uIGRlciBzZWxla3RpZXJ0ZW4gU3ByYWNoZSB6dXLDvGNrXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgU2VsZWN0ZWRJY29uKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZExhbmd1YWdlLkljb247XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdpYnQgZGVuIFR5cGUgZGVzIEljb25zIGbDvHIgZGllIHNlbGVrdGllcnRlIFNwcmFjaGUgenVyw7xja1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IFNlbGVjdGVkSWNvblR5cGUoKTogSWNvblR5cGUge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZS5JY29uVHlwZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gSWNvblR5cGUuSW1hZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcsO8ZnQsIG9iIGluIGVpbmVyIGJlbGllYmlnZW4gU3ByYWNoZSBkZXIgS29tcG9udGVudGUga2VpbiBXZXJ0IGRlZmluaWVydCBpc3QuXHJcbiAgICAgKiBAcmV0dXJucyBHaWJ0IGFuIG9iIGVpbiBMZWVyZXMgRWxlbWVudCB2b3JoYW5kZW4gaXN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBJc0FueUVtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlcy5mb3JFYWNoKChpdG06IExhbmd1YWdlTW9kZWwpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpdG0gPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlW2l0bS5Jc29Db2RlXSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZVtpdG0uSXNvQ29kZV0gPT09ICcnIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZVtpdG0uSXNvQ29kZV0gPT09IG51bGxcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZm91bmQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHaWJ0IGFuLCBvYiBpbiBlaW5lciBiZXN0aW1tdGVuIFNwcmFjaGUgZWluIFdlcnQgZGVmaW5pZXJ0IGlzdFxyXG4gICAgICogQHBhcmFtIHNwcmFjaGUgU3ByYWNoZSBpbiB3ZWxjaGVyIGRlciBXZXJ0IGdlcHLDvGZ0IHdlcmRlbiBzb2xsXHJcbiAgICAgKiBAcmV0dXJucyBXZXJ0IGlzdCB2b3JoYW5kZW5cclxuICAgICAqL1xyXG4gICAgcHVibGljIElzRW1wdHkoc3ByYWNoZTogTGFuZ3VhZ2VNb2RlbCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIC8vIEZhbGxiYWNrIGZhbGxzIGtlaW5lIFNlbGVrdGllcnRlIFNwcmFjaGVcclxuICAgICAgICAgICAgaWYgKHNwcmFjaGUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZVtzcHJhY2hlLklzb0NvZGVdID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVbc3ByYWNoZS5Jc29Db2RlXSA9PT0gJycgfHxcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVbc3ByYWNoZS5Jc29Db2RlXSA9PT0gbnVsbFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlbGVrdGllcnQgZGllIFNwcmFjaGUgZGVyIEtvbXBvbmVudGVcclxuICAgICAqIEBwYXJhbSBsYW5ndWFnZSBTcHJhY2hlIGRpZSBzZWxla3RpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBTZWxlY3RMYW5ndWFnZShsYW5ndWFnZTogTGFuZ3VhZ2VNb2RlbCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA9IGxhbmd1YWdlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3BlaWNoZXJ0IGVpbmVuIFdlcnQgenVyIGFrdHVlbGwgZ2V3w6RobHRlbiBTcHJhY2hlXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgV2VydCB3ZWxjaGVyIGdlc3BlaWNoZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBTZXRMYW5ndWFnZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXNvQ29kZTogc3RyaW5nID0gdGhpcy5zZWxlY3RlZExhbmd1YWdlID8gdGhpcy5zZWxlY3RlZExhbmd1YWdlLklzb0NvZGUgOiBudWxsO1xyXG5cclxuICAgICAgICAgICAgLy8gRmFsbGJhY2sgZmFsbHMga2VpbmUgU2VsZWt0aWVydGUgU3ByYWNoZVxyXG4gICAgICAgICAgICBpZiAoY3VycmVudElzb0NvZGUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy52YWx1ZVtjdXJyZW50SXNvQ29kZV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZGUgdmFsaWRpZXJ0LCBvYiBkZXIgV2VydCBkZW4gZ2VnZWJlbmVuIEtyaXRlcmllbiBlbnRzcHJpY2h0XHJcbiAgICAgKiBAcGFyYW0gYyBDb250cm9scyBkYXMgdmFsaWRpZXJ0IHdpcmRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcclxuICAgICAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBlcnJvciA9PT0gbnVsbCAmJlxyXG4gICAgICAgICAgICBjLnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgICAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICBjLnZhbHVlICE9PSAnJyAmJlxyXG4gICAgICAgICAgICB0aGlzLmlzcmVxdWlyZWQgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICB0aGlzLmlzcmVxdWlyZWQgPT09IHRydWVcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLm11bHRpbGFuZ3VhZ2VSZXF1aXJlZChcclxuICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VzLFxyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZFxyXG4gICAgICAgICAgICApKGMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBlcnJvciA9PT0gbnVsbCAmJlxyXG4gICAgICAgICAgICBjLnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgICAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICBjLnZhbHVlICE9PSAnJyAmJlxyXG4gICAgICAgICAgICB0aGlzLnJlcXVpcmVkYW55ICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgdGhpcy5yZXF1aXJlZGFueSA9PT0gdHJ1ZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ubXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55KFxyXG4gICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZXMsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRhbnksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkYW55XHJcbiAgICAgICAgICAgICkoYyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG59XHJcbiJdfQ==
|
|
@@ -1,21 +1,29 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
1
|
import { SacBaseModelControl } from '../../common/basemodelcontrol';
|
|
3
2
|
import { convertToBoolean } from '../../utilities/convertion';
|
|
3
|
+
import { Directive, Input } from '@angular/core';
|
|
4
4
|
/**
|
|
5
5
|
* Common Control für Form Item Container.
|
|
6
6
|
**/
|
|
7
7
|
export class SacStaticFormContainerCommon extends SacBaseModelControl {
|
|
8
8
|
constructor() {
|
|
9
|
+
// #region Properties
|
|
9
10
|
super(...arguments);
|
|
10
11
|
/**
|
|
11
12
|
* Definiert den Container als Required Form Item
|
|
12
13
|
*/
|
|
13
14
|
this._isrequired = false;
|
|
14
15
|
/**
|
|
15
|
-
*
|
|
16
|
+
* Error message to be displayed
|
|
17
|
+
*/
|
|
18
|
+
this.errormessage = '';
|
|
19
|
+
/**
|
|
20
|
+
* Activates the error message on the container control
|
|
16
21
|
*/
|
|
17
|
-
this.
|
|
22
|
+
this.isinvalid = false;
|
|
23
|
+
// #endregion Public Methods
|
|
18
24
|
}
|
|
25
|
+
// #endregion Properties
|
|
26
|
+
// #region Public Getters And Setters
|
|
19
27
|
/**
|
|
20
28
|
* Definiert den Container als Required Form Item
|
|
21
29
|
*/
|
|
@@ -28,6 +36,8 @@ export class SacStaticFormContainerCommon extends SacBaseModelControl {
|
|
|
28
36
|
set isrequired(v) {
|
|
29
37
|
this._isrequired = convertToBoolean(v);
|
|
30
38
|
}
|
|
39
|
+
// #endregion Public Getters And Setters
|
|
40
|
+
// #region Public Methods
|
|
31
41
|
/**
|
|
32
42
|
* Validierung des Controls
|
|
33
43
|
*
|
|
@@ -44,7 +54,8 @@ SacStaticFormContainerCommon.decorators = [
|
|
|
44
54
|
{ type: Directive }
|
|
45
55
|
];
|
|
46
56
|
SacStaticFormContainerCommon.propDecorators = {
|
|
47
|
-
|
|
57
|
+
errormessage: [{ type: Input }],
|
|
58
|
+
isinvalid: [{ type: Input }],
|
|
48
59
|
isrequired: [{ type: Input }]
|
|
49
60
|
};
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9zdGF0aWMvZm9ybWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRDs7SUFFSTtBQUVKLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxtQkFBMkI7SUFEN0U7UUFFSSxxQkFBcUI7O1FBRXJCOztXQUVHO1FBQ0ssZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFckM7O1dBRUc7UUFFSSxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUVqQzs7V0FFRztRQUVJLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFxQ2xDLDRCQUE0QjtJQUNoQyxDQUFDO0lBcENHLHdCQUF3QjtJQUV4QixxQ0FBcUM7SUFFckM7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ1csVUFBVSxDQUFDLENBQVU7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsd0NBQXdDO0lBRXhDLHlCQUF5QjtJQUV6Qjs7Ozs7O09BTUc7SUFDSSxZQUFZLENBQUMsQ0FBa0I7UUFDbEMsc0NBQXNDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OztZQXRESixTQUFTOzs7MkJBWUwsS0FBSzt3QkFNTCxLQUFLO3lCQWlCTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sJztcclxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9jb252ZXJ0aW9uJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKipcclxuICogQ29tbW9uIENvbnRyb2wgZsO8ciBGb3JtIEl0ZW0gQ29udGFpbmVyLlxyXG4gKiovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgU2FjU3RhdGljRm9ybUNvbnRhaW5lckNvbW1vbiBleHRlbmRzIFNhY0Jhc2VNb2RlbENvbnRyb2w8c3RyaW5nPiB7XHJcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluaWVydCBkZW4gQ29udGFpbmVyIGFscyBSZXF1aXJlZCBGb3JtIEl0ZW1cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfaXNyZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXJyb3IgbWVzc2FnZSB0byBiZSBkaXNwbGF5ZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBlcnJvcm1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWN0aXZhdGVzIHRoZSBlcnJvciBtZXNzYWdlIG9uIHRoZSBjb250YWluZXIgY29udHJvbFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlzaW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluaWVydCBkZW4gQ29udGFpbmVyIGFscyBSZXF1aXJlZCBGb3JtIEl0ZW1cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBpc3JlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pc3JlcXVpcmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pZXJ0IGRlbiBDb250YWluZXIgYWxzIFJlcXVpcmVkIEZvcm0gSXRlbVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBpc3JlcXVpcmVkKHY6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9pc3JlcXVpcmVkID0gY29udmVydFRvQm9vbGVhbih2KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRpZXJ1bmcgZGVzIENvbnRyb2xzXHJcbiAgICAgKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIFZhbGlkaWVydW5nIHdpcmQgYXVmIGRlbSBGb3JtIENvbnRhaW5lciBuaWNodCBnZW1hY2h0LCBkYSBrZWluIE1vZGVsIEJpbmRpbmcgdm9yaGFuZGVuLlxyXG4gICAgICogQHBhcmFtIGMgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICAgKiBAcmV0dXJucyBGZWhsZXJtZWxkdW5nIGF1cyBWYWxpZGF0aW9uIG9kZXIgTlVMTFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICAvLyBLZWluZSBWYWxpZGllcnVuZywgZGFoZXIgaW1tZXIgTlVMTFxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxufVxyXG4iXX0=
|