@simpleangularcontrols/sac-common 16.0.0-rc.1 → 16.0.0-rc.11
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/README.md +8 -16
- package/common/basedatetimecontrol.d.ts +116 -30
- package/common/basedatetimecontrol.d.ts.map +1 -1
- package/common/baseinputcontrol.d.ts +9 -13
- package/common/baseinputcontrol.d.ts.map +1 -1
- package/common/basemodelcontrol.d.ts +168 -85
- package/common/basemodelcontrol.d.ts.map +1 -1
- package/common/baseuploadcontrol.d.ts +136 -141
- package/common/baseuploadcontrol.d.ts.map +1 -1
- package/components/browser/browser.d.ts +11 -6
- package/components/browser/browser.d.ts.map +1 -1
- package/controls/buttons/button.d.ts +23 -22
- package/controls/buttons/button.d.ts.map +1 -1
- package/controls/checkbox/checkbox.d.ts +18 -5
- package/controls/checkbox/checkbox.d.ts.map +1 -1
- package/controls/checkbox/radiobutton.d.ts +68 -24
- package/controls/checkbox/radiobutton.d.ts.map +1 -1
- package/controls/checkbox/radiobuttons.d.ts +21 -20
- package/controls/checkbox/radiobuttons.d.ts.map +1 -1
- package/controls/confirm/confirm.button.d.ts +14 -8
- package/controls/confirm/confirm.button.d.ts.map +1 -1
- package/controls/confirm/confirm.service.d.ts +24 -19
- package/controls/confirm/confirm.service.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.d.ts +51 -44
- package/controls/contextmenu/contextmenu.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.interface.d.ts +4 -0
- package/controls/contextmenu/contextmenu.interface.d.ts.map +1 -0
- package/controls/contextmenu/contextmenuanchor.d.ts +2 -2
- package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -1
- package/controls/contextmenu/contextmenucontainer.d.ts +2 -2
- package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuitem.d.ts +6 -1
- package/controls/contextmenu/contextmenuitem.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuitembutton.d.ts +22 -21
- package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -1
- package/controls/datetime/date.d.ts +33 -36
- package/controls/datetime/date.d.ts.map +1 -1
- package/controls/datetime/datetime.d.ts +33 -37
- package/controls/datetime/datetime.d.ts.map +1 -1
- package/controls/datetime/time.d.ts +32 -36
- package/controls/datetime/time.d.ts.map +1 -1
- package/controls/dialog/dialog.d.ts +32 -44
- package/controls/dialog/dialog.d.ts.map +1 -1
- package/controls/form/form.d.ts +7 -43
- package/controls/form/form.d.ts.map +1 -1
- package/controls/grid/grid.d.ts +67 -62
- package/controls/grid/grid.d.ts.map +1 -1
- package/controls/grid/gridbutton.d.ts +14 -14
- package/controls/grid/gridbutton.d.ts.map +1 -1
- package/controls/grid/gridcolumn.d.ts +8 -8
- package/controls/grid/gridcolumn.d.ts.map +1 -1
- package/controls/grid/gridcolumnaction.d.ts +3 -3
- package/controls/grid/gridcolumnaction.d.ts.map +1 -1
- package/controls/grid/gridcolumnbase.d.ts +46 -38
- package/controls/grid/gridcolumnbase.d.ts.map +1 -1
- package/controls/grid/gridimage.d.ts +2 -2
- package/controls/grid/gridimage.d.ts.map +1 -1
- package/controls/grid/model.d.ts +51 -42
- package/controls/grid/model.d.ts.map +1 -1
- package/controls/grid/paging.d.ts +77 -76
- package/controls/grid/paging.d.ts.map +1 -1
- package/controls/input/input.d.ts +11 -11
- package/controls/input/input.d.ts.map +1 -1
- package/controls/input/inputcurrency.d.ts +6 -1
- package/controls/input/inputcurrency.d.ts.map +1 -1
- package/controls/input/inputdecimal.d.ts +21 -21
- package/controls/input/inputdecimal.d.ts.map +1 -1
- package/controls/input/inputemail.d.ts.map +1 -1
- package/controls/input/inputinteger.d.ts +21 -21
- package/controls/input/inputinteger.d.ts.map +1 -1
- package/controls/input/inputpassword.d.ts +5 -5
- package/controls/input/inputpassword.d.ts.map +1 -1
- package/controls/input/inputsearch.d.ts +14 -5
- package/controls/input/inputsearch.d.ts.map +1 -1
- package/controls/layout/formlayout.d.ts +66 -0
- package/controls/layout/formlayout.d.ts.map +1 -0
- package/controls/list/buildvaluestring.d.ts +7 -0
- package/controls/list/buildvaluestring.d.ts.map +1 -0
- package/controls/list/dropdown.d.ts +36 -80
- package/controls/list/dropdown.d.ts.map +1 -1
- package/controls/list/dropdownoptions.d.ts +42 -0
- package/controls/list/dropdownoptions.d.ts.map +1 -0
- package/controls/list/listbox.d.ts +20 -20
- package/controls/list/listbox.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinput.d.ts +36 -35
- package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinputarea.d.ts +39 -38
- package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
- package/controls/static/formcontainer.d.ts +8 -4
- package/controls/static/formcontainer.d.ts.map +1 -1
- package/controls/tinymce/tinymce.d.ts +63 -63
- package/controls/tinymce/tinymce.d.ts.map +1 -1
- package/controls/tooltip/tooltip.d.ts +76 -69
- package/controls/tooltip/tooltip.d.ts.map +1 -1
- package/controls/treeview/treeview.d.ts +89 -123
- package/controls/treeview/treeview.d.ts.map +1 -1
- package/controls/upload/dropzonemultiple.d.ts +24 -24
- package/controls/upload/dropzonemultiple.d.ts.map +1 -1
- package/controls/upload/uploadmultiple.d.ts +9 -9
- package/controls/upload/uploadmultiple.d.ts.map +1 -1
- package/controls/validation/validationsummary.d.ts +18 -13
- package/controls/validation/validationsummary.d.ts.map +1 -1
- package/enums/ButtonRoleType.d.ts +2 -0
- package/enums/ButtonRoleType.d.ts.map +1 -0
- package/enums/ControlHeight.d.ts +18 -0
- package/enums/ControlHeight.d.ts.map +1 -0
- package/esm2022/common/basedatetimecontrol.mjs +80 -164
- package/esm2022/common/baseinputcontrol.mjs +21 -80
- package/esm2022/common/baselistcontrol.mjs +11 -56
- package/esm2022/common/basemodelcontrol.mjs +134 -354
- package/esm2022/common/baseselectcontrol.mjs +6 -27
- package/esm2022/common/baseuploadcontrol.mjs +109 -433
- package/esm2022/components/browser/browser.mjs +66 -474
- package/esm2022/components/browser/models/browserfile.mjs +3 -2
- package/esm2022/components/browser/models/browserfiledeleterequest.mjs +5 -10
- package/esm2022/components/browser/models/browserfilerenamerequest.mjs +5 -10
- package/esm2022/components/browser/models/browserfileresponse.mjs +3 -2
- package/esm2022/components/browser/models/browserfilesaverequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernode.mjs +3 -2
- package/esm2022/components/browser/models/browsernodedeleterequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernodenewrequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernoderenamerequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernoderequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernoderesponse.mjs +3 -2
- package/esm2022/controls/buttons/button.mjs +32 -131
- package/esm2022/controls/checkbox/checkbox.mjs +15 -30
- package/esm2022/controls/checkbox/radiobutton.mjs +45 -102
- package/esm2022/controls/checkbox/radiobuttons.mjs +29 -106
- package/esm2022/controls/confirm/confirm.button.mjs +17 -21
- package/esm2022/controls/confirm/confirm.mjs +19 -69
- package/esm2022/controls/confirm/confirm.service.mjs +29 -74
- package/esm2022/controls/contextmenu/contextmenu.interface.mjs +3 -0
- package/esm2022/controls/contextmenu/contextmenu.mjs +43 -171
- package/esm2022/controls/contextmenu/contextmenuanchor.mjs +8 -19
- package/esm2022/controls/contextmenu/contextmenucontainer.mjs +8 -19
- package/esm2022/controls/contextmenu/contextmenuitem.mjs +7 -13
- package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +25 -93
- package/esm2022/controls/datetime/date.mjs +42 -206
- package/esm2022/controls/datetime/dateselector.mjs +65 -409
- package/esm2022/controls/datetime/datetime.mjs +43 -223
- package/esm2022/controls/datetime/time.mjs +40 -204
- package/esm2022/controls/dialog/dialog.mjs +35 -209
- package/esm2022/controls/form/form.mjs +27 -153
- package/esm2022/controls/grid/grid.mjs +48 -155
- package/esm2022/controls/grid/gridbutton.mjs +21 -59
- package/esm2022/controls/grid/gridcolumn.mjs +21 -46
- package/esm2022/controls/grid/gridcolumnaction.mjs +8 -22
- package/esm2022/controls/grid/gridcolumnbase.mjs +35 -124
- package/esm2022/controls/grid/gridimage.mjs +5 -16
- package/esm2022/controls/grid/model.mjs +49 -74
- package/esm2022/controls/grid/paging.mjs +82 -251
- package/esm2022/controls/input/input.mjs +17 -65
- package/esm2022/controls/input/inputarea.mjs +10 -53
- package/esm2022/controls/input/inputcurrency.mjs +9 -14
- package/esm2022/controls/input/inputdecimal.mjs +33 -143
- package/esm2022/controls/input/inputemail.mjs +10 -37
- package/esm2022/controls/input/inputinteger.mjs +32 -127
- package/esm2022/controls/input/inputpassword.mjs +12 -43
- package/esm2022/controls/input/inputsearch.mjs +16 -38
- package/esm2022/controls/layout/formlayout.mjs +31 -0
- package/esm2022/controls/list/buildvaluestring.mjs +10 -0
- package/esm2022/controls/list/dropdown.mjs +45 -236
- package/esm2022/controls/list/dropdownoptions.mjs +22 -0
- package/esm2022/controls/list/listbox.mjs +40 -159
- package/esm2022/controls/multilanguage/multilanguageinput.mjs +48 -215
- package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +51 -217
- package/esm2022/controls/static/formcontainer.mjs +18 -45
- package/esm2022/controls/static/staticlabel.mjs +7 -28
- package/esm2022/controls/tabs/tab.mjs +14 -68
- package/esm2022/controls/tabs/tabitem.mjs +7 -37
- package/esm2022/controls/tinymce/tinymce.mjs +62 -232
- package/esm2022/controls/tinymce/tinymcedialogsettings.mjs +5 -10
- package/esm2022/controls/tinymce/tinymcedialogsettingsmeta.mjs +4 -4
- package/esm2022/controls/tinymce/tinymceinstance.mjs +3 -2
- package/esm2022/controls/tooltip/tooltip.mjs +74 -358
- package/esm2022/controls/treeview/treeview.mjs +79 -343
- package/esm2022/controls/upload/dropzonemultiple.mjs +32 -152
- package/esm2022/controls/upload/dropzonesingle.mjs +12 -91
- package/esm2022/controls/upload/uploadmultiple.mjs +21 -111
- package/esm2022/controls/upload/uploadsingle.mjs +8 -50
- package/esm2022/controls/validation/validationsummary.mjs +23 -120
- package/esm2022/controls/wizard/wizard.mjs +20 -128
- package/esm2022/controls/wizard/wizarditem.mjs +6 -31
- package/esm2022/enums/ButtonRoleType.mjs +3 -0
- package/esm2022/enums/ControlHeight.mjs +11 -0
- package/esm2022/enums/IconType.mjs +4 -8
- package/esm2022/interfaces/ISacConfigurationService.mjs +3 -0
- package/esm2022/interfaces/ISacFileBrowserService.mjs +3 -2
- package/esm2022/interfaces/ISacIconService.mjs +3 -2
- package/esm2022/interfaces/ISacLabelSizes.mjs +3 -0
- package/esm2022/interfaces/ISacLanguageService.mjs +3 -2
- package/esm2022/interfaces/ISacLocalisationService.mjs +3 -2
- package/esm2022/interfaces/ISacValidationKeyService.mjs +3 -0
- package/esm2022/interfaces/iabstractcontrollabel.mjs +3 -2
- package/esm2022/interfaces/iconfirmcomponent.mjs +3 -2
- package/esm2022/interfaces/idatetimecontrol.mjs +3 -2
- package/esm2022/interfaces/iuploadcontrol.mjs +3 -2
- package/esm2022/interfaces/treeviewaction.interface.mjs +3 -0
- package/esm2022/models/languagemodel.mjs +5 -11
- package/esm2022/public_api.mjs +25 -94
- package/esm2022/services/index.mjs +3 -5
- package/esm2022/services/sac-configuration.service.mjs +35 -0
- package/esm2022/services/sac-filebrowser.service.mjs +15 -167
- package/esm2022/services/sac-icon.service.mjs +61 -155
- package/esm2022/services/sac-language.service.mjs +7 -45
- package/esm2022/services/sac-localisation.service.mjs +33 -428
- package/esm2022/services/sac-validationkey.service.mjs +7 -0
- package/esm2022/simpleangularcontrols-sac-common.mjs +4 -4
- package/esm2022/utilities/convertion.mjs +6 -26
- package/esm2022/utilities/datatypes.mjs +4 -6
- package/esm2022/utilities/enums.mjs +10 -15
- package/esm2022/utilities/guid.mjs +8 -0
- package/esm2022/utilities/interpolation.mjs +7 -42
- package/esm2022/utilities/popuphelper.mjs +80 -0
- package/esm2022/utilities/positioning.mjs +23 -266
- package/esm2022/validation/email.validator.mjs +3 -13
- package/esm2022/validation/equals.validator.mjs +3 -0
- package/esm2022/validation/index.mjs +3 -3
- package/esm2022/validation/invaliddate.validator.mjs +3 -14
- package/esm2022/validation/isDateValid.mjs +9 -13
- package/esm2022/validation/maxdate.validator.mjs +4 -21
- package/esm2022/validation/maxtime.validator.mjs +4 -21
- package/esm2022/validation/maxvalue.validator.mjs +3 -16
- package/esm2022/validation/mindate.validator.mjs +4 -21
- package/esm2022/validation/minfiles.validator.mjs +4 -19
- package/esm2022/validation/minlength.validator.mjs +3 -21
- package/esm2022/validation/mintime.validator.mjs +4 -21
- package/esm2022/validation/minvalue.validator.mjs +3 -16
- package/esm2022/validation/multilanguagerequired.validator.mjs +3 -22
- package/esm2022/validation/multilanguagerequiredany.validator.mjs +3 -22
- package/esm2022/validation/notequals.validator.mjs +3 -0
- package/esm2022/validation/pattern.validator.mjs +3 -16
- package/esm2022/validation/required.validator.mjs +3 -13
- package/esm2022/validation/validation.mjs +41 -106
- package/esm2022/validation/validationerrorcreator.mjs +3 -11
- package/esm2022/validation/validationerroritem.mjs +7 -19
- package/fesm2022/simpleangularcontrols-sac-common.mjs +2276 -9240
- package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/interfaces/ISacConfigurationService.d.ts +59 -0
- package/interfaces/ISacConfigurationService.d.ts.map +1 -0
- package/interfaces/ISacIconService.d.ts +26 -2
- package/interfaces/ISacIconService.d.ts.map +1 -1
- package/interfaces/ISacLabelSizes.d.ts +27 -0
- package/interfaces/ISacLabelSizes.d.ts.map +1 -0
- package/interfaces/ISacValidationKeyService.d.ts +53 -0
- package/interfaces/ISacValidationKeyService.d.ts.map +1 -0
- package/interfaces/treeviewaction.interface.d.ts +5 -0
- package/interfaces/treeviewaction.interface.d.ts.map +1 -0
- package/package.json +2 -2
- package/public_api.d.ts +32 -21
- package/public_api.d.ts.map +1 -1
- package/services/index.d.ts +6 -4
- package/services/index.d.ts.map +1 -1
- package/services/sac-configuration.service.d.ts +127 -0
- package/services/sac-configuration.service.d.ts.map +1 -0
- package/services/sac-icon.service.d.ts +49 -1
- package/services/sac-icon.service.d.ts.map +1 -1
- package/services/sac-localisation.service.d.ts +103 -97
- package/services/sac-localisation.service.d.ts.map +1 -1
- package/services/sac-validationkey.service.d.ts +59 -0
- package/services/sac-validationkey.service.d.ts.map +1 -0
- package/simpleangularcontrols-sac-common-16.0.0-rc.11.tgz +0 -0
- package/utilities/enums.d.ts +3 -1
- package/utilities/enums.d.ts.map +1 -1
- package/utilities/guid.d.ts +5 -0
- package/utilities/guid.d.ts.map +1 -0
- package/utilities/popuphelper.d.ts +84 -0
- package/utilities/popuphelper.d.ts.map +1 -0
- package/validation/equals.validator.d.ts +3 -0
- package/validation/equals.validator.d.ts.map +1 -0
- package/validation/isDateValid.d.ts.map +1 -1
- package/validation/notequals.validator.d.ts +3 -0
- package/validation/notequals.validator.d.ts.map +1 -0
- package/validation/validation.d.ts +24 -6
- package/validation/validation.d.ts.map +1 -1
- package/controls/treeview/ngtreeitemaction.d.ts +0 -44
- package/controls/treeview/ngtreeitemaction.d.ts.map +0 -1
- package/controls/treeview/treeviewchild.d.ts +0 -16
- package/controls/treeview/treeviewchild.d.ts.map +0 -1
- package/esm2022/controls/treeview/ngtreeitemaction.mjs +0 -63
- package/esm2022/controls/treeview/treeviewchild.mjs +0 -22
- package/simpleangularcontrols-sac-common-13.0.0-rc.1.tgz +0 -0
- package/simpleangularcontrols-sac-common-16.0.0-rc.1.tgz +0 -0
|
@@ -1,174 +1,90 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import * as i1 from "../controls/form/form";
|
|
1
|
+
function cov_2if8on3zmg(){var path="C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\common\\basedatetimecontrol.mjs";var hash="8c5b9433ac21d36c10c83a67046013834e2a4322";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\common\\basedatetimecontrol.mjs",statementMap:{"0":{start:{line:22,column:8},end:{line:22,column:36}},"1":{start:{line:23,column:8},end:{line:23,column:37}},"2":{start:{line:24,column:8},end:{line:24,column:27}},"3":{start:{line:29,column:8},end:{line:29,column:45}},"4":{start:{line:33,column:8},end:{line:33,column:33}},"5":{start:{line:37,column:8},end:{line:37,column:47}},"6":{start:{line:41,column:8},end:{line:41,column:35}},"7":{start:{line:45,column:8},end:{line:45,column:32}},"8":{start:{line:49,column:8},end:{line:49,column:41}},"9":{start:{line:53,column:8},end:{line:53,column:46}},"10":{start:{line:57,column:8},end:{line:57,column:32}},"11":{start:{line:61,column:8},end:{line:61,column:33}},"12":{start:{line:65,column:8},end:{line:65,column:32}},"13":{start:{line:69,column:8},end:{line:69,column:30}},"14":{start:{line:73,column:8},end:{line:73,column:29}},"15":{start:{line:79,column:8},end:{line:79,column:43}},"16":{start:{line:83,column:8},end:{line:83,column:103}},"17":{start:{line:87,column:8},end:{line:87,column:117}},"18":{start:{line:91,column:8},end:{line:91,column:91}},"19":{start:{line:95,column:8},end:{line:95,column:105}},"20":{start:{line:101,column:8},end:{line:110,column:10}},"21":{start:{line:103,column:12},end:{line:105,column:13}},"22":{start:{line:104,column:16},end:{line:104,column:23}},"23":{start:{line:106,column:12},end:{line:109,column:15}},"24":{start:{line:107,column:16},end:{line:107,column:39}},"25":{start:{line:108,column:16},end:{line:108,column:38}},"26":{start:{line:118,column:8},end:{line:120,column:9}},"27":{start:{line:119,column:12},end:{line:119,column:60}},"28":{start:{line:121,column:8},end:{line:121,column:38}},"29":{start:{line:122,column:8},end:{line:122,column:31}},"30":{start:{line:123,column:8},end:{line:123,column:35}},"31":{start:{line:126,column:8},end:{line:126,column:36}},"32":{start:{line:132,column:8},end:{line:138,column:9}},"33":{start:{line:133,column:12},end:{line:133,column:39}},"34":{start:{line:136,column:25},end:{line:136,column:52}},"35":{start:{line:137,column:12},end:{line:137,column:71}},"36":{start:{line:144,column:8},end:{line:144,column:32}},"37":{start:{line:145,column:19},end:{line:145,column:73}},"38":{start:{line:146,column:8},end:{line:146,column:58}},"39":{start:{line:147,column:8},end:{line:152,column:9}},"40":{start:{line:148,column:12},end:{line:148,column:39}},"41":{start:{line:151,column:12},end:{line:151,column:30}},"42":{start:{line:158,column:8},end:{line:158,column:159}},"43":{start:{line:164,column:21},end:{line:164,column:40}},"44":{start:{line:165,column:21},end:{line:165,column:42}},"45":{start:{line:166,column:22},end:{line:166,column:40}},"46":{start:{line:167,column:20},end:{line:167,column:37}},"47":{start:{line:168,column:22},end:{line:168,column:40}},"48":{start:{line:169,column:24},end:{line:169,column:44}},"49":{start:{line:170,column:24},end:{line:170,column:44}},"50":{start:{line:171,column:8},end:{line:171,column:80}},"51":{start:{line:177,column:8},end:{line:177,column:69}},"52":{start:{line:183,column:8},end:{line:183,column:68}},"53":{start:{line:190,column:8},end:{line:190,column:73}},"54":{start:{line:191,column:8},end:{line:191,column:73}},"55":{start:{line:197,column:8},end:{line:197,column:25}},"56":{start:{line:198,column:8},end:{line:198,column:33}},"57":{start:{line:200,column:8},end:{line:200,column:70}},"58":{start:{line:201,column:8},end:{line:201,column:70}},"59":{start:{line:207,column:8},end:{line:207,column:29}},"60":{start:{line:213,column:20},end:{line:213,column:24}},"61":{start:{line:214,column:8},end:{line:214,column:125}},"62":{start:{line:215,column:8},end:{line:217,column:9}},"63":{start:{line:216,column:12},end:{line:216,column:114}},"64":{start:{line:218,column:8},end:{line:218,column:21}},"65":{start:{line:224,column:8},end:{line:232,column:9}},"66":{start:{line:226,column:12},end:{line:226,column:37}},"67":{start:{line:228,column:12},end:{line:228,column:31}},"68":{start:{line:231,column:12},end:{line:231,column:55}},"69":{start:{line:233,column:8},end:{line:233,column:38}},"70":{start:{line:238,column:8},end:{line:238,column:82}},"71":{start:{line:241,column:8},end:{line:241,column:81}},"72":{start:{line:247,column:22},end:{line:247,column:179}},"73":{start:{line:248,column:8},end:{line:248,column:34}},"74":{start:{line:249,column:8},end:{line:264,column:9}},"75":{start:{line:252,column:16},end:{line:252,column:86}},"76":{start:{line:253,column:16},end:{line:253,column:22}},"77":{start:{line:256,column:16},end:{line:259,column:89}},"78":{start:{line:260,column:16},end:{line:260,column:22}},"79":{start:{line:262,column:16},end:{line:262,column:41}},"80":{start:{line:263,column:16},end:{line:263,column:22}},"81":{start:{line:265,column:8},end:{line:265,column:21}},"82":{start:{line:271,column:22},end:{line:271,column:178}},"83":{start:{line:272,column:8},end:{line:272,column:33}},"84":{start:{line:273,column:8},end:{line:281,column:9}},"85":{start:{line:276,column:16},end:{line:276,column:68}},"86":{start:{line:277,column:16},end:{line:277,column:22}},"87":{start:{line:279,column:16},end:{line:279,column:40}},"88":{start:{line:280,column:16},end:{line:280,column:22}},"89":{start:{line:282,column:8},end:{line:282,column:21}},"90":{start:{line:286,column:8},end:{line:288,column:9}},"91":{start:{line:287,column:12},end:{line:287,column:81}},"92":{start:{line:290,column:13},end:{line:290,column:301}},"93":{start:{line:291,column:13},end:{line:291,column:854}},"94":{start:{line:294,column:0},end:{line:321,column:20}},"95":{start:{line:296,column:42},end:{line:296,column:164}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:21,column:4},end:{line:21,column:5}},loc:{start:{line:21,column:57},end:{line:111,column:5}},line:21},"1":{name:"(anonymous_1)",decl:{start:{line:101,column:31},end:{line:101,column:32}},loc:{start:{line:101,column:37},end:{line:110,column:9}},line:101},"2":{name:"(anonymous_2)",decl:{start:{line:106,column:23},end:{line:106,column:24}},loc:{start:{line:106,column:29},end:{line:109,column:13}},line:106},"3":{name:"(anonymous_3)",decl:{start:{line:117,column:4},end:{line:117,column:5}},loc:{start:{line:117,column:23},end:{line:124,column:5}},line:117},"4":{name:"(anonymous_4)",decl:{start:{line:125,column:4},end:{line:125,column:5}},loc:{start:{line:125,column:18},end:{line:127,column:5}},line:125},"5":{name:"(anonymous_5)",decl:{start:{line:131,column:4},end:{line:131,column:5}},loc:{start:{line:131,column:22},end:{line:139,column:5}},line:131},"6":{name:"(anonymous_6)",decl:{start:{line:143,column:4},end:{line:143,column:5}},loc:{start:{line:143,column:23},end:{line:153,column:5}},line:143},"7":{name:"(anonymous_7)",decl:{start:{line:157,column:4},end:{line:157,column:5}},loc:{start:{line:157,column:24},end:{line:159,column:5}},line:157},"8":{name:"(anonymous_8)",decl:{start:{line:163,column:4},end:{line:163,column:5}},loc:{start:{line:163,column:23},end:{line:172,column:5}},line:163},"9":{name:"(anonymous_9)",decl:{start:{line:176,column:4},end:{line:176,column:5}},loc:{start:{line:176,column:22},end:{line:178,column:5}},line:176},"10":{name:"(anonymous_10)",decl:{start:{line:182,column:4},end:{line:182,column:5}},loc:{start:{line:182,column:21},end:{line:184,column:5}},line:182},"11":{name:"(anonymous_11)",decl:{start:{line:185,column:4},end:{line:185,column:5}},loc:{start:{line:185,column:16},end:{line:187,column:5}},line:185},"12":{name:"(anonymous_12)",decl:{start:{line:188,column:4},end:{line:188,column:5}},loc:{start:{line:188,column:18},end:{line:192,column:5}},line:188},"13":{name:"(anonymous_13)",decl:{start:{line:196,column:4},end:{line:196,column:5}},loc:{start:{line:196,column:15},end:{line:202,column:5}},line:196},"14":{name:"(anonymous_14)",decl:{start:{line:206,column:4},end:{line:206,column:5}},loc:{start:{line:206,column:22},end:{line:208,column:5}},line:206},"15":{name:"(anonymous_15)",decl:{start:{line:212,column:4},end:{line:212,column:5}},loc:{start:{line:212,column:20},end:{line:219,column:5}},line:212},"16":{name:"(anonymous_16)",decl:{start:{line:223,column:4},end:{line:223,column:5}},loc:{start:{line:223,column:22},end:{line:234,column:5}},line:223},"17":{name:"(anonymous_17)",decl:{start:{line:237,column:4},end:{line:237,column:5}},loc:{start:{line:237,column:21},end:{line:239,column:5}},line:237},"18":{name:"(anonymous_18)",decl:{start:{line:240,column:4},end:{line:240,column:5}},loc:{start:{line:240,column:20},end:{line:242,column:5}},line:240},"19":{name:"(anonymous_19)",decl:{start:{line:246,column:4},end:{line:246,column:5}},loc:{start:{line:246,column:22},end:{line:266,column:5}},line:246},"20":{name:"(anonymous_20)",decl:{start:{line:270,column:4},end:{line:270,column:5}},loc:{start:{line:270,column:21},end:{line:283,column:5}},line:270},"21":{name:"(anonymous_21)",decl:{start:{line:284,column:4},end:{line:284,column:5}},loc:{start:{line:284,column:24},end:{line:289,column:5}},line:284},"22":{name:"(anonymous_22)",decl:{start:{line:296,column:28},end:{line:296,column:29}},loc:{start:{line:296,column:40},end:{line:296,column:166}},line:296}},branchMap:{"0":{loc:{start:{line:103,column:12},end:{line:105,column:13}},type:"if",locations:[{start:{line:103,column:12},end:{line:105,column:13}},{start:{line:103,column:12},end:{line:105,column:13}}],line:103},"1":{loc:{start:{line:118,column:8},end:{line:120,column:9}},type:"if",locations:[{start:{line:118,column:8},end:{line:120,column:9}},{start:{line:118,column:8},end:{line:120,column:9}}],line:118},"2":{loc:{start:{line:132,column:8},end:{line:138,column:9}},type:"if",locations:[{start:{line:132,column:8},end:{line:138,column:9}},{start:{line:132,column:8},end:{line:138,column:9}}],line:132},"3":{loc:{start:{line:147,column:8},end:{line:152,column:9}},type:"if",locations:[{start:{line:147,column:8},end:{line:152,column:9}},{start:{line:147,column:8},end:{line:152,column:9}}],line:147},"4":{loc:{start:{line:215,column:8},end:{line:217,column:9}},type:"if",locations:[{start:{line:215,column:8},end:{line:217,column:9}},{start:{line:215,column:8},end:{line:217,column:9}}],line:215},"5":{loc:{start:{line:224,column:8},end:{line:232,column:9}},type:"if",locations:[{start:{line:224,column:8},end:{line:232,column:9}},{start:{line:224,column:8},end:{line:232,column:9}}],line:224},"6":{loc:{start:{line:224,column:12},end:{line:224,column:65}},type:"binary-expr",locations:[{start:{line:224,column:12},end:{line:224,column:24}},{start:{line:224,column:28},end:{line:224,column:42}},{start:{line:224,column:46},end:{line:224,column:65}}],line:224},"7":{loc:{start:{line:238,column:15},end:{line:238,column:81}},type:"cond-expr",locations:[{start:{line:238,column:34},end:{line:238,column:77}},{start:{line:238,column:80},end:{line:238,column:81}}],line:238},"8":{loc:{start:{line:241,column:15},end:{line:241,column:80}},type:"cond-expr",locations:[{start:{line:241,column:34},end:{line:241,column:76}},{start:{line:241,column:79},end:{line:241,column:80}}],line:241},"9":{loc:{start:{line:249,column:8},end:{line:264,column:9}},type:"switch",locations:[{start:{line:250,column:12},end:{line:250,column:37}},{start:{line:251,column:12},end:{line:253,column:22}},{start:{line:254,column:12},end:{line:254,column:40}},{start:{line:255,column:12},end:{line:260,column:22}},{start:{line:261,column:12},end:{line:263,column:22}}],line:249},"10":{loc:{start:{line:273,column:8},end:{line:281,column:9}},type:"switch",locations:[{start:{line:274,column:12},end:{line:274,column:38}},{start:{line:275,column:12},end:{line:277,column:22}},{start:{line:278,column:12},end:{line:280,column:22}}],line:273},"11":{loc:{start:{line:286,column:8},end:{line:288,column:9}},type:"if",locations:[{start:{line:286,column:8},end:{line:288,column:9}},{start:{line:286,column:8},end:{line:288,column:9}}],line:286}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0,0],"7":[0,0],"8":[0,0],"9":[0,0,0,0,0],"10":[0,0,0],"11":[0,0]},inputSourceMap:{version:3,file:"basedatetimecontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/basedatetimecontrol.ts"],names:[],mappings:"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAEH,SAAS,EAIT,KAAK,EAGL,SAAS,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,OAAO,MAAM,QAAQ,CAAC;;;AAElC;;GAEG;AACH,MACsB,sBAAuB,SAAQ,mBAAyB;IA0G1E,wBAAwB;IAExB,uBAAuB;IAEvB;;;;;OAKG;IACH,YACI,UAA+B,EAC/B,QAAkB,EACR,UAAsB,EACf,KAAwB;QAEzC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAHlB,eAAU,GAAV,UAAU,CAAY;QACf,UAAK,GAAL,KAAK,CAAmB;QAvH7C,qBAAqB;QAErB;;WAEG;QACc,gBAAW,GAAgB,IAAI,WAAW,EAAE,CAAC;QAE9D;;WAEG;QACO,mBAAc,GAAG,EAAE,CAAC;QAQ9B;;WAEG;QACI,oBAAe,GAAG,eAAe,CAAC;QAEzC;;WAEG;QACI,kBAAa,GAAY,KAAK,CAAC;QAEtC;;WAEG;QACa,eAAU,GAAY,KAAK,CAAC;QAE5C;;WAEG;QACI,WAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAEnC;;WAEG;QACI,mBAAc,GAAG,eAAe,CAAC;QAUxC;;WAEG;QACa,gBAAW,GAAW,IAAI,CAAC;QAE3C;;WAEG;QACI,iBAAY,GAAkB,IAAI,CAAC;QAE1C;;WAEG;QACI,gBAAW,GAAkB,IAAI,CAAC;QAEzC;;WAEG;QACI,iBAAY,GAAW,CAAC,CAAC;QAEhC;;WAEG;QACI,gBAAW,GAAW,CAAC,CAAC;QAE/B;;;;WAIG;QAEI,aAAQ,GAAW,kBAAkB,CAAC;QAE7C;;WAEG;QACa,oCAA+B,GAAW,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC;QAElH;;WAEG;QACa,2CAAsC,GAClD,IAAI,CAAC,oBAAoB,CAAC,oCAAoC,CAAC;QAEnE;;WAEG;QACa,8BAAyB,GAAW,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,CAAC;QAEtG;;WAEG;QACa,qCAAgC,GAAW,IAAI,CAAC,oBAAoB,CAAC,8BAA8B,CAAC;QA2QpH,+BAA+B;QAE/B,0BAA0B;QAE1B;;WAEG;QACc,oBAAe,GAAG,GAAS,EAAE;YAC1C,+BAA+B;YAC/B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACrB,OAAO;aACV;YAED,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;IAzQF,CAAC;IAED,0BAA0B;IAE1B,qCAAqC;IAErC;;OAEG;IACH,IACW,MAAM,CAAC,MAAkB;QAChC,IAAI,MAAM,KAAK,SAAS,EAAE;YACtB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SACnD;QAED,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAW,WAAW;QAClB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YACrB,OAAO,IAAI,CAAC,cAAc,CAAC;SAC9B;aAAM;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;SAC9D;IACL,CAAC;IAED;;OAEG;IACH,IACW,WAAW,CAAC,CAAS;QAC5B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,IAAI,GAAmB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAElF,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QAElD,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;SAC9B;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACrB;IACL,CAAC;IAWD;;OAEG;IACI,iBAAiB;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,CACtC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,EAAE,EACpB,IAAI,CAAC,cAAc,EAAE,EACrB,IAAI,CAAC,QAAQ,EACb,KAAK,CACR,CAAC;IACN,CAAC;IAOD;;OAEG;IACI,OAAO,CAAC,SAAS;QACpB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAErC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACI,eAAe;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACI,cAAc;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAChE,CAAC;IAEM,SAAS;QACZ,0BAA0B;IAC9B,CAAC;IAEM,WAAW;QACd,4BAA4B;QAC5B,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACI,QAAQ;QACX,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,0BAA0B;QAC1B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,CAAS;QAC3B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,CAAkB;QAClC,IAAI,KAAK,GAA4B,IAAI,CAAC;QAE1C,KAAK,GAAG,UAAU,CAAC,WAAW,CAC1B,IAAI,CAAC,+BAA+B,EACpC,IAAI,CAAC,sCAAsC,CAC9C,CAAC,CAAC,CAAC,CAAC;QAEL,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC;SACzG;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,KAAoB;QAClC,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YACvD,qFAAqF;YACrF,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,wBAAwB;YACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;aAAM;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;SAC9C;QAED,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,4BAA4B;IAE5B,4BAA4B;IAElB,cAAc;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IAES,aAAa;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACO,eAAe;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAC1C,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,aAAa,EAAE,EACpB,IAAI,CAAC,cAAc,EAAE,EACrB,IAAI,CAAC,QAAQ,EACb,KAAK,CACR,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,QAAQ,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC9B,KAAK,eAAe,CAAC,GAAG,CAAC;YACzB,KAAK,eAAe,CAAC,MAAM;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtE,MAAM;YACV,KAAK,eAAe,CAAC,MAAM,CAAC;YAC5B,KAAK,eAAe,CAAC,SAAS;gBAC1B,IAAI,CAAC,YAAY;oBACb,IAAI,CAAC,cAAc,EAAE;wBACrB,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC;wBACxB,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrE,MAAM;YACV;gBACI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,MAAM;SACb;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACO,cAAc;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CACzC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,aAAa,EAAE,EACpB,IAAI,CAAC,cAAc,EAAE,EACrB,IAAI,CAAC,QAAQ,EACb,KAAK,CACR,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,QAAQ,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC9B,KAAK,eAAe,CAAC,IAAI,CAAC;YAC1B,KAAK,eAAe,CAAC,KAAK;gBACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;gBACpD,MAAM;YACV;gBACI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,MAAM;SACb;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAqBO,iBAAiB;QACrB,mIAAmI;QACnI,IAAI,IAAI,CAAC,SAAS,EAAE;YACf,IAAI,CAAC,SAAyC,CAAC,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;SACzG;IACL,CAAC;+GA3YiB,sBAAsB;mGAAtB,sBAAsB;;SAAtB,sBAAsB;4FAAtB,sBAAsB;kBAD3C,SAAS;0LAiCU,UAAU;sBAAzB,KAAK;gBAYC,WAAW;sBADjB,SAAS;uBAAC,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAOpC,YAAY;sBADlB,SAAS;uBAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAM3B,WAAW;sBAA1B,KAAK;gBA4BC,QAAQ;sBADd,KAAK;gBAMU,+BAA+B;sBAA9C,KAAK;gBAKU,sCAAsC;sBAArD,KAAK;gBAMU,yBAAyB;sBAAxC,KAAK;gBAKU,gCAAgC;sBAA/C,KAAK;gBA6BK,MAAM;sBADhB,SAAS;uBAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBA+B3B,WAAW;sBADrB,KAAK",sourcesContent:["import { SacFormLayoutCommon } from '../controls/layout/formlayout';\r\nimport { IDateTimeControl } from '../interfaces/idatetimecontrol';\r\nimport { TooltipPosition } from '../utilities/enums';\r\nimport { PopUpHelper } from '../utilities/popuphelper';\r\nimport { Validation } from '../validation';\r\nimport { SacBaseModelControl } from './basemodelcontrol';\r\nimport {\r\n ChangeDetectorRef,\r\n Directive,\r\n DoCheck,\r\n ElementRef,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport * as moment_ from 'moment';\r\n\r\n/**\r\n * Base Klasse f\xFCr Date/Time Controls\r\n */\r\n@Directive()\r\nexport abstract class SacBaseDateTimeControl extends SacBaseModelControl<Date> implements OnInit, OnDestroy, DoCheck {\r\n // #region Properties\r\n\r\n /**\r\n * Helper class to display tooltip on correct position\r\n */\r\n private readonly popupHelper: PopUpHelper = new PopUpHelper();\r\n\r\n /**\r\n * das property enthielt das Value als string. Default ist ''\r\n */\r\n protected _valueAsString = '';\r\n\r\n /**\r\n * Containers for the datetime picker\r\n */\r\n\r\n protected pickercontainer: ElementRef<HTMLElement>;\r\n\r\n /**\r\n * Property for enum in Angular HTML template\r\n */\r\n public TooltipPosition = TooltipPosition;\r\n\r\n /**\r\n * Definiert ob der Date Selector angezeigt wird\r\n */\r\n public _showselector: boolean = false;\r\n\r\n /**\r\n * Definiert das Control als Required\r\n */\r\n @Input() public isrequired: boolean = false;\r\n\r\n /**\r\n * Moment JS Instance\r\n */\r\n public moment = moment_['default'];\r\n\r\n /**\r\n * Arrow Item of Picker Element. Required to set the position of arrow correctly\r\n */\r\n public pickerPosition = TooltipPosition;\r\n @ViewChild('pickerarrow', { static: false })\r\n public pickerarrow: ElementRef<HTMLElement> | null;\r\n\r\n /**\r\n * Name of the container for content (e.g. icon) on which the tooltip is displayed.\r\n */\r\n @ViewChild('pickerbutton', { static: true })\r\n public pickerbutton: ElementRef<HTMLElement>;\r\n\r\n /**\r\n * TextBox Placeholder\r\n */\r\n @Input() public placeholder: string = null;\r\n\r\n /**\r\n * Position of the picker arrow at the left\r\n */\r\n public posArrowLeft: number | null = null;\r\n\r\n /**\r\n * Position of the picker arrow at the top\r\n */\r\n public posArrowTop: number | null = null;\r\n\r\n /**\r\n * Position of the picker at the left\r\n */\r\n public posPopupLeft: number = 0;\r\n\r\n /**\r\n * Position of the picker at the top\r\n */\r\n public posPopupTop: number = 0;\r\n\r\n /**\r\n * Position of the datetime picker. Values: left|top|right|bottom|auto\r\n *\r\n * Value 'auto' can be combined with another value.\r\n */\r\n @Input()\r\n public position: string = 'bottomend|topend';\r\n\r\n /**\r\n * Resource Key f\xFCr Validation Message DateTimeFormat bei Control\r\n */\r\n @Input() public validationmessagedatetimeformat: string = this.validationKeyService.ValidationErrorDatetimeFormat;\r\n\r\n /**\r\n * Resource Key f\xFCr Validation Message DateTimeFormat in Validation Summary\r\n */\r\n @Input() public validationmessagedatetimeformatsummary: string =\r\n this.validationKeyService.ValidationErrorSummaryDatetimeFormat;\r\n\r\n /**\r\n * Resource Key f\xFCr Validation Message Required bei Control\r\n */\r\n @Input() public validationmessagerequired: string = this.validationKeyService.ValidationErrorRequired;\r\n\r\n /**\r\n * Resource Key f\xFCr Validation Message Required in Validation Summary\r\n */\r\n @Input() public validationmessagerequiredsummary: string = this.validationKeyService.ValidationErrorSummaryRequired;\r\n\r\n // #endregion Properties\r\n\r\n // #region Constructors\r\n\r\n /**\r\n * Constructor\r\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\r\n * @param injector Injector for injecting services\r\n * @param elementRef reference to html element\r\n */\r\n constructor(\r\n formlayout: SacFormLayoutCommon,\r\n injector: Injector,\r\n protected elementRef: ElementRef,\r\n private readonly cdRef: ChangeDetectorRef\r\n ) {\r\n super(formlayout, injector);\r\n }\r\n\r\n // #endregion Constructors\r\n\r\n // #region Public Getters And Setters\r\n\r\n /**\r\n * Setter for the name of the container for the tooltip. Is required as the tooltip can be hidden via ngIf.\r\n */\r\n @ViewChild('picker', { static: false })\r\n public set picker(picker: ElementRef) {\r\n if (picker !== undefined) {\r\n document.body.appendChild(picker.nativeElement);\r\n }\r\n\r\n this.pickercontainer = picker;\r\n this.onContentChange();\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n public get tooltop(): ElementRef {\r\n return this.pickercontainer;\r\n }\r\n\r\n /**\r\n * getter f\xFCr valuestring\r\n */\r\n public get valuestring(): string {\r\n if (this.value === null) {\r\n return this._valueAsString;\r\n } else {\r\n const date = this.moment.utc(this.value);\r\n return date.local().format(this.GetDateTimeFormatString());\r\n }\r\n }\r\n\r\n /**\r\n * Das Input bekommt das value von typ string\r\n */\r\n @Input()\r\n public set valuestring(v: string) {\r\n this._valueAsString = v;\r\n let date: moment_.Moment = this.moment(v, [this.GetDateTimeFormatString()], true);\r\n\r\n date = this.ModifyParsedDateTimeValue(date).utc();\r\n\r\n if (date.isValid()) {\r\n this.value = date.toDate();\r\n } else {\r\n this.value = null;\r\n }\r\n }\r\n\r\n // #endregion Public Getters And Setters\r\n\r\n // #region Public Methods\r\n\r\n /**\r\n * Die methode returns dateTime in string\r\n */\r\n public abstract GetDateTimeFormatString(): string;\r\n\r\n /**\r\n * Returns the position of the tooltip\r\n */\r\n public GetPickerPosition(): TooltipPosition {\r\n return this.popupHelper.getDisplayPosition(\r\n this.pickerbutton,\r\n this.pickercontainer,\r\n this.getArrowWidth(),\r\n this.getArrowHeight(),\r\n this.position,\r\n false\r\n );\r\n }\r\n\r\n /**\r\n * Die methode modifiziert das eingegebene Value von typ Moment\r\n */\r\n public abstract ModifyParsedDateTimeValue(v: moment_.Moment): moment_.Moment;\r\n\r\n /**\r\n * JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann\r\n */\r\n public getDate(timestamp): moment.Moment {\r\n const date = new Date(timestamp);\r\n const year = date.getUTCFullYear();\r\n const month = date.getUTCMonth();\r\n const day = date.getUTCDate();\r\n const hours = date.getUTCHours();\r\n const minutes = date.getUTCMinutes();\r\n const seconds = date.getUTCSeconds();\r\n\r\n return this.moment(Date.UTC(year, month, day, hours, minutes, seconds));\r\n }\r\n\r\n /**\r\n * Calculates the height of the tooltip\r\n */\r\n public getPickerHeight(): number {\r\n return this.popupHelper.getPopupHeight(this.pickercontainer);\r\n }\r\n\r\n /**\r\n * Calculates the width of the picker\r\n */\r\n public getPickerWidth(): number {\r\n return this.popupHelper.getPopupWidth(this.pickercontainer);\r\n }\r\n\r\n public ngDoCheck(): void {\r\n // this.onContentChange();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n // Unregister Event Listener\r\n window.removeEventListener('scroll', this.onContentChange, true);\r\n window.removeEventListener('resize', this.onContentChange, true);\r\n }\r\n\r\n /**\r\n * Init Event\r\n */\r\n public ngOnInit(): void {\r\n super.ngOnInit();\r\n this.setDateTimeFormat();\r\n\r\n // Register Event Listener\r\n window.addEventListener('scroll', this.onContentChange, true);\r\n window.addEventListener('resize', this.onContentChange, true);\r\n }\r\n\r\n /**\r\n * setzt das value von typ string zu property valuestring\r\n */\r\n public setValueString(v: string) {\r\n this.valuestring = v;\r\n }\r\n\r\n /**\r\n * Validator\r\n */\r\n public validateData(c: AbstractControl): ValidationErrors | null {\r\n let error: ValidationErrors | null = null;\r\n\r\n error = Validation.isValidDate(\r\n this.validationmessagedatetimeformat,\r\n this.validationmessagedatetimeformatsummary\r\n )(c);\r\n\r\n if (this.isrequired) {\r\n error = Validation.required(this.validationmessagerequired, this.validationmessagerequiredsummary)(c);\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * Overwrite WriteValue to Set correct Date Object\r\n */\r\n public writeValue(value: Date | string) {\r\n if (value === '' || value === null || value === undefined) {\r\n // Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.\r\n this._valueAsString = '';\r\n // Set Internal Property\r\n this._value = null;\r\n } else {\r\n this._value = this.getDate(value).toDate();\r\n }\r\n\r\n super.writeValue(this._value);\r\n }\r\n\r\n // #endregion Public Methods\r\n\r\n // #region Protected Methods\r\n\r\n protected getArrowHeight(): number {\r\n return this.pickerarrow ? this.pickerarrow.nativeElement.offsetHeight : 0;\r\n }\r\n\r\n protected getArrowWidth(): number {\r\n return this.pickerarrow ? this.pickerarrow.nativeElement.offsetWidth : 0;\r\n }\r\n\r\n /**\r\n * Calculates the position of the tooltip from links\r\n */\r\n protected getPositionLeft(): number {\r\n const value = this.popupHelper.getPositionLeft(\r\n this.pickerbutton,\r\n this.pickercontainer,\r\n this.elementRef,\r\n this.getArrowWidth(),\r\n this.getArrowHeight(),\r\n this.position,\r\n false\r\n );\r\n this.posPopupLeft = value;\r\n\r\n switch (this.GetPickerPosition()) {\r\n case TooltipPosition.top:\r\n case TooltipPosition.bottom:\r\n this.posArrowLeft = this.getPickerWidth() / 2 - -this.getArrowWidth();\r\n break;\r\n case TooltipPosition.topend:\r\n case TooltipPosition.bottomend:\r\n this.posArrowLeft =\r\n this.getPickerWidth() -\r\n this.getArrowWidth() / 2 -\r\n this.popupHelper.getContainerWidth(this.pickerbutton, false) / 2;\r\n break;\r\n default:\r\n this.posArrowLeft = null;\r\n break;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * Calculates the position of the tooltip from the top\r\n */\r\n protected getPositionTop(): number {\r\n const value = this.popupHelper.getPositionTop(\r\n this.pickerbutton,\r\n this.pickercontainer,\r\n this.elementRef,\r\n this.getArrowWidth(),\r\n this.getArrowHeight(),\r\n this.position,\r\n false\r\n );\r\n this.posPopupTop = value;\r\n\r\n switch (this.GetPickerPosition()) {\r\n case TooltipPosition.left:\r\n case TooltipPosition.right:\r\n this.posArrowTop = this.getPickerHeight() / 2 - 6.5;\r\n break;\r\n default:\r\n this.posArrowTop = null;\r\n break;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n // #endregion Protected Methods\r\n\r\n // #region Private Methods\r\n\r\n /**\r\n * method if content has changed and proportions need to be reset in the UI.\r\n */\r\n private readonly onContentChange = (): void => {\r\n // Do nothing if is not visible\r\n if (!this._showselector) {\r\n return;\r\n }\r\n\r\n setTimeout(() => {\r\n this.getPositionLeft();\r\n this.getPositionTop();\r\n });\r\n };\r\n\r\n private setDateTimeFormat(): void {\r\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\r\n if (this.ngControl) {\r\n (this.ngControl as unknown as IDateTimeControl).datetimeformatstring = this.GetDateTimeFormatString();\r\n }\r\n }\r\n\r\n // #endregion Private Methods\r\n}\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"8c5b9433ac21d36c10c83a67046013834e2a4322"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
+
cov_2if8on3zmg=function(){return actualCoverage;};}return actualCoverage;}cov_2if8on3zmg();import{TooltipPosition}from'../utilities/enums';import{PopUpHelper}from'../utilities/popuphelper';import{Validation}from'../validation';import{SacBaseModelControl}from'./basemodelcontrol';import{Directive,Input,ViewChild}from'@angular/core';import*as moment_ from'moment';import*as i0 from"@angular/core";import*as i1 from"../controls/layout/formlayout";/**
|
|
3
|
+
* Base Klasse für Date/Time Controls
|
|
4
|
+
*/class SacBaseDateTimeControl extends SacBaseModelControl{// #endregion Properties
|
|
5
|
+
// #region Constructors
|
|
7
6
|
/**
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
* Constructor
|
|
8
|
+
* @param formlayout SacFormLayoutCommon to define scoped layout settings
|
|
9
|
+
* @param injector Injector for injecting services
|
|
10
|
+
* @param elementRef reference to html element
|
|
11
|
+
*/constructor(formlayout,injector,elementRef,cdRef){cov_2if8on3zmg().f[0]++;cov_2if8on3zmg().s[0]++;super(formlayout,injector);cov_2if8on3zmg().s[1]++;this.elementRef=elementRef;cov_2if8on3zmg().s[2]++;this.cdRef=cdRef;// #region Properties
|
|
11
12
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class SacBaseDateTimeControl extends SacBaseModelControl {
|
|
15
|
-
// #region Constructor
|
|
16
|
-
/**
|
|
17
|
-
* Konstruktor
|
|
18
|
-
* @param parent typ SacFormCommon
|
|
19
|
-
* @param injector typ Injector
|
|
20
|
-
* @param _elementRef typ ElementRef
|
|
21
|
-
*/
|
|
22
|
-
constructor(parent, injector, _elementRef) {
|
|
23
|
-
super(parent, injector);
|
|
24
|
-
this._elementRef = _elementRef;
|
|
25
|
-
//#region Abstract Methods
|
|
26
|
-
/**
|
|
13
|
+
* Helper class to display tooltip on correct position
|
|
14
|
+
*/cov_2if8on3zmg().s[3]++;this.popupHelper=new PopUpHelper();/**
|
|
27
15
|
* das property enthielt das Value als string. Default ist ''
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
|
|
16
|
+
*/cov_2if8on3zmg().s[4]++;this._valueAsString='';/**
|
|
17
|
+
* Property for enum in Angular HTML template
|
|
18
|
+
*/cov_2if8on3zmg().s[5]++;this.TooltipPosition=TooltipPosition;/**
|
|
19
|
+
* Definiert ob der Date Selector angezeigt wird
|
|
20
|
+
*/cov_2if8on3zmg().s[6]++;this._showselector=false;/**
|
|
31
21
|
* Definiert das Control als Required
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
|
-
|
|
22
|
+
*/cov_2if8on3zmg().s[7]++;this.isrequired=false;/**
|
|
23
|
+
* Moment JS Instance
|
|
24
|
+
*/cov_2if8on3zmg().s[8]++;this.moment=moment_['default'];/**
|
|
25
|
+
* Arrow Item of Picker Element. Required to set the position of arrow correctly
|
|
26
|
+
*/cov_2if8on3zmg().s[9]++;this.pickerPosition=TooltipPosition;/**
|
|
35
27
|
* TextBox Placeholder
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
*
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
*
|
|
44
|
-
*/
|
|
45
|
-
|
|
46
|
-
|
|
28
|
+
*/cov_2if8on3zmg().s[10]++;this.placeholder=null;/**
|
|
29
|
+
* Position of the picker arrow at the left
|
|
30
|
+
*/cov_2if8on3zmg().s[11]++;this.posArrowLeft=null;/**
|
|
31
|
+
* Position of the picker arrow at the top
|
|
32
|
+
*/cov_2if8on3zmg().s[12]++;this.posArrowTop=null;/**
|
|
33
|
+
* Position of the picker at the left
|
|
34
|
+
*/cov_2if8on3zmg().s[13]++;this.posPopupLeft=0;/**
|
|
35
|
+
* Position of the picker at the top
|
|
36
|
+
*/cov_2if8on3zmg().s[14]++;this.posPopupTop=0;/**
|
|
37
|
+
* Position of the datetime picker. Values: left|top|right|bottom|auto
|
|
38
|
+
*
|
|
39
|
+
* Value 'auto' can be combined with another value.
|
|
40
|
+
*/cov_2if8on3zmg().s[15]++;this.position='bottomend|topend';/**
|
|
47
41
|
* Resource Key für Validation Message DateTimeFormat bei Control
|
|
48
|
-
*/
|
|
49
|
-
this.validationmessagedatetimeformat = 'VALIDATION_ERROR_DATETIMEFORMAT';
|
|
50
|
-
/**
|
|
42
|
+
*/cov_2if8on3zmg().s[16]++;this.validationmessagedatetimeformat=this.validationKeyService.ValidationErrorDatetimeFormat;/**
|
|
51
43
|
* Resource Key für Validation Message DateTimeFormat in Validation Summary
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
// #region Properties
|
|
67
|
-
//#endregion
|
|
68
|
-
//#region ValueControlAccess
|
|
69
|
-
/**
|
|
70
|
-
* Overwrite WriteValue to Set correct Date Object
|
|
71
|
-
*/
|
|
72
|
-
writeValue(value) {
|
|
73
|
-
if (value === '' || value === null || value === undefined) {
|
|
74
|
-
// Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.
|
|
75
|
-
this._valueAsString = '';
|
|
76
|
-
// Set Internal Property
|
|
77
|
-
this._value = null;
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
this._value = this.getDate(value).toDate();
|
|
81
|
-
}
|
|
82
|
-
super.writeValue(this._value);
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann
|
|
86
|
-
*/
|
|
87
|
-
getDate(timestamp) {
|
|
88
|
-
const date = new Date(timestamp);
|
|
89
|
-
const year = date.getUTCFullYear();
|
|
90
|
-
const month = date.getUTCMonth();
|
|
91
|
-
const day = date.getUTCDate();
|
|
92
|
-
const hours = date.getUTCHours();
|
|
93
|
-
const minutes = date.getUTCMinutes();
|
|
94
|
-
const seconds = date.getUTCSeconds();
|
|
95
|
-
return moment(Date.UTC(year, month, day, hours, minutes, seconds));
|
|
96
|
-
}
|
|
97
|
-
//#endregion
|
|
98
|
-
// #region Value as String
|
|
99
|
-
/**
|
|
100
|
-
* Das Input bekommt das value von typ string
|
|
101
|
-
*/
|
|
102
|
-
set valuestring(v) {
|
|
103
|
-
this._valueAsString = v;
|
|
104
|
-
let date = moment(v, [this.GetDateTimeFormatString()], true);
|
|
105
|
-
date = this.ModifyParsedDateTimeValue(date).utc();
|
|
106
|
-
if (date.isValid()) {
|
|
107
|
-
this.value = date.toDate();
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
this.value = null;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
44
|
+
*/cov_2if8on3zmg().s[17]++;this.validationmessagedatetimeformatsummary=this.validationKeyService.ValidationErrorSummaryDatetimeFormat;/**
|
|
45
|
+
* Resource Key für Validation Message Required bei Control
|
|
46
|
+
*/cov_2if8on3zmg().s[18]++;this.validationmessagerequired=this.validationKeyService.ValidationErrorRequired;/**
|
|
47
|
+
* Resource Key für Validation Message Required in Validation Summary
|
|
48
|
+
*/cov_2if8on3zmg().s[19]++;this.validationmessagerequiredsummary=this.validationKeyService.ValidationErrorSummaryRequired;// #endregion Protected Methods
|
|
49
|
+
// #region Private Methods
|
|
50
|
+
/**
|
|
51
|
+
* method if content has changed and proportions need to be reset in the UI.
|
|
52
|
+
*/cov_2if8on3zmg().s[20]++;this.onContentChange=()=>{cov_2if8on3zmg().f[1]++;cov_2if8on3zmg().s[21]++;// Do nothing if is not visible
|
|
53
|
+
if(!this._showselector){cov_2if8on3zmg().b[0][0]++;cov_2if8on3zmg().s[22]++;return;}else{cov_2if8on3zmg().b[0][1]++;}cov_2if8on3zmg().s[23]++;setTimeout(()=>{cov_2if8on3zmg().f[2]++;cov_2if8on3zmg().s[24]++;this.getPositionLeft();cov_2if8on3zmg().s[25]++;this.getPositionTop();});};}// #endregion Constructors
|
|
54
|
+
// #region Public Getters And Setters
|
|
55
|
+
/**
|
|
56
|
+
* Setter for the name of the container for the tooltip. Is required as the tooltip can be hidden via ngIf.
|
|
57
|
+
*/set picker(picker){cov_2if8on3zmg().f[3]++;cov_2if8on3zmg().s[26]++;if(picker!==undefined){cov_2if8on3zmg().b[1][0]++;cov_2if8on3zmg().s[27]++;document.body.appendChild(picker.nativeElement);}else{cov_2if8on3zmg().b[1][1]++;}cov_2if8on3zmg().s[28]++;this.pickercontainer=picker;cov_2if8on3zmg().s[29]++;this.onContentChange();cov_2if8on3zmg().s[30]++;this.cdRef.detectChanges();}get tooltop(){cov_2if8on3zmg().f[4]++;cov_2if8on3zmg().s[31]++;return this.pickercontainer;}/**
|
|
114
58
|
* getter für valuestring
|
|
115
|
-
*/
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
59
|
+
*/get valuestring(){cov_2if8on3zmg().f[5]++;cov_2if8on3zmg().s[32]++;if(this.value===null){cov_2if8on3zmg().b[2][0]++;cov_2if8on3zmg().s[33]++;return this._valueAsString;}else{cov_2if8on3zmg().b[2][1]++;const date=(cov_2if8on3zmg().s[34]++,this.moment.utc(this.value));cov_2if8on3zmg().s[35]++;return date.local().format(this.GetDateTimeFormatString());}}/**
|
|
60
|
+
* Das Input bekommt das value von typ string
|
|
61
|
+
*/set valuestring(v){cov_2if8on3zmg().f[6]++;cov_2if8on3zmg().s[36]++;this._valueAsString=v;let date=(cov_2if8on3zmg().s[37]++,this.moment(v,[this.GetDateTimeFormatString()],true));cov_2if8on3zmg().s[38]++;date=this.ModifyParsedDateTimeValue(date).utc();cov_2if8on3zmg().s[39]++;if(date.isValid()){cov_2if8on3zmg().b[3][0]++;cov_2if8on3zmg().s[40]++;this.value=date.toDate();}else{cov_2if8on3zmg().b[3][1]++;cov_2if8on3zmg().s[41]++;this.value=null;}}/**
|
|
62
|
+
* Returns the position of the tooltip
|
|
63
|
+
*/GetPickerPosition(){cov_2if8on3zmg().f[7]++;cov_2if8on3zmg().s[42]++;return this.popupHelper.getDisplayPosition(this.pickerbutton,this.pickercontainer,this.getArrowWidth(),this.getArrowHeight(),this.position,false);}/**
|
|
64
|
+
* JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann
|
|
65
|
+
*/getDate(timestamp){cov_2if8on3zmg().f[8]++;const date=(cov_2if8on3zmg().s[43]++,new Date(timestamp));const year=(cov_2if8on3zmg().s[44]++,date.getUTCFullYear());const month=(cov_2if8on3zmg().s[45]++,date.getUTCMonth());const day=(cov_2if8on3zmg().s[46]++,date.getUTCDate());const hours=(cov_2if8on3zmg().s[47]++,date.getUTCHours());const minutes=(cov_2if8on3zmg().s[48]++,date.getUTCMinutes());const seconds=(cov_2if8on3zmg().s[49]++,date.getUTCSeconds());cov_2if8on3zmg().s[50]++;return this.moment(Date.UTC(year,month,day,hours,minutes,seconds));}/**
|
|
66
|
+
* Calculates the height of the tooltip
|
|
67
|
+
*/getPickerHeight(){cov_2if8on3zmg().f[9]++;cov_2if8on3zmg().s[51]++;return this.popupHelper.getPopupHeight(this.pickercontainer);}/**
|
|
68
|
+
* Calculates the width of the picker
|
|
69
|
+
*/getPickerWidth(){cov_2if8on3zmg().f[10]++;cov_2if8on3zmg().s[52]++;return this.popupHelper.getPopupWidth(this.pickercontainer);}ngDoCheck(){cov_2if8on3zmg().f[11]++;}// this.onContentChange();
|
|
70
|
+
ngOnDestroy(){cov_2if8on3zmg().f[12]++;cov_2if8on3zmg().s[53]++;// Unregister Event Listener
|
|
71
|
+
window.removeEventListener('scroll',this.onContentChange,true);cov_2if8on3zmg().s[54]++;window.removeEventListener('resize',this.onContentChange,true);}/**
|
|
72
|
+
* Init Event
|
|
73
|
+
*/ngOnInit(){cov_2if8on3zmg().f[13]++;cov_2if8on3zmg().s[55]++;super.ngOnInit();cov_2if8on3zmg().s[56]++;this.setDateTimeFormat();// Register Event Listener
|
|
74
|
+
cov_2if8on3zmg().s[57]++;window.addEventListener('scroll',this.onContentChange,true);cov_2if8on3zmg().s[58]++;window.addEventListener('resize',this.onContentChange,true);}/**
|
|
126
75
|
* setzt das value von typ string zu property valuestring
|
|
127
|
-
*/
|
|
128
|
-
setValueString(v) {
|
|
129
|
-
this.valuestring = v;
|
|
130
|
-
}
|
|
131
|
-
// #endregion
|
|
132
|
-
// #region Private Methods
|
|
133
|
-
SetDateTimeFormat() {
|
|
134
|
-
// HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
|
|
135
|
-
if (this.ngControl) {
|
|
136
|
-
this.ngControl.datetimeformatstring =
|
|
137
|
-
this.GetDateTimeFormatString();
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
// #endregion
|
|
141
|
-
//#region Validation
|
|
142
|
-
/**
|
|
76
|
+
*/setValueString(v){cov_2if8on3zmg().f[14]++;cov_2if8on3zmg().s[59]++;this.valuestring=v;}/**
|
|
143
77
|
* Validator
|
|
144
|
-
*/
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
156
|
-
export { SacBaseDateTimeControl };
|
|
157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacBaseDateTimeControl, decorators: [{
|
|
158
|
-
type: Directive
|
|
159
|
-
}], ctorParameters: function () { return [{ type: i1.SacFormCommon }, { type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { isrequired: [{
|
|
160
|
-
type: Input
|
|
161
|
-
}], placeholder: [{
|
|
162
|
-
type: Input
|
|
163
|
-
}], validationmessagerequired: [{
|
|
164
|
-
type: Input
|
|
165
|
-
}], validationmessagerequiredsummary: [{
|
|
166
|
-
type: Input
|
|
167
|
-
}], validationmessagedatetimeformat: [{
|
|
168
|
-
type: Input
|
|
169
|
-
}], validationmessagedatetimeformatsummary: [{
|
|
170
|
-
type: Input
|
|
171
|
-
}], valuestring: [{
|
|
172
|
-
type: Input
|
|
173
|
-
}] } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXdCLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUdsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFFekQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbEM7O0dBRUc7QUFDSCxNQUNzQixzQkFDcEIsU0FBUSxtQkFBeUI7SUFHakMsc0JBQXNCO0lBRXRCOzs7OztPQUtHO0lBQ0gsWUFDRSxNQUFxQixFQUNyQixRQUFrQixFQUNSLFdBQXVCO1FBRWpDLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFGZCxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQWVuQywwQkFBMEI7UUFFMUI7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUU5Qjs7V0FFRztRQUNNLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFckM7O1dBRUc7UUFDTSxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUVwQzs7V0FFRztRQUNNLDhCQUF5QixHQUFXLDJCQUEyQixDQUFDO1FBQ3pFOztXQUVHO1FBQ00scUNBQWdDLEdBQ3ZDLG1DQUFtQyxDQUFDO1FBRXRDOztXQUVHO1FBQ00sb0NBQStCLEdBQ3RDLGlDQUFpQyxDQUFDO1FBQ3BDOztXQUVHO1FBQ00sMkNBQXNDLEdBQzdDLHlDQUF5QyxDQUFDO0lBaEQ1QyxDQUFDO0lBRUQsYUFBYTtJQUViOztPQUVHO0lB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QUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBeUMsQ0FBQyxvQkFBb0I7Z0JBQ2xFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELGFBQWE7SUFFYixvQkFBb0I7SUFFcEI7O09BRUc7SUFDSCxZQUFZLENBQUMsQ0FBa0I7UUFDN0IsSUFBSSxLQUFLLEdBQTRCLElBQUksQ0FBQztRQUUxQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FDNUIsSUFBSSxDQUFDLCtCQUErQixFQUNwQyxJQUFJLENBQUMsc0NBQXNDLENBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQ3pCLElBQUksQ0FBQyx5QkFBeUIsRUFDOUIsSUFBSSxDQUFDLGdDQUFnQyxDQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBcE1tQixzQkFBc0I7bUdBQXRCLHNCQUFzQjs7U0FBdEIsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBRDNDLFNBQVM7b0pBeUNDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBSUcsZ0NBQWdDO3NCQUF4QyxLQUFLO2dCQU1HLCtCQUErQjtzQkFBdkMsS0FBSztnQkFLRyxzQ0FBc0M7c0JBQTlDLEtBQUs7Z0JBZ0VGLFdBQVc7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IFNhY0Zvcm1Db21tb24gfSBmcm9tICcuLi9jb250cm9scy9mb3JtL2Zvcm0nO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG5pbXBvcnQgeyBJRGF0ZVRpbWVDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZGF0ZXRpbWVjb250cm9sJztcclxuLyoqXHJcbiAqIE1vbWVudFxyXG4gKi9cclxuY29uc3QgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBEYXRlL1RpbWUgQ29udHJvbHNcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZURhdGVUaW1lQ29udHJvbFxyXG4gIGV4dGVuZHMgU2FjQmFzZU1vZGVsQ29udHJvbDxEYXRlPlxyXG4gIGltcGxlbWVudHMgT25Jbml0XHJcbntcclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yXHJcblxyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIHBhcmVudCB0eXAgU2FjRm9ybUNvbW1vblxyXG4gICAqIEBwYXJhbSBpbmplY3RvciB0eXAgSW5qZWN0b3JcclxuICAgKiBAcGFyYW0gX2VsZW1lbnRSZWYgdHlwIEVsZW1lbnRSZWZcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHBhcmVudDogU2FjRm9ybUNvbW1vbixcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByb3RlY3RlZCBfZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgc3VwZXIocGFyZW50LCBpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXQgRXZlbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLlNldERhdGVUaW1lRm9ybWF0KCk7XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gQWJzdHJhY3QgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBkYXMgcHJvcGVydHkgZW50aGllbHQgZGFzIFZhbHVlIGFscyBzdHJpbmcuIERlZmF1bHQgaXN0ICcnXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIF92YWx1ZUFzU3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRleHRCb3ggUGxhY2Vob2xkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KCkgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gJ1ZBTElEQVRJT05fRVJST1JfUkVRVUlSRUQnO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKSB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeTogc3RyaW5nID1cclxuICAgICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfUkVRVUlSRUQnO1xyXG5cclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgYmVpIENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0OiBzdHJpbmcgPVxyXG4gICAgJ1ZBTElEQVRJT05fRVJST1JfREFURVRJTUVGT1JNQVQnO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKSB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeTogc3RyaW5nID1cclxuICAgICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfREFURVRJTUVGT1JNQVQnO1xyXG5cclxuICAvKipcclxuICAgKiBEaWUgbWV0aG9kZSByZXR1cm5zIGRhdGVUaW1lIGluIHN0cmluZ1xyXG4gICAqL1xyXG4gIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogRGllIG1ldGhvZGUgbW9kaWZpemllcnQgZGFzIGVpbmdlZ2ViZW5lIFZhbHVlIHZvbiB0eXAgTW9tZW50XHJcbiAgICovXHJcbiAgYWJzdHJhY3QgTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSh2OiBNb21lbnQpOiBNb21lbnQ7XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gVmFyaWFibGVuXHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBWYWx1ZUNvbnRyb2xBY2Nlc3NcclxuXHJcbiAgLyoqXHJcbiAgICogT3ZlcndyaXRlIFdyaXRlVmFsdWUgdG8gU2V0IGNvcnJlY3QgRGF0ZSBPYmplY3RcclxuICAgKi9cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gUmVzZXQgVmFsdWUgU3RyaW5nLCBkYW1pdCBiZWltIFVwZGF0ZSBkZXMgTW9kZWxzIGF1Y2ggZGFzIElucHV0IEZlbGQgZ2VsZWVydCB3aXJkLlxyXG4gICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gJyc7XHJcbiAgICAgIC8vIFNldCBJbnRlcm5hbCBQcm9wZXJ0eVxyXG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZ2V0RGF0ZSh2YWx1ZSkudG9EYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3VwZXIud3JpdGVWYWx1ZSh0aGlzLl92YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBKU09OIERhdGUgU3RyaW5nIGluIGVpbiBVVEMgRGF0ZVRpbWUgT2JqZWN0IGtvbnZlcnRpZXJlbiwgd2VsY2hlcyB2b20gQ29udHJvbCB2ZXJ3ZW5kZXRlIHdlcmRlbiBrYW5uXHJcbiAgICovXHJcbiAgZ2V0RGF0ZSh0aW1lc3RhbXApIHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoID0gZGF0ZS5nZXRVVENNb250aCgpO1xyXG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXRVVENEYXRlKCk7XHJcbiAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0VVRDSG91cnMoKTtcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcclxuICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcclxuXHJcbiAgICByZXR1cm4gbW9tZW50KERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSk7XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8gI3JlZ2lvbiBWYWx1ZSBhcyBTdHJpbmdcclxuXHJcbiAgLyoqXHJcbiAgICogRGFzIElucHV0IGJla29tbXQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWVzdHJpbmcodjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gdjtcclxuICAgIGxldCBkYXRlOiBNb21lbnQgPSBtb21lbnQodiwgW3RoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKV0sIHRydWUpO1xyXG5cclxuICAgIGRhdGUgPSB0aGlzLk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUoZGF0ZSkudXRjKCk7XHJcblxyXG4gICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlLnRvRGF0ZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBnZXR0ZXIgZsO8ciB2YWx1ZXN0cmluZ1xyXG4gICAqL1xyXG4gIGdldCB2YWx1ZXN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlQXNTdHJpbmc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50LnV0Yyh0aGlzLnZhbHVlKTtcclxuICAgICAgcmV0dXJuIGRhdGUubG9jYWwoKS5mb3JtYXQodGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHNldHp0IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZyB6dSBwcm9wZXJ0eSB2YWx1ZXN0cmluZ1xyXG4gICAqL1xyXG4gIHNldFZhbHVlU3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgdGhpcy52YWx1ZXN0cmluZyA9IHY7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcblxyXG4gIHByaXZhdGUgU2V0RGF0ZVRpbWVGb3JtYXQoKTogdm9pZCB7XHJcbiAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxyXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElEYXRlVGltZUNvbnRyb2wpLmRhdGV0aW1lZm9ybWF0c3RyaW5nID1cclxuICAgICAgICB0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBWYWxpZGF0aW9uXHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvclxyXG4gICAqL1xyXG4gIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBlcnJvciA9IFZhbGlkYXRpb24uaXNWYWxpZERhdGUoXHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcclxuICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxyXG4gICAgKShjKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZChcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeVxyXG4gICAgICApKGMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvcjtcclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG59XHJcbiJdfQ==
|
|
78
|
+
*/validateData(c){cov_2if8on3zmg().f[15]++;let error=(cov_2if8on3zmg().s[60]++,null);cov_2if8on3zmg().s[61]++;error=Validation.isValidDate(this.validationmessagedatetimeformat,this.validationmessagedatetimeformatsummary)(c);cov_2if8on3zmg().s[62]++;if(this.isrequired){cov_2if8on3zmg().b[4][0]++;cov_2if8on3zmg().s[63]++;error=Validation.required(this.validationmessagerequired,this.validationmessagerequiredsummary)(c);}else{cov_2if8on3zmg().b[4][1]++;}cov_2if8on3zmg().s[64]++;return error;}/**
|
|
79
|
+
* Overwrite WriteValue to Set correct Date Object
|
|
80
|
+
*/writeValue(value){cov_2if8on3zmg().f[16]++;cov_2if8on3zmg().s[65]++;if((cov_2if8on3zmg().b[6][0]++,value==='')||(cov_2if8on3zmg().b[6][1]++,value===null)||(cov_2if8on3zmg().b[6][2]++,value===undefined)){cov_2if8on3zmg().b[5][0]++;cov_2if8on3zmg().s[66]++;// Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.
|
|
81
|
+
this._valueAsString='';// Set Internal Property
|
|
82
|
+
cov_2if8on3zmg().s[67]++;this._value=null;}else{cov_2if8on3zmg().b[5][1]++;cov_2if8on3zmg().s[68]++;this._value=this.getDate(value).toDate();}cov_2if8on3zmg().s[69]++;super.writeValue(this._value);}// #endregion Public Methods
|
|
83
|
+
// #region Protected Methods
|
|
84
|
+
getArrowHeight(){cov_2if8on3zmg().f[17]++;cov_2if8on3zmg().s[70]++;return this.pickerarrow?(cov_2if8on3zmg().b[7][0]++,this.pickerarrow.nativeElement.offsetHeight):(cov_2if8on3zmg().b[7][1]++,0);}getArrowWidth(){cov_2if8on3zmg().f[18]++;cov_2if8on3zmg().s[71]++;return this.pickerarrow?(cov_2if8on3zmg().b[8][0]++,this.pickerarrow.nativeElement.offsetWidth):(cov_2if8on3zmg().b[8][1]++,0);}/**
|
|
85
|
+
* Calculates the position of the tooltip from links
|
|
86
|
+
*/getPositionLeft(){cov_2if8on3zmg().f[19]++;const value=(cov_2if8on3zmg().s[72]++,this.popupHelper.getPositionLeft(this.pickerbutton,this.pickercontainer,this.elementRef,this.getArrowWidth(),this.getArrowHeight(),this.position,false));cov_2if8on3zmg().s[73]++;this.posPopupLeft=value;cov_2if8on3zmg().s[74]++;switch(this.GetPickerPosition()){case TooltipPosition.top:cov_2if8on3zmg().b[9][0]++;case TooltipPosition.bottom:cov_2if8on3zmg().b[9][1]++;cov_2if8on3zmg().s[75]++;this.posArrowLeft=this.getPickerWidth()/2- -this.getArrowWidth();cov_2if8on3zmg().s[76]++;break;case TooltipPosition.topend:cov_2if8on3zmg().b[9][2]++;case TooltipPosition.bottomend:cov_2if8on3zmg().b[9][3]++;cov_2if8on3zmg().s[77]++;this.posArrowLeft=this.getPickerWidth()-this.getArrowWidth()/2-this.popupHelper.getContainerWidth(this.pickerbutton,false)/2;cov_2if8on3zmg().s[78]++;break;default:cov_2if8on3zmg().b[9][4]++;cov_2if8on3zmg().s[79]++;this.posArrowLeft=null;cov_2if8on3zmg().s[80]++;break;}cov_2if8on3zmg().s[81]++;return value;}/**
|
|
87
|
+
* Calculates the position of the tooltip from the top
|
|
88
|
+
*/getPositionTop(){cov_2if8on3zmg().f[20]++;const value=(cov_2if8on3zmg().s[82]++,this.popupHelper.getPositionTop(this.pickerbutton,this.pickercontainer,this.elementRef,this.getArrowWidth(),this.getArrowHeight(),this.position,false));cov_2if8on3zmg().s[83]++;this.posPopupTop=value;cov_2if8on3zmg().s[84]++;switch(this.GetPickerPosition()){case TooltipPosition.left:cov_2if8on3zmg().b[10][0]++;case TooltipPosition.right:cov_2if8on3zmg().b[10][1]++;cov_2if8on3zmg().s[85]++;this.posArrowTop=this.getPickerHeight()/2-6.5;cov_2if8on3zmg().s[86]++;break;default:cov_2if8on3zmg().b[10][2]++;cov_2if8on3zmg().s[87]++;this.posArrowTop=null;cov_2if8on3zmg().s[88]++;break;}cov_2if8on3zmg().s[89]++;return value;}setDateTimeFormat(){cov_2if8on3zmg().f[21]++;cov_2if8on3zmg().s[90]++;// HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
|
|
89
|
+
if(this.ngControl){cov_2if8on3zmg().b[11][0]++;cov_2if8on3zmg().s[91]++;this.ngControl.datetimeformatstring=this.GetDateTimeFormatString();}else{cov_2if8on3zmg().b[11][1]++;}}static{cov_2if8on3zmg().s[92]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacBaseDateTimeControl,deps:[{token:i1.SacFormLayoutCommon},{token:i0.Injector},{token:i0.ElementRef},{token:i0.ChangeDetectorRef}],target:i0.ɵɵFactoryTarget.Directive});}static{cov_2if8on3zmg().s[93]++;this.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"16.2.12",type:SacBaseDateTimeControl,inputs:{isrequired:"isrequired",placeholder:"placeholder",position:"position",validationmessagedatetimeformat:"validationmessagedatetimeformat",validationmessagedatetimeformatsummary:"validationmessagedatetimeformatsummary",validationmessagerequired:"validationmessagerequired",validationmessagerequiredsummary:"validationmessagerequiredsummary",valuestring:"valuestring"},viewQueries:[{propertyName:"pickerarrow",first:true,predicate:["pickerarrow"],descendants:true},{propertyName:"pickerbutton",first:true,predicate:["pickerbutton"],descendants:true,static:true},{propertyName:"picker",first:true,predicate:["picker"],descendants:true}],usesInheritance:true,ngImport:i0});}}export{SacBaseDateTimeControl};cov_2if8on3zmg().s[94]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacBaseDateTimeControl,decorators:[{type:Directive}],ctorParameters:function(){cov_2if8on3zmg().f[22]++;cov_2if8on3zmg().s[95]++;return[{type:i1.SacFormLayoutCommon},{type:i0.Injector},{type:i0.ElementRef},{type:i0.ChangeDetectorRef}];},propDecorators:{isrequired:[{type:Input}],pickerarrow:[{type:ViewChild,args:['pickerarrow',{static:false}]}],pickerbutton:[{type:ViewChild,args:['pickerbutton',{static:true}]}],placeholder:[{type:Input}],position:[{type:Input}],validationmessagedatetimeformat:[{type:Input}],validationmessagedatetimeformatsummary:[{type:Input}],validationmessagerequired:[{type:Input}],validationmessagerequiredsummary:[{type:Input}],picker:[{type:ViewChild,args:['picker',{static:false}]}],valuestring:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBRUgsU0FBUyxFQUlULEtBQUssRUFHTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7OztBQUVsQzs7R0FFRztBQUNILE1BQ3NCLHNCQUF1QixTQUFRLG1CQUF5QjtJQTBHMUUsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7Ozs7T0FLRztJQUNILFlBQ0ksVUFBK0IsRUFDL0IsUUFBa0IsRUFDUixVQUFzQixFQUNmLEtBQXdCO1FBRXpDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFIbEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBdkg3QyxxQkFBcUI7UUFFckI7O1dBRUc7UUFDYyxnQkFBVyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRTlEOztXQUVHO1FBQ08sbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFROUI7O1dBRUc7UUFDSSxvQkFBZSxHQUFHLGVBQWUsQ0FBQztRQUV6Qzs7V0FFRztRQUNJLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRXRDOztXQUVHO1FBQ2EsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUU1Qzs7V0FFRztRQUNJLFdBQU0sR0FB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QUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztnQkFDcEQsTUFBTTtZQUNWO2dCQUNJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixNQUFNO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBcUJPLGlCQUFpQjtRQUNyQixtSUFBbUk7UUFDbkksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFNBQXlDLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7U0FDekc7SUFDTCxDQUFDOytHQTNZaUIsc0JBQXNCO21HQUF0QixzQkFBc0I7O1NBQXRCLHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQUQzQyxTQUFTOzBMQWlDVSxVQUFVO3NCQUF6QixLQUFLO2dCQVlDLFdBQVc7c0JBRGpCLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFPcEMsWUFBWTtzQkFEbEIsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU0zQixXQUFXO3NCQUExQixLQUFLO2dCQTRCQyxRQUFRO3NCQURkLEtBQUs7Z0JBTVUsK0JBQStCO3NCQUE5QyxLQUFLO2dCQUtVLHNDQUFzQztzQkFBckQsS0FBSztnQkFNVSx5QkFBeUI7c0JBQXhDLEtBQUs7Z0JBS1UsZ0NBQWdDO3NCQUEvQyxLQUFLO2dCQTZCSyxNQUFNO3NCQURoQixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBK0IzQixXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2NvbnRyb2xzL2xheW91dC9mb3JtbGF5b3V0JztcclxuaW1wb3J0IHsgSURhdGVUaW1lQ29udHJvbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWRhdGV0aW1lY29udHJvbCc7XHJcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uL3V0aWxpdGllcy9lbnVtcyc7XHJcbmltcG9ydCB7IFBvcFVwSGVscGVyIH0gZnJvbSAnLi4vdXRpbGl0aWVzL3BvcHVwaGVscGVyJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uL3ZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBTYWNCYXNlTW9kZWxDb250cm9sIH0gZnJvbSAnLi9iYXNlbW9kZWxjb250cm9sJztcclxuaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgRGlyZWN0aXZlLFxyXG4gICAgRG9DaGVjayxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcclxuXHJcbi8qKlxyXG4gKiBCYXNlIEtsYXNzZSBmw7xyIERhdGUvVGltZSBDb250cm9sc1xyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sIGV4dGVuZHMgU2FjQmFzZU1vZGVsQ29udHJvbDxEYXRlPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrIHtcclxuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIGNsYXNzIHRvIGRpc3BsYXkgdG9vbHRpcCBvbiBjb3JyZWN0IHBvc2l0aW9uXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9wdXBIZWxwZXI6IFBvcFVwSGVscGVyID0gbmV3IFBvcFVwSGVscGVyKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkYXMgcHJvcGVydHkgZW50aGllbHQgZGFzIFZhbHVlIGFscyBzdHJpbmcuIERlZmF1bHQgaXN0ICcnXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdmFsdWVBc1N0cmluZyA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udGFpbmVycyBmb3IgdGhlIGRhdGV0aW1lIHBpY2tlclxyXG4gICAgICovXHJcblxyXG4gICAgcHJvdGVjdGVkIHBpY2tlcmNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBmb3IgZW51bSBpbiBBbmd1bGFyIEhUTUwgdGVtcGxhdGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIFRvb2x0aXBQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluaWVydCBvYiBkZXIgRGF0ZSBTZWxlY3RvciBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX3Nob3dzZWxlY3RvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pZXJ0IGRhcyBDb250cm9sIGFscyBSZXF1aXJlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNyZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW9tZW50IEpTIEluc3RhbmNlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJvdyBJdGVtIG9mIFBpY2tlciBFbGVtZW50LiBSZXF1aXJlZCB0byBzZXQgdGhlIHBvc2l0aW9uIG9mIGFycm93IGNvcnJlY3RseVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcGlja2VyUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XHJcbiAgICBAVmlld0NoaWxkKCdwaWNrZXJhcnJvdycsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gICAgcHVibGljIHBpY2tlcmFycm93OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIGNvbnRlbnQgKGUuZy4gaWNvbikgb24gd2hpY2ggdGhlIHRvb2x0aXAgaXMgZGlzcGxheWVkLlxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdwaWNrZXJidXR0b24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgcHVibGljIHBpY2tlcmJ1dHRvbjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZXh0Qm94IFBsYWNlaG9sZGVyXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXJyb3cgYXQgdGhlIGxlZnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvc0Fycm93TGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSB0b3BcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvc0Fycm93VG9wOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXQgdGhlIGxlZnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvc1BvcHVwTGVmdDogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXQgdGhlIHRvcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcG9zUG9wdXBUb3A6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgZGF0ZXRpbWUgcGlja2VyLiBWYWx1ZXM6IGxlZnR8dG9wfHJpZ2h0fGJvdHRvbXxhdXRvXHJcbiAgICAgKlxyXG4gICAgICogVmFsdWUgJ2F1dG8nIGNhbiBiZSBjb21iaW5lZCB3aXRoIGFub3RoZXIgdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcG9zaXRpb246IHN0cmluZyA9ICdib3R0b21lbmR8dG9wZW5kJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBiZWkgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JEYXRldGltZUZvcm1hdDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5OiBzdHJpbmcgPVxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeURhdGV0aW1lRm9ybWF0O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclJlcXVpcmVkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnk6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIHJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbixcclxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHRlciBmb3IgdGhlIG5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgdGhlIHRvb2x0aXAuIElzIHJlcXVpcmVkIGFzIHRoZSB0b29sdGlwIGNhbiBiZSBoaWRkZW4gdmlhIG5nSWYuXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gICAgcHVibGljIHNldCBwaWNrZXIocGlja2VyOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgaWYgKHBpY2tlciAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGlja2VyLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIgPSBwaWNrZXI7XHJcbiAgICAgICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRvb2x0b3AoKTogRWxlbWVudFJlZiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyY29udGFpbmVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0dGVyIGbDvHIgdmFsdWVzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZXN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUFzU3RyaW5nO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLm1vbWVudC51dGModGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmxvY2FsKCkuZm9ybWF0KHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGFzIElucHV0IGJla29tbXQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHZhbHVlc3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSB2O1xyXG4gICAgICAgIGxldCBkYXRlOiBtb21lbnRfLk1vbWVudCA9IHRoaXMubW9tZW50KHYsIFt0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCldLCB0cnVlKTtcclxuXHJcbiAgICAgICAgZGF0ZSA9IHRoaXMuTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZShkYXRlKS51dGMoKTtcclxuXHJcbiAgICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlLnRvRGF0ZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGllIG1ldGhvZGUgcmV0dXJucyBkYXRlVGltZSBpbiBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBHZXRQaWNrZXJQb3NpdGlvbigpOiBUb29sdGlwUG9zaXRpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldERpc3BsYXlQb3NpdGlvbihcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxyXG4gICAgICAgICAgICBmYWxzZVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaWUgbWV0aG9kZSBtb2RpZml6aWVydCBkYXMgZWluZ2VnZWJlbmUgVmFsdWUgdm9uIHR5cCBNb21lbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IE1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUodjogbW9tZW50Xy5Nb21lbnQpOiBtb21lbnRfLk1vbWVudDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEpTT04gRGF0ZSBTdHJpbmcgaW4gZWluIFVUQyBEYXRlVGltZSBPYmplY3Qga29udmVydGllcmVuLCB3ZWxjaGVzIHZvbSBDb250cm9sIHZlcndlbmRldGUgd2VyZGVuIGthbm5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldERhdGUodGltZXN0YW1wKTogbW9tZW50Lk1vbWVudCB7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XHJcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcclxuICAgICAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcclxuICAgICAgICBjb25zdCBkYXkgPSBkYXRlLmdldFVUQ0RhdGUoKTtcclxuICAgICAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0VVRDSG91cnMoKTtcclxuICAgICAgICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRVVENNaW51dGVzKCk7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kcyA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5tb21lbnQoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBvZiB0aGUgdG9vbHRpcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UGlja2VySGVpZ2h0KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9wdXBIZWlnaHQodGhpcy5waWNrZXJjb250YWluZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIHBpY2tlclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UGlja2VyV2lkdGgoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cFdpZHRoKHRoaXMucGlja2VyY29udGFpbmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMub25Db250ZW50Q2hhbmdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFVucmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0IEV2ZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuc2V0RGF0ZVRpbWVGb3JtYXQoKTtcclxuXHJcbiAgICAgICAgLy8gUmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBzZXR6dCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmcgenUgcHJvcGVydHkgdmFsdWVzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFZhbHVlU3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMudmFsdWVzdHJpbmcgPSB2O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24uaXNWYWxpZERhdGUoXHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxyXG4gICAgICAgICkoYyk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnJlcXVpcmVkKHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCwgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeSkoYyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdmVyd3JpdGUgV3JpdGVWYWx1ZSB0byBTZXQgY29ycmVjdCBEYXRlIE9iamVjdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZykge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAvLyBSZXNldCBWYWx1ZSBTdHJpbmcsIGRhbWl0IGJlaW0gVXBkYXRlIGRlcyBNb2RlbHMgYXVjaCBkYXMgSW5wdXQgRmVsZCBnZWxlZXJ0IHdpcmQuXHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSAnJztcclxuICAgICAgICAgICAgLy8gU2V0IEludGVybmFsIFByb3BlcnR5XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZ2V0RGF0ZSh2YWx1ZSkudG9EYXRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xyXG5cclxuICAgIHByb3RlY3RlZCBnZXRBcnJvd0hlaWdodCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmFycm93ID8gdGhpcy5waWNrZXJhcnJvdy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCA6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEFycm93V2lkdGgoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJhcnJvdyA/IHRoaXMucGlja2VyYXJyb3cubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIGxpbmtzXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXRQb3NpdGlvbkxlZnQoKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25MZWZ0KFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZixcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcclxuICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMucG9zUG9wdXBMZWZ0ID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5HZXRQaWNrZXJQb3NpdGlvbigpKSB7XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcDpcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSB0aGlzLmdldFBpY2tlcldpZHRoKCkgLyAyIC0gLXRoaXMuZ2V0QXJyb3dXaWR0aCgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcGVuZDpcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tZW5kOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UGlja2VyV2lkdGgoKSAtXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCkgLyAyIC1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcHVwSGVscGVyLmdldENvbnRhaW5lcldpZHRoKHRoaXMucGlja2VyYnV0dG9uLCBmYWxzZSkgLyAyO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvcFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25Ub3AoKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25Ub3AoXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxyXG4gICAgICAgICAgICBmYWxzZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5wb3NQb3B1cFRvcCA9IHZhbHVlO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5sZWZ0OlxyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5yaWdodDpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSB0aGlzLmdldFBpY2tlckhlaWdodCgpIC8gMiAtIDYuNTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIG1ldGhvZCBpZiBjb250ZW50IGhhcyBjaGFuZ2VkIGFuZCBwcm9wb3J0aW9ucyBuZWVkIHRvIGJlIHJlc2V0IGluIHRoZSBVSS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkNvbnRlbnRDaGFuZ2UgPSAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJsZVxyXG4gICAgICAgIGlmICghdGhpcy5fc2hvd3NlbGVjdG9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uTGVmdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uVG9wKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHByaXZhdGUgc2V0RGF0ZVRpbWVGb3JtYXQoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gSEFDSzogQWRkIGFkZGl0aW9uIHByb3BlcnR5IHRvIEZvcm1Db250cm9sLiBDYW4gYmUgZml4ZWQgaWYgc29sdXRpb24gZm9yIHRpY2tldDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTk2ODZcclxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSURhdGVUaW1lQ29udHJvbCkuZGF0ZXRpbWVmb3JtYXRzdHJpbmcgPSB0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcbn1cclxuIl19
|
|
90
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUb29sdGlwUG9zaXRpb24iLCJQb3BVcEhlbHBlciIsIlZhbGlkYXRpb24iLCJTYWNCYXNlTW9kZWxDb250cm9sIiwiRGlyZWN0aXZlIiwiSW5wdXQiLCJWaWV3Q2hpbGQiLCJtb21lbnRfIiwiU2FjQmFzZURhdGVUaW1lQ29udHJvbCIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwiZWxlbWVudFJlZiIsImNkUmVmIiwiY292XzJpZjhvbjN6bWciLCJmIiwicyIsInBvcHVwSGVscGVyIiwiX3ZhbHVlQXNTdHJpbmciLCJfc2hvd3NlbGVjdG9yIiwiaXNyZXF1aXJlZCIsIm1vbWVudCIsInBpY2tlclBvc2l0aW9uIiwicGxhY2Vob2xkZXIiLCJwb3NBcnJvd0xlZnQiLCJwb3NBcnJvd1RvcCIsInBvc1BvcHVwTGVmdCIsInBvc1BvcHVwVG9wIiwicG9zaXRpb24iLCJ2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0IiwidmFsaWRhdGlvbktleVNlcnZpY2UiLCJWYWxpZGF0aW9uRXJyb3JEYXRldGltZUZvcm1hdCIsInZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5IiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeURhdGV0aW1lRm9ybWF0IiwidmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCIsIlZhbGlkYXRpb25FcnJvclJlcXVpcmVkIiwidmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnkiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQiLCJvbkNvbnRlbnRDaGFuZ2UiLCJiIiwic2V0VGltZW91dCIsImdldFBvc2l0aW9uTGVmdCIsImdldFBvc2l0aW9uVG9wIiwicGlja2VyIiwidW5kZWZpbmVkIiwiZG9jdW1lbnQiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJuYXRpdmVFbGVtZW50IiwicGlja2VyY29udGFpbmVyIiwiZGV0ZWN0Q2hhbmdlcyIsInRvb2x0b3AiLCJ2YWx1ZXN0cmluZyIsInZhbHVlIiwiZGF0ZSIsInV0YyIsImxvY2FsIiwiZm9ybWF0IiwiR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmciLCJ2IiwiTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSIsImlzVmFsaWQiLCJ0b0RhdGUiLCJHZXRQaWNrZXJQb3NpdGlvbiIsImdldERpc3BsYXlQb3NpdGlvbiIsInBpY2tlcmJ1dHRvbiIsImdldEFycm93V2lkdGgiLCJnZXRBcnJvd0hlaWdodCIsImdldERhdGUiLCJ0aW1lc3RhbXAiLCJEYXRlIiwieWVhciIsImdldFVUQ0Z1bGxZZWFyIiwibW9udGgiLCJnZXRVVENNb250aCIsImRheSIsImdldFVUQ0RhdGUiLCJob3VycyIsImdldFVUQ0hvdXJzIiwibWludXRlcyIsImdldFVUQ01pbnV0ZXMiLCJzZWNvbmRzIiwiZ2V0VVRDU2Vjb25kcyIsIlVUQyIsImdldFBpY2tlckhlaWdodCIsImdldFBvcHVwSGVpZ2h0IiwiZ2V0UGlja2VyV2lkdGgiLCJnZXRQb3B1cFdpZHRoIiwibmdEb0NoZWNrIiwibmdPbkRlc3Ryb3kiLCJ3aW5kb3ciLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibmdPbkluaXQiLCJzZXREYXRlVGltZUZvcm1hdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJzZXRWYWx1ZVN0cmluZyIsInZhbGlkYXRlRGF0YSIsImMiLCJlcnJvciIsImlzVmFsaWREYXRlIiwicmVxdWlyZWQiLCJ3cml0ZVZhbHVlIiwiX3ZhbHVlIiwicGlja2VyYXJyb3ciLCJvZmZzZXRIZWlnaHQiLCJvZmZzZXRXaWR0aCIsInRvcCIsImJvdHRvbSIsInRvcGVuZCIsImJvdHRvbWVuZCIsImdldENvbnRhaW5lcldpZHRoIiwibGVmdCIsInJpZ2h0IiwibmdDb250cm9sIiwiZGF0ZXRpbWVmb3JtYXRzdHJpbmciLCJkZXBzIiwidG9rZW4iLCJpMSIsIlNhY0Zvcm1MYXlvdXRDb21tb24iLCJpMCIsIkluamVjdG9yIiwiRWxlbWVudFJlZiIsIkNoYW5nZURldGVjdG9yUmVmIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJ2aWV3UXVlcmllcyIsInByb3BlcnR5TmFtZSIsImZpcnN0IiwicHJlZGljYXRlIiwiZGVzY2VuZGFudHMiLCJzdGF0aWMiLCJ1c2VzSW5oZXJpdGFuY2UiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZWRhdGV0aW1lY29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xyXG5pbXBvcnQgeyBJRGF0ZVRpbWVDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZGF0ZXRpbWVjb250cm9sJztcclxuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2VudW1zJztcclxuaW1wb3J0IHsgUG9wVXBIZWxwZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvcG9wdXBoZWxwZXInO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBEaXJlY3RpdmUsXHJcbiAgICBEb0NoZWNrLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgS2xhc3NlIGbDvHIgRGF0ZS9UaW1lIENvbnRyb2xzXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VEYXRlVGltZUNvbnRyb2wgZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPERhdGU+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERvQ2hlY2sge1xyXG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIZWxwZXIgY2xhc3MgdG8gZGlzcGxheSB0b29sdGlwIG9uIGNvcnJlY3QgcG9zaXRpb25cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3B1cEhlbHBlcjogUG9wVXBIZWxwZXIgPSBuZXcgUG9wVXBIZWxwZXIoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGRhcyBwcm9wZXJ0eSBlbnRoaWVsdCBkYXMgVmFsdWUgYWxzIHN0cmluZy4gRGVmYXVsdCBpc3QgJydcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF92YWx1ZUFzU3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb250YWluZXJzIGZvciB0aGUgZGF0ZXRpbWUgcGlja2VyXHJcbiAgICAgKi9cclxuXHJcbiAgICBwcm90ZWN0ZWQgcGlja2VyY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IGZvciBlbnVtIGluIEFuZ3VsYXIgSFRNTCB0ZW1wbGF0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgVG9vbHRpcFBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pZXJ0IG9iIGRlciBEYXRlIFNlbGVjdG9yIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBfc2hvd3NlbGVjdG9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmllcnQgZGFzIENvbnRyb2wgYWxzIFJlcXVpcmVkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb21lbnQgSlMgSW5zdGFuY2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIG1vbWVudCA9IG1vbWVudF9bJ2RlZmF1bHQnXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycm93IEl0ZW0gb2YgUGlja2VyIEVsZW1lbnQuIFJlcXVpcmVkIHRvIHNldCB0aGUgcG9zaXRpb24gb2YgYXJyb3cgY29ycmVjdGx5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwaWNrZXJQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcclxuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcmFycm93JywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgICBwdWJsaWMgcGlja2VyYXJyb3c6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgY29udGVudCAoZS5nLiBpY29uKSBvbiB3aGljaCB0aGUgdG9vbHRpcCBpcyBkaXNwbGF5ZWQuXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcmJ1dHRvbicsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgcGlja2VyYnV0dG9uOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRleHRCb3ggUGxhY2Vob2xkZXJcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgbGVmdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcG9zQXJyb3dMZWZ0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXJyb3cgYXQgdGhlIHRvcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcG9zQXJyb3dUb3A6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhdCB0aGUgbGVmdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcG9zUG9wdXBMZWZ0OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhdCB0aGUgdG9wXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwb3NQb3B1cFRvcDogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBkYXRldGltZSBwaWNrZXIuIFZhbHVlczogbGVmdHx0b3B8cmlnaHR8Ym90dG9tfGF1dG9cclxuICAgICAqXHJcbiAgICAgKiBWYWx1ZSAnYXV0bycgY2FuIGJlIGNvbWJpbmVkIHdpdGggYW5vdGhlciB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBwb3NpdGlvbjogc3RyaW5nID0gJ2JvdHRvbWVuZHx0b3BlbmQnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGJlaSBDb250cm9sXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0OiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnk6IHN0cmluZyA9XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeTogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAgICogQHBhcmFtIGVsZW1lbnRSZWYgcmVmZXJlbmNlIHRvIGh0bWwgZWxlbWVudFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0dGVyIGZvciB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGUgdG9vbHRpcC4gSXMgcmVxdWlyZWQgYXMgdGhlIHRvb2x0aXAgY2FuIGJlIGhpZGRlbiB2aWEgbmdJZi5cclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgncGlja2VyJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgICBwdWJsaWMgc2V0IHBpY2tlcihwaWNrZXI6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICBpZiAocGlja2VyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwaWNrZXIubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lciA9IHBpY2tlcjtcclxuICAgICAgICB0aGlzLm9uQ29udGVudENoYW5nZSgpO1xyXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdG9vbHRvcCgpOiBFbGVtZW50UmVmIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJjb250YWluZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXR0ZXIgZsO8ciB2YWx1ZXN0cmluZ1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlc3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlQXNTdHJpbmc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMubW9tZW50LnV0Yyh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgcmV0dXJuIGRhdGUubG9jYWwoKS5mb3JtYXQodGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYXMgSW5wdXQgYmVrb21tdCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdmFsdWVzdHJpbmcodjogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9IHY7XHJcbiAgICAgICAgbGV0IGRhdGU6IG1vbWVudF8uTW9tZW50ID0gdGhpcy5tb21lbnQodiwgW3RoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKV0sIHRydWUpO1xyXG5cclxuICAgICAgICBkYXRlID0gdGhpcy5Nb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKGRhdGUpLnV0YygpO1xyXG5cclxuICAgICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGUudG9EYXRlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaWUgbWV0aG9kZSByZXR1cm5zIGRhdGVUaW1lIGluIHN0cmluZ1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXBcclxuICAgICAqL1xyXG4gICAgcHVibGljIEdldFBpY2tlclBvc2l0aW9uKCk6IFRvb2x0aXBQb3NpdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0RGlzcGxheVBvc2l0aW9uKFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXHJcbiAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERpZSBtZXRob2RlIG1vZGlmaXppZXJ0IGRhcyBlaW5nZWdlYmVuZSBWYWx1ZSB2b24gdHlwIE1vbWVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSh2OiBtb21lbnRfLk1vbWVudCk6IG1vbWVudF8uTW9tZW50O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSlNPTiBEYXRlIFN0cmluZyBpbiBlaW4gVVRDIERhdGVUaW1lIE9iamVjdCBrb252ZXJ0aWVyZW4sIHdlbGNoZXMgdm9tIENvbnRyb2wgdmVyd2VuZGV0ZSB3ZXJkZW4ga2FublxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RGF0ZSh0aW1lc3RhbXApOiBtb21lbnQuTW9tZW50IHtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGltZXN0YW1wKTtcclxuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpO1xyXG4gICAgICAgIGNvbnN0IG1vbnRoID0gZGF0ZS5nZXRVVENNb250aCgpO1xyXG4gICAgICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0VVRDRGF0ZSgpO1xyXG4gICAgICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xyXG4gICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcclxuICAgICAgICBjb25zdCBzZWNvbmRzID0gZGF0ZS5nZXRVVENTZWNvbmRzKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLm1vbWVudChEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF5LCBob3VycywgbWludXRlcywgc2Vjb25kcykpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IG9mIHRoZSB0b29sdGlwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRQaWNrZXJIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cEhlaWdodCh0aGlzLnBpY2tlcmNvbnRhaW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiB0aGUgcGlja2VyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRQaWNrZXJXaWR0aCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwV2lkdGgodGhpcy5waWNrZXJjb250YWluZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ0RvQ2hlY2soKTogdm9pZCB7XHJcbiAgICAgICAgLy8gdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgLy8gVW5yZWdpc3RlciBFdmVudCBMaXN0ZW5lclxyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXQgRXZlbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5zZXREYXRlVGltZUZvcm1hdCgpO1xyXG5cclxuICAgICAgICAvLyBSZWdpc3RlciBFdmVudCBMaXN0ZW5lclxyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldHp0IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZyB6dSBwcm9wZXJ0eSB2YWx1ZXN0cmluZ1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0VmFsdWVTdHJpbmcodjogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZXN0cmluZyA9IHY7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3JcclxuICAgICAqL1xyXG4gICAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5pc1ZhbGlkRGF0ZShcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0LFxyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5XHJcbiAgICAgICAgKShjKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNyZXF1aXJlZCkge1xyXG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ucmVxdWlyZWQodGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLCB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5KShjKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBlcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE92ZXJ3cml0ZSBXcml0ZVZhbHVlIHRvIFNldCBjb3JyZWN0IERhdGUgT2JqZWN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIC8vIFJlc2V0IFZhbHVlIFN0cmluZywgZGFtaXQgYmVpbSBVcGRhdGUgZGVzIE1vZGVscyBhdWNoIGRhcyBJbnB1dCBGZWxkIGdlbGVlcnQgd2lyZC5cclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9ICcnO1xyXG4gICAgICAgICAgICAvLyBTZXQgSW50ZXJuYWwgUHJvcGVydHlcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5nZXREYXRlKHZhbHVlKS50b0RhdGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEFycm93SGVpZ2h0KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyYXJyb3cgPyB0aGlzLnBpY2tlcmFycm93Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IDogMDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0QXJyb3dXaWR0aCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmFycm93ID8gdGhpcy5waWNrZXJhcnJvdy5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gbGlua3NcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldFBvc2l0aW9uTGVmdCgpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3NpdGlvbkxlZnQoXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxyXG4gICAgICAgICAgICBmYWxzZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5wb3NQb3B1cExlZnQgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLkdldFBpY2tlclBvc2l0aW9uKCkpIHtcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24udG9wOlxyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5ib3R0b206XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IHRoaXMuZ2V0UGlja2VyV2lkdGgoKSAvIDIgLSAtdGhpcy5nZXRBcnJvd1dpZHRoKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24udG9wZW5kOlxyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5ib3R0b21lbmQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRQaWNrZXJXaWR0aCgpIC1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSAvIDIgLVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9wdXBIZWxwZXIuZ2V0Q29udGFpbmVyV2lkdGgodGhpcy5waWNrZXJidXR0b24sIGZhbHNlKSAvIDI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9wXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXRQb3NpdGlvblRvcCgpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3NpdGlvblRvcChcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXHJcbiAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnBvc1BvcHVwVG9wID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5HZXRQaWNrZXJQb3NpdGlvbigpKSB7XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmxlZnQ6XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnJpZ2h0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IHRoaXMuZ2V0UGlja2VySGVpZ2h0KCkgLyAyIC0gNi41O1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWV0aG9kIGlmIGNvbnRlbnQgaGFzIGNoYW5nZWQgYW5kIHByb3BvcnRpb25zIG5lZWQgdG8gYmUgcmVzZXQgaW4gdGhlIFVJLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uQ29udGVudENoYW5nZSA9ICgpOiB2b2lkID0+IHtcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmxlXHJcbiAgICAgICAgaWYgKCF0aGlzLl9zaG93c2VsZWN0b3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0UG9zaXRpb25MZWZ0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0UG9zaXRpb25Ub3AoKTtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBzZXREYXRlVGltZUZvcm1hdCgpOiB2b2lkIHtcclxuICAgICAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxyXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICAgICAgICAodGhpcy5uZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBJRGF0ZVRpbWVDb250cm9sKS5kYXRldGltZWZvcm1hdHN0cmluZyA9IHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxufVxyXG4iXSwibWFwcGluZ3MiOiI7MkZBRUEsT0FBU0EsZUFBZSxLQUFRLG9CQUFvQixDQUNwRCxPQUFT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
|