@simpleangularcontrols/sac-common 16.0.0-rc.13 → 16.0.0-rc.14
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 +15 -15
- package/controls/upload/dropzonemultiple.d.ts +5 -5
- package/controls/upload/dropzonemultiple.d.ts.map +1 -1
- package/controls/upload/dropzonesingle.d.ts +18 -18
- package/controls/upload/dropzonesingle.d.ts.map +1 -1
- package/controls/upload/uploadmultiple.d.ts +1 -1
- package/controls/upload/uploadmultiple.d.ts.map +1 -1
- package/controls/upload/uploadsingle.d.ts +1 -1
- package/controls/upload/uploadsingle.d.ts.map +1 -1
- package/esm2022/common/basedatetimecontrol.mjs +42 -42
- package/esm2022/common/baseinputcontrol.mjs +14 -14
- package/esm2022/common/baselistcontrol.mjs +11 -11
- package/esm2022/common/basemodelcontrol.mjs +75 -75
- package/esm2022/common/baseselectcontrol.mjs +6 -6
- package/esm2022/common/baseuploadcontrol.mjs +58 -58
- package/esm2022/components/browser/browser.mjs +54 -54
- package/esm2022/components/browser/models/browserfile.mjs +3 -3
- package/esm2022/components/browser/models/browserfiledeleterequest.mjs +4 -4
- package/esm2022/components/browser/models/browserfilerenamerequest.mjs +4 -4
- package/esm2022/components/browser/models/browserfileresponse.mjs +3 -3
- package/esm2022/components/browser/models/browserfilesaverequest.mjs +4 -4
- package/esm2022/components/browser/models/browsernode.mjs +3 -3
- package/esm2022/components/browser/models/browsernodedeleterequest.mjs +4 -4
- package/esm2022/components/browser/models/browsernodenewrequest.mjs +4 -4
- package/esm2022/components/browser/models/browsernoderenamerequest.mjs +4 -4
- package/esm2022/components/browser/models/browsernoderequest.mjs +4 -4
- package/esm2022/components/browser/models/browsernoderesponse.mjs +3 -3
- package/esm2022/controls/buttons/button.mjs +19 -19
- package/esm2022/controls/checkbox/checkbox.mjs +8 -8
- package/esm2022/controls/checkbox/radiobutton.mjs +22 -22
- package/esm2022/controls/checkbox/radiobuttons.mjs +15 -15
- package/esm2022/controls/confirm/confirm.button.mjs +6 -6
- package/esm2022/controls/confirm/confirm.mjs +13 -13
- package/esm2022/controls/confirm/confirm.service.mjs +20 -20
- package/esm2022/controls/contextmenu/contextmenu.interface.mjs +3 -3
- package/esm2022/controls/contextmenu/contextmenu.mjs +20 -20
- package/esm2022/controls/contextmenu/contextmenuanchor.mjs +4 -4
- package/esm2022/controls/contextmenu/contextmenucontainer.mjs +4 -4
- package/esm2022/controls/contextmenu/contextmenuitem.mjs +5 -5
- package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +15 -15
- package/esm2022/controls/datetime/date.mjs +23 -23
- package/esm2022/controls/datetime/dateselector.mjs +51 -51
- package/esm2022/controls/datetime/datetime.mjs +24 -24
- package/esm2022/controls/datetime/time.mjs +23 -23
- package/esm2022/controls/dialog/dialog.mjs +22 -22
- package/esm2022/controls/form/form.mjs +13 -13
- package/esm2022/controls/grid/grid.mjs +21 -21
- package/esm2022/controls/grid/gridbutton.mjs +8 -8
- package/esm2022/controls/grid/gridcolumn.mjs +8 -8
- package/esm2022/controls/grid/gridcolumnaction.mjs +4 -4
- package/esm2022/controls/grid/gridcolumnbase.mjs +16 -16
- package/esm2022/controls/grid/gridimage.mjs +4 -4
- package/esm2022/controls/grid/model.mjs +13 -13
- package/esm2022/controls/grid/paging.mjs +34 -34
- package/esm2022/controls/input/input.mjs +11 -11
- package/esm2022/controls/input/inputarea.mjs +10 -10
- package/esm2022/controls/input/inputcurrency.mjs +6 -6
- package/esm2022/controls/input/inputdecimal.mjs +20 -20
- package/esm2022/controls/input/inputemail.mjs +7 -7
- package/esm2022/controls/input/inputinteger.mjs +19 -19
- package/esm2022/controls/input/inputpassword.mjs +8 -8
- package/esm2022/controls/input/inputsearch.mjs +11 -11
- package/esm2022/controls/layout/formlayout.mjs +16 -16
- package/esm2022/controls/list/buildvaluestring.mjs +7 -7
- package/esm2022/controls/list/dropdown.mjs +25 -25
- package/esm2022/controls/list/dropdownoptions.mjs +10 -10
- package/esm2022/controls/list/listbox.mjs +21 -21
- package/esm2022/controls/multilanguage/multilanguageinput.mjs +26 -26
- package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +27 -27
- package/esm2022/controls/static/formcontainer.mjs +11 -11
- package/esm2022/controls/static/staticlabel.mjs +7 -7
- package/esm2022/controls/tabs/tab.mjs +11 -11
- package/esm2022/controls/tabs/tabitem.mjs +6 -6
- package/esm2022/controls/tinymce/tinymce.mjs +31 -31
- package/esm2022/controls/tinymce/tinymcedialogsettings.mjs +4 -4
- package/esm2022/controls/tinymce/tinymcedialogsettingsmeta.mjs +4 -4
- package/esm2022/controls/tinymce/tinymceinstance.mjs +3 -3
- package/esm2022/controls/tooltip/tooltip.mjs +34 -34
- package/esm2022/controls/treeview/treeview.mjs +44 -44
- package/esm2022/controls/upload/dropzonemultiple.mjs +21 -21
- package/esm2022/controls/upload/dropzonesingle.mjs +23 -20
- package/esm2022/controls/upload/uploadmultiple.mjs +16 -16
- package/esm2022/controls/upload/uploadsingle.mjs +11 -8
- package/esm2022/controls/validation/validationsummary.mjs +14 -14
- package/esm2022/controls/wizard/wizard.mjs +17 -17
- package/esm2022/controls/wizard/wizarditem.mjs +5 -5
- package/esm2022/enums/ButtonRoleType.mjs +3 -3
- package/esm2022/enums/ControlHeight.mjs +6 -6
- package/esm2022/enums/IconType.mjs +4 -4
- package/esm2022/interfaces/ISacConfigurationService.mjs +3 -3
- package/esm2022/interfaces/ISacFileBrowserService.mjs +3 -3
- package/esm2022/interfaces/ISacIconService.mjs +3 -3
- package/esm2022/interfaces/ISacLabelSizes.mjs +3 -3
- package/esm2022/interfaces/ISacLanguageService.mjs +3 -3
- package/esm2022/interfaces/ISacLocalisationService.mjs +3 -3
- package/esm2022/interfaces/ISacUploadEventCompleteState.mjs +3 -3
- package/esm2022/interfaces/ISacValidationKeyService.mjs +3 -3
- package/esm2022/interfaces/iabstractcontrollabel.mjs +3 -3
- package/esm2022/interfaces/iconfirmcomponent.mjs +3 -3
- package/esm2022/interfaces/idatetimecontrol.mjs +3 -3
- package/esm2022/interfaces/iuploadcontrol.mjs +3 -3
- package/esm2022/interfaces/treeviewaction.interface.mjs +3 -3
- package/esm2022/models/languagemodel.mjs +5 -5
- package/esm2022/public_api.mjs +4 -4
- package/esm2022/services/index.mjs +3 -3
- package/esm2022/services/sac-configuration.service.mjs +18 -18
- package/esm2022/services/sac-filebrowser.service.mjs +14 -14
- package/esm2022/services/sac-icon.service.mjs +32 -32
- package/esm2022/services/sac-language.service.mjs +6 -6
- package/esm2022/services/sac-localisation.service.mjs +19 -19
- package/esm2022/services/sac-validationkey.service.mjs +6 -6
- package/esm2022/simpleangularcontrols-sac-common.mjs +3 -3
- package/esm2022/utilities/convertion.mjs +6 -6
- package/esm2022/utilities/datatypes.mjs +4 -4
- package/esm2022/utilities/enums.mjs +10 -10
- package/esm2022/utilities/guid.mjs +6 -6
- package/esm2022/utilities/interpolation.mjs +6 -6
- package/esm2022/utilities/popuphelper.mjs +34 -34
- package/esm2022/utilities/positioning.mjs +20 -20
- package/esm2022/validation/email.validator.mjs +3 -3
- package/esm2022/validation/equals.validator.mjs +3 -3
- package/esm2022/validation/index.mjs +3 -3
- package/esm2022/validation/invaliddate.validator.mjs +3 -3
- package/esm2022/validation/isDateValid.mjs +8 -8
- package/esm2022/validation/maxdate.validator.mjs +4 -4
- package/esm2022/validation/maxtime.validator.mjs +4 -4
- package/esm2022/validation/maxvalue.validator.mjs +3 -3
- package/esm2022/validation/mindate.validator.mjs +4 -4
- package/esm2022/validation/minfiles.validator.mjs +4 -4
- package/esm2022/validation/mintextlength.validator.mjs +5 -5
- package/esm2022/validation/mintime.validator.mjs +4 -4
- package/esm2022/validation/minvalue.validator.mjs +3 -3
- package/esm2022/validation/multilanguagerequired.validator.mjs +3 -3
- package/esm2022/validation/multilanguagerequiredany.validator.mjs +3 -3
- package/esm2022/validation/notequals.validator.mjs +3 -3
- package/esm2022/validation/pattern.validator.mjs +3 -3
- package/esm2022/validation/required.validator.mjs +3 -3
- package/esm2022/validation/validation.mjs +22 -22
- package/esm2022/validation/validationerrorcreator.mjs +3 -3
- package/esm2022/validation/validationerroritem.mjs +5 -5
- package/fesm2022/simpleangularcontrols-sac-common.mjs +1152 -1146
- package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/package.json +1 -1
- package/simpleangularcontrols-sac-common-16.0.0-rc.14.tgz +0 -0
- package/simpleangularcontrols-sac-common-16.0.0-rc.13.tgz +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
function cov_2if8on3zmg(){var path="C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\common\\basedatetimecontrol.mjs";var hash="52c24f98544997f5613122b222fa5e8b32808771";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:23,column:8},end:{line:23,column:36}},"1":{start:{line:24,column:8},end:{line:24,column:37}},"2":{start:{line:25,column:8},end:{line:25,column:27}},"3":{start:{line:30,column:8},end:{line:30,column:45}},"4":{start:{line:34,column:8},end:{line:34,column:33}},"5":{start:{line:38,column:8},end:{line:38,column:47}},"6":{start:{line:42,column:8},end:{line:42,column:35}},"7":{start:{line:46,column:8},end:{line:46,column:32}},"8":{start:{line:50,column:8},end:{line:50,column:41}},"9":{start:{line:54,column:8},end:{line:54,column:46}},"10":{start:{line:58,column:8},end:{line:58,column:32}},"11":{start:{line:62,column:8},end:{line:62,column:33}},"12":{start:{line:66,column:8},end:{line:66,column:32}},"13":{start:{line:70,column:8},end:{line:70,column:30}},"14":{start:{line:74,column:8},end:{line:74,column:29}},"15":{start:{line:80,column:8},end:{line:80,column:43}},"16":{start:{line:84,column:8},end:{line:84,column:103}},"17":{start:{line:88,column:8},end:{line:88,column:117}},"18":{start:{line:92,column:8},end:{line:92,column:91}},"19":{start:{line:96,column:8},end:{line:96,column:105}},"20":{start:{line:102,column:8},end:{line:111,column:10}},"21":{start:{line:104,column:12},end:{line:106,column:13}},"22":{start:{line:105,column:16},end:{line:105,column:23}},"23":{start:{line:107,column:12},end:{line:110,column:15}},"24":{start:{line:108,column:16},end:{line:108,column:39}},"25":{start:{line:109,column:16},end:{line:109,column:38}},"26":{start:{line:119,column:8},end:{line:121,column:9}},"27":{start:{line:120,column:12},end:{line:120,column:60}},"28":{start:{line:122,column:8},end:{line:122,column:38}},"29":{start:{line:123,column:8},end:{line:123,column:31}},"30":{start:{line:124,column:8},end:{line:124,column:35}},"31":{start:{line:127,column:8},end:{line:127,column:36}},"32":{start:{line:133,column:8},end:{line:139,column:9}},"33":{start:{line:134,column:12},end:{line:134,column:39}},"34":{start:{line:137,column:25},end:{line:137,column:52}},"35":{start:{line:138,column:12},end:{line:138,column:71}},"36":{start:{line:145,column:8},end:{line:145,column:32}},"37":{start:{line:146,column:19},end:{line:146,column:73}},"38":{start:{line:147,column:8},end:{line:147,column:58}},"39":{start:{line:148,column:8},end:{line:153,column:9}},"40":{start:{line:149,column:12},end:{line:149,column:39}},"41":{start:{line:152,column:12},end:{line:152,column:30}},"42":{start:{line:159,column:8},end:{line:159,column:159}},"43":{start:{line:165,column:21},end:{line:165,column:40}},"44":{start:{line:166,column:21},end:{line:166,column:42}},"45":{start:{line:167,column:22},end:{line:167,column:40}},"46":{start:{line:168,column:20},end:{line:168,column:37}},"47":{start:{line:169,column:22},end:{line:169,column:40}},"48":{start:{line:170,column:24},end:{line:170,column:44}},"49":{start:{line:171,column:24},end:{line:171,column:44}},"50":{start:{line:172,column:8},end:{line:172,column:80}},"51":{start:{line:178,column:8},end:{line:178,column:69}},"52":{start:{line:184,column:8},end:{line:184,column:68}},"53":{start:{line:191,column:8},end:{line:191,column:73}},"54":{start:{line:192,column:8},end:{line:192,column:73}},"55":{start:{line:198,column:8},end:{line:198,column:25}},"56":{start:{line:199,column:8},end:{line:199,column:33}},"57":{start:{line:201,column:8},end:{line:201,column:70}},"58":{start:{line:202,column:8},end:{line:202,column:70}},"59":{start:{line:208,column:8},end:{line:208,column:29}},"60":{start:{line:214,column:20},end:{line:214,column:24}},"61":{start:{line:215,column:8},end:{line:220,column:9}},"62":{start:{line:216,column:12},end:{line:216,column:140}},"63":{start:{line:217,column:12},end:{line:219,column:13}},"64":{start:{line:218,column:16},end:{line:218,column:29}},"65":{start:{line:221,column:8},end:{line:221,column:125}},"66":{start:{line:222,column:8},end:{line:224,column:9}},"67":{start:{line:223,column:12},end:{line:223,column:114}},"68":{start:{line:225,column:8},end:{line:225,column:21}},"69":{start:{line:231,column:8},end:{line:239,column:9}},"70":{start:{line:233,column:12},end:{line:233,column:37}},"71":{start:{line:235,column:12},end:{line:235,column:31}},"72":{start:{line:238,column:12},end:{line:238,column:55}},"73":{start:{line:240,column:8},end:{line:240,column:38}},"74":{start:{line:245,column:8},end:{line:245,column:82}},"75":{start:{line:248,column:8},end:{line:248,column:81}},"76":{start:{line:254,column:22},end:{line:254,column:179}},"77":{start:{line:255,column:8},end:{line:255,column:34}},"78":{start:{line:256,column:8},end:{line:271,column:9}},"79":{start:{line:259,column:16},end:{line:259,column:86}},"80":{start:{line:260,column:16},end:{line:260,column:22}},"81":{start:{line:263,column:16},end:{line:266,column:89}},"82":{start:{line:267,column:16},end:{line:267,column:22}},"83":{start:{line:269,column:16},end:{line:269,column:41}},"84":{start:{line:270,column:16},end:{line:270,column:22}},"85":{start:{line:272,column:8},end:{line:272,column:21}},"86":{start:{line:278,column:22},end:{line:278,column:178}},"87":{start:{line:279,column:8},end:{line:279,column:33}},"88":{start:{line:280,column:8},end:{line:288,column:9}},"89":{start:{line:283,column:16},end:{line:283,column:68}},"90":{start:{line:284,column:16},end:{line:284,column:22}},"91":{start:{line:286,column:16},end:{line:286,column:40}},"92":{start:{line:287,column:16},end:{line:287,column:22}},"93":{start:{line:289,column:8},end:{line:289,column:21}},"94":{start:{line:293,column:8},end:{line:295,column:9}},"95":{start:{line:294,column:12},end:{line:294,column:81}},"96":{start:{line:297,column:13},end:{line:297,column:301}},"97":{start:{line:298,column:13},end:{line:298,column:854}},"98":{start:{line:301,column:0},end:{line:328,column:20}},"99":{start:{line:303,column:42},end:{line:303,column:164}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:22,column:4},end:{line:22,column:5}},loc:{start:{line:22,column:57},end:{line:112,column:5}},line:22},"1":{name:"(anonymous_1)",decl:{start:{line:102,column:31},end:{line:102,column:32}},loc:{start:{line:102,column:37},end:{line:111,column:9}},line:102},"2":{name:"(anonymous_2)",decl:{start:{line:107,column:23},end:{line:107,column:24}},loc:{start:{line:107,column:29},end:{line:110,column:13}},line:107},"3":{name:"(anonymous_3)",decl:{start:{line:118,column:4},end:{line:118,column:5}},loc:{start:{line:118,column:23},end:{line:125,column:5}},line:118},"4":{name:"(anonymous_4)",decl:{start:{line:126,column:4},end:{line:126,column:5}},loc:{start:{line:126,column:18},end:{line:128,column:5}},line:126},"5":{name:"(anonymous_5)",decl:{start:{line:132,column:4},end:{line:132,column:5}},loc:{start:{line:132,column:22},end:{line:140,column:5}},line:132},"6":{name:"(anonymous_6)",decl:{start:{line:144,column:4},end:{line:144,column:5}},loc:{start:{line:144,column:23},end:{line:154,column:5}},line:144},"7":{name:"(anonymous_7)",decl:{start:{line:158,column:4},end:{line:158,column:5}},loc:{start:{line:158,column:24},end:{line:160,column:5}},line:158},"8":{name:"(anonymous_8)",decl:{start:{line:164,column:4},end:{line:164,column:5}},loc:{start:{line:164,column:23},end:{line:173,column:5}},line:164},"9":{name:"(anonymous_9)",decl:{start:{line:177,column:4},end:{line:177,column:5}},loc:{start:{line:177,column:22},end:{line:179,column:5}},line:177},"10":{name:"(anonymous_10)",decl:{start:{line:183,column:4},end:{line:183,column:5}},loc:{start:{line:183,column:21},end:{line:185,column:5}},line:183},"11":{name:"(anonymous_11)",decl:{start:{line:186,column:4},end:{line:186,column:5}},loc:{start:{line:186,column:16},end:{line:188,column:5}},line:186},"12":{name:"(anonymous_12)",decl:{start:{line:189,column:4},end:{line:189,column:5}},loc:{start:{line:189,column:18},end:{line:193,column:5}},line:189},"13":{name:"(anonymous_13)",decl:{start:{line:197,column:4},end:{line:197,column:5}},loc:{start:{line:197,column:15},end:{line:203,column:5}},line:197},"14":{name:"(anonymous_14)",decl:{start:{line:207,column:4},end:{line:207,column:5}},loc:{start:{line:207,column:22},end:{line:209,column:5}},line:207},"15":{name:"(anonymous_15)",decl:{start:{line:213,column:4},end:{line:213,column:5}},loc:{start:{line:213,column:20},end:{line:226,column:5}},line:213},"16":{name:"(anonymous_16)",decl:{start:{line:230,column:4},end:{line:230,column:5}},loc:{start:{line:230,column:22},end:{line:241,column:5}},line:230},"17":{name:"(anonymous_17)",decl:{start:{line:244,column:4},end:{line:244,column:5}},loc:{start:{line:244,column:21},end:{line:246,column:5}},line:244},"18":{name:"(anonymous_18)",decl:{start:{line:247,column:4},end:{line:247,column:5}},loc:{start:{line:247,column:20},end:{line:249,column:5}},line:247},"19":{name:"(anonymous_19)",decl:{start:{line:253,column:4},end:{line:253,column:5}},loc:{start:{line:253,column:22},end:{line:273,column:5}},line:253},"20":{name:"(anonymous_20)",decl:{start:{line:277,column:4},end:{line:277,column:5}},loc:{start:{line:277,column:21},end:{line:290,column:5}},line:277},"21":{name:"(anonymous_21)",decl:{start:{line:291,column:4},end:{line:291,column:5}},loc:{start:{line:291,column:24},end:{line:296,column:5}},line:291},"22":{name:"(anonymous_22)",decl:{start:{line:303,column:28},end:{line:303,column:29}},loc:{start:{line:303,column:40},end:{line:303,column:166}},line:303}},branchMap:{"0":{loc:{start:{line:104,column:12},end:{line:106,column:13}},type:"if",locations:[{start:{line:104,column:12},end:{line:106,column:13}},{start:{line:104,column:12},end:{line:106,column:13}}],line:104},"1":{loc:{start:{line:119,column:8},end:{line:121,column:9}},type:"if",locations:[{start:{line:119,column:8},end:{line:121,column:9}},{start:{line:119,column:8},end:{line:121,column:9}}],line:119},"2":{loc:{start:{line:133,column:8},end:{line:139,column:9}},type:"if",locations:[{start:{line:133,column:8},end:{line:139,column:9}},{start:{line:133,column:8},end:{line:139,column:9}}],line:133},"3":{loc:{start:{line:148,column:8},end:{line:153,column:9}},type:"if",locations:[{start:{line:148,column:8},end:{line:153,column:9}},{start:{line:148,column:8},end:{line:153,column:9}}],line:148},"4":{loc:{start:{line:215,column:8},end:{line:220,column:9}},type:"if",locations:[{start:{line:215,column:8},end:{line:220,column:9}},{start:{line:215,column:8},end:{line:220,column:9}}],line:215},"5":{loc:{start:{line:215,column:12},end:{line:215,column:75}},type:"binary-expr",locations:[{start:{line:215,column:12},end:{line:215,column:37}},{start:{line:215,column:41},end:{line:215,column:75}}],line:215},"6":{loc:{start:{line:217,column:12},end:{line:219,column:13}},type:"if",locations:[{start:{line:217,column:12},end:{line:219,column:13}},{start:{line:217,column:12},end:{line:219,column:13}}],line:217},"7":{loc:{start:{line:222,column:8},end:{line:224,column:9}},type:"if",locations:[{start:{line:222,column:8},end:{line:224,column:9}},{start:{line:222,column:8},end:{line:224,column:9}}],line:222},"8":{loc:{start:{line:231,column:8},end:{line:239,column:9}},type:"if",locations:[{start:{line:231,column:8},end:{line:239,column:9}},{start:{line:231,column:8},end:{line:239,column:9}}],line:231},"9":{loc:{start:{line:231,column:12},end:{line:231,column:65}},type:"binary-expr",locations:[{start:{line:231,column:12},end:{line:231,column:24}},{start:{line:231,column:28},end:{line:231,column:42}},{start:{line:231,column:46},end:{line:231,column:65}}],line:231},"10":{loc:{start:{line:245,column:15},end:{line:245,column:81}},type:"cond-expr",locations:[{start:{line:245,column:34},end:{line:245,column:77}},{start:{line:245,column:80},end:{line:245,column:81}}],line:245},"11":{loc:{start:{line:248,column:15},end:{line:248,column:80}},type:"cond-expr",locations:[{start:{line:248,column:34},end:{line:248,column:76}},{start:{line:248,column:79},end:{line:248,column:80}}],line:248},"12":{loc:{start:{line:256,column:8},end:{line:271,column:9}},type:"switch",locations:[{start:{line:257,column:12},end:{line:257,column:37}},{start:{line:258,column:12},end:{line:260,column:22}},{start:{line:261,column:12},end:{line:261,column:40}},{start:{line:262,column:12},end:{line:267,column:22}},{start:{line:268,column:12},end:{line:270,column:22}}],line:256},"13":{loc:{start:{line:280,column:8},end:{line:288,column:9}},type:"switch",locations:[{start:{line:281,column:12},end:{line:281,column:38}},{start:{line:282,column:12},end:{line:284,column:22}},{start:{line:285,column:12},end:{line:287,column:22}}],line:280},"14":{loc:{start:{line:293,column:8},end:{line:295,column:9}},type:"if",locations:[{start:{line:293,column:8},end:{line:295,column:9}},{start:{line:293,column:8},end:{line:295,column:9}}],line:293}},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,"96":0,"97":0,"98":0,"99":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],"7":[0,0],"8":[0,0],"9":[0,0,0],"10":[0,0],"11":[0,0],"12":[0,0,0,0,0],"13":[0,0,0],"14":[0,0]},inputSourceMap:{version:3,file:"basedatetimecontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/basedatetimecontrol.ts"],names:[],mappings:"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",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 { CreateValidationError } from '../validation/validationerrorcreator';\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 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 if (this.valuestring !== null && this.valuestring.indexOf('_') >= 0) {\r\n error = CreateValidationError(\r\n 'invalidtype',\r\n this.validationmessagedatetimeformat,\r\n this.validationmessagedatetimeformatsummary\r\n );\r\n\r\n if (error) {\r\n return error;\r\n }\r\n }\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:"52c24f98544997f5613122b222fa5e8b32808771"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
-
|
|
1
|
+
function cov_193zbqns7k(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/common/basedatetimecontrol.mjs";var hash="bf218286abbd0a134fed543c6079a7e152a2c8fd";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/common/basedatetimecontrol.mjs",statementMap:{"0":{start:{line:23,column:8},end:{line:23,column:36}},"1":{start:{line:24,column:8},end:{line:24,column:37}},"2":{start:{line:25,column:8},end:{line:25,column:27}},"3":{start:{line:30,column:8},end:{line:30,column:45}},"4":{start:{line:34,column:8},end:{line:34,column:33}},"5":{start:{line:38,column:8},end:{line:38,column:47}},"6":{start:{line:42,column:8},end:{line:42,column:35}},"7":{start:{line:46,column:8},end:{line:46,column:32}},"8":{start:{line:50,column:8},end:{line:50,column:41}},"9":{start:{line:54,column:8},end:{line:54,column:46}},"10":{start:{line:58,column:8},end:{line:58,column:32}},"11":{start:{line:62,column:8},end:{line:62,column:33}},"12":{start:{line:66,column:8},end:{line:66,column:32}},"13":{start:{line:70,column:8},end:{line:70,column:30}},"14":{start:{line:74,column:8},end:{line:74,column:29}},"15":{start:{line:80,column:8},end:{line:80,column:43}},"16":{start:{line:84,column:8},end:{line:84,column:103}},"17":{start:{line:88,column:8},end:{line:88,column:117}},"18":{start:{line:92,column:8},end:{line:92,column:91}},"19":{start:{line:96,column:8},end:{line:96,column:105}},"20":{start:{line:102,column:8},end:{line:111,column:10}},"21":{start:{line:104,column:12},end:{line:106,column:13}},"22":{start:{line:105,column:16},end:{line:105,column:23}},"23":{start:{line:107,column:12},end:{line:110,column:15}},"24":{start:{line:108,column:16},end:{line:108,column:39}},"25":{start:{line:109,column:16},end:{line:109,column:38}},"26":{start:{line:119,column:8},end:{line:121,column:9}},"27":{start:{line:120,column:12},end:{line:120,column:60}},"28":{start:{line:122,column:8},end:{line:122,column:38}},"29":{start:{line:123,column:8},end:{line:123,column:31}},"30":{start:{line:124,column:8},end:{line:124,column:35}},"31":{start:{line:127,column:8},end:{line:127,column:36}},"32":{start:{line:133,column:8},end:{line:139,column:9}},"33":{start:{line:134,column:12},end:{line:134,column:39}},"34":{start:{line:137,column:25},end:{line:137,column:52}},"35":{start:{line:138,column:12},end:{line:138,column:71}},"36":{start:{line:145,column:8},end:{line:145,column:32}},"37":{start:{line:146,column:19},end:{line:146,column:73}},"38":{start:{line:147,column:8},end:{line:147,column:58}},"39":{start:{line:148,column:8},end:{line:153,column:9}},"40":{start:{line:149,column:12},end:{line:149,column:39}},"41":{start:{line:152,column:12},end:{line:152,column:30}},"42":{start:{line:159,column:8},end:{line:159,column:159}},"43":{start:{line:165,column:21},end:{line:165,column:40}},"44":{start:{line:166,column:21},end:{line:166,column:42}},"45":{start:{line:167,column:22},end:{line:167,column:40}},"46":{start:{line:168,column:20},end:{line:168,column:37}},"47":{start:{line:169,column:22},end:{line:169,column:40}},"48":{start:{line:170,column:24},end:{line:170,column:44}},"49":{start:{line:171,column:24},end:{line:171,column:44}},"50":{start:{line:172,column:8},end:{line:172,column:80}},"51":{start:{line:178,column:8},end:{line:178,column:69}},"52":{start:{line:184,column:8},end:{line:184,column:68}},"53":{start:{line:191,column:8},end:{line:191,column:73}},"54":{start:{line:192,column:8},end:{line:192,column:73}},"55":{start:{line:198,column:8},end:{line:198,column:25}},"56":{start:{line:199,column:8},end:{line:199,column:33}},"57":{start:{line:201,column:8},end:{line:201,column:70}},"58":{start:{line:202,column:8},end:{line:202,column:70}},"59":{start:{line:208,column:8},end:{line:208,column:29}},"60":{start:{line:214,column:20},end:{line:214,column:24}},"61":{start:{line:215,column:8},end:{line:220,column:9}},"62":{start:{line:216,column:12},end:{line:216,column:140}},"63":{start:{line:217,column:12},end:{line:219,column:13}},"64":{start:{line:218,column:16},end:{line:218,column:29}},"65":{start:{line:221,column:8},end:{line:221,column:125}},"66":{start:{line:222,column:8},end:{line:224,column:9}},"67":{start:{line:223,column:12},end:{line:223,column:114}},"68":{start:{line:225,column:8},end:{line:225,column:21}},"69":{start:{line:231,column:8},end:{line:239,column:9}},"70":{start:{line:233,column:12},end:{line:233,column:37}},"71":{start:{line:235,column:12},end:{line:235,column:31}},"72":{start:{line:238,column:12},end:{line:238,column:55}},"73":{start:{line:240,column:8},end:{line:240,column:38}},"74":{start:{line:245,column:8},end:{line:245,column:82}},"75":{start:{line:248,column:8},end:{line:248,column:81}},"76":{start:{line:254,column:22},end:{line:254,column:179}},"77":{start:{line:255,column:8},end:{line:255,column:34}},"78":{start:{line:256,column:8},end:{line:271,column:9}},"79":{start:{line:259,column:16},end:{line:259,column:86}},"80":{start:{line:260,column:16},end:{line:260,column:22}},"81":{start:{line:263,column:16},end:{line:266,column:89}},"82":{start:{line:267,column:16},end:{line:267,column:22}},"83":{start:{line:269,column:16},end:{line:269,column:41}},"84":{start:{line:270,column:16},end:{line:270,column:22}},"85":{start:{line:272,column:8},end:{line:272,column:21}},"86":{start:{line:278,column:22},end:{line:278,column:178}},"87":{start:{line:279,column:8},end:{line:279,column:33}},"88":{start:{line:280,column:8},end:{line:288,column:9}},"89":{start:{line:283,column:16},end:{line:283,column:68}},"90":{start:{line:284,column:16},end:{line:284,column:22}},"91":{start:{line:286,column:16},end:{line:286,column:40}},"92":{start:{line:287,column:16},end:{line:287,column:22}},"93":{start:{line:289,column:8},end:{line:289,column:21}},"94":{start:{line:293,column:8},end:{line:295,column:9}},"95":{start:{line:294,column:12},end:{line:294,column:81}},"96":{start:{line:297,column:13},end:{line:297,column:301}},"97":{start:{line:298,column:13},end:{line:298,column:854}},"98":{start:{line:301,column:0},end:{line:328,column:20}},"99":{start:{line:303,column:42},end:{line:303,column:164}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:22,column:4},end:{line:22,column:5}},loc:{start:{line:22,column:57},end:{line:112,column:5}},line:22},"1":{name:"(anonymous_1)",decl:{start:{line:102,column:31},end:{line:102,column:32}},loc:{start:{line:102,column:37},end:{line:111,column:9}},line:102},"2":{name:"(anonymous_2)",decl:{start:{line:107,column:23},end:{line:107,column:24}},loc:{start:{line:107,column:29},end:{line:110,column:13}},line:107},"3":{name:"(anonymous_3)",decl:{start:{line:118,column:4},end:{line:118,column:5}},loc:{start:{line:118,column:23},end:{line:125,column:5}},line:118},"4":{name:"(anonymous_4)",decl:{start:{line:126,column:4},end:{line:126,column:5}},loc:{start:{line:126,column:18},end:{line:128,column:5}},line:126},"5":{name:"(anonymous_5)",decl:{start:{line:132,column:4},end:{line:132,column:5}},loc:{start:{line:132,column:22},end:{line:140,column:5}},line:132},"6":{name:"(anonymous_6)",decl:{start:{line:144,column:4},end:{line:144,column:5}},loc:{start:{line:144,column:23},end:{line:154,column:5}},line:144},"7":{name:"(anonymous_7)",decl:{start:{line:158,column:4},end:{line:158,column:5}},loc:{start:{line:158,column:24},end:{line:160,column:5}},line:158},"8":{name:"(anonymous_8)",decl:{start:{line:164,column:4},end:{line:164,column:5}},loc:{start:{line:164,column:23},end:{line:173,column:5}},line:164},"9":{name:"(anonymous_9)",decl:{start:{line:177,column:4},end:{line:177,column:5}},loc:{start:{line:177,column:22},end:{line:179,column:5}},line:177},"10":{name:"(anonymous_10)",decl:{start:{line:183,column:4},end:{line:183,column:5}},loc:{start:{line:183,column:21},end:{line:185,column:5}},line:183},"11":{name:"(anonymous_11)",decl:{start:{line:186,column:4},end:{line:186,column:5}},loc:{start:{line:186,column:16},end:{line:188,column:5}},line:186},"12":{name:"(anonymous_12)",decl:{start:{line:189,column:4},end:{line:189,column:5}},loc:{start:{line:189,column:18},end:{line:193,column:5}},line:189},"13":{name:"(anonymous_13)",decl:{start:{line:197,column:4},end:{line:197,column:5}},loc:{start:{line:197,column:15},end:{line:203,column:5}},line:197},"14":{name:"(anonymous_14)",decl:{start:{line:207,column:4},end:{line:207,column:5}},loc:{start:{line:207,column:22},end:{line:209,column:5}},line:207},"15":{name:"(anonymous_15)",decl:{start:{line:213,column:4},end:{line:213,column:5}},loc:{start:{line:213,column:20},end:{line:226,column:5}},line:213},"16":{name:"(anonymous_16)",decl:{start:{line:230,column:4},end:{line:230,column:5}},loc:{start:{line:230,column:22},end:{line:241,column:5}},line:230},"17":{name:"(anonymous_17)",decl:{start:{line:244,column:4},end:{line:244,column:5}},loc:{start:{line:244,column:21},end:{line:246,column:5}},line:244},"18":{name:"(anonymous_18)",decl:{start:{line:247,column:4},end:{line:247,column:5}},loc:{start:{line:247,column:20},end:{line:249,column:5}},line:247},"19":{name:"(anonymous_19)",decl:{start:{line:253,column:4},end:{line:253,column:5}},loc:{start:{line:253,column:22},end:{line:273,column:5}},line:253},"20":{name:"(anonymous_20)",decl:{start:{line:277,column:4},end:{line:277,column:5}},loc:{start:{line:277,column:21},end:{line:290,column:5}},line:277},"21":{name:"(anonymous_21)",decl:{start:{line:291,column:4},end:{line:291,column:5}},loc:{start:{line:291,column:24},end:{line:296,column:5}},line:291},"22":{name:"(anonymous_22)",decl:{start:{line:303,column:28},end:{line:303,column:29}},loc:{start:{line:303,column:40},end:{line:303,column:166}},line:303}},branchMap:{"0":{loc:{start:{line:104,column:12},end:{line:106,column:13}},type:"if",locations:[{start:{line:104,column:12},end:{line:106,column:13}},{start:{line:104,column:12},end:{line:106,column:13}}],line:104},"1":{loc:{start:{line:119,column:8},end:{line:121,column:9}},type:"if",locations:[{start:{line:119,column:8},end:{line:121,column:9}},{start:{line:119,column:8},end:{line:121,column:9}}],line:119},"2":{loc:{start:{line:133,column:8},end:{line:139,column:9}},type:"if",locations:[{start:{line:133,column:8},end:{line:139,column:9}},{start:{line:133,column:8},end:{line:139,column:9}}],line:133},"3":{loc:{start:{line:148,column:8},end:{line:153,column:9}},type:"if",locations:[{start:{line:148,column:8},end:{line:153,column:9}},{start:{line:148,column:8},end:{line:153,column:9}}],line:148},"4":{loc:{start:{line:215,column:8},end:{line:220,column:9}},type:"if",locations:[{start:{line:215,column:8},end:{line:220,column:9}},{start:{line:215,column:8},end:{line:220,column:9}}],line:215},"5":{loc:{start:{line:215,column:12},end:{line:215,column:75}},type:"binary-expr",locations:[{start:{line:215,column:12},end:{line:215,column:37}},{start:{line:215,column:41},end:{line:215,column:75}}],line:215},"6":{loc:{start:{line:217,column:12},end:{line:219,column:13}},type:"if",locations:[{start:{line:217,column:12},end:{line:219,column:13}},{start:{line:217,column:12},end:{line:219,column:13}}],line:217},"7":{loc:{start:{line:222,column:8},end:{line:224,column:9}},type:"if",locations:[{start:{line:222,column:8},end:{line:224,column:9}},{start:{line:222,column:8},end:{line:224,column:9}}],line:222},"8":{loc:{start:{line:231,column:8},end:{line:239,column:9}},type:"if",locations:[{start:{line:231,column:8},end:{line:239,column:9}},{start:{line:231,column:8},end:{line:239,column:9}}],line:231},"9":{loc:{start:{line:231,column:12},end:{line:231,column:65}},type:"binary-expr",locations:[{start:{line:231,column:12},end:{line:231,column:24}},{start:{line:231,column:28},end:{line:231,column:42}},{start:{line:231,column:46},end:{line:231,column:65}}],line:231},"10":{loc:{start:{line:245,column:15},end:{line:245,column:81}},type:"cond-expr",locations:[{start:{line:245,column:34},end:{line:245,column:77}},{start:{line:245,column:80},end:{line:245,column:81}}],line:245},"11":{loc:{start:{line:248,column:15},end:{line:248,column:80}},type:"cond-expr",locations:[{start:{line:248,column:34},end:{line:248,column:76}},{start:{line:248,column:79},end:{line:248,column:80}}],line:248},"12":{loc:{start:{line:256,column:8},end:{line:271,column:9}},type:"switch",locations:[{start:{line:257,column:12},end:{line:257,column:37}},{start:{line:258,column:12},end:{line:260,column:22}},{start:{line:261,column:12},end:{line:261,column:40}},{start:{line:262,column:12},end:{line:267,column:22}},{start:{line:268,column:12},end:{line:270,column:22}}],line:256},"13":{loc:{start:{line:280,column:8},end:{line:288,column:9}},type:"switch",locations:[{start:{line:281,column:12},end:{line:281,column:38}},{start:{line:282,column:12},end:{line:284,column:22}},{start:{line:285,column:12},end:{line:287,column:22}}],line:280},"14":{loc:{start:{line:293,column:8},end:{line:295,column:9}},type:"if",locations:[{start:{line:293,column:8},end:{line:295,column:9}},{start:{line:293,column:8},end:{line:295,column:9}}],line:293}},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,"96":0,"97":0,"98":0,"99":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],"7":[0,0],"8":[0,0],"9":[0,0,0],"10":[0,0],"11":[0,0],"12":[0,0,0,0,0],"13":[0,0,0],"14":[0,0]},inputSourceMap:{version:3,file:"basedatetimecontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/basedatetimecontrol.ts"],names:[],mappings:"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",sourcesContent:["import { SacFormLayoutCommon } from '../controls/layout/formlayout';\nimport { IDateTimeControl } from '../interfaces/idatetimecontrol';\nimport { TooltipPosition } from '../utilities/enums';\nimport { PopUpHelper } from '../utilities/popuphelper';\nimport { Validation } from '../validation';\nimport { CreateValidationError } from '../validation/validationerrorcreator';\nimport { SacBaseModelControl } from './basemodelcontrol';\nimport {\n ChangeDetectorRef,\n Directive,\n DoCheck,\n ElementRef,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\nimport * as moment_ from 'moment';\n\n/**\n * Base Klasse f\xFCr Date/Time Controls\n */\n@Directive()\nexport abstract class SacBaseDateTimeControl extends SacBaseModelControl<Date> implements OnInit, OnDestroy, DoCheck {\n // #region Properties\n\n /**\n * Helper class to display tooltip on correct position\n */\n private readonly popupHelper: PopUpHelper = new PopUpHelper();\n\n /**\n * das property enthielt das Value als string. Default ist ''\n */\n protected _valueAsString = '';\n\n /**\n * Containers for the datetime picker\n */\n protected pickercontainer: ElementRef<HTMLElement>;\n\n /**\n * Property for enum in Angular HTML template\n */\n public TooltipPosition = TooltipPosition;\n\n /**\n * Definiert ob der Date Selector angezeigt wird\n */\n public _showselector: boolean = false;\n\n /**\n * Definiert das Control als Required\n */\n @Input() public isrequired: boolean = false;\n\n /**\n * Moment JS Instance\n */\n public moment = moment_['default'];\n\n /**\n * Arrow Item of Picker Element. Required to set the position of arrow correctly\n */\n public pickerPosition = TooltipPosition;\n @ViewChild('pickerarrow', { static: false })\n public pickerarrow: ElementRef<HTMLElement> | null;\n\n /**\n * Name of the container for content (e.g. icon) on which the tooltip is displayed.\n */\n @ViewChild('pickerbutton', { static: true })\n public pickerbutton: ElementRef<HTMLElement>;\n\n /**\n * TextBox Placeholder\n */\n @Input() public placeholder: string = null;\n\n /**\n * Position of the picker arrow at the left\n */\n public posArrowLeft: number | null = null;\n\n /**\n * Position of the picker arrow at the top\n */\n public posArrowTop: number | null = null;\n\n /**\n * Position of the picker at the left\n */\n public posPopupLeft: number = 0;\n\n /**\n * Position of the picker at the top\n */\n public posPopupTop: number = 0;\n\n /**\n * Position of the datetime picker. Values: left|top|right|bottom|auto\n *\n * Value 'auto' can be combined with another value.\n */\n @Input()\n public position: string = 'bottomend|topend';\n\n /**\n * Resource Key f\xFCr Validation Message DateTimeFormat bei Control\n */\n @Input() public validationmessagedatetimeformat: string = this.validationKeyService.ValidationErrorDatetimeFormat;\n\n /**\n * Resource Key f\xFCr Validation Message DateTimeFormat in Validation Summary\n */\n @Input() public validationmessagedatetimeformatsummary: string =\n this.validationKeyService.ValidationErrorSummaryDatetimeFormat;\n\n /**\n * Resource Key f\xFCr Validation Message Required bei Control\n */\n @Input() public validationmessagerequired: string = this.validationKeyService.ValidationErrorRequired;\n\n /**\n * Resource Key f\xFCr Validation Message Required in Validation Summary\n */\n @Input() public validationmessagerequiredsummary: string = this.validationKeyService.ValidationErrorSummaryRequired;\n\n // #endregion Properties\n\n // #region Constructors\n\n /**\n * Constructor\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\n * @param injector Injector for injecting services\n * @param elementRef reference to html element\n */\n constructor(\n formlayout: SacFormLayoutCommon,\n injector: Injector,\n protected elementRef: ElementRef,\n private readonly cdRef: ChangeDetectorRef\n ) {\n super(formlayout, injector);\n }\n\n // #endregion Constructors\n\n // #region Public Getters And Setters\n\n /**\n * Setter for the name of the container for the tooltip. Is required as the tooltip can be hidden via ngIf.\n */\n @ViewChild('picker', { static: false })\n public set picker(picker: ElementRef) {\n if (picker !== undefined) {\n document.body.appendChild(picker.nativeElement);\n }\n\n this.pickercontainer = picker;\n this.onContentChange();\n this.cdRef.detectChanges();\n }\n\n public get tooltop(): ElementRef {\n return this.pickercontainer;\n }\n\n /**\n * getter f\xFCr valuestring\n */\n public get valuestring(): string {\n if (this.value === null) {\n return this._valueAsString;\n } else {\n const date = this.moment.utc(this.value);\n return date.local().format(this.GetDateTimeFormatString());\n }\n }\n\n /**\n * Das Input bekommt das value von typ string\n */\n @Input()\n public set valuestring(v: string) {\n this._valueAsString = v;\n let date: moment_.Moment = this.moment(v, [this.GetDateTimeFormatString()], true);\n\n date = this.ModifyParsedDateTimeValue(date).utc();\n\n if (date.isValid()) {\n this.value = date.toDate();\n } else {\n this.value = null;\n }\n }\n\n // #endregion Public Getters And Setters\n\n // #region Public Methods\n\n /**\n * Die methode returns dateTime in string\n */\n public abstract GetDateTimeFormatString(): string;\n\n /**\n * Returns the position of the tooltip\n */\n public GetPickerPosition(): TooltipPosition {\n return this.popupHelper.getDisplayPosition(\n this.pickerbutton,\n this.pickercontainer,\n this.getArrowWidth(),\n this.getArrowHeight(),\n this.position,\n false\n );\n }\n\n /**\n * Die methode modifiziert das eingegebene Value von typ Moment\n */\n public abstract ModifyParsedDateTimeValue(v: moment_.Moment): moment_.Moment;\n\n /**\n * JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann\n */\n public getDate(timestamp): moment.Moment {\n const date = new Date(timestamp);\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const day = date.getUTCDate();\n const hours = date.getUTCHours();\n const minutes = date.getUTCMinutes();\n const seconds = date.getUTCSeconds();\n\n return this.moment(Date.UTC(year, month, day, hours, minutes, seconds));\n }\n\n /**\n * Calculates the height of the tooltip\n */\n public getPickerHeight(): number {\n return this.popupHelper.getPopupHeight(this.pickercontainer);\n }\n\n /**\n * Calculates the width of the picker\n */\n public getPickerWidth(): number {\n return this.popupHelper.getPopupWidth(this.pickercontainer);\n }\n\n public ngDoCheck(): void {\n // this.onContentChange();\n }\n\n public ngOnDestroy(): void {\n // Unregister Event Listener\n window.removeEventListener('scroll', this.onContentChange, true);\n window.removeEventListener('resize', this.onContentChange, true);\n }\n\n /**\n * Init Event\n */\n public ngOnInit(): void {\n super.ngOnInit();\n this.setDateTimeFormat();\n\n // Register Event Listener\n window.addEventListener('scroll', this.onContentChange, true);\n window.addEventListener('resize', this.onContentChange, true);\n }\n\n /**\n * setzt das value von typ string zu property valuestring\n */\n public setValueString(v: string) {\n this.valuestring = v;\n }\n\n /**\n * Validator\n */\n public validateData(c: AbstractControl): ValidationErrors | null {\n let error: ValidationErrors | null = null;\n\n if (this.valuestring !== null && this.valuestring.indexOf('_') >= 0) {\n error = CreateValidationError(\n 'invalidtype',\n this.validationmessagedatetimeformat,\n this.validationmessagedatetimeformatsummary\n );\n\n if (error) {\n return error;\n }\n }\n\n error = Validation.isValidDate(\n this.validationmessagedatetimeformat,\n this.validationmessagedatetimeformatsummary\n )(c);\n\n if (this.isrequired) {\n error = Validation.required(this.validationmessagerequired, this.validationmessagerequiredsummary)(c);\n }\n\n return error;\n }\n\n /**\n * Overwrite WriteValue to Set correct Date Object\n */\n public writeValue(value: Date | string) {\n if (value === '' || value === null || value === undefined) {\n // Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.\n this._valueAsString = '';\n // Set Internal Property\n this._value = null;\n } else {\n this._value = this.getDate(value).toDate();\n }\n\n super.writeValue(this._value);\n }\n\n // #endregion Public Methods\n\n // #region Protected Methods\n\n protected getArrowHeight(): number {\n return this.pickerarrow ? this.pickerarrow.nativeElement.offsetHeight : 0;\n }\n\n protected getArrowWidth(): number {\n return this.pickerarrow ? this.pickerarrow.nativeElement.offsetWidth : 0;\n }\n\n /**\n * Calculates the position of the tooltip from links\n */\n protected getPositionLeft(): number {\n const value = this.popupHelper.getPositionLeft(\n this.pickerbutton,\n this.pickercontainer,\n this.elementRef,\n this.getArrowWidth(),\n this.getArrowHeight(),\n this.position,\n false\n );\n this.posPopupLeft = value;\n\n switch (this.GetPickerPosition()) {\n case TooltipPosition.top:\n case TooltipPosition.bottom:\n this.posArrowLeft = this.getPickerWidth() / 2 - -this.getArrowWidth();\n break;\n case TooltipPosition.topend:\n case TooltipPosition.bottomend:\n this.posArrowLeft =\n this.getPickerWidth() -\n this.getArrowWidth() / 2 -\n this.popupHelper.getContainerWidth(this.pickerbutton, false) / 2;\n break;\n default:\n this.posArrowLeft = null;\n break;\n }\n\n return value;\n }\n\n /**\n * Calculates the position of the tooltip from the top\n */\n protected getPositionTop(): number {\n const value = this.popupHelper.getPositionTop(\n this.pickerbutton,\n this.pickercontainer,\n this.elementRef,\n this.getArrowWidth(),\n this.getArrowHeight(),\n this.position,\n false\n );\n this.posPopupTop = value;\n\n switch (this.GetPickerPosition()) {\n case TooltipPosition.left:\n case TooltipPosition.right:\n this.posArrowTop = this.getPickerHeight() / 2 - 6.5;\n break;\n default:\n this.posArrowTop = null;\n break;\n }\n\n return value;\n }\n\n // #endregion Protected Methods\n\n // #region Private Methods\n\n /**\n * method if content has changed and proportions need to be reset in the UI.\n */\n private readonly onContentChange = (): void => {\n // Do nothing if is not visible\n if (!this._showselector) {\n return;\n }\n\n setTimeout(() => {\n this.getPositionLeft();\n this.getPositionTop();\n });\n };\n\n private setDateTimeFormat(): void {\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\n if (this.ngControl) {\n (this.ngControl as unknown as IDateTimeControl).datetimeformatstring = this.GetDateTimeFormatString();\n }\n }\n\n // #endregion Private Methods\n}\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"bf218286abbd0a134fed543c6079a7e152a2c8fd"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
+
cov_193zbqns7k=function(){return actualCoverage;};}return actualCoverage;}cov_193zbqns7k();import{TooltipPosition}from'../utilities/enums';import{PopUpHelper}from'../utilities/popuphelper';import{Validation}from'../validation';import{CreateValidationError}from'../validation/validationerrorcreator';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
3
|
* Base Klasse für Date/Time Controls
|
|
4
4
|
*/class SacBaseDateTimeControl extends SacBaseModelControl{// #endregion Properties
|
|
5
5
|
// #region Constructors
|
|
@@ -8,83 +8,83 @@ cov_2if8on3zmg=function(){return actualCoverage;};}return actualCoverage;}cov_2i
|
|
|
8
8
|
* @param formlayout SacFormLayoutCommon to define scoped layout settings
|
|
9
9
|
* @param injector Injector for injecting services
|
|
10
10
|
* @param elementRef reference to html element
|
|
11
|
-
*/constructor(formlayout,injector,elementRef,cdRef){
|
|
11
|
+
*/constructor(formlayout,injector,elementRef,cdRef){cov_193zbqns7k().f[0]++;cov_193zbqns7k().s[0]++;super(formlayout,injector);cov_193zbqns7k().s[1]++;this.elementRef=elementRef;cov_193zbqns7k().s[2]++;this.cdRef=cdRef;// #region Properties
|
|
12
12
|
/**
|
|
13
13
|
* Helper class to display tooltip on correct position
|
|
14
|
-
*/
|
|
14
|
+
*/cov_193zbqns7k().s[3]++;this.popupHelper=new PopUpHelper();/**
|
|
15
15
|
* das property enthielt das Value als string. Default ist ''
|
|
16
|
-
*/
|
|
16
|
+
*/cov_193zbqns7k().s[4]++;this._valueAsString='';/**
|
|
17
17
|
* Property for enum in Angular HTML template
|
|
18
|
-
*/
|
|
18
|
+
*/cov_193zbqns7k().s[5]++;this.TooltipPosition=TooltipPosition;/**
|
|
19
19
|
* Definiert ob der Date Selector angezeigt wird
|
|
20
|
-
*/
|
|
20
|
+
*/cov_193zbqns7k().s[6]++;this._showselector=false;/**
|
|
21
21
|
* Definiert das Control als Required
|
|
22
|
-
*/
|
|
22
|
+
*/cov_193zbqns7k().s[7]++;this.isrequired=false;/**
|
|
23
23
|
* Moment JS Instance
|
|
24
|
-
*/
|
|
24
|
+
*/cov_193zbqns7k().s[8]++;this.moment=moment_['default'];/**
|
|
25
25
|
* Arrow Item of Picker Element. Required to set the position of arrow correctly
|
|
26
|
-
*/
|
|
26
|
+
*/cov_193zbqns7k().s[9]++;this.pickerPosition=TooltipPosition;/**
|
|
27
27
|
* TextBox Placeholder
|
|
28
|
-
*/
|
|
28
|
+
*/cov_193zbqns7k().s[10]++;this.placeholder=null;/**
|
|
29
29
|
* Position of the picker arrow at the left
|
|
30
|
-
*/
|
|
30
|
+
*/cov_193zbqns7k().s[11]++;this.posArrowLeft=null;/**
|
|
31
31
|
* Position of the picker arrow at the top
|
|
32
|
-
*/
|
|
32
|
+
*/cov_193zbqns7k().s[12]++;this.posArrowTop=null;/**
|
|
33
33
|
* Position of the picker at the left
|
|
34
|
-
*/
|
|
34
|
+
*/cov_193zbqns7k().s[13]++;this.posPopupLeft=0;/**
|
|
35
35
|
* Position of the picker at the top
|
|
36
|
-
*/
|
|
36
|
+
*/cov_193zbqns7k().s[14]++;this.posPopupTop=0;/**
|
|
37
37
|
* Position of the datetime picker. Values: left|top|right|bottom|auto
|
|
38
38
|
*
|
|
39
39
|
* Value 'auto' can be combined with another value.
|
|
40
|
-
*/
|
|
40
|
+
*/cov_193zbqns7k().s[15]++;this.position='bottomend|topend';/**
|
|
41
41
|
* Resource Key für Validation Message DateTimeFormat bei Control
|
|
42
|
-
*/
|
|
42
|
+
*/cov_193zbqns7k().s[16]++;this.validationmessagedatetimeformat=this.validationKeyService.ValidationErrorDatetimeFormat;/**
|
|
43
43
|
* Resource Key für Validation Message DateTimeFormat in Validation Summary
|
|
44
|
-
*/
|
|
44
|
+
*/cov_193zbqns7k().s[17]++;this.validationmessagedatetimeformatsummary=this.validationKeyService.ValidationErrorSummaryDatetimeFormat;/**
|
|
45
45
|
* Resource Key für Validation Message Required bei Control
|
|
46
|
-
*/
|
|
46
|
+
*/cov_193zbqns7k().s[18]++;this.validationmessagerequired=this.validationKeyService.ValidationErrorRequired;/**
|
|
47
47
|
* Resource Key für Validation Message Required in Validation Summary
|
|
48
|
-
*/
|
|
48
|
+
*/cov_193zbqns7k().s[19]++;this.validationmessagerequiredsummary=this.validationKeyService.ValidationErrorSummaryRequired;// #endregion Protected Methods
|
|
49
49
|
// #region Private Methods
|
|
50
50
|
/**
|
|
51
51
|
* method if content has changed and proportions need to be reset in the UI.
|
|
52
|
-
*/
|
|
53
|
-
if(!this._showselector){
|
|
52
|
+
*/cov_193zbqns7k().s[20]++;this.onContentChange=()=>{cov_193zbqns7k().f[1]++;cov_193zbqns7k().s[21]++;// Do nothing if is not visible
|
|
53
|
+
if(!this._showselector){cov_193zbqns7k().b[0][0]++;cov_193zbqns7k().s[22]++;return;}else{cov_193zbqns7k().b[0][1]++;}cov_193zbqns7k().s[23]++;setTimeout(()=>{cov_193zbqns7k().f[2]++;cov_193zbqns7k().s[24]++;this.getPositionLeft();cov_193zbqns7k().s[25]++;this.getPositionTop();});};}// #endregion Constructors
|
|
54
54
|
// #region Public Getters And Setters
|
|
55
55
|
/**
|
|
56
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){
|
|
57
|
+
*/set picker(picker){cov_193zbqns7k().f[3]++;cov_193zbqns7k().s[26]++;if(picker!==undefined){cov_193zbqns7k().b[1][0]++;cov_193zbqns7k().s[27]++;document.body.appendChild(picker.nativeElement);}else{cov_193zbqns7k().b[1][1]++;}cov_193zbqns7k().s[28]++;this.pickercontainer=picker;cov_193zbqns7k().s[29]++;this.onContentChange();cov_193zbqns7k().s[30]++;this.cdRef.detectChanges();}get tooltop(){cov_193zbqns7k().f[4]++;cov_193zbqns7k().s[31]++;return this.pickercontainer;}/**
|
|
58
58
|
* getter für valuestring
|
|
59
|
-
*/get valuestring(){
|
|
59
|
+
*/get valuestring(){cov_193zbqns7k().f[5]++;cov_193zbqns7k().s[32]++;if(this.value===null){cov_193zbqns7k().b[2][0]++;cov_193zbqns7k().s[33]++;return this._valueAsString;}else{cov_193zbqns7k().b[2][1]++;const date=(cov_193zbqns7k().s[34]++,this.moment.utc(this.value));cov_193zbqns7k().s[35]++;return date.local().format(this.GetDateTimeFormatString());}}/**
|
|
60
60
|
* Das Input bekommt das value von typ string
|
|
61
|
-
*/set valuestring(v){
|
|
61
|
+
*/set valuestring(v){cov_193zbqns7k().f[6]++;cov_193zbqns7k().s[36]++;this._valueAsString=v;let date=(cov_193zbqns7k().s[37]++,this.moment(v,[this.GetDateTimeFormatString()],true));cov_193zbqns7k().s[38]++;date=this.ModifyParsedDateTimeValue(date).utc();cov_193zbqns7k().s[39]++;if(date.isValid()){cov_193zbqns7k().b[3][0]++;cov_193zbqns7k().s[40]++;this.value=date.toDate();}else{cov_193zbqns7k().b[3][1]++;cov_193zbqns7k().s[41]++;this.value=null;}}/**
|
|
62
62
|
* Returns the position of the tooltip
|
|
63
|
-
*/GetPickerPosition(){
|
|
63
|
+
*/GetPickerPosition(){cov_193zbqns7k().f[7]++;cov_193zbqns7k().s[42]++;return this.popupHelper.getDisplayPosition(this.pickerbutton,this.pickercontainer,this.getArrowWidth(),this.getArrowHeight(),this.position,false);}/**
|
|
64
64
|
* JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann
|
|
65
|
-
*/getDate(timestamp){
|
|
65
|
+
*/getDate(timestamp){cov_193zbqns7k().f[8]++;const date=(cov_193zbqns7k().s[43]++,new Date(timestamp));const year=(cov_193zbqns7k().s[44]++,date.getUTCFullYear());const month=(cov_193zbqns7k().s[45]++,date.getUTCMonth());const day=(cov_193zbqns7k().s[46]++,date.getUTCDate());const hours=(cov_193zbqns7k().s[47]++,date.getUTCHours());const minutes=(cov_193zbqns7k().s[48]++,date.getUTCMinutes());const seconds=(cov_193zbqns7k().s[49]++,date.getUTCSeconds());cov_193zbqns7k().s[50]++;return this.moment(Date.UTC(year,month,day,hours,minutes,seconds));}/**
|
|
66
66
|
* Calculates the height of the tooltip
|
|
67
|
-
*/getPickerHeight(){
|
|
67
|
+
*/getPickerHeight(){cov_193zbqns7k().f[9]++;cov_193zbqns7k().s[51]++;return this.popupHelper.getPopupHeight(this.pickercontainer);}/**
|
|
68
68
|
* Calculates the width of the picker
|
|
69
|
-
*/getPickerWidth(){
|
|
70
|
-
ngOnDestroy(){
|
|
71
|
-
window.removeEventListener('scroll',this.onContentChange,true);
|
|
69
|
+
*/getPickerWidth(){cov_193zbqns7k().f[10]++;cov_193zbqns7k().s[52]++;return this.popupHelper.getPopupWidth(this.pickercontainer);}ngDoCheck(){cov_193zbqns7k().f[11]++;}// this.onContentChange();
|
|
70
|
+
ngOnDestroy(){cov_193zbqns7k().f[12]++;cov_193zbqns7k().s[53]++;// Unregister Event Listener
|
|
71
|
+
window.removeEventListener('scroll',this.onContentChange,true);cov_193zbqns7k().s[54]++;window.removeEventListener('resize',this.onContentChange,true);}/**
|
|
72
72
|
* Init Event
|
|
73
|
-
*/ngOnInit(){
|
|
74
|
-
|
|
73
|
+
*/ngOnInit(){cov_193zbqns7k().f[13]++;cov_193zbqns7k().s[55]++;super.ngOnInit();cov_193zbqns7k().s[56]++;this.setDateTimeFormat();// Register Event Listener
|
|
74
|
+
cov_193zbqns7k().s[57]++;window.addEventListener('scroll',this.onContentChange,true);cov_193zbqns7k().s[58]++;window.addEventListener('resize',this.onContentChange,true);}/**
|
|
75
75
|
* setzt das value von typ string zu property valuestring
|
|
76
|
-
*/setValueString(v){
|
|
76
|
+
*/setValueString(v){cov_193zbqns7k().f[14]++;cov_193zbqns7k().s[59]++;this.valuestring=v;}/**
|
|
77
77
|
* Validator
|
|
78
|
-
*/validateData(c){
|
|
78
|
+
*/validateData(c){cov_193zbqns7k().f[15]++;let error=(cov_193zbqns7k().s[60]++,null);cov_193zbqns7k().s[61]++;if((cov_193zbqns7k().b[5][0]++,this.valuestring!==null)&&(cov_193zbqns7k().b[5][1]++,this.valuestring.indexOf('_')>=0)){cov_193zbqns7k().b[4][0]++;cov_193zbqns7k().s[62]++;error=CreateValidationError('invalidtype',this.validationmessagedatetimeformat,this.validationmessagedatetimeformatsummary);cov_193zbqns7k().s[63]++;if(error){cov_193zbqns7k().b[6][0]++;cov_193zbqns7k().s[64]++;return error;}else{cov_193zbqns7k().b[6][1]++;}}else{cov_193zbqns7k().b[4][1]++;}cov_193zbqns7k().s[65]++;error=Validation.isValidDate(this.validationmessagedatetimeformat,this.validationmessagedatetimeformatsummary)(c);cov_193zbqns7k().s[66]++;if(this.isrequired){cov_193zbqns7k().b[7][0]++;cov_193zbqns7k().s[67]++;error=Validation.required(this.validationmessagerequired,this.validationmessagerequiredsummary)(c);}else{cov_193zbqns7k().b[7][1]++;}cov_193zbqns7k().s[68]++;return error;}/**
|
|
79
79
|
* Overwrite WriteValue to Set correct Date Object
|
|
80
|
-
*/writeValue(value){
|
|
80
|
+
*/writeValue(value){cov_193zbqns7k().f[16]++;cov_193zbqns7k().s[69]++;if((cov_193zbqns7k().b[9][0]++,value==='')||(cov_193zbqns7k().b[9][1]++,value===null)||(cov_193zbqns7k().b[9][2]++,value===undefined)){cov_193zbqns7k().b[8][0]++;cov_193zbqns7k().s[70]++;// Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.
|
|
81
81
|
this._valueAsString='';// Set Internal Property
|
|
82
|
-
|
|
82
|
+
cov_193zbqns7k().s[71]++;this._value=null;}else{cov_193zbqns7k().b[8][1]++;cov_193zbqns7k().s[72]++;this._value=this.getDate(value).toDate();}cov_193zbqns7k().s[73]++;super.writeValue(this._value);}// #endregion Public Methods
|
|
83
83
|
// #region Protected Methods
|
|
84
|
-
getArrowHeight(){
|
|
84
|
+
getArrowHeight(){cov_193zbqns7k().f[17]++;cov_193zbqns7k().s[74]++;return this.pickerarrow?(cov_193zbqns7k().b[10][0]++,this.pickerarrow.nativeElement.offsetHeight):(cov_193zbqns7k().b[10][1]++,0);}getArrowWidth(){cov_193zbqns7k().f[18]++;cov_193zbqns7k().s[75]++;return this.pickerarrow?(cov_193zbqns7k().b[11][0]++,this.pickerarrow.nativeElement.offsetWidth):(cov_193zbqns7k().b[11][1]++,0);}/**
|
|
85
85
|
* Calculates the position of the tooltip from links
|
|
86
|
-
*/getPositionLeft(){
|
|
86
|
+
*/getPositionLeft(){cov_193zbqns7k().f[19]++;const value=(cov_193zbqns7k().s[76]++,this.popupHelper.getPositionLeft(this.pickerbutton,this.pickercontainer,this.elementRef,this.getArrowWidth(),this.getArrowHeight(),this.position,false));cov_193zbqns7k().s[77]++;this.posPopupLeft=value;cov_193zbqns7k().s[78]++;switch(this.GetPickerPosition()){case TooltipPosition.top:cov_193zbqns7k().b[12][0]++;case TooltipPosition.bottom:cov_193zbqns7k().b[12][1]++;cov_193zbqns7k().s[79]++;this.posArrowLeft=this.getPickerWidth()/2- -this.getArrowWidth();cov_193zbqns7k().s[80]++;break;case TooltipPosition.topend:cov_193zbqns7k().b[12][2]++;case TooltipPosition.bottomend:cov_193zbqns7k().b[12][3]++;cov_193zbqns7k().s[81]++;this.posArrowLeft=this.getPickerWidth()-this.getArrowWidth()/2-this.popupHelper.getContainerWidth(this.pickerbutton,false)/2;cov_193zbqns7k().s[82]++;break;default:cov_193zbqns7k().b[12][4]++;cov_193zbqns7k().s[83]++;this.posArrowLeft=null;cov_193zbqns7k().s[84]++;break;}cov_193zbqns7k().s[85]++;return value;}/**
|
|
87
87
|
* Calculates the position of the tooltip from the top
|
|
88
|
-
*/getPositionTop(){
|
|
89
|
-
if(this.ngControl){cov_2if8on3zmg().b[14][0]++;cov_2if8on3zmg().s[95]++;this.ngControl.datetimeformatstring=this.GetDateTimeFormatString();}else{cov_2if8on3zmg().b[14][1]++;}}static{cov_2if8on3zmg().s[96]++;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[97]++;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[98]++;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[99]++;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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBRUgsU0FBUyxFQUlULEtBQUssRUFHTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7OztBQUVsQzs7R0FFRztBQUNILE1BQ3NCLHNCQUF1QixTQUFRLG1CQUF5QjtJQXlHMUUsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7Ozs7T0FLRztJQUNILFlBQ0ksVUFBK0IsRUFDL0IsUUFBa0IsRUFDUixVQUFzQixFQUNmLEtBQXdCO1FBRXpDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFIbEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBdEg3QyxxQkFBcUI7UUFFckI7O1dBRUc7UUFDYyxnQkFBVyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRTlEOztXQUVHO1FBQ08sbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFPOUI7O1dBRUc7UUFDSSxvQkFBZSxHQUFHLGVBQWUsQ0FBQztRQUV6Qzs7V0FFRztRQUNJLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRXRDOztXQUVHO1FBQ2Es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O3NCQUEvQyxLQUFLO2dCQTZCSyxNQUFNO3NCQURoQixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBK0IzQixXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2NvbnRyb2xzL2xheW91dC9mb3JtbGF5b3V0JztcclxuaW1wb3J0IHsgSURhdGVUaW1lQ29udHJvbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWRhdGV0aW1lY29udHJvbCc7XHJcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uL3V0aWxpdGllcy9lbnVtcyc7XHJcbmltcG9ydCB7IFBvcFVwSGVscGVyIH0gZnJvbSAnLi4vdXRpbGl0aWVzL3BvcHVwaGVscGVyJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uL3ZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBDcmVhdGVWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb25lcnJvcmNyZWF0b3InO1xyXG5pbXBvcnQgeyBTYWNCYXNlTW9kZWxDb250cm9sIH0gZnJvbSAnLi9iYXNlbW9kZWxjb250cm9sJztcclxuaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgRGlyZWN0aXZlLFxyXG4gICAgRG9DaGVjayxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcclxuXHJcbi8qKlxyXG4gKiBCYXNlIEtsYXNzZSBmw7xyIERhdGUvVGltZSBDb250cm9sc1xyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sIGV4dGVuZHMgU2FjQmFzZU1vZGVsQ29udHJvbDxEYXRlPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrIHtcclxuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIGNsYXNzIHRvIGRpc3BsYXkgdG9vbHRpcCBvbiBjb3JyZWN0IHBvc2l0aW9uXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9wdXBIZWxwZXI6IFBvcFVwSGVscGVyID0gbmV3IFBvcFVwSGVscGVyKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkYXMgcHJvcGVydHkgZW50aGllbHQgZGFzIFZhbHVlIGFscyBzdHJpbmcuIERlZmF1bHQgaXN0ICcnXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdmFsdWVBc1N0cmluZyA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udGFpbmVycyBmb3IgdGhlIGRhdGV0aW1lIHBpY2tlclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcGlja2VyY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IGZvciBlbnVtIGluIEFuZ3VsYXIgSFRNTCB0ZW1wbGF0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgVG9vbHRpcFBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pZXJ0IG9iIGRlciBEYXRlIFNlbGVjdG9yIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBfc2hvd3NlbGVjdG9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmllcnQgZGFzIENvbnRyb2wgYWxzIFJlcXVpcmVkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb21lbnQgSlMgSW5zdGFuY2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIG1vbWVudCA9IG1vbWVudF9bJ2RlZmF1bHQnXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycm93IEl0ZW0gb2YgUGlja2VyIEVsZW1lbnQuIFJlcXVpcmVkIHRvIHNldCB0aGUgcG9zaXRpb24gb2YgYXJyb3cgY29ycmVjdGx5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwaWNrZXJQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcclxuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcmFycm93JywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgICBwdWJsaWMgcGlja2VyYXJyb3c6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgY29udGVudCAoZS5nLiBpY29uKSBvbiB3aGljaCB0aGUgdG9vbHRpcCBpcyBkaXNwbGF5ZWQuXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcmJ1dHRvbicsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgcGlja2VyYnV0dG9uOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRleHRCb3ggUGxhY2Vob2xkZXJcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgbGVmdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcG9zQXJyb3dMZWZ0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXJyb3cgYXQgdGhlIHRvcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcG9zQXJyb3dUb3A6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhdCB0aGUgbGVmdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcG9zUG9wdXBMZWZ0OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhdCB0aGUgdG9wXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwb3NQb3B1cFRvcDogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBkYXRldGltZSBwaWNrZXIuIFZhbHVlczogbGVmdHx0b3B8cmlnaHR8Ym90dG9tfGF1dG9cclxuICAgICAqXHJcbiAgICAgKiBWYWx1ZSAnYXV0bycgY2FuIGJlIGNvbWJpbmVkIHdpdGggYW5vdGhlciB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBwb3NpdGlvbjogc3RyaW5nID0gJ2JvdHRvbWVuZHx0b3BlbmQnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGJlaSBDb250cm9sXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0OiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnk6IHN0cmluZyA9XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeTogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAgICogQHBhcmFtIGVsZW1lbnRSZWYgcmVmZXJlbmNlIHRvIGh0bWwgZWxlbWVudFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0dGVyIGZvciB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGUgdG9vbHRpcC4gSXMgcmVxdWlyZWQgYXMgdGhlIHRvb2x0aXAgY2FuIGJlIGhpZGRlbiB2aWEgbmdJZi5cclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgncGlja2VyJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgICBwdWJsaWMgc2V0IHBpY2tlcihwaWNrZXI6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICBpZiAocGlja2VyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwaWNrZXIubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lciA9IHBpY2tlcjtcclxuICAgICAgICB0aGlzLm9uQ29udGVudENoYW5nZSgpO1xyXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdG9vbHRvcCgpOiBFbGVtZW50UmVmIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJjb250YWluZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXR0ZXIgZsO8ciB2YWx1ZXN0cmluZ1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlc3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlQXNTdHJpbmc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMubW9tZW50LnV0Yyh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgcmV0dXJuIGRhdGUubG9jYWwoKS5mb3JtYXQodGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYXMgSW5wdXQgYmVrb21tdCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdmFsdWVzdHJpbmcodjogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9IHY7XHJcbiAgICAgICAgbGV0IGRhdGU6IG1vbWVudF8uTW9tZW50ID0gdGhpcy5tb21lbnQodiwgW3RoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKV0sIHRydWUpO1xyXG5cclxuICAgICAgICBkYXRlID0gdGhpcy5Nb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKGRhdGUpLnV0YygpO1xyXG5cclxuICAgICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGUudG9EYXRlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaWUgbWV0aG9kZSByZXR1cm5zIGRhdGVUaW1lIGluIHN0cmluZ1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXBcclxuICAgICAqL1xyXG4gICAgcHVibGljIEdldFBpY2tlclBvc2l0aW9uKCk6IFRvb2x0aXBQb3NpdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0RGlzcGxheVBvc2l0aW9uKFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXHJcbiAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERpZSBtZXRob2RlIG1vZGlmaXppZXJ0IGRhcyBlaW5nZWdlYmVuZSBWYWx1ZSB2b24gdHlwIE1vbWVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSh2OiBtb21lbnRfLk1vbWVudCk6IG1vbWVudF8uTW9tZW50O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSlNPTiBEYXRlIFN0cmluZyBpbiBlaW4gVVRDIERhdGVUaW1lIE9iamVjdCBrb252ZXJ0aWVyZW4sIHdlbGNoZXMgdm9tIENvbnRyb2wgdmVyd2VuZGV0ZSB3ZXJkZW4ga2FublxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RGF0ZSh0aW1lc3RhbXApOiBtb21lbnQuTW9tZW50IHtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGltZXN0YW1wKTtcclxuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpO1xyXG4gICAgICAgIGNvbnN0IG1vbnRoID0gZGF0ZS5nZXRVVENNb250aCgpO1xyXG4gICAgICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0VVRDRGF0ZSgpO1xyXG4gICAgICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xyXG4gICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcclxuICAgICAgICBjb25zdCBzZWNvbmRzID0gZGF0ZS5nZXRVVENTZWNvbmRzKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLm1vbWVudChEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF5LCBob3VycywgbWludXRlcywgc2Vjb25kcykpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IG9mIHRoZSB0b29sdGlwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRQaWNrZXJIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cEhlaWdodCh0aGlzLnBpY2tlcmNvbnRhaW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiB0aGUgcGlja2VyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRQaWNrZXJXaWR0aCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwV2lkdGgodGhpcy5waWNrZXJjb250YWluZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ0RvQ2hlY2soKTogdm9pZCB7XHJcbiAgICAgICAgLy8gdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgLy8gVW5yZWdpc3RlciBFdmVudCBMaXN0ZW5lclxyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXQgRXZlbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5zZXREYXRlVGltZUZvcm1hdCgpO1xyXG5cclxuICAgICAgICAvLyBSZWdpc3RlciBFdmVudCBMaXN0ZW5lclxyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldHp0IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZyB6dSBwcm9wZXJ0eSB2YWx1ZXN0cmluZ1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0VmFsdWVTdHJpbmcodjogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZXN0cmluZyA9IHY7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3JcclxuICAgICAqL1xyXG4gICAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlc3RyaW5nICE9PSBudWxsICYmIHRoaXMudmFsdWVzdHJpbmcuaW5kZXhPZignXycpID49IDApIHtcclxuICAgICAgICAgICAgZXJyb3IgPSBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXHJcbiAgICAgICAgICAgICAgICAnaW52YWxpZHR5cGUnLFxyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0LFxyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5pc1ZhbGlkRGF0ZShcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0LFxyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5XHJcbiAgICAgICAgKShjKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNyZXF1aXJlZCkge1xyXG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ucmVxdWlyZWQodGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLCB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5KShjKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBlcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE92ZXJ3cml0ZSBXcml0ZVZhbHVlIHRvIFNldCBjb3JyZWN0IERhdGUgT2JqZWN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIC8vIFJlc2V0IFZhbHVlIFN0cmluZywgZGFtaXQgYmVpbSBVcGRhdGUgZGVzIE1vZGVscyBhdWNoIGRhcyBJbnB1dCBGZWxkIGdlbGVlcnQgd2lyZC5cclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9ICcnO1xyXG4gICAgICAgICAgICAvLyBTZXQgSW50ZXJuYWwgUHJvcGVydHlcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5nZXREYXRlKHZhbHVlKS50b0RhdGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEFycm93SGVpZ2h0KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyYXJyb3cgPyB0aGlzLnBpY2tlcmFycm93Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IDogMDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0QXJyb3dXaWR0aCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmFycm93ID8gdGhpcy5waWNrZXJhcnJvdy5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gbGlua3NcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldFBvc2l0aW9uTGVmdCgpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3NpdGlvbkxlZnQoXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxyXG4gICAgICAgICAgICBmYWxzZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5wb3NQb3B1cExlZnQgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLkdldFBpY2tlclBvc2l0aW9uKCkpIHtcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24udG9wOlxyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5ib3R0b206XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IHRoaXMuZ2V0UGlja2VyV2lkdGgoKSAvIDIgLSAtdGhpcy5nZXRBcnJvd1dpZHRoKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24udG9wZW5kOlxyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5ib3R0b21lbmQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRQaWNrZXJXaWR0aCgpIC1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSAvIDIgLVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9wdXBIZWxwZXIuZ2V0Q29udGFpbmVyV2lkdGgodGhpcy5waWNrZXJidXR0b24sIGZhbHNlKSAvIDI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9wXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXRQb3NpdGlvblRvcCgpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3NpdGlvblRvcChcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXHJcbiAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnBvc1BvcHVwVG9wID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5HZXRQaWNrZXJQb3NpdGlvbigpKSB7XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmxlZnQ6XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnJpZ2h0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IHRoaXMuZ2V0UGlja2VySGVpZ2h0KCkgLyAyIC0gNi41O1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWV0aG9kIGlmIGNvbnRlbnQgaGFzIGNoYW5nZWQgYW5kIHByb3BvcnRpb25zIG5lZWQgdG8gYmUgcmVzZXQgaW4gdGhlIFVJLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uQ29udGVudENoYW5nZSA9ICgpOiB2b2lkID0+IHtcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmxlXHJcbiAgICAgICAgaWYgKCF0aGlzLl9zaG93c2VsZWN0b3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0UG9zaXRpb25MZWZ0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0UG9zaXRpb25Ub3AoKTtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBzZXREYXRlVGltZUZvcm1hdCgpOiB2b2lkIHtcclxuICAgICAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxyXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICAgICAgICAodGhpcy5uZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBJRGF0ZVRpbWVDb250cm9sKS5kYXRldGltZWZvcm1hdHN0cmluZyA9IHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxufVxyXG4iXX0=
|
|
90
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMmlmOG9uM3ptZyIsImFjdHVhbENvdmVyYWdlIiwiVG9vbHRpcFBvc2l0aW9uIiwiUG9wVXBIZWxwZXIiLCJWYWxpZGF0aW9uIiwiQ3JlYXRlVmFsaWRhdGlvbkVycm9yIiwiU2FjQmFzZU1vZGVsQ29udHJvbCIsIkRpcmVjdGl2ZSIsIklucHV0IiwiVmlld0NoaWxkIiwibW9tZW50XyIsIlNhY0Jhc2VEYXRlVGltZUNvbnRyb2wiLCJjb25zdHJ1Y3RvciIsImZvcm1sYXlvdXQiLCJpbmplY3RvciIsImVsZW1lbnRSZWYiLCJjZFJlZiIsImYiLCJzIiwicG9wdXBIZWxwZXIiLCJfdmFsdWVBc1N0cmluZyIsIl9zaG93c2VsZWN0b3IiLCJpc3JlcXVpcmVkIiwibW9tZW50IiwicGlja2VyUG9zaXRpb24iLCJwbGFjZWhvbGRlciIsInBvc0Fycm93TGVmdCIsInBvc0Fycm93VG9wIiwicG9zUG9wdXBMZWZ0IiwicG9zUG9wdXBUb3AiLCJwb3NpdGlvbiIsInZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQiLCJ2YWxpZGF0aW9uS2V5U2VydmljZSIsIlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0IiwidmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnkiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkIiwiVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeSIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZCIsIm9uQ29udGVudENoYW5nZSIsImIiLCJzZXRUaW1lb3V0IiwiZ2V0UG9zaXRpb25MZWZ0IiwiZ2V0UG9zaXRpb25Ub3AiLCJwaWNrZXIiLCJ1bmRlZmluZWQiLCJkb2N1bWVudCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsIm5hdGl2ZUVsZW1lbnQiLCJwaWNrZXJjb250YWluZXIiLCJkZXRlY3RDaGFuZ2VzIiwidG9vbHRvcCIsInZhbHVlc3RyaW5nIiwidmFsdWUiLCJkYXRlIiwidXRjIiwibG9jYWwiLCJmb3JtYXQiLCJHZXREYXRlVGltZUZvcm1hdFN0cmluZyIsInYiLCJNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlIiwiaXNWYWxpZCIsInRvRGF0ZSIsIkdldFBpY2tlclBvc2l0aW9uIiwiZ2V0RGlzcGxheVBvc2l0aW9uIiwicGlja2VyYnV0dG9uIiwiZ2V0QXJyb3dXaWR0aCIsImdldEFycm93SGVpZ2h0IiwiZ2V0RGF0ZSIsInRpbWVzdGFtcCIsIkRhdGUiLCJ5ZWFyIiwiZ2V0VVRDRnVsbFllYXIiLCJtb250aCIsImdldFVUQ01vbnRoIiwiZGF5IiwiZ2V0VVRDRGF0ZSIsImhvdXJzIiwiZ2V0VVRDSG91cnMiLCJtaW51dGVzIiwiZ2V0VVRDTWludXRlcyIsInNlY29uZHMiLCJnZXRVVENTZWNvbmRzIiwiVVRDIiwiZ2V0UGlja2VySGVpZ2h0IiwiZ2V0UG9wdXBIZWlnaHQiLCJnZXRQaWNrZXJXaWR0aCIsImdldFBvcHVwV2lkdGgiLCJuZ0RvQ2hlY2siLCJuZ09uRGVzdHJveSIsIndpbmRvdyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJuZ09uSW5pdCIsInNldERhdGVUaW1lRm9ybWF0IiwiYWRkRXZlbnRMaXN0ZW5lciIsInNldFZhbHVlU3RyaW5nIiwidmFsaWRhdGVEYXRhIiwiYyIsImVycm9yIiwiaW5kZXhPZiIsImlzVmFsaWREYXRlIiwicmVxdWlyZWQiLCJ3cml0ZVZhbHVlIiwiX3ZhbHVlIiwicGlja2VyYXJyb3ciLCJvZmZzZXRIZWlnaHQiLCJvZmZzZXRXaWR0aCIsInRvcCIsImJvdHRvbSIsInRvcGVuZCIsImJvdHRvbWVuZCIsImdldENvbnRhaW5lcldpZHRoIiwibGVmdCIsInJpZ2h0IiwibmdDb250cm9sIiwiZGF0ZXRpbWVmb3JtYXRzdHJpbmciLCJkZXBzIiwidG9rZW4iLCJpMSIsIlNhY0Zvcm1MYXlvdXRDb21tb24iLCJpMCIsIkluamVjdG9yIiwiRWxlbWVudFJlZiIsIkNoYW5nZURldGVjdG9yUmVmIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJ2aWV3UXVlcmllcyIsInByb3BlcnR5TmFtZSIsImZpcnN0IiwicHJlZGljYXRlIiwiZGVzY2VuZGFudHMiLCJzdGF0aWMiLCJ1c2VzSW5oZXJpdGFuY2UiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZWRhdGV0aW1lY29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xyXG5pbXBvcnQgeyBJRGF0ZVRpbWVDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZGF0ZXRpbWVjb250cm9sJztcclxuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2VudW1zJztcclxuaW1wb3J0IHsgUG9wVXBIZWxwZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvcG9wdXBoZWxwZXInO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IENyZWF0ZVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbmVycm9yY3JlYXRvcic7XHJcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBEaXJlY3RpdmUsXHJcbiAgICBEb0NoZWNrLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgS2xhc3NlIGbDvHIgRGF0ZS9UaW1lIENvbnRyb2xzXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VEYXRlVGltZUNvbnRyb2wgZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPERhdGU+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERvQ2hlY2sge1xyXG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIZWxwZXIgY2xhc3MgdG8gZGlzcGxheSB0b29sdGlwIG9uIGNvcnJlY3QgcG9zaXRpb25cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3B1cEhlbHBlcjogUG9wVXBIZWxwZXIgPSBuZXcgUG9wVXBIZWxwZXIoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGRhcyBwcm9wZXJ0eSBlbnRoaWVsdCBkYXMgVmFsdWUgYWxzIHN0cmluZy4gRGVmYXVsdCBpc3QgJydcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF92YWx1ZUFzU3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb250YWluZXJzIGZvciB0aGUgZGF0ZXRpbWUgcGlja2VyXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBwaWNrZXJjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvcGVydHkgZm9yIGVudW0gaW4gQW5ndWxhciBIVE1MIHRlbXBsYXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmllcnQgb2IgZGVyIERhdGUgU2VsZWN0b3IgYW5nZXplaWd0IHdpcmRcclxuICAgICAqL1xyXG4gICAgcHVibGljIF9zaG93c2VsZWN0b3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGlzcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vbWVudCBKUyBJbnN0YW5jZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXJyb3cgSXRlbSBvZiBQaWNrZXIgRWxlbWVudC4gUmVxdWlyZWQgdG8gc2V0IHRoZSBwb3NpdGlvbiBvZiBhcnJvdyBjb3JyZWN0bHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBpY2tlclBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uO1xyXG4gICAgQFZpZXdDaGlsZCgncGlja2VyYXJyb3cnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICAgIHB1YmxpYyBwaWNrZXJhcnJvdzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciBjb250ZW50IChlLmcuIGljb24pIG9uIHdoaWNoIHRoZSB0b29sdGlwIGlzIGRpc3BsYXllZC5cclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgncGlja2VyYnV0dG9uJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIHB1YmxpYyBwaWNrZXJidXR0b246IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGV4dEJveCBQbGFjZWhvbGRlclxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSBsZWZ0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwb3NBcnJvd0xlZnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgdG9wXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwb3NBcnJvd1RvcDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGF0IHRoZSBsZWZ0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwb3NQb3B1cExlZnQ6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGF0IHRoZSB0b3BcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvc1BvcHVwVG9wOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9zaXRpb24gb2YgdGhlIGRhdGV0aW1lIHBpY2tlci4gVmFsdWVzOiBsZWZ0fHRvcHxyaWdodHxib3R0b218YXV0b1xyXG4gICAgICpcclxuICAgICAqIFZhbHVlICdhdXRvJyBjYW4gYmUgY29tYmluZWQgd2l0aCBhbm90aGVyIHZhbHVlLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBvc2l0aW9uOiBzdHJpbmcgPSAnYm90dG9tZW5kfHRvcGVuZCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgYmVpIENvbnRyb2xcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeTogc3RyaW5nID1cclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5OiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZDtcclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiByZWZlcmVuY2UgdG8gaHRtbCBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXHJcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXR0ZXIgZm9yIHRoZSBuYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIHRoZSB0b29sdGlwLiBJcyByZXF1aXJlZCBhcyB0aGUgdG9vbHRpcCBjYW4gYmUgaGlkZGVuIHZpYSBuZ0lmLlxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdwaWNrZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICAgIHB1YmxpYyBzZXQgcGlja2VyKHBpY2tlcjogRWxlbWVudFJlZikge1xyXG4gICAgICAgIGlmIChwaWNrZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBpY2tlci5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyID0gcGlja2VyO1xyXG4gICAgICAgIHRoaXMub25Db250ZW50Q2hhbmdlKCk7XHJcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0b29sdG9wKCk6IEVsZW1lbnRSZWYge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmNvbnRhaW5lcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldHRlciBmw7xyIHZhbHVlc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsdWVzdHJpbmcoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVBc1N0cmluZztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5tb21lbnQudXRjKHRoaXMudmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5sb2NhbCgpLmZvcm1hdCh0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERhcyBJbnB1dCBiZWtvbW10IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB2YWx1ZXN0cmluZyh2OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gdjtcclxuICAgICAgICBsZXQgZGF0ZTogbW9tZW50Xy5Nb21lbnQgPSB0aGlzLm1vbWVudCh2LCBbdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpXSwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIGRhdGUgPSB0aGlzLk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUoZGF0ZSkudXRjKCk7XHJcblxyXG4gICAgICAgIGlmIChkYXRlLmlzVmFsaWQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZS50b0RhdGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIERpZSBtZXRob2RlIHJldHVybnMgZGF0ZVRpbWUgaW4gc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCBHZXREYXRlVGltZUZvcm1hdFN0cmluZygpOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgR2V0UGlja2VyUG9zaXRpb24oKTogVG9vbHRpcFBvc2l0aW9uIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXREaXNwbGF5UG9zaXRpb24oXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcclxuICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGllIG1ldGhvZGUgbW9kaWZpemllcnQgZGFzIGVpbmdlZ2ViZW5lIFZhbHVlIHZvbiB0eXAgTW9tZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCBNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHY6IG1vbWVudF8uTW9tZW50KTogbW9tZW50Xy5Nb21lbnQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBKU09OIERhdGUgU3RyaW5nIGluIGVpbiBVVEMgRGF0ZVRpbWUgT2JqZWN0IGtvbnZlcnRpZXJlbiwgd2VsY2hlcyB2b20gQ29udHJvbCB2ZXJ3ZW5kZXRlIHdlcmRlbiBrYW5uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXREYXRlKHRpbWVzdGFtcCk6IG1vbWVudC5Nb21lbnQge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XHJcbiAgICAgICAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XHJcbiAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXRVVENEYXRlKCk7XHJcbiAgICAgICAgY29uc3QgaG91cnMgPSBkYXRlLmdldFVUQ0hvdXJzKCk7XHJcbiAgICAgICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0VVRDTWludXRlcygpO1xyXG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9tZW50KERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgb2YgdGhlIHRvb2x0aXBcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFBpY2tlckhlaWdodCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMucGlja2VyY29udGFpbmVyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBwaWNrZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFBpY2tlcldpZHRoKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9wdXBXaWR0aCh0aGlzLnBpY2tlcmNvbnRhaW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgICAgICAvLyB0aGlzLm9uQ29udGVudENoYW5nZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBVbnJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdCBFdmVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLnNldERhdGVUaW1lRm9ybWF0KCk7XHJcblxyXG4gICAgICAgIC8vIFJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0enQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nIHp1IHByb3BlcnR5IHZhbHVlc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRWYWx1ZVN0cmluZyh2OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnZhbHVlc3RyaW5nID0gdjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWVzdHJpbmcgIT09IG51bGwgJiYgdGhpcy52YWx1ZXN0cmluZy5pbmRleE9mKCdfJykgPj0gMCkge1xyXG4gICAgICAgICAgICBlcnJvciA9IENyZWF0ZVZhbGlkYXRpb25FcnJvcihcclxuICAgICAgICAgICAgICAgICdpbnZhbGlkdHlwZScsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5XHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLmlzVmFsaWREYXRlKFxyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQsXHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnlcclxuICAgICAgICApKGMpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZCh0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnkpKGMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGVycm9yO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3ZlcndyaXRlIFdyaXRlVmFsdWUgdG8gU2V0IGNvcnJlY3QgRGF0ZSBPYmplY3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IERhdGUgfCBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgLy8gUmVzZXQgVmFsdWUgU3RyaW5nLCBkYW1pdCBiZWltIFVwZGF0ZSBkZXMgTW9kZWxzIGF1Y2ggZGFzIElucHV0IEZlbGQgZ2VsZWVydCB3aXJkLlxyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gJyc7XHJcbiAgICAgICAgICAgIC8vIFNldCBJbnRlcm5hbCBQcm9wZXJ0eVxyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmdldERhdGUodmFsdWUpLnRvRGF0ZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh0aGlzLl92YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0QXJyb3dIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJhcnJvdyA/IHRoaXMucGlja2VyYXJyb3cubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRBcnJvd1dpZHRoKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyYXJyb3cgPyB0aGlzLnBpY2tlcmFycm93Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSBsaW5rc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25MZWZ0KCk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uTGVmdChcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXHJcbiAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnBvc1BvcHVwTGVmdCA9IHZhbHVlO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi50b3A6XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbTpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gdGhpcy5nZXRQaWNrZXJXaWR0aCgpIC8gMiAtIC10aGlzLmdldEFycm93V2lkdGgoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi50b3BlbmQ6XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZDpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFBpY2tlcldpZHRoKCkgLVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpIC8gMiAtXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3B1cEhlbHBlci5nZXRDb250YWluZXJXaWR0aCh0aGlzLnBpY2tlcmJ1dHRvbiwgZmFsc2UpIC8gMjtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b3BcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldFBvc2l0aW9uVG9wKCk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uVG9wKFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZixcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcclxuICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMucG9zUG9wdXBUb3AgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLkdldFBpY2tlclBvc2l0aW9uKCkpIHtcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ubGVmdDpcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ucmlnaHQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gdGhpcy5nZXRQaWNrZXJIZWlnaHQoKSAvIDIgLSA2LjU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBtZXRob2QgaWYgY29udGVudCBoYXMgY2hhbmdlZCBhbmQgcHJvcG9ydGlvbnMgbmVlZCB0byBiZSByZXNldCBpbiB0aGUgVUkuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgb25Db250ZW50Q2hhbmdlID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgaXMgbm90IHZpc2libGVcclxuICAgICAgICBpZiAoIXRoaXMuX3Nob3dzZWxlY3Rvcikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvbkxlZnQoKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvblRvcCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIHNldERhdGVUaW1lRm9ybWF0KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XHJcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElEYXRlVGltZUNvbnRyb2wpLmRhdGV0aW1lZm9ybWF0c3RyaW5nID0gdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcbiJdLCJtYXBwaW5ncyI6InVpbENBc0lJO0FBQUFBLGNBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsY0FBQSxHQXBJSixPQUFTRSxlQUFlLEtBQVEsb0JBQW9CLENBQ3BELE9BQVNDLFdBQVcsS0FBUSwwQkFBMEIsQ0FDdEQsT0FBU0MsVUFBVSxLQUFRLGVBQWUsQ0FDMUMsT0FBU0MscUJBQXFCLEtBQVEsc0NBQXNDLENBQzVFLE9BQVNDLG1CQUFtQixLQUFRLG9CQUFvQixDQUN4RCxPQUVJQyxTQUFTLENBSVRDLEtBQUssQ0FHTEMsU0FBUyxLQUNOLGVBQWUsQ0FFdEIsTUFBTyxHQUFLLENBQUFDLE9BQU8sS0FBTSxRQUFRLEMsa0ZBRWpDOztHQUdBLEtBQ3NCLENBQUFDLHNCQUF1QixRQUFRLENBQUFMLG1CQUF5QixDQXlHMUU7QUFFQTtBQUVBOzs7OztPQU1BTSxZQUNJQyxVQUErQixDQUMvQkMsUUFBa0IsQ0FDUkMsVUFBc0Is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
|
|
88
|
+
*/getPositionTop(){cov_193zbqns7k().f[20]++;const value=(cov_193zbqns7k().s[86]++,this.popupHelper.getPositionTop(this.pickerbutton,this.pickercontainer,this.elementRef,this.getArrowWidth(),this.getArrowHeight(),this.position,false));cov_193zbqns7k().s[87]++;this.posPopupTop=value;cov_193zbqns7k().s[88]++;switch(this.GetPickerPosition()){case TooltipPosition.left:cov_193zbqns7k().b[13][0]++;case TooltipPosition.right:cov_193zbqns7k().b[13][1]++;cov_193zbqns7k().s[89]++;this.posArrowTop=this.getPickerHeight()/2-6.5;cov_193zbqns7k().s[90]++;break;default:cov_193zbqns7k().b[13][2]++;cov_193zbqns7k().s[91]++;this.posArrowTop=null;cov_193zbqns7k().s[92]++;break;}cov_193zbqns7k().s[93]++;return value;}setDateTimeFormat(){cov_193zbqns7k().f[21]++;cov_193zbqns7k().s[94]++;// 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_193zbqns7k().b[14][0]++;cov_193zbqns7k().s[95]++;this.ngControl.datetimeformatstring=this.GetDateTimeFormatString();}else{cov_193zbqns7k().b[14][1]++;}}static{cov_193zbqns7k().s[96]++;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_193zbqns7k().s[97]++;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_193zbqns7k().s[98]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacBaseDateTimeControl,decorators:[{type:Directive}],ctorParameters:function(){cov_193zbqns7k().f[22]++;cov_193zbqns7k().s[99]++;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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBRUgsU0FBUyxFQUlULEtBQUssRUFHTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7OztBQUVsQzs7R0FFRztBQUNILE1BQ3NCLHNCQUF1QixTQUFRLG1CQUF5QjtJQXlHMUUsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7Ozs7T0FLRztJQUNILFlBQ0ksVUFBK0IsRUFDL0IsUUFBa0IsRUFDUixVQUFzQixFQUNmLEtBQXdCO1FBRXpDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFIbEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBdEg3QyxxQkFBcUI7UUFFckI7O1dBRUc7UUFDYyxnQkFBVyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRTlEOztXQUVHO1FBQ08sbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFPOUI7O1dBRUc7UUFDSSxvQkFBZSxHQUFHLGVBQWUsQ0FBQztRQUV6Qzs7V0FFRztRQUNJLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRXRDOztXQUVHO1FBQ2Es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O3NCQUEvQyxLQUFLO2dCQTZCSyxNQUFNO3NCQURoQixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBK0IzQixXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2NvbnRyb2xzL2xheW91dC9mb3JtbGF5b3V0JztcbmltcG9ydCB7IElEYXRlVGltZUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lkYXRldGltZWNvbnRyb2wnO1xuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2VudW1zJztcbmltcG9ydCB7IFBvcFVwSGVscGVyIH0gZnJvbSAnLi4vdXRpbGl0aWVzL3BvcHVwaGVscGVyJztcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IENyZWF0ZVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbmVycm9yY3JlYXRvcic7XG5pbXBvcnQgeyBTYWNCYXNlTW9kZWxDb250cm9sIH0gZnJvbSAnLi9iYXNlbW9kZWxjb250cm9sJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5cbi8qKlxuICogQmFzZSBLbGFzc2UgZsO8ciBEYXRlL1RpbWUgQ29udHJvbHNcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZURhdGVUaW1lQ29udHJvbCBleHRlbmRzIFNhY0Jhc2VNb2RlbENvbnRyb2w8RGF0ZT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRG9DaGVjayB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBIZWxwZXIgY2xhc3MgdG8gZGlzcGxheSB0b29sdGlwIG9uIGNvcnJlY3QgcG9zaXRpb25cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwSGVscGVyOiBQb3BVcEhlbHBlciA9IG5ldyBQb3BVcEhlbHBlcigpO1xuXG4gICAgLyoqXG4gICAgICogZGFzIHByb3BlcnR5IGVudGhpZWx0IGRhcyBWYWx1ZSBhbHMgc3RyaW5nLiBEZWZhdWx0IGlzdCAnJ1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdmFsdWVBc1N0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogQ29udGFpbmVycyBmb3IgdGhlIGRhdGV0aW1lIHBpY2tlclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBwaWNrZXJjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZm9yIGVudW0gaW4gQW5ndWxhciBIVE1MIHRlbXBsYXRlXG4gICAgICovXG4gICAgcHVibGljIFRvb2x0aXBQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBvYiBkZXIgRGF0ZSBTZWxlY3RvciBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBfc2hvd3NlbGVjdG9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmllcnQgZGFzIENvbnRyb2wgYWxzIFJlcXVpcmVkXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGlzcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIE1vbWVudCBKUyBJbnN0YW5jZVxuICAgICAqL1xuICAgIHB1YmxpYyBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XG5cbiAgICAvKipcbiAgICAgKiBBcnJvdyBJdGVtIG9mIFBpY2tlciBFbGVtZW50LiBSZXF1aXJlZCB0byBzZXQgdGhlIHBvc2l0aW9uIG9mIGFycm93IGNvcnJlY3RseVxuICAgICAqL1xuICAgIHB1YmxpYyBwaWNrZXJQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcbiAgICBAVmlld0NoaWxkKCdwaWNrZXJhcnJvdycsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBwaWNrZXJhcnJvdzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciBjb250ZW50IChlLmcuIGljb24pIG9uIHdoaWNoIHRoZSB0b29sdGlwIGlzIGRpc3BsYXllZC5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdwaWNrZXJidXR0b24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBwaWNrZXJidXR0b246IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVGV4dEJveCBQbGFjZWhvbGRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXJyb3cgYXQgdGhlIGxlZnRcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zQXJyb3dMZWZ0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXJyb3cgYXQgdGhlIHRvcFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3NBcnJvd1RvcDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGF0IHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIHBvc1BvcHVwTGVmdDogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXQgdGhlIHRvcFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3NQb3B1cFRvcDogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBkYXRldGltZSBwaWNrZXIuIFZhbHVlczogbGVmdHx0b3B8cmlnaHR8Ym90dG9tfGF1dG9cbiAgICAgKlxuICAgICAqIFZhbHVlICdhdXRvJyBjYW4gYmUgY29tYmluZWQgd2l0aCBhbm90aGVyIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBvc2l0aW9uOiBzdHJpbmcgPSAnYm90dG9tZW5kfHRvcGVuZCc7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgYmVpIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JEYXRldGltZUZvcm1hdDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnk6IHN0cmluZyA9XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeURhdGV0aW1lRm9ybWF0O1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5OiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZDtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXG4gICAgICogQHBhcmFtIGVsZW1lbnRSZWYgcmVmZXJlbmNlIHRvIGh0bWwgZWxlbWVudFxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmb3IgdGhlIG5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgdGhlIHRvb2x0aXAuIElzIHJlcXVpcmVkIGFzIHRoZSB0b29sdGlwIGNhbiBiZSBoaWRkZW4gdmlhIG5nSWYuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgncGlja2VyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBwaWNrZXIocGlja2VyOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIGlmIChwaWNrZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwaWNrZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lciA9IHBpY2tlcjtcbiAgICAgICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b29sdG9wKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJjb250YWluZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0dGVyIGbDvHIgdmFsdWVzdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHZhbHVlc3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVBc1N0cmluZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLm1vbWVudC51dGModGhpcy52YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5sb2NhbCgpLmZvcm1hdCh0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGFzIElucHV0IGJla29tbXQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlc3RyaW5nKHY6IHN0cmluZykge1xuICAgICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gdjtcbiAgICAgICAgbGV0IGRhdGU6IG1vbWVudF8uTW9tZW50ID0gdGhpcy5tb21lbnQodiwgW3RoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKV0sIHRydWUpO1xuXG4gICAgICAgIGRhdGUgPSB0aGlzLk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUoZGF0ZSkudXRjKCk7XG5cbiAgICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZS50b0RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRGllIG1ldGhvZGUgcmV0dXJucyBkYXRlVGltZSBpbiBzdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgR2V0UGlja2VyUG9zaXRpb24oKTogVG9vbHRpcFBvc2l0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0RGlzcGxheVBvc2l0aW9uKFxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGllIG1ldGhvZGUgbW9kaWZpemllcnQgZGFzIGVpbmdlZ2ViZW5lIFZhbHVlIHZvbiB0eXAgTW9tZW50XG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IE1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUodjogbW9tZW50Xy5Nb21lbnQpOiBtb21lbnRfLk1vbWVudDtcblxuICAgIC8qKlxuICAgICAqIEpTT04gRGF0ZSBTdHJpbmcgaW4gZWluIFVUQyBEYXRlVGltZSBPYmplY3Qga29udmVydGllcmVuLCB3ZWxjaGVzIHZvbSBDb250cm9sIHZlcndlbmRldGUgd2VyZGVuIGthbm5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RGF0ZSh0aW1lc3RhbXApOiBtb21lbnQuTW9tZW50IHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gZGF0ZS5nZXRVVENNb250aCgpO1xuICAgICAgICBjb25zdCBkYXkgPSBkYXRlLmdldFVUQ0RhdGUoKTtcbiAgICAgICAgY29uc3QgaG91cnMgPSBkYXRlLmdldFVUQ0hvdXJzKCk7XG4gICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcbiAgICAgICAgY29uc3Qgc2Vjb25kcyA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLm1vbWVudChEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF5LCBob3VycywgbWludXRlcywgc2Vjb25kcykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBvZiB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQaWNrZXJIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9wdXBIZWlnaHQodGhpcy5waWNrZXJjb250YWluZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBwaWNrZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGlja2VyV2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9wdXBXaWR0aCh0aGlzLnBpY2tlcmNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgLy8gdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vIFVucmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0IEV2ZW50XG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnNldERhdGVUaW1lRm9ybWF0KCk7XG5cbiAgICAgICAgLy8gUmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXR6dCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmcgenUgcHJvcGVydHkgdmFsdWVzdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VmFsdWVTdHJpbmcodjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudmFsdWVzdHJpbmcgPSB2O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvclxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZXN0cmluZyAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlc3RyaW5nLmluZGV4T2YoJ18nKSA+PSAwKSB7XG4gICAgICAgICAgICBlcnJvciA9IENyZWF0ZVZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICAgICAgICAnaW52YWxpZHR5cGUnLFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24uaXNWYWxpZERhdGUoXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQsXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5XG4gICAgICAgICkoYyk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNyZXF1aXJlZCkge1xuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnJlcXVpcmVkKHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCwgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeSkoYyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3ZlcndyaXRlIFdyaXRlVmFsdWUgdG8gU2V0IGNvcnJlY3QgRGF0ZSBPYmplY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIFJlc2V0IFZhbHVlIFN0cmluZywgZGFtaXQgYmVpbSBVcGRhdGUgZGVzIE1vZGVscyBhdWNoIGRhcyBJbnB1dCBGZWxkIGdlbGVlcnQgd2lyZC5cbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSAnJztcbiAgICAgICAgICAgIC8vIFNldCBJbnRlcm5hbCBQcm9wZXJ0eVxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmdldERhdGUodmFsdWUpLnRvRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgcHJvdGVjdGVkIGdldEFycm93SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmFycm93ID8gdGhpcy5waWNrZXJhcnJvdy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCA6IDA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEFycm93V2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyYXJyb3cgPyB0aGlzLnBpY2tlcmFycm93Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gbGlua3NcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25MZWZ0KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3NpdGlvbkxlZnQoXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5wb3NQb3B1cExlZnQgPSB2YWx1ZTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24udG9wOlxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tOlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gdGhpcy5nZXRQaWNrZXJXaWR0aCgpIC8gMiAtIC10aGlzLmdldEFycm93V2lkdGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcGVuZDpcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZDpcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UGlja2VyV2lkdGgoKSAtXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpIC8gMiAtXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9wdXBIZWxwZXIuZ2V0Q29udGFpbmVyV2lkdGgodGhpcy5waWNrZXJidXR0b24sIGZhbHNlKSAvIDI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b3BcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25Ub3AoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uVG9wKFxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucG9zUG9wdXBUb3AgPSB2YWx1ZTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ubGVmdDpcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnJpZ2h0OlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSB0aGlzLmdldFBpY2tlckhlaWdodCgpIC8gMiAtIDYuNTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIG1ldGhvZCBpZiBjb250ZW50IGhhcyBjaGFuZ2VkIGFuZCBwcm9wb3J0aW9ucyBuZWVkIHRvIGJlIHJlc2V0IGluIHRoZSBVSS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uQ29udGVudENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJsZVxuICAgICAgICBpZiAoIXRoaXMuX3Nob3dzZWxlY3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uTGVmdCgpO1xuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvblRvcCgpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBzZXREYXRlVGltZUZvcm1hdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gSEFDSzogQWRkIGFkZGl0aW9uIHByb3BlcnR5IHRvIEZvcm1Db250cm9sLiBDYW4gYmUgZml4ZWQgaWYgc29sdXRpb24gZm9yIHRpY2tldDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTk2ODZcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICAodGhpcy5uZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBJRGF0ZVRpbWVDb250cm9sKS5kYXRldGltZWZvcm1hdHN0cmluZyA9IHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXX0=
|
|
90
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMTkzemJxbnM3ayIsImFjdHVhbENvdmVyYWdlIiwiVG9vbHRpcFBvc2l0aW9uIiwiUG9wVXBIZWxwZXIiLCJWYWxpZGF0aW9uIiwiQ3JlYXRlVmFsaWRhdGlvbkVycm9yIiwiU2FjQmFzZU1vZGVsQ29udHJvbCIsIkRpcmVjdGl2ZSIsIklucHV0IiwiVmlld0NoaWxkIiwibW9tZW50XyIsIlNhY0Jhc2VEYXRlVGltZUNvbnRyb2wiLCJjb25zdHJ1Y3RvciIsImZvcm1sYXlvdXQiLCJpbmplY3RvciIsImVsZW1lbnRSZWYiLCJjZFJlZiIsImYiLCJzIiwicG9wdXBIZWxwZXIiLCJfdmFsdWVBc1N0cmluZyIsIl9zaG93c2VsZWN0b3IiLCJpc3JlcXVpcmVkIiwibW9tZW50IiwicGlja2VyUG9zaXRpb24iLCJwbGFjZWhvbGRlciIsInBvc0Fycm93TGVmdCIsInBvc0Fycm93VG9wIiwicG9zUG9wdXBMZWZ0IiwicG9zUG9wdXBUb3AiLCJwb3NpdGlvbiIsInZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQiLCJ2YWxpZGF0aW9uS2V5U2VydmljZSIsIlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0IiwidmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnkiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkIiwiVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeSIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZCIsIm9uQ29udGVudENoYW5nZSIsImIiLCJzZXRUaW1lb3V0IiwiZ2V0UG9zaXRpb25MZWZ0IiwiZ2V0UG9zaXRpb25Ub3AiLCJwaWNrZXIiLCJ1bmRlZmluZWQiLCJkb2N1bWVudCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsIm5hdGl2ZUVsZW1lbnQiLCJwaWNrZXJjb250YWluZXIiLCJkZXRlY3RDaGFuZ2VzIiwidG9vbHRvcCIsInZhbHVlc3RyaW5nIiwidmFsdWUiLCJkYXRlIiwidXRjIiwibG9jYWwiLCJmb3JtYXQiLCJHZXREYXRlVGltZUZvcm1hdFN0cmluZyIsInYiLCJNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlIiwiaXNWYWxpZCIsInRvRGF0ZSIsIkdldFBpY2tlclBvc2l0aW9uIiwiZ2V0RGlzcGxheVBvc2l0aW9uIiwicGlja2VyYnV0dG9uIiwiZ2V0QXJyb3dXaWR0aCIsImdldEFycm93SGVpZ2h0IiwiZ2V0RGF0ZSIsInRpbWVzdGFtcCIsIkRhdGUiLCJ5ZWFyIiwiZ2V0VVRDRnVsbFllYXIiLCJtb250aCIsImdldFVUQ01vbnRoIiwiZGF5IiwiZ2V0VVRDRGF0ZSIsImhvdXJzIiwiZ2V0VVRDSG91cnMiLCJtaW51dGVzIiwiZ2V0VVRDTWludXRlcyIsInNlY29uZHMiLCJnZXRVVENTZWNvbmRzIiwiVVRDIiwiZ2V0UGlja2VySGVpZ2h0IiwiZ2V0UG9wdXBIZWlnaHQiLCJnZXRQaWNrZXJXaWR0aCIsImdldFBvcHVwV2lkdGgiLCJuZ0RvQ2hlY2siLCJuZ09uRGVzdHJveSIsIndpbmRvdyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJuZ09uSW5pdCIsInNldERhdGVUaW1lRm9ybWF0IiwiYWRkRXZlbnRMaXN0ZW5lciIsInNldFZhbHVlU3RyaW5nIiwidmFsaWRhdGVEYXRhIiwiYyIsImVycm9yIiwiaW5kZXhPZiIsImlzVmFsaWREYXRlIiwicmVxdWlyZWQiLCJ3cml0ZVZhbHVlIiwiX3ZhbHVlIiwicGlja2VyYXJyb3ciLCJvZmZzZXRIZWlnaHQiLCJvZmZzZXRXaWR0aCIsInRvcCIsImJvdHRvbSIsInRvcGVuZCIsImJvdHRvbWVuZCIsImdldENvbnRhaW5lcldpZHRoIiwibGVmdCIsInJpZ2h0IiwibmdDb250cm9sIiwiZGF0ZXRpbWVmb3JtYXRzdHJpbmciLCJkZXBzIiwidG9rZW4iLCJpMSIsIlNhY0Zvcm1MYXlvdXRDb21tb24iLCJpMCIsIkluamVjdG9yIiwiRWxlbWVudFJlZiIsIkNoYW5nZURldGVjdG9yUmVmIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJ2aWV3UXVlcmllcyIsInByb3BlcnR5TmFtZSIsImZpcnN0IiwicHJlZGljYXRlIiwiZGVzY2VuZGFudHMiLCJzdGF0aWMiLCJ1c2VzSW5oZXJpdGFuY2UiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZWRhdGV0aW1lY29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgSURhdGVUaW1lQ29udHJvbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWRhdGV0aW1lY29udHJvbCc7XG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24gfSBmcm9tICcuLi91dGlsaXRpZXMvZW51bXMnO1xuaW1wb3J0IHsgUG9wVXBIZWxwZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvcG9wdXBoZWxwZXInO1xuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQ3JlYXRlVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uZXJyb3JjcmVhdG9yJztcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcblxuLyoqXG4gKiBCYXNlIEtsYXNzZSBmw7xyIERhdGUvVGltZSBDb250cm9sc1xuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sIGV4dGVuZHMgU2FjQmFzZU1vZGVsQ29udHJvbDxEYXRlPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEhlbHBlciBjbGFzcyB0byBkaXNwbGF5IHRvb2x0aXAgb24gY29ycmVjdCBwb3NpdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9wdXBIZWxwZXI6IFBvcFVwSGVscGVyID0gbmV3IFBvcFVwSGVscGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBkYXMgcHJvcGVydHkgZW50aGllbHQgZGFzIFZhbHVlIGFscyBzdHJpbmcuIERlZmF1bHQgaXN0ICcnXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF92YWx1ZUFzU3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBDb250YWluZXJzIGZvciB0aGUgZGF0ZXRpbWUgcGlja2VyXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHBpY2tlcmNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBmb3IgZW51bSBpbiBBbmd1bGFyIEhUTUwgdGVtcGxhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgVG9vbHRpcFBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5pZXJ0IG9iIGRlciBEYXRlIFNlbGVjdG9yIGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIF9zaG93c2VsZWN0b3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNyZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTW9tZW50IEpTIEluc3RhbmNlXG4gICAgICovXG4gICAgcHVibGljIG1vbWVudCA9IG1vbWVudF9bJ2RlZmF1bHQnXTtcblxuICAgIC8qKlxuICAgICAqIEFycm93IEl0ZW0gb2YgUGlja2VyIEVsZW1lbnQuIFJlcXVpcmVkIHRvIHNldCB0aGUgcG9zaXRpb24gb2YgYXJyb3cgY29ycmVjdGx5XG4gICAgICovXG4gICAgcHVibGljIHBpY2tlclBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uO1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcmFycm93JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHBpY2tlcmFycm93OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIGNvbnRlbnQgKGUuZy4gaWNvbikgb24gd2hpY2ggdGhlIHRvb2x0aXAgaXMgZGlzcGxheWVkLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcmJ1dHRvbicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIHBpY2tlcmJ1dHRvbjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBUZXh0Qm94IFBsYWNlaG9sZGVyXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgbGVmdFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3NBcnJvd0xlZnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93VG9wOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXQgdGhlIGxlZnRcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zUG9wdXBMZWZ0OiBudW1iZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIHBvc1BvcHVwVG9wOiBudW1iZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIGRhdGV0aW1lIHBpY2tlci4gVmFsdWVzOiBsZWZ0fHRvcHxyaWdodHxib3R0b218YXV0b1xuICAgICAqXG4gICAgICogVmFsdWUgJ2F1dG8nIGNhbiBiZSBjb21iaW5lZCB3aXRoIGFub3RoZXIgdmFsdWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcG9zaXRpb246IHN0cmluZyA9ICdib3R0b21lbmR8dG9wZW5kJztcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0OiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0O1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeTogc3RyaW5nID1cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnk6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiByZWZlcmVuY2UgdG8gaHRtbCBlbGVtZW50XG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogU2V0dGVyIGZvciB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGUgdG9vbHRpcC4gSXMgcmVxdWlyZWQgYXMgdGhlIHRvb2x0aXAgY2FuIGJlIGhpZGRlbiB2aWEgbmdJZi5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdwaWNrZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgc2V0IHBpY2tlcihwaWNrZXI6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgaWYgKHBpY2tlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBpY2tlci5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyID0gcGlja2VyO1xuICAgICAgICB0aGlzLm9uQ29udGVudENoYW5nZSgpO1xuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRvb2x0b3AoKTogRWxlbWVudFJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXR0ZXIgZsO8ciB2YWx1ZXN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsdWVzdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUFzU3RyaW5nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMubW9tZW50LnV0Yyh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmxvY2FsKCkuZm9ybWF0KHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEYXMgSW5wdXQgYmVrb21tdCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWVzdHJpbmcodjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSB2O1xuICAgICAgICBsZXQgZGF0ZTogbW9tZW50Xy5Nb21lbnQgPSB0aGlzLm1vbWVudCh2LCBbdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpXSwgdHJ1ZSk7XG5cbiAgICAgICAgZGF0ZSA9IHRoaXMuTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZShkYXRlKS51dGMoKTtcblxuICAgICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlLnRvRGF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBEaWUgbWV0aG9kZSByZXR1cm5zIGRhdGVUaW1lIGluIHN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBHZXREYXRlVGltZUZvcm1hdFN0cmluZygpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBHZXRQaWNrZXJQb3NpdGlvbigpOiBUb29sdGlwUG9zaXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXREaXNwbGF5UG9zaXRpb24oXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaWUgbWV0aG9kZSBtb2RpZml6aWVydCBkYXMgZWluZ2VnZWJlbmUgVmFsdWUgdm9uIHR5cCBNb21lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSh2OiBtb21lbnRfLk1vbWVudCk6IG1vbWVudF8uTW9tZW50O1xuXG4gICAgLyoqXG4gICAgICogSlNPTiBEYXRlIFN0cmluZyBpbiBlaW4gVVRDIERhdGVUaW1lIE9iamVjdCBrb252ZXJ0aWVyZW4sIHdlbGNoZXMgdm9tIENvbnRyb2wgdmVyd2VuZGV0ZSB3ZXJkZW4ga2FublxuICAgICAqL1xuICAgIHB1YmxpYyBnZXREYXRlKHRpbWVzdGFtcCk6IG1vbWVudC5Nb21lbnQge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGltZXN0YW1wKTtcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgICAgICAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XG4gICAgICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0VVRDRGF0ZSgpO1xuICAgICAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0VVRDSG91cnMoKTtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0VVRDTWludXRlcygpO1xuICAgICAgICBjb25zdCBzZWNvbmRzID0gZGF0ZS5nZXRVVENTZWNvbmRzKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubW9tZW50KERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIGdldFBpY2tlckhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cEhlaWdodCh0aGlzLnBpY2tlcmNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIHBpY2tlclxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQaWNrZXJXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cFdpZHRoKHRoaXMucGlja2VyY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzLm9uQ29udGVudENoYW5nZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy8gVW5yZWdpc3RlciBFdmVudCBMaXN0ZW5lclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXQgRXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuc2V0RGF0ZVRpbWVGb3JtYXQoKTtcblxuICAgICAgICAvLyBSZWdpc3RlciBFdmVudCBMaXN0ZW5lclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldHp0IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZyB6dSBwcm9wZXJ0eSB2YWx1ZXN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBzZXRWYWx1ZVN0cmluZyh2OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy52YWx1ZXN0cmluZyA9IHY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLnZhbHVlc3RyaW5nICE9PSBudWxsICYmIHRoaXMudmFsdWVzdHJpbmcuaW5kZXhPZignXycpID49IDApIHtcbiAgICAgICAgICAgIGVycm9yID0gQ3JlYXRlVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgICAgICAgICdpbnZhbGlkdHlwZScsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0LFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5pc1ZhbGlkRGF0ZShcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnlcbiAgICAgICAgKShjKTtcblxuICAgICAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ucmVxdWlyZWQodGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLCB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5KShjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPdmVyd3JpdGUgV3JpdGVWYWx1ZSB0byBTZXQgY29ycmVjdCBEYXRlIE9iamVjdFxuICAgICAqL1xuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gUmVzZXQgVmFsdWUgU3RyaW5nLCBkYW1pdCBiZWltIFVwZGF0ZSBkZXMgTW9kZWxzIGF1Y2ggZGFzIElucHV0IEZlbGQgZ2VsZWVydCB3aXJkLlxuICAgICAgICAgICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9ICcnO1xuICAgICAgICAgICAgLy8gU2V0IEludGVybmFsIFByb3BlcnR5XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZ2V0RGF0ZSh2YWx1ZSkudG9EYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICBwcm90ZWN0ZWQgZ2V0QXJyb3dIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyYXJyb3cgPyB0aGlzLnBpY2tlcmFycm93Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IDogMDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0QXJyb3dXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJhcnJvdyA/IHRoaXMucGlja2VyYXJyb3cubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSBsaW5rc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRQb3NpdGlvbkxlZnQoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uTGVmdChcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYsXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnBvc1BvcHVwTGVmdCA9IHZhbHVlO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5HZXRQaWNrZXJQb3NpdGlvbigpKSB7XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi50b3A6XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5ib3R0b206XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSB0aGlzLmdldFBpY2tlcldpZHRoKCkgLyAyIC0gLXRoaXMuZ2V0QXJyb3dXaWR0aCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24udG9wZW5kOlxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tZW5kOlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRQaWNrZXJXaWR0aCgpIC1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCkgLyAyIC1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3B1cEhlbHBlci5nZXRDb250YWluZXJXaWR0aCh0aGlzLnBpY2tlcmJ1dHRvbiwgZmFsc2UpIC8gMjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvcFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRQb3NpdGlvblRvcCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25Ub3AoXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5wb3NQb3B1cFRvcCA9IHZhbHVlO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5HZXRQaWNrZXJQb3NpdGlvbigpKSB7XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5sZWZ0OlxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ucmlnaHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IHRoaXMuZ2V0UGlja2VySGVpZ2h0KCkgLyAyIC0gNi41O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogbWV0aG9kIGlmIGNvbnRlbnQgaGFzIGNoYW5nZWQgYW5kIHByb3BvcnRpb25zIG5lZWQgdG8gYmUgcmVzZXQgaW4gdGhlIFVJLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb25Db250ZW50Q2hhbmdlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmxlXG4gICAgICAgIGlmICghdGhpcy5fc2hvd3NlbGVjdG9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ2V0UG9zaXRpb25MZWZ0KCk7XG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uVG9wKCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHNldERhdGVUaW1lRm9ybWF0KCk6IHZvaWQge1xuICAgICAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElEYXRlVGltZUNvbnRyb2wpLmRhdGV0aW1lZm9ybWF0c3RyaW5nID0gdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcbn1cbiJdLCJtYXBwaW5ncyI6Iit0akNBc0lJO0FBQUFBLGNBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsY0FBQSxHQXBJSixPQUFTRSxlQUFlLEtBQVEsb0JBQW9CLENBQ3BELE9BQVNDLFdBQVcsS0FBUSwwQkFBMEIsQ0FDdEQsT0FBU0MsVUFBVSxLQUFRLGVBQWUsQ0FDMUMsT0FBU0MscUJBQXFCLEtBQVEsc0NBQXNDLENBQzVFLE9BQVNDLG1CQUFtQixLQUFRLG9CQUFvQixDQUN4RCxPQUVJQyxTQUFTLENBSVRDLEtBQUssQ0FHTEMsU0FBUyxLQUNOLGVBQWUsQ0FFdEIsTUFBTyxHQUFLLENBQUFDLE9BQU8sS0FBTSxRQUFRLEMsa0ZBRWpDOztHQUdBLEtBQ3NCLENBQUFDLHNCQUF1QixRQUFRLENBQUFMLG1CQUF5QixDQXlHMUU7QUFFQTtBQUVBOzs7OztPQU1BTSxZQUNJQyxV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
|