@simpleangularcontrols/sac-common 13.0.0-rc.11 → 13.0.0-rc.13

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.
Files changed (72) hide show
  1. package/common/basedatetimecontrol.d.ts.map +1 -1
  2. package/common/baseuploadcontrol.d.ts +73 -52
  3. package/common/baseuploadcontrol.d.ts.map +1 -1
  4. package/controls/input/input.d.ts +4 -4
  5. package/controls/input/input.d.ts.map +1 -1
  6. package/controls/input/inputarea.d.ts +6 -6
  7. package/controls/input/inputarea.d.ts.map +1 -1
  8. package/controls/input/inputpassword.d.ts +8 -8
  9. package/controls/input/inputpassword.d.ts.map +1 -1
  10. package/controls/multilanguage/multilanguageinput.d.ts +3 -3
  11. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  12. package/controls/multilanguage/multilanguageinputarea.d.ts +5 -5
  13. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  14. package/controls/treeview/treeview.d.ts +35 -1
  15. package/controls/treeview/treeview.d.ts.map +1 -1
  16. package/esm2020/common/basedatetimecontrol.mjs +10 -10
  17. package/esm2020/common/baseuploadcontrol.mjs +66 -57
  18. package/esm2020/controls/input/input.mjs +6 -6
  19. package/esm2020/controls/input/inputarea.mjs +17 -12
  20. package/esm2020/controls/input/inputpassword.mjs +10 -10
  21. package/esm2020/controls/multilanguage/multilanguageinput.mjs +5 -5
  22. package/esm2020/controls/multilanguage/multilanguageinputarea.mjs +6 -6
  23. package/esm2020/controls/treeview/treeview.mjs +32 -8
  24. package/esm2020/interfaces/ISacUploadEventCompleteState.mjs +3 -0
  25. package/esm2020/interfaces/ISacUploadEventCompleteState.ngfactory.mjs +3 -0
  26. package/esm2020/interfaces/ISacUploadEventCompleteState.ngsummary.mjs +3 -0
  27. package/esm2020/interfaces/ISacValidationKeyService.mjs +3 -3
  28. package/esm2020/public_api.mjs +3 -3
  29. package/esm2020/services/sac-localisation.service.mjs +21 -20
  30. package/esm2020/services/sac-validationkey.service.mjs +5 -5
  31. package/esm2020/validation/mintextlength.validator.mjs +5 -0
  32. package/esm2020/validation/mintextlength.validator.ngfactory.mjs +3 -0
  33. package/esm2020/validation/mintextlength.validator.ngsummary.mjs +3 -0
  34. package/esm2020/validation/validation.mjs +68 -63
  35. package/fesm2015/simpleangularcontrols-sac-common.mjs +1129 -1083
  36. package/fesm2015/simpleangularcontrols-sac-common.mjs.map +1 -1
  37. package/fesm2020/simpleangularcontrols-sac-common.mjs +1132 -1086
  38. package/fesm2020/simpleangularcontrols-sac-common.mjs.map +1 -1
  39. package/interfaces/ISacUploadEventCompleteState.d.ts +6 -0
  40. package/interfaces/ISacUploadEventCompleteState.d.ts.map +1 -0
  41. package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts +2 -0
  42. package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts.map +1 -0
  43. package/interfaces/ISacUploadEventCompleteState.ngsummary.d.ts +2 -0
  44. package/interfaces/ISacUploadEventCompleteState.ngsummary.d.ts.map +1 -0
  45. package/interfaces/ISacValidationKeyService.d.ts +2 -2
  46. package/interfaces/ISacValidationKeyService.d.ts.map +1 -1
  47. package/package.json +1 -1
  48. package/public_api.d.ts +1 -0
  49. package/public_api.d.ts.map +1 -1
  50. package/services/sac-localisation.service.d.ts +10 -10
  51. package/services/sac-localisation.service.d.ts.map +1 -1
  52. package/services/sac-validationkey.service.d.ts +2 -2
  53. package/services/sac-validationkey.service.d.ts.map +1 -1
  54. package/simpleangularcontrols-sac-common-13.0.0-rc.13.tgz +0 -0
  55. package/validation/mintextlength.validator.d.ts +3 -0
  56. package/validation/mintextlength.validator.d.ts.map +1 -0
  57. package/validation/mintextlength.validator.ngfactory.d.ts +2 -0
  58. package/validation/mintextlength.validator.ngfactory.d.ts.map +1 -0
  59. package/validation/mintextlength.validator.ngsummary.d.ts +2 -0
  60. package/validation/mintextlength.validator.ngsummary.d.ts.map +1 -0
  61. package/validation/validation.d.ts +56 -56
  62. package/validation/validation.d.ts.map +1 -1
  63. package/esm2020/validation/minlength.validator.mjs +0 -3
  64. package/esm2020/validation/minlength.validator.ngfactory.mjs +0 -3
  65. package/esm2020/validation/minlength.validator.ngsummary.mjs +0 -3
  66. package/simpleangularcontrols-sac-common-13.0.0-rc.11.tgz +0 -0
  67. package/validation/minlength.validator.d.ts +0 -3
  68. package/validation/minlength.validator.d.ts.map +0 -1
  69. package/validation/minlength.validator.ngfactory.d.ts +0 -2
  70. package/validation/minlength.validator.ngfactory.d.ts.map +0 -1
  71. package/validation/minlength.validator.ngsummary.d.ts +0 -2
  72. package/validation/minlength.validator.ngsummary.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
- function cov_hvo2y7yjc(){var path="C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\common\\basedatetimecontrol.mjs";var hash="4505dfa76a4107bad168b331c17dce5eee6fd5c6";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\common\\basedatetimecontrol.mjs",statementMap:{"0":{start:{line:22,column:8},end:{line:22,column:36}},"1":{start:{line:23,column:8},end:{line:23,column:37}},"2":{start:{line:24,column:8},end:{line:24,column:27}},"3":{start:{line:29,column:8},end:{line:29,column:45}},"4":{start:{line:33,column:8},end:{line:33,column:33}},"5":{start:{line:37,column:8},end:{line:37,column:47}},"6":{start:{line:41,column:8},end:{line:41,column:35}},"7":{start:{line:45,column:8},end:{line:45,column:32}},"8":{start:{line:49,column:8},end:{line:49,column:41}},"9":{start:{line:53,column:8},end:{line:53,column:46}},"10":{start:{line:57,column:8},end:{line:57,column:32}},"11":{start:{line:61,column:8},end:{line:61,column:33}},"12":{start:{line:65,column:8},end:{line:65,column:32}},"13":{start:{line:69,column:8},end:{line:69,column:30}},"14":{start:{line:73,column:8},end:{line:73,column:29}},"15":{start:{line:79,column:8},end:{line:79,column:43}},"16":{start:{line:83,column:8},end:{line:83,column:103}},"17":{start:{line:87,column:8},end:{line:87,column:117}},"18":{start:{line:91,column:8},end:{line:91,column:91}},"19":{start:{line:95,column:8},end:{line:95,column:105}},"20":{start:{line:101,column:8},end:{line:110,column:10}},"21":{start:{line:103,column:12},end:{line:105,column:13}},"22":{start:{line:104,column:16},end:{line:104,column:23}},"23":{start:{line:106,column:12},end:{line:109,column:15}},"24":{start:{line:107,column:16},end:{line:107,column:39}},"25":{start:{line:108,column:16},end:{line:108,column:38}},"26":{start:{line:118,column:8},end:{line:120,column:9}},"27":{start:{line:119,column:12},end:{line:119,column:60}},"28":{start:{line:121,column:8},end:{line:121,column:38}},"29":{start:{line:122,column:8},end:{line:122,column:31}},"30":{start:{line:123,column:8},end:{line:123,column:35}},"31":{start:{line:126,column:8},end:{line:126,column:36}},"32":{start:{line:132,column:8},end:{line:138,column:9}},"33":{start:{line:133,column:12},end:{line:133,column:39}},"34":{start:{line:136,column:25},end:{line:136,column:52}},"35":{start:{line:137,column:12},end:{line:137,column:71}},"36":{start:{line:144,column:8},end:{line:144,column:32}},"37":{start:{line:145,column:19},end:{line:145,column:73}},"38":{start:{line:146,column:8},end:{line:146,column:58}},"39":{start:{line:147,column:8},end:{line:152,column:9}},"40":{start:{line:148,column:12},end:{line:148,column:39}},"41":{start:{line:151,column:12},end:{line:151,column:30}},"42":{start:{line:158,column:8},end:{line:158,column:159}},"43":{start:{line:164,column:21},end:{line:164,column:40}},"44":{start:{line:165,column:21},end:{line:165,column:42}},"45":{start:{line:166,column:22},end:{line:166,column:40}},"46":{start:{line:167,column:20},end:{line:167,column:37}},"47":{start:{line:168,column:22},end:{line:168,column:40}},"48":{start:{line:169,column:24},end:{line:169,column:44}},"49":{start:{line:170,column:24},end:{line:170,column:44}},"50":{start:{line:171,column:8},end:{line:171,column:80}},"51":{start:{line:177,column:8},end:{line:177,column:69}},"52":{start:{line:183,column:8},end:{line:183,column:68}},"53":{start:{line:190,column:8},end:{line:190,column:73}},"54":{start:{line:191,column:8},end:{line:191,column:73}},"55":{start:{line:197,column:8},end:{line:197,column:25}},"56":{start:{line:198,column:8},end:{line:198,column:33}},"57":{start:{line:200,column:8},end:{line:200,column:70}},"58":{start:{line:201,column:8},end:{line:201,column:70}},"59":{start:{line:207,column:8},end:{line:207,column:29}},"60":{start:{line:213,column:20},end:{line:213,column:24}},"61":{start:{line:214,column:8},end:{line:214,column:125}},"62":{start:{line:215,column:8},end:{line:217,column:9}},"63":{start:{line:216,column:12},end:{line:216,column:114}},"64":{start:{line:218,column:8},end:{line:218,column:21}},"65":{start:{line:224,column:8},end:{line:232,column:9}},"66":{start:{line:226,column:12},end:{line:226,column:37}},"67":{start:{line:228,column:12},end:{line:228,column:31}},"68":{start:{line:231,column:12},end:{line:231,column:55}},"69":{start:{line:233,column:8},end:{line:233,column:38}},"70":{start:{line:238,column:8},end:{line:238,column:82}},"71":{start:{line:241,column:8},end:{line:241,column:81}},"72":{start:{line:247,column:22},end:{line:247,column:179}},"73":{start:{line:248,column:8},end:{line:248,column:34}},"74":{start:{line:249,column:8},end:{line:264,column:9}},"75":{start:{line:252,column:16},end:{line:252,column:86}},"76":{start:{line:253,column:16},end:{line:253,column:22}},"77":{start:{line:256,column:16},end:{line:259,column:89}},"78":{start:{line:260,column:16},end:{line:260,column:22}},"79":{start:{line:262,column:16},end:{line:262,column:41}},"80":{start:{line:263,column:16},end:{line:263,column:22}},"81":{start:{line:265,column:8},end:{line:265,column:21}},"82":{start:{line:271,column:22},end:{line:271,column:178}},"83":{start:{line:272,column:8},end:{line:272,column:33}},"84":{start:{line:273,column:8},end:{line:281,column:9}},"85":{start:{line:276,column:16},end:{line:276,column:68}},"86":{start:{line:277,column:16},end:{line:277,column:22}},"87":{start:{line:279,column:16},end:{line:279,column:40}},"88":{start:{line:280,column:16},end:{line:280,column:22}},"89":{start:{line:282,column:8},end:{line:282,column:21}},"90":{start:{line:286,column:8},end:{line:288,column:9}},"91":{start:{line:287,column:12},end:{line:287,column:81}},"92":{start:{line:291,column:0},end:{line:291,column:305}},"93":{start:{line:292,column:0},end:{line:292,column:858}},"94":{start:{line:293,column:0},end:{line:320,column:20}},"95":{start:{line:295,column:42},end:{line:295,column:164}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:21,column:4},end:{line:21,column:5}},loc:{start:{line:21,column:57},end:{line:111,column:5}},line:21},"1":{name:"(anonymous_1)",decl:{start:{line:101,column:31},end:{line:101,column:32}},loc:{start:{line:101,column:37},end:{line:110,column:9}},line:101},"2":{name:"(anonymous_2)",decl:{start:{line:106,column:23},end:{line:106,column:24}},loc:{start:{line:106,column:29},end:{line:109,column:13}},line:106},"3":{name:"(anonymous_3)",decl:{start:{line:117,column:4},end:{line:117,column:5}},loc:{start:{line:117,column:23},end:{line:124,column:5}},line:117},"4":{name:"(anonymous_4)",decl:{start:{line:125,column:4},end:{line:125,column:5}},loc:{start:{line:125,column:18},end:{line:127,column:5}},line:125},"5":{name:"(anonymous_5)",decl:{start:{line:131,column:4},end:{line:131,column:5}},loc:{start:{line:131,column:22},end:{line:139,column:5}},line:131},"6":{name:"(anonymous_6)",decl:{start:{line:143,column:4},end:{line:143,column:5}},loc:{start:{line:143,column:23},end:{line:153,column:5}},line:143},"7":{name:"(anonymous_7)",decl:{start:{line:157,column:4},end:{line:157,column:5}},loc:{start:{line:157,column:24},end:{line:159,column:5}},line:157},"8":{name:"(anonymous_8)",decl:{start:{line:163,column:4},end:{line:163,column:5}},loc:{start:{line:163,column:23},end:{line:172,column:5}},line:163},"9":{name:"(anonymous_9)",decl:{start:{line:176,column:4},end:{line:176,column:5}},loc:{start:{line:176,column:22},end:{line:178,column:5}},line:176},"10":{name:"(anonymous_10)",decl:{start:{line:182,column:4},end:{line:182,column:5}},loc:{start:{line:182,column:21},end:{line:184,column:5}},line:182},"11":{name:"(anonymous_11)",decl:{start:{line:185,column:4},end:{line:185,column:5}},loc:{start:{line:185,column:16},end:{line:187,column:5}},line:185},"12":{name:"(anonymous_12)",decl:{start:{line:188,column:4},end:{line:188,column:5}},loc:{start:{line:188,column:18},end:{line:192,column:5}},line:188},"13":{name:"(anonymous_13)",decl:{start:{line:196,column:4},end:{line:196,column:5}},loc:{start:{line:196,column:15},end:{line:202,column:5}},line:196},"14":{name:"(anonymous_14)",decl:{start:{line:206,column:4},end:{line:206,column:5}},loc:{start:{line:206,column:22},end:{line:208,column:5}},line:206},"15":{name:"(anonymous_15)",decl:{start:{line:212,column:4},end:{line:212,column:5}},loc:{start:{line:212,column:20},end:{line:219,column:5}},line:212},"16":{name:"(anonymous_16)",decl:{start:{line:223,column:4},end:{line:223,column:5}},loc:{start:{line:223,column:22},end:{line:234,column:5}},line:223},"17":{name:"(anonymous_17)",decl:{start:{line:237,column:4},end:{line:237,column:5}},loc:{start:{line:237,column:21},end:{line:239,column:5}},line:237},"18":{name:"(anonymous_18)",decl:{start:{line:240,column:4},end:{line:240,column:5}},loc:{start:{line:240,column:20},end:{line:242,column:5}},line:240},"19":{name:"(anonymous_19)",decl:{start:{line:246,column:4},end:{line:246,column:5}},loc:{start:{line:246,column:22},end:{line:266,column:5}},line:246},"20":{name:"(anonymous_20)",decl:{start:{line:270,column:4},end:{line:270,column:5}},loc:{start:{line:270,column:21},end:{line:283,column:5}},line:270},"21":{name:"(anonymous_21)",decl:{start:{line:284,column:4},end:{line:284,column:5}},loc:{start:{line:284,column:24},end:{line:289,column:5}},line:284},"22":{name:"(anonymous_22)",decl:{start:{line:295,column:28},end:{line:295,column:29}},loc:{start:{line:295,column:40},end:{line:295,column:166}},line:295}},branchMap:{"0":{loc:{start:{line:103,column:12},end:{line:105,column:13}},type:"if",locations:[{start:{line:103,column:12},end:{line:105,column:13}},{start:{line:103,column:12},end:{line:105,column:13}}],line:103},"1":{loc:{start:{line:118,column:8},end:{line:120,column:9}},type:"if",locations:[{start:{line:118,column:8},end:{line:120,column:9}},{start:{line:118,column:8},end:{line:120,column:9}}],line:118},"2":{loc:{start:{line:132,column:8},end:{line:138,column:9}},type:"if",locations:[{start:{line:132,column:8},end:{line:138,column:9}},{start:{line:132,column:8},end:{line:138,column:9}}],line:132},"3":{loc:{start:{line:147,column:8},end:{line:152,column:9}},type:"if",locations:[{start:{line:147,column:8},end:{line:152,column:9}},{start:{line:147,column:8},end:{line:152,column:9}}],line:147},"4":{loc:{start:{line:215,column:8},end:{line:217,column:9}},type:"if",locations:[{start:{line:215,column:8},end:{line:217,column:9}},{start:{line:215,column:8},end:{line:217,column:9}}],line:215},"5":{loc:{start:{line:224,column:8},end:{line:232,column:9}},type:"if",locations:[{start:{line:224,column:8},end:{line:232,column:9}},{start:{line:224,column:8},end:{line:232,column:9}}],line:224},"6":{loc:{start:{line:224,column:12},end:{line:224,column:65}},type:"binary-expr",locations:[{start:{line:224,column:12},end:{line:224,column:24}},{start:{line:224,column:28},end:{line:224,column:42}},{start:{line:224,column:46},end:{line:224,column:65}}],line:224},"7":{loc:{start:{line:238,column:15},end:{line:238,column:81}},type:"cond-expr",locations:[{start:{line:238,column:34},end:{line:238,column:77}},{start:{line:238,column:80},end:{line:238,column:81}}],line:238},"8":{loc:{start:{line:241,column:15},end:{line:241,column:80}},type:"cond-expr",locations:[{start:{line:241,column:34},end:{line:241,column:76}},{start:{line:241,column:79},end:{line:241,column:80}}],line:241},"9":{loc:{start:{line:249,column:8},end:{line:264,column:9}},type:"switch",locations:[{start:{line:250,column:12},end:{line:250,column:37}},{start:{line:251,column:12},end:{line:253,column:22}},{start:{line:254,column:12},end:{line:254,column:40}},{start:{line:255,column:12},end:{line:260,column:22}},{start:{line:261,column:12},end:{line:263,column:22}}],line:249},"10":{loc:{start:{line:273,column:8},end:{line:281,column:9}},type:"switch",locations:[{start:{line:274,column:12},end:{line:274,column:38}},{start:{line:275,column:12},end:{line:277,column:22}},{start:{line:278,column:12},end:{line:280,column:22}}],line:273},"11":{loc:{start:{line:286,column:8},end:{line:288,column:9}},type:"if",locations:[{start:{line:286,column:8},end:{line:288,column:9}},{start:{line:286,column:8},end:{line:288,column:9}}],line:286}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0,0],"7":[0,0],"8":[0,0],"9":[0,0,0,0,0],"10":[0,0,0],"11":[0,0]},inputSourceMap:{version:3,file:"basedatetimecontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/basedatetimecontrol.ts"],names:[],mappings:"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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 { SacBaseModelControl } from './basemodelcontrol';\r\nimport {\r\n ChangeDetectorRef,\r\n Directive,\r\n DoCheck,\r\n ElementRef,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport * as moment_ from 'moment';\r\n\r\n/**\r\n * Base Klasse f\xFCr Date/Time Controls\r\n */\r\n@Directive()\r\nexport abstract class SacBaseDateTimeControl extends SacBaseModelControl<Date> implements OnInit, OnDestroy, DoCheck {\r\n // #region Properties\r\n\r\n /**\r\n * Helper class to display tooltip on correct position\r\n */\r\n private readonly popupHelper: PopUpHelper = new PopUpHelper();\r\n\r\n /**\r\n * das property enthielt das Value als string. Default ist ''\r\n */\r\n protected _valueAsString = '';\r\n\r\n /**\r\n * Containers for the datetime picker\r\n */\r\n\r\n protected pickercontainer: ElementRef<HTMLElement>;\r\n\r\n /**\r\n * Property for enum in Angular HTML template\r\n */\r\n public TooltipPosition = TooltipPosition;\r\n\r\n /**\r\n * Definiert ob der Date Selector angezeigt wird\r\n */\r\n public _showselector: boolean = false;\r\n\r\n /**\r\n * Definiert das Control als Required\r\n */\r\n @Input() public isrequired: boolean = false;\r\n\r\n /**\r\n * Moment JS Instance\r\n */\r\n public moment = moment_['default'];\r\n\r\n /**\r\n * Arrow Item of Picker Element. Required to set the position of arrow correctly\r\n */\r\n public pickerPosition = TooltipPosition;\r\n @ViewChild('pickerarrow', { static: false })\r\n public pickerarrow: ElementRef<HTMLElement> | null;\r\n\r\n /**\r\n * Name of the container for content (e.g. icon) on which the tooltip is displayed.\r\n */\r\n @ViewChild('pickerbutton', { static: true })\r\n public pickerbutton: ElementRef<HTMLElement>;\r\n\r\n /**\r\n * TextBox Placeholder\r\n */\r\n @Input() public placeholder: string = null;\r\n\r\n /**\r\n * Position of the picker arrow at the left\r\n */\r\n public posArrowLeft: number | null = null;\r\n\r\n /**\r\n * Position of the picker arrow at the top\r\n */\r\n public posArrowTop: number | null = null;\r\n\r\n /**\r\n * Position of the picker at the left\r\n */\r\n public posPopupLeft: number = 0;\r\n\r\n /**\r\n * Position of the picker at the top\r\n */\r\n public posPopupTop: number = 0;\r\n\r\n /**\r\n * Position of the datetime picker. Values: left|top|right|bottom|auto\r\n *\r\n * Value 'auto' can be combined with another value.\r\n */\r\n @Input()\r\n public position: string = 'bottomend|topend';\r\n\r\n /**\r\n * Resource Key f\xFCr Validation Message DateTimeFormat bei Control\r\n */\r\n @Input() public validationmessagedatetimeformat: string = this.validationKeyService.ValidationErrorDatetimeFormat;\r\n\r\n /**\r\n * Resource Key f\xFCr Validation Message DateTimeFormat in Validation Summary\r\n */\r\n @Input() public validationmessagedatetimeformatsummary: string =\r\n this.validationKeyService.ValidationErrorSummaryDatetimeFormat;\r\n\r\n /**\r\n * Resource Key f\xFCr Validation Message Required bei Control\r\n */\r\n @Input() public validationmessagerequired: string = this.validationKeyService.ValidationErrorRequired;\r\n\r\n /**\r\n * Resource Key f\xFCr Validation Message Required in Validation Summary\r\n */\r\n @Input() public validationmessagerequiredsummary: string = this.validationKeyService.ValidationErrorSummaryRequired;\r\n\r\n // #endregion Properties\r\n\r\n // #region Constructors\r\n\r\n /**\r\n * Constructor\r\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\r\n * @param injector Injector for injecting services\r\n * @param elementRef reference to html element\r\n */\r\n constructor(\r\n formlayout: SacFormLayoutCommon,\r\n injector: Injector,\r\n protected elementRef: ElementRef,\r\n private readonly cdRef: ChangeDetectorRef\r\n ) {\r\n super(formlayout, injector);\r\n }\r\n\r\n // #endregion Constructors\r\n\r\n // #region Public Getters And Setters\r\n\r\n /**\r\n * Setter for the name of the container for the tooltip. Is required as the tooltip can be hidden via ngIf.\r\n */\r\n @ViewChild('picker', { static: false })\r\n public set picker(picker: ElementRef) {\r\n if (picker !== undefined) {\r\n document.body.appendChild(picker.nativeElement);\r\n }\r\n\r\n this.pickercontainer = picker;\r\n this.onContentChange();\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n public get tooltop(): ElementRef {\r\n return this.pickercontainer;\r\n }\r\n\r\n /**\r\n * getter f\xFCr valuestring\r\n */\r\n public get valuestring(): string {\r\n if (this.value === null) {\r\n return this._valueAsString;\r\n } else {\r\n const date = this.moment.utc(this.value);\r\n return date.local().format(this.GetDateTimeFormatString());\r\n }\r\n }\r\n\r\n /**\r\n * Das Input bekommt das value von typ string\r\n */\r\n @Input()\r\n public set valuestring(v: string) {\r\n this._valueAsString = v;\r\n let date: moment_.Moment = this.moment(v, [this.GetDateTimeFormatString()], true);\r\n\r\n date = this.ModifyParsedDateTimeValue(date).utc();\r\n\r\n if (date.isValid()) {\r\n this.value = date.toDate();\r\n } else {\r\n this.value = null;\r\n }\r\n }\r\n\r\n // #endregion Public Getters And Setters\r\n\r\n // #region Public Methods\r\n\r\n /**\r\n * Die methode returns dateTime in string\r\n */\r\n public abstract GetDateTimeFormatString(): string;\r\n\r\n /**\r\n * Returns the position of the tooltip\r\n */\r\n public GetPickerPosition(): TooltipPosition {\r\n return this.popupHelper.getDisplayPosition(\r\n this.pickerbutton,\r\n this.pickercontainer,\r\n this.getArrowWidth(),\r\n this.getArrowHeight(),\r\n this.position,\r\n false\r\n );\r\n }\r\n\r\n /**\r\n * Die methode modifiziert das eingegebene Value von typ Moment\r\n */\r\n public abstract ModifyParsedDateTimeValue(v: moment_.Moment): moment_.Moment;\r\n\r\n /**\r\n * JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann\r\n */\r\n public getDate(timestamp): moment.Moment {\r\n const date = new Date(timestamp);\r\n const year = date.getUTCFullYear();\r\n const month = date.getUTCMonth();\r\n const day = date.getUTCDate();\r\n const hours = date.getUTCHours();\r\n const minutes = date.getUTCMinutes();\r\n const seconds = date.getUTCSeconds();\r\n\r\n return this.moment(Date.UTC(year, month, day, hours, minutes, seconds));\r\n }\r\n\r\n /**\r\n * Calculates the height of the tooltip\r\n */\r\n public getPickerHeight(): number {\r\n return this.popupHelper.getPopupHeight(this.pickercontainer);\r\n }\r\n\r\n /**\r\n * Calculates the width of the picker\r\n */\r\n public getPickerWidth(): number {\r\n return this.popupHelper.getPopupWidth(this.pickercontainer);\r\n }\r\n\r\n public ngDoCheck(): void {\r\n // this.onContentChange();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n // Unregister Event Listener\r\n window.removeEventListener('scroll', this.onContentChange, true);\r\n window.removeEventListener('resize', this.onContentChange, true);\r\n }\r\n\r\n /**\r\n * Init Event\r\n */\r\n public ngOnInit(): void {\r\n super.ngOnInit();\r\n this.setDateTimeFormat();\r\n\r\n // Register Event Listener\r\n window.addEventListener('scroll', this.onContentChange, true);\r\n window.addEventListener('resize', this.onContentChange, true);\r\n }\r\n\r\n /**\r\n * setzt das value von typ string zu property valuestring\r\n */\r\n public setValueString(v: string) {\r\n this.valuestring = v;\r\n }\r\n\r\n /**\r\n * Validator\r\n */\r\n public validateData(c: AbstractControl): ValidationErrors | null {\r\n let error: ValidationErrors | null = null;\r\n\r\n error = Validation.isValidDate(\r\n this.validationmessagedatetimeformat,\r\n this.validationmessagedatetimeformatsummary\r\n )(c);\r\n\r\n if (this.isrequired) {\r\n error = Validation.required(this.validationmessagerequired, this.validationmessagerequiredsummary)(c);\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * Overwrite WriteValue to Set correct Date Object\r\n */\r\n public writeValue(value: Date | string) {\r\n if (value === '' || value === null || value === undefined) {\r\n // Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.\r\n this._valueAsString = '';\r\n // Set Internal Property\r\n this._value = null;\r\n } else {\r\n this._value = this.getDate(value).toDate();\r\n }\r\n\r\n super.writeValue(this._value);\r\n }\r\n\r\n // #endregion Public Methods\r\n\r\n // #region Protected Methods\r\n\r\n protected getArrowHeight(): number {\r\n return this.pickerarrow ? this.pickerarrow.nativeElement.offsetHeight : 0;\r\n }\r\n\r\n protected getArrowWidth(): number {\r\n return this.pickerarrow ? this.pickerarrow.nativeElement.offsetWidth : 0;\r\n }\r\n\r\n /**\r\n * Calculates the position of the tooltip from links\r\n */\r\n protected getPositionLeft(): number {\r\n const value = this.popupHelper.getPositionLeft(\r\n this.pickerbutton,\r\n this.pickercontainer,\r\n this.elementRef,\r\n this.getArrowWidth(),\r\n this.getArrowHeight(),\r\n this.position,\r\n false\r\n );\r\n this.posPopupLeft = value;\r\n\r\n switch (this.GetPickerPosition()) {\r\n case TooltipPosition.top:\r\n case TooltipPosition.bottom:\r\n this.posArrowLeft = this.getPickerWidth() / 2 - -this.getArrowWidth();\r\n break;\r\n case TooltipPosition.topend:\r\n case TooltipPosition.bottomend:\r\n this.posArrowLeft =\r\n this.getPickerWidth() -\r\n this.getArrowWidth() / 2 -\r\n this.popupHelper.getContainerWidth(this.pickerbutton, false) / 2;\r\n break;\r\n default:\r\n this.posArrowLeft = null;\r\n break;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * Calculates the position of the tooltip from the top\r\n */\r\n protected getPositionTop(): number {\r\n const value = this.popupHelper.getPositionTop(\r\n this.pickerbutton,\r\n this.pickercontainer,\r\n this.elementRef,\r\n this.getArrowWidth(),\r\n this.getArrowHeight(),\r\n this.position,\r\n false\r\n );\r\n this.posPopupTop = value;\r\n\r\n switch (this.GetPickerPosition()) {\r\n case TooltipPosition.left:\r\n case TooltipPosition.right:\r\n this.posArrowTop = this.getPickerHeight() / 2 - 6.5;\r\n break;\r\n default:\r\n this.posArrowTop = null;\r\n break;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n // #endregion Protected Methods\r\n\r\n // #region Private Methods\r\n\r\n /**\r\n * method if content has changed and proportions need to be reset in the UI.\r\n */\r\n private readonly onContentChange = (): void => {\r\n // Do nothing if is not visible\r\n if (!this._showselector) {\r\n return;\r\n }\r\n\r\n setTimeout(() => {\r\n this.getPositionLeft();\r\n this.getPositionTop();\r\n });\r\n };\r\n\r\n private setDateTimeFormat(): void {\r\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\r\n if (this.ngControl) {\r\n (this.ngControl as unknown as IDateTimeControl).datetimeformatstring = this.GetDateTimeFormatString();\r\n }\r\n }\r\n\r\n // #endregion Private Methods\r\n}\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"4505dfa76a4107bad168b331c17dce5eee6fd5c6"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
- cov_hvo2y7yjc=function(){return actualCoverage;};}return actualCoverage;}cov_hvo2y7yjc();import{TooltipPosition}from'../utilities/enums';import{PopUpHelper}from'../utilities/popuphelper';import{Validation}from'../validation';import{SacBaseModelControl}from'./basemodelcontrol';import{Directive,Input,ViewChild}from'@angular/core';import*as moment_ from'moment';import*as i0 from"@angular/core";import*as i1 from"../controls/layout/formlayout";/**
1
+ function cov_hvo2y7yjc(){var path="C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\common\\basedatetimecontrol.mjs";var hash="b1e603801a4c65066cba728ca7548db04c49f448";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\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:298,column:0},end:{line:298,column:305}},"97":{start:{line:299,column:0},end:{line:299,column:858}},"98":{start:{line:300,column:0},end:{line:327,column:20}},"99":{start:{line:302,column:42},end:{line:302,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:302,column:28},end:{line:302,column:29}},loc:{start:{line:302,column:40},end:{line:302,column:166}},line:302}},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:"b1e603801a4c65066cba728ca7548db04c49f448"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
+ cov_hvo2y7yjc=function(){return actualCoverage;};}return actualCoverage;}cov_hvo2y7yjc();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
  */export class SacBaseDateTimeControl extends SacBaseModelControl{// #endregion Properties
5
5
  // #region Constructors
@@ -75,16 +75,16 @@ cov_hvo2y7yjc().s[57]++;window.addEventListener('scroll',this.onContentChange,tr
75
75
  * setzt das value von typ string zu property valuestring
76
76
  */setValueString(v){cov_hvo2y7yjc().f[14]++;cov_hvo2y7yjc().s[59]++;this.valuestring=v;}/**
77
77
  * Validator
78
- */validateData(c){cov_hvo2y7yjc().f[15]++;let error=(cov_hvo2y7yjc().s[60]++,null);cov_hvo2y7yjc().s[61]++;error=Validation.isValidDate(this.validationmessagedatetimeformat,this.validationmessagedatetimeformatsummary)(c);cov_hvo2y7yjc().s[62]++;if(this.isrequired){cov_hvo2y7yjc().b[4][0]++;cov_hvo2y7yjc().s[63]++;error=Validation.required(this.validationmessagerequired,this.validationmessagerequiredsummary)(c);}else{cov_hvo2y7yjc().b[4][1]++;}cov_hvo2y7yjc().s[64]++;return error;}/**
78
+ */validateData(c){cov_hvo2y7yjc().f[15]++;let error=(cov_hvo2y7yjc().s[60]++,null);cov_hvo2y7yjc().s[61]++;if((cov_hvo2y7yjc().b[5][0]++,this.valuestring!==null)&&(cov_hvo2y7yjc().b[5][1]++,this.valuestring.indexOf('_')>=0)){cov_hvo2y7yjc().b[4][0]++;cov_hvo2y7yjc().s[62]++;error=CreateValidationError('invalidtype',this.validationmessagedatetimeformat,this.validationmessagedatetimeformatsummary);cov_hvo2y7yjc().s[63]++;if(error){cov_hvo2y7yjc().b[6][0]++;cov_hvo2y7yjc().s[64]++;return error;}else{cov_hvo2y7yjc().b[6][1]++;}}else{cov_hvo2y7yjc().b[4][1]++;}cov_hvo2y7yjc().s[65]++;error=Validation.isValidDate(this.validationmessagedatetimeformat,this.validationmessagedatetimeformatsummary)(c);cov_hvo2y7yjc().s[66]++;if(this.isrequired){cov_hvo2y7yjc().b[7][0]++;cov_hvo2y7yjc().s[67]++;error=Validation.required(this.validationmessagerequired,this.validationmessagerequiredsummary)(c);}else{cov_hvo2y7yjc().b[7][1]++;}cov_hvo2y7yjc().s[68]++;return error;}/**
79
79
  * Overwrite WriteValue to Set correct Date Object
80
- */writeValue(value){cov_hvo2y7yjc().f[16]++;cov_hvo2y7yjc().s[65]++;if((cov_hvo2y7yjc().b[6][0]++,value==='')||(cov_hvo2y7yjc().b[6][1]++,value===null)||(cov_hvo2y7yjc().b[6][2]++,value===undefined)){cov_hvo2y7yjc().b[5][0]++;cov_hvo2y7yjc().s[66]++;// Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.
80
+ */writeValue(value){cov_hvo2y7yjc().f[16]++;cov_hvo2y7yjc().s[69]++;if((cov_hvo2y7yjc().b[9][0]++,value==='')||(cov_hvo2y7yjc().b[9][1]++,value===null)||(cov_hvo2y7yjc().b[9][2]++,value===undefined)){cov_hvo2y7yjc().b[8][0]++;cov_hvo2y7yjc().s[70]++;// Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.
81
81
  this._valueAsString='';// Set Internal Property
82
- cov_hvo2y7yjc().s[67]++;this._value=null;}else{cov_hvo2y7yjc().b[5][1]++;cov_hvo2y7yjc().s[68]++;this._value=this.getDate(value).toDate();}cov_hvo2y7yjc().s[69]++;super.writeValue(this._value);}// #endregion Public Methods
82
+ cov_hvo2y7yjc().s[71]++;this._value=null;}else{cov_hvo2y7yjc().b[8][1]++;cov_hvo2y7yjc().s[72]++;this._value=this.getDate(value).toDate();}cov_hvo2y7yjc().s[73]++;super.writeValue(this._value);}// #endregion Public Methods
83
83
  // #region Protected Methods
84
- getArrowHeight(){cov_hvo2y7yjc().f[17]++;cov_hvo2y7yjc().s[70]++;return this.pickerarrow?(cov_hvo2y7yjc().b[7][0]++,this.pickerarrow.nativeElement.offsetHeight):(cov_hvo2y7yjc().b[7][1]++,0);}getArrowWidth(){cov_hvo2y7yjc().f[18]++;cov_hvo2y7yjc().s[71]++;return this.pickerarrow?(cov_hvo2y7yjc().b[8][0]++,this.pickerarrow.nativeElement.offsetWidth):(cov_hvo2y7yjc().b[8][1]++,0);}/**
84
+ getArrowHeight(){cov_hvo2y7yjc().f[17]++;cov_hvo2y7yjc().s[74]++;return this.pickerarrow?(cov_hvo2y7yjc().b[10][0]++,this.pickerarrow.nativeElement.offsetHeight):(cov_hvo2y7yjc().b[10][1]++,0);}getArrowWidth(){cov_hvo2y7yjc().f[18]++;cov_hvo2y7yjc().s[75]++;return this.pickerarrow?(cov_hvo2y7yjc().b[11][0]++,this.pickerarrow.nativeElement.offsetWidth):(cov_hvo2y7yjc().b[11][1]++,0);}/**
85
85
  * Calculates the position of the tooltip from links
86
- */getPositionLeft(){cov_hvo2y7yjc().f[19]++;const value=(cov_hvo2y7yjc().s[72]++,this.popupHelper.getPositionLeft(this.pickerbutton,this.pickercontainer,this.elementRef,this.getArrowWidth(),this.getArrowHeight(),this.position,false));cov_hvo2y7yjc().s[73]++;this.posPopupLeft=value;cov_hvo2y7yjc().s[74]++;switch(this.GetPickerPosition()){case TooltipPosition.top:cov_hvo2y7yjc().b[9][0]++;case TooltipPosition.bottom:cov_hvo2y7yjc().b[9][1]++;cov_hvo2y7yjc().s[75]++;this.posArrowLeft=this.getPickerWidth()/2- -this.getArrowWidth();cov_hvo2y7yjc().s[76]++;break;case TooltipPosition.topend:cov_hvo2y7yjc().b[9][2]++;case TooltipPosition.bottomend:cov_hvo2y7yjc().b[9][3]++;cov_hvo2y7yjc().s[77]++;this.posArrowLeft=this.getPickerWidth()-this.getArrowWidth()/2-this.popupHelper.getContainerWidth(this.pickerbutton,false)/2;cov_hvo2y7yjc().s[78]++;break;default:cov_hvo2y7yjc().b[9][4]++;cov_hvo2y7yjc().s[79]++;this.posArrowLeft=null;cov_hvo2y7yjc().s[80]++;break;}cov_hvo2y7yjc().s[81]++;return value;}/**
86
+ */getPositionLeft(){cov_hvo2y7yjc().f[19]++;const value=(cov_hvo2y7yjc().s[76]++,this.popupHelper.getPositionLeft(this.pickerbutton,this.pickercontainer,this.elementRef,this.getArrowWidth(),this.getArrowHeight(),this.position,false));cov_hvo2y7yjc().s[77]++;this.posPopupLeft=value;cov_hvo2y7yjc().s[78]++;switch(this.GetPickerPosition()){case TooltipPosition.top:cov_hvo2y7yjc().b[12][0]++;case TooltipPosition.bottom:cov_hvo2y7yjc().b[12][1]++;cov_hvo2y7yjc().s[79]++;this.posArrowLeft=this.getPickerWidth()/2- -this.getArrowWidth();cov_hvo2y7yjc().s[80]++;break;case TooltipPosition.topend:cov_hvo2y7yjc().b[12][2]++;case TooltipPosition.bottomend:cov_hvo2y7yjc().b[12][3]++;cov_hvo2y7yjc().s[81]++;this.posArrowLeft=this.getPickerWidth()-this.getArrowWidth()/2-this.popupHelper.getContainerWidth(this.pickerbutton,false)/2;cov_hvo2y7yjc().s[82]++;break;default:cov_hvo2y7yjc().b[12][4]++;cov_hvo2y7yjc().s[83]++;this.posArrowLeft=null;cov_hvo2y7yjc().s[84]++;break;}cov_hvo2y7yjc().s[85]++;return value;}/**
87
87
  * Calculates the position of the tooltip from the top
88
- */getPositionTop(){cov_hvo2y7yjc().f[20]++;const value=(cov_hvo2y7yjc().s[82]++,this.popupHelper.getPositionTop(this.pickerbutton,this.pickercontainer,this.elementRef,this.getArrowWidth(),this.getArrowHeight(),this.position,false));cov_hvo2y7yjc().s[83]++;this.posPopupTop=value;cov_hvo2y7yjc().s[84]++;switch(this.GetPickerPosition()){case TooltipPosition.left:cov_hvo2y7yjc().b[10][0]++;case TooltipPosition.right:cov_hvo2y7yjc().b[10][1]++;cov_hvo2y7yjc().s[85]++;this.posArrowTop=this.getPickerHeight()/2-6.5;cov_hvo2y7yjc().s[86]++;break;default:cov_hvo2y7yjc().b[10][2]++;cov_hvo2y7yjc().s[87]++;this.posArrowTop=null;cov_hvo2y7yjc().s[88]++;break;}cov_hvo2y7yjc().s[89]++;return value;}setDateTimeFormat(){cov_hvo2y7yjc().f[21]++;cov_hvo2y7yjc().s[90]++;// HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
89
- if(this.ngControl){cov_hvo2y7yjc().b[11][0]++;cov_hvo2y7yjc().s[91]++;this.ngControl.datetimeformatstring=this.GetDateTimeFormatString();}else{cov_hvo2y7yjc().b[11][1]++;}}}cov_hvo2y7yjc().s[92]++;SacBaseDateTimeControl.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseDateTimeControl,deps:[{token:i1.SacFormLayoutCommon},{token:i0.Injector},{token:i0.ElementRef},{token:i0.ChangeDetectorRef}],target:i0.ɵɵFactoryTarget.Directive});cov_hvo2y7yjc().s[93]++;SacBaseDateTimeControl.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",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});cov_hvo2y7yjc().s[94]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseDateTimeControl,decorators:[{type:Directive}],ctorParameters:function(){cov_hvo2y7yjc().f[22]++;cov_hvo2y7yjc().s[95]++;return[{type:i1.SacFormLayoutCommon},{type:i0.Injector},{type:i0.ElementRef},{type:i0.ChangeDetectorRef}];},propDecorators:{isrequired:[{type:Input}],pickerarrow:[{type:ViewChild,args:['pickerarrow',{static:false}]}],pickerbutton:[{type:ViewChild,args:['pickerbutton',{static:true}]}],placeholder:[{type:Input}],position:[{type:Input}],validationmessagedatetimeformat:[{type:Input}],validationmessagedatetimeformatsummary:[{type:Input}],validationmessagerequired:[{type:Input}],validationmessagerequiredsummary:[{type:Input}],picker:[{type:ViewChild,args:['picker',{static:false}]}],valuestring:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBRUgsU0FBUyxFQUlULEtBQUssRUFHTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7OztBQUVsQzs7R0FFRztBQUVILE1BQU0sT0FBZ0Isc0JBQXVCLFNBQVEsbUJBQXlCO0lBMEcxRSx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7OztPQUtHO0lBQ0gsWUFDSSxVQUErQixFQUMvQixRQUFrQixFQUNSLFVBQXNCLEVBQ2YsS0FBd0I7UUFFekMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUhsQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUF2SDdDLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNjLGdCQUFXLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFFOUQ7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQVE5Qjs7V0FFRztRQUNJLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBRXpDOztXQUVHO1FBQ0ksa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFdEM7O1dBRUc7UUFDYSxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRTVDOztXQUVHO1FBQ0ksV0FB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QUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNwRCxNQUFNO1lBQ1Y7Z0JBQ0ksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLE1BQU07U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFxQk8saUJBQWlCO1FBQ3JCLG1JQUFtSTtRQUNuSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZixJQUFJLENBQUMsU0FBeUMsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztTQUN6RztJQUNMLENBQUM7O21IQTNZaUIsc0JBQXNCO3VHQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFEM0MsU0FBUzswTEFpQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFZQyxXQUFXO3NCQURqQixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT3BDLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNM0IsV0FBVztzQkFBMUIsS0FBSztnQkE0QkMsUUFBUTtzQkFEZCxLQUFLO2dCQU1VLCtCQUErQjtzQkFBOUMsS0FBSztnQkFLVSxzQ0FBc0M7c0JBQXJELEtBQUs7Z0JBTVUseUJBQXlCO3NCQUF4QyxLQUFLO2dCQUtVLGdDQUFnQztzQkFBL0MsS0FBSztnQkE2QkssTUFBTTtzQkFEaEIsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQStCM0IsV0FBVztzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XHJcbmltcG9ydCB7IElEYXRlVGltZUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lkYXRldGltZWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24gfSBmcm9tICcuLi91dGlsaXRpZXMvZW51bXMnO1xyXG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XHJcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi92YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4vYmFzZW1vZGVsY29udHJvbCc7XHJcbmltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIERpcmVjdGl2ZSxcclxuICAgIERvQ2hlY2ssXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcblxyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBEYXRlL1RpbWUgQ29udHJvbHNcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZURhdGVUaW1lQ29udHJvbCBleHRlbmRzIFNhY0Jhc2VNb2RlbENvbnRyb2w8RGF0ZT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRG9DaGVjayB7XHJcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBjbGFzcyB0byBkaXNwbGF5IHRvb2x0aXAgb24gY29ycmVjdCBwb3NpdGlvblxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwSGVscGVyOiBQb3BVcEhlbHBlciA9IG5ldyBQb3BVcEhlbHBlcigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZGFzIHByb3BlcnR5IGVudGhpZWx0IGRhcyBWYWx1ZSBhbHMgc3RyaW5nLiBEZWZhdWx0IGlzdCAnJ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlQXNTdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSBkYXRldGltZSBwaWNrZXJcclxuICAgICAqL1xyXG5cclxuICAgIHByb3RlY3RlZCBwaWNrZXJjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvcGVydHkgZm9yIGVudW0gaW4gQW5ndWxhciBIVE1MIHRlbXBsYXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmllcnQgb2IgZGVyIERhdGUgU2VsZWN0b3IgYW5nZXplaWd0IHdpcmRcclxuICAgICAqL1xyXG4gICAgcHVibGljIF9zaG93c2VsZWN0b3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGlzcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vbWVudCBKUyBJbnN0YW5jZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXJyb3cgSXRlbSBvZiBQaWNrZXIgRWxlbWVudC4gUmVxdWlyZWQgdG8gc2V0IHRoZSBwb3NpdGlvbiBvZiBhcnJvdyBjb3JyZWN0bHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBpY2tlclBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uO1xyXG4gICAgQFZpZXdDaGlsZCgncGlja2VyYXJyb3cnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICAgIHB1YmxpYyBwaWNrZXJhcnJvdzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciBjb250ZW50IChlLmcuIGljb24pIG9uIHdoaWNoIHRoZSB0b29sdGlwIGlzIGRpc3BsYXllZC5cclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgncGlja2VyYnV0dG9uJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIHB1YmxpYyBwaWNrZXJidXR0b246IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGV4dEJveCBQbGFjZWhvbGRlclxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSBsZWZ0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwb3NBcnJvd0xlZnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgdG9wXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwb3NBcnJvd1RvcDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGF0IHRoZSBsZWZ0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwb3NQb3B1cExlZnQ6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGF0IHRoZSB0b3BcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvc1BvcHVwVG9wOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9zaXRpb24gb2YgdGhlIGRhdGV0aW1lIHBpY2tlci4gVmFsdWVzOiBsZWZ0fHRvcHxyaWdodHxib3R0b218YXV0b1xyXG4gICAgICpcclxuICAgICAqIFZhbHVlICdhdXRvJyBjYW4gYmUgY29tYmluZWQgd2l0aCBhbm90aGVyIHZhbHVlLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBvc2l0aW9uOiBzdHJpbmcgPSAnYm90dG9tZW5kfHRvcGVuZCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgYmVpIENvbnRyb2xcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeTogc3RyaW5nID1cclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5OiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZDtcclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiByZWZlcmVuY2UgdG8gaHRtbCBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXHJcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXR0ZXIgZm9yIHRoZSBuYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIHRoZSB0b29sdGlwLiBJcyByZXF1aXJlZCBhcyB0aGUgdG9vbHRpcCBjYW4gYmUgaGlkZGVuIHZpYSBuZ0lmLlxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdwaWNrZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICAgIHB1YmxpYyBzZXQgcGlja2VyKHBpY2tlcjogRWxlbWVudFJlZikge1xyXG4gICAgICAgIGlmIChwaWNrZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBpY2tlci5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyID0gcGlja2VyO1xyXG4gICAgICAgIHRoaXMub25Db250ZW50Q2hhbmdlKCk7XHJcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0b29sdG9wKCk6IEVsZW1lbnRSZWYge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmNvbnRhaW5lcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldHRlciBmw7xyIHZhbHVlc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsdWVzdHJpbmcoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVBc1N0cmluZztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5tb21lbnQudXRjKHRoaXMudmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5sb2NhbCgpLmZvcm1hdCh0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERhcyBJbnB1dCBiZWtvbW10IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB2YWx1ZXN0cmluZyh2OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gdjtcclxuICAgICAgICBsZXQgZGF0ZTogbW9tZW50Xy5Nb21lbnQgPSB0aGlzLm1vbWVudCh2LCBbdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpXSwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIGRhdGUgPSB0aGlzLk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUoZGF0ZSkudXRjKCk7XHJcblxyXG4gICAgICAgIGlmIChkYXRlLmlzVmFsaWQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZS50b0RhdGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIERpZSBtZXRob2RlIHJldHVybnMgZGF0ZVRpbWUgaW4gc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCBHZXREYXRlVGltZUZvcm1hdFN0cmluZygpOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgR2V0UGlja2VyUG9zaXRpb24oKTogVG9vbHRpcFBvc2l0aW9uIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXREaXNwbGF5UG9zaXRpb24oXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcclxuICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGllIG1ldGhvZGUgbW9kaWZpemllcnQgZGFzIGVpbmdlZ2ViZW5lIFZhbHVlIHZvbiB0eXAgTW9tZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCBNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHY6IG1vbWVudF8uTW9tZW50KTogbW9tZW50Xy5Nb21lbnQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBKU09OIERhdGUgU3RyaW5nIGluIGVpbiBVVEMgRGF0ZVRpbWUgT2JqZWN0IGtvbnZlcnRpZXJlbiwgd2VsY2hlcyB2b20gQ29udHJvbCB2ZXJ3ZW5kZXRlIHdlcmRlbiBrYW5uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXREYXRlKHRpbWVzdGFtcCk6IG1vbWVudC5Nb21lbnQge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XHJcbiAgICAgICAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XHJcbiAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXRVVENEYXRlKCk7XHJcbiAgICAgICAgY29uc3QgaG91cnMgPSBkYXRlLmdldFVUQ0hvdXJzKCk7XHJcbiAgICAgICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0VVRDTWludXRlcygpO1xyXG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9tZW50KERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgb2YgdGhlIHRvb2x0aXBcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFBpY2tlckhlaWdodCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMucGlja2VyY29udGFpbmVyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBwaWNrZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFBpY2tlcldpZHRoKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9wdXBXaWR0aCh0aGlzLnBpY2tlcmNvbnRhaW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgICAgICAvLyB0aGlzLm9uQ29udGVudENoYW5nZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBVbnJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdCBFdmVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLnNldERhdGVUaW1lRm9ybWF0KCk7XHJcblxyXG4gICAgICAgIC8vIFJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0enQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nIHp1IHByb3BlcnR5IHZhbHVlc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRWYWx1ZVN0cmluZyh2OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnZhbHVlc3RyaW5nID0gdjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLmlzVmFsaWREYXRlKFxyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQsXHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnlcclxuICAgICAgICApKGMpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZCh0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnkpKGMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGVycm9yO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3ZlcndyaXRlIFdyaXRlVmFsdWUgdG8gU2V0IGNvcnJlY3QgRGF0ZSBPYmplY3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IERhdGUgfCBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgLy8gUmVzZXQgVmFsdWUgU3RyaW5nLCBkYW1pdCBiZWltIFVwZGF0ZSBkZXMgTW9kZWxzIGF1Y2ggZGFzIElucHV0IEZlbGQgZ2VsZWVydCB3aXJkLlxyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gJyc7XHJcbiAgICAgICAgICAgIC8vIFNldCBJbnRlcm5hbCBQcm9wZXJ0eVxyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmdldERhdGUodmFsdWUpLnRvRGF0ZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh0aGlzLl92YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0QXJyb3dIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJhcnJvdyA/IHRoaXMucGlja2VyYXJyb3cubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRBcnJvd1dpZHRoKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyYXJyb3cgPyB0aGlzLnBpY2tlcmFycm93Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSBsaW5rc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25MZWZ0KCk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uTGVmdChcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXHJcbiAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnBvc1BvcHVwTGVmdCA9IHZhbHVlO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi50b3A6XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbTpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gdGhpcy5nZXRQaWNrZXJXaWR0aCgpIC8gMiAtIC10aGlzLmdldEFycm93V2lkdGgoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi50b3BlbmQ6XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZDpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFBpY2tlcldpZHRoKCkgLVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpIC8gMiAtXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3B1cEhlbHBlci5nZXRDb250YWluZXJXaWR0aCh0aGlzLnBpY2tlcmJ1dHRvbiwgZmFsc2UpIC8gMjtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b3BcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldFBvc2l0aW9uVG9wKCk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uVG9wKFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZixcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcclxuICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMucG9zUG9wdXBUb3AgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLkdldFBpY2tlclBvc2l0aW9uKCkpIHtcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ubGVmdDpcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ucmlnaHQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gdGhpcy5nZXRQaWNrZXJIZWlnaHQoKSAvIDIgLSA2LjU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBtZXRob2QgaWYgY29udGVudCBoYXMgY2hhbmdlZCBhbmQgcHJvcG9ydGlvbnMgbmVlZCB0byBiZSByZXNldCBpbiB0aGUgVUkuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgb25Db250ZW50Q2hhbmdlID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgaXMgbm90IHZpc2libGVcclxuICAgICAgICBpZiAoIXRoaXMuX3Nob3dzZWxlY3Rvcikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvbkxlZnQoKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvblRvcCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIHNldERhdGVUaW1lRm9ybWF0KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XHJcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElEYXRlVGltZUNvbnRyb2wpLmRhdGV0aW1lZm9ybWF0c3RyaW5nID0gdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcbiJdfQ==
90
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUb29sdGlwUG9zaXRpb24iLCJQb3BVcEhlbHBlciIsIlZhbGlkYXRpb24iLCJTYWNCYXNlTW9kZWxDb250cm9sIiwiRGlyZWN0aXZlIiwiSW5wdXQiLCJWaWV3Q2hpbGQiLCJtb21lbnRfIiwiU2FjQmFzZURhdGVUaW1lQ29udHJvbCIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwiZWxlbWVudFJlZiIsImNkUmVmIiwiY292X2h2bzJ5N3lqYyIsImYiLCJzIiwicG9wdXBIZWxwZXIiLCJfdmFsdWVBc1N0cmluZyIsIl9zaG93c2VsZWN0b3IiLCJpc3JlcXVpcmVkIiwibW9tZW50IiwicGlja2VyUG9zaXRpb24iLCJwbGFjZWhvbGRlciIsInBvc0Fycm93TGVmdCIsInBvc0Fycm93VG9wIiwicG9zUG9wdXBMZWZ0IiwicG9zUG9wdXBUb3AiLCJwb3NpdGlvbiIsInZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQiLCJ2YWxpZGF0aW9uS2V5U2VydmljZSIsIlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0IiwidmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnkiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkIiwiVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeSIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZCIsIm9uQ29udGVudENoYW5nZSIsImIiLCJzZXRUaW1lb3V0IiwiZ2V0UG9zaXRpb25MZWZ0IiwiZ2V0UG9zaXRpb25Ub3AiLCJwaWNrZXIiLCJ1bmRlZmluZWQiLCJkb2N1bWVudCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsIm5hdGl2ZUVsZW1lbnQiLCJwaWNrZXJjb250YWluZXIiLCJkZXRlY3RDaGFuZ2VzIiwidG9vbHRvcCIsInZhbHVlc3RyaW5nIiwidmFsdWUiLCJkYXRlIiwidXRjIiwibG9jYWwiLCJmb3JtYXQiLCJHZXREYXRlVGltZUZvcm1hdFN0cmluZyIsInYiLCJNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlIiwiaXNWYWxpZCIsInRvRGF0ZSIsIkdldFBpY2tlclBvc2l0aW9uIiwiZ2V0RGlzcGxheVBvc2l0aW9uIiwicGlja2VyYnV0dG9uIiwiZ2V0QXJyb3dXaWR0aCIsImdldEFycm93SGVpZ2h0IiwiZ2V0RGF0ZSIsInRpbWVzdGFtcCIsIkRhdGUiLCJ5ZWFyIiwiZ2V0VVRDRnVsbFllYXIiLCJtb250aCIsImdldFVUQ01vbnRoIiwiZGF5IiwiZ2V0VVRDRGF0ZSIsImhvdXJzIiwiZ2V0VVRDSG91cnMiLCJtaW51dGVzIiwiZ2V0VVRDTWludXRlcyIsInNlY29uZHMiLCJnZXRVVENTZWNvbmRzIiwiVVRDIiwiZ2V0UGlja2VySGVpZ2h0IiwiZ2V0UG9wdXBIZWlnaHQiLCJnZXRQaWNrZXJXaWR0aCIsImdldFBvcHVwV2lkdGgiLCJuZ0RvQ2hlY2siLCJuZ09uRGVzdHJveSIsIndpbmRvdyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJuZ09uSW5pdCIsInNldERhdGVUaW1lRm9ybWF0IiwiYWRkRXZlbnRMaXN0ZW5lciIsInNldFZhbHVlU3RyaW5nIiwidmFsaWRhdGVEYXRhIiwiYyIsImVycm9yIiwiaXNWYWxpZERhdGUiLCJyZXF1aXJlZCIsIndyaXRlVmFsdWUiLCJfdmFsdWUiLCJwaWNrZXJhcnJvdyIsIm9mZnNldEhlaWdodCIsIm9mZnNldFdpZHRoIiwidG9wIiwiYm90dG9tIiwidG9wZW5kIiwiYm90dG9tZW5kIiwiZ2V0Q29udGFpbmVyV2lkdGgiLCJsZWZ0IiwicmlnaHQiLCJuZ0NvbnRyb2wiLCJkYXRldGltZWZvcm1hdHN0cmluZyIsImRlcHMiLCJ0b2tlbiIsImkxIiwiU2FjRm9ybUxheW91dENvbW1vbiIsImkwIiwiSW5qZWN0b3IiLCJFbGVtZW50UmVmIiwiQ2hhbmdlRGV0ZWN0b3JSZWYiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsInZpZXdRdWVyaWVzIiwicHJvcGVydHlOYW1lIiwiZmlyc3QiLCJwcmVkaWNhdGUiLCJkZXNjZW5kYW50cyIsInN0YXRpYyIsInVzZXNJbmhlcml0YW5jZSIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XHJcbmltcG9ydCB7IElEYXRlVGltZUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lkYXRldGltZWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24gfSBmcm9tICcuLi91dGlsaXRpZXMvZW51bXMnO1xyXG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XHJcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi92YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4vYmFzZW1vZGVsY29udHJvbCc7XHJcbmltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIERpcmVjdGl2ZSxcclxuICAgIERvQ2hlY2ssXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcblxyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBEYXRlL1RpbWUgQ29udHJvbHNcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZURhdGVUaW1lQ29udHJvbCBleHRlbmRzIFNhY0Jhc2VNb2RlbENvbnRyb2w8RGF0ZT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRG9DaGVjayB7XHJcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBjbGFzcyB0byBkaXNwbGF5IHRvb2x0aXAgb24gY29ycmVjdCBwb3NpdGlvblxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwSGVscGVyOiBQb3BVcEhlbHBlciA9IG5ldyBQb3BVcEhlbHBlcigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZGFzIHByb3BlcnR5IGVudGhpZWx0IGRhcyBWYWx1ZSBhbHMgc3RyaW5nLiBEZWZhdWx0IGlzdCAnJ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlQXNTdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSBkYXRldGltZSBwaWNrZXJcclxuICAgICAqL1xyXG5cclxuICAgIHByb3RlY3RlZCBwaWNrZXJjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvcGVydHkgZm9yIGVudW0gaW4gQW5ndWxhciBIVE1MIHRlbXBsYXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmllcnQgb2IgZGVyIERhdGUgU2VsZWN0b3IgYW5nZXplaWd0IHdpcmRcclxuICAgICAqL1xyXG4gICAgcHVibGljIF9zaG93c2VsZWN0b3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGlzcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vbWVudCBKUyBJbnN0YW5jZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXJyb3cgSXRlbSBvZiBQaWNrZXIgRWxlbWVudC4gUmVxdWlyZWQgdG8gc2V0IHRoZSBwb3NpdGlvbiBvZiBhcnJvdyBjb3JyZWN0bHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBpY2tlclBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uO1xyXG4gICAgQFZpZXdDaGlsZCgncGlja2VyYXJyb3cnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICAgIHB1YmxpYyBwaWNrZXJhcnJvdzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciBjb250ZW50IChlLmcuIGljb24pIG9uIHdoaWNoIHRoZSB0b29sdGlwIGlzIGRpc3BsYXllZC5cclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgncGlja2VyYnV0dG9uJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIHB1YmxpYyBwaWNrZXJidXR0b246IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGV4dEJveCBQbGFjZWhvbGRlclxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSBsZWZ0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwb3NBcnJvd0xlZnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgdG9wXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwb3NBcnJvd1RvcDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGF0IHRoZSBsZWZ0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwb3NQb3B1cExlZnQ6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGF0IHRoZSB0b3BcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvc1BvcHVwVG9wOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9zaXRpb24gb2YgdGhlIGRhdGV0aW1lIHBpY2tlci4gVmFsdWVzOiBsZWZ0fHRvcHxyaWdodHxib3R0b218YXV0b1xyXG4gICAgICpcclxuICAgICAqIFZhbHVlICdhdXRvJyBjYW4gYmUgY29tYmluZWQgd2l0aCBhbm90aGVyIHZhbHVlLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBvc2l0aW9uOiBzdHJpbmcgPSAnYm90dG9tZW5kfHRvcGVuZCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgYmVpIENvbnRyb2xcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeTogc3RyaW5nID1cclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5OiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZDtcclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiByZWZlcmVuY2UgdG8gaHRtbCBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXHJcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXR0ZXIgZm9yIHRoZSBuYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIHRoZSB0b29sdGlwLiBJcyByZXF1aXJlZCBhcyB0aGUgdG9vbHRpcCBjYW4gYmUgaGlkZGVuIHZpYSBuZ0lmLlxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdwaWNrZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICAgIHB1YmxpYyBzZXQgcGlja2VyKHBpY2tlcjogRWxlbWVudFJlZikge1xyXG4gICAgICAgIGlmIChwaWNrZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBpY2tlci5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyID0gcGlja2VyO1xyXG4gICAgICAgIHRoaXMub25Db250ZW50Q2hhbmdlKCk7XHJcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0b29sdG9wKCk6IEVsZW1lbnRSZWYge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmNvbnRhaW5lcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldHRlciBmw7xyIHZhbHVlc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsdWVzdHJpbmcoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVBc1N0cmluZztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5tb21lbnQudXRjKHRoaXMudmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5sb2NhbCgpLmZvcm1hdCh0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERhcyBJbnB1dCBiZWtvbW10IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB2YWx1ZXN0cmluZyh2OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gdjtcclxuICAgICAgICBsZXQgZGF0ZTogbW9tZW50Xy5Nb21lbnQgPSB0aGlzLm1vbWVudCh2LCBbdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpXSwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIGRhdGUgPSB0aGlzLk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUoZGF0ZSkudXRjKCk7XHJcblxyXG4gICAgICAgIGlmIChkYXRlLmlzVmFsaWQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZS50b0RhdGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIERpZSBtZXRob2RlIHJldHVybnMgZGF0ZVRpbWUgaW4gc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCBHZXREYXRlVGltZUZvcm1hdFN0cmluZygpOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgR2V0UGlja2VyUG9zaXRpb24oKTogVG9vbHRpcFBvc2l0aW9uIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXREaXNwbGF5UG9zaXRpb24oXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcclxuICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGllIG1ldGhvZGUgbW9kaWZpemllcnQgZGFzIGVpbmdlZ2ViZW5lIFZhbHVlIHZvbiB0eXAgTW9tZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCBNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHY6IG1vbWVudF8uTW9tZW50KTogbW9tZW50Xy5Nb21lbnQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBKU09OIERhdGUgU3RyaW5nIGluIGVpbiBVVEMgRGF0ZVRpbWUgT2JqZWN0IGtvbnZlcnRpZXJlbiwgd2VsY2hlcyB2b20gQ29udHJvbCB2ZXJ3ZW5kZXRlIHdlcmRlbiBrYW5uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXREYXRlKHRpbWVzdGFtcCk6IG1vbWVudC5Nb21lbnQge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XHJcbiAgICAgICAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XHJcbiAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXRVVENEYXRlKCk7XHJcbiAgICAgICAgY29uc3QgaG91cnMgPSBkYXRlLmdldFVUQ0hvdXJzKCk7XHJcbiAgICAgICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0VVRDTWludXRlcygpO1xyXG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9tZW50KERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgb2YgdGhlIHRvb2x0aXBcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFBpY2tlckhlaWdodCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMucGlja2VyY29udGFpbmVyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBwaWNrZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFBpY2tlcldpZHRoKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9wdXBXaWR0aCh0aGlzLnBpY2tlcmNvbnRhaW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgICAgICAvLyB0aGlzLm9uQ29udGVudENoYW5nZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBVbnJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdCBFdmVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLnNldERhdGVUaW1lRm9ybWF0KCk7XHJcblxyXG4gICAgICAgIC8vIFJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0enQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nIHp1IHByb3BlcnR5IHZhbHVlc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRWYWx1ZVN0cmluZyh2OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnZhbHVlc3RyaW5nID0gdjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLmlzVmFsaWREYXRlKFxyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQsXHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnlcclxuICAgICAgICApKGMpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZCh0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnkpKGMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGVycm9yO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3ZlcndyaXRlIFdyaXRlVmFsdWUgdG8gU2V0IGNvcnJlY3QgRGF0ZSBPYmplY3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IERhdGUgfCBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgLy8gUmVzZXQgVmFsdWUgU3RyaW5nLCBkYW1pdCBiZWltIFVwZGF0ZSBkZXMgTW9kZWxzIGF1Y2ggZGFzIElucHV0IEZlbGQgZ2VsZWVydCB3aXJkLlxyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gJyc7XHJcbiAgICAgICAgICAgIC8vIFNldCBJbnRlcm5hbCBQcm9wZXJ0eVxyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmdldERhdGUodmFsdWUpLnRvRGF0ZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh0aGlzLl92YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0QXJyb3dIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJhcnJvdyA/IHRoaXMucGlja2VyYXJyb3cubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRBcnJvd1dpZHRoKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyYXJyb3cgPyB0aGlzLnBpY2tlcmFycm93Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSBsaW5rc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25MZWZ0KCk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uTGVmdChcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXHJcbiAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnBvc1BvcHVwTGVmdCA9IHZhbHVlO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi50b3A6XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbTpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gdGhpcy5nZXRQaWNrZXJXaWR0aCgpIC8gMiAtIC10aGlzLmdldEFycm93V2lkdGgoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi50b3BlbmQ6XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZDpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFBpY2tlcldpZHRoKCkgLVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpIC8gMiAtXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3B1cEhlbHBlci5nZXRDb250YWluZXJXaWR0aCh0aGlzLnBpY2tlcmJ1dHRvbiwgZmFsc2UpIC8gMjtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b3BcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldFBvc2l0aW9uVG9wKCk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uVG9wKFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZixcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcclxuICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMucG9zUG9wdXBUb3AgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLkdldFBpY2tlclBvc2l0aW9uKCkpIHtcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ubGVmdDpcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ucmlnaHQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gdGhpcy5nZXRQaWNrZXJIZWlnaHQoKSAvIDIgLSA2LjU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBtZXRob2QgaWYgY29udGVudCBoYXMgY2hhbmdlZCBhbmQgcHJvcG9ydGlvbnMgbmVlZCB0byBiZSByZXNldCBpbiB0aGUgVUkuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgb25Db250ZW50Q2hhbmdlID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgaXMgbm90IHZpc2libGVcclxuICAgICAgICBpZiAoIXRoaXMuX3Nob3dzZWxlY3Rvcikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvbkxlZnQoKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvblRvcCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIHNldERhdGVUaW1lRm9ybWF0KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XHJcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElEYXRlVGltZUNvbnRyb2wpLmRhdGV0aW1lZm9ybWF0c3RyaW5nID0gdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijt5RkFFQSxPQUFTQSxlQUFlLEtBQVEsb0JBQW9CLENBQ3BELE9BQVND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
88
+ */getPositionTop(){cov_hvo2y7yjc().f[20]++;const value=(cov_hvo2y7yjc().s[86]++,this.popupHelper.getPositionTop(this.pickerbutton,this.pickercontainer,this.elementRef,this.getArrowWidth(),this.getArrowHeight(),this.position,false));cov_hvo2y7yjc().s[87]++;this.posPopupTop=value;cov_hvo2y7yjc().s[88]++;switch(this.GetPickerPosition()){case TooltipPosition.left:cov_hvo2y7yjc().b[13][0]++;case TooltipPosition.right:cov_hvo2y7yjc().b[13][1]++;cov_hvo2y7yjc().s[89]++;this.posArrowTop=this.getPickerHeight()/2-6.5;cov_hvo2y7yjc().s[90]++;break;default:cov_hvo2y7yjc().b[13][2]++;cov_hvo2y7yjc().s[91]++;this.posArrowTop=null;cov_hvo2y7yjc().s[92]++;break;}cov_hvo2y7yjc().s[93]++;return value;}setDateTimeFormat(){cov_hvo2y7yjc().f[21]++;cov_hvo2y7yjc().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_hvo2y7yjc().b[14][0]++;cov_hvo2y7yjc().s[95]++;this.ngControl.datetimeformatstring=this.GetDateTimeFormatString();}else{cov_hvo2y7yjc().b[14][1]++;}}}cov_hvo2y7yjc().s[96]++;SacBaseDateTimeControl.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseDateTimeControl,deps:[{token:i1.SacFormLayoutCommon},{token:i0.Injector},{token:i0.ElementRef},{token:i0.ChangeDetectorRef}],target:i0.ɵɵFactoryTarget.Directive});cov_hvo2y7yjc().s[97]++;SacBaseDateTimeControl.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",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});cov_hvo2y7yjc().s[98]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseDateTimeControl,decorators:[{type:Directive}],ctorParameters:function(){cov_hvo2y7yjc().f[22]++;cov_hvo2y7yjc().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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBRUgsU0FBUyxFQUlULEtBQUssRUFHTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7OztBQUVsQzs7R0FFRztBQUVILE1BQU0sT0FBZ0Isc0JBQXVCLFNBQVEsbUJBQXlCO0lBeUcxRSx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7OztPQUtHO0lBQ0gsWUFDSSxVQUErQixFQUMvQixRQUFrQixFQUNSLFVBQXNCLEVBQ2YsS0FBd0I7UUFFekMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUhsQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUF0SDdDLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNjLGdCQUFXLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFFOUQ7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQU85Qjs7V0FFRztRQUNJLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBRXpDOztXQUVHO1FBQ0ksa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFdEM7O1dBRUc7UUFDYSxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRTVDOztXQUVHO1FBQ0ksV0FBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVuQzs7V0FFRztRQUNJLG1CQUFjLEdBQUcsZUFBZSxDQUFDO1FBVXhDOztXQUVHO1FBQ2EsZ0JBQVcsR0FBVyxJQUFJLENBQUM7UUFFM0M7O1dBRUc7UUFDSSxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFFMUM7O1dBRUc7UUFDSSxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFFekM7O1dBRUc7UUFDSSxpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUVoQzs7V0FFRztRQUNJLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBRS9COzs7O1dBSUc7UUFFSSxhQUFRLEdBQVcsa0JBQWtCLENBQUM7UUFFN0M7O1dBRUc7UUFDYSxvQ0FBK0IsR0FBVyxJQUFJLENBQUMsb0JBQW9CLENBQUMsNkJBQTZCLENBQUM7UUFFbEg7O1dBRUc7UUFDYSwyQ0FBc0MsR0FDbEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9DQUFvQyxDQUFDO1FBRW5FOztXQUVHO1FBQ2EsOEJBQXlCLEdBQVcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHVCQUF1QixDQUFDO1FBRXRHOztXQUVHO1FBQ2EscUNBQWdDLEdBQVcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLDhCQUE4QixDQUFDO1FBdVJwSCwrQkFBK0I7UUFFL0IsMEJBQTBCO1FBRTFCOztXQUVHO1FBQ2Msb0JBQWUsR0FBRyxHQUFTLEVBQUU7WUFDMUMsK0JBQStCO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUNyQixPQUFPO2FBQ1Y7WUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDO0lBclJGLENBQUM7SUFFRCwwQkFBMEI7SUFFMUIscUNBQXFDO0lBRXJDOztPQUVHO0lBQ0gsSUFDVyxNQUFNLENBQUMsTUFBa0I7UUFDaEMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3RCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNuRDtRQUVELElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO1FBQzlCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxXQUFXO1FBQ2xCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQzlCO2FBQU07WUFDSCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUM7U0FDOUQ7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLFdBQVcsQ0FBQyxDQUFTO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLElBQUksSUFBSSxHQUFtQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFbEYsSUFBSSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVsRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUM5QjthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDckI7SUFDTCxDQUFDO0lBV0Q7O09BRUc7SUFDSSxpQkFBaUI7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUN0QyxJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsYUFBYSxFQUFFLEVBQ3BCLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFDckIsSUFBSSxDQUFDLFFBQVEsRUFDYixLQUFLLENBQ1IsQ0FBQztJQUNOLENBQUM7SUFPRDs7T0FFRztJQUNJLE9BQU8sQ0FBQyxTQUFTO1FBQ3BCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWM7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVNLFNBQVM7UUFDWiwwQkFBMEI7SUFDOUIsQ0FBQztJQUVNLFdBQVc7UUFDZCw0QkFBNEI7UUFDNUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ1gsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXpCLDBCQUEwQjtRQUMxQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWMsQ0FBQyxDQUFTO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVksQ0FBQyxDQUFrQjtRQUNsQyxJQUFJLEtBQUssR0FBNEIsSUFBSSxDQUFDO1FBRTFDLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pFLEtBQUssR0FBRyxxQkFBcUIsQ0FDekIsYUFBYSxFQUNiLElBQUksQ0FBQywrQkFBK0IsRUFDcEMsSUFBSSxDQUFDLHNDQUFzQyxDQUM5QyxDQUFDO1lBRUYsSUFBSSxLQUFLLEVBQUU7Z0JBQ1AsT0FBTyxLQUFLLENBQUM7YUFDaEI7U0FDSjtRQUVELEtBQUssR0FBRyxVQUFVLENBQUMsV0FBVyxDQUMxQixJQUFJLENBQUMsK0JBQStCLEVBQ3BDLElBQUksQ0FBQyxzQ0FBc0MsQ0FDOUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekc7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsS0FBb0I7UUFDbEMsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2RCxxRkFBcUY7WUFDckYsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekIsd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO2FBQU07WUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDOUM7UUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsNEJBQTRCO0lBRTVCLDRCQUE0QjtJQUVsQixjQUFjO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVTLGFBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7O09BRUc7SUFDTyxlQUFlO1FBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUMxQyxJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFDcEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUNyQixJQUFJLENBQUMsUUFBUSxFQUNiLEtBQUssQ0FDUixDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFFMUIsUUFBUSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUM5QixLQUFLLGVBQWUsQ0FBQyxHQUFHLENBQUM7WUFDekIsS0FBSyxlQUFlLENBQUMsTUFBTTtnQkFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN0RSxNQUFNO1lBQ1YsS0FBSyxlQUFlLENBQUMsTUFBTSxDQUFDO1lBQzVCLEtBQUssZUFBZSxDQUFDLFNBQVM7Z0JBQzFCLElBQUksQ0FBQyxZQUFZO29CQUNiLElBQUksQ0FBQyxjQUFjLEVBQUU7d0JBQ3JCLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDO3dCQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyRSxNQUFNO1lBQ1Y7Z0JBQ0ksSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBQ3pCLE1BQU07U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNPLGNBQWM7UUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQ3pDLElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUNwQixJQUFJLENBQUMsY0FBYyxFQUFFLEVBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQ2IsS0FBSyxDQUNSLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV6QixRQUFRLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO1lBQzlCLEtBQUssZUFBZSxDQUFDLElBQUksQ0FBQztZQUMxQixLQUFLLGVBQWUsQ0FBQyxLQUFLO2dCQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNwRCxNQUFNO1lBQ1Y7Z0JBQ0ksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLE1BQU07U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFxQk8saUJBQWlCO1FBQ3JCLG1JQUFtSTtRQUNuSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZixJQUFJLENBQUMsU0FBeUMsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztTQUN6RztJQUNMLENBQUM7O21IQXRaaUIsc0JBQXNCO3VHQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFEM0MsU0FBUzswTEFnQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFZQyxXQUFXO3NCQURqQixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT3BDLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNM0IsV0FBVztzQkFBMUIsS0FBSztnQkE0QkMsUUFBUTtzQkFEZCxLQUFLO2dCQU1VLCtCQUErQjtzQkFBOUMsS0FBSztnQkFLVSxzQ0FBc0M7c0JBQXJELEtBQUs7Z0JBTVUseUJBQXlCO3NCQUF4QyxLQUFLO2dCQUtVLGdDQUFnQztzQkFBL0MsS0FBSztnQkE2QkssTUFBTTtzQkFEaEIsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQStCM0IsV0FBVztzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XHJcbmltcG9ydCB7IElEYXRlVGltZUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lkYXRldGltZWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24gfSBmcm9tICcuLi91dGlsaXRpZXMvZW51bXMnO1xyXG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XHJcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi92YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgQ3JlYXRlVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uZXJyb3JjcmVhdG9yJztcclxuaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4vYmFzZW1vZGVsY29udHJvbCc7XHJcbmltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIERpcmVjdGl2ZSxcclxuICAgIERvQ2hlY2ssXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcblxyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBEYXRlL1RpbWUgQ29udHJvbHNcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZURhdGVUaW1lQ29udHJvbCBleHRlbmRzIFNhY0Jhc2VNb2RlbENvbnRyb2w8RGF0ZT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRG9DaGVjayB7XHJcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBjbGFzcyB0byBkaXNwbGF5IHRvb2x0aXAgb24gY29ycmVjdCBwb3NpdGlvblxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwSGVscGVyOiBQb3BVcEhlbHBlciA9IG5ldyBQb3BVcEhlbHBlcigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZGFzIHByb3BlcnR5IGVudGhpZWx0IGRhcyBWYWx1ZSBhbHMgc3RyaW5nLiBEZWZhdWx0IGlzdCAnJ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlQXNTdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSBkYXRldGltZSBwaWNrZXJcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHBpY2tlcmNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBmb3IgZW51bSBpbiBBbmd1bGFyIEhUTUwgdGVtcGxhdGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIFRvb2x0aXBQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluaWVydCBvYiBkZXIgRGF0ZSBTZWxlY3RvciBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX3Nob3dzZWxlY3RvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pZXJ0IGRhcyBDb250cm9sIGFscyBSZXF1aXJlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNyZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW9tZW50IEpTIEluc3RhbmNlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJvdyBJdGVtIG9mIFBpY2tlciBFbGVtZW50LiBSZXF1aXJlZCB0byBzZXQgdGhlIHBvc2l0aW9uIG9mIGFycm93IGNvcnJlY3RseVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcGlja2VyUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XHJcbiAgICBAVmlld0NoaWxkKCdwaWNrZXJhcnJvdycsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gICAgcHVibGljIHBpY2tlcmFycm93OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIGNvbnRlbnQgKGUuZy4gaWNvbikgb24gd2hpY2ggdGhlIHRvb2x0aXAgaXMgZGlzcGxheWVkLlxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdwaWNrZXJidXR0b24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgcHVibGljIHBpY2tlcmJ1dHRvbjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZXh0Qm94IFBsYWNlaG9sZGVyXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXJyb3cgYXQgdGhlIGxlZnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvc0Fycm93TGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSB0b3BcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvc0Fycm93VG9wOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXQgdGhlIGxlZnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvc1BvcHVwTGVmdDogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXQgdGhlIHRvcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcG9zUG9wdXBUb3A6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgZGF0ZXRpbWUgcGlja2VyLiBWYWx1ZXM6IGxlZnR8dG9wfHJpZ2h0fGJvdHRvbXxhdXRvXHJcbiAgICAgKlxyXG4gICAgICogVmFsdWUgJ2F1dG8nIGNhbiBiZSBjb21iaW5lZCB3aXRoIGFub3RoZXIgdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcG9zaXRpb246IHN0cmluZyA9ICdib3R0b21lbmR8dG9wZW5kJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBiZWkgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JEYXRldGltZUZvcm1hdDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5OiBzdHJpbmcgPVxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeURhdGV0aW1lRm9ybWF0O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclJlcXVpcmVkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnk6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIHJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbixcclxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHRlciBmb3IgdGhlIG5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgdGhlIHRvb2x0aXAuIElzIHJlcXVpcmVkIGFzIHRoZSB0b29sdGlwIGNhbiBiZSBoaWRkZW4gdmlhIG5nSWYuXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gICAgcHVibGljIHNldCBwaWNrZXIocGlja2VyOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgaWYgKHBpY2tlciAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGlja2VyLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIgPSBwaWNrZXI7XHJcbiAgICAgICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRvb2x0b3AoKTogRWxlbWVudFJlZiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyY29udGFpbmVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0dGVyIGbDvHIgdmFsdWVzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZXN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUFzU3RyaW5nO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLm1vbWVudC51dGModGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmxvY2FsKCkuZm9ybWF0KHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGFzIElucHV0IGJla29tbXQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHZhbHVlc3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSB2O1xyXG4gICAgICAgIGxldCBkYXRlOiBtb21lbnRfLk1vbWVudCA9IHRoaXMubW9tZW50KHYsIFt0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCldLCB0cnVlKTtcclxuXHJcbiAgICAgICAgZGF0ZSA9IHRoaXMuTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZShkYXRlKS51dGMoKTtcclxuXHJcbiAgICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlLnRvRGF0ZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGllIG1ldGhvZGUgcmV0dXJucyBkYXRlVGltZSBpbiBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBHZXRQaWNrZXJQb3NpdGlvbigpOiBUb29sdGlwUG9zaXRpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldERpc3BsYXlQb3NpdGlvbihcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxyXG4gICAgICAgICAgICBmYWxzZVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaWUgbWV0aG9kZSBtb2RpZml6aWVydCBkYXMgZWluZ2VnZWJlbmUgVmFsdWUgdm9uIHR5cCBNb21lbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IE1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUodjogbW9tZW50Xy5Nb21lbnQpOiBtb21lbnRfLk1vbWVudDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEpTT04gRGF0ZSBTdHJpbmcgaW4gZWluIFVUQyBEYXRlVGltZSBPYmplY3Qga29udmVydGllcmVuLCB3ZWxjaGVzIHZvbSBDb250cm9sIHZlcndlbmRldGUgd2VyZGVuIGthbm5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldERhdGUodGltZXN0YW1wKTogbW9tZW50Lk1vbWVudCB7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XHJcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcclxuICAgICAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcclxuICAgICAgICBjb25zdCBkYXkgPSBkYXRlLmdldFVUQ0RhdGUoKTtcclxuICAgICAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0VVRDSG91cnMoKTtcclxuICAgICAgICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRVVENNaW51dGVzKCk7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kcyA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5tb21lbnQoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBvZiB0aGUgdG9vbHRpcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UGlja2VySGVpZ2h0KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9wdXBIZWlnaHQodGhpcy5waWNrZXJjb250YWluZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIHBpY2tlclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UGlja2VyV2lkdGgoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cFdpZHRoKHRoaXMucGlja2VyY29udGFpbmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMub25Db250ZW50Q2hhbmdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFVucmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0IEV2ZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuc2V0RGF0ZVRpbWVGb3JtYXQoKTtcclxuXHJcbiAgICAgICAgLy8gUmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBzZXR6dCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmcgenUgcHJvcGVydHkgdmFsdWVzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFZhbHVlU3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMudmFsdWVzdHJpbmcgPSB2O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgICAgICBpZiAodGhpcy52YWx1ZXN0cmluZyAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlc3RyaW5nLmluZGV4T2YoJ18nKSA+PSAwKSB7XHJcbiAgICAgICAgICAgIGVycm9yID0gQ3JlYXRlVmFsaWRhdGlvbkVycm9yKFxyXG4gICAgICAgICAgICAgICAgJ2ludmFsaWR0eXBlJyxcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnlcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24uaXNWYWxpZERhdGUoXHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxyXG4gICAgICAgICkoYyk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnJlcXVpcmVkKHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCwgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeSkoYyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdmVyd3JpdGUgV3JpdGVWYWx1ZSB0byBTZXQgY29ycmVjdCBEYXRlIE9iamVjdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZykge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAvLyBSZXNldCBWYWx1ZSBTdHJpbmcsIGRhbWl0IGJlaW0gVXBkYXRlIGRlcyBNb2RlbHMgYXVjaCBkYXMgSW5wdXQgRmVsZCBnZWxlZXJ0IHdpcmQuXHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSAnJztcclxuICAgICAgICAgICAgLy8gU2V0IEludGVybmFsIFByb3BlcnR5XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZ2V0RGF0ZSh2YWx1ZSkudG9EYXRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xyXG5cclxuICAgIHByb3RlY3RlZCBnZXRBcnJvd0hlaWdodCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmFycm93ID8gdGhpcy5waWNrZXJhcnJvdy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCA6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEFycm93V2lkdGgoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJhcnJvdyA/IHRoaXMucGlja2VyYXJyb3cubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIGxpbmtzXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXRQb3NpdGlvbkxlZnQoKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25MZWZ0KFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZixcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcclxuICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMucG9zUG9wdXBMZWZ0ID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5HZXRQaWNrZXJQb3NpdGlvbigpKSB7XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcDpcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSB0aGlzLmdldFBpY2tlcldpZHRoKCkgLyAyIC0gLXRoaXMuZ2V0QXJyb3dXaWR0aCgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcGVuZDpcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tZW5kOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UGlja2VyV2lkdGgoKSAtXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCkgLyAyIC1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcHVwSGVscGVyLmdldENvbnRhaW5lcldpZHRoKHRoaXMucGlja2VyYnV0dG9uLCBmYWxzZSkgLyAyO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvcFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25Ub3AoKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25Ub3AoXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxyXG4gICAgICAgICAgICBmYWxzZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5wb3NQb3B1cFRvcCA9IHZhbHVlO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5sZWZ0OlxyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5yaWdodDpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSB0aGlzLmdldFBpY2tlckhlaWdodCgpIC8gMiAtIDYuNTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIG1ldGhvZCBpZiBjb250ZW50IGhhcyBjaGFuZ2VkIGFuZCBwcm9wb3J0aW9ucyBuZWVkIHRvIGJlIHJlc2V0IGluIHRoZSBVSS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkNvbnRlbnRDaGFuZ2UgPSAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJsZVxyXG4gICAgICAgIGlmICghdGhpcy5fc2hvd3NlbGVjdG9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uTGVmdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uVG9wKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHByaXZhdGUgc2V0RGF0ZVRpbWVGb3JtYXQoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gSEFDSzogQWRkIGFkZGl0aW9uIHByb3BlcnR5IHRvIEZvcm1Db250cm9sLiBDYW4gYmUgZml4ZWQgaWYgc29sdXRpb24gZm9yIHRpY2tldDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTk2ODZcclxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSURhdGVUaW1lQ29udHJvbCkuZGF0ZXRpbWVmb3JtYXRzdHJpbmcgPSB0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcbn1cclxuIl19
90
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfaHZvMnk3eWpjIiwiYWN0dWFsQ292ZXJhZ2UiLCJUb29sdGlwUG9zaXRpb24iLCJQb3BVcEhlbHBlciIsIlZhbGlkYXRpb24iLCJDcmVhdGVWYWxpZGF0aW9uRXJyb3IiLCJTYWNCYXNlTW9kZWxDb250cm9sIiwiRGlyZWN0aXZlIiwiSW5wdXQiLCJWaWV3Q2hpbGQiLCJtb21lbnRfIiwiU2FjQmFzZURhdGVUaW1lQ29udHJvbCIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwiZWxlbWVudFJlZiIsImNkUmVmIiwiZiIsInMiLCJwb3B1cEhlbHBlciIsIl92YWx1ZUFzU3RyaW5nIiwiX3Nob3dzZWxlY3RvciIsImlzcmVxdWlyZWQiLCJtb21lbnQiLCJwaWNrZXJQb3NpdGlvbiIsInBsYWNlaG9sZGVyIiwicG9zQXJyb3dMZWZ0IiwicG9zQXJyb3dUb3AiLCJwb3NQb3B1cExlZnQiLCJwb3NQb3B1cFRvcCIsInBvc2l0aW9uIiwidmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCIsInZhbGlkYXRpb25LZXlTZXJ2aWNlIiwiVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQiLCJ2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeSIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdCIsInZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQiLCJWYWxpZGF0aW9uRXJyb3JSZXF1aXJlZCIsInZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5IiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkIiwib25Db250ZW50Q2hhbmdlIiwiYiIsInNldFRpbWVvdXQiLCJnZXRQb3NpdGlvbkxlZnQiLCJnZXRQb3NpdGlvblRvcCIsInBpY2tlciIsInVuZGVmaW5lZCIsImRvY3VtZW50IiwiYm9keSIsImFwcGVuZENoaWxkIiwibmF0aXZlRWxlbWVudCIsInBpY2tlcmNvbnRhaW5lciIsImRldGVjdENoYW5nZXMiLCJ0b29sdG9wIiwidmFsdWVzdHJpbmciLCJ2YWx1ZSIsImRhdGUiLCJ1dGMiLCJsb2NhbCIsImZvcm1hdCIsIkdldERhdGVUaW1lRm9ybWF0U3RyaW5nIiwidiIsIk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUiLCJpc1ZhbGlkIiwidG9EYXRlIiwiR2V0UGlja2VyUG9zaXRpb24iLCJnZXREaXNwbGF5UG9zaXRpb24iLCJwaWNrZXJidXR0b24iLCJnZXRBcnJvd1dpZHRoIiwiZ2V0QXJyb3dIZWlnaHQiLCJnZXREYXRlIiwidGltZXN0YW1wIiwiRGF0ZSIsInllYXIiLCJnZXRVVENGdWxsWWVhciIsIm1vbnRoIiwiZ2V0VVRDTW9udGgiLCJkYXkiLCJnZXRVVENEYXRlIiwiaG91cnMiLCJnZXRVVENIb3VycyIsIm1pbnV0ZXMiLCJnZXRVVENNaW51dGVzIiwic2Vjb25kcyIsImdldFVUQ1NlY29uZHMiLCJVVEMiLCJnZXRQaWNrZXJIZWlnaHQiLCJnZXRQb3B1cEhlaWdodCIsImdldFBpY2tlcldpZHRoIiwiZ2V0UG9wdXBXaWR0aCIsIm5nRG9DaGVjayIsIm5nT25EZXN0cm95Iiwid2luZG93IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm5nT25Jbml0Iiwic2V0RGF0ZVRpbWVGb3JtYXQiLCJhZGRFdmVudExpc3RlbmVyIiwic2V0VmFsdWVTdHJpbmciLCJ2YWxpZGF0ZURhdGEiLCJjIiwiZXJyb3IiLCJpbmRleE9mIiwiaXNWYWxpZERhdGUiLCJyZXF1aXJlZCIsIndyaXRlVmFsdWUiLCJfdmFsdWUiLCJwaWNrZXJhcnJvdyIsIm9mZnNldEhlaWdodCIsIm9mZnNldFdpZHRoIiwidG9wIiwiYm90dG9tIiwidG9wZW5kIiwiYm90dG9tZW5kIiwiZ2V0Q29udGFpbmVyV2lkdGgiLCJsZWZ0IiwicmlnaHQiLCJuZ0NvbnRyb2wiLCJkYXRldGltZWZvcm1hdHN0cmluZyIsImRlcHMiLCJ0b2tlbiIsImkxIiwiU2FjRm9ybUxheW91dENvbW1vbiIsImkwIiwiSW5qZWN0b3IiLCJFbGVtZW50UmVmIiwiQ2hhbmdlRGV0ZWN0b3JSZWYiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsInZpZXdRdWVyaWVzIiwicHJvcGVydHlOYW1lIiwiZmlyc3QiLCJwcmVkaWNhdGUiLCJkZXNjZW5kYW50cyIsInN0YXRpYyIsInVzZXNJbmhlcml0YW5jZSIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XHJcbmltcG9ydCB7IElEYXRlVGltZUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lkYXRldGltZWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24gfSBmcm9tICcuLi91dGlsaXRpZXMvZW51bXMnO1xyXG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XHJcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi92YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgQ3JlYXRlVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uZXJyb3JjcmVhdG9yJztcclxuaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4vYmFzZW1vZGVsY29udHJvbCc7XHJcbmltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIERpcmVjdGl2ZSxcclxuICAgIERvQ2hlY2ssXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcblxyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBEYXRlL1RpbWUgQ29udHJvbHNcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZURhdGVUaW1lQ29udHJvbCBleHRlbmRzIFNhY0Jhc2VNb2RlbENvbnRyb2w8RGF0ZT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRG9DaGVjayB7XHJcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBjbGFzcyB0byBkaXNwbGF5IHRvb2x0aXAgb24gY29ycmVjdCBwb3NpdGlvblxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwSGVscGVyOiBQb3BVcEhlbHBlciA9IG5ldyBQb3BVcEhlbHBlcigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZGFzIHByb3BlcnR5IGVudGhpZWx0IGRhcyBWYWx1ZSBhbHMgc3RyaW5nLiBEZWZhdWx0IGlzdCAnJ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlQXNTdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSBkYXRldGltZSBwaWNrZXJcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHBpY2tlcmNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBmb3IgZW51bSBpbiBBbmd1bGFyIEhUTUwgdGVtcGxhdGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIFRvb2x0aXBQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluaWVydCBvYiBkZXIgRGF0ZSBTZWxlY3RvciBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX3Nob3dzZWxlY3RvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pZXJ0IGRhcyBDb250cm9sIGFscyBSZXF1aXJlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNyZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW9tZW50IEpTIEluc3RhbmNlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJvdyBJdGVtIG9mIFBpY2tlciBFbGVtZW50LiBSZXF1aXJlZCB0byBzZXQgdGhlIHBvc2l0aW9uIG9mIGFycm93IGNvcnJlY3RseVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcGlja2VyUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XHJcbiAgICBAVmlld0NoaWxkKCdwaWNrZXJhcnJvdycsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gICAgcHVibGljIHBpY2tlcmFycm93OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIGNvbnRlbnQgKGUuZy4gaWNvbikgb24gd2hpY2ggdGhlIHRvb2x0aXAgaXMgZGlzcGxheWVkLlxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdwaWNrZXJidXR0b24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgcHVibGljIHBpY2tlcmJ1dHRvbjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZXh0Qm94IFBsYWNlaG9sZGVyXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXJyb3cgYXQgdGhlIGxlZnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvc0Fycm93TGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSB0b3BcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvc0Fycm93VG9wOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXQgdGhlIGxlZnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvc1BvcHVwTGVmdDogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXQgdGhlIHRvcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcG9zUG9wdXBUb3A6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgZGF0ZXRpbWUgcGlja2VyLiBWYWx1ZXM6IGxlZnR8dG9wfHJpZ2h0fGJvdHRvbXxhdXRvXHJcbiAgICAgKlxyXG4gICAgICogVmFsdWUgJ2F1dG8nIGNhbiBiZSBjb21iaW5lZCB3aXRoIGFub3RoZXIgdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcG9zaXRpb246IHN0cmluZyA9ICdib3R0b21lbmR8dG9wZW5kJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBiZWkgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JEYXRldGltZUZvcm1hdDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5OiBzdHJpbmcgPVxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeURhdGV0aW1lRm9ybWF0O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclJlcXVpcmVkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnk6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIHJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbixcclxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHRlciBmb3IgdGhlIG5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgdGhlIHRvb2x0aXAuIElzIHJlcXVpcmVkIGFzIHRoZSB0b29sdGlwIGNhbiBiZSBoaWRkZW4gdmlhIG5nSWYuXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gICAgcHVibGljIHNldCBwaWNrZXIocGlja2VyOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgaWYgKHBpY2tlciAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGlja2VyLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIgPSBwaWNrZXI7XHJcbiAgICAgICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRvb2x0b3AoKTogRWxlbWVudFJlZiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyY29udGFpbmVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0dGVyIGbDvHIgdmFsdWVzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZXN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUFzU3RyaW5nO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLm1vbWVudC51dGModGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmxvY2FsKCkuZm9ybWF0KHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGFzIElucHV0IGJla29tbXQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHZhbHVlc3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSB2O1xyXG4gICAgICAgIGxldCBkYXRlOiBtb21lbnRfLk1vbWVudCA9IHRoaXMubW9tZW50KHYsIFt0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCldLCB0cnVlKTtcclxuXHJcbiAgICAgICAgZGF0ZSA9IHRoaXMuTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZShkYXRlKS51dGMoKTtcclxuXHJcbiAgICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlLnRvRGF0ZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGllIG1ldGhvZGUgcmV0dXJucyBkYXRlVGltZSBpbiBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBHZXRQaWNrZXJQb3NpdGlvbigpOiBUb29sdGlwUG9zaXRpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldERpc3BsYXlQb3NpdGlvbihcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxyXG4gICAgICAgICAgICBmYWxzZVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaWUgbWV0aG9kZSBtb2RpZml6aWVydCBkYXMgZWluZ2VnZWJlbmUgVmFsdWUgdm9uIHR5cCBNb21lbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IE1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUodjogbW9tZW50Xy5Nb21lbnQpOiBtb21lbnRfLk1vbWVudDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEpTT04gRGF0ZSBTdHJpbmcgaW4gZWluIFVUQyBEYXRlVGltZSBPYmplY3Qga29udmVydGllcmVuLCB3ZWxjaGVzIHZvbSBDb250cm9sIHZlcndlbmRldGUgd2VyZGVuIGthbm5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldERhdGUodGltZXN0YW1wKTogbW9tZW50Lk1vbWVudCB7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XHJcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcclxuICAgICAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcclxuICAgICAgICBjb25zdCBkYXkgPSBkYXRlLmdldFVUQ0RhdGUoKTtcclxuICAgICAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0VVRDSG91cnMoKTtcclxuICAgICAgICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRVVENNaW51dGVzKCk7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kcyA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5tb21lbnQoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBvZiB0aGUgdG9vbHRpcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UGlja2VySGVpZ2h0KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9wdXBIZWlnaHQodGhpcy5waWNrZXJjb250YWluZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIHBpY2tlclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UGlja2VyV2lkdGgoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cFdpZHRoKHRoaXMucGlja2VyY29udGFpbmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMub25Db250ZW50Q2hhbmdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFVucmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0IEV2ZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuc2V0RGF0ZVRpbWVGb3JtYXQoKTtcclxuXHJcbiAgICAgICAgLy8gUmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBzZXR6dCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmcgenUgcHJvcGVydHkgdmFsdWVzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFZhbHVlU3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMudmFsdWVzdHJpbmcgPSB2O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgICAgICBpZiAodGhpcy52YWx1ZXN0cmluZyAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlc3RyaW5nLmluZGV4T2YoJ18nKSA+PSAwKSB7XHJcbiAgICAgICAgICAgIGVycm9yID0gQ3JlYXRlVmFsaWRhdGlvbkVycm9yKFxyXG4gICAgICAgICAgICAgICAgJ2ludmFsaWR0eXBlJyxcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnlcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24uaXNWYWxpZERhdGUoXHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxyXG4gICAgICAgICkoYyk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnJlcXVpcmVkKHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCwgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeSkoYyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdmVyd3JpdGUgV3JpdGVWYWx1ZSB0byBTZXQgY29ycmVjdCBEYXRlIE9iamVjdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZykge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAvLyBSZXNldCBWYWx1ZSBTdHJpbmcsIGRhbWl0IGJlaW0gVXBkYXRlIGRlcyBNb2RlbHMgYXVjaCBkYXMgSW5wdXQgRmVsZCBnZWxlZXJ0IHdpcmQuXHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSAnJztcclxuICAgICAgICAgICAgLy8gU2V0IEludGVybmFsIFByb3BlcnR5XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZ2V0RGF0ZSh2YWx1ZSkudG9EYXRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xyXG5cclxuICAgIHByb3RlY3RlZCBnZXRBcnJvd0hlaWdodCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmFycm93ID8gdGhpcy5waWNrZXJhcnJvdy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCA6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEFycm93V2lkdGgoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJhcnJvdyA/IHRoaXMucGlja2VyYXJyb3cubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIGxpbmtzXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXRQb3NpdGlvbkxlZnQoKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25MZWZ0KFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZixcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcclxuICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMucG9zUG9wdXBMZWZ0ID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5HZXRQaWNrZXJQb3NpdGlvbigpKSB7XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcDpcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSB0aGlzLmdldFBpY2tlcldpZHRoKCkgLyAyIC0gLXRoaXMuZ2V0QXJyb3dXaWR0aCgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcGVuZDpcclxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tZW5kOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UGlja2VyV2lkdGgoKSAtXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCkgLyAyIC1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcHVwSGVscGVyLmdldENvbnRhaW5lcldpZHRoKHRoaXMucGlja2VyYnV0dG9uLCBmYWxzZSkgLyAyO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvcFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25Ub3AoKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25Ub3AoXHJcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxyXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxyXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcclxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxyXG4gICAgICAgICAgICBmYWxzZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5wb3NQb3B1cFRvcCA9IHZhbHVlO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5sZWZ0OlxyXG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5yaWdodDpcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSB0aGlzLmdldFBpY2tlckhlaWdodCgpIC8gMiAtIDYuNTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIG1ldGhvZCBpZiBjb250ZW50IGhhcyBjaGFuZ2VkIGFuZCBwcm9wb3J0aW9ucyBuZWVkIHRvIGJlIHJlc2V0IGluIHRoZSBVSS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkNvbnRlbnRDaGFuZ2UgPSAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJsZVxyXG4gICAgICAgIGlmICghdGhpcy5fc2hvd3NlbGVjdG9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uTGVmdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uVG9wKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHByaXZhdGUgc2V0RGF0ZVRpbWVGb3JtYXQoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gSEFDSzogQWRkIGFkZGl0aW9uIHByb3BlcnR5IHRvIEZvcm1Db250cm9sLiBDYW4gYmUgZml4ZWQgaWYgc29sdXRpb24gZm9yIHRpY2tldDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTk2ODZcclxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSURhdGVUaW1lQ29udHJvbCkuZGF0ZXRpbWVmb3JtYXRzdHJpbmcgPSB0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiNGhsQ0FzSUk7QUFBQUEsYUFBQSxTQUFBQSxDQUFBLFNBQUFDLGNBQUEsV0FBQUEsY0FBQSxFQUFBRCxhQUFBLEdBcElKLE9BQVNFLGVBQWUsS0FBUSxvQkFBb0IsQ0FDcEQsT0FBU0MsV0FBVyxLQUFRLDBCQUEwQixDQUN0RCxPQUFTQyxVQUFVLEtBQVEsZUFBZSxDQUMxQyxPQUFTQyxxQkFBcUIsS0FBUSxzQ0FBc0MsQ0FDNUUsT0FBU0MsbUJBQW1CLEtBQVEsb0JBQW9CLENBQ3hELE9BRUlDLFNBQVMsQ0FJVEMsS0FBSyxDQUdMQyxTQUFTLEtBQ04sZUFBZSxDQUV0QixNQUFPLEdBQUssQ0FBQUMsT0FBTyxLQUFNLFFBQVEsQyxrRkFFakM7O0dBSUEsTUFBTSxNQUFnQixDQUFBQyxzQkFBdUIsUUFBUSxDQUFBTCxtQkFBeUIsQ0F5RzFFO0FBRUE7QUFFQTs7Ozs7T0FNQU0sWUFDSUMsVUFBK0IsQ0FDL0JDLFFBQWtCLENBQ1JDLFVB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