@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
|
@@ -6,7 +6,7 @@ import { SacFormLayoutCommon } from '../layout/formlayout';
|
|
|
6
6
|
import { TinyMceDialogSettings } from './tinymcedialogsettings';
|
|
7
7
|
import { Directive, EventEmitter, Host, Injector, Input, NgZone, Output } from '@angular/core';
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Base component for TinyMCE Editor
|
|
10
10
|
*/
|
|
11
11
|
export class SacTinyMceCommon extends SacBaseModelControl {
|
|
12
12
|
// #endregion Properties
|
|
@@ -22,7 +22,7 @@ export class SacTinyMceCommon extends SacBaseModelControl {
|
|
|
22
22
|
this.ngZone = ngZone;
|
|
23
23
|
// #region Properties
|
|
24
24
|
/**
|
|
25
|
-
* Default
|
|
25
|
+
* Default config with standard values for TinyMCE
|
|
26
26
|
*/
|
|
27
27
|
this.baseConfig = {
|
|
28
28
|
base_url: '/tinymce',
|
|
@@ -34,71 +34,71 @@ export class SacTinyMceCommon extends SacBaseModelControl {
|
|
|
34
34
|
save_onsavecallback: () => { },
|
|
35
35
|
};
|
|
36
36
|
/**
|
|
37
|
-
* TinyMCE
|
|
37
|
+
* TinyMCE config
|
|
38
38
|
*/
|
|
39
39
|
this._config = {};
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* Allows deleting files in the file browser
|
|
42
42
|
*/
|
|
43
43
|
this.allowfiledelete = false;
|
|
44
44
|
/**
|
|
45
|
-
*
|
|
45
|
+
* Allows renaming files in the file browser
|
|
46
46
|
*/
|
|
47
47
|
this.allowfilerename = false;
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
49
|
+
* Allows uploading files in the file browser
|
|
50
50
|
*/
|
|
51
51
|
this.allowfileupload = false;
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
53
|
+
* Allows creating a folder in the file browser
|
|
54
54
|
*/
|
|
55
55
|
this.allowfoldercreate = false;
|
|
56
56
|
/**
|
|
57
|
-
*
|
|
57
|
+
* Allows deleting a folder in the file browser
|
|
58
58
|
*/
|
|
59
59
|
this.allowfolderdelete = false;
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
61
|
+
* Allows renaming a folder in the file browser
|
|
62
62
|
*/
|
|
63
63
|
this.allowfolderrename = false;
|
|
64
64
|
/**
|
|
65
|
-
* URL
|
|
65
|
+
* URL to file browser backend
|
|
66
66
|
*/
|
|
67
67
|
this.filebrowserapiurl = null;
|
|
68
68
|
/**
|
|
69
|
-
* File
|
|
69
|
+
* File extensions for links (Format: .xxx,.yyy,.eee)
|
|
70
70
|
*/
|
|
71
71
|
this.filetypesfiles = '';
|
|
72
72
|
/**
|
|
73
|
-
* File
|
|
73
|
+
* File extensions for images (Format: .xxx,.yyy,.eee)
|
|
74
74
|
*/
|
|
75
75
|
this.filetypesimages = '.gif,.jpeg,.jpg,.png,.tif,.tiff,.bmp';
|
|
76
76
|
/**
|
|
77
|
-
* File
|
|
77
|
+
* File extensions for media (Format: .xxx,.yyy,.eee)
|
|
78
78
|
*/
|
|
79
79
|
this.filetypesvideo = '.mp4,.m4v,.ogv,.webm,.mov';
|
|
80
80
|
/**
|
|
81
|
-
*
|
|
81
|
+
* Height of the editor
|
|
82
82
|
*/
|
|
83
83
|
this.height = undefined;
|
|
84
84
|
/**
|
|
85
|
-
*
|
|
85
|
+
* Defines the control as required
|
|
86
86
|
*/
|
|
87
87
|
this.isrequired = false;
|
|
88
88
|
/**
|
|
89
|
-
* Event
|
|
89
|
+
* Event when save action is triggered in TinyMCE
|
|
90
90
|
*/
|
|
91
91
|
this.onsave = new EventEmitter();
|
|
92
92
|
/**
|
|
93
|
-
*
|
|
93
|
+
* The select dialog is displayed
|
|
94
94
|
*/
|
|
95
95
|
this.selectdialogvisible = false;
|
|
96
96
|
/**
|
|
97
|
-
* Resource
|
|
97
|
+
* Resource key for validation message required at control
|
|
98
98
|
*/
|
|
99
99
|
this.validationmessagerequired = this.validationKeyService.ValidationErrorRequired;
|
|
100
100
|
/**
|
|
101
|
-
* Resource
|
|
101
|
+
* Resource key for validation message required in validation summary
|
|
102
102
|
*/
|
|
103
103
|
this.validationmessagesummaryrequired = this.validationKeyService.ValidationErrorSummaryRequired;
|
|
104
104
|
this.validationKeyService = injector.get(SACVALIDATIONKEY_SERVICE, new SacDefaultValidationKeyService());
|
|
@@ -108,13 +108,13 @@ export class SacTinyMceCommon extends SacBaseModelControl {
|
|
|
108
108
|
// #endregion Constructors
|
|
109
109
|
// #region Public Getters And Setters
|
|
110
110
|
/**
|
|
111
|
-
* TinyMCE
|
|
111
|
+
* TinyMCE configuration
|
|
112
112
|
*/
|
|
113
113
|
get config() {
|
|
114
114
|
return this._config;
|
|
115
115
|
}
|
|
116
116
|
/**
|
|
117
|
-
* TinyMCE
|
|
117
|
+
* TinyMCE configuration
|
|
118
118
|
* @link https://www.tiny.cloud/docs/configure/
|
|
119
119
|
*/
|
|
120
120
|
set config(v) {
|
|
@@ -129,20 +129,20 @@ export class SacTinyMceCommon extends SacBaseModelControl {
|
|
|
129
129
|
this.propagateTouch();
|
|
130
130
|
}
|
|
131
131
|
/**
|
|
132
|
-
*
|
|
132
|
+
* Closes the file selection dialog
|
|
133
133
|
*/
|
|
134
134
|
closeSelectDialog() {
|
|
135
135
|
this.selectdialogvisible = false;
|
|
136
136
|
}
|
|
137
137
|
/**
|
|
138
|
-
*
|
|
139
|
-
* @param content Content
|
|
138
|
+
* Triggers the save action
|
|
139
|
+
* @param content Content as string
|
|
140
140
|
*/
|
|
141
141
|
save(content) {
|
|
142
142
|
this.onsave.emit(content);
|
|
143
143
|
}
|
|
144
144
|
/**
|
|
145
|
-
*
|
|
145
|
+
* Sets the result from the file selection dialog
|
|
146
146
|
*/
|
|
147
147
|
setSelectDialogResult() {
|
|
148
148
|
if (this.selectDialogSettings.value) {
|
|
@@ -154,10 +154,10 @@ export class SacTinyMceCommon extends SacBaseModelControl {
|
|
|
154
154
|
this.closeSelectDialog();
|
|
155
155
|
}
|
|
156
156
|
/**
|
|
157
|
-
*
|
|
158
|
-
* @param callback Callback
|
|
159
|
-
* @param value
|
|
160
|
-
* @param meta Meta
|
|
157
|
+
* Shows the file selection dialog
|
|
158
|
+
* @param callback Callback method which is called when the dialog is closed
|
|
159
|
+
* @param value Value from the file dialog
|
|
160
|
+
* @param meta Meta data for the file
|
|
161
161
|
*/
|
|
162
162
|
showSelectDialog(callback, value, meta) {
|
|
163
163
|
this.settings.angular.ngZone.runOutsideAngular(() => {
|
|
@@ -185,9 +185,9 @@ export class SacTinyMceCommon extends SacBaseModelControl {
|
|
|
185
185
|
});
|
|
186
186
|
}
|
|
187
187
|
/**
|
|
188
|
-
*
|
|
189
|
-
* @param c Control
|
|
190
|
-
* @returns
|
|
188
|
+
* Validates the control
|
|
189
|
+
* @param c Control instance that is validated
|
|
190
|
+
* @returns Returns an error message or NULL
|
|
191
191
|
*/
|
|
192
192
|
validateData(c) {
|
|
193
193
|
let error = null;
|
|
@@ -199,8 +199,8 @@ export class SacTinyMceCommon extends SacBaseModelControl {
|
|
|
199
199
|
// #endregion Public Methods
|
|
200
200
|
// #region Private Methods
|
|
201
201
|
/**
|
|
202
|
-
*
|
|
203
|
-
* @returns
|
|
202
|
+
* Returns the TinyMCE settings that are generated from the properties of the Angular components
|
|
203
|
+
* @returns Object with settings
|
|
204
204
|
*/
|
|
205
205
|
getDynamicSettings() {
|
|
206
206
|
let settings = {
|
|
@@ -236,4 +236,4 @@ SacTinyMceCommon.propDecorators = {
|
|
|
236
236
|
validationmessagesummaryrequired: [{ type: Input }],
|
|
237
237
|
config: [{ type: Input }]
|
|
238
238
|
};
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlueW1jZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3RpbnltY2UvdGlueW1jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRjs7R0FFRztBQUVILE1BQU0sT0FBZ0IsZ0JBQWlCLFNBQVEsbUJBQTJCO0lBa0l0RSx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7OztPQUtHO0lBQ0gsWUFBb0IsVUFBK0IsRUFBRSxRQUFrQixFQUFZLE1BQWM7UUFDN0YsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQURtRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBM0lqRyxxQkFBcUI7UUFFckI7O1dBRUc7UUFDSyxlQUFVLEdBQVE7WUFDdEIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsTUFBTSxFQUFFLE1BQU07WUFDZCxR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bnQiOlsiaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sJztcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XG5pbXBvcnQgeyBTQUNMT0NBTElTQVRJT05fU0VSVklDRSwgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLCBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NhYy1sb2NhbGlzYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgVGlueU1jZURpYWxvZ1NldHRpbmdzIH0gZnJvbSAnLi90aW55bWNlZGlhbG9nc2V0dGluZ3MnO1xuaW1wb3J0IHsgVGlueU1jZURpYWxvZ1NldHRpbmdzTWV0YSB9IGZyb20gJy4vdGlueW1jZWRpYWxvZ3NldHRpbmdzbWV0YSc7XG5pbXBvcnQgeyBUaW55TWNlSW5zdGFuY2UgfSBmcm9tICcuL3RpbnltY2VpbnN0YW5jZSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdCwgSW5qZWN0b3IsIElucHV0LCBOZ1pvbmUsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIEJhc2lzIEtvbXBvbmVudGUgZsO8ciBUaW55TUNFIEVkaXRvclxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNUaW55TWNlQ29tbW9uIGV4dGVuZHMgU2FjQmFzZU1vZGVsQ29udHJvbDxzdHJpbmc+IHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIERlZmF1bHQgQ29uZmlnIG1pdCBTdGFuZGFyZHdlcnRlbiBmw7xyIFRpbnlNQ0VcbiAgICAgKi9cbiAgICBwcml2YXRlIGJhc2VDb25maWc6IGFueSA9IHtcbiAgICAgICAgYmFzZV91cmw6ICcvdGlueW1jZScsXG4gICAgICAgIHN1ZmZpeDogJy5taW4nLFxuICAgICAgICBicmFuZGluZzogZmFsc2UsXG4gICAgICAgIGFuZ3VsYXI6IHRoaXMsXG4gICAgICAgIGZpbGVfcGlja2VyX3R5cGVzOiAnZmlsZSBtZWRpYSBpbWFnZScsXG4gICAgICAgIGZpbGVfcGlja2VyX2NhbGxiYWNrOiB0aGlzLnNob3dTZWxlY3REaWFsb2csXG4gICAgICAgIHNhdmVfb25zYXZlY2FsbGJhY2s6ICgpID0+IHt9LFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUaW55TUNFIENvbmZpZ1xuICAgICAqL1xuICAgIHB1YmxpYyBfY29uZmlnOiBhbnkgPSB7fTtcblxuICAgIC8qKlxuICAgICAqIEVybGF1YnQgaW0gRmlsZWJyb3dzZXIgZGFzIGzDtnNjaGVuIHZvbiBEYXRlaWVuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dmaWxlZGVsZXRlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFcmxhdWJ0IGltIEZpbGVicm93c2VyIGRhcyB1bWJlbm5lbiB2b24gRGF0ZWllblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93ZmlsZXJlbmFtZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRXJsYXVidCBpbSBGaWxlYnJvd3NlciBkYXMgaG9jaGxhZGVuIHZvbiBGaWxlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93ZmlsZXVwbG9hZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRXJsYXVidCBpbSBGaWxlYnJvd3NlciBkYXMgYW5sZWdlbiBlaW5lcyBPcmRuZXJzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dmb2xkZXJjcmVhdGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEVybGF1YnQgaW0gRmlsZWJyb3dzZXIgZGFzIGzDtnNjaGVuIGVpbmVzIE9yZG5lcnNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbGxvd2ZvbGRlcmRlbGV0ZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRXJsYXVidCBpbSBGaWxlYnJvd3NlciBkYXMgdW1iZW5uZW4gZWluZXMgT3JkbmVyc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93Zm9sZGVycmVuYW1lID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBVUkwgenUgRmlsZWJyb3dzZXIgQmFja2VuZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbGVicm93c2VyYXBpdXJsOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogRmlsZSBFeHRlbnNpb25zIGbDvHIgTGlua3MgKEZvcm1hdDogLnh4eCwueXl5LC5lZWUpXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsZXR5cGVzZmlsZXMgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEZpbGUgRXh0ZW5zaW9ucyBmw7xyIEltYWdlcyAoRm9ybWF0OiAueHh4LC55eXksLmVlZSlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWxldHlwZXNpbWFnZXMgPSAnLmdpZiwuanBlZywuanBnLC5wbmcsLnRpZiwudGlmZiwuYm1wJztcblxuICAgIC8qKlxuICAgICAqIEZpbGUgRXh0ZW5zaW9ucyBmw7xyIE1lZGlhIChGb3JtYXQ6IC54eHgsLnl5eSwuZWVlKVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbGV0eXBlc3ZpZGVvID0gJy5tcDQsLm00diwub2d2LC53ZWJtLC5tb3YnO1xuXG4gICAgLyoqXG4gICAgICogSMO2aGUgZGVzIEVkaXRvcnNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBoZWlnaHQ6IHN0cmluZyA9IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBTZXJ2aWNlIGbDvHIgRXJyb3IgTG9jYWxpc2F0aW9uXG4gICAgICovXG4gICAgcHVibGljIGxuZ1Jlc291cmNlU2VydmljZTogSVNhY0xvY2FsaXNhdGlvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3ZW5uIFNhdmUgQWN0aW9uIGluIFRpbnlNQ0UgYXVzZ2Vsw7ZzdCB3aXJkXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uc2F2ZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKlxuICAgICAqIFNldHRpbmdzIEluc3RhbnogZsO8ciBEaWFsb2dcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0RGlhbG9nU2V0dGluZ3M6IFRpbnlNY2VEaWFsb2dTZXR0aW5ncztcblxuICAgIC8qKlxuICAgICAqIERlciBTZWxlY3QgRGlhbG9nIHdpcmQgYW5nZXplaWd0XG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdGRpYWxvZ3Zpc2libGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEluc3RhbnogYXVmIFRpbnlNQ0UgU2V0dGluZ3MuIFdpcmQgZHVyY2ggVGlueU1DRSBnZXNldHp0IHVuZCB3aXJkIGbDvHIgZGVuIENhbGxiYWNrIGRlcyBEaWFsb2cgYmVuw7Z0aWd0XG4gICAgICovXG4gICAgcHVibGljIHNldHRpbmdzOiBUaW55TWNlSW5zdGFuY2U7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqIEBwYXJhbSBuZ1pvbmUgbmd6b25lIGZvciBoYW5kbGluZyBleHRlcm5hbCBqYXZhc2NyaXB0c1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKEBIb3N0KCkgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbiwgaW5qZWN0b3I6IEluamVjdG9yLCBwcm90ZWN0ZWQgbmdab25lOiBOZ1pvbmUpIHtcbiAgICAgICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IpO1xuXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlKCkpO1xuXG4gICAgICAgIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsXG4gICAgICAgICAgICBuZXcgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UodGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNvbmZpZyA9IHt9O1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBUaW55TUNFIEtvbmZpZ3VyYXRpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRpbnlNQ0UgS29uZmlndXJhdGlvblxuICAgICAqIEBsaW5rIGh0dHBzOi8vd3d3LnRpbnkuY2xvdWQvZG9jcy9jb25maWd1cmUvXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGNvbmZpZyh2OiBhbnkpIHtcbiAgICAgICAgdGhpcy5fY29uZmlnID0ge1xuICAgICAgICAgICAgLi4udGhpcy5nZXREeW5hbWljU2V0dGluZ3MoKSxcbiAgICAgICAgICAgIC4uLnRoaXMuYmFzZUNvbmZpZyxcbiAgICAgICAgICAgIC4uLnRoaXMub3ZlcndyaXRlRGVmYXVsdFNldHRpbmdzKCksXG4gICAgICAgICAgICAuLi52LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIGV2ZW50IHdoZW4gY29udHJvbCBpcyB0b3VjaGVkXG4gICAgICovXG4gICAgcHVibGljIGJsdXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2goKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTY2hsaWVzc3QgZGVuIERhdGVpYXVzd2FobCBEaWFsb2dcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2VTZWxlY3REaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZGlhbG9ndmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCBzZXR0aW5ncyBpbiBlZmZlY3RpdmUgaW1wbGVtZW50YXRpb24gdGhhdCBvdmVyd3JpdGVzIHRoZSBkZWZhdWx0cy4gdXNlIHt9IGZvciBub24gb3ZlcndyaXRlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3Qgb3ZlcndyaXRlRGVmYXVsdFNldHRpbmdzKCk6IGFueTtcblxuICAgIC8qKlxuICAgICAqIEzDtnN0IGRpZSBTcGVpY2hlcm4gQWN0aW9uIGF1c1xuICAgICAqIEBwYXJhbSBjb250ZW50IENvbnRlbnQgYWxzIFN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBzYXZlKGNvbnRlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uc2F2ZS5lbWl0KGNvbnRlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHp0IGRhcyBSZXN1bHRhdCBhdXMgZGVtIERhdGVpYXVzd2FobCBEaWFsb2dcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0U2VsZWN0RGlhbG9nUmVzdWx0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3REaWFsb2dTZXR0aW5ncy52YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0RGlhbG9nU2V0dGluZ3MudmFsdWUuc3RhcnRzV2l0aCgnLycpIHx8IHRoaXMuc2VsZWN0RGlhbG9nU2V0dGluZ3MudmFsdWUuc3RhcnRzV2l0aCgnXFxcXCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3REaWFsb2dTZXR0aW5ncy52YWx1ZSA9IHRoaXMuc2VsZWN0RGlhbG9nU2V0dGluZ3MudmFsdWUuc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdERpYWxvZ1NldHRpbmdzLmNhbGxiYWNrKHRoaXMuc2VsZWN0RGlhbG9nU2V0dGluZ3MudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbG9zZVNlbGVjdERpYWxvZygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFplaWd0IGRlbiBEYXRlaWF1c3dhaGwgRGlhbG9nIGFuXG4gICAgICogQHBhcmFtIGNhbGxiYWNrIENhbGxiYWNrIE1ldGhvZGUgd2VsY2hlIGF1ZmdlcnVmZW4gd2lyZCwgd2VubiBkZXIgRGlhbG9nIGdlc2NobG9zc2VuIHdpcmRcbiAgICAgKiBAcGFyYW0gdmFsdWUgV2VydCBhdXMgZGVtIERhdGVpIERpYWxvZ1xuICAgICAqIEBwYXJhbSBtZXRhIE1ldGEgRGF0ZW4genVyIERhdGVpXG4gICAgICovXG4gICAgcHVibGljIHNob3dTZWxlY3REaWFsb2coY2FsbGJhY2ssIHZhbHVlOiBzdHJpbmcsIG1ldGE6IFRpbnlNY2VEaWFsb2dTZXR0aW5nc01ldGEpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5hbmd1bGFyLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzLmFuZ3VsYXIubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5hbmd1bGFyLnNlbGVjdGRpYWxvZ3Zpc2libGUgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgLy8gU2V0IERpYWxvZyBTZXR0aW5nc1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MuYW5ndWxhci5zZWxlY3REaWFsb2dTZXR0aW5ncyA9IG5ldyBUaW55TWNlRGlhbG9nU2V0dGluZ3Moe1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2ssXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgbWV0YTogbWV0YSxcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dlZHR5cGVzOiAnJyxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHN3aXRjaCAobWV0YS5maWxldHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdpbWFnZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmdzLmFuZ3VsYXIuc2VsZWN0RGlhbG9nU2V0dGluZ3MuYWxsb3dlZHR5cGVzID0gdGhpcy5zZXR0aW5ncy5hbmd1bGFyLmZpbGV0eXBlc2ltYWdlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdtZWRpYSc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmdzLmFuZ3VsYXIuc2VsZWN0RGlhbG9nU2V0dGluZ3MuYWxsb3dlZHR5cGVzID0gdGhpcy5zZXR0aW5ncy5hbmd1bGFyLmZpbGV0eXBlc3ZpZGVvO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmdzLmFuZ3VsYXIuc2VsZWN0RGlhbG9nU2V0dGluZ3MuYWxsb3dlZHR5cGVzID0gdGhpcy5zZXR0aW5ncy5hbmd1bGFyLmZpbGV0eXBlc2ZpbGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkaWVydCBkYXMgQ29udHJvbFxuICAgICAqIEBwYXJhbSBjIENvbnRyb2wgSW5zdGFueiBkaWUgdmFsZGlkaWVydCB3aXJkXG4gICAgICogQHJldHVybnMgR2lidCBlaW5lIEZlaGxlcm1lbGR1bmcgb2RlciBOVUxMIHp1csO8Y2tcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgICAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcblxuICAgICAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ucmVxdWlyZWQodGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLCB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkKShjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogR2lidCBkaWUgVGlueU1DRSBTZXR0aW5ncyB6dXLDvGNrLCBkaWUgYXVzIGRlbiBQcm9wZXJ0aWVzIGRlciBBbmd1bGFyIEtvbXBvbmVudGVuIGVyemV1Z3Qgd2VyZGVuXG4gICAgICogQHJldHVybnMgT2JqZWt0IG1pdCBTZXR0aW5nc1xuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0RHluYW1pY1NldHRpbmdzKCk6IGFueSB7XG4gICAgICAgIGxldCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnIycgKyB0aGlzLm5hbWUgKyAnX3RpbnltY2UnLFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gc2V0dGluZ3M7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcbn1cbiJdfQ==
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlueW1jZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3RpbnltY2UvdGlueW1jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRjs7R0FFRztBQUVILE1BQU0sT0FBZ0IsZ0JBQWlCLFNBQVEsbUJBQTJCO0lBa0l0RSx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7OztPQUtHO0lBQ0gsWUFDWSxVQUErQixFQUN2QyxRQUFrQixFQUNSLE1BQWM7UUFFeEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUZsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBOUk1QixxQkFBcUI7UUFFckI7O1dBRUc7UUFDSyxlQUFVLEdBQVE7WUFDdEIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsTUFBTSxFQUFFLE1BQU07WUFDZCxR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dGVudCI6WyJpbXBvcnQgeyBTYWNCYXNlTW9kZWxDb250cm9sIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2Vtb2RlbGNvbnRyb2wnO1xuaW1wb3J0IHsgSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lTYWNMb2NhbGlzYXRpb25TZXJ2aWNlJztcbmltcG9ydCB7IFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLCBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsIFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FjLWxvY2FsaXNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dCc7XG5pbXBvcnQgeyBUaW55TWNlRGlhbG9nU2V0dGluZ3MgfSBmcm9tICcuL3RpbnltY2VkaWFsb2dzZXR0aW5ncyc7XG5pbXBvcnQgeyBUaW55TWNlRGlhbG9nU2V0dGluZ3NNZXRhIH0gZnJvbSAnLi90aW55bWNlZGlhbG9nc2V0dGluZ3NtZXRhJztcbmltcG9ydCB7IFRpbnlNY2VJbnN0YW5jZSB9IGZyb20gJy4vdGlueW1jZWluc3RhbmNlJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0LCBJbmplY3RvciwgSW5wdXQsIE5nWm9uZSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogQmFzZSBjb21wb25lbnQgZm9yIFRpbnlNQ0UgRWRpdG9yXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY1RpbnlNY2VDb21tb24gZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPHN0cmluZz4ge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogRGVmYXVsdCBjb25maWcgd2l0aCBzdGFuZGFyZCB2YWx1ZXMgZm9yIFRpbnlNQ0VcbiAgICAgKi9cbiAgICBwcml2YXRlIGJhc2VDb25maWc6IGFueSA9IHtcbiAgICAgICAgYmFzZV91cmw6ICcvdGlueW1jZScsXG4gICAgICAgIHN1ZmZpeDogJy5taW4nLFxuICAgICAgICBicmFuZGluZzogZmFsc2UsXG4gICAgICAgIGFuZ3VsYXI6IHRoaXMsXG4gICAgICAgIGZpbGVfcGlja2VyX3R5cGVzOiAnZmlsZSBtZWRpYSBpbWFnZScsXG4gICAgICAgIGZpbGVfcGlja2VyX2NhbGxiYWNrOiB0aGlzLnNob3dTZWxlY3REaWFsb2csXG4gICAgICAgIHNhdmVfb25zYXZlY2FsbGJhY2s6ICgpID0+IHt9LFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUaW55TUNFIGNvbmZpZ1xuICAgICAqL1xuICAgIHB1YmxpYyBfY29uZmlnOiBhbnkgPSB7fTtcblxuICAgIC8qKlxuICAgICAqIEFsbG93cyBkZWxldGluZyBmaWxlcyBpbiB0aGUgZmlsZSBicm93c2VyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dmaWxlZGVsZXRlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBbGxvd3MgcmVuYW1pbmcgZmlsZXMgaW4gdGhlIGZpbGUgYnJvd3NlclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93ZmlsZXJlbmFtZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQWxsb3dzIHVwbG9hZGluZyBmaWxlcyBpbiB0aGUgZmlsZSBicm93c2VyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dmaWxldXBsb2FkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBbGxvd3MgY3JlYXRpbmcgYSBmb2xkZXIgaW4gdGhlIGZpbGUgYnJvd3NlclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93Zm9sZGVyY3JlYXRlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBbGxvd3MgZGVsZXRpbmcgYSBmb2xkZXIgaW4gdGhlIGZpbGUgYnJvd3NlclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93Zm9sZGVyZGVsZXRlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBbGxvd3MgcmVuYW1pbmcgYSBmb2xkZXIgaW4gdGhlIGZpbGUgYnJvd3NlclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93Zm9sZGVycmVuYW1lID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBVUkwgdG8gZmlsZSBicm93c2VyIGJhY2tlbmRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWxlYnJvd3NlcmFwaXVybDogc3RyaW5nID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIEZpbGUgZXh0ZW5zaW9ucyBmb3IgbGlua3MgKEZvcm1hdDogLnh4eCwueXl5LC5lZWUpXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsZXR5cGVzZmlsZXMgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEZpbGUgZXh0ZW5zaW9ucyBmb3IgaW1hZ2VzIChGb3JtYXQ6IC54eHgsLnl5eSwuZWVlKVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbGV0eXBlc2ltYWdlcyA9ICcuZ2lmLC5qcGVnLC5qcGcsLnBuZywudGlmLC50aWZmLC5ibXAnO1xuXG4gICAgLyoqXG4gICAgICogRmlsZSBleHRlbnNpb25zIGZvciBtZWRpYSAoRm9ybWF0OiAueHh4LC55eXksLmVlZSlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWxldHlwZXN2aWRlbyA9ICcubXA0LC5tNHYsLm9ndiwud2VibSwubW92JztcblxuICAgIC8qKlxuICAgICAqIEhlaWdodCBvZiB0aGUgZWRpdG9yXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGVpZ2h0OiBzdHJpbmcgPSB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBjb250cm9sIGFzIHJlcXVpcmVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXNyZXF1aXJlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU2VydmljZSBmb3IgZXJyb3IgbG9jYWxpc2F0aW9uXG4gICAgICovXG4gICAgcHVibGljIGxuZ1Jlc291cmNlU2VydmljZTogSVNhY0xvY2FsaXNhdGlvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3aGVuIHNhdmUgYWN0aW9uIGlzIHRyaWdnZXJlZCBpbiBUaW55TUNFXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uc2F2ZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKlxuICAgICAqIFNldHRpbmdzIGluc3RhbmNlIGZvciBkaWFsb2dcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0RGlhbG9nU2V0dGluZ3M6IFRpbnlNY2VEaWFsb2dTZXR0aW5ncztcblxuICAgIC8qKlxuICAgICAqIFRoZSBzZWxlY3QgZGlhbG9nIGlzIGRpc3BsYXllZFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3RkaWFsb2d2aXNpYmxlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBJbnN0YW5jZSBvbiBUaW55TUNFIHNldHRpbmdzLiBTZXQgYnkgVGlueU1DRSBhbmQgbmVlZGVkIGZvciB0aGUgZGlhbG9nIGNhbGxiYWNrXG4gICAgICovXG4gICAgcHVibGljIHNldHRpbmdzOiBUaW55TWNlSW5zdGFuY2U7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBrZXkgZm9yIHZhbGlkYXRpb24gbWVzc2FnZSByZXF1aXJlZCBhdCBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBrZXkgZm9yIHZhbGlkYXRpb24gbWVzc2FnZSByZXF1aXJlZCBpbiB2YWxpZGF0aW9uIHN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqIEBwYXJhbSBuZ1pvbmUgbmd6b25lIGZvciBoYW5kbGluZyBleHRlcm5hbCBqYXZhc2NyaXB0c1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASG9zdCgpIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJvdGVjdGVkIG5nWm9uZTogTmdab25lXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcblxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSgpKTtcblxuICAgICAgICB0aGlzLmxuZ1Jlc291cmNlU2VydmljZSA9IGluamVjdG9yLmdldChcbiAgICAgICAgICAgIFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLFxuICAgICAgICAgICAgbmV3IFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlKHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5jb25maWcgPSB7fTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogVGlueU1DRSBjb25maWd1cmF0aW9uXG4gICAgICovXG4gICAgcHVibGljIGdldCBjb25maWcoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaW55TUNFIGNvbmZpZ3VyYXRpb25cbiAgICAgKiBAbGluayBodHRwczovL3d3dy50aW55LmNsb3VkL2RvY3MvY29uZmlndXJlL1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBjb25maWcodjogYW55KSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0RHluYW1pY1NldHRpbmdzKCksXG4gICAgICAgICAgICAuLi50aGlzLmJhc2VDb25maWcsXG4gICAgICAgICAgICAuLi50aGlzLm92ZXJ3cml0ZURlZmF1bHRTZXR0aW5ncygpLFxuICAgICAgICAgICAgLi4udixcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBldmVudCB3aGVuIGNvbnRyb2wgaXMgdG91Y2hlZFxuICAgICAqL1xuICAgIHB1YmxpYyBibHVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2VzIHRoZSBmaWxlIHNlbGVjdGlvbiBkaWFsb2dcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2VTZWxlY3REaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZGlhbG9ndmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCBzZXR0aW5ncyBpbiBlZmZlY3RpdmUgaW1wbGVtZW50YXRpb24gdGhhdCBvdmVyd3JpdGVzIHRoZSBkZWZhdWx0cy4gdXNlIHt9IGZvciBub24gb3ZlcndyaXRlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3Qgb3ZlcndyaXRlRGVmYXVsdFNldHRpbmdzKCk6IGFueTtcblxuICAgIC8qKlxuICAgICAqIFRyaWdnZXJzIHRoZSBzYXZlIGFjdGlvblxuICAgICAqIEBwYXJhbSBjb250ZW50IENvbnRlbnQgYXMgc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIHNhdmUoY29udGVudDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25zYXZlLmVtaXQoY29udGVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgcmVzdWx0IGZyb20gdGhlIGZpbGUgc2VsZWN0aW9uIGRpYWxvZ1xuICAgICAqL1xuICAgIHB1YmxpYyBzZXRTZWxlY3REaWFsb2dSZXN1bHQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdERpYWxvZ1NldHRpbmdzLnZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3REaWFsb2dTZXR0aW5ncy52YWx1ZS5zdGFydHNXaXRoKCcvJykgfHwgdGhpcy5zZWxlY3REaWFsb2dTZXR0aW5ncy52YWx1ZS5zdGFydHNXaXRoKCdcXFxcJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdERpYWxvZ1NldHRpbmdzLnZhbHVlID0gdGhpcy5zZWxlY3REaWFsb2dTZXR0aW5ncy52YWx1ZS5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0RGlhbG9nU2V0dGluZ3MuY2FsbGJhY2sodGhpcy5zZWxlY3REaWFsb2dTZXR0aW5ncy52YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsb3NlU2VsZWN0RGlhbG9nKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvd3MgdGhlIGZpbGUgc2VsZWN0aW9uIGRpYWxvZ1xuICAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayBtZXRob2Qgd2hpY2ggaXMgY2FsbGVkIHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWRcbiAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgZnJvbSB0aGUgZmlsZSBkaWFsb2dcbiAgICAgKiBAcGFyYW0gbWV0YSBNZXRhIGRhdGEgZm9yIHRoZSBmaWxlXG4gICAgICovXG4gICAgcHVibGljIHNob3dTZWxlY3REaWFsb2coY2FsbGJhY2ssIHZhbHVlOiBzdHJpbmcsIG1ldGE6IFRpbnlNY2VEaWFsb2dTZXR0aW5nc01ldGEpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5hbmd1bGFyLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzLmFuZ3VsYXIubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5hbmd1bGFyLnNlbGVjdGRpYWxvZ3Zpc2libGUgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgLy8gU2V0IERpYWxvZyBTZXR0aW5nc1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MuYW5ndWxhci5zZWxlY3REaWFsb2dTZXR0aW5ncyA9IG5ldyBUaW55TWNlRGlhbG9nU2V0dGluZ3Moe1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2ssXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgbWV0YTogbWV0YSxcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dlZHR5cGVzOiAnJyxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHN3aXRjaCAobWV0YS5maWxldHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdpbWFnZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmdzLmFuZ3VsYXIuc2VsZWN0RGlhbG9nU2V0dGluZ3MuYWxsb3dlZHR5cGVzID0gdGhpcy5zZXR0aW5ncy5hbmd1bGFyLmZpbGV0eXBlc2ltYWdlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdtZWRpYSc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmdzLmFuZ3VsYXIuc2VsZWN0RGlhbG9nU2V0dGluZ3MuYWxsb3dlZHR5cGVzID0gdGhpcy5zZXR0aW5ncy5hbmd1bGFyLmZpbGV0eXBlc3ZpZGVvO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmdzLmFuZ3VsYXIuc2VsZWN0RGlhbG9nU2V0dGluZ3MuYWxsb3dlZHR5cGVzID0gdGhpcy5zZXR0aW5ncy5hbmd1bGFyLmZpbGV0eXBlc2ZpbGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlcyB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSBjIENvbnRyb2wgaW5zdGFuY2UgdGhhdCBpcyB2YWxpZGF0ZWRcbiAgICAgKiBAcmV0dXJucyBSZXR1cm5zIGFuIGVycm9yIG1lc3NhZ2Ugb3IgTlVMTFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZCh0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQpKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBUaW55TUNFIHNldHRpbmdzIHRoYXQgYXJlIGdlbmVyYXRlZCBmcm9tIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBBbmd1bGFyIGNvbXBvbmVudHNcbiAgICAgKiBAcmV0dXJucyBPYmplY3Qgd2l0aCBzZXR0aW5nc1xuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0RHluYW1pY1NldHRpbmdzKCk6IGFueSB7XG4gICAgICAgIGxldCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnIycgKyB0aGlzLm5hbWUgKyAnX3RpbnltY2UnLFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gc2V0dGluZ3M7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcbn1cbiJdfQ==
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Settings
|
|
2
|
+
* Settings for TinyMCE dialog
|
|
3
3
|
*/
|
|
4
4
|
export class TinyMceDialogSettings {
|
|
5
5
|
// #endregion Properties
|
|
6
6
|
// #region Constructors
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
* @param init
|
|
8
|
+
* Constructor
|
|
9
|
+
* @param init Initial values
|
|
10
10
|
*/
|
|
11
11
|
constructor(init) {
|
|
12
12
|
Object.assign(this, init);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlueW1jZWRpYWxvZ3NldHRpbmdzLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdGlueW1jZS90aW55bWNlZGlhbG9nc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBdUI5Qix3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7T0FHRztJQUNILFlBQVksSUFBcUM7UUFDN0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUdKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGlueU1jZURpYWxvZ1NldHRpbmdzTWV0YSB9IGZyb20gJy4vdGlueW1jZWRpYWxvZ3NldHRpbmdzbWV0YSc7XG5cbi8qKlxuICogU2V0dGluZ3MgZm9yIFRpbnlNQ0UgZGlhbG9nXG4gKi9cbmV4cG9ydCBjbGFzcyBUaW55TWNlRGlhbG9nU2V0dGluZ3Mge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogRmlsZSBUeXBlIEZpbHRlclxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd2VkdHlwZXM6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIG1ldGhvZCBmb3IgZGlhbG9nXG4gICAgICovXG4gICAgcHVibGljIGNhbGxiYWNrOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBNZXRhIGRhdGEgZm9yIGRpYWxvZ1xuICAgICAqL1xuICAgIHB1YmxpYyBtZXRhOiBUaW55TWNlRGlhbG9nU2V0dGluZ3NNZXRhO1xuXG4gICAgLyoqXG4gICAgICogVmFsdWUgZnJvbSBkaWFsb2dcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsdWU6IHN0cmluZztcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGluaXQgSW5pdGlhbCB2YWx1ZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUGFydGlhbDxUaW55TWNlRGlhbG9nU2V0dGluZ3M+KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlueW1jZWRpYWxvZ3NldHRpbmdzbWV0YS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3RpbnltY2UvdGlueW1jZWRpYWxvZ3NldHRpbmdzbWV0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlcmZhY2UgZm9yIFRpbnlNY2VEaWFsb2cgbWV0YSBkYXRhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGlueU1jZURpYWxvZ1NldHRpbmdzTWV0YSB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBGaWxlIHR5cGUgb2YgdGhlIG1ldGEgZGF0YVxuICAgICAqL1xuICAgIGZpbGV0eXBlOiBzdHJpbmc7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlueW1jZWluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdGlueW1jZS90aW55bWNlaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY1RpbnlNY2VDb21tb24gfSBmcm9tICcuL3RpbnltY2UnO1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgVGlueU1DRSBhY2Nlc3MgdG8gdGhlIEFuZ3VsYXIgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGlueU1jZUluc3RhbmNlIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEluc3RhbmNlIG9mIEFuZ3VsYXIgY29tcG9uZW50XG4gICAgICovXG4gICAgYW5ndWxhcjogU2FjVGlueU1jZUNvbW1vbjtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xufVxuIl19
|
|
@@ -18,8 +18,9 @@ export class SacTooltipCommon {
|
|
|
18
18
|
// #endregion Properties
|
|
19
19
|
// #region Constructors
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
22
|
-
* @param
|
|
21
|
+
* Constructor
|
|
22
|
+
* @param cdRef Change detector reference for updating component view
|
|
23
|
+
* @param ref Element reference
|
|
23
24
|
*/
|
|
24
25
|
constructor(cdRef, ref) {
|
|
25
26
|
this.cdRef = cdRef;
|
|
@@ -38,7 +39,7 @@ export class SacTooltipCommon {
|
|
|
38
39
|
*/
|
|
39
40
|
this.IsTooltipContentVisible = false;
|
|
40
41
|
/**
|
|
41
|
-
* Position
|
|
42
|
+
* Position of the tooltip on the left
|
|
42
43
|
*/
|
|
43
44
|
this.LeftPos = 0;
|
|
44
45
|
/**
|
|
@@ -117,6 +118,7 @@ export class SacTooltipCommon {
|
|
|
117
118
|
// #region Public Methods
|
|
118
119
|
/**
|
|
119
120
|
* Returns the position of the tooltip
|
|
121
|
+
* @returns TooltipPosition The calculated position for the tooltip
|
|
120
122
|
*/
|
|
121
123
|
GetTooltipPosition() {
|
|
122
124
|
return this.popupHelper.getDisplayPosition(this.content, this.tooltipcontainer, this.getTooltipOffset(), this.getTooltipOffset(), this.position, true);
|
|
@@ -130,6 +132,7 @@ export class SacTooltipCommon {
|
|
|
130
132
|
}
|
|
131
133
|
/**
|
|
132
134
|
* Defines whether the tooltip is present in the markup
|
|
135
|
+
* @returns Boolean indicating whether the tooltip is visible
|
|
133
136
|
*/
|
|
134
137
|
IsTooltipVisible() {
|
|
135
138
|
return this._isTooltipVisible;
|
|
@@ -148,31 +151,33 @@ export class SacTooltipCommon {
|
|
|
148
151
|
}
|
|
149
152
|
/**
|
|
150
153
|
* Calculates the height of the tooltip
|
|
154
|
+
* @returns The height of the tooltip in pixels
|
|
151
155
|
*/
|
|
152
156
|
getToolTipHeight() {
|
|
153
157
|
return this.popupHelper.getPopupHeight(this.tooltipcontainer);
|
|
154
158
|
}
|
|
155
159
|
/**
|
|
156
160
|
* Calculates the width of the tooltips
|
|
161
|
+
* @returns The width of the tooltip in pixels
|
|
157
162
|
*/
|
|
158
163
|
getToolTipWidth() {
|
|
159
164
|
return this.popupHelper.getPopupWidth(this.tooltipcontainer);
|
|
160
165
|
}
|
|
161
166
|
/**
|
|
162
|
-
* Detect
|
|
167
|
+
* Detect changes after view checked. Prevent ExpressionChangedAfterItHasBeenCheckedError error
|
|
163
168
|
*/
|
|
164
169
|
ngAfterViewChecked() {
|
|
165
|
-
// Do nothing if is not
|
|
170
|
+
// Do nothing if is not visible
|
|
166
171
|
if (!this._isTooltipVisible) {
|
|
167
172
|
return;
|
|
168
173
|
}
|
|
169
174
|
this.cdRef.detectChanges();
|
|
170
175
|
}
|
|
171
176
|
/**
|
|
172
|
-
* Detect UI
|
|
177
|
+
* Detect UI changes to calculate tooltip correctly
|
|
173
178
|
*/
|
|
174
179
|
ngDoCheck() {
|
|
175
|
-
// Do nothing if is not
|
|
180
|
+
// Do nothing if is not visible
|
|
176
181
|
if (!this._isTooltipVisible) {
|
|
177
182
|
return;
|
|
178
183
|
}
|
|
@@ -250,4 +255,4 @@ SacTooltipCommon.propDecorators = {
|
|
|
250
255
|
inlinemode: [{ type: Input }],
|
|
251
256
|
tooltip: [{ type: ViewChild, args: ['tooltip', { static: false },] }]
|
|
252
257
|
};
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2Qjs7Ozs7Ozs7OztHQVVHO0FBRUgsTUFBTSxPQUFnQixnQkFBZ0I7SUFxRmxDLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7OztPQUdHO0lBQ0gsWUFBNkIsS0FBd0IsRUFBbUIsR0FBZTtRQUExRCxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUFtQixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBNUZ2RixxQkFBcUI7UUFFckI7O1dBRUc7UUFDYyxnQkFBVyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBTzlEOztXQUVHO1FBQ0ssc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBTzNDOztXQUVHO1FBQ0ksNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBRWhEOztXQUVHO1FBQ0ksWUFBTyxHQUFXLENBQUMsQ0FBQztRQUUzQjs7V0FFRztRQUNJLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBRXpDOztXQUVHO1FBQ0ksV0FBTSxHQUFXLENBQUMsQ0FBQztR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QyxrQkFBa0IsRUFBRSxDQUFDO1FBQ25ELElBQUksZ0JBQWdCLEtBQUssZUFBZSxDQUFDLE1BQU0sSUFBSSxnQkFBZ0IsS0FBSyxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3pGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDeEQ7YUFBTTtZQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQzVCO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs7O1lBbFRKLFNBQVM7OztZQXJCTixpQkFBaUI7WUFHakIsVUFBVTs7O3NCQWlFVCxTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs0QkFNdkMsS0FBSzttQkFNTCxLQUFLO3VCQWtCTCxLQUFLOzBCQU1MLEtBQUs7eUJBMkJMLEtBQUs7c0JBUUwsU0FBUyxTQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2NvbnZlcnRpb24nO1xuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2VudW1zJztcbmltcG9ydCB7IGNyZWF0ZUd1aWQgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZ3VpZCc7XG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVG9vbHRpcCBDb21wb25lbnRcbiAqXG4gKiBSZXF1aXJlcyB0aGUgZm9sbG93aW5nIGlkZW50aWZpZXJzIGluIHRoZSBIVE1MIG1hcmt1cFxuICogLSBjb250YWluZXI6IENvbnRhaW5lciBmb3IgbmctY29udGVudCBpbiB3aGljaCB0aGUgZWxlbWVudCBpcyBkaXNwbGF5ZWQgd2hlcmUgdGhlIHRvb2x0aXAgaXMgYXR0YWNoZWQuXG4gKiAtIHRvb2x0aXA6IENvbnRhaW5lciBmb3IgdG9vbHRpcFxuICpcbiAqIFRvb2x0aXAgbXVzdCBiZSBkaXNwbGF5ZWQgaW4gMiBzdGVwcy4gSW4gYSBmaXJzdCBzdGVwIHRoZSB0b29sdGlwIG1hcmt1cCBpcyBjcmVhdGVkIHdpdGggKG5nSWYpLiBJbiBhIDJuZCBzdGVwXG4gKiB0aGUgdG9vbHRpcCBjYW4gdGhlbiBiZSBkaXNwbGF5ZWQgdmlhIHRoZSBDU1MgdmlzaWJpbGl0eS4gSWYgdGhpcyBpcyBub3QgZG9uZSwgaXQgY2FuIGxlYWQgdG8gYSBmbGlja2VyaW5nIGVmZmVjdCBpbiBjZXJ0YWluIGJyb3dzZXJzLlxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjVG9vbHRpcENvbW1vbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkLCBEb0NoZWNrIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEhlbHBlciBjbGFzcyB0byBkaXNwbGF5IHRvb2x0aXAgb24gY29ycmVjdCBwb3NpdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9wdXBIZWxwZXI6IFBvcFVwSGVscGVyID0gbmV3IFBvcFVwSGVscGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBJbmxpbmUgbW9kZSBmb3IgdG9vbHRpcFxuICAgICAqL1xuICAgIHByaXZhdGUgX2lubGluZW1vZGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgdmlzaWJsZVxuICAgICAqL1xuICAgIHByaXZhdGUgX2lzVG9vbHRpcFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b29sdGlwY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIG9uIHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIElzVG9vbHRpcENvbnRlbnRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBkZXMgVG9vbHRpcHMgbGlua3NcbiAgICAgKi9cbiAgICBwdWJsaWMgTGVmdFBvczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBlbnVtIGluIEFuZ3VsYXIgSFRNTCB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIFRvcFBvczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgY29udGVudCAoZS5nLiBpY29uKSBvbiB3aGljaCB0aGUgdG9vbHRpcCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgY29udGVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVyIHVzZWQgZm9yIHRoZSBFMkUgZGF0YSBhdHRyaWJ1dGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZTJlaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBuYW1lIG9mIGNvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSBjcmVhdGVHdWlkKCk7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93TGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSB0b3BcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zQXJyb3dUb3A6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuIFZhbHVlczogbGVmdHx0b3B8cmlnaHR8Ym90dG9tfGF1dG9cbiAgICAgKlxuICAgICAqIFZhbHVlICdhdXRvJyBjYW4gYmUgY29tYmluZWQgd2l0aCBhbm90aGVyIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBvc2l0aW9uOiBzdHJpbmcgPSAncmlnaHR8YXV0byc7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IGZvciBUb29sVGlwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcHRleHQ6IHN0cmluZztcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIEtvbnN0cnVrdG9yXG4gICAgICogQHBhcmFtIHJlZiBFbGVtZW50IFJlZmVyZW56XG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVhZG9ubHkgcmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBpbmxpbmUgbW9kZSBmb3IgdG9vbHRpcC4gU2V0cyB0aGUgZGlzcGxheSBtb2RlIG9uIHRoZSB3cmFwcGVyIGVsZW1lbnQgdG8gYGlubGluZWBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlubGluZW1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVtb2RlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmb3IgaW5saW5lIG1vZGUgZm9yIHRvb2x0aXBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgaW5saW5lbW9kZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pbmxpbmVtb2RlID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0dGVyIGZvciB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGUgdG9vbHRpcC4gSXMgcmVxdWlyZWQgYXMgdGhlIHRvb2x0aXAgY2FuIGJlIGhpZGRlbiB2aWEgbmdJZi5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCd0b29sdGlwJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCB0b29sdGlwKGNvbnRlbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgaWYgKGNvbnRlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250ZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b29sdGlwY29udGFpbmVyID0gY29udGVudDtcbiAgICAgICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b29sdG9wKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwY29udGFpbmVyO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEdldFRvb2x0aXBQb3NpdGlvbigpOiBUb29sdGlwUG9zaXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXREaXNwbGF5UG9zaXRpb24oXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgSGlkZVRvb2x0aXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzVG9vbHRpcFZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciB0aGUgdG9vbHRpcCBpcyBwcmVzZW50IGluIHRoZSBtYXJrdXBcbiAgICAgKi9cbiAgICBwdWJsaWMgSXNUb29sdGlwVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVG9vbHRpcFZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIFNob3dUb29sdGlwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldExlZnRQb3NpdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5nZXRUb3BQb3NpdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBvZiB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUb29sVGlwSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMudG9vbHRpcGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIHRvb2x0aXBzXG4gICAgICovXG4gICAgcHVibGljIGdldFRvb2xUaXBXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cFdpZHRoKHRoaXMudG9vbHRpcGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZWN0IENoYW5nZXMgYWZ0ZXIgdmlldyBjaGVja2VkLiBQcmV2ZW50IEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IgZXJyb3JcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmlsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVjdCBVSSBDaGFuZ2VzIHRvIENhbGN1bGF0ZSBUb29sdGlwIGNvcnJlY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmlsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0TGVmdFBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3aGVuIHRoZSBjb250cm9sIGlzIGRlc3Ryb3llZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIFVucmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy50b29sdGlwY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2hlbiB0aGUgY29udHJvbCBpcyBpbml0aWFsaXplZFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gUmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogT2Zmc2V0IGZvciBUb29sdGlwLiBSZXF1aXJlZCBmb3IgQlM0L0JTNSB0byBjcmVhdGUgcGFkZGluZ1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRUb29sdGlwT2Zmc2V0KCk6IG51bWJlcjtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIGxpbmtzXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRMZWZ0UG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uTGVmdChcbiAgICAgICAgICAgIHRoaXMuY29udGVudCxcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcGNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMucmVmLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuTGVmdFBvcyA9IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUG9zaXRpb24gPSB0aGlzLkdldFRvb2x0aXBQb3NpdGlvbigpO1xuICAgICAgICBpZiAocmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLmxlZnQgfHwgcmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLnJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gdGhpcy5nZXRUb29sVGlwSGVpZ2h0KCkgLyAyIC0gNi41O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9wXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRUb3BQb3NpdGlvbigpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25Ub3AoXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLnJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLlRvcFBvcyA9IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUG9zaXRpb24gPSB0aGlzLkdldFRvb2x0aXBQb3NpdGlvbigpO1xuICAgICAgICBpZiAocmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSB8fCByZXF1aXJlZFBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24udG9wKSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IHRoaXMuZ2V0VG9vbFRpcFdpZHRoKCkgLyAyIC0gNi41O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG1ldGhvZCBpZiBjb250ZW50IGhhcyBjaGFuZ2VkIGFuZCBwcm9wb3J0aW9ucyBuZWVkIHRvIGJlIHJlc2V0IGluIHRoZSBVSS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uQ29udGVudENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRMZWZ0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXX0=
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2Qjs7Ozs7Ozs7OztHQVVHO0FBRUgsTUFBTSxPQUFnQixnQkFBZ0I7SUFxRmxDLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7T0FJRztJQUNILFlBQ3FCLEtBQXdCLEVBQ3hCLEdBQWU7UUFEZixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBL0ZwQyxxQkFBcUI7UUFFckI7O1dBRUc7UUFDYyxnQkFBVyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBTzlEOztXQUVHO1FBQ0ssc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBT2xDOztXQUVHO1FBQ0ksNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBRXZDOztXQUVHO1FBQ0ksWUFBTyxHQUFHLENBQUMsQ0FBQztRQUVuQjs7V0FFRztRQUNJLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBRXpDOztXQUVHO1FBQ0ksV0FBTSxHQUFHLENBQUMsQ0FBQztR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QUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbkQsSUFBSSxnQkFBZ0IsS0FBSyxlQUFlLENBQUMsTUFBTSxJQUFJLGdCQUFnQixLQUFLLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDekYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN4RDthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDNUI7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs7WUExVEosU0FBUzs7O1lBckJOLGlCQUFpQjtZQUdqQixVQUFVOzs7c0JBaUVULFNBQVMsU0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOzRCQU12QyxLQUFLO21CQU1MLEtBQUs7dUJBa0JMLEtBQUs7MEJBTUwsS0FBSzt5QkErQkwsS0FBSztzQkFRTCxTQUFTLFNBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnZlcnRUb0Jvb2xlYW4gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvY29udmVydGlvbic7XG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZW51bXMnO1xuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9ndWlkJztcbmltcG9ydCB7IFBvcFVwSGVscGVyIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL3BvcHVwaGVscGVyJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBUb29sdGlwIENvbXBvbmVudFxuICpcbiAqIFJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgaWRlbnRpZmllcnMgaW4gdGhlIEhUTUwgbWFya3VwXG4gKiAtIGNvbnRhaW5lcjogQ29udGFpbmVyIGZvciBuZy1jb250ZW50IGluIHdoaWNoIHRoZSBlbGVtZW50IGlzIGRpc3BsYXllZCB3aGVyZSB0aGUgdG9vbHRpcCBpcyBhdHRhY2hlZC5cbiAqIC0gdG9vbHRpcDogQ29udGFpbmVyIGZvciB0b29sdGlwXG4gKlxuICogVG9vbHRpcCBtdXN0IGJlIGRpc3BsYXllZCBpbiAyIHN0ZXBzLiBJbiBhIGZpcnN0IHN0ZXAgdGhlIHRvb2x0aXAgbWFya3VwIGlzIGNyZWF0ZWQgd2l0aCAobmdJZikuIEluIGEgMm5kIHN0ZXBcbiAqIHRoZSB0b29sdGlwIGNhbiB0aGVuIGJlIGRpc3BsYXllZCB2aWEgdGhlIENTUyB2aXNpYmlsaXR5LiBJZiB0aGlzIGlzIG5vdCBkb25lLCBpdCBjYW4gbGVhZCB0byBhIGZsaWNrZXJpbmcgZWZmZWN0IGluIGNlcnRhaW4gYnJvd3NlcnMuXG4gKlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNUb29sdGlwQ29tbW9uIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQsIERvQ2hlY2sge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogSGVscGVyIGNsYXNzIHRvIGRpc3BsYXkgdG9vbHRpcCBvbiBjb3JyZWN0IHBvc2l0aW9uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3B1cEhlbHBlcjogUG9wVXBIZWxwZXIgPSBuZXcgUG9wVXBIZWxwZXIoKTtcblxuICAgIC8qKlxuICAgICAqIElubGluZSBtb2RlIGZvciB0b29sdGlwXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW5saW5lbW9kZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciB0aGUgdG9vbHRpcCBpcyB2aXNpYmxlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaXNUb29sdGlwVmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQ29udGFpbmVycyBmb3IgdGhlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwcml2YXRlIHRvb2x0aXBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgb24gdGhlIGxlZnRcbiAgICAgKi9cbiAgICBwdWJsaWMgSXNUb29sdGlwQ29udGVudFZpc2libGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIG9uIHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIExlZnRQb3MgPSAwO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZm9yIGVudW0gaW4gQW5ndWxhciBIVE1MIHRlbXBsYXRlXG4gICAgICovXG4gICAgcHVibGljIFRvb2x0aXBQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGF0IHRoZSB0b3BcbiAgICAgKi9cbiAgICBwdWJsaWMgVG9wUG9zID0gMDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgY29udGVudCAoZS5nLiBpY29uKSBvbiB3aGljaCB0aGUgdG9vbHRpcCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgY29udGVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVyIHVzZWQgZm9yIHRoZSBFMkUgZGF0YSBhdHRyaWJ1dGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZTJlaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBuYW1lIG9mIGNvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSBjcmVhdGVHdWlkKCk7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93TGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSB0b3BcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zQXJyb3dUb3A6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuIFZhbHVlczogbGVmdHx0b3B8cmlnaHR8Ym90dG9tfGF1dG9cbiAgICAgKlxuICAgICAqIFZhbHVlICdhdXRvJyBjYW4gYmUgY29tYmluZWQgd2l0aCBhbm90aGVyIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBvc2l0aW9uID0gJ3JpZ2h0fGF1dG8nO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBmb3IgVG9vbFRpcFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRvb2x0aXB0ZXh0OiBzdHJpbmc7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBjZFJlZiBDaGFuZ2UgZGV0ZWN0b3IgcmVmZXJlbmNlIGZvciB1cGRhdGluZyBjb21wb25lbnQgdmlld1xuICAgICAqIEBwYXJhbSByZWYgRWxlbWVudCByZWZlcmVuY2VcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVmOiBFbGVtZW50UmVmXG4gICAgKSB7fVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBpbmxpbmUgbW9kZSBmb3IgdG9vbHRpcC4gU2V0cyB0aGUgZGlzcGxheSBtb2RlIG9uIHRoZSB3cmFwcGVyIGVsZW1lbnQgdG8gYGlubGluZWBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlubGluZW1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVtb2RlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmb3IgaW5saW5lIG1vZGUgZm9yIHRvb2x0aXBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgaW5saW5lbW9kZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pbmxpbmVtb2RlID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0dGVyIGZvciB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGUgdG9vbHRpcC4gSXMgcmVxdWlyZWQgYXMgdGhlIHRvb2x0aXAgY2FuIGJlIGhpZGRlbiB2aWEgbmdJZi5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCd0b29sdGlwJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCB0b29sdGlwKGNvbnRlbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgaWYgKGNvbnRlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250ZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b29sdGlwY29udGFpbmVyID0gY29udGVudDtcbiAgICAgICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b29sdG9wKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwY29udGFpbmVyO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXG4gICAgICogQHJldHVybnMgVG9vbHRpcFBvc2l0aW9uIFRoZSBjYWxjdWxhdGVkIHBvc2l0aW9uIGZvciB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBHZXRUb29sdGlwUG9zaXRpb24oKTogVG9vbHRpcFBvc2l0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0RGlzcGxheVBvc2l0aW9uKFxuICAgICAgICAgICAgdGhpcy5jb250ZW50LFxuICAgICAgICAgICAgdGhpcy50b29sdGlwY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEhpZGVUb29sdGlwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuSXNUb29sdGlwQ29udGVudFZpc2libGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgcHJlc2VudCBpbiB0aGUgbWFya3VwXG4gICAgICogQHJldHVybnMgQm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgdmlzaWJsZVxuICAgICAqL1xuICAgIHB1YmxpYyBJc1Rvb2x0aXBWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNUb29sdGlwVmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgU2hvd1Rvb2x0aXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzVG9vbHRpcFZpc2libGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ2V0TGVmdFBvc2l0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLmdldFRvcFBvc2l0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLklzVG9vbHRpcENvbnRlbnRWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IG9mIHRoZSB0b29sdGlwXG4gICAgICogQHJldHVybnMgVGhlIGhlaWdodCBvZiB0aGUgdG9vbHRpcCBpbiBwaXhlbHNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VG9vbFRpcEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cEhlaWdodCh0aGlzLnRvb2x0aXBjb250YWluZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSB0b29sdGlwc1xuICAgICAqIEByZXR1cm5zIFRoZSB3aWR0aCBvZiB0aGUgdG9vbHRpcCBpbiBwaXhlbHNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VG9vbFRpcFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwV2lkdGgodGhpcy50b29sdGlwY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlY3QgY2hhbmdlcyBhZnRlciB2aWV3IGNoZWNrZWQuIFByZXZlbnQgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvciBlcnJvclxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgaXMgbm90IHZpc2libGVcbiAgICAgICAgaWYgKCF0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlY3QgVUkgY2hhbmdlcyB0byBjYWxjdWxhdGUgdG9vbHRpcCBjb3JyZWN0bHlcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmxlXG4gICAgICAgIGlmICghdGhpcy5faXNUb29sdGlwVmlzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5nZXRMZWZ0UG9zaXRpb24oKTtcbiAgICAgICAgdGhpcy5nZXRUb3BQb3NpdGlvbigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV2ZW50IHdoZW4gdGhlIGNvbnRyb2wgaXMgZGVzdHJveWVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gVW5yZWdpc3RlciBFdmVudCBMaXN0ZW5lclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xuXG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBjb250YWluZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLnRvb2x0aXBjb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3aGVuIHRoZSBjb250cm9sIGlzIGluaXRpYWxpemVkXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBSZWdpc3RlciBFdmVudCBMaXN0ZW5lclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xuXG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBjb250YWluZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLnRvb2x0aXBjb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBPZmZzZXQgZm9yIFRvb2x0aXAuIFJlcXVpcmVkIGZvciBCUzQvQlM1IHRvIGNyZWF0ZSBwYWRkaW5nXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFRvb2x0aXBPZmZzZXQoKTogbnVtYmVyO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gbGlua3NcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldExlZnRQb3NpdGlvbigpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25MZWZ0KFxuICAgICAgICAgICAgdGhpcy5jb250ZW50LFxuICAgICAgICAgICAgdGhpcy50b29sdGlwY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5yZWYsXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5MZWZ0UG9zID0gdmFsdWU7XG5cbiAgICAgICAgY29uc3QgcmVxdWlyZWRQb3NpdGlvbiA9IHRoaXMuR2V0VG9vbHRpcFBvc2l0aW9uKCk7XG4gICAgICAgIGlmIChyZXF1aXJlZFBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24ubGVmdCB8fCByZXF1aXJlZFBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24ucmlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSB0aGlzLmdldFRvb2xUaXBIZWlnaHQoKSAvIDIgLSA2LjU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b3BcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFRvcFBvc2l0aW9uKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3NpdGlvblRvcChcbiAgICAgICAgICAgIHRoaXMuY29udGVudCxcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcGNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMucmVmLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuVG9wUG9zID0gdmFsdWU7XG5cbiAgICAgICAgY29uc3QgcmVxdWlyZWRQb3NpdGlvbiA9IHRoaXMuR2V0VG9vbHRpcFBvc2l0aW9uKCk7XG4gICAgICAgIGlmIChyZXF1aXJlZFBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24uYm90dG9tIHx8IHJlcXVpcmVkUG9zaXRpb24gPT09IFRvb2x0aXBQb3NpdGlvbi50b3ApIHtcbiAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gdGhpcy5nZXRUb29sVGlwV2lkdGgoKSAvIDIgLSA2LjU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbWV0aG9kIGlmIGNvbnRlbnQgaGFzIGNoYW5nZWQgYW5kIHByb3BvcnRpb25zIG5lZWQgdG8gYmUgcmVzZXQgaW4gdGhlIFVJLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb25Db250ZW50Q2hhbmdlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmxlXG4gICAgICAgIGlmICghdGhpcy5faXNUb29sdGlwVmlzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldExlZnRQb3NpdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5nZXRUb3BQb3NpdGlvbigpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcbn1cbiJdfQ==
|