@simpleangularcontrols/sac-common 16.0.0-rc.3 → 16.0.0-rc.5

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 (202) hide show
  1. package/common/basedatetimecontrol.d.ts.map +1 -1
  2. package/common/basemodelcontrol.d.ts +24 -1
  3. package/common/basemodelcontrol.d.ts.map +1 -1
  4. package/common/baseuploadcontrol.d.ts.map +1 -1
  5. package/components/browser/browser.d.ts +11 -6
  6. package/components/browser/browser.d.ts.map +1 -1
  7. package/controls/buttons/button.d.ts +23 -22
  8. package/controls/buttons/button.d.ts.map +1 -1
  9. package/controls/checkbox/radiobutton.d.ts +9 -0
  10. package/controls/checkbox/radiobutton.d.ts.map +1 -1
  11. package/controls/checkbox/radiobuttons.d.ts +20 -20
  12. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  13. package/controls/confirm/confirm.button.d.ts +14 -8
  14. package/controls/confirm/confirm.button.d.ts.map +1 -1
  15. package/controls/confirm/confirm.service.d.ts +24 -19
  16. package/controls/confirm/confirm.service.d.ts.map +1 -1
  17. package/controls/datetime/date.d.ts +33 -33
  18. package/controls/datetime/date.d.ts.map +1 -1
  19. package/controls/datetime/datetime.d.ts +31 -31
  20. package/controls/datetime/datetime.d.ts.map +1 -1
  21. package/controls/datetime/time.d.ts +29 -29
  22. package/controls/datetime/time.d.ts.map +1 -1
  23. package/controls/grid/grid.d.ts +57 -54
  24. package/controls/grid/grid.d.ts.map +1 -1
  25. package/controls/grid/paging.d.ts +70 -67
  26. package/controls/grid/paging.d.ts.map +1 -1
  27. package/controls/input/input.d.ts +11 -11
  28. package/controls/input/input.d.ts.map +1 -1
  29. package/controls/input/inputdecimal.d.ts.map +1 -1
  30. package/controls/input/inputemail.d.ts.map +1 -1
  31. package/controls/input/inputinteger.d.ts +21 -21
  32. package/controls/input/inputinteger.d.ts.map +1 -1
  33. package/controls/input/inputpassword.d.ts +5 -5
  34. package/controls/input/inputpassword.d.ts.map +1 -1
  35. package/controls/layout/formlayout.d.ts +14 -9
  36. package/controls/layout/formlayout.d.ts.map +1 -1
  37. package/controls/list/dropdown.d.ts.map +1 -1
  38. package/controls/list/listbox.d.ts +20 -20
  39. package/controls/list/listbox.d.ts.map +1 -1
  40. package/controls/multilanguage/multilanguageinput.d.ts +31 -31
  41. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  42. package/controls/multilanguage/multilanguageinputarea.d.ts +34 -34
  43. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  44. package/controls/tinymce/tinymce.d.ts.map +1 -1
  45. package/controls/upload/dropzonemultiple.d.ts +24 -24
  46. package/controls/upload/dropzonemultiple.d.ts.map +1 -1
  47. package/controls/upload/uploadmultiple.d.ts +9 -9
  48. package/controls/upload/uploadmultiple.d.ts.map +1 -1
  49. package/controls/validation/validationsummary.d.ts +18 -13
  50. package/controls/validation/validationsummary.d.ts.map +1 -1
  51. package/enums/ButtonRoleType.d.ts +2 -0
  52. package/enums/ButtonRoleType.d.ts.map +1 -0
  53. package/enums/ControlHeight.d.ts +18 -0
  54. package/enums/ControlHeight.d.ts.map +1 -0
  55. package/esm2022/common/basedatetimecontrol.mjs +32 -148
  56. package/esm2022/common/baseinputcontrol.mjs +20 -77
  57. package/esm2022/common/baselistcontrol.mjs +11 -56
  58. package/esm2022/common/basemodelcontrol.mjs +81 -393
  59. package/esm2022/common/baseselectcontrol.mjs +6 -27
  60. package/esm2022/common/baseuploadcontrol.mjs +64 -389
  61. package/esm2022/components/browser/browser.mjs +66 -474
  62. package/esm2022/components/browser/models/browserfile.mjs +3 -2
  63. package/esm2022/components/browser/models/browserfiledeleterequest.mjs +5 -10
  64. package/esm2022/components/browser/models/browserfilerenamerequest.mjs +5 -10
  65. package/esm2022/components/browser/models/browserfileresponse.mjs +3 -2
  66. package/esm2022/components/browser/models/browserfilesaverequest.mjs +5 -10
  67. package/esm2022/components/browser/models/browsernode.mjs +3 -2
  68. package/esm2022/components/browser/models/browsernodedeleterequest.mjs +5 -10
  69. package/esm2022/components/browser/models/browsernodenewrequest.mjs +5 -10
  70. package/esm2022/components/browser/models/browsernoderenamerequest.mjs +5 -10
  71. package/esm2022/components/browser/models/browsernoderequest.mjs +5 -10
  72. package/esm2022/components/browser/models/browsernoderesponse.mjs +3 -2
  73. package/esm2022/controls/buttons/button.mjs +32 -131
  74. package/esm2022/controls/checkbox/checkbox.mjs +7 -34
  75. package/esm2022/controls/checkbox/radiobutton.mjs +24 -98
  76. package/esm2022/controls/checkbox/radiobuttons.mjs +26 -104
  77. package/esm2022/controls/confirm/confirm.button.mjs +17 -21
  78. package/esm2022/controls/confirm/confirm.mjs +19 -69
  79. package/esm2022/controls/confirm/confirm.service.mjs +29 -74
  80. package/esm2022/controls/contextmenu/contextmenu.mjs +31 -169
  81. package/esm2022/controls/contextmenu/contextmenuanchor.mjs +7 -20
  82. package/esm2022/controls/contextmenu/contextmenucontainer.mjs +7 -20
  83. package/esm2022/controls/contextmenu/contextmenuitem.mjs +4 -13
  84. package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +15 -91
  85. package/esm2022/controls/datetime/date.mjs +39 -203
  86. package/esm2022/controls/datetime/dateselector.mjs +65 -409
  87. package/esm2022/controls/datetime/datetime.mjs +41 -220
  88. package/esm2022/controls/datetime/time.mjs +38 -201
  89. package/esm2022/controls/dialog/dialog.mjs +33 -194
  90. package/esm2022/controls/form/form.mjs +24 -96
  91. package/esm2022/controls/grid/grid.mjs +39 -146
  92. package/esm2022/controls/grid/gridbutton.mjs +9 -52
  93. package/esm2022/controls/grid/gridcolumn.mjs +9 -41
  94. package/esm2022/controls/grid/gridcolumnaction.mjs +5 -20
  95. package/esm2022/controls/grid/gridcolumnbase.mjs +20 -114
  96. package/esm2022/controls/grid/gridimage.mjs +4 -15
  97. package/esm2022/controls/grid/model.mjs +16 -59
  98. package/esm2022/controls/grid/paging.mjs +65 -232
  99. package/esm2022/controls/input/input.mjs +17 -65
  100. package/esm2022/controls/input/inputarea.mjs +10 -53
  101. package/esm2022/controls/input/inputcurrency.mjs +4 -14
  102. package/esm2022/controls/input/inputdecimal.mjs +25 -140
  103. package/esm2022/controls/input/inputemail.mjs +10 -37
  104. package/esm2022/controls/input/inputinteger.mjs +32 -127
  105. package/esm2022/controls/input/inputpassword.mjs +12 -43
  106. package/esm2022/controls/input/inputsearch.mjs +8 -37
  107. package/esm2022/controls/layout/formlayout.mjs +20 -65
  108. package/esm2022/controls/list/dropdown.mjs +54 -219
  109. package/esm2022/controls/list/listbox.mjs +40 -159
  110. package/esm2022/controls/multilanguage/multilanguageinput.mjs +45 -213
  111. package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +48 -215
  112. package/esm2022/controls/static/formcontainer.mjs +10 -44
  113. package/esm2022/controls/static/staticlabel.mjs +7 -28
  114. package/esm2022/controls/tabs/tab.mjs +14 -68
  115. package/esm2022/controls/tabs/tabitem.mjs +7 -37
  116. package/esm2022/controls/tinymce/tinymce.mjs +41 -218
  117. package/esm2022/controls/tinymce/tinymcedialogsettings.mjs +5 -10
  118. package/esm2022/controls/tinymce/tinymcedialogsettingsmeta.mjs +4 -4
  119. package/esm2022/controls/tinymce/tinymceinstance.mjs +3 -2
  120. package/esm2022/controls/tooltip/tooltip.mjs +46 -327
  121. package/esm2022/controls/treeview/ngtreeitemaction.mjs +9 -56
  122. package/esm2022/controls/treeview/treeview.mjs +53 -299
  123. package/esm2022/controls/treeview/treeviewchild.mjs +5 -19
  124. package/esm2022/controls/upload/dropzonemultiple.mjs +32 -152
  125. package/esm2022/controls/upload/dropzonesingle.mjs +12 -91
  126. package/esm2022/controls/upload/uploadmultiple.mjs +21 -111
  127. package/esm2022/controls/upload/uploadsingle.mjs +8 -50
  128. package/esm2022/controls/validation/validationsummary.mjs +23 -120
  129. package/esm2022/controls/wizard/wizard.mjs +20 -128
  130. package/esm2022/controls/wizard/wizarditem.mjs +6 -31
  131. package/esm2022/enums/ButtonRoleType.mjs +3 -0
  132. package/esm2022/enums/ControlHeight.mjs +11 -0
  133. package/esm2022/enums/IconType.mjs +4 -8
  134. package/esm2022/interfaces/ISacConfigurationService.mjs +3 -0
  135. package/esm2022/interfaces/ISacFileBrowserService.mjs +3 -2
  136. package/esm2022/interfaces/ISacIconService.mjs +3 -2
  137. package/esm2022/interfaces/ISacLabelSizes.mjs +3 -2
  138. package/esm2022/interfaces/ISacLanguageService.mjs +3 -2
  139. package/esm2022/interfaces/ISacLocalisationService.mjs +3 -2
  140. package/esm2022/interfaces/ISacValidationKeyService.mjs +3 -0
  141. package/esm2022/interfaces/iabstractcontrollabel.mjs +3 -2
  142. package/esm2022/interfaces/iconfirmcomponent.mjs +3 -2
  143. package/esm2022/interfaces/idatetimecontrol.mjs +3 -2
  144. package/esm2022/interfaces/iuploadcontrol.mjs +3 -2
  145. package/esm2022/models/languagemodel.mjs +5 -11
  146. package/esm2022/public_api.mjs +23 -95
  147. package/esm2022/services/index.mjs +3 -5
  148. package/esm2022/services/sac-configuration.service.mjs +25 -0
  149. package/esm2022/services/sac-filebrowser.service.mjs +15 -167
  150. package/esm2022/services/sac-icon.service.mjs +49 -155
  151. package/esm2022/services/sac-language.service.mjs +7 -45
  152. package/esm2022/services/sac-localisation.service.mjs +33 -428
  153. package/esm2022/services/sac-validationkey.service.mjs +7 -0
  154. package/esm2022/simpleangularcontrols-sac-common.mjs +4 -4
  155. package/esm2022/utilities/convertion.mjs +6 -26
  156. package/esm2022/utilities/datatypes.mjs +4 -6
  157. package/esm2022/utilities/enums.mjs +8 -15
  158. package/esm2022/utilities/guid.mjs +6 -0
  159. package/esm2022/utilities/interpolation.mjs +7 -42
  160. package/esm2022/utilities/positioning.mjs +23 -266
  161. package/esm2022/validation/email.validator.mjs +3 -13
  162. package/esm2022/validation/index.mjs +3 -3
  163. package/esm2022/validation/invaliddate.validator.mjs +3 -14
  164. package/esm2022/validation/isDateValid.mjs +5 -14
  165. package/esm2022/validation/maxdate.validator.mjs +4 -21
  166. package/esm2022/validation/maxtime.validator.mjs +4 -21
  167. package/esm2022/validation/maxvalue.validator.mjs +3 -16
  168. package/esm2022/validation/mindate.validator.mjs +4 -21
  169. package/esm2022/validation/minfiles.validator.mjs +4 -19
  170. package/esm2022/validation/minlength.validator.mjs +3 -21
  171. package/esm2022/validation/mintime.validator.mjs +4 -21
  172. package/esm2022/validation/minvalue.validator.mjs +3 -16
  173. package/esm2022/validation/multilanguagerequired.validator.mjs +3 -22
  174. package/esm2022/validation/multilanguagerequiredany.validator.mjs +3 -22
  175. package/esm2022/validation/pattern.validator.mjs +3 -16
  176. package/esm2022/validation/required.validator.mjs +3 -13
  177. package/esm2022/validation/validation.mjs +20 -99
  178. package/esm2022/validation/validationerrorcreator.mjs +3 -11
  179. package/esm2022/validation/validationerroritem.mjs +7 -19
  180. package/fesm2022/simpleangularcontrols-sac-common.mjs +1638 -8935
  181. package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
  182. package/interfaces/ISacConfigurationService.d.ts +35 -0
  183. package/interfaces/ISacConfigurationService.d.ts.map +1 -0
  184. package/interfaces/ISacIconService.d.ts +2 -2
  185. package/interfaces/ISacIconService.d.ts.map +1 -1
  186. package/interfaces/ISacValidationKeyService.d.ts +53 -0
  187. package/interfaces/ISacValidationKeyService.d.ts.map +1 -0
  188. package/package.json +2 -2
  189. package/public_api.d.ts +4 -1
  190. package/public_api.d.ts.map +1 -1
  191. package/services/index.d.ts +6 -4
  192. package/services/index.d.ts.map +1 -1
  193. package/services/sac-configuration.service.d.ts +76 -0
  194. package/services/sac-configuration.service.d.ts.map +1 -0
  195. package/services/sac-localisation.service.d.ts +103 -97
  196. package/services/sac-localisation.service.d.ts.map +1 -1
  197. package/services/sac-validationkey.service.d.ts +59 -0
  198. package/services/sac-validationkey.service.d.ts.map +1 -0
  199. package/simpleangularcontrols-sac-common-16.0.0-rc.5.tgz +0 -0
  200. package/utilities/guid.d.ts +5 -0
  201. package/utilities/guid.d.ts.map +1 -0
  202. package/simpleangularcontrols-sac-common-16.0.0-rc.3.tgz +0 -0
@@ -1,270 +1,105 @@
1
- import { Directive, Host, Input, } from '@angular/core';
2
- import { SacBaseSelectControl } from '../../common/baseselectcontrol';
3
- import { Validation } from '../../validation';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../layout/formlayout";
6
- // #region Classes
1
+ function cov_10j6wgixd7(){var path="C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\controls\\list\\dropdown.mjs";var hash="b20bb1d6e2ae738b48e7db469241fb5dbcd89937";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\controls\\list\\dropdown.mjs",statementMap:{"0":{start:{line:21,column:8},end:{line:21,column:36}},"1":{start:{line:22,column:8},end:{line:22,column:33}},"2":{start:{line:23,column:8},end:{line:23,column:37}},"3":{start:{line:28,column:8},end:{line:28,column:38}},"4":{start:{line:32,column:8},end:{line:32,column:29}},"5":{start:{line:36,column:8},end:{line:36,column:31}},"6":{start:{line:40,column:8},end:{line:40,column:91}},"7":{start:{line:44,column:8},end:{line:44,column:105}},"8":{start:{line:48,column:8},end:{line:48,column:34}},"9":{start:{line:52,column:8},end:{line:52,column:36}},"10":{start:{line:60,column:8},end:{line:62,column:9}},"11":{start:{line:61,column:12},end:{line:61,column:98}},"12":{start:{line:63,column:8},end:{line:63,column:31}},"13":{start:{line:71,column:8},end:{line:71,column:52}},"14":{start:{line:79,column:8},end:{line:79,column:39}},"15":{start:{line:81,column:8},end:{line:83,column:9}},"16":{start:{line:82,column:12},end:{line:82,column:41}},"17":{start:{line:90,column:8},end:{line:90,column:51}},"18":{start:{line:97,column:20},end:{line:97,column:24}},"19":{start:{line:98,column:8},end:{line:100,column:9}},"20":{start:{line:99,column:12},end:{line:99,column:114}},"21":{start:{line:101,column:8},end:{line:101,column:21}},"22":{start:{line:108,column:8},end:{line:108,column:37}},"23":{start:{line:109,column:8},end:{line:109,column:32}},"24":{start:{line:118,column:8},end:{line:118,column:41}},"25":{start:{line:125,column:8},end:{line:129,column:9}},"26":{start:{line:126,column:12},end:{line:128,column:13}},"27":{start:{line:127,column:16},end:{line:127,column:26}},"28":{start:{line:130,column:8},end:{line:130,column:20}},"29":{start:{line:137,column:19},end:{line:137,column:46}},"30":{start:{line:138,column:8},end:{line:138,column:79}},"31":{start:{line:146,column:27},end:{line:146,column:90}},"32":{start:{line:150,column:19},end:{line:150,column:42}},"33":{start:{line:154,column:28},end:{line:154,column:56}},"34":{start:{line:155,column:8},end:{line:157,column:9}},"35":{start:{line:156,column:12},end:{line:156,column:72}},"36":{start:{line:159,column:13},end:{line:159,column:300}},"37":{start:{line:160,column:13},end:{line:160,column:375}},"38":{start:{line:163,column:0},end:{line:177,column:20}},"39":{start:{line:165,column:42},end:{line:167,column:94}},"40":{start:{line:191,column:8},end:{line:191,column:33}},"41":{start:{line:192,column:8},end:{line:192,column:35}},"42":{start:{line:193,column:8},end:{line:193,column:35}},"43":{start:{line:198,column:8},end:{line:198,column:23}},"44":{start:{line:199,column:8},end:{line:201,column:9}},"45":{start:{line:200,column:12},end:{line:200,column:54}},"46":{start:{line:210,column:8},end:{line:212,column:9}},"47":{start:{line:211,column:12},end:{line:211,column:19}},"48":{start:{line:213,column:8},end:{line:213,column:52}},"49":{start:{line:214,column:8},end:{line:214,column:65}},"50":{start:{line:215,column:8},end:{line:215,column:56}},"51":{start:{line:221,column:8},end:{line:221,column:37}},"52":{start:{line:230,column:8},end:{line:230,column:80}},"53":{start:{line:236,column:8},end:{line:238,column:9}},"54":{start:{line:237,column:12},end:{line:237,column:54}},"55":{start:{line:240,column:13},end:{line:240,column:265}},"56":{start:{line:241,column:13},end:{line:241,column:188}},"57":{start:{line:244,column:0},end:{line:250,column:20}},"58":{start:{line:246,column:42},end:{line:246,column:128}},"59":{start:{line:260,column:4},end:{line:262,column:5}},"60":{start:{line:261,column:8},end:{line:261,column:26}},"61":{start:{line:264,column:4},end:{line:266,column:5}},"62":{start:{line:265,column:8},end:{line:265,column:25}},"63":{start:{line:268,column:4},end:{line:268,column:42}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:20,column:4},end:{line:20,column:5}},loc:{start:{line:20,column:60},end:{line:53,column:5}},line:20},"1":{name:"(anonymous_1)",decl:{start:{line:59,column:4},end:{line:59,column:5}},loc:{start:{line:59,column:24},end:{line:64,column:5}},line:59},"2":{name:"(anonymous_2)",decl:{start:{line:70,column:4},end:{line:70,column:5}},loc:{start:{line:70,column:21},end:{line:72,column:5}},line:70},"3":{name:"(anonymous_3)",decl:{start:{line:78,column:4},end:{line:78,column:5}},loc:{start:{line:78,column:28},end:{line:84,column:5}},line:78},"4":{name:"(anonymous_4)",decl:{start:{line:89,column:4},end:{line:89,column:5}},loc:{start:{line:89,column:20},end:{line:91,column:5}},line:89},"5":{name:"(anonymous_5)",decl:{start:{line:96,column:4},end:{line:96,column:5}},loc:{start:{line:96,column:20},end:{line:102,column:5}},line:96},"6":{name:"(anonymous_6)",decl:{start:{line:107,column:4},end:{line:107,column:5}},loc:{start:{line:107,column:22},end:{line:110,column:5}},line:107},"7":{name:"(anonymous_7)",decl:{start:{line:117,column:4},end:{line:117,column:5}},loc:{start:{line:117,column:27},end:{line:119,column:5}},line:117},"8":{name:"(anonymous_8)",decl:{start:{line:124,column:4},end:{line:124,column:5}},loc:{start:{line:124,column:23},end:{line:131,column:5}},line:124},"9":{name:"(anonymous_9)",decl:{start:{line:136,column:4},end:{line:136,column:5}},loc:{start:{line:136,column:32},end:{line:139,column:5}},line:136},"10":{name:"(anonymous_10)",decl:{start:{line:144,column:4},end:{line:144,column:5}},loc:{start:{line:144,column:28},end:{line:158,column:5}},line:144},"11":{name:"(anonymous_11)",decl:{start:{line:165,column:28},end:{line:165,column:29}},loc:{start:{line:165,column:40},end:{line:167,column:96}},line:165},"12":{name:"(anonymous_12)",decl:{start:{line:190,column:4},end:{line:190,column:5}},loc:{start:{line:190,column:48},end:{line:202,column:5}},line:190},"13":{name:"(anonymous_13)",decl:{start:{line:208,column:4},end:{line:208,column:5}},loc:{start:{line:208,column:23},end:{line:216,column:5}},line:208},"14":{name:"(anonymous_14)",decl:{start:{line:220,column:4},end:{line:220,column:5}},loc:{start:{line:220,column:21},end:{line:222,column:5}},line:220},"15":{name:"(anonymous_15)",decl:{start:{line:229,column:4},end:{line:229,column:5}},loc:{start:{line:229,column:28},end:{line:231,column:5}},line:229},"16":{name:"(anonymous_16)",decl:{start:{line:235,column:4},end:{line:235,column:5}},loc:{start:{line:235,column:18},end:{line:239,column:5}},line:235},"17":{name:"(anonymous_17)",decl:{start:{line:246,column:28},end:{line:246,column:29}},loc:{start:{line:246,column:40},end:{line:246,column:130}},line:246},"18":{name:"_buildValueString",decl:{start:{line:258,column:16},end:{line:258,column:33}},loc:{start:{line:258,column:45},end:{line:269,column:1}},line:258}},branchMap:{"0":{loc:{start:{line:60,column:8},end:{line:62,column:9}},type:"if",locations:[{start:{line:60,column:8},end:{line:62,column:9}},{start:{line:60,column:8},end:{line:62,column:9}}],line:60},"1":{loc:{start:{line:81,column:8},end:{line:83,column:9}},type:"if",locations:[{start:{line:81,column:8},end:{line:83,column:9}},{start:{line:81,column:8},end:{line:83,column:9}}],line:81},"2":{loc:{start:{line:98,column:8},end:{line:100,column:9}},type:"if",locations:[{start:{line:98,column:8},end:{line:100,column:9}},{start:{line:98,column:8},end:{line:100,column:9}}],line:98},"3":{loc:{start:{line:126,column:12},end:{line:128,column:13}},type:"if",locations:[{start:{line:126,column:12},end:{line:128,column:13}},{start:{line:126,column:12},end:{line:128,column:13}}],line:126},"4":{loc:{start:{line:138,column:15},end:{line:138,column:78}},type:"cond-expr",locations:[{start:{line:138,column:41},end:{line:138,column:64}},{start:{line:138,column:67},end:{line:138,column:78}}],line:138},"5":{loc:{start:{line:155,column:8},end:{line:157,column:9}},type:"if",locations:[{start:{line:155,column:8},end:{line:157,column:9}},{start:{line:155,column:8},end:{line:157,column:9}}],line:155},"6":{loc:{start:{line:199,column:8},end:{line:201,column:9}},type:"if",locations:[{start:{line:199,column:8},end:{line:201,column:9}},{start:{line:199,column:8},end:{line:201,column:9}}],line:199},"7":{loc:{start:{line:210,column:8},end:{line:212,column:9}},type:"if",locations:[{start:{line:210,column:8},end:{line:212,column:9}},{start:{line:210,column:8},end:{line:212,column:9}}],line:210},"8":{loc:{start:{line:236,column:8},end:{line:238,column:9}},type:"if",locations:[{start:{line:236,column:8},end:{line:238,column:9}},{start:{line:236,column:8},end:{line:238,column:9}}],line:236},"9":{loc:{start:{line:260,column:4},end:{line:262,column:5}},type:"if",locations:[{start:{line:260,column:4},end:{line:262,column:5}},{start:{line:260,column:4},end:{line:262,column:5}}],line:260},"10":{loc:{start:{line:264,column:4},end:{line:266,column:5}},type:"if",locations:[{start:{line:264,column:4},end:{line:266,column:5}},{start:{line:264,column:4},end:{line:266,column:5}}],line:264},"11":{loc:{start:{line:264,column:8},end:{line:264,column:42}},type:"binary-expr",locations:[{start:{line:264,column:8},end:{line:264,column:13}},{start:{line:264,column:17},end:{line:264,column:42}}],line:264}},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},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},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],"10":[0,0],"11":[0,0]},inputSourceMap:{version:3,file:"dropdown.js",sourceRoot:"",sources:["../../../../../projects/sac-common/src/controls/list/dropdown.ts"],names:[],mappings:"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",sourcesContent:["import {\r\n Directive,\r\n ElementRef,\r\n Host,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport { SacBaseSelectControl } from '../../common/baseselectcontrol';\r\nimport { Validation } from '../../validation';\r\nimport { SacFormLayoutCommon } from '../layout/formlayout';\r\n\r\n// #region Classes\r\n\r\n/**\r\n * Base Dropdown Komponente\r\n */\r\n@Directive()\r\nexport class SacDropdownCommon extends SacBaseSelectControl<any> {\r\n // #region Properties\r\n\r\n /**\r\n * compareWith-Funktion\r\n */\r\n private _compareWith: (o1: any, o2: any) => boolean = Object.is;\r\n\r\n /**\r\n * Label Text f\xFCr Empty Item\r\n */\r\n @Input() public emptylabel: string = '';\r\n /**\r\n * Option Value f\xFCr Empty Item\r\n */\r\n @Input() public emptyvalue: string = null;\r\n /**\r\n * Resource Key f\xFCr Validation Message Required bei Control\r\n */\r\n @Input() public validationmessagerequired: string =\r\n this.validationKeyService.ValidationErrorRequired;\r\n /**\r\n * Resource Key f\xFCr Validation Message Required in Validation Summary\r\n */\r\n @Input()\r\n public validationmessagesummaryrequired: string =\r\n this.validationKeyService.ValidationErrorSummaryRequired;\r\n\r\n /**\r\n * Counter vom OptionID; default Wert = 0\r\n */\r\n public _optionIdCounter: number = 0;\r\n /**\r\n * OptionMap\r\n */\r\n public _optionMap: Map<string, any> = new Map<string, any>();\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 renderer html rendering engine\r\n * @param elementRef reference to html element\r\n */\r\n constructor(\r\n @Host() formlayout: SacFormLayoutCommon,\r\n injector: Injector,\r\n private renderer: Renderer2,\r\n private elementRef: ElementRef\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 * compareWith-Funktion\r\n */\r\n @Input()\r\n public set comparewith(fn: (o1: any, o2: any) => boolean) {\r\n if (typeof fn !== 'function') {\r\n throw new Error(\r\n `compareWith must be a function, but received ${JSON.stringify(fn)}`\r\n );\r\n }\r\n this._compareWith = fn;\r\n }\r\n\r\n // #endregion Public Getters And Setters\r\n\r\n // #region Public Methods\r\n\r\n /**\r\n * Registriert das OptionID-Counter als String\r\n */\r\n public registerOption(): string {\r\n return (this._optionIdCounter++).toString();\r\n }\r\n\r\n /**\r\n * Methode die von Options aufgerufen wird, um das Mapping zwischen Dropdown Value und Value herzustellen.\r\n * @param id: Id aus Options\r\n * @param value: Value\r\n */\r\n public setOptionMap(id: string, value: any): void {\r\n this._optionMap.set(id, value);\r\n\r\n // Selected Value auf Control aktualisieren, wenn Value dem SelectedValue entspricht\r\n if (this.value === value) {\r\n this.setSelectedValue(value);\r\n }\r\n }\r\n\r\n /**\r\n * Wert einstellen\r\n * @param value - Wert\r\n */\r\n public setValue(value: string) {\r\n super.setValue(this.getOptionValue(value));\r\n }\r\n\r\n /**\r\n * Validator\r\n * @param c Control Instanz\r\n */\r\n public validateData(c: AbstractControl): ValidationErrors | null {\r\n let error: ValidationErrors | null = null;\r\n\r\n if (this.isrequired) {\r\n error = Validation.required(\r\n this.validationmessagerequired,\r\n this.validationmessagesummaryrequired\r\n )(c);\r\n }\r\n return error;\r\n }\r\n\r\n /**\r\n * Wert schreiben\r\n * @param value - Wert\r\n */\r\n public writeValue(value: any) {\r\n this.setSelectedValue(value);\r\n super.writeValue(value);\r\n }\r\n\r\n // #endregion Public Methods\r\n\r\n // #region Private Methods\r\n\r\n /**\r\n * ID extrahieren\r\n * @param valueString String bei welchem die ID Extrahiert werden soll\r\n */\r\n private extractId(valueString: string): string {\r\n return valueString.split(':')[0];\r\n }\r\n\r\n /**\r\n * Nimmt das ID vom Option\r\n * @param value\r\n */\r\n private getOptionId(value: any): string | null {\r\n for (const id of Array.from(this._optionMap.keys())) {\r\n if (this._compareWith(this._optionMap.get(id), value)) {\r\n return id;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Nimmt den String-Wert vom Option\r\n * @param valueString\r\n */\r\n private getOptionValue(valueString: string): any {\r\n const id: string = this.extractId(valueString);\r\n return this._optionMap.has(id) ? this._optionMap.get(id) : valueString;\r\n }\r\n\r\n /**\r\n * Setzt den Selected Value auf dem Control\r\n * @param value Value\r\n */\r\n private setSelectedValue(value: any): void {\r\n // Select Item aus Control lesen\r\n const selectItem: any =\r\n this.elementRef.nativeElement.getElementsByTagName('select')[0];\r\n /**\r\n * Id vom Select Item\r\n */\r\n const id: string | null = this.getOptionId(value);\r\n /**\r\n * Value String\r\n */\r\n const valueString = _buildValueString(id, value);\r\n\r\n if (selectItem !== undefined) {\r\n this.renderer.setProperty(selectItem, 'value', valueString);\r\n }\r\n }\r\n\r\n // #endregion Private Methods\r\n}\r\n\r\n/**\r\n * SacDropdownOption-Klasse\r\n */\r\n@Directive()\r\nexport class SacDropdownOptionCommon implements OnDestroy {\r\n // #region Properties\r\n\r\n /**\r\n * ID-String\r\n */\r\n private id: string = null;\r\n\r\n // #endregion Properties\r\n\r\n // #region Constructors\r\n\r\n /**\r\n * Konstruktor\r\n * @param _element Referenz auf HTML Element\r\n * @param _renderer Render Engine\r\n * @param _dropdown Dropdown Instanz\r\n */\r\n constructor(\r\n private _element: ElementRef,\r\n private _renderer: Renderer2,\r\n private _dropdown: SacDropdownCommon\r\n ) {\r\n if (this._dropdown) {\r\n this.id = this._dropdown.registerOption();\r\n }\r\n }\r\n\r\n // #endregion Constructors\r\n\r\n // #region Public Getters And Setters\r\n\r\n /**\r\n * Option ngValue\r\n */\r\n @Input()\r\n public set ngValue(value: any) {\r\n // Cancel wenn kein Parent Dropdown vorhanden\r\n if (this._dropdown == null) {\r\n return;\r\n }\r\n\r\n this._dropdown.setOptionMap(this.id, value);\r\n this._setElementValue(_buildValueString(this.id, value));\r\n\r\n this._dropdown.writeValue(this._dropdown.value);\r\n }\r\n\r\n /**\r\n * Wert-Setter\r\n */\r\n @Input()\r\n public set value(value: any) {\r\n this._setElementValue(value);\r\n }\r\n\r\n // #endregion Public Getters And Setters\r\n\r\n // #region Public Methods\r\n\r\n /**\r\n * Den Wert vom Option-Element einstellen\r\n * @param value Wert\r\n */\r\n public _setElementValue(value: string): void {\r\n this._renderer.setProperty(this._element.nativeElement, 'value', value);\r\n }\r\n\r\n /**\r\n * OnDestroy Event\r\n */\r\n public ngOnDestroy(): void {\r\n if (this._dropdown) {\r\n this._dropdown._optionMap.delete(this.id);\r\n }\r\n }\r\n\r\n // #endregion Public Methods\r\n}\r\n\r\n// #endregion Classes\r\n\r\n// #region Functions\r\n\r\n/**\r\n * Function um ein Key Value Pair f\xFCr das Dropdown zu erzeugen\r\n * @param id ID\r\n * @param value Wert der an das Element gebunden werden soll\r\n */\r\nexport function _buildValueString(id: string | null, value: any): string {\r\n // Wenn ID null ist Object zur\xFCckgeben\r\n if (id == null) {\r\n return `${value}`;\r\n }\r\n\r\n // Mapping Objekt zu String\r\n if (value && typeof value === 'object') {\r\n value = 'Object';\r\n }\r\n\r\n // String als ID\r\n return `${id}: ${value}`.slice(0, 50);\r\n}\r\n\r\n// #endregion Functions\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"b20bb1d6e2ae738b48e7db469241fb5dbcd89937"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
+ cov_10j6wgixd7=function(){return actualCoverage;};}return actualCoverage;}cov_10j6wgixd7();import{Directive,Host,Input}from'@angular/core';import{SacBaseSelectControl}from'../../common/baseselectcontrol';import{Validation}from'../../validation';import*as i0 from"@angular/core";import*as i1 from"../layout/formlayout";// #region Classes
7
3
  /**
8
4
  * Base Dropdown Komponente
9
- */
10
- class SacDropdownCommon extends SacBaseSelectControl {
11
- // #endregion Properties
12
- // #region Constructors
13
- /**
5
+ */class SacDropdownCommon extends SacBaseSelectControl{// #endregion Properties
6
+ // #region Constructors
7
+ /**
14
8
  * Constructor
15
9
  * @param formlayout SacFormLayoutCommon to define scoped layout settings
16
10
  * @param injector Injector for injecting services
17
11
  * @param renderer html rendering engine
18
12
  * @param elementRef reference to html element
19
- */
20
- constructor(formlayout, injector, renderer, elementRef) {
21
- super(formlayout, injector);
22
- this.renderer = renderer;
23
- this.elementRef = elementRef;
24
- // #region Properties
25
- /**
13
+ */constructor(formlayout,injector,renderer,elementRef){cov_10j6wgixd7().f[0]++;cov_10j6wgixd7().s[0]++;super(formlayout,injector);cov_10j6wgixd7().s[1]++;this.renderer=renderer;cov_10j6wgixd7().s[2]++;this.elementRef=elementRef;// #region Properties
14
+ /**
26
15
  * compareWith-Funktion
27
- */
28
- this._compareWith = Object.is;
29
- /**
16
+ */cov_10j6wgixd7().s[3]++;this._compareWith=Object.is;/**
30
17
  * Label Text für Empty Item
31
- */
32
- this.emptylabel = '';
33
- /**
18
+ */cov_10j6wgixd7().s[4]++;this.emptylabel='';/**
34
19
  * Option Value für Empty Item
35
- */
36
- this.emptyvalue = null;
37
- /**
20
+ */cov_10j6wgixd7().s[5]++;this.emptyvalue=null;/**
38
21
  * Resource Key für Validation Message Required bei Control
39
- */
40
- this.validationmessagerequired = 'VALIDATION_ERROR_REQUIRED';
41
- /**
22
+ */cov_10j6wgixd7().s[6]++;this.validationmessagerequired=this.validationKeyService.ValidationErrorRequired;/**
42
23
  * Resource Key für Validation Message Required in Validation Summary
43
- */
44
- this.validationmessagesummaryrequired = 'VALIDATION_ERROR_SUMMARY_REQUIRED';
45
- /**
24
+ */cov_10j6wgixd7().s[7]++;this.validationmessagesummaryrequired=this.validationKeyService.ValidationErrorSummaryRequired;/**
46
25
  * Counter vom OptionID; default Wert = 0
47
- */
48
- this._optionIdCounter = 0;
49
- /**
26
+ */cov_10j6wgixd7().s[8]++;this._optionIdCounter=0;/**
50
27
  * OptionMap
51
- */
52
- this._optionMap = new Map();
53
- }
54
- // #endregion Constructors
55
- // #region Public Getters And Setters
56
- /**
28
+ */cov_10j6wgixd7().s[9]++;this._optionMap=new Map();}// #endregion Constructors
29
+ // #region Public Getters And Setters
30
+ /**
57
31
  * compareWith-Funktion
58
- */
59
- set comparewith(fn) {
60
- if (typeof fn !== 'function') {
61
- throw new Error(`compareWith must be a function, but received ${JSON.stringify(fn)}`);
62
- }
63
- this._compareWith = fn;
64
- }
65
- // #endregion Public Getters And Setters
66
- // #region Public Methods
67
- /**
32
+ */set comparewith(fn){cov_10j6wgixd7().f[1]++;cov_10j6wgixd7().s[10]++;if(typeof fn!=='function'){cov_10j6wgixd7().b[0][0]++;cov_10j6wgixd7().s[11]++;throw new Error(`compareWith must be a function, but received ${JSON.stringify(fn)}`);}else{cov_10j6wgixd7().b[0][1]++;}cov_10j6wgixd7().s[12]++;this._compareWith=fn;}// #endregion Public Getters And Setters
33
+ // #region Public Methods
34
+ /**
68
35
  * Registriert das OptionID-Counter als String
69
- */
70
- registerOption() {
71
- return (this._optionIdCounter++).toString();
72
- }
73
- /**
36
+ */registerOption(){cov_10j6wgixd7().f[2]++;cov_10j6wgixd7().s[13]++;return(this._optionIdCounter++).toString();}/**
74
37
  * Methode die von Options aufgerufen wird, um das Mapping zwischen Dropdown Value und Value herzustellen.
75
38
  * @param id: Id aus Options
76
39
  * @param value: Value
77
- */
78
- setOptionMap(id, value) {
79
- this._optionMap.set(id, value);
80
- // Selected Value auf Control aktualisieren, wenn Value dem SelectedValue entspricht
81
- if (this.value === value) {
82
- this.setSelectedValue(value);
83
- }
84
- }
85
- /**
40
+ */setOptionMap(id,value){cov_10j6wgixd7().f[3]++;cov_10j6wgixd7().s[14]++;this._optionMap.set(id,value);// Selected Value auf Control aktualisieren, wenn Value dem SelectedValue entspricht
41
+ cov_10j6wgixd7().s[15]++;if(this.value===value){cov_10j6wgixd7().b[1][0]++;cov_10j6wgixd7().s[16]++;this.setSelectedValue(value);}else{cov_10j6wgixd7().b[1][1]++;}}/**
86
42
  * Wert einstellen
87
43
  * @param value - Wert
88
- */
89
- setValue(value) {
90
- super.setValue(this.getOptionValue(value));
91
- }
92
- /**
44
+ */setValue(value){cov_10j6wgixd7().f[4]++;cov_10j6wgixd7().s[17]++;super.setValue(this.getOptionValue(value));}/**
93
45
  * Validator
94
46
  * @param c Control Instanz
95
- */
96
- validateData(c) {
97
- let error = null;
98
- if (this.isrequired) {
99
- error = Validation.required(this.validationmessagerequired, this.validationmessagesummaryrequired)(c);
100
- }
101
- return error;
102
- }
103
- /**
47
+ */validateData(c){cov_10j6wgixd7().f[5]++;let error=(cov_10j6wgixd7().s[18]++,null);cov_10j6wgixd7().s[19]++;if(this.isrequired){cov_10j6wgixd7().b[2][0]++;cov_10j6wgixd7().s[20]++;error=Validation.required(this.validationmessagerequired,this.validationmessagesummaryrequired)(c);}else{cov_10j6wgixd7().b[2][1]++;}cov_10j6wgixd7().s[21]++;return error;}/**
104
48
  * Wert schreiben
105
49
  * @param value - Wert
106
- */
107
- writeValue(value) {
108
- this.setSelectedValue(value);
109
- super.writeValue(value);
110
- }
111
- // #endregion Public Methods
112
- // #region Private Methods
113
- /**
50
+ */writeValue(value){cov_10j6wgixd7().f[6]++;cov_10j6wgixd7().s[22]++;this.setSelectedValue(value);cov_10j6wgixd7().s[23]++;super.writeValue(value);}// #endregion Public Methods
51
+ // #region Private Methods
52
+ /**
114
53
  * ID extrahieren
115
54
  * @param valueString String bei welchem die ID Extrahiert werden soll
116
- */
117
- extractId(valueString) {
118
- return valueString.split(':')[0];
119
- }
120
- /**
55
+ */extractId(valueString){cov_10j6wgixd7().f[7]++;cov_10j6wgixd7().s[24]++;return valueString.split(':')[0];}/**
121
56
  * Nimmt das ID vom Option
122
57
  * @param value
123
- */
124
- getOptionId(value) {
125
- for (const id of Array.from(this._optionMap.keys())) {
126
- if (this._compareWith(this._optionMap.get(id), value)) {
127
- return id;
128
- }
129
- }
130
- return null;
131
- }
132
- /**
58
+ */getOptionId(value){cov_10j6wgixd7().f[8]++;cov_10j6wgixd7().s[25]++;for(const id of Array.from(this._optionMap.keys())){cov_10j6wgixd7().s[26]++;if(this._compareWith(this._optionMap.get(id),value)){cov_10j6wgixd7().b[3][0]++;cov_10j6wgixd7().s[27]++;return id;}else{cov_10j6wgixd7().b[3][1]++;}}cov_10j6wgixd7().s[28]++;return null;}/**
133
59
  * Nimmt den String-Wert vom Option
134
60
  * @param valueString
135
- */
136
- getOptionValue(valueString) {
137
- const id = this.extractId(valueString);
138
- return this._optionMap.has(id) ? this._optionMap.get(id) : valueString;
139
- }
140
- /**
61
+ */getOptionValue(valueString){cov_10j6wgixd7().f[9]++;const id=(cov_10j6wgixd7().s[29]++,this.extractId(valueString));cov_10j6wgixd7().s[30]++;return this._optionMap.has(id)?(cov_10j6wgixd7().b[4][0]++,this._optionMap.get(id)):(cov_10j6wgixd7().b[4][1]++,valueString);}/**
141
62
  * Setzt den Selected Value auf dem Control
142
63
  * @param value Value
143
- */
144
- setSelectedValue(value) {
145
- // Select Item aus Control lesen
146
- const selectItem = this.elementRef.nativeElement.getElementsByTagName('select')[0];
147
- /**
64
+ */setSelectedValue(value){cov_10j6wgixd7().f[10]++;// Select Item aus Control lesen
65
+ const selectItem=(cov_10j6wgixd7().s[31]++,this.elementRef.nativeElement.getElementsByTagName('select')[0]);/**
148
66
  * Id vom Select Item
149
- */
150
- const id = this.getOptionId(value);
151
- /**
67
+ */const id=(cov_10j6wgixd7().s[32]++,this.getOptionId(value));/**
152
68
  * Value String
153
- */
154
- const valueString = _buildValueString(id, value);
155
- if (selectItem !== undefined) {
156
- this.renderer.setProperty(selectItem, 'value', valueString);
157
- }
158
- }
159
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownCommon, deps: [{ token: i1.SacFormLayoutCommon, host: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
160
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SacDropdownCommon, inputs: { emptylabel: "emptylabel", emptyvalue: "emptyvalue", validationmessagerequired: "validationmessagerequired", validationmessagesummaryrequired: "validationmessagesummaryrequired", comparewith: "comparewith" }, usesInheritance: true, ngImport: i0 }); }
161
- }
162
- export { SacDropdownCommon };
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownCommon, decorators: [{
164
- type: Directive
165
- }], ctorParameters: function () { return [{ type: i1.SacFormLayoutCommon, decorators: [{
166
- type: Host
167
- }] }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { emptylabel: [{
168
- type: Input
169
- }], emptyvalue: [{
170
- type: Input
171
- }], validationmessagerequired: [{
172
- type: Input
173
- }], validationmessagesummaryrequired: [{
174
- type: Input
175
- }], comparewith: [{
176
- type: Input
177
- }] } });
178
- /**
69
+ */const valueString=(cov_10j6wgixd7().s[33]++,_buildValueString(id,value));cov_10j6wgixd7().s[34]++;if(selectItem!==undefined){cov_10j6wgixd7().b[5][0]++;cov_10j6wgixd7().s[35]++;this.renderer.setProperty(selectItem,'value',valueString);}else{cov_10j6wgixd7().b[5][1]++;}}static{cov_10j6wgixd7().s[36]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDropdownCommon,deps:[{token:i1.SacFormLayoutCommon,host:true},{token:i0.Injector},{token:i0.Renderer2},{token:i0.ElementRef}],target:i0.ɵɵFactoryTarget.Directive});}static{cov_10j6wgixd7().s[37]++;this.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"16.2.12",type:SacDropdownCommon,inputs:{emptylabel:"emptylabel",emptyvalue:"emptyvalue",validationmessagerequired:"validationmessagerequired",validationmessagesummaryrequired:"validationmessagesummaryrequired",comparewith:"comparewith"},usesInheritance:true,ngImport:i0});}}export{SacDropdownCommon};cov_10j6wgixd7().s[38]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDropdownCommon,decorators:[{type:Directive}],ctorParameters:function(){cov_10j6wgixd7().f[11]++;cov_10j6wgixd7().s[39]++;return[{type:i1.SacFormLayoutCommon,decorators:[{type:Host}]},{type:i0.Injector},{type:i0.Renderer2},{type:i0.ElementRef}];},propDecorators:{emptylabel:[{type:Input}],emptyvalue:[{type:Input}],validationmessagerequired:[{type:Input}],validationmessagesummaryrequired:[{type:Input}],comparewith:[{type:Input}]}});/**
179
70
  * SacDropdownOption-Klasse
180
- */
181
- class SacDropdownOptionCommon {
182
- // #endregion Properties
183
- // #region Constructors
184
- /**
71
+ */class SacDropdownOptionCommon{// #endregion Properties
72
+ // #region Constructors
73
+ /**
185
74
  * Konstruktor
186
75
  * @param _element Referenz auf HTML Element
187
76
  * @param _renderer Render Engine
188
77
  * @param _dropdown Dropdown Instanz
189
- */
190
- constructor(_element, _renderer, _dropdown) {
191
- this._element = _element;
192
- this._renderer = _renderer;
193
- this._dropdown = _dropdown;
194
- // #region Properties
195
- /**
78
+ */constructor(_element,_renderer,_dropdown){cov_10j6wgixd7().f[12]++;cov_10j6wgixd7().s[40]++;this._element=_element;cov_10j6wgixd7().s[41]++;this._renderer=_renderer;cov_10j6wgixd7().s[42]++;this._dropdown=_dropdown;// #region Properties
79
+ /**
196
80
  * ID-String
197
- */
198
- this.id = null;
199
- if (this._dropdown) {
200
- this.id = this._dropdown.registerOption();
201
- }
202
- }
203
- // #endregion Constructors
204
- // #region Public Getters And Setters
205
- /**
81
+ */cov_10j6wgixd7().s[43]++;this.id=null;cov_10j6wgixd7().s[44]++;if(this._dropdown){cov_10j6wgixd7().b[6][0]++;cov_10j6wgixd7().s[45]++;this.id=this._dropdown.registerOption();}else{cov_10j6wgixd7().b[6][1]++;}}// #endregion Constructors
82
+ // #region Public Getters And Setters
83
+ /**
206
84
  * Option ngValue
207
- */
208
- set ngValue(value) {
209
- // Cancel wenn kein Parent Dropdown vorhanden
210
- if (this._dropdown == null) {
211
- return;
212
- }
213
- this._dropdown.setOptionMap(this.id, value);
214
- this._setElementValue(_buildValueString(this.id, value));
215
- this._dropdown.writeValue(this._dropdown.value);
216
- }
217
- /**
85
+ */set ngValue(value){cov_10j6wgixd7().f[13]++;cov_10j6wgixd7().s[46]++;// Cancel wenn kein Parent Dropdown vorhanden
86
+ if(this._dropdown==null){cov_10j6wgixd7().b[7][0]++;cov_10j6wgixd7().s[47]++;return;}else{cov_10j6wgixd7().b[7][1]++;}cov_10j6wgixd7().s[48]++;this._dropdown.setOptionMap(this.id,value);cov_10j6wgixd7().s[49]++;this._setElementValue(_buildValueString(this.id,value));cov_10j6wgixd7().s[50]++;this._dropdown.writeValue(this._dropdown.value);}/**
218
87
  * Wert-Setter
219
- */
220
- set value(value) {
221
- this._setElementValue(value);
222
- }
223
- // #endregion Public Getters And Setters
224
- // #region Public Methods
225
- /**
88
+ */set value(value){cov_10j6wgixd7().f[14]++;cov_10j6wgixd7().s[51]++;this._setElementValue(value);}// #endregion Public Getters And Setters
89
+ // #region Public Methods
90
+ /**
226
91
  * Den Wert vom Option-Element einstellen
227
92
  * @param value Wert
228
- */
229
- _setElementValue(value) {
230
- this._renderer.setProperty(this._element.nativeElement, 'value', value);
231
- }
232
- /**
93
+ */_setElementValue(value){cov_10j6wgixd7().f[15]++;cov_10j6wgixd7().s[52]++;this._renderer.setProperty(this._element.nativeElement,'value',value);}/**
233
94
  * OnDestroy Event
234
- */
235
- ngOnDestroy() {
236
- if (this._dropdown) {
237
- this._dropdown._optionMap.delete(this.id);
238
- }
239
- }
240
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownOptionCommon, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SacDropdownCommon }], target: i0.ɵɵFactoryTarget.Directive }); }
241
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SacDropdownOptionCommon, inputs: { ngValue: "ngValue", value: "value" }, ngImport: i0 }); }
242
- }
243
- export { SacDropdownOptionCommon };
244
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownOptionCommon, decorators: [{
245
- type: Directive
246
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SacDropdownCommon }]; }, propDecorators: { ngValue: [{
247
- type: Input
248
- }], value: [{
249
- type: Input
250
- }] } });
251
- // #endregion Classes
95
+ */ngOnDestroy(){cov_10j6wgixd7().f[16]++;cov_10j6wgixd7().s[53]++;if(this._dropdown){cov_10j6wgixd7().b[8][0]++;cov_10j6wgixd7().s[54]++;this._dropdown._optionMap.delete(this.id);}else{cov_10j6wgixd7().b[8][1]++;}}static{cov_10j6wgixd7().s[55]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDropdownOptionCommon,deps:[{token:i0.ElementRef},{token:i0.Renderer2},{token:SacDropdownCommon}],target:i0.ɵɵFactoryTarget.Directive});}static{cov_10j6wgixd7().s[56]++;this.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"16.2.12",type:SacDropdownOptionCommon,inputs:{ngValue:"ngValue",value:"value"},ngImport:i0});}}export{SacDropdownOptionCommon};cov_10j6wgixd7().s[57]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDropdownOptionCommon,decorators:[{type:Directive}],ctorParameters:function(){cov_10j6wgixd7().f[17]++;cov_10j6wgixd7().s[58]++;return[{type:i0.ElementRef},{type:i0.Renderer2},{type:SacDropdownCommon}];},propDecorators:{ngValue:[{type:Input}],value:[{type:Input}]}});// #endregion Classes
252
96
  // #region Functions
253
97
  /**
254
98
  * Function um ein Key Value Pair für das Dropdown zu erzeugen
255
99
  * @param id ID
256
100
  * @param value Wert der an das Element gebunden werden soll
257
- */
258
- export function _buildValueString(id, value) {
259
- // Wenn ID null ist Object zurückgeben
260
- if (id == null) {
261
- return `${value}`;
262
- }
263
- // Mapping Objekt zu String
264
- if (value && typeof value === 'object') {
265
- value = 'Object';
266
- }
267
- // String als ID
268
- return `${id}: ${value}`.slice(0, 50);
269
- }
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy9saXN0L2Ryb3Bkb3duLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsSUFBSSxFQUVKLEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUc5QyxrQkFBa0I7QUFFbEI7O0dBRUc7QUFDSCxNQUNhLGlCQUFrQixTQUFRLG9CQUF5QjtJQXFDOUQsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7Ozs7O09BTUc7SUFDSCxZQUNVLFVBQStCLEVBQ3ZDLFFBQWtCLEVBQ1YsUUFBbUIsRUFDbkIsVUFBc0I7UUFFOUIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUhwQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFuRGhDLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNLLGlCQUFZLEdBQWtDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFFaEU7O1dBRUc7UUFDYSxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hDOztXQUVHO1FBQ2EsZUFBVSxHQUFXLElBQUksQ0FBQztRQUMxQzs7V0FFRztRQUNhLDhCQUF5QixHQUN2QywyQkFBMkIsQ0FBQztRQUM5Qjs7V0FFRztRQUVJLHFDQUFnQyxHQUNyQyxtQ0FBbUMsQ0FBQztRQUV0Qzs7V0FFRztRQUNJLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUNwQzs7V0FFRztRQUNJLGVBQVUsR0FBcUIsSUFBSSxHQUFHLEVBQWUsQ0FBQztJQW9CN0QsQ0FBQztJQUVELDBCQUEwQjtJQUUxQixxQ0FBcUM7SUFFckM7O09BRUc7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QUUsQ0FBQztLQUNuQjtJQUVELDJCQUEyQjtJQUMzQixJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDdEMsS0FBSyxHQUFHLFFBQVEsQ0FBQztLQUNsQjtJQUVELGdCQUFnQjtJQUNoQixPQUFPLEdBQUcsRUFBRSxLQUFLLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdCxcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgUmVuZGVyZXIyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNhY0Jhc2VTZWxlY3RDb250cm9sIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2VzZWxlY3Rjb250cm9sJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQnO1xyXG5cclxuLy8gI3JlZ2lvbiBDbGFzc2VzXHJcblxyXG4vKipcclxuICogQmFzZSBEcm9wZG93biBLb21wb25lbnRlXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY0Ryb3Bkb3duQ29tbW9uIGV4dGVuZHMgU2FjQmFzZVNlbGVjdENvbnRyb2w8YW55PiB7XHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbXBhcmVXaXRoLUZ1bmt0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfY29tcGFyZVdpdGg6IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuID0gT2JqZWN0LmlzO1xyXG5cclxuICAvKipcclxuICAgKiBMYWJlbCBUZXh0IGbDvHIgRW1wdHkgSXRlbVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBlbXB0eWxhYmVsOiBzdHJpbmcgPSAnJztcclxuICAvKipcclxuICAgKiBPcHRpb24gVmFsdWUgZsO8ciBFbXB0eSBJdGVtXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGVtcHR5dmFsdWU6IHN0cmluZyA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9XHJcbiAgICAnVkFMSURBVElPTl9FUlJPUl9SRVFVSVJFRCc7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkOiBzdHJpbmcgPVxyXG4gICAgJ1ZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9SRVFVSVJFRCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvdW50ZXIgdm9tIE9wdGlvbklEOyBkZWZhdWx0IFdlcnQgPSAwXHJcbiAgICovXHJcbiAgcHVibGljIF9vcHRpb25JZENvdW50ZXI6IG51bWJlciA9IDA7XHJcbiAgLyoqXHJcbiAgICogT3B0aW9uTWFwXHJcbiAgICovXHJcbiAgcHVibGljIF9vcHRpb25NYXA6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgKiBAcGFyYW0gcmVuZGVyZXIgaHRtbCByZW5kZXJpbmcgZW5naW5lXHJcbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgcmVmZXJlbmNlIHRvIGh0bWwgZWxlbWVudFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbXBhcmVXaXRoLUZ1bmt0aW9uXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGNvbXBhcmV3aXRoKGZuOiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbikge1xyXG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYGNvbXBhcmVXaXRoIG11c3QgYmUgYSBmdW5jdGlvbiwgYnV0IHJlY2VpdmVkICR7SlNPTi5zdHJpbmdpZnkoZm4pfWBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2NvbXBhcmVXaXRoID0gZm47XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0cmllcnQgZGFzIE9wdGlvbklELUNvdW50ZXIgYWxzIFN0cmluZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyByZWdpc3Rlck9wdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICh0aGlzLl9vcHRpb25JZENvdW50ZXIrKykudG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgZGllIHZvbiBPcHRpb25zIGF1ZmdlcnVmZW4gd2lyZCwgdW0gZGFzIE1hcHBpbmcgendpc2NoZW4gRHJvcGRvd24gVmFsdWUgdW5kIFZhbHVlIGhlcnp1c3RlbGxlbi5cclxuICAgKiBAcGFyYW0gaWQ6IElkIGF1cyBPcHRpb25zXHJcbiAgICogQHBhcmFtIHZhbHVlOiBWYWx1ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRPcHRpb25NYXAoaWQ6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb3B0aW9uTWFwLnNldChpZCwgdmFsdWUpO1xyXG5cclxuICAgIC8vIFNlbGVjdGVkIFZhbHVlIGF1ZiBDb250cm9sIGFrdHVhbGlzaWVyZW4sIHdlbm4gVmFsdWUgZGVtIFNlbGVjdGVkVmFsdWUgZW50c3ByaWNodFxyXG4gICAgaWYgKHRoaXMudmFsdWUgPT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXZXJ0IGVpbnN0ZWxsZW5cclxuICAgKiBAcGFyYW0gdmFsdWUgLSBXZXJ0XHJcbiAgICovXHJcbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHN1cGVyLnNldFZhbHVlKHRoaXMuZ2V0T3B0aW9uVmFsdWUodmFsdWUpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvclxyXG4gICAqIEBwYXJhbSBjIENvbnRyb2wgSW5zdGFuelxyXG4gICAqL1xyXG4gIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNyZXF1aXJlZCkge1xyXG4gICAgICBlcnJvciA9IFZhbGlkYXRpb24ucmVxdWlyZWQoXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWRcclxuICAgICAgKShjKTtcclxuICAgIH1cclxuICAgIHJldHVybiBlcnJvcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdlcnQgc2NocmVpYmVuXHJcbiAgICogQHBhcmFtIHZhbHVlIC0gV2VydFxyXG4gICAqL1xyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZSh2YWx1ZSk7XHJcbiAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogSUQgZXh0cmFoaWVyZW5cclxuICAgKiBAcGFyYW0gdmFsdWVTdHJpbmcgU3RyaW5nIGJlaSB3ZWxjaGVtIGRpZSBJRCBFeHRyYWhpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBleHRyYWN0SWQodmFsdWVTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdmFsdWVTdHJpbmcuc3BsaXQoJzonKVswXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5pbW10IGRhcyBJRCB2b20gT3B0aW9uXHJcbiAgICogQHBhcmFtIHZhbHVlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRPcHRpb25JZCh2YWx1ZTogYW55KTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBmb3IgKGNvbnN0IGlkIG9mIEFycmF5LmZyb20odGhpcy5fb3B0aW9uTWFwLmtleXMoKSkpIHtcclxuICAgICAgaWYgKHRoaXMuX2NvbXBhcmVXaXRoKHRoaXMuX29wdGlvbk1hcC5nZXQoaWQpLCB2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gaWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTmltbXQgZGVuIFN0cmluZy1XZXJ0IHZvbSBPcHRpb25cclxuICAgKiBAcGFyYW0gdmFsdWVTdHJpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGdldE9wdGlvblZhbHVlKHZhbHVlU3RyaW5nOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgaWQ6IHN0cmluZyA9IHRoaXMuZXh0cmFjdElkKHZhbHVlU3RyaW5nKTtcclxuICAgIHJldHVybiB0aGlzLl9vcHRpb25NYXAuaGFzKGlkKSA/IHRoaXMuX29wdGlvbk1hcC5nZXQoaWQpIDogdmFsdWVTdHJpbmc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXR6dCBkZW4gU2VsZWN0ZWQgVmFsdWUgYXVmIGRlbSBDb250cm9sXHJcbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXRTZWxlY3RlZFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIFNlbGVjdCBJdGVtIGF1cyBDb250cm9sIGxlc2VuXHJcbiAgICBjb25zdCBzZWxlY3RJdGVtOiBhbnkgPVxyXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMF07XHJcbiAgICAvKipcclxuICAgICAqIElkIHZvbSBTZWxlY3QgSXRlbVxyXG4gICAgICovXHJcbiAgICBjb25zdCBpZDogc3RyaW5nIHwgbnVsbCA9IHRoaXMuZ2V0T3B0aW9uSWQodmFsdWUpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBWYWx1ZSBTdHJpbmdcclxuICAgICAqL1xyXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSBfYnVpbGRWYWx1ZVN0cmluZyhpZCwgdmFsdWUpO1xyXG5cclxuICAgIGlmIChzZWxlY3RJdGVtICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShzZWxlY3RJdGVtLCAndmFsdWUnLCB2YWx1ZVN0cmluZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcblxyXG4vKipcclxuICogU2FjRHJvcGRvd25PcHRpb24tS2xhc3NlXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY0Ryb3Bkb3duT3B0aW9uQ29tbW9uIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogSUQtU3RyaW5nXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpZDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIF9lbGVtZW50IFJlZmVyZW56IGF1ZiBIVE1MIEVsZW1lbnRcclxuICAgKiBAcGFyYW0gX3JlbmRlcmVyIFJlbmRlciBFbmdpbmVcclxuICAgKiBAcGFyYW0gX2Ryb3Bkb3duIERyb3Bkb3duIEluc3RhbnpcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBfZHJvcGRvd246IFNhY0Ryb3Bkb3duQ29tbW9uXHJcbiAgKSB7XHJcbiAgICBpZiAodGhpcy5fZHJvcGRvd24pIHtcclxuICAgICAgdGhpcy5pZCA9IHRoaXMuX2Ryb3Bkb3duLnJlZ2lzdGVyT3B0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbiBuZ1ZhbHVlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IG5nVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgLy8gQ2FuY2VsIHdlbm4ga2VpbiBQYXJlbnQgRHJvcGRvd24gdm9yaGFuZGVuXHJcbiAgICBpZiAodGhpcy5fZHJvcGRvd24gPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fZHJvcGRvd24uc2V0T3B0aW9uTWFwKHRoaXMuaWQsIHZhbHVlKTtcclxuICAgIHRoaXMuX3NldEVsZW1lbnRWYWx1ZShfYnVpbGRWYWx1ZVN0cmluZyh0aGlzLmlkLCB2YWx1ZSkpO1xyXG5cclxuICAgIHRoaXMuX2Ryb3Bkb3duLndyaXRlVmFsdWUodGhpcy5fZHJvcGRvd24udmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2VydC1TZXR0ZXJcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fc2V0RWxlbWVudFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBEZW4gV2VydCB2b20gT3B0aW9uLUVsZW1lbnQgZWluc3RlbGxlblxyXG4gICAqIEBwYXJhbSB2YWx1ZSBXZXJ0XHJcbiAgICovXHJcbiAgcHVibGljIF9zZXRFbGVtZW50VmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbkRlc3Ryb3kgRXZlbnRcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZHJvcGRvd24pIHtcclxuICAgICAgdGhpcy5fZHJvcGRvd24uX29wdGlvbk1hcC5kZWxldGUodGhpcy5pZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcbn1cclxuXHJcbi8vICNlbmRyZWdpb24gQ2xhc3Nlc1xyXG5cclxuLy8gI3JlZ2lvbiBGdW5jdGlvbnNcclxuXHJcbi8qKlxyXG4gKiBGdW5jdGlvbiB1bSBlaW4gS2V5IFZhbHVlIFBhaXIgZsO8ciBkYXMgRHJvcGRvd24genUgZXJ6ZXVnZW5cclxuICogQHBhcmFtIGlkIElEXHJcbiAqIEBwYXJhbSB2YWx1ZSBXZXJ0IGRlciBhbiBkYXMgRWxlbWVudCBnZWJ1bmRlbiB3ZXJkZW4gc29sbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9idWlsZFZhbHVlU3RyaW5nKGlkOiBzdHJpbmcgfCBudWxsLCB2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAvLyBXZW5uIElEIG51bGwgaXN0IE9iamVjdCB6dXLDvGNrZ2ViZW5cclxuICBpZiAoaWQgPT0gbnVsbCkge1xyXG4gICAgcmV0dXJuIGAke3ZhbHVlfWA7XHJcbiAgfVxyXG5cclxuICAvLyBNYXBwaW5nIE9iamVrdCB6dSBTdHJpbmdcclxuICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xyXG4gICAgdmFsdWUgPSAnT2JqZWN0JztcclxuICB9XHJcblxyXG4gIC8vIFN0cmluZyBhbHMgSURcclxuICByZXR1cm4gYCR7aWR9OiAke3ZhbHVlfWAuc2xpY2UoMCwgNTApO1xyXG59XHJcblxyXG4vLyAjZW5kcmVnaW9uIEZ1bmN0aW9uc1xyXG4iXX0=
101
+ */export function _buildValueString(id,value){cov_10j6wgixd7().f[18]++;cov_10j6wgixd7().s[59]++;// Wenn ID null ist Object zurückgeben
102
+ if(id==null){cov_10j6wgixd7().b[9][0]++;cov_10j6wgixd7().s[60]++;return`${value}`;}else{cov_10j6wgixd7().b[9][1]++;}// Mapping Objekt zu String
103
+ cov_10j6wgixd7().s[61]++;if((cov_10j6wgixd7().b[11][0]++,value)&&(cov_10j6wgixd7().b[11][1]++,typeof value==='object')){cov_10j6wgixd7().b[10][0]++;cov_10j6wgixd7().s[62]++;value='Object';}else{cov_10j6wgixd7().b[10][1]++;}// String als ID
104
+ cov_10j6wgixd7().s[63]++;return`${id}: ${value}`.slice(0,50);}//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy9saXN0L2Ryb3Bkb3duLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsSUFBSSxFQUVKLEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUc5QyxrQkFBa0I7QUFFbEI7O0dBRUc7QUFDSCxNQUNhLGlCQUFrQixTQUFRLG9CQUF5QjtJQXFDOUQsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7Ozs7O09BTUc7SUFDSCxZQUNVLFVBQStCLEVBQ3ZDLFFBQWtCLEVBQ1YsUUFBbUIsRUFDbkIsVUFBc0I7UUFFOUIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUhwQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFuRGhDLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNLLGlCQUFZLEdBQWtDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFFaEU7O1dBRUc7UUFDYSxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hDOztXQUVHO1FBQ2EsZUFBVSxHQUFXLElBQUksQ0FBQztRQUMxQzs7V0FFRztRQUNhLDhCQUF5QixHQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUM7UUFDcEQ7O1dBRUc7UUFFSSxxQ0FBZ0MsR0FDckMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLDhCQUE4QixDQUFDO1FBRTNEOztXQUVHO1FBQ0kscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQ3BDOztXQUVHO1FBQ0ksZUFBVSxHQUFxQixJQUFJLEdBQUcsRUFBZSxDQUFDO0lBb0I3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SSxFQUFFLElBQUksSUFBSSxFQUFFO1FBQ2QsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDO0tBQ25CO0lBRUQsMkJBQTJCO0lBQzNCLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUN0QyxLQUFLLEdBQUcsUUFBUSxDQUFDO0tBQ2xCO0lBRUQsZ0JBQWdCO0lBQ2hCLE9BQU8sR0FBRyxFQUFFLEtBQUssS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0LFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBSZW5kZXJlcjIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FjQmFzZVNlbGVjdENvbnRyb2wgfSBmcm9tICcuLi8uLi9jb21tb24vYmFzZXNlbGVjdGNvbnRyb2wnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dCc7XHJcblxyXG4vLyAjcmVnaW9uIENsYXNzZXNcclxuXHJcbi8qKlxyXG4gKiBCYXNlIERyb3Bkb3duIEtvbXBvbmVudGVcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgU2FjRHJvcGRvd25Db21tb24gZXh0ZW5kcyBTYWNCYXNlU2VsZWN0Q29udHJvbDxhbnk+IHtcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogY29tcGFyZVdpdGgtRnVua3Rpb25cclxuICAgKi9cclxuICBwcml2YXRlIF9jb21wYXJlV2l0aDogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW4gPSBPYmplY3QuaXM7XHJcblxyXG4gIC8qKlxyXG4gICAqIExhYmVsIFRleHQgZsO8ciBFbXB0eSBJdGVtXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGVtcHR5bGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIC8qKlxyXG4gICAqIE9wdGlvbiBWYWx1ZSBmw7xyIEVtcHR5IEl0ZW1cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZW1wdHl2YWx1ZTogc3RyaW5nID0gbnVsbDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkOiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvdW50ZXIgdm9tIE9wdGlvbklEOyBkZWZhdWx0IFdlcnQgPSAwXHJcbiAgICovXHJcbiAgcHVibGljIF9vcHRpb25JZENvdW50ZXI6IG51bWJlciA9IDA7XHJcbiAgLyoqXHJcbiAgICogT3B0aW9uTWFwXHJcbiAgICovXHJcbiAgcHVibGljIF9vcHRpb25NYXA6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgKiBAcGFyYW0gcmVuZGVyZXIgaHRtbCByZW5kZXJpbmcgZW5naW5lXHJcbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgcmVmZXJlbmNlIHRvIGh0bWwgZWxlbWVudFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbXBhcmVXaXRoLUZ1bmt0aW9uXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGNvbXBhcmV3aXRoKGZuOiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbikge1xyXG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYGNvbXBhcmVXaXRoIG11c3QgYmUgYSBmdW5jdGlvbiwgYnV0IHJlY2VpdmVkICR7SlNPTi5zdHJpbmdpZnkoZm4pfWBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2NvbXBhcmVXaXRoID0gZm47XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0cmllcnQgZGFzIE9wdGlvbklELUNvdW50ZXIgYWxzIFN0cmluZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyByZWdpc3Rlck9wdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICh0aGlzLl9vcHRpb25JZENvdW50ZXIrKykudG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgZGllIHZvbiBPcHRpb25zIGF1ZmdlcnVmZW4gd2lyZCwgdW0gZGFzIE1hcHBpbmcgendpc2NoZW4gRHJvcGRvd24gVmFsdWUgdW5kIFZhbHVlIGhlcnp1c3RlbGxlbi5cclxuICAgKiBAcGFyYW0gaWQ6IElkIGF1cyBPcHRpb25zXHJcbiAgICogQHBhcmFtIHZhbHVlOiBWYWx1ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRPcHRpb25NYXAoaWQ6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb3B0aW9uTWFwLnNldChpZCwgdmFsdWUpO1xyXG5cclxuICAgIC8vIFNlbGVjdGVkIFZhbHVlIGF1ZiBDb250cm9sIGFrdHVhbGlzaWVyZW4sIHdlbm4gVmFsdWUgZGVtIFNlbGVjdGVkVmFsdWUgZW50c3ByaWNodFxyXG4gICAgaWYgKHRoaXMudmFsdWUgPT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXZXJ0IGVpbnN0ZWxsZW5cclxuICAgKiBAcGFyYW0gdmFsdWUgLSBXZXJ0XHJcbiAgICovXHJcbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHN1cGVyLnNldFZhbHVlKHRoaXMuZ2V0T3B0aW9uVmFsdWUodmFsdWUpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvclxyXG4gICAqIEBwYXJhbSBjIENvbnRyb2wgSW5zdGFuelxyXG4gICAqL1xyXG4gIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNyZXF1aXJlZCkge1xyXG4gICAgICBlcnJvciA9IFZhbGlkYXRpb24ucmVxdWlyZWQoXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWRcclxuICAgICAgKShjKTtcclxuICAgIH1cclxuICAgIHJldHVybiBlcnJvcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdlcnQgc2NocmVpYmVuXHJcbiAgICogQHBhcmFtIHZhbHVlIC0gV2VydFxyXG4gICAqL1xyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZSh2YWx1ZSk7XHJcbiAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogSUQgZXh0cmFoaWVyZW5cclxuICAgKiBAcGFyYW0gdmFsdWVTdHJpbmcgU3RyaW5nIGJlaSB3ZWxjaGVtIGRpZSBJRCBFeHRyYWhpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBleHRyYWN0SWQodmFsdWVTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdmFsdWVTdHJpbmcuc3BsaXQoJzonKVswXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5pbW10IGRhcyBJRCB2b20gT3B0aW9uXHJcbiAgICogQHBhcmFtIHZhbHVlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRPcHRpb25JZCh2YWx1ZTogYW55KTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBmb3IgKGNvbnN0IGlkIG9mIEFycmF5LmZyb20odGhpcy5fb3B0aW9uTWFwLmtleXMoKSkpIHtcclxuICAgICAgaWYgKHRoaXMuX2NvbXBhcmVXaXRoKHRoaXMuX29wdGlvbk1hcC5nZXQoaWQpLCB2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gaWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTmltbXQgZGVuIFN0cmluZy1XZXJ0IHZvbSBPcHRpb25cclxuICAgKiBAcGFyYW0gdmFsdWVTdHJpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGdldE9wdGlvblZhbHVlKHZhbHVlU3RyaW5nOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgaWQ6IHN0cmluZyA9IHRoaXMuZXh0cmFjdElkKHZhbHVlU3RyaW5nKTtcclxuICAgIHJldHVybiB0aGlzLl9vcHRpb25NYXAuaGFzKGlkKSA/IHRoaXMuX29wdGlvbk1hcC5nZXQoaWQpIDogdmFsdWVTdHJpbmc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXR6dCBkZW4gU2VsZWN0ZWQgVmFsdWUgYXVmIGRlbSBDb250cm9sXHJcbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXRTZWxlY3RlZFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIFNlbGVjdCBJdGVtIGF1cyBDb250cm9sIGxlc2VuXHJcbiAgICBjb25zdCBzZWxlY3RJdGVtOiBhbnkgPVxyXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMF07XHJcbiAgICAvKipcclxuICAgICAqIElkIHZvbSBTZWxlY3QgSXRlbVxyXG4gICAgICovXHJcbiAgICBjb25zdCBpZDogc3RyaW5nIHwgbnVsbCA9IHRoaXMuZ2V0T3B0aW9uSWQodmFsdWUpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBWYWx1ZSBTdHJpbmdcclxuICAgICAqL1xyXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSBfYnVpbGRWYWx1ZVN0cmluZyhpZCwgdmFsdWUpO1xyXG5cclxuICAgIGlmIChzZWxlY3RJdGVtICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShzZWxlY3RJdGVtLCAndmFsdWUnLCB2YWx1ZVN0cmluZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcblxyXG4vKipcclxuICogU2FjRHJvcGRvd25PcHRpb24tS2xhc3NlXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY0Ryb3Bkb3duT3B0aW9uQ29tbW9uIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogSUQtU3RyaW5nXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpZDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIF9lbGVtZW50IFJlZmVyZW56IGF1ZiBIVE1MIEVsZW1lbnRcclxuICAgKiBAcGFyYW0gX3JlbmRlcmVyIFJlbmRlciBFbmdpbmVcclxuICAgKiBAcGFyYW0gX2Ryb3Bkb3duIERyb3Bkb3duIEluc3RhbnpcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBfZHJvcGRvd246IFNhY0Ryb3Bkb3duQ29tbW9uXHJcbiAgKSB7XHJcbiAgICBpZiAodGhpcy5fZHJvcGRvd24pIHtcclxuICAgICAgdGhpcy5pZCA9IHRoaXMuX2Ryb3Bkb3duLnJlZ2lzdGVyT3B0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbiBuZ1ZhbHVlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IG5nVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgLy8gQ2FuY2VsIHdlbm4ga2VpbiBQYXJlbnQgRHJvcGRvd24gdm9yaGFuZGVuXHJcbiAgICBpZiAodGhpcy5fZHJvcGRvd24gPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fZHJvcGRvd24uc2V0T3B0aW9uTWFwKHRoaXMuaWQsIHZhbHVlKTtcclxuICAgIHRoaXMuX3NldEVsZW1lbnRWYWx1ZShfYnVpbGRWYWx1ZVN0cmluZyh0aGlzLmlkLCB2YWx1ZSkpO1xyXG5cclxuICAgIHRoaXMuX2Ryb3Bkb3duLndyaXRlVmFsdWUodGhpcy5fZHJvcGRvd24udmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2VydC1TZXR0ZXJcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fc2V0RWxlbWVudFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBEZW4gV2VydCB2b20gT3B0aW9uLUVsZW1lbnQgZWluc3RlbGxlblxyXG4gICAqIEBwYXJhbSB2YWx1ZSBXZXJ0XHJcbiAgICovXHJcbiAgcHVibGljIF9zZXRFbGVtZW50VmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbkRlc3Ryb3kgRXZlbnRcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZHJvcGRvd24pIHtcclxuICAgICAgdGhpcy5fZHJvcGRvd24uX29wdGlvbk1hcC5kZWxldGUodGhpcy5pZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcbn1cclxuXHJcbi8vICNlbmRyZWdpb24gQ2xhc3Nlc1xyXG5cclxuLy8gI3JlZ2lvbiBGdW5jdGlvbnNcclxuXHJcbi8qKlxyXG4gKiBGdW5jdGlvbiB1bSBlaW4gS2V5IFZhbHVlIFBhaXIgZsO8ciBkYXMgRHJvcGRvd24genUgZXJ6ZXVnZW5cclxuICogQHBhcmFtIGlkIElEXHJcbiAqIEBwYXJhbSB2YWx1ZSBXZXJ0IGRlciBhbiBkYXMgRWxlbWVudCBnZWJ1bmRlbiB3ZXJkZW4gc29sbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9idWlsZFZhbHVlU3RyaW5nKGlkOiBzdHJpbmcgfCBudWxsLCB2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAvLyBXZW5uIElEIG51bGwgaXN0IE9iamVjdCB6dXLDvGNrZ2ViZW5cclxuICBpZiAoaWQgPT0gbnVsbCkge1xyXG4gICAgcmV0dXJuIGAke3ZhbHVlfWA7XHJcbiAgfVxyXG5cclxuICAvLyBNYXBwaW5nIE9iamVrdCB6dSBTdHJpbmdcclxuICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xyXG4gICAgdmFsdWUgPSAnT2JqZWN0JztcclxuICB9XHJcblxyXG4gIC8vIFN0cmluZyBhbHMgSURcclxuICByZXR1cm4gYCR7aWR9OiAke3ZhbHVlfWAuc2xpY2UoMCwgNTApO1xyXG59XHJcblxyXG4vLyAjZW5kcmVnaW9uIEZ1bmN0aW9uc1xyXG4iXX0=
105
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEaXJlY3RpdmUiLCJIb3N0IiwiSW5wdXQiLCJTYWNCYXNlU2VsZWN0Q29udHJvbCIsIlZhbGlkYXRpb24iLCJTYWNEcm9wZG93bkNvbW1vbiIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwicmVuZGVyZXIiLCJlbGVtZW50UmVmIiwiY292XzEwajZ3Z2l4ZDciLCJmIiwicyIsIl9jb21wYXJlV2l0aCIsIk9iamVjdCIsImlzIiwiZW1wdHlsYWJlbCIsImVtcHR5dmFsdWUiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkIiwidmFsaWRhdGlvbktleVNlcnZpY2UiLCJWYWxpZGF0aW9uRXJyb3JSZXF1aXJlZCIsInZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkIiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkIiwiX29wdGlvbklkQ291bnRlciIsIl9vcHRpb25NYXAiLCJNYXAiLCJjb21wYXJld2l0aCIsImZuIiwiYiIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsInJlZ2lzdGVyT3B0aW9uIiwidG9TdHJpbmciLCJzZXRPcHRpb25NYXAiLCJpZCIsInZhbHVlIiwic2V0Iiwic2V0U2VsZWN0ZWRWYWx1ZSIsInNldFZhbHVlIiwiZ2V0T3B0aW9uVmFsdWUiLCJ2YWxpZGF0ZURhdGEiLCJjIiwiZXJyb3IiLCJpc3JlcXVpcmVkIiwicmVxdWlyZWQiLCJ3cml0ZVZhbHVlIiwiZXh0cmFjdElkIiwidmFsdWVTdHJpbmciLCJzcGxpdCIsImdldE9wdGlvbklkIiwiQXJyYXkiLCJmcm9tIiwia2V5cyIsImdldCIsImhhcyIsInNlbGVjdEl0ZW0iLCJuYXRpdmVFbGVtZW50IiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJfYnVpbGRWYWx1ZVN0cmluZyIsInVuZGVmaW5lZCIsInNldFByb3BlcnR5IiwiZGVwcyIsInRva2VuIiwiaTEiLCJTYWNGb3JtTGF5b3V0Q29tbW9uIiwiaG9zdCIsImkwIiwiSW5qZWN0b3IiLCJSZW5kZXJlcjIiLCJFbGVtZW50UmVmIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJ1c2VzSW5oZXJpdGFuY2UiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiLCJTYWNEcm9wZG93bk9wdGlvbkNvbW1vbiIsIl9lbGVtZW50IiwiX3JlbmRlcmVyIiwiX2Ryb3Bkb3duIiwibmdWYWx1ZSIsIl9zZXRFbGVtZW50VmFsdWUiLCJuZ09uRGVzdHJveSIsImRlbGV0ZSIsInNsaWNlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvY29udHJvbHMvbGlzdC9kcm9wZG93bi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIFJlbmRlcmVyMixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYWNCYXNlU2VsZWN0Q29udHJvbCB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNlc2VsZWN0Y29udHJvbCc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0JztcclxuXHJcbi8vICNyZWdpb24gQ2xhc3Nlc1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgRHJvcGRvd24gS29tcG9uZW50ZVxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBjbGFzcyBTYWNEcm9wZG93bkNvbW1vbiBleHRlbmRzIFNhY0Jhc2VTZWxlY3RDb250cm9sPGFueT4ge1xyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvKipcclxuICAgKiBjb21wYXJlV2l0aC1GdW5rdGlvblxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2NvbXBhcmVXaXRoOiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbiA9IE9iamVjdC5pcztcclxuXHJcbiAgLyoqXHJcbiAgICogTGFiZWwgVGV4dCBmw7xyIEVtcHR5IEl0ZW1cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZW1wdHlsYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgLyoqXHJcbiAgICogT3B0aW9uIFZhbHVlIGbDvHIgRW1wdHkgSXRlbVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBlbXB0eXZhbHVlOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkOiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQ6IHN0cmluZyA9XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZDtcclxuXHJcbiAgLyoqXHJcbiAgICogQ291bnRlciB2b20gT3B0aW9uSUQ7IGRlZmF1bHQgV2VydCA9IDBcclxuICAgKi9cclxuICBwdWJsaWMgX29wdGlvbklkQ291bnRlcjogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBPcHRpb25NYXBcclxuICAgKi9cclxuICBwdWJsaWMgX29wdGlvbk1hcDogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqIEBwYXJhbSByZW5kZXJlciBodG1sIHJlbmRlcmluZyBlbmdpbmVcclxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiByZWZlcmVuY2UgdG8gaHRtbCBlbGVtZW50XHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASG9zdCgpIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLyoqXHJcbiAgICogY29tcGFyZVdpdGgtRnVua3Rpb25cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY29tcGFyZXdpdGgoZm46IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuKSB7XHJcbiAgICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICBgY29tcGFyZVdpdGggbXVzdCBiZSBhIGZ1bmN0aW9uLCBidXQgcmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeShmbil9YFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fY29tcGFyZVdpdGggPSBmbjtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBSZWdpc3RyaWVydCBkYXMgT3B0aW9uSUQtQ291bnRlciBhbHMgU3RyaW5nXHJcbiAgICovXHJcbiAgcHVibGljIHJlZ2lzdGVyT3B0aW9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHRoaXMuX29wdGlvbklkQ291bnRlcisrKS50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSBkaWUgdm9uIE9wdGlvbnMgYXVmZ2VydWZlbiB3aXJkLCB1bSBkYXMgTWFwcGluZyB6d2lzY2hlbiBEcm9wZG93biBWYWx1ZSB1bmQgVmFsdWUgaGVyenVzdGVsbGVuLlxyXG4gICAqIEBwYXJhbSBpZDogSWQgYXVzIE9wdGlvbnNcclxuICAgKiBAcGFyYW0gdmFsdWU6IFZhbHVlXHJcbiAgICovXHJcbiAgcHVibGljIHNldE9wdGlvbk1hcChpZDogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vcHRpb25NYXAuc2V0KGlkLCB2YWx1ZSk7XHJcblxyXG4gICAgLy8gU2VsZWN0ZWQgVmFsdWUgYXVmIENvbnRyb2wgYWt0dWFsaXNpZXJlbiwgd2VubiBWYWx1ZSBkZW0gU2VsZWN0ZWRWYWx1ZSBlbnRzcHJpY2h0XHJcbiAgICBpZiAodGhpcy52YWx1ZSA9PT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdlcnQgZWluc3RlbGxlblxyXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFdlcnRcclxuICAgKi9cclxuICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgc3VwZXIuc2V0VmFsdWUodGhpcy5nZXRPcHRpb25WYWx1ZSh2YWx1ZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yXHJcbiAgICogQHBhcmFtIGMgQ29udHJvbCBJbnN0YW56XHJcbiAgICovXHJcbiAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZChcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZFxyXG4gICAgICApKGMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVycm9yO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2VydCBzY2hyZWliZW5cclxuICAgKiBAcGFyYW0gdmFsdWUgLSBXZXJ0XHJcbiAgICovXHJcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKHZhbHVlKTtcclxuICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBJRCBleHRyYWhpZXJlblxyXG4gICAqIEBwYXJhbSB2YWx1ZVN0cmluZyBTdHJpbmcgYmVpIHdlbGNoZW0gZGllIElEIEV4dHJhaGllcnQgd2VyZGVuIHNvbGxcclxuICAgKi9cclxuICBwcml2YXRlIGV4dHJhY3RJZCh2YWx1ZVN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB2YWx1ZVN0cmluZy5zcGxpdCgnOicpWzBdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTmltbXQgZGFzIElEIHZvbSBPcHRpb25cclxuICAgKiBAcGFyYW0gdmFsdWVcclxuICAgKi9cclxuICBwcml2YXRlIGdldE9wdGlvbklkKHZhbHVlOiBhbnkpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGZvciAoY29uc3QgaWQgb2YgQXJyYXkuZnJvbSh0aGlzLl9vcHRpb25NYXAua2V5cygpKSkge1xyXG4gICAgICBpZiAodGhpcy5fY29tcGFyZVdpdGgodGhpcy5fb3B0aW9uTWFwLmdldChpZCksIHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiBpZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOaW1tdCBkZW4gU3RyaW5nLVdlcnQgdm9tIE9wdGlvblxyXG4gICAqIEBwYXJhbSB2YWx1ZVN0cmluZ1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0T3B0aW9uVmFsdWUodmFsdWVTdHJpbmc6IHN0cmluZyk6IGFueSB7XHJcbiAgICBjb25zdCBpZDogc3RyaW5nID0gdGhpcy5leHRyYWN0SWQodmFsdWVTdHJpbmcpO1xyXG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbk1hcC5oYXMoaWQpID8gdGhpcy5fb3B0aW9uTWFwLmdldChpZCkgOiB2YWx1ZVN0cmluZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHp0IGRlbiBTZWxlY3RlZCBWYWx1ZSBhdWYgZGVtIENvbnRyb2xcclxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWVcclxuICAgKi9cclxuICBwcml2YXRlIHNldFNlbGVjdGVkVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgLy8gU2VsZWN0IEl0ZW0gYXVzIENvbnRyb2wgbGVzZW5cclxuICAgIGNvbnN0IHNlbGVjdEl0ZW06IGFueSA9XHJcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKVswXTtcclxuICAgIC8qKlxyXG4gICAgICogSWQgdm9tIFNlbGVjdCBJdGVtXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGlkOiBzdHJpbmcgfCBudWxsID0gdGhpcy5nZXRPcHRpb25JZCh2YWx1ZSk7XHJcbiAgICAvKipcclxuICAgICAqIFZhbHVlIFN0cmluZ1xyXG4gICAgICovXHJcbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IF9idWlsZFZhbHVlU3RyaW5nKGlkLCB2YWx1ZSk7XHJcblxyXG4gICAgaWYgKHNlbGVjdEl0ZW0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHNlbGVjdEl0ZW0sICd2YWx1ZScsIHZhbHVlU3RyaW5nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTYWNEcm9wZG93bk9wdGlvbi1LbGFzc2VcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgU2FjRHJvcGRvd25PcHRpb25Db21tb24gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvKipcclxuICAgKiBJRC1TdHJpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGlkOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogS29uc3RydWt0b3JcclxuICAgKiBAcGFyYW0gX2VsZW1lbnQgUmVmZXJlbnogYXVmIEhUTUwgRWxlbWVudFxyXG4gICAqIEBwYXJhbSBfcmVuZGVyZXIgUmVuZGVyIEVuZ2luZVxyXG4gICAqIEBwYXJhbSBfZHJvcGRvd24gRHJvcGRvd24gSW5zdGFuelxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIF9kcm9wZG93bjogU2FjRHJvcGRvd25Db21tb25cclxuICApIHtcclxuICAgIGlmICh0aGlzLl9kcm9wZG93bikge1xyXG4gICAgICB0aGlzLmlkID0gdGhpcy5fZHJvcGRvd24ucmVnaXN0ZXJPcHRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uIG5nVmFsdWVcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbmdWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICAvLyBDYW5jZWwgd2VubiBrZWluIFBhcmVudCBEcm9wZG93biB2b3JoYW5kZW5cclxuICAgIGlmICh0aGlzLl9kcm9wZG93biA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9kcm9wZG93bi5zZXRPcHRpb25NYXAodGhpcy5pZCwgdmFsdWUpO1xyXG4gICAgdGhpcy5fc2V0RWxlbWVudFZhbHVlKF9idWlsZFZhbHVlU3RyaW5nKHRoaXMuaWQsIHZhbHVlKSk7XHJcblxyXG4gICAgdGhpcy5fZHJvcGRvd24ud3JpdGVWYWx1ZSh0aGlzLl9kcm9wZG93bi52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXZXJ0LVNldHRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9zZXRFbGVtZW50VmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIERlbiBXZXJ0IHZvbSBPcHRpb24tRWxlbWVudCBlaW5zdGVsbGVuXHJcbiAgICogQHBhcmFtIHZhbHVlIFdlcnRcclxuICAgKi9cclxuICBwdWJsaWMgX3NldEVsZW1lbnRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uRGVzdHJveSBFdmVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9kcm9wZG93bikge1xyXG4gICAgICB0aGlzLl9kcm9wZG93bi5fb3B0aW9uTWFwLmRlbGV0ZSh0aGlzLmlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxufVxyXG5cclxuLy8gI2VuZHJlZ2lvbiBDbGFzc2VzXHJcblxyXG4vLyAjcmVnaW9uIEZ1bmN0aW9uc1xyXG5cclxuLyoqXHJcbiAqIEZ1bmN0aW9uIHVtIGVpbiBLZXkgVmFsdWUgUGFpciBmw7xyIGRhcyBEcm9wZG93biB6dSBlcnpldWdlblxyXG4gKiBAcGFyYW0gaWQgSURcclxuICogQHBhcmFtIHZhbHVlIFdlcnQgZGVyIGFuIGRhcyBFbGVtZW50IGdlYnVuZGVuIHdlcmRlbiBzb2xsXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gX2J1aWxkVmFsdWVTdHJpbmcoaWQ6IHN0cmluZyB8IG51bGwsIHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gIC8vIFdlbm4gSUQgbnVsbCBpc3QgT2JqZWN0IHp1csO8Y2tnZWJlblxyXG4gIGlmIChpZCA9PSBudWxsKSB7XHJcbiAgICByZXR1cm4gYCR7dmFsdWV9YDtcclxuICB9XHJcblxyXG4gIC8vIE1hcHBpbmcgT2JqZWt0IHp1IFN0cmluZ1xyXG4gIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICB2YWx1ZSA9ICdPYmplY3QnO1xyXG4gIH1cclxuXHJcbiAgLy8gU3RyaW5nIGFscyBJRFxyXG4gIHJldHVybiBgJHtpZH06ICR7dmFsdWV9YC5zbGljZSgwLCA1MCk7XHJcbn1cclxuXHJcbi8vICNlbmRyZWdpb24gRnVuY3Rpb25zXHJcbiJdLCJtYXBwaW5ncyI6IjsyRkFBQSxPQUNFQSxTQUFTLENBRVRDLElBQUksQ0FFSkMsS0FBSyxLQUdBLGVBQWUsQ0FFdEIsT0FBU0Msb0JBQW9CLEtBQVEsZ0NBQWdDLENBQ3JFLE9BQVNDLFVBQVUsS0FBUSxrQkFBa0IsQyx5RUFHN0M7QUFFQTs7R0FHQSxLQUNhLENBQUFDLGlCQUFrQixRQUFRLENBQUFGLG9CQUF5QixDQXFDOUQ7QUFFQTtBQUVBOzs7Ozs7T0FPQUcsWUFDVUMsVUFBK0IsQ0FDdkNDLFFBQWtCLENBQ1ZDLFFBQW1CLENBQ25CQyxVQUFzQixFQUFBQyxjQUFBLEdBQUFDLENBQUEsTUFBQUQsY0FBQSxHQUFBRSxDQUFBLE1BRTlCLEtBQUssQ0FBQ04sVUFBVSxDQUFFQyxRQUFRLENBQUMsQ0FBQ0csY0FBQSxHQUFBRSxDQUFBLE1BSHBCLEtBQUFKLFFBQVEsQ0FBUkEsUUFBUSxDQUFXRSxjQUFBLEdBQUFFLENBQUEsTUFDbkIsS0FBQUgsVUFBVSxDQUFWQSxVQUFVLENBbkRwQjtBQUVBOztXQUFBQyxjQUFBLEdBQUFFLENBQUEsTUFHUSxLQUFBQyxZQUFZLENBQWtDQyxNQUFNLENBQUNDLEVBQUUsQ0FFL0Q7O1dBQUFMLGNBQUEsR0FBQUUsQ0FBQSxNQUdnQixLQUFBSSxVQUFV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