@simpleangularcontrols/sac-common 10.0.0-rc.29 → 10.0.0-rc.30
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 +1848 -1249
- 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 +47 -21
- package/common/baseinputcontrol.d.ts +10 -8
- package/common/baselistcontrol.d.ts +15 -15
- package/common/basemodelcontrol.d.ts +59 -43
- package/common/baseselectcontrol.d.ts +5 -5
- package/common/baseuploadcontrol.d.ts +77 -57
- package/components/browser/browser.d.ts +86 -89
- package/components/browser/models/browserfile.d.ts +6 -6
- package/components/browser/models/browserfiledeleterequest.d.ts +7 -7
- package/components/browser/models/browserfilerenamerequest.d.ts +10 -10
- package/components/browser/models/browserfileresponse.d.ts +2 -2
- package/components/browser/models/browserfilesaverequest.d.ts +7 -7
- package/components/browser/models/browsernode.d.ts +13 -13
- package/components/browser/models/browsernodedeleterequest.d.ts +6 -6
- package/components/browser/models/browsernodenewrequest.d.ts +7 -7
- package/components/browser/models/browsernoderenamerequest.d.ts +7 -7
- package/components/browser/models/browsernoderequest.d.ts +7 -7
- package/components/browser/models/browsernoderesponse.d.ts +1 -1
- package/controls/buttons/button.d.ts +25 -19
- package/controls/checkbox/checkbox.d.ts +3 -3
- package/controls/checkbox/radiobutton.d.ts +19 -13
- package/controls/checkbox/radiobuttons.d.ts +13 -10
- package/controls/confirm/confirm.button.d.ts +3 -3
- package/controls/confirm/confirm.d.ts +13 -12
- package/controls/confirm/confirm.service.d.ts +14 -14
- package/controls/contextmenu/contextmenu.d.ts +33 -27
- package/controls/contextmenu/contextmenu.interface.d.ts +6 -0
- package/controls/contextmenu/contextmenuanchor.d.ts +4 -4
- package/controls/contextmenu/contextmenucontainer.d.ts +4 -4
- package/controls/contextmenu/contextmenuitembutton.d.ts +12 -12
- package/controls/datetime/date.d.ts +11 -11
- package/controls/datetime/dateselector.d.ts +47 -40
- package/controls/datetime/datetime.d.ts +15 -14
- package/controls/datetime/time.d.ts +22 -12
- package/controls/dialog/dialog.d.ts +28 -22
- package/controls/form/form.d.ts +17 -12
- package/controls/grid/grid.d.ts +1 -0
- package/controls/grid/gridbutton.d.ts +1 -0
- package/controls/grid/gridcolumn.d.ts +5 -1
- package/controls/grid/gridcolumnaction.d.ts +1 -1
- package/controls/grid/gridcolumnbase.d.ts +8 -3
- package/controls/grid/model.d.ts +5 -2
- package/controls/grid/paging.d.ts +2 -3
- package/controls/input/input.d.ts +7 -7
- package/controls/input/inputarea.d.ts +8 -6
- package/controls/input/inputcurrency.d.ts +4 -1
- package/controls/input/inputdecimal.d.ts +14 -14
- package/controls/input/inputemail.d.ts +4 -4
- package/controls/input/inputinteger.d.ts +14 -14
- package/controls/input/inputpassword.d.ts +3 -3
- package/controls/input/inputsearch.d.ts +8 -5
- package/controls/layout/formlayout.d.ts +8 -5
- package/controls/list/buildvaluestring.d.ts +2 -2
- package/controls/list/dropdown.d.ts +23 -22
- package/controls/list/dropdownoptions.d.ts +10 -10
- package/controls/list/listbox.d.ts +25 -23
- package/controls/multilanguage/multilanguageinput.d.ts +25 -25
- package/controls/multilanguage/multilanguageinputarea.d.ts +27 -27
- package/controls/static/formcontainer.d.ts +8 -8
- package/controls/static/staticlabel.d.ts +5 -5
- package/controls/tabs/tab.d.ts +2 -2
- package/controls/tabs/tabitem.d.ts +7 -7
- package/controls/tinymce/tinymce.d.ts +37 -37
- package/controls/tinymce/tinymcedialogsettings.d.ts +6 -6
- package/controls/tinymce/tinymcedialogsettingsmeta.d.ts +2 -2
- package/controls/tinymce/tinymceinstance.d.ts +2 -2
- package/controls/tooltip/tooltip.d.ts +10 -5
- package/controls/treeview/treeview.d.ts +50 -5
- package/controls/upload/dropzonemultiple.d.ts +16 -16
- package/controls/upload/dropzonesingle.d.ts +11 -11
- package/controls/upload/uploadmultiple.d.ts +12 -12
- package/controls/upload/uploadsingle.d.ts +7 -7
- package/controls/validation/validationsummary.d.ts +12 -11
- package/controls/wizard/wizard.d.ts +25 -18
- package/controls/wizard/wizarditem.d.ts +5 -5
- package/enums/ButtonRoleType.d.ts +26 -1
- package/enums/ControlHeight.d.ts +1 -1
- package/enums/IconType.d.ts +1 -1
- package/esm2015/common/basedatetimecontrol.js +47 -22
- package/esm2015/common/baseinputcontrol.js +13 -11
- package/esm2015/common/baselistcontrol.js +21 -17
- package/esm2015/common/basemodelcontrol.js +72 -49
- package/esm2015/common/baseselectcontrol.js +11 -9
- package/esm2015/common/baseuploadcontrol.js +69 -49
- package/esm2015/components/browser/browser.js +93 -105
- package/esm2015/components/browser/models/browserfile.js +1 -1
- package/esm2015/components/browser/models/browserfiledeleterequest.js +6 -4
- package/esm2015/components/browser/models/browserfilerenamerequest.js +6 -4
- package/esm2015/components/browser/models/browserfileresponse.js +1 -1
- package/esm2015/components/browser/models/browserfilesaverequest.js +5 -3
- package/esm2015/components/browser/models/browsernode.js +1 -1
- package/esm2015/components/browser/models/browsernodedeleterequest.js +6 -4
- package/esm2015/components/browser/models/browsernodenewrequest.js +6 -4
- package/esm2015/components/browser/models/browsernoderenamerequest.js +6 -4
- package/esm2015/components/browser/models/browsernoderequest.js +6 -4
- package/esm2015/components/browser/models/browsernoderesponse.js +1 -1
- package/esm2015/controls/buttons/button.js +26 -20
- package/esm2015/controls/checkbox/checkbox.js +3 -3
- package/esm2015/controls/checkbox/radiobutton.js +21 -15
- package/esm2015/controls/checkbox/radiobuttons.js +14 -11
- package/esm2015/controls/confirm/confirm.button.js +4 -4
- package/esm2015/controls/confirm/confirm.js +14 -13
- package/esm2015/controls/confirm/confirm.service.js +21 -21
- package/esm2015/controls/contextmenu/contextmenu.interface.js +1 -1
- package/esm2015/controls/contextmenu/contextmenu.js +29 -23
- package/esm2015/controls/contextmenu/contextmenuanchor.js +4 -4
- package/esm2015/controls/contextmenu/contextmenucontainer.js +4 -4
- package/esm2015/controls/contextmenu/contextmenuitembutton.js +10 -10
- package/esm2015/controls/datetime/date.js +13 -13
- package/esm2015/controls/datetime/dateselector.js +55 -54
- package/esm2015/controls/datetime/datetime.js +17 -16
- package/esm2015/controls/datetime/time.js +24 -14
- package/esm2015/controls/dialog/dialog.js +31 -24
- package/esm2015/controls/form/form.js +18 -13
- package/esm2015/controls/grid/grid.js +2 -1
- package/esm2015/controls/grid/gridbutton.js +2 -1
- package/esm2015/controls/grid/gridcolumn.js +6 -2
- package/esm2015/controls/grid/gridcolumnaction.js +2 -2
- package/esm2015/controls/grid/gridcolumnbase.js +9 -4
- package/esm2015/controls/grid/model.js +5 -2
- package/esm2015/controls/grid/paging.js +6 -7
- package/esm2015/controls/input/input.js +8 -8
- package/esm2015/controls/input/inputarea.js +9 -7
- package/esm2015/controls/input/inputcurrency.js +6 -3
- package/esm2015/controls/input/inputdecimal.js +21 -27
- package/esm2015/controls/input/inputemail.js +5 -5
- package/esm2015/controls/input/inputinteger.js +19 -23
- package/esm2015/controls/input/inputpassword.js +4 -4
- package/esm2015/controls/input/inputsearch.js +9 -6
- package/esm2015/controls/layout/formlayout.js +10 -7
- package/esm2015/controls/list/buildvaluestring.js +6 -6
- package/esm2015/controls/list/dropdown.js +28 -27
- package/esm2015/controls/list/dropdownoptions.js +12 -12
- package/esm2015/controls/list/listbox.js +26 -24
- package/esm2015/controls/multilanguage/multilanguageinput.js +29 -29
- package/esm2015/controls/multilanguage/multilanguageinputarea.js +31 -31
- package/esm2015/controls/static/formcontainer.js +10 -10
- package/esm2015/controls/static/staticlabel.js +7 -7
- package/esm2015/controls/tabs/tab.js +2 -2
- package/esm2015/controls/tabs/tabitem.js +5 -5
- package/esm2015/controls/tinymce/tinymce.js +35 -35
- package/esm2015/controls/tinymce/tinymcedialogsettings.js +4 -4
- package/esm2015/controls/tinymce/tinymcedialogsettingsmeta.js +1 -1
- package/esm2015/controls/tinymce/tinymceinstance.js +1 -1
- package/esm2015/controls/tooltip/tooltip.js +13 -8
- package/esm2015/controls/treeview/treeview.js +52 -7
- package/esm2015/controls/upload/dropzonemultiple.js +18 -18
- package/esm2015/controls/upload/dropzonesingle.js +12 -12
- package/esm2015/controls/upload/uploadmultiple.js +14 -14
- package/esm2015/controls/upload/uploadsingle.js +8 -8
- package/esm2015/controls/validation/validationsummary.js +14 -13
- package/esm2015/controls/wizard/wizard.js +24 -17
- package/esm2015/controls/wizard/wizarditem.js +4 -4
- package/esm2015/enums/ButtonRoleType.js +1 -1
- package/esm2015/enums/ControlHeight.js +2 -2
- package/esm2015/enums/IconType.js +2 -2
- package/esm2015/interfaces/ISacConfigurationService.js +1 -1
- package/esm2015/interfaces/ISacFileBrowserService.js +1 -1
- package/esm2015/interfaces/ISacLabelSizes.js +1 -1
- package/esm2015/interfaces/ISacLanguageService.js +1 -1
- package/esm2015/interfaces/ISacLocalisationService.js +1 -1
- package/esm2015/interfaces/ISacUploadEventCompleteState.js +1 -1
- package/esm2015/interfaces/iabstractcontrollabel.js +1 -1
- package/esm2015/interfaces/iconfirmcomponent.js +1 -1
- package/esm2015/interfaces/idatetimecontrol.js +1 -1
- package/esm2015/interfaces/iuploadcontrol.js +1 -1
- package/esm2015/interfaces/treeviewaction.interface.js +1 -1
- package/esm2015/models/languagemodel.js +5 -3
- package/esm2015/public_api.js +3 -2
- package/esm2015/services/index.js +4 -4
- package/esm2015/services/sac-configuration.service.js +7 -1
- package/esm2015/services/sac-filebrowser.service.js +46 -38
- package/esm2015/services/sac-localisation.service.js +11 -7
- package/esm2015/services/sac-validationkey.service.js +148 -1
- package/esm2015/utilities/convertion.js +7 -5
- package/esm2015/utilities/datatypes.js +6 -4
- package/esm2015/utilities/enums.js +9 -8
- package/esm2015/utilities/guid.js +2 -2
- package/esm2015/utilities/interpolation.js +16 -9
- package/esm2015/utilities/popuphelper.js +62 -25
- package/esm2015/utilities/positioncalculator.js +209 -0
- package/esm2015/utilities/positioncalculator.ngfactory.js +7 -0
- package/esm2015/utilities/positionelements.js +108 -0
- package/esm2015/utilities/positionelements.ngfactory.js +7 -0
- package/esm2015/utilities/testingattribute.pipe.js +17 -2
- package/esm2015/validation/email.validator.js +11 -2
- package/esm2015/validation/equals.validator.js +11 -1
- package/esm2015/validation/index.js +1 -1
- package/esm2015/validation/invaliddate.validator.js +11 -2
- package/esm2015/validation/isDateValid.js +11 -10
- package/esm2015/validation/maxdate.validator.js +14 -4
- package/esm2015/validation/maxtime.validator.js +14 -4
- package/esm2015/validation/maxvalue.validator.js +12 -2
- package/esm2015/validation/mindate.validator.js +14 -4
- package/esm2015/validation/minfiles.validator.js +12 -2
- package/esm2015/validation/mintextlength.validator.js +9 -1
- package/esm2015/validation/mintime.validator.js +14 -4
- package/esm2015/validation/minvalue.validator.js +12 -2
- package/esm2015/validation/multilanguagerequired.validator.js +11 -1
- package/esm2015/validation/multilanguagerequiredany.validator.js +11 -1
- package/esm2015/validation/notequals.validator.js +11 -1
- package/esm2015/validation/pattern.validator.js +12 -2
- package/esm2015/validation/required.validator.js +11 -2
- package/esm2015/validation/validation.class.js +84 -101
- package/esm2015/validation/validationerrorcreator.js +12 -1
- package/esm2015/validation/validationerroritem.js +11 -9
- package/fesm2015/simpleangularcontrols-sac-common.js +1823 -1226
- package/fesm2015/simpleangularcontrols-sac-common.js.map +1 -1
- package/interfaces/ISacConfigurationService.d.ts +9 -1
- package/interfaces/ISacFileBrowserService.d.ts +43 -43
- package/interfaces/ISacLabelSizes.d.ts +15 -12
- package/interfaces/ISacLanguageService.d.ts +3 -3
- package/interfaces/ISacLocalisationService.d.ts +2 -2
- package/interfaces/ISacUploadEventCompleteState.d.ts +6 -0
- package/interfaces/iabstractcontrollabel.d.ts +4 -1
- package/interfaces/iconfirmcomponent.d.ts +6 -6
- package/interfaces/idatetimecontrol.d.ts +10 -1
- package/interfaces/treeviewaction.interface.d.ts +9 -0
- package/models/languagemodel.d.ts +9 -9
- package/package.json +1 -1
- package/public_api.d.ts +2 -1
- package/services/index.d.ts +3 -3
- package/services/sac-configuration.service.d.ts +8 -0
- package/services/sac-filebrowser.service.d.ts +78 -70
- package/services/sac-localisation.service.d.ts +11 -7
- package/services/sac-validationkey.service.d.ts +147 -0
- package/simpleangularcontrols-sac-common-10.0.0-rc.30.tgz +0 -0
- package/simpleangularcontrols-sac-common.metadata.json +1 -1
- package/utilities/convertion.d.ts +4 -4
- package/utilities/datatypes.d.ts +3 -3
- package/utilities/enums.d.ts +8 -1
- package/utilities/guid.d.ts +1 -1
- package/utilities/interpolation.d.ts +9 -8
- package/utilities/popuphelper.d.ts +47 -10
- package/utilities/positioncalculator.d.ts +82 -0
- package/utilities/positionelements.d.ts +30 -0
- package/utilities/positionelements.ngfactory.d.ts +1 -0
- package/utilities/testingattribute.pipe.d.ts +16 -1
- package/validation/email.validator.d.ts +7 -0
- package/validation/equals.validator.d.ts +8 -0
- package/validation/invaliddate.validator.d.ts +7 -0
- package/validation/isDateValid.d.ts +5 -2
- package/validation/maxdate.validator.d.ts +8 -0
- package/validation/maxtime.validator.d.ts +8 -0
- package/validation/maxvalue.validator.d.ts +8 -0
- package/validation/mindate.validator.d.ts +8 -0
- package/validation/minfiles.validator.d.ts +8 -0
- package/validation/mintextlength.validator.d.ts +8 -0
- package/validation/mintime.validator.d.ts +8 -0
- package/validation/minvalue.validator.d.ts +8 -0
- package/validation/multilanguagerequired.validator.d.ts +9 -1
- package/validation/multilanguagerequiredany.validator.d.ts +9 -1
- package/validation/notequals.validator.d.ts +8 -0
- package/validation/pattern.validator.d.ts +8 -0
- package/validation/required.validator.d.ts +7 -0
- package/validation/validation.class.d.ts +83 -100
- package/validation/validationerrorcreator.d.ts +9 -0
- package/validation/validationerroritem.d.ts +16 -16
- package/esm2015/utilities/positioning.js +0 -301
- package/esm2015/utilities/positioning.ngfactory.js +0 -7
- package/simpleangularcontrols-sac-common-10.0.0-rc.29.tgz +0 -0
- package/utilities/positioning.d.ts +0 -82
- /package/utilities/{positioning.ngfactory.d.ts → positioncalculator.ngfactory.d.ts} +0 -0
|
@@ -5,15 +5,16 @@ import { Validation } from '../../validation';
|
|
|
5
5
|
// #endregion Interfaces
|
|
6
6
|
// #region Classes
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Base component for SacListboxOption
|
|
9
9
|
*/
|
|
10
10
|
export class SacListboxOptionCommon {
|
|
11
11
|
// #endregion Properties
|
|
12
12
|
// #region Constructors
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
15
|
-
* @param _element
|
|
16
|
-
* @param _renderer
|
|
14
|
+
* Constructor
|
|
15
|
+
* @param _element Reference to host element
|
|
16
|
+
* @param _renderer Renderer for DOM manipulation
|
|
17
|
+
* @param _listbox Reference to parent listbox component
|
|
17
18
|
*/
|
|
18
19
|
constructor(_element, _renderer, _listbox) {
|
|
19
20
|
this._element = _element;
|
|
@@ -21,7 +22,7 @@ export class SacListboxOptionCommon {
|
|
|
21
22
|
this._listbox = _listbox;
|
|
22
23
|
// #region Properties
|
|
23
24
|
/**
|
|
24
|
-
* Value
|
|
25
|
+
* Value of selected option item
|
|
25
26
|
*/
|
|
26
27
|
this._value = null;
|
|
27
28
|
if (this._listbox) {
|
|
@@ -31,7 +32,7 @@ export class SacListboxOptionCommon {
|
|
|
31
32
|
// #endregion Constructors
|
|
32
33
|
// #region Public Getters And Setters
|
|
33
34
|
/**
|
|
34
|
-
* NgValue
|
|
35
|
+
* NgValue of the control. Needed for multiple selection
|
|
35
36
|
*/
|
|
36
37
|
set ngValue(value) {
|
|
37
38
|
if (this._listbox) {
|
|
@@ -39,7 +40,7 @@ export class SacListboxOptionCommon {
|
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
|
-
*
|
|
43
|
+
* Defines the value of the listbox
|
|
43
44
|
*/
|
|
44
45
|
set value(value) {
|
|
45
46
|
if (this._listbox) {
|
|
@@ -52,14 +53,14 @@ export class SacListboxOptionCommon {
|
|
|
52
53
|
// #endregion Public Getters And Setters
|
|
53
54
|
// #region Public Methods
|
|
54
55
|
/**
|
|
55
|
-
*
|
|
56
|
-
* @param selected Element
|
|
56
|
+
* Method returns the status of the elements that were selected
|
|
57
|
+
* @param selected Element is selected
|
|
57
58
|
*/
|
|
58
59
|
_setSelected(selected) {
|
|
59
60
|
this._renderer.setProperty(this._element.nativeElement, 'selected', selected);
|
|
60
61
|
}
|
|
61
62
|
/**
|
|
62
|
-
* OnDestroy
|
|
63
|
+
* OnDestroy event
|
|
63
64
|
*/
|
|
64
65
|
ngOnDestroy() {
|
|
65
66
|
if (this._listbox) {
|
|
@@ -80,26 +81,26 @@ SacListboxOptionCommon.propDecorators = {
|
|
|
80
81
|
value: [{ type: Input }]
|
|
81
82
|
};
|
|
82
83
|
/**
|
|
83
|
-
*
|
|
84
|
+
* Component for SacListboxCommon. Extends SacBaseSelectControl
|
|
84
85
|
*/
|
|
85
86
|
export class SacListboxCommon extends SacBaseSelectControl {
|
|
86
87
|
constructor() {
|
|
87
88
|
// #region Properties
|
|
88
89
|
super(...arguments);
|
|
89
90
|
/**
|
|
90
|
-
*
|
|
91
|
+
* Number of rows
|
|
91
92
|
*/
|
|
92
93
|
this.rowsize = 5;
|
|
93
94
|
/**
|
|
94
|
-
* Resource
|
|
95
|
+
* Resource key for validation message required at control
|
|
95
96
|
*/
|
|
96
97
|
this.validationmessagerequired = this.validationKeyService.ValidationErrorRequired;
|
|
97
98
|
/**
|
|
98
|
-
* Resource
|
|
99
|
+
* Resource key for validation message required in validation summary
|
|
99
100
|
*/
|
|
100
101
|
this.validationmessagesummaryrequired = this.validationKeyService.ValidationErrorSummaryRequired;
|
|
101
102
|
/**
|
|
102
|
-
*
|
|
103
|
+
* Option list
|
|
103
104
|
*/
|
|
104
105
|
this.optionlist = new Array();
|
|
105
106
|
// #endregion Public Methods
|
|
@@ -107,7 +108,7 @@ export class SacListboxCommon extends SacBaseSelectControl {
|
|
|
107
108
|
// #endregion Properties
|
|
108
109
|
// #region Public Methods
|
|
109
110
|
/**
|
|
110
|
-
* Getter
|
|
111
|
+
* Getter for selected items
|
|
111
112
|
*/
|
|
112
113
|
getSelectedItems(selectelement) {
|
|
113
114
|
const selectedValues = new Array();
|
|
@@ -131,22 +132,22 @@ export class SacListboxCommon extends SacBaseSelectControl {
|
|
|
131
132
|
}
|
|
132
133
|
}
|
|
133
134
|
/**
|
|
134
|
-
*
|
|
135
|
-
* @param option Listbox
|
|
135
|
+
* Registers a listbox element
|
|
136
|
+
* @param option Listbox option item to be registered
|
|
136
137
|
*/
|
|
137
138
|
registerOption(option) {
|
|
138
139
|
this.optionlist.push(option);
|
|
139
140
|
}
|
|
140
141
|
/**
|
|
141
|
-
*
|
|
142
|
-
* @param option Listbox
|
|
142
|
+
* Cancels the registration of a listbox item
|
|
143
|
+
* @param option Listbox option item to be deregistered
|
|
143
144
|
*/
|
|
144
145
|
unregisterOption(option) {
|
|
145
146
|
const index = this.optionlist.indexOf(option);
|
|
146
147
|
this.optionlist.splice(index, 1);
|
|
147
148
|
}
|
|
148
149
|
/**
|
|
149
|
-
* Validator
|
|
150
|
+
* Validator method
|
|
150
151
|
*/
|
|
151
152
|
validateData(c) {
|
|
152
153
|
let error = null;
|
|
@@ -156,7 +157,8 @@ export class SacListboxCommon extends SacBaseSelectControl {
|
|
|
156
157
|
return error;
|
|
157
158
|
}
|
|
158
159
|
/**
|
|
159
|
-
*
|
|
160
|
+
* Method writes new value
|
|
161
|
+
* @param value Selected values that should be set on the options.
|
|
160
162
|
*/
|
|
161
163
|
writeValue(value) {
|
|
162
164
|
if (this.optionlist && value) {
|
|
@@ -179,9 +181,9 @@ SacListboxCommon.propDecorators = {
|
|
|
179
181
|
contentOptions: [{ type: ViewChildren, args: [SacListboxOptionCommon,] }]
|
|
180
182
|
};
|
|
181
183
|
/**
|
|
182
|
-
* Wrapper
|
|
184
|
+
* Wrapper for HTML select
|
|
183
185
|
*/
|
|
184
186
|
class HTMLCollection {
|
|
185
187
|
}
|
|
186
188
|
// #endregion Classes
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2xpc3QvbGlzdGJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjO0FBQ2QsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQXNCOUMsd0JBQXdCO0FBRXhCLGtCQUFrQjtBQUVsQjs7R0FFRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFRL0Isd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFBb0IsUUFBb0IsRUFBVSxTQUFvQixFQUFVLFFBQTBCO1FBQXRGLGFBQVEsR0FBUixRQUFRLENBQVk7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFoQjFHLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNLLFdBQU0sR0FBUSxJQUFJLENBQUM7UUFZdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7SUFDTCxDQUFDO0lBRUQsMEJBQTBCO0lBRTFCLHFDQUFxQztJQUVyQzs7T0FFRztJQUNILElBQ1csT0FBTyxDQUFDLEtBQVU7UUFDekIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENB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LENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWSxDQUFDLENBQWtCO1FBQ2xDLElBQUksS0FBSyxHQUE0QixJQUFJLENBQUM7UUFFMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6RztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxLQUFvQjtRQUNsQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksS0FBSyxFQUFFO1lBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzVCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMvQixHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMxQjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7OztZQXZHSixTQUFTOzs7c0JBT0wsS0FBSzt3Q0FJTCxLQUFLOytDQUtMLEtBQUs7NkJBTUwsWUFBWSxTQUFDLHNCQUFzQjs7QUFzRnhDOztHQUVHO0FBQ0gsTUFBZSxjQUFjO0NBa0I1QjtBQUVELHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzY286aWdub3JlXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNhY0Jhc2VTZWxlY3RDb250cm9sIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2VzZWxlY3Rjb250cm9sJztcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcblxuLy8gI3JlZ2lvbiBJbnRlcmZhY2VzXG5cbi8qKlxuICogV3JhcHBlciBmw7xyIEhUTUwgT3B0aW9uc1xuICovXG5pbnRlcmZhY2UgSFRNTE9wdGlvbiB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5IGbDvHIgU2VsZWt0aWVydGUgRWxlbWVudGVcbiAgICAgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBXZXJ0XG4gICAgICovXG4gICAgdmFsdWU6IHN0cmluZztcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xufVxuXG4vLyAjZW5kcmVnaW9uIEludGVyZmFjZXNcblxuLy8gI3JlZ2lvbiBDbGFzc2VzXG5cbi8qKlxuICogQmFzaXMgS29tcG9uZW50ZSBmw7xyIFNhY0xpc3Rib3hPcHRpb25cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjTGlzdGJveE9wdGlvbkNvbW1vbiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBWYWx1ZSB2b24gU2VsZWN0ZWQgT3B0aW9uIEl0ZW1cbiAgICAgKi9cbiAgICBwcml2YXRlIF92YWx1ZTogYW55ID0gbnVsbDtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIEtvbnN0cnVrdG9yXG4gICAgICogQHBhcmFtIF9lbGVtZW50OiBFbGVtZW50UmVmXG4gICAgICogQHBhcmFtIF9yZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBfbGlzdGJveDogU2FjTGlzdGJveENvbW1vbikge1xuICAgICAgICBpZiAodGhpcy5fbGlzdGJveCkge1xuICAgICAgICAgICAgdGhpcy5fbGlzdGJveC5yZWdpc3Rlck9wdGlvbih0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBOZ1ZhbHVlIGRlcyBDb250cm9scy4gV2lyZCBmw7xyIGRpZSBNZWhyZmFjaGF1c3dhaGwgYmVuw7Z0aWd0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IG5nVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5fbGlzdGJveCkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkZW4gV2VydCBkZXIgTGlzdGJveFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLl9saXN0Ym94KSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgZGVuIFN0YXR1cyBkZXIgRWxlbWVudGUsIGRpZSBzZWxla3RpZXJ0IHd1cmRlblxuICAgICAqIEBwYXJhbSBzZWxlY3RlZCBFbGVtZW50IGlzdCBzZWxla3RpZXJ0XG4gICAgICovXG4gICAgcHVibGljIF9zZXRTZWxlY3RlZChzZWxlY3RlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdzZWxlY3RlZCcsIHNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbkRlc3Ryb3kgRXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9saXN0Ym94KSB7XG4gICAgICAgICAgICB0aGlzLl9saXN0Ym94LnVucmVnaXN0ZXJPcHRpb24odGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG59XG5cbi8qKlxuICogS29tcG9uZW50ZSBmw7xyIFNhY0xpc3Rib3hDb21tb24uIEV4dGVuZHMgU2FjQmFzZVNlbGVjdENvbnRyb2xcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjTGlzdGJveENvbW1vbiBleHRlbmRzIFNhY0Jhc2VTZWxlY3RDb250cm9sPEFycmF5PHN0cmluZz4+IHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEFuemFobCBkZXIgWmVpbGVuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHJvd3NpemU6IG51bWJlciA9IDU7XG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xuXG4gICAgLyoqXG4gICAgICogVmlld0NoaWxkcmVuIE1ldGhvZGVcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkcmVuKFNhY0xpc3Rib3hPcHRpb25Db21tb24pXG4gICAgcHVibGljIGNvbnRlbnRPcHRpb25zOiBRdWVyeUxpc3Q8U2FjTGlzdGJveE9wdGlvbkNvbW1vbj47XG5cbiAgICAvKipcbiAgICAgKiBPcHRpb25NYXBcbiAgICAgKi9cbiAgICBwdWJsaWMgb3B0aW9ubGlzdDogQXJyYXk8U2FjTGlzdGJveE9wdGlvbkNvbW1vbj4gPSBuZXcgQXJyYXk8U2FjTGlzdGJveE9wdGlvbkNvbW1vbj4oKTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogR2V0dGVyIGbDvHIgc2VsZWt0aWVydGUgRWxlbWVudGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0U2VsZWN0ZWRJdGVtcyhzZWxlY3RlbGVtZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXM6IEFycmF5PHN0cmluZz4gPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgICAgIGlmIChzZWxlY3RlbGVtZW50Lmhhc093blByb3BlcnR5KCdzZWxlY3RlZE9wdGlvbnMnKSkge1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uczogSFRNTENvbGxlY3Rpb24gPSBzZWxlY3RlbGVtZW50LnNlbGVjdGVkT3B0aW9ucztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wdDogSFRNTE9wdGlvbiA9IG9wdGlvbnMuaXRlbShpKTtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlcy5wdXNoKG9wdC52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBEZWdyYWRlIG9uIElFXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zOiBIVE1MQ29sbGVjdGlvbiA9IDxIVE1MQ29sbGVjdGlvbj5zZWxlY3RlbGVtZW50Lm9wdGlvbnM7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvcHQ6IEhUTUxPcHRpb24gPSBvcHRpb25zLml0ZW0oaSk7XG4gICAgICAgICAgICAgICAgaWYgKG9wdC5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlcy5wdXNoKG9wdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlKHNlbGVjdGVkVmFsdWVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdHJpZXJ0IGVpbiBMaXN0Ym94IEVsZW1lbnRcbiAgICAgKiBAcGFyYW0gb3B0aW9uIExpc3Rib3ggT3B0aW9uIEl0ZW0gZGFzIHJlZ2lzdHJpZXJ0IHdlcmRlbiBzb2xsXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT3B0aW9uKG9wdGlvbjogU2FjTGlzdGJveE9wdGlvbkNvbW1vbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9wdGlvbmxpc3QucHVzaChvcHRpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhlYnQgZGllIFJlZ2lzdHJhdGlvbiBlaW5lcyBMaXN0Ym94IEl0ZW1zIGF1ZlxuICAgICAqIEBwYXJhbSBvcHRpb24gTGlzdGJveCBPcHRpb24gSXRlbSBkYXMgZGVyZWdpc3RyaWVydCB3ZXJkZW4gc29sbFxuICAgICAqL1xuICAgIHB1YmxpYyB1bnJlZ2lzdGVyT3B0aW9uKG9wdGlvbjogU2FjTGlzdGJveE9wdGlvbkNvbW1vbik6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMub3B0aW9ubGlzdC5pbmRleE9mKG9wdGlvbik7XG4gICAgICAgIHRoaXMub3B0aW9ubGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBNZXRob2RlXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZCh0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQpKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgc2NocmVpYnQgbmV1ZW4gV2VydFxuICAgICAqL1xuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbmxpc3QgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ubGlzdC5mb3JFYWNoKChpdG0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUuaW5kZXhPZihpdG0udmFsdWUpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaXRtLl9zZXRTZWxlY3RlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGbDvHIgSFRNTCBTZWxlY3RcbiAqL1xuYWJzdHJhY3QgY2xhc3MgSFRNTENvbGxlY3Rpb24ge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogTMOkbmdlXG4gICAgICovXG4gICAgcHVibGljIGxlbmd0aDogbnVtYmVyO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBBYnN0cmFjdCBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBPcHRpb24tSXRlbVxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBpdGVtKF86IG51bWJlcik6IEhUTUxPcHRpb247XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBBYnN0cmFjdCBNZXRob2RzXG59XG5cbi8vICNlbmRyZWdpb24gQ2xhc3Nlc1xuIl19
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2xpc3QvbGlzdGJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjO0FBQ2QsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQXNCOUMsd0JBQXdCO0FBRXhCLGtCQUFrQjtBQUVsQjs7R0FFRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFRL0Isd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7Ozs7T0FLRztJQUNILFlBQ1ksUUFBb0IsRUFDcEIsU0FBb0IsRUFDcEIsUUFBMEI7UUFGMUIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUNwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBcEJ0QyxxQkFBcUI7UUFFckI7O1dBRUc7UUFDSyxXQUFNLEdBQVEsSUFBSSxDQUFDO1FBaUJ2QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0QztJQUNMLENBQUM7SUFFRCwwQkFBMEI7SUFFMUIscUNBQXFDO0lBRXJDOztPQUVHO0lBQ0gsSUFDVyxPQUFPLENBQUMsS0FBVTtRQUN6QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLEtB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LElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZLENBQUMsQ0FBa0I7UUFDbEMsSUFBSSxLQUFLLEdBQTRCLElBQUksQ0FBQztRQUUxQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pHO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxLQUFvQjtRQUNsQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksS0FBSyxFQUFFO1lBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzVCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMvQixHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMxQjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7OztZQXhHSixTQUFTOzs7c0JBT0wsS0FBSzt3Q0FJTCxLQUFLOytDQUtMLEtBQUs7NkJBTUwsWUFBWSxTQUFDLHNCQUFzQjs7QUF1RnhDOztHQUVHO0FBQ0gsTUFBZSxjQUFjO0NBa0I1QjtBQUVELHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzY286aWdub3JlXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNhY0Jhc2VTZWxlY3RDb250cm9sIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2VzZWxlY3Rjb250cm9sJztcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcblxuLy8gI3JlZ2lvbiBJbnRlcmZhY2VzXG5cbi8qKlxuICogV3JhcHBlciBmb3IgSFRNTCBvcHRpb25zXG4gKi9cbmludGVyZmFjZSBIVE1MT3B0aW9uIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gcHJvcGVydHkgZm9yIHNlbGVjdGVkIGVsZW1lbnRzXG4gICAgICovXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVmFsdWVcbiAgICAgKi9cbiAgICB2YWx1ZTogc3RyaW5nO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG59XG5cbi8vICNlbmRyZWdpb24gSW50ZXJmYWNlc1xuXG4vLyAjcmVnaW9uIENsYXNzZXNcblxuLyoqXG4gKiBCYXNlIGNvbXBvbmVudCBmb3IgU2FjTGlzdGJveE9wdGlvblxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBTYWNMaXN0Ym94T3B0aW9uQ29tbW9uIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIFZhbHVlIG9mIHNlbGVjdGVkIG9wdGlvbiBpdGVtXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdmFsdWU6IGFueSA9IG51bGw7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBfZWxlbWVudCBSZWZlcmVuY2UgdG8gaG9zdCBlbGVtZW50XG4gICAgICogQHBhcmFtIF9yZW5kZXJlciBSZW5kZXJlciBmb3IgRE9NIG1hbmlwdWxhdGlvblxuICAgICAqIEBwYXJhbSBfbGlzdGJveCBSZWZlcmVuY2UgdG8gcGFyZW50IGxpc3Rib3ggY29tcG9uZW50XG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgX2xpc3Rib3g6IFNhY0xpc3Rib3hDb21tb25cbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuX2xpc3Rib3gpIHtcbiAgICAgICAgICAgIHRoaXMuX2xpc3Rib3gucmVnaXN0ZXJPcHRpb24odGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogTmdWYWx1ZSBvZiB0aGUgY29udHJvbC4gTmVlZGVkIGZvciBtdWx0aXBsZSBzZWxlY3Rpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgbmdWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLl9saXN0Ym94KSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgdmFsdWUgb2YgdGhlIGxpc3Rib3hcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5fbGlzdGJveCkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCByZXR1cm5zIHRoZSBzdGF0dXMgb2YgdGhlIGVsZW1lbnRzIHRoYXQgd2VyZSBzZWxlY3RlZFxuICAgICAqIEBwYXJhbSBzZWxlY3RlZCBFbGVtZW50IGlzIHNlbGVjdGVkXG4gICAgICovXG4gICAgcHVibGljIF9zZXRTZWxlY3RlZChzZWxlY3RlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdzZWxlY3RlZCcsIHNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbkRlc3Ryb3kgZXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9saXN0Ym94KSB7XG4gICAgICAgICAgICB0aGlzLl9saXN0Ym94LnVucmVnaXN0ZXJPcHRpb24odGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG59XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBTYWNMaXN0Ym94Q29tbW9uLiBFeHRlbmRzIFNhY0Jhc2VTZWxlY3RDb250cm9sXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFNhY0xpc3Rib3hDb21tb24gZXh0ZW5kcyBTYWNCYXNlU2VsZWN0Q29udHJvbDxBcnJheTxzdHJpbmc+PiB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBOdW1iZXIgb2Ygcm93c1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dzaXplID0gNTtcbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBrZXkgZm9yIHZhbGlkYXRpb24gbWVzc2FnZSByZXF1aXJlZCBhdCBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBrZXkgZm9yIHZhbGlkYXRpb24gbWVzc2FnZSByZXF1aXJlZCBpbiB2YWxpZGF0aW9uIHN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XG5cbiAgICAvKipcbiAgICAgKiBWaWV3Q2hpbGRyZW4gbWV0aG9kXG4gICAgICovXG4gICAgQFZpZXdDaGlsZHJlbihTYWNMaXN0Ym94T3B0aW9uQ29tbW9uKVxuICAgIHB1YmxpYyBjb250ZW50T3B0aW9uczogUXVlcnlMaXN0PFNhY0xpc3Rib3hPcHRpb25Db21tb24+O1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uIGxpc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgb3B0aW9ubGlzdDogQXJyYXk8U2FjTGlzdGJveE9wdGlvbkNvbW1vbj4gPSBuZXcgQXJyYXk8U2FjTGlzdGJveE9wdGlvbkNvbW1vbj4oKTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogR2V0dGVyIGZvciBzZWxlY3RlZCBpdGVtc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRTZWxlY3RlZEl0ZW1zKHNlbGVjdGVsZW1lbnQ6IGFueSkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFZhbHVlczogQXJyYXk8c3RyaW5nPiA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICAgICAgaWYgKHNlbGVjdGVsZW1lbnQuaGFzT3duUHJvcGVydHkoJ3NlbGVjdGVkT3B0aW9ucycpKSB7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zOiBIVE1MQ29sbGVjdGlvbiA9IHNlbGVjdGVsZW1lbnQuc2VsZWN0ZWRPcHRpb25zO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0OiBIVE1MT3B0aW9uID0gb3B0aW9ucy5pdGVtKGkpO1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzLnB1c2gob3B0LnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIERlZ3JhZGUgb24gSUVcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnM6IEhUTUxDb2xsZWN0aW9uID0gPEhUTUxDb2xsZWN0aW9uPnNlbGVjdGVsZW1lbnQub3B0aW9ucztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wdDogSFRNTE9wdGlvbiA9IG9wdGlvbnMuaXRlbShpKTtcbiAgICAgICAgICAgICAgICBpZiAob3B0LnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzLnB1c2gob3B0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUoc2VsZWN0ZWRWYWx1ZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGEgbGlzdGJveCBlbGVtZW50XG4gICAgICogQHBhcmFtIG9wdGlvbiBMaXN0Ym94IG9wdGlvbiBpdGVtIHRvIGJlIHJlZ2lzdGVyZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPcHRpb24ob3B0aW9uOiBTYWNMaXN0Ym94T3B0aW9uQ29tbW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3B0aW9ubGlzdC5wdXNoKG9wdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FuY2VscyB0aGUgcmVnaXN0cmF0aW9uIG9mIGEgbGlzdGJveCBpdGVtXG4gICAgICogQHBhcmFtIG9wdGlvbiBMaXN0Ym94IG9wdGlvbiBpdGVtIHRvIGJlIGRlcmVnaXN0ZXJlZFxuICAgICAqL1xuICAgIHB1YmxpYyB1bnJlZ2lzdGVyT3B0aW9uKG9wdGlvbjogU2FjTGlzdGJveE9wdGlvbkNvbW1vbik6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMub3B0aW9ubGlzdC5pbmRleE9mKG9wdGlvbik7XG4gICAgICAgIHRoaXMub3B0aW9ubGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBtZXRob2RcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNyZXF1aXJlZCkge1xuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnJlcXVpcmVkKHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCwgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZCkoYyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHdyaXRlcyBuZXcgdmFsdWVcbiAgICAgKiBAcGFyYW0gdmFsdWUgU2VsZWN0ZWQgdmFsdWVzIHRoYXQgc2hvdWxkIGJlIHNldCBvbiB0aGUgb3B0aW9ucy5cbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25saXN0ICYmIHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbmxpc3QuZm9yRWFjaCgoaXRtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmluZGV4T2YoaXRtLnZhbHVlKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0bS5fc2V0U2VsZWN0ZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG59XG5cbi8qKlxuICogV3JhcHBlciBmb3IgSFRNTCBzZWxlY3RcbiAqL1xuYWJzdHJhY3QgY2xhc3MgSFRNTENvbGxlY3Rpb24ge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogTGVuZ3RoXG4gICAgICovXG4gICAgcHVibGljIGxlbmd0aDogbnVtYmVyO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBBYnN0cmFjdCBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBPcHRpb24tSXRlbVxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBpdGVtKF86IG51bWJlcik6IEhUTUxPcHRpb247XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBBYnN0cmFjdCBNZXRob2RzXG59XG5cbi8vICNlbmRyZWdpb24gQ2xhc3Nlc1xuIl19
|
|
@@ -5,7 +5,7 @@ import { Validation } from '../../validation';
|
|
|
5
5
|
import { SacFormLayoutCommon } from '../layout/formlayout';
|
|
6
6
|
import { Directive, Host, Injector, Input } from '@angular/core';
|
|
7
7
|
/**
|
|
8
|
-
* Base
|
|
8
|
+
* Base class for multi-language input control
|
|
9
9
|
*/
|
|
10
10
|
export class SacMultilanguageInputCommon extends SacInputBase {
|
|
11
11
|
// #endregion Properties
|
|
@@ -19,15 +19,15 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
19
19
|
super(formlayout, injector);
|
|
20
20
|
// #region Properties
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
22
|
+
* Languages for the control
|
|
23
23
|
*/
|
|
24
24
|
this.languages = [];
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* Selected language of the control
|
|
27
27
|
*/
|
|
28
28
|
this.selectedLanguage = null;
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
30
|
+
* Define fixed width for the control.
|
|
31
31
|
*/
|
|
32
32
|
this.controlwidth = null;
|
|
33
33
|
/**
|
|
@@ -35,23 +35,23 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
35
35
|
*/
|
|
36
36
|
this.maxtextlength = null;
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
38
|
+
* Activates validator that at least one language must be present
|
|
39
39
|
*/
|
|
40
40
|
this.requiredany = false;
|
|
41
41
|
/**
|
|
42
|
-
* Resource
|
|
42
|
+
* Resource key for validation message required at control
|
|
43
43
|
*/
|
|
44
44
|
this.validationmessagerequired = this.validationKeyService.ValidationErrorMultilanguageRequired;
|
|
45
45
|
/**
|
|
46
|
-
* Resource
|
|
46
|
+
* Resource key for validation message required any language at control
|
|
47
47
|
*/
|
|
48
48
|
this.validationmessagerequiredany = this.validationKeyService.ValidationErrorMultilanguageRequiredAny;
|
|
49
49
|
/**
|
|
50
|
-
* Resource
|
|
50
|
+
* Resource key for validation message required in validation summary
|
|
51
51
|
*/
|
|
52
52
|
this.validationmessagesummaryrequired = this.validationKeyService.ValidationErrorSummaryMultilanguageRequired;
|
|
53
53
|
/**
|
|
54
|
-
* Resource
|
|
54
|
+
* Resource key for validation message required any language in validation summary
|
|
55
55
|
*/
|
|
56
56
|
this.validationmessagesummaryrequiredany = this.validationKeyService.ValidationErrorSummaryMultilanguageRequiredAny;
|
|
57
57
|
this.lngLanguageService = injector.get(SACLANGUAGE_SERVICE, new SacDefaultLanguageService());
|
|
@@ -59,7 +59,7 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
59
59
|
this.languages = result;
|
|
60
60
|
if (this.languages.length > 0) {
|
|
61
61
|
this.selectedLanguage = this.languages[0];
|
|
62
|
-
//
|
|
62
|
+
// Execute control validation, since the value may already be set
|
|
63
63
|
this.UpdateValueAndValidity();
|
|
64
64
|
}
|
|
65
65
|
});
|
|
@@ -67,12 +67,12 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
67
67
|
// #endregion Constructors
|
|
68
68
|
// #region Public Getters And Setters
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
70
|
+
* Returns the value for the currently selected language
|
|
71
71
|
*/
|
|
72
72
|
get LanguageValue() {
|
|
73
73
|
if (this.value) {
|
|
74
74
|
const currentIsoCode = this.selectedLanguage ? this.selectedLanguage.IsoCode : null;
|
|
75
|
-
// Fallback
|
|
75
|
+
// Fallback if no selected language
|
|
76
76
|
if (currentIsoCode === null) {
|
|
77
77
|
return '';
|
|
78
78
|
}
|
|
@@ -88,13 +88,13 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
|
-
* Collection
|
|
91
|
+
* Collection of languages
|
|
92
92
|
*/
|
|
93
93
|
get Languages() {
|
|
94
94
|
return this.languages;
|
|
95
95
|
}
|
|
96
96
|
/**
|
|
97
|
-
*
|
|
97
|
+
* Returns the icon of the selected language
|
|
98
98
|
*/
|
|
99
99
|
get SelectedIcon() {
|
|
100
100
|
if (this.selectedLanguage) {
|
|
@@ -105,7 +105,7 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
/**
|
|
108
|
-
*
|
|
108
|
+
* Returns the icon type for the selected language
|
|
109
109
|
*/
|
|
110
110
|
get SelectedIconType() {
|
|
111
111
|
if (this.selectedLanguage) {
|
|
@@ -118,8 +118,8 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
118
118
|
// #endregion Public Getters And Setters
|
|
119
119
|
// #region Public Methods
|
|
120
120
|
/**
|
|
121
|
-
*
|
|
122
|
-
* @returns
|
|
121
|
+
* Checks whether no value is defined in any language
|
|
122
|
+
* @returns True if an empty value is present
|
|
123
123
|
*/
|
|
124
124
|
IsAnyEmpty() {
|
|
125
125
|
let found = false;
|
|
@@ -140,13 +140,13 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
140
140
|
return found;
|
|
141
141
|
}
|
|
142
142
|
/**
|
|
143
|
-
*
|
|
144
|
-
* @param sprache
|
|
145
|
-
* @returns
|
|
143
|
+
* Checks whether a value exists for a specific language.
|
|
144
|
+
* @param sprache Language in which the value should be checked
|
|
145
|
+
* @returns True if the value is present
|
|
146
146
|
*/
|
|
147
147
|
IsEmpty(sprache) {
|
|
148
148
|
if (this.value) {
|
|
149
|
-
// Fallback
|
|
149
|
+
// Fallback if no selected language
|
|
150
150
|
if (sprache === null) {
|
|
151
151
|
return true;
|
|
152
152
|
}
|
|
@@ -159,20 +159,20 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
/**
|
|
162
|
-
*
|
|
163
|
-
* @param language
|
|
162
|
+
* Selects the language
|
|
163
|
+
* @param language Language to select
|
|
164
164
|
*/
|
|
165
165
|
SelectLanguage(language) {
|
|
166
166
|
this.selectedLanguage = language;
|
|
167
167
|
}
|
|
168
168
|
/**
|
|
169
|
-
*
|
|
170
|
-
* @param value
|
|
169
|
+
* Sets the value for the currently selected language
|
|
170
|
+
* @param value Value to set
|
|
171
171
|
*/
|
|
172
172
|
SetLanguageValue(value) {
|
|
173
173
|
if (this.value) {
|
|
174
174
|
const currentIsoCode = this.selectedLanguage ? this.selectedLanguage.IsoCode : null;
|
|
175
|
-
// Fallback
|
|
175
|
+
// Fallback if no selected language
|
|
176
176
|
if (currentIsoCode === null) {
|
|
177
177
|
return;
|
|
178
178
|
}
|
|
@@ -181,8 +181,8 @@ export class SacMultilanguageInputCommon extends SacInputBase {
|
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
/**
|
|
184
|
-
*
|
|
185
|
-
* @param c Control
|
|
184
|
+
* Method validates whether the value meets the given criteria
|
|
185
|
+
* @param c Control that is validated
|
|
186
186
|
*/
|
|
187
187
|
validateData(c) {
|
|
188
188
|
let error = null;
|
|
@@ -221,4 +221,4 @@ SacMultilanguageInputCommon.propDecorators = {
|
|
|
221
221
|
validationmessagesummaryrequired: [{ type: Input }],
|
|
222
222
|
validationmessagesummaryrequiredany: [{ type: Input }]
|
|
223
223
|
};
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvbXVsdGlsYW5ndWFnZS9tdWx0aWxhbmd1YWdlaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRTs7R0FFRztBQUVILE1BQU0sT0FBTywyQkFBNEIsU0FBUSxZQUFpQjtJQTBEOUQsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFBb0IsVUFBK0IsRUFBRSxRQUFrQjtRQUNuRSxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBbkVoQyxxQkFBcUI7UUFFckI7O1dBRUc7UUFDSyxjQUFTLEdBQW9CLEVBQUUsQ0FBQztRQUV4Qzs7V0FFRztRQUNLLHFCQUFnQixHQUFrQixJQUFJLENBQUM7UUFPL0M7O1dBRUc7UUFDYSxpQkFBWSxHQUFXLElBQUksQ0FBQztRQUU1Qzs7V0FFRztRQUNhLGtCQUFhLEdBQVcsSUFBSSxDQUFDO1FBRTdDOztXQUVHO1FBQ2EsZ0JBQVcs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QUFLOzBCQUtMLEtBQUs7d0NBS0wsS0FBSzsyQ0FLTCxLQUFLOytDQU1MLEtBQUs7a0RBT0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0lucHV0QmFzZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNlaW5wdXRjb250cm9sJztcbmltcG9ydCB7IEljb25UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvSWNvblR5cGUnO1xuaW1wb3J0IHsgSVNhY0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVNhY0xhbmd1YWdlU2VydmljZSc7XG5pbXBvcnQgeyBMYW5ndWFnZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xhbmd1YWdlbW9kZWwnO1xuaW1wb3J0IHsgU0FDTEFOR1VBR0VfU0VSVklDRSwgU2FjRGVmYXVsdExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NhYy1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIEluamVjdG9yLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIEJhc2UgS2xhc3NlIGbDvHIgTXVsdGkgTGFuZ3VhZ2UgSW5wdXQgQ29udHJvbFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBTYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21tb24gZXh0ZW5kcyBTYWNJbnB1dEJhc2U8YW55PiB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBTcHJhY2hlIGbDvHIgZGFzIENvbnRyb2xcbiAgICAgKi9cbiAgICBwcml2YXRlIGxhbmd1YWdlczogTGFuZ3VhZ2VNb2RlbFtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBTZWxla3RpZXJ0ZSBTcHJhY2UgZGVzIENvbnRyb2xzXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZWxlY3RlZExhbmd1YWdlOiBMYW5ndWFnZU1vZGVsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZsO8ciBFcnJvciBMb2NhbGlzYXRpb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG5nTGFuZ3VhZ2VTZXJ2aWNlOiBJU2FjTGFuZ3VhZ2VTZXJ2aWNlO1xuXG4gICAgLyoqXG4gICAgICogRml4IGJyZWl0ZSBmw7xyIGRhcyBDb250cm9sIGRlZmluaWVyZW4uXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGNvbnRyb2x3aWR0aDogc3RyaW5nID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1heCBsZW5ndGggb2YgY2hhcmFjdGVycyBmb3IgaW5wdXQgZmllbGRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbWF4dGV4dGxlbmd0aDogbnVtYmVyID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIEFrdGl2aWVydCBkZW4gVmFsaWRhdG9yLCBkYXMgbWluLiBlaW5lIFNwcmFjaGUgZXJmYXNzdCBzZWluIG11c3NcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWRhbnk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck11bHRpbGFuZ3VhZ2VSZXF1aXJlZDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBQYXR0ZXJuIGJlaSBDb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRhbnk6IHN0cmluZyA9XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55O1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkOiBzdHJpbmcgPVxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNdWx0aWxhbmd1YWdlUmVxdWlyZWQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUGF0dGVybiBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZGFueTogc3RyaW5nID1cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55O1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XG5cbiAgICAgICAgdGhpcy5sbmdMYW5ndWFnZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDTEFOR1VBR0VfU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRMYW5ndWFnZVNlcnZpY2UoKSk7XG5cbiAgICAgICAgdGhpcy5sbmdMYW5ndWFnZVNlcnZpY2UuR2V0TGFuZ3VhZ2VzKCkuc3Vic2NyaWJlKChyZXN1bHQ6IExhbmd1YWdlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZXMgPSByZXN1bHQ7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmxhbmd1YWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gdGhpcy5sYW5ndWFnZXNbMF07XG4gICAgICAgICAgICAgICAgLy8gQ29udHJvbCBWYWxpZGllcnVuZyBhdXNmw7xocmVuLCBkYSBXZXJ0IHBvdGVudGllbGwgYmVyZWl0cyBnZXNldHp0IHNlaW4ga2FublxuICAgICAgICAgICAgICAgIHRoaXMuVXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogR2lidCBkZW4gV2VydCBkZXIgYWt0dWVsbCBhdXNnZXfDpGhsdGVuIFNwcmFjaGUgenVyw7xja1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgTGFuZ3VhZ2VWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudElzb0NvZGU6IHN0cmluZyA9IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA/IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZS5Jc29Db2RlIDogbnVsbDtcblxuICAgICAgICAgICAgLy8gRmFsbGJhY2sgZmFsbHMga2VpbmUgU2VsZWt0aWVydGUgU3ByYWNoZVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRJc29Db2RlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy52YWx1ZVtjdXJyZW50SXNvQ29kZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVbY3VycmVudElzb0NvZGVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29sbGVjdGlvbiBkZXIgU3ByYWNoZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IExhbmd1YWdlcygpOiBMYW5ndWFnZU1vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2lidCBkYXMgSWNvbiBkZXIgc2VsZWt0aWVydGVuIFNwcmFjaGUgenVyw7xja1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgU2VsZWN0ZWRJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UuSWNvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdpYnQgZGVuIFR5cGUgZGVzIEljb25zIGbDvHIgZGllIHNlbGVrdGllcnRlIFNwcmFjaGUgenVyw7xja1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgU2VsZWN0ZWRJY29uVHlwZSgpOiBJY29uVHlwZSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UuSWNvblR5cGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gSWNvblR5cGUuSW1hZ2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBQcsO8ZnQgb2IgaW4gaXJnZW5kZWluZXIgU3ByYWNoZSBrZWluIFdlcnQgZGVmaW5pZXJ0IHd1cmRlXG4gICAgICogQHJldHVybnMgTGVlcndlcnQgaXN0IHZvcmhhbmRlblxuICAgICAqL1xuICAgIHB1YmxpYyBJc0FueUVtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZXMuZm9yRWFjaCgoaXRtOiBMYW5ndWFnZU1vZGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0bSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVbaXRtLklzb0NvZGVdID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZVtpdG0uSXNvQ29kZV0gPT09ICcnIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVbaXRtLklzb0NvZGVdID09PSBudWxsXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcsO8ZnQgb2IgaW4gZWluZXIgYmVzdGltbXRlbiBTcHJhY2hlIGVpbiBXZXJ0IHZvcmhhbmRlbiBpc3QuXG4gICAgICogQHBhcmFtIHNwcmFjaGUgU3ByYWNoZSBpbiB3ZWxjaGVyIGRlciBXZXJ0IGdlcHLDvGZ0IHdlcmRlbiBzb2xsXG4gICAgICogQHJldHVybnMgV2VydCBpc3Qgdm9yaGFuZGVuXG4gICAgICovXG4gICAgcHVibGljIElzRW1wdHkoc3ByYWNoZTogTGFuZ3VhZ2VNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgLy8gRmFsbGJhY2sgZmFsbHMga2VpbmUgU2VsZWt0aWVydGUgU3ByYWNoZVxuICAgICAgICAgICAgaWYgKHNwcmFjaGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlW3NwcmFjaGUuSXNvQ29kZV0gPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVbc3ByYWNoZS5Jc29Db2RlXSA9PT0gJycgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlW3NwcmFjaGUuSXNvQ29kZV0gPT09IG51bGxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbGVrdGllcnQgZGllIFNwcmFjaGVcbiAgICAgKiBAcGFyYW0gbGFuZ3VhZ2UgU3ByYWNoZSBkaWUgc2VsZWt0aWVydCB3ZXJkZW4gc29sbFxuICAgICAqL1xuICAgIHB1YmxpYyBTZWxlY3RMYW5ndWFnZShsYW5ndWFnZTogTGFuZ3VhZ2VNb2RlbCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXR6dCBkZW4gV2VydCBmw7xyIGRpZSBha3R1ZWxsIGdld8OkaGx0ZSBTcHJhY2hlXG4gICAgICogQHBhcmFtIHZhbHVlIFdlcnQgd2VsY2hlciBnZXNldHp0IHdlcmRlbiBzb2xsXG4gICAgICovXG4gICAgcHVibGljIFNldExhbmd1YWdlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudElzb0NvZGU6IHN0cmluZyA9IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA/IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZS5Jc29Db2RlIDogbnVsbDtcblxuICAgICAgICAgICAgLy8gRmFsbGJhY2sgZmFsbHMga2VpbmUgU2VsZWt0aWVydGUgU3ByYWNoZVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRJc29Db2RlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnZhbHVlW2N1cnJlbnRJc29Db2RlXSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5fdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSB2YWxpZGllcnQsIG9iIGRlciBXZXJ0IGRlbiBnZWdlYmVuZW4gS3JpdGVyaWVuIGVudHNwcmljaHRcbiAgICAgKiBAcGFyYW0gYyBDb250cm9sIGRhcyB2YWxpZGllcnQgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGVycm9yID09PSBudWxsICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09ICcnICYmXG4gICAgICAgICAgICB0aGlzLmlzcmVxdWlyZWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdGhpcy5pc3JlcXVpcmVkID09PSB0cnVlXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLm11bHRpbGFuZ3VhZ2VSZXF1aXJlZChcbiAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlcyxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZFxuICAgICAgICAgICAgKShjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGVycm9yID09PSBudWxsICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09ICcnICYmXG4gICAgICAgICAgICB0aGlzLnJlcXVpcmVkYW55ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHRoaXMucmVxdWlyZWRhbnkgPT09IHRydWVcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ubXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55KFxuICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZGFueSxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkYW55XG4gICAgICAgICAgICApKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcbn1cbiJdfQ==
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvbXVsdGlsYW5ndWFnZS9tdWx0aWxhbmd1YWdlaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRTs7R0FFRztBQUVILE1BQU0sT0FBTywyQkFBNEIsU0FBUSxZQUFpQjtJQTBEOUQsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFBb0IsVUFBK0IsRUFBRSxRQUFrQjtRQUNuRSxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBbkVoQyxxQkFBcUI7UUFFckI7O1dBRUc7UUFDSyxjQUFTLEdBQW9CLEVBQUUsQ0FBQztRQUV4Qzs7V0FFRztRQUNLLHFCQUFnQixHQUFrQixJQUFJLENBQUM7UUFPL0M7O1dBRUc7UUFDYSxpQkFBWSxHQUFXLElBQUksQ0FBQztRQUU1Qzs7V0FFRztRQUNhLGtCQUFhLEdBQVcsSUFBSSxDQUFDO1FBRTdDOztXQUVHO1FBQ2EsZ0JBQVcs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QUFLOzBCQUtMLEtBQUs7d0NBS0wsS0FBSzsyQ0FLTCxLQUFLOytDQU1MLEtBQUs7a0RBT0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0lucHV0QmFzZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNlaW5wdXRjb250cm9sJztcbmltcG9ydCB7IEljb25UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvSWNvblR5cGUnO1xuaW1wb3J0IHsgSVNhY0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVNhY0xhbmd1YWdlU2VydmljZSc7XG5pbXBvcnQgeyBMYW5ndWFnZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xhbmd1YWdlbW9kZWwnO1xuaW1wb3J0IHsgU0FDTEFOR1VBR0VfU0VSVklDRSwgU2FjRGVmYXVsdExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NhYy1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIEluamVjdG9yLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIG11bHRpLWxhbmd1YWdlIGlucHV0IGNvbnRyb2xcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tbW9uIGV4dGVuZHMgU2FjSW5wdXRCYXNlPGFueT4ge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogTGFuZ3VhZ2VzIGZvciB0aGUgY29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgbGFuZ3VhZ2VzOiBMYW5ndWFnZU1vZGVsW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFNlbGVjdGVkIGxhbmd1YWdlIG9mIHRoZSBjb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZWxlY3RlZExhbmd1YWdlOiBMYW5ndWFnZU1vZGVsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZm9yIGVycm9yIGxvY2FsaXNhdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBsbmdMYW5ndWFnZVNlcnZpY2U6IElTYWNMYW5ndWFnZVNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgZml4ZWQgd2lkdGggZm9yIHRoZSBjb250cm9sLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb250cm9sd2lkdGg6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBNYXggbGVuZ3RoIG9mIGNoYXJhY3RlcnMgZm9yIGlucHV0IGZpZWxkXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIG1heHRleHRsZW5ndGg6IG51bWJlciA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBBY3RpdmF0ZXMgdmFsaWRhdG9yIHRoYXQgYXQgbGVhc3Qgb25lIGxhbmd1YWdlIG11c3QgYmUgcHJlc2VudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZGFueSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2Uga2V5IGZvciB2YWxpZGF0aW9uIG1lc3NhZ2UgcmVxdWlyZWQgYXQgY29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck11bHRpbGFuZ3VhZ2VSZXF1aXJlZDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIGtleSBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlIHJlcXVpcmVkIGFueSBsYW5ndWFnZSBhdCBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRhbnk6IHN0cmluZyA9XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55O1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2Uga2V5IGZvciB2YWxpZGF0aW9uIG1lc3NhZ2UgcmVxdWlyZWQgaW4gdmFsaWRhdGlvbiBzdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQ6IHN0cmluZyA9XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIGtleSBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlIHJlcXVpcmVkIGFueSBsYW5ndWFnZSBpbiB2YWxpZGF0aW9uIHN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZGFueTogc3RyaW5nID1cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55O1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XG5cbiAgICAgICAgdGhpcy5sbmdMYW5ndWFnZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDTEFOR1VBR0VfU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRMYW5ndWFnZVNlcnZpY2UoKSk7XG5cbiAgICAgICAgdGhpcy5sbmdMYW5ndWFnZVNlcnZpY2UuR2V0TGFuZ3VhZ2VzKCkuc3Vic2NyaWJlKChyZXN1bHQ6IExhbmd1YWdlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZXMgPSByZXN1bHQ7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmxhbmd1YWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gdGhpcy5sYW5ndWFnZXNbMF07XG4gICAgICAgICAgICAgICAgLy8gRXhlY3V0ZSBjb250cm9sIHZhbGlkYXRpb24sIHNpbmNlIHRoZSB2YWx1ZSBtYXkgYWxyZWFkeSBiZSBzZXRcbiAgICAgICAgICAgICAgICB0aGlzLlVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHZhbHVlIGZvciB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGxhbmd1YWdlXG4gICAgICovXG4gICAgcHVibGljIGdldCBMYW5ndWFnZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXNvQ29kZTogc3RyaW5nID0gdGhpcy5zZWxlY3RlZExhbmd1YWdlID8gdGhpcy5zZWxlY3RlZExhbmd1YWdlLklzb0NvZGUgOiBudWxsO1xuXG4gICAgICAgICAgICAvLyBGYWxsYmFjayBpZiBubyBzZWxlY3RlZCBsYW5ndWFnZVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRJc29Db2RlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy52YWx1ZVtjdXJyZW50SXNvQ29kZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVbY3VycmVudElzb0NvZGVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29sbGVjdGlvbiBvZiBsYW5ndWFnZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IExhbmd1YWdlcygpOiBMYW5ndWFnZU1vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgaWNvbiBvZiB0aGUgc2VsZWN0ZWQgbGFuZ3VhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IFNlbGVjdGVkSWNvbigpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZExhbmd1YWdlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZExhbmd1YWdlLkljb247XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBpY29uIHR5cGUgZm9yIHRoZSBzZWxlY3RlZCBsYW5ndWFnZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgU2VsZWN0ZWRJY29uVHlwZSgpOiBJY29uVHlwZSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UuSWNvblR5cGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gSWNvblR5cGUuSW1hZ2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBDaGVja3Mgd2hldGhlciBubyB2YWx1ZSBpcyBkZWZpbmVkIGluIGFueSBsYW5ndWFnZVxuICAgICAqIEByZXR1cm5zIFRydWUgaWYgYW4gZW1wdHkgdmFsdWUgaXMgcHJlc2VudFxuICAgICAqL1xuICAgIHB1YmxpYyBJc0FueUVtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZXMuZm9yRWFjaCgoaXRtOiBMYW5ndWFnZU1vZGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0bSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVbaXRtLklzb0NvZGVdID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZVtpdG0uSXNvQ29kZV0gPT09ICcnIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVbaXRtLklzb0NvZGVdID09PSBudWxsXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3Mgd2hldGhlciBhIHZhbHVlIGV4aXN0cyBmb3IgYSBzcGVjaWZpYyBsYW5ndWFnZS5cbiAgICAgKiBAcGFyYW0gc3ByYWNoZSBMYW5ndWFnZSBpbiB3aGljaCB0aGUgdmFsdWUgc2hvdWxkIGJlIGNoZWNrZWRcbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB2YWx1ZSBpcyBwcmVzZW50XG4gICAgICovXG4gICAgcHVibGljIElzRW1wdHkoc3ByYWNoZTogTGFuZ3VhZ2VNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgLy8gRmFsbGJhY2sgaWYgbm8gc2VsZWN0ZWQgbGFuZ3VhZ2VcbiAgICAgICAgICAgIGlmIChzcHJhY2hlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZVtzcHJhY2hlLklzb0NvZGVdID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlW3NwcmFjaGUuSXNvQ29kZV0gPT09ICcnIHx8XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZVtzcHJhY2hlLklzb0NvZGVdID09PSBudWxsXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3RzIHRoZSBsYW5ndWFnZVxuICAgICAqIEBwYXJhbSBsYW5ndWFnZSBMYW5ndWFnZSB0byBzZWxlY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgU2VsZWN0TGFuZ3VhZ2UobGFuZ3VhZ2U6IExhbmd1YWdlTW9kZWwpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gbGFuZ3VhZ2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdmFsdWUgZm9yIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgbGFuZ3VhZ2VcbiAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gc2V0XG4gICAgICovXG4gICAgcHVibGljIFNldExhbmd1YWdlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudElzb0NvZGU6IHN0cmluZyA9IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA/IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZS5Jc29Db2RlIDogbnVsbDtcblxuICAgICAgICAgICAgLy8gRmFsbGJhY2sgaWYgbm8gc2VsZWN0ZWQgbGFuZ3VhZ2VcbiAgICAgICAgICAgIGlmIChjdXJyZW50SXNvQ29kZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy52YWx1ZVtjdXJyZW50SXNvQ29kZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB2YWxpZGF0ZXMgd2hldGhlciB0aGUgdmFsdWUgbWVldHMgdGhlIGdpdmVuIGNyaXRlcmlhXG4gICAgICogQHBhcmFtIGMgQ29udHJvbCB0aGF0IGlzIHZhbGlkYXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGVycm9yID09PSBudWxsICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09ICcnICYmXG4gICAgICAgICAgICB0aGlzLmlzcmVxdWlyZWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdGhpcy5pc3JlcXVpcmVkID09PSB0cnVlXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLm11bHRpbGFuZ3VhZ2VSZXF1aXJlZChcbiAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlcyxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZFxuICAgICAgICAgICAgKShjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGVycm9yID09PSBudWxsICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09ICcnICYmXG4gICAgICAgICAgICB0aGlzLnJlcXVpcmVkYW55ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHRoaXMucmVxdWlyZWRhbnkgPT09IHRydWVcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ubXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55KFxuICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZGFueSxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkYW55XG4gICAgICAgICAgICApKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcbn1cbiJdfQ==
|