@simpleangularcontrols/sac-common 16.0.0-rc.1 → 16.0.0-rc.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -16
- package/common/basedatetimecontrol.d.ts +116 -30
- package/common/basedatetimecontrol.d.ts.map +1 -1
- package/common/baseinputcontrol.d.ts +9 -13
- package/common/baseinputcontrol.d.ts.map +1 -1
- package/common/basemodelcontrol.d.ts +168 -85
- package/common/basemodelcontrol.d.ts.map +1 -1
- package/common/baseuploadcontrol.d.ts +136 -141
- package/common/baseuploadcontrol.d.ts.map +1 -1
- package/components/browser/browser.d.ts +11 -6
- package/components/browser/browser.d.ts.map +1 -1
- package/controls/buttons/button.d.ts +23 -22
- package/controls/buttons/button.d.ts.map +1 -1
- package/controls/checkbox/checkbox.d.ts +18 -5
- package/controls/checkbox/checkbox.d.ts.map +1 -1
- package/controls/checkbox/radiobutton.d.ts +68 -24
- package/controls/checkbox/radiobutton.d.ts.map +1 -1
- package/controls/checkbox/radiobuttons.d.ts +21 -20
- package/controls/checkbox/radiobuttons.d.ts.map +1 -1
- package/controls/confirm/confirm.button.d.ts +14 -8
- package/controls/confirm/confirm.button.d.ts.map +1 -1
- package/controls/confirm/confirm.service.d.ts +24 -19
- package/controls/confirm/confirm.service.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.d.ts +51 -44
- package/controls/contextmenu/contextmenu.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.interface.d.ts +4 -0
- package/controls/contextmenu/contextmenu.interface.d.ts.map +1 -0
- package/controls/contextmenu/contextmenuanchor.d.ts +2 -2
- package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -1
- package/controls/contextmenu/contextmenucontainer.d.ts +2 -2
- package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuitem.d.ts +6 -1
- package/controls/contextmenu/contextmenuitem.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuitembutton.d.ts +22 -21
- package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -1
- package/controls/datetime/date.d.ts +33 -36
- package/controls/datetime/date.d.ts.map +1 -1
- package/controls/datetime/datetime.d.ts +33 -37
- package/controls/datetime/datetime.d.ts.map +1 -1
- package/controls/datetime/time.d.ts +32 -36
- package/controls/datetime/time.d.ts.map +1 -1
- package/controls/dialog/dialog.d.ts +32 -44
- package/controls/dialog/dialog.d.ts.map +1 -1
- package/controls/form/form.d.ts +7 -43
- package/controls/form/form.d.ts.map +1 -1
- package/controls/grid/grid.d.ts +67 -62
- package/controls/grid/grid.d.ts.map +1 -1
- package/controls/grid/gridbutton.d.ts +14 -14
- package/controls/grid/gridbutton.d.ts.map +1 -1
- package/controls/grid/gridcolumn.d.ts +8 -8
- package/controls/grid/gridcolumn.d.ts.map +1 -1
- package/controls/grid/gridcolumnaction.d.ts +3 -3
- package/controls/grid/gridcolumnaction.d.ts.map +1 -1
- package/controls/grid/gridcolumnbase.d.ts +46 -38
- package/controls/grid/gridcolumnbase.d.ts.map +1 -1
- package/controls/grid/gridimage.d.ts +2 -2
- package/controls/grid/gridimage.d.ts.map +1 -1
- package/controls/grid/model.d.ts +51 -42
- package/controls/grid/model.d.ts.map +1 -1
- package/controls/grid/paging.d.ts +77 -76
- package/controls/grid/paging.d.ts.map +1 -1
- package/controls/input/input.d.ts +11 -11
- package/controls/input/input.d.ts.map +1 -1
- package/controls/input/inputcurrency.d.ts +6 -1
- package/controls/input/inputcurrency.d.ts.map +1 -1
- package/controls/input/inputdecimal.d.ts +21 -21
- package/controls/input/inputdecimal.d.ts.map +1 -1
- package/controls/input/inputemail.d.ts.map +1 -1
- package/controls/input/inputinteger.d.ts +21 -21
- package/controls/input/inputinteger.d.ts.map +1 -1
- package/controls/input/inputpassword.d.ts +5 -5
- package/controls/input/inputpassword.d.ts.map +1 -1
- package/controls/input/inputsearch.d.ts +14 -5
- package/controls/input/inputsearch.d.ts.map +1 -1
- package/controls/layout/formlayout.d.ts +66 -0
- package/controls/layout/formlayout.d.ts.map +1 -0
- package/controls/list/buildvaluestring.d.ts +7 -0
- package/controls/list/buildvaluestring.d.ts.map +1 -0
- package/controls/list/dropdown.d.ts +36 -80
- package/controls/list/dropdown.d.ts.map +1 -1
- package/controls/list/dropdownoptions.d.ts +42 -0
- package/controls/list/dropdownoptions.d.ts.map +1 -0
- package/controls/list/listbox.d.ts +20 -20
- package/controls/list/listbox.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinput.d.ts +36 -35
- package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinputarea.d.ts +39 -38
- package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
- package/controls/static/formcontainer.d.ts +8 -4
- package/controls/static/formcontainer.d.ts.map +1 -1
- package/controls/tinymce/tinymce.d.ts +63 -63
- package/controls/tinymce/tinymce.d.ts.map +1 -1
- package/controls/tooltip/tooltip.d.ts +76 -69
- package/controls/tooltip/tooltip.d.ts.map +1 -1
- package/controls/treeview/treeview.d.ts +89 -123
- package/controls/treeview/treeview.d.ts.map +1 -1
- package/controls/upload/dropzonemultiple.d.ts +24 -24
- package/controls/upload/dropzonemultiple.d.ts.map +1 -1
- package/controls/upload/uploadmultiple.d.ts +9 -9
- package/controls/upload/uploadmultiple.d.ts.map +1 -1
- package/controls/validation/validationsummary.d.ts +18 -13
- package/controls/validation/validationsummary.d.ts.map +1 -1
- package/enums/ButtonRoleType.d.ts +2 -0
- package/enums/ButtonRoleType.d.ts.map +1 -0
- package/enums/ControlHeight.d.ts +18 -0
- package/enums/ControlHeight.d.ts.map +1 -0
- package/esm2022/common/basedatetimecontrol.mjs +80 -164
- package/esm2022/common/baseinputcontrol.mjs +21 -80
- package/esm2022/common/baselistcontrol.mjs +11 -56
- package/esm2022/common/basemodelcontrol.mjs +134 -354
- package/esm2022/common/baseselectcontrol.mjs +6 -27
- package/esm2022/common/baseuploadcontrol.mjs +109 -433
- package/esm2022/components/browser/browser.mjs +66 -474
- package/esm2022/components/browser/models/browserfile.mjs +3 -2
- package/esm2022/components/browser/models/browserfiledeleterequest.mjs +5 -10
- package/esm2022/components/browser/models/browserfilerenamerequest.mjs +5 -10
- package/esm2022/components/browser/models/browserfileresponse.mjs +3 -2
- package/esm2022/components/browser/models/browserfilesaverequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernode.mjs +3 -2
- package/esm2022/components/browser/models/browsernodedeleterequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernodenewrequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernoderenamerequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernoderequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernoderesponse.mjs +3 -2
- package/esm2022/controls/buttons/button.mjs +32 -131
- package/esm2022/controls/checkbox/checkbox.mjs +15 -30
- package/esm2022/controls/checkbox/radiobutton.mjs +45 -102
- package/esm2022/controls/checkbox/radiobuttons.mjs +29 -106
- package/esm2022/controls/confirm/confirm.button.mjs +17 -21
- package/esm2022/controls/confirm/confirm.mjs +19 -69
- package/esm2022/controls/confirm/confirm.service.mjs +29 -74
- package/esm2022/controls/contextmenu/contextmenu.interface.mjs +3 -0
- package/esm2022/controls/contextmenu/contextmenu.mjs +43 -171
- package/esm2022/controls/contextmenu/contextmenuanchor.mjs +8 -19
- package/esm2022/controls/contextmenu/contextmenucontainer.mjs +8 -19
- package/esm2022/controls/contextmenu/contextmenuitem.mjs +7 -13
- package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +25 -93
- package/esm2022/controls/datetime/date.mjs +42 -206
- package/esm2022/controls/datetime/dateselector.mjs +65 -409
- package/esm2022/controls/datetime/datetime.mjs +43 -223
- package/esm2022/controls/datetime/time.mjs +40 -204
- package/esm2022/controls/dialog/dialog.mjs +35 -209
- package/esm2022/controls/form/form.mjs +27 -153
- package/esm2022/controls/grid/grid.mjs +48 -155
- package/esm2022/controls/grid/gridbutton.mjs +21 -59
- package/esm2022/controls/grid/gridcolumn.mjs +21 -46
- package/esm2022/controls/grid/gridcolumnaction.mjs +8 -22
- package/esm2022/controls/grid/gridcolumnbase.mjs +35 -124
- package/esm2022/controls/grid/gridimage.mjs +5 -16
- package/esm2022/controls/grid/model.mjs +49 -74
- package/esm2022/controls/grid/paging.mjs +82 -251
- package/esm2022/controls/input/input.mjs +17 -65
- package/esm2022/controls/input/inputarea.mjs +10 -53
- package/esm2022/controls/input/inputcurrency.mjs +9 -14
- package/esm2022/controls/input/inputdecimal.mjs +33 -143
- package/esm2022/controls/input/inputemail.mjs +10 -37
- package/esm2022/controls/input/inputinteger.mjs +32 -127
- package/esm2022/controls/input/inputpassword.mjs +12 -43
- package/esm2022/controls/input/inputsearch.mjs +16 -38
- package/esm2022/controls/layout/formlayout.mjs +31 -0
- package/esm2022/controls/list/buildvaluestring.mjs +10 -0
- package/esm2022/controls/list/dropdown.mjs +45 -236
- package/esm2022/controls/list/dropdownoptions.mjs +22 -0
- package/esm2022/controls/list/listbox.mjs +40 -159
- package/esm2022/controls/multilanguage/multilanguageinput.mjs +48 -215
- package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +51 -217
- package/esm2022/controls/static/formcontainer.mjs +18 -45
- package/esm2022/controls/static/staticlabel.mjs +7 -28
- package/esm2022/controls/tabs/tab.mjs +14 -68
- package/esm2022/controls/tabs/tabitem.mjs +7 -37
- package/esm2022/controls/tinymce/tinymce.mjs +62 -232
- package/esm2022/controls/tinymce/tinymcedialogsettings.mjs +5 -10
- package/esm2022/controls/tinymce/tinymcedialogsettingsmeta.mjs +4 -4
- package/esm2022/controls/tinymce/tinymceinstance.mjs +3 -2
- package/esm2022/controls/tooltip/tooltip.mjs +74 -358
- package/esm2022/controls/treeview/treeview.mjs +79 -343
- package/esm2022/controls/upload/dropzonemultiple.mjs +32 -152
- package/esm2022/controls/upload/dropzonesingle.mjs +12 -91
- package/esm2022/controls/upload/uploadmultiple.mjs +21 -111
- package/esm2022/controls/upload/uploadsingle.mjs +8 -50
- package/esm2022/controls/validation/validationsummary.mjs +23 -120
- package/esm2022/controls/wizard/wizard.mjs +20 -128
- package/esm2022/controls/wizard/wizarditem.mjs +6 -31
- package/esm2022/enums/ButtonRoleType.mjs +3 -0
- package/esm2022/enums/ControlHeight.mjs +11 -0
- package/esm2022/enums/IconType.mjs +4 -8
- package/esm2022/interfaces/ISacConfigurationService.mjs +3 -0
- package/esm2022/interfaces/ISacFileBrowserService.mjs +3 -2
- package/esm2022/interfaces/ISacIconService.mjs +3 -2
- package/esm2022/interfaces/ISacLabelSizes.mjs +3 -0
- package/esm2022/interfaces/ISacLanguageService.mjs +3 -2
- package/esm2022/interfaces/ISacLocalisationService.mjs +3 -2
- package/esm2022/interfaces/ISacValidationKeyService.mjs +3 -0
- package/esm2022/interfaces/iabstractcontrollabel.mjs +3 -2
- package/esm2022/interfaces/iconfirmcomponent.mjs +3 -2
- package/esm2022/interfaces/idatetimecontrol.mjs +3 -2
- package/esm2022/interfaces/iuploadcontrol.mjs +3 -2
- package/esm2022/interfaces/treeviewaction.interface.mjs +3 -0
- package/esm2022/models/languagemodel.mjs +5 -11
- package/esm2022/public_api.mjs +25 -94
- package/esm2022/services/index.mjs +3 -5
- package/esm2022/services/sac-configuration.service.mjs +35 -0
- package/esm2022/services/sac-filebrowser.service.mjs +15 -167
- package/esm2022/services/sac-icon.service.mjs +61 -155
- package/esm2022/services/sac-language.service.mjs +7 -45
- package/esm2022/services/sac-localisation.service.mjs +33 -428
- package/esm2022/services/sac-validationkey.service.mjs +7 -0
- package/esm2022/simpleangularcontrols-sac-common.mjs +4 -4
- package/esm2022/utilities/convertion.mjs +6 -26
- package/esm2022/utilities/datatypes.mjs +4 -6
- package/esm2022/utilities/enums.mjs +10 -15
- package/esm2022/utilities/guid.mjs +8 -0
- package/esm2022/utilities/interpolation.mjs +7 -42
- package/esm2022/utilities/popuphelper.mjs +80 -0
- package/esm2022/utilities/positioning.mjs +23 -266
- package/esm2022/validation/email.validator.mjs +3 -13
- package/esm2022/validation/equals.validator.mjs +3 -0
- package/esm2022/validation/index.mjs +3 -3
- package/esm2022/validation/invaliddate.validator.mjs +3 -14
- package/esm2022/validation/isDateValid.mjs +9 -13
- package/esm2022/validation/maxdate.validator.mjs +4 -21
- package/esm2022/validation/maxtime.validator.mjs +4 -21
- package/esm2022/validation/maxvalue.validator.mjs +3 -16
- package/esm2022/validation/mindate.validator.mjs +4 -21
- package/esm2022/validation/minfiles.validator.mjs +4 -19
- package/esm2022/validation/minlength.validator.mjs +3 -21
- package/esm2022/validation/mintime.validator.mjs +4 -21
- package/esm2022/validation/minvalue.validator.mjs +3 -16
- package/esm2022/validation/multilanguagerequired.validator.mjs +3 -22
- package/esm2022/validation/multilanguagerequiredany.validator.mjs +3 -22
- package/esm2022/validation/notequals.validator.mjs +3 -0
- package/esm2022/validation/pattern.validator.mjs +3 -16
- package/esm2022/validation/required.validator.mjs +3 -13
- package/esm2022/validation/validation.mjs +41 -106
- package/esm2022/validation/validationerrorcreator.mjs +3 -11
- package/esm2022/validation/validationerroritem.mjs +7 -19
- package/fesm2022/simpleangularcontrols-sac-common.mjs +2276 -9240
- package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/interfaces/ISacConfigurationService.d.ts +59 -0
- package/interfaces/ISacConfigurationService.d.ts.map +1 -0
- package/interfaces/ISacIconService.d.ts +26 -2
- package/interfaces/ISacIconService.d.ts.map +1 -1
- package/interfaces/ISacLabelSizes.d.ts +27 -0
- package/interfaces/ISacLabelSizes.d.ts.map +1 -0
- package/interfaces/ISacValidationKeyService.d.ts +53 -0
- package/interfaces/ISacValidationKeyService.d.ts.map +1 -0
- package/interfaces/treeviewaction.interface.d.ts +5 -0
- package/interfaces/treeviewaction.interface.d.ts.map +1 -0
- package/package.json +2 -2
- package/public_api.d.ts +32 -21
- package/public_api.d.ts.map +1 -1
- package/services/index.d.ts +6 -4
- package/services/index.d.ts.map +1 -1
- package/services/sac-configuration.service.d.ts +127 -0
- package/services/sac-configuration.service.d.ts.map +1 -0
- package/services/sac-icon.service.d.ts +49 -1
- package/services/sac-icon.service.d.ts.map +1 -1
- package/services/sac-localisation.service.d.ts +103 -97
- package/services/sac-localisation.service.d.ts.map +1 -1
- package/services/sac-validationkey.service.d.ts +59 -0
- package/services/sac-validationkey.service.d.ts.map +1 -0
- package/simpleangularcontrols-sac-common-16.0.0-rc.11.tgz +0 -0
- package/utilities/enums.d.ts +3 -1
- package/utilities/enums.d.ts.map +1 -1
- package/utilities/guid.d.ts +5 -0
- package/utilities/guid.d.ts.map +1 -0
- package/utilities/popuphelper.d.ts +84 -0
- package/utilities/popuphelper.d.ts.map +1 -0
- package/validation/equals.validator.d.ts +3 -0
- package/validation/equals.validator.d.ts.map +1 -0
- package/validation/isDateValid.d.ts.map +1 -1
- package/validation/notequals.validator.d.ts +3 -0
- package/validation/notequals.validator.d.ts.map +1 -0
- package/validation/validation.d.ts +24 -6
- package/validation/validation.d.ts.map +1 -1
- package/controls/treeview/ngtreeitemaction.d.ts +0 -44
- package/controls/treeview/ngtreeitemaction.d.ts.map +0 -1
- package/controls/treeview/treeviewchild.d.ts +0 -16
- package/controls/treeview/treeviewchild.d.ts.map +0 -1
- package/esm2022/controls/treeview/ngtreeitemaction.mjs +0 -63
- package/esm2022/controls/treeview/treeviewchild.mjs +0 -22
- package/simpleangularcontrols-sac-common-13.0.0-rc.1.tgz +0 -0
- package/simpleangularcontrols-sac-common-16.0.0-rc.1.tgz +0 -0
|
@@ -1,344 +1,80 @@
|
|
|
1
|
-
import { ContentChild, Directive, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
-
import
|
|
3
|
-
/**
|
|
1
|
+
function cov_1qqjitsvap(){var path="C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\controls\\treeview\\treeview.mjs";var hash="9f3085ef1821189d3dbee7cc18077304488c8fa2";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\\treeview\\treeview.mjs",statementMap:{"0":{start:{line:17,column:8},end:{line:17,column:36}},"1":{start:{line:22,column:8},end:{line:22,column:48}},"2":{start:{line:26,column:8},end:{line:26,column:39}},"3":{start:{line:30,column:8},end:{line:30,column:44}},"4":{start:{line:34,column:8},end:{line:34,column:38}},"5":{start:{line:38,column:8},end:{line:38,column:43}},"6":{start:{line:42,column:8},end:{line:42,column:29}},"7":{start:{line:46,column:8},end:{line:46,column:27}},"8":{start:{line:50,column:8},end:{line:50,column:33}},"9":{start:{line:54,column:8},end:{line:54,column:39}},"10":{start:{line:58,column:8},end:{line:58,column:44}},"11":{start:{line:62,column:8},end:{line:62,column:23}},"12":{start:{line:66,column:8},end:{line:66,column:38}},"13":{start:{line:70,column:8},end:{line:70,column:35}},"14":{start:{line:74,column:8},end:{line:74,column:43}},"15":{start:{line:78,column:8},end:{line:78,column:34}},"16":{start:{line:82,column:8},end:{line:82,column:32}},"17":{start:{line:86,column:8},end:{line:86,column:23}},"18":{start:{line:90,column:8},end:{line:90,column:43}},"19":{start:{line:94,column:8},end:{line:94,column:47}},"20":{start:{line:98,column:8},end:{line:98,column:91}},"21":{start:{line:102,column:8},end:{line:102,column:105}},"22":{start:{line:107,column:8},end:{line:107,column:55}},"23":{start:{line:114,column:8},end:{line:114,column:55}},"24":{start:{line:121,column:8},end:{line:121,column:54}},"25":{start:{line:128,column:8},end:{line:128,column:53}},"26":{start:{line:138,column:8},end:{line:138,column:31}},"27":{start:{line:141,column:8},end:{line:143,column:9}},"28":{start:{line:142,column:12},end:{line:142,column:22}},"29":{start:{line:144,column:23},end:{line:144,column:46}},"30":{start:{line:145,column:8},end:{line:147,column:9}},"31":{start:{line:146,column:12},end:{line:146,column:22}},"32":{start:{line:148,column:8},end:{line:148,column:24}},"33":{start:{line:151,column:8},end:{line:153,column:9}},"34":{start:{line:152,column:12},end:{line:152,column:22}},"35":{start:{line:154,column:8},end:{line:156,column:9}},"36":{start:{line:155,column:12},end:{line:155,column:24}},"37":{start:{line:157,column:20},end:{line:157,column:35}},"38":{start:{line:158,column:8},end:{line:160,column:9}},"39":{start:{line:159,column:12},end:{line:159,column:22}},"40":{start:{line:161,column:8},end:{line:161,column:21}},"41":{start:{line:164,column:8},end:{line:164,column:49}},"42":{start:{line:167,column:8},end:{line:169,column:9}},"43":{start:{line:168,column:12},end:{line:168,column:25}},"44":{start:{line:170,column:20},end:{line:170,column:48}},"45":{start:{line:171,column:8},end:{line:171,column:50}},"46":{start:{line:174,column:8},end:{line:176,column:9}},"47":{start:{line:175,column:12},end:{line:175,column:25}},"48":{start:{line:177,column:20},end:{line:177,column:42}},"49":{start:{line:178,column:8},end:{line:178,column:50}},"50":{start:{line:181,column:8},end:{line:183,column:9}},"51":{start:{line:182,column:12},end:{line:182,column:25}},"52":{start:{line:184,column:20},end:{line:184,column:45}},"53":{start:{line:185,column:8},end:{line:185,column:50}},"54":{start:{line:188,column:8},end:{line:190,column:9}},"55":{start:{line:189,column:12},end:{line:189,column:25}},"56":{start:{line:191,column:20},end:{line:191,column:43}},"57":{start:{line:192,column:8},end:{line:192,column:50}},"58":{start:{line:199,column:8},end:{line:199,column:40}},"59":{start:{line:202,column:8},end:{line:204,column:9}},"60":{start:{line:203,column:12},end:{line:203,column:43}},"61":{start:{line:205,column:8},end:{line:205,column:36}},"62":{start:{line:208,column:8},end:{line:210,column:9}},"63":{start:{line:209,column:12},end:{line:209,column:19}},"64":{start:{line:211,column:8},end:{line:214,column:9}},"65":{start:{line:212,column:12},end:{line:212,column:45}},"66":{start:{line:213,column:12},end:{line:213,column:19}},"67":{start:{line:215,column:8},end:{line:217,column:9}},"68":{start:{line:216,column:12},end:{line:216,column:19}},"69":{start:{line:218,column:8},end:{line:218,column:41}},"70":{start:{line:221,column:8},end:{line:223,column:9}},"71":{start:{line:222,column:12},end:{line:222,column:19}},"72":{start:{line:225,column:8},end:{line:225,column:75}},"73":{start:{line:225,column:40},end:{line:225,column:73}},"74":{start:{line:227,column:8},end:{line:227,column:39}},"75":{start:{line:229,column:8},end:{line:229,column:28}},"76":{start:{line:231,column:8},end:{line:231,column:37}},"77":{start:{line:232,column:8},end:{line:234,column:9}},"78":{start:{line:233,column:12},end:{line:233,column:19}},"79":{start:{line:235,column:17},end:{line:235,column:55}},"80":{start:{line:236,column:8},end:{line:236,column:31}},"81":{start:{line:239,column:20},end:{line:239,column:24}},"82":{start:{line:240,column:8},end:{line:242,column:9}},"83":{start:{line:241,column:12},end:{line:241,column:114}},"84":{start:{line:243,column:8},end:{line:243,column:21}},"85":{start:{line:248,column:8},end:{line:250,column:9}},"86":{start:{line:249,column:12},end:{line:249,column:19}},"87":{start:{line:252,column:8},end:{line:254,column:9}},"88":{start:{line:253,column:12},end:{line:253,column:19}},"89":{start:{line:255,column:20},end:{line:255,column:42}},"90":{start:{line:256,column:8},end:{line:263,column:9}},"91":{start:{line:257,column:12},end:{line:257,column:38}},"92":{start:{line:258,column:12},end:{line:258,column:43}},"93":{start:{line:261,column:12},end:{line:261,column:37}},"94":{start:{line:262,column:12},end:{line:262,column:42}},"95":{start:{line:266,column:8},end:{line:268,column:9}},"96":{start:{line:267,column:12},end:{line:267,column:19}},"97":{start:{line:269,column:8},end:{line:269,column:40}},"98":{start:{line:270,column:8},end:{line:272,column:11}},"99":{start:{line:271,column:12},end:{line:271,column:43}},"100":{start:{line:274,column:13},end:{line:274,column:249}},"101":{start:{line:275,column:13},end:{line:275,column:926}},"102":{start:{line:278,column:0},end:{line:330,column:20}},"103":{start:{line:280,column:42},end:{line:282,column:45}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:16,column:4},end:{line:16,column:5}},loc:{start:{line:16,column:38},end:{line:103,column:5}},line:16},"1":{name:"(anonymous_1)",decl:{start:{line:106,column:4},end:{line:106,column:5}},loc:{start:{line:106,column:21},end:{line:108,column:5}},line:106},"2":{name:"(anonymous_2)",decl:{start:{line:113,column:4},end:{line:113,column:5}},loc:{start:{line:113,column:30},end:{line:115,column:5}},line:113},"3":{name:"(anonymous_3)",decl:{start:{line:120,column:4},end:{line:120,column:5}},loc:{start:{line:120,column:26},end:{line:122,column:5}},line:120},"4":{name:"(anonymous_4)",decl:{start:{line:127,column:4},end:{line:127,column:5}},loc:{start:{line:127,column:25},end:{line:129,column:5}},line:127},"5":{name:"(anonymous_5)",decl:{start:{line:137,column:4},end:{line:137,column:5}},loc:{start:{line:137,column:16},end:{line:139,column:5}},line:137},"6":{name:"(anonymous_6)",decl:{start:{line:140,column:4},end:{line:140,column:5}},loc:{start:{line:140,column:22},end:{line:149,column:5}},line:140},"7":{name:"(anonymous_7)",decl:{start:{line:150,column:4},end:{line:150,column:5}},loc:{start:{line:150,column:36},end:{line:162,column:5}},line:150},"8":{name:"(anonymous_8)",decl:{start:{line:163,column:4},end:{line:163,column:5}},loc:{start:{line:163,column:22},end:{line:165,column:5}},line:163},"9":{name:"(anonymous_9)",decl:{start:{line:166,column:4},end:{line:166,column:5}},loc:{start:{line:166,column:26},end:{line:172,column:5}},line:166},"10":{name:"(anonymous_10)",decl:{start:{line:173,column:4},end:{line:173,column:5}},loc:{start:{line:173,column:26},end:{line:179,column:5}},line:173},"11":{name:"(anonymous_11)",decl:{start:{line:180,column:4},end:{line:180,column:5}},loc:{start:{line:180,column:23},end:{line:186,column:5}},line:180},"12":{name:"(anonymous_12)",decl:{start:{line:187,column:4},end:{line:187,column:5}},loc:{start:{line:187,column:26},end:{line:193,column:5}},line:187},"13":{name:"(anonymous_13)",decl:{start:{line:198,column:4},end:{line:198,column:5}},loc:{start:{line:198,column:28},end:{line:200,column:5}},line:198},"14":{name:"(anonymous_14)",decl:{start:{line:201,column:4},end:{line:201,column:5}},loc:{start:{line:201,column:24},end:{line:206,column:5}},line:201},"15":{name:"(anonymous_15)",decl:{start:{line:207,column:4},end:{line:207,column:5}},loc:{start:{line:207,column:31},end:{line:219,column:5}},line:207},"16":{name:"(anonymous_16)",decl:{start:{line:220,column:4},end:{line:220,column:5}},loc:{start:{line:220,column:27},end:{line:237,column:5}},line:220},"17":{name:"(anonymous_17)",decl:{start:{line:225,column:26},end:{line:225,column:27}},loc:{start:{line:225,column:40},end:{line:225,column:73}},line:225},"18":{name:"(anonymous_18)",decl:{start:{line:238,column:4},end:{line:238,column:5}},loc:{start:{line:238,column:20},end:{line:244,column:5}},line:238},"19":{name:"(anonymous_19)",decl:{start:{line:247,column:4},end:{line:247,column:5}},loc:{start:{line:247,column:30},end:{line:264,column:5}},line:247},"20":{name:"(anonymous_20)",decl:{start:{line:265,column:4},end:{line:265,column:5}},loc:{start:{line:265,column:29},end:{line:273,column:5}},line:265},"21":{name:"(anonymous_21)",decl:{start:{line:270,column:39},end:{line:270,column:40}},loc:{start:{line:270,column:50},end:{line:272,column:9}},line:270},"22":{name:"(anonymous_22)",decl:{start:{line:280,column:28},end:{line:280,column:29}},loc:{start:{line:280,column:40},end:{line:282,column:47}},line:280}},branchMap:{"0":{loc:{start:{line:141,column:8},end:{line:143,column:9}},type:"if",locations:[{start:{line:141,column:8},end:{line:143,column:9}},{start:{line:141,column:8},end:{line:143,column:9}}],line:141},"1":{loc:{start:{line:141,column:12},end:{line:141,column:39}},type:"binary-expr",locations:[{start:{line:141,column:12},end:{line:141,column:17}},{start:{line:141,column:21},end:{line:141,column:39}}],line:141},"2":{loc:{start:{line:145,column:8},end:{line:147,column:9}},type:"if",locations:[{start:{line:145,column:8},end:{line:147,column:9}},{start:{line:145,column:8},end:{line:147,column:9}}],line:145},"3":{loc:{start:{line:151,column:8},end:{line:153,column:9}},type:"if",locations:[{start:{line:151,column:8},end:{line:153,column:9}},{start:{line:151,column:8},end:{line:153,column:9}}],line:151},"4":{loc:{start:{line:154,column:8},end:{line:156,column:9}},type:"if",locations:[{start:{line:154,column:8},end:{line:156,column:9}},{start:{line:154,column:8},end:{line:156,column:9}}],line:154},"5":{loc:{start:{line:158,column:8},end:{line:160,column:9}},type:"if",locations:[{start:{line:158,column:8},end:{line:160,column:9}},{start:{line:158,column:8},end:{line:160,column:9}}],line:158},"6":{loc:{start:{line:167,column:8},end:{line:169,column:9}},type:"if",locations:[{start:{line:167,column:8},end:{line:169,column:9}},{start:{line:167,column:8},end:{line:169,column:9}}],line:167},"7":{loc:{start:{line:167,column:12},end:{line:167,column:44}},type:"binary-expr",locations:[{start:{line:167,column:12},end:{line:167,column:17}},{start:{line:167,column:21},end:{line:167,column:44}}],line:167},"8":{loc:{start:{line:171,column:15},end:{line:171,column:49}},type:"binary-expr",locations:[{start:{line:171,column:15},end:{line:171,column:29}},{start:{line:171,column:33},end:{line:171,column:49}}],line:171},"9":{loc:{start:{line:174,column:8},end:{line:176,column:9}},type:"if",locations:[{start:{line:174,column:8},end:{line:176,column:9}},{start:{line:174,column:8},end:{line:176,column:9}}],line:174},"10":{loc:{start:{line:174,column:12},end:{line:174,column:38}},type:"binary-expr",locations:[{start:{line:174,column:12},end:{line:174,column:17}},{start:{line:174,column:21},end:{line:174,column:38}}],line:174},"11":{loc:{start:{line:178,column:15},end:{line:178,column:49}},type:"binary-expr",locations:[{start:{line:178,column:15},end:{line:178,column:29}},{start:{line:178,column:33},end:{line:178,column:49}}],line:178},"12":{loc:{start:{line:181,column:8},end:{line:183,column:9}},type:"if",locations:[{start:{line:181,column:8},end:{line:183,column:9}},{start:{line:181,column:8},end:{line:183,column:9}}],line:181},"13":{loc:{start:{line:181,column:12},end:{line:181,column:41}},type:"binary-expr",locations:[{start:{line:181,column:12},end:{line:181,column:17}},{start:{line:181,column:21},end:{line:181,column:41}}],line:181},"14":{loc:{start:{line:185,column:15},end:{line:185,column:49}},type:"binary-expr",locations:[{start:{line:185,column:15},end:{line:185,column:29}},{start:{line:185,column:33},end:{line:185,column:49}}],line:185},"15":{loc:{start:{line:188,column:8},end:{line:190,column:9}},type:"if",locations:[{start:{line:188,column:8},end:{line:190,column:9}},{start:{line:188,column:8},end:{line:190,column:9}}],line:188},"16":{loc:{start:{line:188,column:12},end:{line:188,column:39}},type:"binary-expr",locations:[{start:{line:188,column:12},end:{line:188,column:17}},{start:{line:188,column:21},end:{line:188,column:39}}],line:188},"17":{loc:{start:{line:192,column:15},end:{line:192,column:49}},type:"binary-expr",locations:[{start:{line:192,column:15},end:{line:192,column:29}},{start:{line:192,column:33},end:{line:192,column:49}}],line:192},"18":{loc:{start:{line:202,column:8},end:{line:204,column:9}},type:"if",locations:[{start:{line:202,column:8},end:{line:204,column:9}},{start:{line:202,column:8},end:{line:204,column:9}}],line:202},"19":{loc:{start:{line:202,column:12},end:{line:202,column:68}},type:"binary-expr",locations:[{start:{line:202,column:12},end:{line:202,column:38}},{start:{line:202,column:42},end:{line:202,column:68}}],line:202},"20":{loc:{start:{line:208,column:8},end:{line:210,column:9}},type:"if",locations:[{start:{line:208,column:8},end:{line:210,column:9}},{start:{line:208,column:8},end:{line:210,column:9}}],line:208},"21":{loc:{start:{line:208,column:12},end:{line:208,column:41}},type:"binary-expr",locations:[{start:{line:208,column:12},end:{line:208,column:17}},{start:{line:208,column:21},end:{line:208,column:41}}],line:208},"22":{loc:{start:{line:211,column:8},end:{line:214,column:9}},type:"if",locations:[{start:{line:211,column:8},end:{line:214,column:9}},{start:{line:211,column:8},end:{line:214,column:9}}],line:211},"23":{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},"24":{loc:{start:{line:221,column:8},end:{line:223,column:9}},type:"if",locations:[{start:{line:221,column:8},end:{line:223,column:9}},{start:{line:221,column:8},end:{line:223,column:9}}],line:221},"25":{loc:{start:{line:221,column:12},end:{line:221,column:39}},type:"binary-expr",locations:[{start:{line:221,column:12},end:{line:221,column:17}},{start:{line:221,column:21},end:{line:221,column:39}}],line:221},"26":{loc:{start:{line:232,column:8},end:{line:234,column:9}},type:"if",locations:[{start:{line:232,column:8},end:{line:234,column:9}},{start:{line:232,column:8},end:{line:234,column:9}}],line:232},"27":{loc:{start:{line:240,column:8},end:{line:242,column:9}},type:"if",locations:[{start:{line:240,column:8},end:{line:242,column:9}},{start:{line:240,column:8},end:{line:242,column:9}}],line:240},"28":{loc:{start:{line:248,column:8},end:{line:250,column:9}},type:"if",locations:[{start:{line:248,column:8},end:{line:250,column:9}},{start:{line:248,column:8},end:{line:250,column:9}}],line:248},"29":{loc:{start:{line:248,column:12},end:{line:248,column:38}},type:"binary-expr",locations:[{start:{line:248,column:12},end:{line:248,column:17}},{start:{line:248,column:21},end:{line:248,column:38}}],line:248},"30":{loc:{start:{line:252,column:8},end:{line:254,column:9}},type:"if",locations:[{start:{line:252,column:8},end:{line:254,column:9}},{start:{line:252,column:8},end:{line:254,column:9}}],line:252},"31":{loc:{start:{line:252,column:12},end:{line:252,column:108}},type:"binary-expr",locations:[{start:{line:252,column:12},end:{line:252,column:35}},{start:{line:252,column:39},end:{line:252,column:108}}],line:252},"32":{loc:{start:{line:252,column:41},end:{line:252,column:107}},type:"binary-expr",locations:[{start:{line:252,column:41},end:{line:252,column:71}},{start:{line:252,column:75},end:{line:252,column:107}}],line:252},"33":{loc:{start:{line:256,column:8},end:{line:263,column:9}},type:"if",locations:[{start:{line:256,column:8},end:{line:263,column:9}},{start:{line:256,column:8},end:{line:263,column:9}}],line:256},"34":{loc:{start:{line:256,column:12},end:{line:256,column:46}},type:"binary-expr",locations:[{start:{line:256,column:12},end:{line:256,column:26}},{start:{line:256,column:30},end:{line:256,column:46}}],line:256},"35":{loc:{start:{line:266,column:8},end:{line:268,column:9}},type:"if",locations:[{start:{line:266,column:8},end:{line:268,column:9}},{start:{line:266,column:8},end:{line:268,column:9}}],line:266},"36":{loc:{start:{line:266,column:12},end:{line:266,column:39}},type:"binary-expr",locations:[{start:{line:266,column:12},end:{line:266,column:17}},{start:{line:266,column:21},end:{line:266,column:39}}],line:266}},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,"100":0,"101":0,"102":0,"103":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],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0]},inputSourceMap:{version:3,file:"treeview.js",sourceRoot:"",sources:["../../../../../projects/sac-common/src/controls/treeview/treeview.ts"],names:[],mappings:"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAY,KAAK,EAAE,MAAM,EAAe,MAAM,eAAe,CAAC;;;AAGpG;;GAEG;AACH,MACa,iBAAkB,SAAQ,mBAAwB;IAiJ3D,wBAAwB;IAExB,uBAAuB;IAEvB;;;OAGG;IACH,YAAoB,UAA+B,EAAE,QAAkB;QACnE,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAzJhC,qBAAqB;QAErB;;WAEG;QAEI,kBAAa,GAAiC,IAAI,YAAY,EAAkB,CAAC;QAExF;;WAEG;QAEI,iBAAY,GAAG,UAAU,CAAC;QAEjC;;WAEG;QACa,sBAAiB,GAAG,UAAU,CAAC;QAE/C;;WAEG;QAEI,gBAAW,GAAG,UAAU,CAAC;QAEhC;;WAEG;QAEI,mBAAc,GAAG,YAAY,CAAC;QAErC;;WAEG;QAEI,aAAQ,GAAkB,IAAI,CAAC;QAEtC;;WAEG;QAEI,WAAM,GAAkB,IAAI,CAAC;QAEpC;;WAEG;QAEI,cAAS,GAAG,OAAO,CAAC;QAE3B;;WAEG;QAEI,iBAAY,GAAG,UAAU,CAAC;QAEjC;;WAEG;QAEI,cAAS,GAAsB,IAAI,YAAY,EAAO,CAAC;QAE9D;;WAEG;QAEI,SAAI,GAAU,EAAE,CAAC;QAExB;;WAEG;QAEI,qBAAgB,GAAqB,KAAK,CAAC;QAElD;;WAEG;QAEI,mBAAc,GAAG,IAAI,CAAC;QAE7B;;WAEG;QAEI,aAAQ,GAAsB,IAAI,YAAY,EAAO,CAAC;QAE7D;;WAEG;QAEI,kBAAa,GAAqB,IAAI,CAAC;QAE9C;;WAEG;QAEI,eAAU,GAAY,KAAK,CAAC;QAEnC;;WAEG;QAEI,SAAI,GAAW,EAAE,CAAC;QAEzB;;WAEG;QAEI,aAAQ,GAAsB,IAAI,YAAY,EAAO,CAAC;QAE7D;;WAEG;QAEI,iBAAY,GAAsB,IAAI,YAAY,EAAO,CAAC;QAoBjE;;WAEG;QACa,8BAAyB,GAAW,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,CAAC;QAEtG;;WAEG;QAEI,qCAAgC,GAAW,IAAI,CAAC,oBAAoB,CAAC,8BAA8B,CAAC;IAY3G,CAAC;IAED,0BAA0B;IAE1B,qCAAqC;IAErC,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC;IAClD,CAAC;IAED;;;OAGG;IACH,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC;IACjD,CAAC;IAED,wCAAwC;IAExC,yBAAyB;IAEzB;;;;OAIG;IACI,KAAK,CAAC,IAAY;QACrB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEM,WAAW,CAAC,IAAS;QACxB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC7B,OAAO,EAAE,CAAC;SACb;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC1B,OAAO,EAAE,CAAC;SACb;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEM,cAAc,CAAC,IAAS,EAAE,SAAiB;QAC9C,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,CAAC;SACb;QAED,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,IAAI,CAAC;SACf;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAE5B,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,EAAE,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,WAAW,CAAC,IAAS;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7C,CAAC;IAEM,eAAe,CAAC,IAAS;QAC5B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAClC,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC;IAC9C,CAAC;IAEM,eAAe,CAAC,IAAS;QAC5B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC5B,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC;IAC9C,CAAC;IAEM,YAAY,CAAC,IAAS;QACzB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YAC/B,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC;IAC9C,CAAC;IAEM,eAAe,CAAC,IAAS;QAC5B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC7B,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,MAAsB;QACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAEM,aAAa,CAAC,IAAS;QAC1B,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;YAC1D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;SAClC;QAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEM,aAAa,CAAC,IAAS,EAAE,KAAc;QAC1C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YAC/B,OAAO;SACV;QAED,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;YACjC,OAAO;SACV;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YAC3C,OAAO;SACV;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrC,CAAC;IAEM,gBAAgB,CAAC,IAAS;QAC7B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC7B,OAAO;SACV;QAED,mCAAmC;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEnE,gCAAgC;QAChC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;QAE/B,iBAAiB;QACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEpB,wBAAwB;QACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,OAAO;SACV;QAED,IAAI,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAEM,YAAY,CAAC,CAAkB;QAClC,IAAI,KAAK,GAA4B,IAAI,CAAC;QAE1C,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC;SACzG;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,4BAA4B;IAE5B,0BAA0B;IAElB,mBAAmB,CAAC,IAAS;QACjC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC5B,OAAO;SACV;QAED,6CAA6C;QAC7C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,EAAE;YAClG,OAAO;SACV;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEnC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;SAClC;aAAM;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;SACjC;IACL,CAAC;IAEO,kBAAkB,CAAC,IAAS;QAChC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC7B,OAAO;SACV;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;QAEhC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC;+GAzXQ,iBAAiB;mGAAjB,iBAAiB;;SAAjB,iBAAiB;4FAAjB,iBAAiB;kBAD7B,SAAS;;0BA0JO,IAAI;mEAlJV,aAAa;sBADnB,MAAM;gBAOA,YAAY;sBADlB,KAAK;gBAMU,iBAAiB;sBAAhC,KAAK;gBAMC,WAAW;sBADjB,KAAK;gBAOC,cAAc;sBADpB,KAAK;gBAOC,QAAQ;sBADd,KAAK;gBAOC,MAAM;sBADZ,KAAK;gBAOC,SAAS;sBADf,KAAK;gBAOC,YAAY;sBADlB,KAAK;gBAOC,SAAS;sBADf,MAAM;gBAOA,IAAI;sBADV,KAAK;gBAOC,gBAAgB;sBADtB,KAAK;gBAOC,cAAc;sBADpB,KAAK;gBAOC,QAAQ;sBADd,MAAM;gBAOA,aAAa;sBADnB,KAAK;gBAOC,UAAU;sBADhB,KAAK;gBAOC,IAAI;sBADV,KAAK;gBAOC,QAAQ;sBADd,MAAM;gBAOA,YAAY;sBADlB,MAAM;gBAOA,gBAAgB;sBADtB,KAAK;gBAOC,cAAc;sBADpB,KAAK;gBAOC,aAAa;sBADnB,KAAK;gBAMU,yBAAyB;sBAAxC,KAAK;gBAMC,gCAAgC;sBADtC,KAAK",sourcesContent:["import { SacBaseModelControl } from '../../common/basemodelcontrol';\r\nimport { TreeviewAction } from '../../interfaces/treeviewaction.interface';\r\nimport { Validation } from '../../validation';\r\nimport { SacFormLayoutCommon } from '../layout/formlayout';\r\nimport { Directive, EventEmitter, Host, Injector, Input, Output, TemplateRef } from '@angular/core';\r\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\r\n\r\n/**\r\n * Basis Komponente f\xFCr SacTreeView\r\n */\r\n@Directive()\r\nexport class SacTreeviewCommon extends SacBaseModelControl<any> {\r\n // #region Properties\r\n\r\n /**\r\n * Event when Action is clicked on Node. An object of the type 'TreeviewAction' is returned. In the default case, 'action' in this object is always the value 'default'. The value can be changed via the 'templateaction'.\r\n */\r\n @Output()\r\n public actionclicked: EventEmitter<TreeviewAction> = new EventEmitter<TreeviewAction>();\r\n\r\n /**\r\n * Property on the data object that contains the children of the structure element. Must be an array of objects. The default value is 'children'\r\n */\r\n @Input()\r\n public attrchildren = 'children';\r\n\r\n /**\r\n * Defines the property on the 'data' object with which the actions for a node can be deactivated. A 'disabled' property is used by default.\r\n */\r\n @Input() public attrdisableaction = 'disabled';\r\n\r\n /**\r\n * Property on the 'data' object that stores the expanded state. Property must be of type boolean. Default is 'expanded'\r\n */\r\n @Input()\r\n public attrexanded = 'expanded';\r\n\r\n /**\r\n * Property for saving the HoverState on the field. If the property is not present on the node, it is automatically created and removed again. The value can usually be left at the default value unless there is a conflict with a property on the node that is required for other purposes.\r\n */\r\n @Input()\r\n public attrhoverstate = 'hoverstate';\r\n\r\n /**\r\n * Property on 'data' object, which contains the icon for the node. By default, the property is not set, which hides the icon in the node.\r\n */\r\n @Input()\r\n public attricon: string | null = null;\r\n\r\n /**\r\n * property on the 'data' object contains an ID of the node. The default is 'id'. If the property is set to NULL, the selectedId event is no longer triggered.\r\n */\r\n @Input()\r\n public attrid: string | null = 'id';\r\n\r\n /**\r\n * Property on 'data' object, which contains the label for the node. Default is 'label'\r\n */\r\n @Input()\r\n public attrlabel = 'label';\r\n\r\n /**\r\n * Property on 'data' object, which defines whether the node is selected or not. It should be ensured that only 1 node has the value for Selected set to true. Default is 'selected'.\r\n */\r\n @Input()\r\n public attrselected = 'selected';\r\n\r\n /**\r\n * Event when a node is collapsed. Returns the node element as a parameter\r\n */\r\n @Output()\r\n public collabsed: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n /**\r\n * The property contains an array of nodes. The data must already map the tree via child properties.\r\n */\r\n @Input()\r\n public data: any[] = [];\r\n\r\n /**\r\n * Activates the 'expand' and 'collabse' event even if a node has no children. This is helpful if node elements are to be reloaded at runtime.\r\n */\r\n @Input()\r\n public enableasynchload: boolean | string = false;\r\n\r\n /**\r\n * Activates Ellipsis on the node labels\r\n */\r\n @Input()\r\n public enableellipsis = true;\r\n\r\n /**\r\n * Event when a node is expanded. Returns the node element as a parameter\r\n */\r\n @Output()\r\n public expanded: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n /**\r\n * Defines whether an icon for the expanded/collapsed status should be displayed.\r\n */\r\n @Input()\r\n public expandedstate: boolean | string = true;\r\n\r\n /**\r\n * A node must be selected\r\n */\r\n @Input()\r\n public isrequired: boolean = false;\r\n\r\n /**\r\n * Name of the TreeView control\r\n */\r\n @Input()\r\n public name: string = '';\r\n\r\n /**\r\n * Event when a node is selected. Returns the id attribute as a parameter. The event is not triggered if 'attrid' is not set.\r\n */\r\n @Output()\r\n public selected: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n /**\r\n * Event when a node is selected. Returns the node element as a parameter.\r\n */\r\n @Output()\r\n public selectednode: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n /**\r\n * Defines that the action template is displayed independently of the selected state. If the value is 'true', the action template is displayed for every element.\r\n */\r\n @Input()\r\n public showactionalways;\r\n\r\n /**\r\n * Custom template for actions per node. Template parameters are: 'node'\r\n */\r\n @Input()\r\n public templateaction: TemplateRef<any>;\r\n\r\n /**\r\n * Custom template for the label area per node. Template parameters are: 'node' and 'label'\r\n */\r\n @Input()\r\n public templatelabel: TemplateRef<any>;\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()\r\n public validationmessagesummaryrequired: 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 injector Service Injector\r\n */\r\n constructor(@Host() formlayout: SacFormLayoutCommon, injector: Injector) {\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 public get iconAction(): string {\r\n return this.iconService.TreeviewNodeActionIcon;\r\n }\r\n\r\n /**\r\n * CSS icon for folders in tree there are collabsed\r\n * @returns css class with icon\r\n */\r\n public get iconFolderCollabsed(): string {\r\n return this.iconService.TreeviewNodeClosedIcon;\r\n }\r\n\r\n /**\r\n * CSS icon class for folders without subfolders\r\n * @returns css class with icon\r\n */\r\n public get iconFolderEmpty(): string {\r\n return this.iconService.TreeviewNodeEmptyIcon;\r\n }\r\n\r\n /**\r\n * CSS icon for folders in tree there are expanded\r\n * @returns css class with icon\r\n */\r\n public get iconFolderOpen(): string {\r\n return this.iconService.TreeviewNodeOpenIcon;\r\n }\r\n\r\n // #endregion Public Getters And Setters\r\n\r\n // #region Public Methods\r\n\r\n /**\r\n * Creates an array of a certain size. Is required for a For in the UI, as Angular does not support counting loops\r\n * @param size Size of the array\r\n * @returns Array\r\n */\r\n public count(size: number): Array<void> {\r\n return new Array(size);\r\n }\r\n\r\n public getChildren(node: any): any[] {\r\n if (!node || !this.attrchildren) {\r\n return [];\r\n }\r\n\r\n let children = node[this.attrchildren];\r\n\r\n if (!Array.isArray(children)) {\r\n return [];\r\n }\r\n\r\n return children;\r\n }\r\n\r\n public getStringField(node: any, fieldname: string): any {\r\n if (!node) {\r\n return '';\r\n }\r\n\r\n if (!fieldname) {\r\n return node;\r\n }\r\n\r\n let value = node[fieldname];\r\n\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n return value;\r\n }\r\n\r\n public hasChildren(node: any): boolean {\r\n return this.getChildren(node).length > 0;\r\n }\r\n\r\n public isDisabledState(node: any): boolean {\r\n if (!node || !this.attrdisableaction) {\r\n return false;\r\n }\r\n\r\n let value = node[this.attrdisableaction];\r\n return value === true || value === 'true';\r\n }\r\n\r\n public isExpandedState(node: any): boolean {\r\n if (!node || !this.attrexanded) {\r\n return false;\r\n }\r\n\r\n let value = node[this.attrexanded];\r\n return value === true || value === 'true';\r\n }\r\n\r\n public isHoverState(node: any): boolean {\r\n if (!node || !this.attrhoverstate) {\r\n return false;\r\n }\r\n\r\n let value = node[this.attrhoverstate];\r\n return value === true || value === 'true';\r\n }\r\n\r\n public isSelectedState(node: any): boolean {\r\n if (!node || !this.attrselected) {\r\n return false;\r\n }\r\n\r\n let value = node[this.attrselected];\r\n return value === true || value === 'true';\r\n }\r\n\r\n /**\r\n * Method is called by clicking an action\r\n * @param action action and node\r\n */\r\n public onActionClicked(action: TreeviewAction) {\r\n this.actionclicked.emit(action);\r\n }\r\n\r\n public onNodeClicked(node: any): void {\r\n if (this.isDisabledState(node) || this.isSelectedState(node)) {\r\n this.invertExpandedState(node);\r\n }\r\n\r\n this.setSelectedState(node);\r\n }\r\n\r\n public setHoverState(node: any, state: boolean) {\r\n if (!node || !this.attrhoverstate) {\r\n return;\r\n }\r\n\r\n if (state) {\r\n node[this.attrhoverstate] = true;\r\n return;\r\n }\r\n\r\n if (!node.hasOwnProperty(this.attrhoverstate)) {\r\n return;\r\n }\r\n\r\n delete node[this.attrhoverstate];\r\n }\r\n\r\n public setSelectedState(node: any) {\r\n if (!node || !this.attrselected) {\r\n return;\r\n }\r\n\r\n // reset selected state of any node\r\n this.data.forEach((rootNode) => this.resetSelectedState(rootNode));\r\n\r\n // set selected node as selected\r\n node[this.attrselected] = true;\r\n\r\n // Update ngModel\r\n this.setValue(node);\r\n\r\n // Raise Selected Events\r\n this.selectednode.emit(node);\r\n\r\n if (!this.attrid) {\r\n return;\r\n }\r\n\r\n let id = this.getStringField(node, this.attrid);\r\n this.selected.emit(id);\r\n }\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(this.validationmessagerequired, this.validationmessagesummaryrequired)(c);\r\n }\r\n\r\n return error;\r\n }\r\n\r\n // #endregion Public Methods\r\n\r\n // #region Private Methods\r\n\r\n private invertExpandedState(node: any) {\r\n if (!node || !this.attrexanded) {\r\n return;\r\n }\r\n\r\n // Items with no children cannot be collabsed\r\n if (!this.hasChildren(node) && !(this.enableasynchload === true || this.enableasynchload === 'true')) {\r\n return;\r\n }\r\n\r\n let value = node[this.attrexanded];\r\n\r\n if (value === true || value === 'true') {\r\n this.collabsed.emit(node);\r\n node[this.attrexanded] = false;\r\n } else {\r\n this.expanded.emit(node);\r\n node[this.attrexanded] = true;\r\n }\r\n }\r\n\r\n private resetSelectedState(node: any) {\r\n if (!node || !this.attrselected) {\r\n return;\r\n }\r\n\r\n node[this.attrselected] = false;\r\n\r\n this.getChildren(node).forEach((child) => {\r\n this.resetSelectedState(child);\r\n });\r\n }\r\n\r\n // #endregion Private Methods\r\n}\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"9f3085ef1821189d3dbee7cc18077304488c8fa2"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
+
cov_1qqjitsvap=function(){return actualCoverage;};}return actualCoverage;}cov_1qqjitsvap();import{SacBaseModelControl}from'../../common/basemodelcontrol';import{Validation}from'../../validation';import{Directive,EventEmitter,Host,Input,Output}from'@angular/core';import*as i0 from"@angular/core";import*as i1 from"../layout/formlayout";/**
|
|
4
3
|
* Basis Komponente für SacTreeView
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
* is
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
*
|
|
39
|
-
*/
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
*
|
|
43
|
-
*/
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
*
|
|
47
|
-
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
*
|
|
51
|
-
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
*
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
if (this._collapseAll !== undefined) {
|
|
81
|
-
this.collapseAllNode(this._collapseAll);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Die Directive erhält die actions für das TreeView
|
|
86
|
-
*/
|
|
87
|
-
set treeviewTemplate(v) {
|
|
88
|
-
this.template = v;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Getter für das TreeView Template
|
|
92
|
-
*/
|
|
93
|
-
get treeviewTemplate() {
|
|
94
|
-
return this.template;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Setter property. Deffiniert das FileIcon für das TreeView
|
|
98
|
-
*/
|
|
99
|
-
set treefileicon(v) {
|
|
100
|
-
this.fileicontemplate = v;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Getter property. Ergibt das FileIcon für das TreeView
|
|
104
|
-
*/
|
|
105
|
-
get treefileicon() {
|
|
106
|
-
return this.fileicontemplate;
|
|
107
|
-
}
|
|
108
|
-
// @Input("titleAction") _titleAction: string
|
|
109
|
-
/**
|
|
110
|
-
* Collapse or expand all parent nodes.
|
|
111
|
-
*/
|
|
112
|
-
set collapseall(value) {
|
|
113
|
-
this._collapseAll = value;
|
|
114
|
-
if (this.nodes && this.nodes.length && this.nodes.length > 0) {
|
|
115
|
-
this.collapseAllNode(this._collapseAll);
|
|
116
|
-
}
|
|
117
|
-
// this._recursiveEdit(
|
|
118
|
-
// this.nodes, this.childrenAttr, this.collapseAttr, this._collapseAll);
|
|
119
|
-
// this.cd.detectChanges();
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Getter für das collapse property. Ergibt boolean Wert, ob die Items collapsed/expand sind.
|
|
123
|
-
*/
|
|
124
|
-
get collapseall() {
|
|
125
|
-
return this._collapseAll;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Select or deselect all nodes.
|
|
129
|
-
*/
|
|
130
|
-
set selectall(value) {
|
|
131
|
-
this._selectAll = value;
|
|
132
|
-
this._recursiveEdit(this.nodes, this.childrenAttr, this.selectAttr, value);
|
|
133
|
-
this._recursiveEdit(this.nodes, this.childrenAttr, this.inDeterminateAttr, false);
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Input property - setter. Deffiniert das ID des selektierten Item(node)
|
|
137
|
-
*/
|
|
138
|
-
set selectedid(v) {
|
|
139
|
-
this.selectedNode = this.findNode(this.nodes, v, this.idAttr);
|
|
140
|
-
// if (this.selectedNode) {
|
|
141
|
-
// this.selectedIdEmitter.emit(this.selectedNode[this.idAttr]);
|
|
142
|
-
// this.selectedTextEmitter.emit(this.selectedNode[this.textAttr]);
|
|
143
|
-
// }
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Getter. Ergibt das ID des selektierten Item(node)
|
|
147
|
-
*/
|
|
148
|
-
get selectedId() {
|
|
149
|
-
return this.selectedNode ? this.selectedNode[this.idAttr] : null;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Setter für das selektierte Wert(node). Wenn aufgerufen das ID und TextAttr des selected Node wird emitted
|
|
153
|
-
*/
|
|
154
|
-
set selectedNode(v) {
|
|
155
|
-
this._selectedNode = v;
|
|
156
|
-
if (this._selectedNode) {
|
|
157
|
-
this.selectedidchange.emit(this.selectedId);
|
|
158
|
-
this.selectedtextchanged.emit(v[this.textAttr]);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Getter für das selektierte Wert(node). Ergibt das selektierte Wert(node).
|
|
163
|
-
*/
|
|
164
|
-
get selectedNode() {
|
|
165
|
-
return this._selectedNode;
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* A lifecycle hook that is called after Angular has initialized all data-bound properties of a directive.
|
|
169
|
-
* Define an ngOnInit() method to handle any additional initialization tasks.
|
|
170
|
-
*/
|
|
171
|
-
ngOnInit() {
|
|
172
|
-
this.collapseAllNode(this._collapseAll);
|
|
173
|
-
if (this.selectedId)
|
|
174
|
-
this.openSelectedNode(this.nodes);
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Funktion setzt alle parent items recusiv zum selected node
|
|
178
|
-
* auf collapsed = false
|
|
179
|
-
*/
|
|
180
|
-
openSelectedNode(data) {
|
|
181
|
-
let result = false;
|
|
182
|
-
for (let i = 0; i < data.length; i++) {
|
|
183
|
-
if (data[i][this.childrenAttr].length &&
|
|
184
|
-
data[i][this.idAttr] != this.selectedId)
|
|
185
|
-
result = this.openSelectedNode(data[i][this.childrenAttr]);
|
|
186
|
-
if (result || data[i][this.idAttr] == this.selectedId) {
|
|
187
|
-
data[i][this.collapseAttr] = false;
|
|
188
|
-
return true;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
return false;
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Die Methode vorbereitet die Daten für das TreeView. Die Funktion sollte geändert werden abhängig von dem kommenden Daten (wenn array)
|
|
195
|
-
*/
|
|
196
|
-
LoadTree() {
|
|
197
|
-
//if the tree structure require array the function below should be changed
|
|
198
|
-
const cloned = this._data.map((x) => Object.assign({}, x));
|
|
199
|
-
// If data is flat, prepare data with recursive function.
|
|
200
|
-
this.nodes = this.prepareData ? this._getPreparedData(cloned) : this._data;
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Die Methode collapse/expand den selectierten Node
|
|
204
|
-
*/
|
|
205
|
-
onCollapseClick(node) {
|
|
206
|
-
if (node[this.childrenAttr].length) {
|
|
207
|
-
node[this.collapseAttr] = !node[this.collapseAttr];
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Die Methode set den selektierten Node und emit es.
|
|
212
|
-
*/
|
|
213
|
-
onClick(node) {
|
|
214
|
-
this.selectedNode = node;
|
|
215
|
-
this.selecteditem.emit(this.selectedNode);
|
|
216
|
-
// this.cd.detectChanges();
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Die Methode wird ein event mit Meldung zu Parent emit-en.
|
|
220
|
-
*/
|
|
221
|
-
sendMsgToParent(msg) {
|
|
222
|
-
this.selecteditem.emit(msg);
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Die Methode wird alle Nodes collapse
|
|
226
|
-
*/
|
|
227
|
-
collapseAllNode(command) {
|
|
228
|
-
this.nodes.forEach((node) => {
|
|
229
|
-
if (node[this.childrenAttr].length) {
|
|
230
|
-
collapseAllHIdden(node, this.collapseAttr, command, this.childrenAttr);
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
|
-
function collapseAllHIdden(node, collapseAttr, command, childrenAttr) {
|
|
234
|
-
node[collapseAttr] = command;
|
|
235
|
-
node.children.forEach((child) => {
|
|
236
|
-
if (child[childrenAttr].length) {
|
|
237
|
-
collapseAllHIdden(child, collapseAttr, command, childrenAttr);
|
|
238
|
-
}
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Funktion gibt node aus der liste zurück, welches das Value auf dem gewünschten Attribut hat
|
|
244
|
-
* Wenn node nicht gefunden wird, wird null zurück gegeben
|
|
245
|
-
* @param data Liste der nodes
|
|
246
|
-
* @param searchValue Das gesuchte value
|
|
247
|
-
* @param attr Der namen des Attributs auf dem das value gesucht wird
|
|
248
|
-
*/
|
|
249
|
-
findNode(data, searchValue, attr) {
|
|
250
|
-
let result = null;
|
|
251
|
-
for (let i = 0; i < data.length; i++) {
|
|
252
|
-
if (data[i][attr] == searchValue)
|
|
253
|
-
result = data[i];
|
|
254
|
-
else {
|
|
255
|
-
if (data[i][this.childrenAttr].length) {
|
|
256
|
-
let recursiveResult = this.findNode(data[i][this.childrenAttr], searchValue, attr);
|
|
257
|
-
if (recursiveResult)
|
|
258
|
-
result = recursiveResult;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
return result;
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Die Methode editiert (recursive) alle eingegebene Nodes abhängig von gegebenen Attibute und Value Kriterien.
|
|
266
|
-
*/
|
|
267
|
-
_recursiveEdit(list, childrenAttr, attr, value) {
|
|
268
|
-
if (Array.isArray(list)) {
|
|
269
|
-
for (let i = 0, len = list.length; i < len; i++) {
|
|
270
|
-
list[i][attr] = value;
|
|
271
|
-
if (list[i][childrenAttr].length) {
|
|
272
|
-
this._recursiveEdit(list[i][childrenAttr], childrenAttr, attr, value);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Die Methode erstellt eine standarte Sicht-Liste von Nodes
|
|
279
|
-
*/
|
|
280
|
-
_getPreparedData(list) {
|
|
281
|
-
const tree = [], lookup = {};
|
|
282
|
-
for (let i = 0, len = list.length; i < len; i++) {
|
|
283
|
-
lookup[list[i][this.idAttr]] = list[i];
|
|
284
|
-
list[i][this.childrenAttr] = [];
|
|
285
|
-
list[i][this.collapseAttr] = true;
|
|
286
|
-
list[i][this.selectAttr] = false;
|
|
287
|
-
list[i][this.inDeterminateAttr] = false;
|
|
288
|
-
}
|
|
289
|
-
for (let i = 0, len = list.length; i < len; i++) {
|
|
290
|
-
if (list[i][this.parentAttr]) {
|
|
291
|
-
lookup[list[i][this.parentAttr]][this.childrenAttr].push(list[i]);
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
tree.push(list[i]);
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
return tree;
|
|
298
|
-
}
|
|
299
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacTreeViewCommon, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
300
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SacTreeViewCommon, inputs: { data: "data", template: "template", fileicontemplate: "fileicontemplate", name: "name", prepareData: "prepareData", textAttr: "textAttr", idAttr: "idAttr", parentAttr: "parentAttr", childrenAttr: "childrenAttr", title: "title", collapseall: "collapseall", selectall: "selectall", selectedid: "selectedid" }, outputs: { selectedidchange: "selectedidchange", selectedtextchanged: "selectedtextchanged", selecteditem: "selecteditem" }, queries: [{ propertyName: "treeviewTemplate", first: true, predicate: ["actions"], descendants: true, static: true }, { propertyName: "treefileicon", first: true, predicate: ["treefileicon"], descendants: true, static: true }], ngImport: i0 }); }
|
|
301
|
-
}
|
|
302
|
-
export { SacTreeViewCommon };
|
|
303
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacTreeViewCommon, decorators: [{
|
|
304
|
-
type: Directive
|
|
305
|
-
}], propDecorators: { data: [{
|
|
306
|
-
type: Input
|
|
307
|
-
}], template: [{
|
|
308
|
-
type: Input
|
|
309
|
-
}], treeviewTemplate: [{
|
|
310
|
-
type: ContentChild,
|
|
311
|
-
args: ['actions', { static: true }]
|
|
312
|
-
}], fileicontemplate: [{
|
|
313
|
-
type: Input
|
|
314
|
-
}], treefileicon: [{
|
|
315
|
-
type: ContentChild,
|
|
316
|
-
args: ['treefileicon', { static: true }]
|
|
317
|
-
}], name: [{
|
|
318
|
-
type: Input
|
|
319
|
-
}], prepareData: [{
|
|
320
|
-
type: Input
|
|
321
|
-
}], textAttr: [{
|
|
322
|
-
type: Input
|
|
323
|
-
}], idAttr: [{
|
|
324
|
-
type: Input
|
|
325
|
-
}], parentAttr: [{
|
|
326
|
-
type: Input
|
|
327
|
-
}], childrenAttr: [{
|
|
328
|
-
type: Input
|
|
329
|
-
}], title: [{
|
|
330
|
-
type: Input
|
|
331
|
-
}], collapseall: [{
|
|
332
|
-
type: Input
|
|
333
|
-
}], selectall: [{
|
|
334
|
-
type: Input
|
|
335
|
-
}], selectedid: [{
|
|
336
|
-
type: Input
|
|
337
|
-
}], selectedidchange: [{
|
|
338
|
-
type: Output
|
|
339
|
-
}], selectedtextchanged: [{
|
|
340
|
-
type: Output
|
|
341
|
-
}], selecteditem: [{
|
|
342
|
-
type: Output
|
|
343
|
-
}] } });
|
|
344
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy90cmVldmlldy90cmVldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQzs7QUFFdkI7O0dBRUc7QUFDSCxNQUNhLGlCQUFpQjtJQUQ5QjtRQVlFOztXQUVHO1FBQ0ksVUFBSyxHQUFVLEVBQUUsQ0FBQztRQUV6Qjs7V0FFRztRQUNJLGlCQUFZLEdBQUcsYUFBYSxDQUFDO1FBRXBDOztXQUVHO1FBQ0ksZUFBVSxHQUFHLFlBQVksQ0FBQztRQUVqQzs7V0FFRztRQUNJLHNCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBRTdDOztXQUVHO1FBQ0ssVUFBSyxHQUFVLEVBQUUsQ0FBQztRQW9FMUI7O1dBRUc7UUFFSCxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCOzs7V0FHRztRQUNNLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRTdCOztXQUVHO1FBQ00sYUFBUSxHQUFHLE1BQU0sQ0FBQztRQUUzQjs7V0FFRztRQUNNLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFFdkI7O1dBRUc7UUFDTSxlQUFVLEdBQUcsV0FBVyxDQUFDO1FBRWxDOztXQUVHO1FBQ00saUJBQVksR0FBRyxVQUFVLENBQUM7UUEyRm5DOztXQUVHO1FBRUgscUJBQWdCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFOUQ7O1dBRUc7UUFFSCx3QkFBbUIsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV2RTs7V0FFRztRQUVILGlCQUFZLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7S0FxSmpFO0lBaFdDOztPQUVHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFD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QWxCLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBUUYsV0FBVztzQkFEZCxLQUFLO2dCQXdCRixTQUFTO3NCQURaLEtBQUs7Z0JBZ0JGLFVBQVU7c0JBRGIsS0FBSztnQkE2Q04sZ0JBQWdCO3NCQURmLE1BQU07Z0JBT1AsbUJBQW1CO3NCQURsQixNQUFNO2dCQU9QLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29udGVudENoaWxkLFxyXG4gIERpcmVjdGl2ZSxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBUZW1wbGF0ZVJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBCYXNpcyBLb21wb25lbnRlIGbDvHIgU2FjVHJlZVZpZXdcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgU2FjVHJlZVZpZXdDb21tb24gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBib29sZWFuIFdlcnQgdW5kIGRlZmZpbmllcnQsIG9iIGFsbGUgSXRlbXMgY29sbGFwc2VkIHNpbmQuIERlZmF1bHQgdmFsdWU6IHVuZGVmaW5lZC9udWxsXHJcbiAgICovXHJcbiAgcHVibGljIF9jb2xsYXBzZUFsbDogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGFzIFByb3BlcnR5IGVudGhpZWx0IGJvb2xlYW4gV2VydCB1bmQgZGVmZmluaWVydCwgb2IgYWxsZSBJdGVtcyBzZWxlY3RlZCBzaW5kLiBEZWZhdWx0IHZhbHVlOiB1bmRlZmluZWQvbnVsbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3NlbGVjdEFsbDogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGFzIFByb3BlcnR5IGVudGhpZWx0IGFycmF5IG9mIG5vZGVzLiBEZWZhdWx0IHZhbHVlOiBlbXB0eSBhcnJheSBbXS5cclxuICAgKi9cclxuICBwdWJsaWMgbm9kZXM6IGFueVtdID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBub2RlIGF0dHJpYnV0ZTogJ2lzQ29sbGFwc2VkJy4gRXMgd2lyZCBiZW51dHp0IGJlaW0gcmVuZGVyaW5nLiBGw7xyIEV4cGFuZC9Db2xsYXBzZWQgU2ljaHQgZGVzIE5vZGUoV2VydClcclxuICAgKi9cclxuICBwdWJsaWMgY29sbGFwc2VBdHRyID0gJ2lzQ29sbGFwc2VkJztcclxuXHJcbiAgLyoqXHJcbiAgICogRGFzIFByb3BlcnR5IGVudGhpZWx0IG5vZGUgYXR0cmlidXRlOiAnaXNTZWxlY3RlZCcuIEVzIHdpcmQgYmVudXR6dCBiZWltIFZvcmJlcmVpdHVuZyBkZXMgRGF0YSBkZXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBwdWJsaWMgc2VsZWN0QXR0ciA9ICdpc1NlbGVjdGVkJztcclxuXHJcbiAgLyoqXHJcbiAgICogRGFzIFByb3BlcnR5IGVudGhpZWx0IG5vZGUgYXR0cmlidXRlOiAnaXNJbmRldGVybWluYXRlJy4gRXMgd2lyZCBiZW51dHp0IGJlaW0gVm9yYmVyZWl0dW5nIGRlcyBEYXRhIGRlcyBUcmVlVmlld1xyXG4gICAqL1xyXG4gIHB1YmxpYyBpbkRldGVybWluYXRlQXR0ciA9ICdpc0luZGV0ZXJtaW5hdGUnO1xyXG5cclxuICAvKipcclxuICAgKiBQcm92aWRlbiBkYXRhIGZvciB0cmVlLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RhdGE6IGFueVtdID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlciBmw7xyIERhdGEgZGVzIFRyZWVWaWV3XHJcbiAgICovXHJcbiAgZ2V0IGRhdGEoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnB1dCBQcm9wZXJ0eSBmw7xyIERhdGEgZGVzIFRyZWVWaWV3XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZGF0YSh2YWx1ZTogYW55W10pIHtcclxuICAgIHRoaXMuX2RhdGEgPSB2YWx1ZTtcclxuICAgIHRoaXMubm9kZXMgPSB2YWx1ZTtcclxuXHJcbiAgICAvLyB0aGlzLm5vZGVzLmZvckVhY2gobm9kZSA9PiBub2RlW1widHlwZUlkXCJdID0gXCIxM1wiKVxyXG5cclxuICAgIHRoaXMuTG9hZFRyZWUoKTtcclxuXHJcbiAgICBpZiAodGhpcy5fY29sbGFwc2VBbGwgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmNvbGxhcHNlQWxsTm9kZSh0aGlzLl9jb2xsYXBzZUFsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnB1dCBQcm9wZXJ0eSBmw7xyIHRlbXBsYXRlIGRlcyBUcmVlVmlldy4gVHlwZTogVGVtcGxhdGVSZWY8YW55Pi5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKipcclxuICAgKiBEaWUgRGlyZWN0aXZlIGVyaMOkbHQgZGllIGFjdGlvbnMgZsO8ciBkYXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBAQ29udGVudENoaWxkKCdhY3Rpb25zJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwdWJsaWMgc2V0IHRyZWV2aWV3VGVtcGxhdGUodjogVGVtcGxhdGVSZWY8YW55Pikge1xyXG4gICAgdGhpcy50ZW1wbGF0ZSA9IHY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZsO8ciBkYXMgVHJlZVZpZXcgVGVtcGxhdGVcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IHRyZWV2aWV3VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIElucHV0IHByb3BlcnR5IGVyaMOkbHQgSWNvbiBmw7xyIGRhcyBUZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZmlsZWljb250ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0dGVyIHByb3BlcnR5LiBEZWZmaW5pZXJ0IGRhcyBGaWxlSWNvbiBmw7xyIGRhcyBUcmVlVmlld1xyXG4gICAqL1xyXG4gIEBDb250ZW50Q2hpbGQoJ3RyZWVmaWxlaWNvbicsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHVibGljIHNldCB0cmVlZmlsZWljb24odjogVGVtcGxhdGVSZWY8YW55Pikge1xyXG4gICAgdGhpcy5maWxlaWNvbnRlbXBsYXRlID0gdjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlciBwcm9wZXJ0eS4gRXJnaWJ0IGRhcyBGaWxlSWNvbiBmw7xyIGRhcyBUcmVlVmlld1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgdHJlZWZpbGVpY29uKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsZWljb250ZW1wbGF0ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIElucHV0IHByb3BlcnR5IGbDvHIgZGVuIE5hbWVuIGRlcyBUcmVlVmlldy4gVHlwZSBzdHJpbmcuIERlZmF1bHQgdmFsdWU6IFwiXCJcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIG5hbWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBBIGZsYWcgaW5kaWNhdGluZyBkYXRhIGlzIGZsYXR0ZW4gaW4gYXJyYXkgYW5kIHByZXBhcmUgaXMgcmVxdWlyZWQuKERlZmF1bHRcclxuICAgKiBpcyBmYWxzZSkuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHJlcGFyZURhdGEgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQXR0cmlidXRlIGZvciBUZXh0IGluIFRyZWVcclxuICAgKi9cclxuICBASW5wdXQoKSB0ZXh0QXR0ciA9ICdkYXRhJztcclxuXHJcbiAgLyoqXHJcbiAgICogTmFtZSBvZiBJRCBwcm9wZXJ0eSBpbiBpbnB1dCBkYXRhLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGlkQXR0ciA9ICdpZCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE5hbWUgb2YgcGFyZW50IHByb3BlcnR5IGluIGlucHV0IGRhdGEuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcGFyZW50QXR0ciA9ICdQQVJFTlRfSUQnO1xyXG5cclxuICAvKipcclxuICAgKiBOYW1lIG9mIGNoaWxkcmVuIGxpc3QgcHJvcGVydHkgaW4gaW5wdXQgZGF0YS5cclxuICAgKi9cclxuICBASW5wdXQoKSBjaGlsZHJlbkF0dHIgPSAnY2hpbGRyZW4nO1xyXG5cclxuICAvKipcclxuICAgKiBUaXRsZSBkZXMgVHJlZXZpZXdcclxuICAgKi9cclxuICBASW5wdXQoKSB0aXRsZTtcclxuXHJcbiAgLy8gQElucHV0KFwidGl0bGVBY3Rpb25cIikgX3RpdGxlQWN0aW9uOiBzdHJpbmdcclxuXHJcbiAgLyoqXHJcbiAgICogQ29sbGFwc2Ugb3IgZXhwYW5kIGFsbCBwYXJlbnQgbm9kZXMuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgY29sbGFwc2VhbGwodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2NvbGxhcHNlQWxsID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5ub2RlcyAmJiB0aGlzLm5vZGVzLmxlbmd0aCAmJiB0aGlzLm5vZGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5jb2xsYXBzZUFsbE5vZGUodGhpcy5fY29sbGFwc2VBbGwpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoaXMuX3JlY3Vyc2l2ZUVkaXQoXHJcbiAgICAvLyAgIHRoaXMubm9kZXMsIHRoaXMuY2hpbGRyZW5BdHRyLCB0aGlzLmNvbGxhcHNlQXR0ciwgdGhpcy5fY29sbGFwc2VBbGwpO1xyXG5cclxuICAgIC8vIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIGbDvHIgZGFzIGNvbGxhcHNlIHByb3BlcnR5LiBFcmdpYnQgYm9vbGVhbiBXZXJ0LCBvYiBkaWUgSXRlbXMgY29sbGFwc2VkL2V4cGFuZCBzaW5kLlxyXG4gICAqL1xyXG4gIGdldCBjb2xsYXBzZWFsbCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xsYXBzZUFsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbGVjdCBvciBkZXNlbGVjdCBhbGwgbm9kZXMuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgc2VsZWN0YWxsKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9zZWxlY3RBbGwgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3JlY3Vyc2l2ZUVkaXQodGhpcy5ub2RlcywgdGhpcy5jaGlsZHJlbkF0dHIsIHRoaXMuc2VsZWN0QXR0ciwgdmFsdWUpO1xyXG4gICAgdGhpcy5fcmVjdXJzaXZlRWRpdChcclxuICAgICAgdGhpcy5ub2RlcyxcclxuICAgICAgdGhpcy5jaGlsZHJlbkF0dHIsXHJcbiAgICAgIHRoaXMuaW5EZXRlcm1pbmF0ZUF0dHIsXHJcbiAgICAgIGZhbHNlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5wdXQgcHJvcGVydHkgLSBzZXR0ZXIuIERlZmZpbmllcnQgZGFzIElEIGRlcyBzZWxla3RpZXJ0ZW4gSXRlbShub2RlKVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlbGVjdGVkaWQodjogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IHRoaXMuZmluZE5vZGUodGhpcy5ub2RlcywgdiwgdGhpcy5pZEF0dHIpO1xyXG5cclxuICAgIC8vIGlmICh0aGlzLnNlbGVjdGVkTm9kZSkge1xyXG4gICAgLy8gICB0aGlzLnNlbGVjdGVkSWRFbWl0dGVyLmVtaXQodGhpcy5zZWxlY3RlZE5vZGVbdGhpcy5pZEF0dHJdKTtcclxuICAgIC8vICAgdGhpcy5zZWxlY3RlZFRleHRFbWl0dGVyLmVtaXQodGhpcy5zZWxlY3RlZE5vZGVbdGhpcy50ZXh0QXR0cl0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyLiBFcmdpYnQgZGFzIElEIGRlcyBzZWxla3RpZXJ0ZW4gSXRlbShub2RlKVxyXG4gICAqL1xyXG4gIGdldCBzZWxlY3RlZElkKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE5vZGUgPyB0aGlzLnNlbGVjdGVkTm9kZVt0aGlzLmlkQXR0cl0gOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGFzIFByb3BlcnR5IGVyaMOkbHQgZGFzIHNlbGVrdGllcnRlIFdlcnQobm9kZSkuIERlZmF1bHQgdmFsdWU6IHVuZGVmaW5lZC9udWxsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWROb2RlO1xyXG5cclxuICAvKipcclxuICAgKiBTZXR0ZXIgZsO8ciBkYXMgc2VsZWt0aWVydGUgV2VydChub2RlKS4gV2VubiBhdWZnZXJ1ZmVuIGRhcyBJRCB1bmQgVGV4dEF0dHIgZGVzIHNlbGVjdGVkIE5vZGUgd2lyZCBlbWl0dGVkXHJcbiAgICovXHJcbiAgc2V0IHNlbGVjdGVkTm9kZSh2OiBhbnkpIHtcclxuICAgIHRoaXMuX3NlbGVjdGVkTm9kZSA9IHY7XHJcblxyXG4gICAgaWYgKHRoaXMuX3NlbGVjdGVkTm9kZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkaWRjaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSWQpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkdGV4dGNoYW5nZWQuZW1pdCh2W3RoaXMudGV4dEF0dHJdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlciBmw7xyIGRhcyBzZWxla3RpZXJ0ZSBXZXJ0KG5vZGUpLiBFcmdpYnQgZGFzIHNlbGVrdGllcnRlIFdlcnQobm9kZSkuXHJcbiAgICovXHJcbiAgZ2V0IHNlbGVjdGVkTm9kZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkTm9kZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE91dHB1dCBFbWl0dGVyLiBFbWl0IGRhcyBJRCBkZXMgc2VsZWN0ZWQgTm9kZS5cclxuICAgKi9cclxuICBAT3V0cHV0KClcclxuICBzZWxlY3RlZGlkY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvKipcclxuICAgKiBPdXRwdXQgRW1pdHRlci4gRW1pdCBkYXMgVGV4dEF0dHIgZGVzIHNlbGVjdGVkIE5vZGUuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZWN0ZWR0ZXh0Y2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3V0cHV0IEVtaXR0ZXIuIEVtaXQgd2VubiBlaW4gTm9kZSBzZWxla3RpZXJ0IHdpcmQuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZWN0ZWRpdGVtOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvKipcclxuICAgKiBBIGxpZmVjeWNsZSBob29rIHRoYXQgaXMgY2FsbGVkIGFmdGVyIEFuZ3VsYXIgaGFzIGluaXRpYWxpemVkIGFsbCBkYXRhLWJvdW5kIHByb3BlcnRpZXMgb2YgYSBkaXJlY3RpdmUuXHJcbiAgICogRGVmaW5lIGFuIG5nT25Jbml0KCkgbWV0aG9kIHRvIGhhbmRsZSBhbnkgYWRkaXRpb25hbCBpbml0aWFsaXphdGlvbiB0YXNrcy5cclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY29sbGFwc2VBbGxOb2RlKHRoaXMuX2NvbGxhcHNlQWxsKTtcclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZElkKSB0aGlzLm9wZW5TZWxlY3RlZE5vZGUodGhpcy5ub2Rlcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGdW5rdGlvbiBzZXR6dCBhbGxlIHBhcmVudCBpdGVtcyByZWN1c2l2IHp1bSBzZWxlY3RlZCBub2RlXHJcbiAgICogYXVmIGNvbGxhcHNlZCA9IGZhbHNlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvcGVuU2VsZWN0ZWROb2RlKGRhdGEpOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZGF0YVtpXVt0aGlzLmNoaWxkcmVuQXR0cl0ubGVuZ3RoICYmXHJcbiAgICAgICAgZGF0YVtpXVt0aGlzLmlkQXR0cl0gIT0gdGhpcy5zZWxlY3RlZElkXHJcbiAgICAgIClcclxuICAgICAgICByZXN1bHQgPSB0aGlzLm9wZW5TZWxlY3RlZE5vZGUoZGF0YVtpXVt0aGlzLmNoaWxkcmVuQXR0cl0pO1xyXG4gICAgICBpZiAocmVzdWx0IHx8IGRhdGFbaV1bdGhpcy5pZEF0dHJdID09IHRoaXMuc2VsZWN0ZWRJZCkge1xyXG4gICAgICAgIGRhdGFbaV1bdGhpcy5jb2xsYXBzZUF0dHJdID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIHZvcmJlcmVpdGV0IGRpZSBEYXRlbiBmw7xyIGRhcyBUcmVlVmlldy4gRGllIEZ1bmt0aW9uIHNvbGx0ZSBnZcOkbmRlcnQgd2VyZGVuIGFiaMOkbmdpZyB2b24gZGVtIGtvbW1lbmRlbiBEYXRlbiAod2VubiBhcnJheSlcclxuICAgKi9cclxuICBwcml2YXRlIExvYWRUcmVlKCkge1xyXG4gICAgLy9pZiB0aGUgdHJlZSBzdHJ1Y3R1cmUgcmVxdWlyZSBhcnJheSB0aGUgZnVuY3Rpb24gYmVsb3cgc2hvdWxkIGJlIGNoYW5nZWRcclxuICAgIGNvbnN0IGNsb25lZCA9IHRoaXMuX2RhdGEubWFwKCh4KSA9PiBPYmplY3QuYXNzaWduKHt9LCB4KSk7XHJcblxyXG4gICAgLy8gSWYgZGF0YSBpcyBmbGF0LCBwcmVwYXJlIGRhdGEgd2l0aCByZWN1cnNpdmUgZnVuY3Rpb24uXHJcbiAgICB0aGlzLm5vZGVzID0gdGhpcy5wcmVwYXJlRGF0YSA/IHRoaXMuX2dldFByZXBhcmVkRGF0YShjbG9uZWQpIDogdGhpcy5fZGF0YTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIGNvbGxhcHNlL2V4cGFuZCBkZW4gc2VsZWN0aWVydGVuIE5vZGVcclxuICAgKi9cclxuICBvbkNvbGxhcHNlQ2xpY2sobm9kZSkge1xyXG4gICAgaWYgKG5vZGVbdGhpcy5jaGlsZHJlbkF0dHJdLmxlbmd0aCkge1xyXG4gICAgICBub2RlW3RoaXMuY29sbGFwc2VBdHRyXSA9ICFub2RlW3RoaXMuY29sbGFwc2VBdHRyXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIHNldCBkZW4gc2VsZWt0aWVydGVuIE5vZGUgdW5kIGVtaXQgZXMuXHJcbiAgICovXHJcbiAgb25DbGljayhub2RlKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IG5vZGU7XHJcbiAgICB0aGlzLnNlbGVjdGVkaXRlbS5lbWl0KHRoaXMuc2VsZWN0ZWROb2RlKTtcclxuICAgIC8vIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGllIE1ldGhvZGUgd2lyZCBlaW4gZXZlbnQgbWl0IE1lbGR1bmcgenUgUGFyZW50IGVtaXQtZW4uXHJcbiAgICovXHJcbiAgc2VuZE1zZ1RvUGFyZW50KG1zZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZGl0ZW0uZW1pdChtc2cpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGllIE1ldGhvZGUgd2lyZCBhbGxlIE5vZGVzIGNvbGxhcHNlXHJcbiAgICovXHJcbiAgY29sbGFwc2VBbGxOb2RlKGNvbW1hbmQpIHtcclxuICAgIHRoaXMubm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICBpZiAobm9kZVt0aGlzLmNoaWxkcmVuQXR0cl0ubGVuZ3RoKSB7XHJcbiAgICAgICAgY29sbGFwc2VBbGxISWRkZW4obm9kZSwgdGhpcy5jb2xsYXBzZUF0dHIsIGNvbW1hbmQsIHRoaXMuY2hpbGRyZW5BdHRyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBmdW5jdGlvbiBjb2xsYXBzZUFsbEhJZGRlbihub2RlLCBjb2xsYXBzZUF0dHIsIGNvbW1hbmQsIGNoaWxkcmVuQXR0cikge1xyXG4gICAgICBub2RlW2NvbGxhcHNlQXR0cl0gPSBjb21tYW5kO1xyXG4gICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoY2hpbGRbY2hpbGRyZW5BdHRyXS5sZW5ndGgpIHtcclxuICAgICAgICAgIGNvbGxhcHNlQWxsSElkZGVuKGNoaWxkLCBjb2xsYXBzZUF0dHIsIGNvbW1hbmQsIGNoaWxkcmVuQXR0cik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZ1bmt0aW9uIGdpYnQgbm9kZSBhdXMgZGVyIGxpc3RlIHp1csO8Y2ssIHdlbGNoZXMgZGFzIFZhbHVlIGF1ZiBkZW0gZ2V3w7xuc2NodGVuIEF0dHJpYnV0IGhhdFxyXG4gICAqIFdlbm4gbm9kZSBuaWNodCBnZWZ1bmRlbiB3aXJkLCB3aXJkIG51bGwgenVyw7xjayBnZWdlYmVuXHJcbiAgICogQHBhcmFtIGRhdGEgTGlzdGUgZGVyIG5vZGVzXHJcbiAgICogQHBhcmFtIHNlYXJjaFZhbHVlIERhcyBnZXN1Y2h0ZSB2YWx1ZVxyXG4gICAqIEBwYXJhbSBhdHRyIERlciBuYW1lbiBkZXMgQXR0cmlidXRzIGF1ZiBkZW0gZGFzIHZhbHVlIGdlc3VjaHQgd2lyZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZmluZE5vZGUoZGF0YSwgc2VhcmNoVmFsdWUsIGF0dHIpOiBhbnkge1xyXG4gICAgbGV0IHJlc3VsdDogYW55ID0gbnVsbDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoZGF0YVtpXVthdHRyXSA9PSBzZWFyY2hWYWx1ZSkgcmVzdWx0ID0gZGF0YVtpXTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKGRhdGFbaV1bdGhpcy5jaGlsZHJlbkF0dHJdLmxlbmd0aCkge1xyXG4gICAgICAgICAgbGV0IHJlY3Vyc2l2ZVJlc3VsdCA9IHRoaXMuZmluZE5vZGUoXHJcbiAgICAgICAgICAgIGRhdGFbaV1bdGhpcy5jaGlsZHJlbkF0dHJdLFxyXG4gICAgICAgICAgICBzZWFyY2hWYWx1ZSxcclxuICAgICAgICAgICAgYXR0clxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGlmIChyZWN1cnNpdmVSZXN1bHQpIHJlc3VsdCA9IHJlY3Vyc2l2ZVJlc3VsdDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSBlZGl0aWVydCAocmVjdXJzaXZlKSBhbGxlIGVpbmdlZ2ViZW5lIE5vZGVzIGFiaMOkbmdpZyB2b24gZ2VnZWJlbmVuIEF0dGlidXRlIHVuZCBWYWx1ZSBLcml0ZXJpZW4uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcmVjdXJzaXZlRWRpdChsaXN0LCBjaGlsZHJlbkF0dHIsIGF0dHIsIHZhbHVlKSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShsaXN0KSkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gbGlzdC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgIGxpc3RbaV1bYXR0cl0gPSB2YWx1ZTtcclxuICAgICAgICBpZiAobGlzdFtpXVtjaGlsZHJlbkF0dHJdLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5fcmVjdXJzaXZlRWRpdChsaXN0W2ldW2NoaWxkcmVuQXR0cl0sIGNoaWxkcmVuQXR0ciwgYXR0ciwgdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGllIE1ldGhvZGUgZXJzdGVsbHQgZWluZSBzdGFuZGFydGUgU2ljaHQtTGlzdGUgdm9uIE5vZGVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZ2V0UHJlcGFyZWREYXRhKGxpc3QpIHtcclxuICAgIGNvbnN0IHRyZWUgPSBbXSxcclxuICAgICAgbG9va3VwID0ge307XHJcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gbGlzdC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBsb29rdXBbbGlzdFtpXVt0aGlzLmlkQXR0cl1dID0gbGlzdFtpXTtcclxuICAgICAgbGlzdFtpXVt0aGlzLmNoaWxkcmVuQXR0cl0gPSBbXTtcclxuICAgICAgbGlzdFtpXVt0aGlzLmNvbGxhcHNlQXR0cl0gPSB0cnVlO1xyXG4gICAgICBsaXN0W2ldW3RoaXMuc2VsZWN0QXR0cl0gPSBmYWxzZTtcclxuICAgICAgbGlzdFtpXVt0aGlzLmluRGV0ZXJtaW5hdGVBdHRyXSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGxpc3QubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgaWYgKGxpc3RbaV1bdGhpcy5wYXJlbnRBdHRyXSkge1xyXG4gICAgICAgIGxvb2t1cFtsaXN0W2ldW3RoaXMucGFyZW50QXR0cl1dW3RoaXMuY2hpbGRyZW5BdHRyXS5wdXNoKGxpc3RbaV0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRyZWUucHVzaChsaXN0W2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cmVlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
4
|
+
*/class SacTreeviewCommon extends SacBaseModelControl{// #endregion Properties
|
|
5
|
+
// #region Constructors
|
|
6
|
+
/**
|
|
7
|
+
* Constructor
|
|
8
|
+
* @param injector Service Injector
|
|
9
|
+
*/constructor(formlayout,injector){cov_1qqjitsvap().f[0]++;cov_1qqjitsvap().s[0]++;super(formlayout,injector);// #region Properties
|
|
10
|
+
/**
|
|
11
|
+
* Event when Action is clicked on Node. An object of the type 'TreeviewAction' is returned. In the default case, 'action' in this object is always the value 'default'. The value can be changed via the 'templateaction'.
|
|
12
|
+
*/cov_1qqjitsvap().s[1]++;this.actionclicked=new EventEmitter();/**
|
|
13
|
+
* Property on the data object that contains the children of the structure element. Must be an array of objects. The default value is 'children'
|
|
14
|
+
*/cov_1qqjitsvap().s[2]++;this.attrchildren='children';/**
|
|
15
|
+
* Defines the property on the 'data' object with which the actions for a node can be deactivated. A 'disabled' property is used by default.
|
|
16
|
+
*/cov_1qqjitsvap().s[3]++;this.attrdisableaction='disabled';/**
|
|
17
|
+
* Property on the 'data' object that stores the expanded state. Property must be of type boolean. Default is 'expanded'
|
|
18
|
+
*/cov_1qqjitsvap().s[4]++;this.attrexanded='expanded';/**
|
|
19
|
+
* Property for saving the HoverState on the field. If the property is not present on the node, it is automatically created and removed again. The value can usually be left at the default value unless there is a conflict with a property on the node that is required for other purposes.
|
|
20
|
+
*/cov_1qqjitsvap().s[5]++;this.attrhoverstate='hoverstate';/**
|
|
21
|
+
* Property on 'data' object, which contains the icon for the node. By default, the property is not set, which hides the icon in the node.
|
|
22
|
+
*/cov_1qqjitsvap().s[6]++;this.attricon=null;/**
|
|
23
|
+
* property on the 'data' object contains an ID of the node. The default is 'id'. If the property is set to NULL, the selectedId event is no longer triggered.
|
|
24
|
+
*/cov_1qqjitsvap().s[7]++;this.attrid='id';/**
|
|
25
|
+
* Property on 'data' object, which contains the label for the node. Default is 'label'
|
|
26
|
+
*/cov_1qqjitsvap().s[8]++;this.attrlabel='label';/**
|
|
27
|
+
* Property on 'data' object, which defines whether the node is selected or not. It should be ensured that only 1 node has the value for Selected set to true. Default is 'selected'.
|
|
28
|
+
*/cov_1qqjitsvap().s[9]++;this.attrselected='selected';/**
|
|
29
|
+
* Event when a node is collapsed. Returns the node element as a parameter
|
|
30
|
+
*/cov_1qqjitsvap().s[10]++;this.collabsed=new EventEmitter();/**
|
|
31
|
+
* The property contains an array of nodes. The data must already map the tree via child properties.
|
|
32
|
+
*/cov_1qqjitsvap().s[11]++;this.data=[];/**
|
|
33
|
+
* Activates the 'expand' and 'collabse' event even if a node has no children. This is helpful if node elements are to be reloaded at runtime.
|
|
34
|
+
*/cov_1qqjitsvap().s[12]++;this.enableasynchload=false;/**
|
|
35
|
+
* Activates Ellipsis on the node labels
|
|
36
|
+
*/cov_1qqjitsvap().s[13]++;this.enableellipsis=true;/**
|
|
37
|
+
* Event when a node is expanded. Returns the node element as a parameter
|
|
38
|
+
*/cov_1qqjitsvap().s[14]++;this.expanded=new EventEmitter();/**
|
|
39
|
+
* Defines whether an icon for the expanded/collapsed status should be displayed.
|
|
40
|
+
*/cov_1qqjitsvap().s[15]++;this.expandedstate=true;/**
|
|
41
|
+
* A node must be selected
|
|
42
|
+
*/cov_1qqjitsvap().s[16]++;this.isrequired=false;/**
|
|
43
|
+
* Name of the TreeView control
|
|
44
|
+
*/cov_1qqjitsvap().s[17]++;this.name='';/**
|
|
45
|
+
* Event when a node is selected. Returns the id attribute as a parameter. The event is not triggered if 'attrid' is not set.
|
|
46
|
+
*/cov_1qqjitsvap().s[18]++;this.selected=new EventEmitter();/**
|
|
47
|
+
* Event when a node is selected. Returns the node element as a parameter.
|
|
48
|
+
*/cov_1qqjitsvap().s[19]++;this.selectednode=new EventEmitter();/**
|
|
49
|
+
* Resource Key für Validation Message Required bei Control
|
|
50
|
+
*/cov_1qqjitsvap().s[20]++;this.validationmessagerequired=this.validationKeyService.ValidationErrorRequired;/**
|
|
51
|
+
* Resource Key für Validation Message Required in Validation Summary
|
|
52
|
+
*/cov_1qqjitsvap().s[21]++;this.validationmessagesummaryrequired=this.validationKeyService.ValidationErrorSummaryRequired;}// #endregion Constructors
|
|
53
|
+
// #region Public Getters And Setters
|
|
54
|
+
get iconAction(){cov_1qqjitsvap().f[1]++;cov_1qqjitsvap().s[22]++;return this.iconService.TreeviewNodeActionIcon;}/**
|
|
55
|
+
* CSS icon for folders in tree there are collabsed
|
|
56
|
+
* @returns css class with icon
|
|
57
|
+
*/get iconFolderCollabsed(){cov_1qqjitsvap().f[2]++;cov_1qqjitsvap().s[23]++;return this.iconService.TreeviewNodeClosedIcon;}/**
|
|
58
|
+
* CSS icon class for folders without subfolders
|
|
59
|
+
* @returns css class with icon
|
|
60
|
+
*/get iconFolderEmpty(){cov_1qqjitsvap().f[3]++;cov_1qqjitsvap().s[24]++;return this.iconService.TreeviewNodeEmptyIcon;}/**
|
|
61
|
+
* CSS icon for folders in tree there are expanded
|
|
62
|
+
* @returns css class with icon
|
|
63
|
+
*/get iconFolderOpen(){cov_1qqjitsvap().f[4]++;cov_1qqjitsvap().s[25]++;return this.iconService.TreeviewNodeOpenIcon;}// #endregion Public Getters And Setters
|
|
64
|
+
// #region Public Methods
|
|
65
|
+
/**
|
|
66
|
+
* Creates an array of a certain size. Is required for a For in the UI, as Angular does not support counting loops
|
|
67
|
+
* @param size Size of the array
|
|
68
|
+
* @returns Array
|
|
69
|
+
*/count(size){cov_1qqjitsvap().f[5]++;cov_1qqjitsvap().s[26]++;return new Array(size);}getChildren(node){cov_1qqjitsvap().f[6]++;cov_1qqjitsvap().s[27]++;if((cov_1qqjitsvap().b[1][0]++,!node)||(cov_1qqjitsvap().b[1][1]++,!this.attrchildren)){cov_1qqjitsvap().b[0][0]++;cov_1qqjitsvap().s[28]++;return[];}else{cov_1qqjitsvap().b[0][1]++;}let children=(cov_1qqjitsvap().s[29]++,node[this.attrchildren]);cov_1qqjitsvap().s[30]++;if(!Array.isArray(children)){cov_1qqjitsvap().b[2][0]++;cov_1qqjitsvap().s[31]++;return[];}else{cov_1qqjitsvap().b[2][1]++;}cov_1qqjitsvap().s[32]++;return children;}getStringField(node,fieldname){cov_1qqjitsvap().f[7]++;cov_1qqjitsvap().s[33]++;if(!node){cov_1qqjitsvap().b[3][0]++;cov_1qqjitsvap().s[34]++;return'';}else{cov_1qqjitsvap().b[3][1]++;}cov_1qqjitsvap().s[35]++;if(!fieldname){cov_1qqjitsvap().b[4][0]++;cov_1qqjitsvap().s[36]++;return node;}else{cov_1qqjitsvap().b[4][1]++;}let value=(cov_1qqjitsvap().s[37]++,node[fieldname]);cov_1qqjitsvap().s[38]++;if(!value){cov_1qqjitsvap().b[5][0]++;cov_1qqjitsvap().s[39]++;return'';}else{cov_1qqjitsvap().b[5][1]++;}cov_1qqjitsvap().s[40]++;return value;}hasChildren(node){cov_1qqjitsvap().f[8]++;cov_1qqjitsvap().s[41]++;return this.getChildren(node).length>0;}isDisabledState(node){cov_1qqjitsvap().f[9]++;cov_1qqjitsvap().s[42]++;if((cov_1qqjitsvap().b[7][0]++,!node)||(cov_1qqjitsvap().b[7][1]++,!this.attrdisableaction)){cov_1qqjitsvap().b[6][0]++;cov_1qqjitsvap().s[43]++;return false;}else{cov_1qqjitsvap().b[6][1]++;}let value=(cov_1qqjitsvap().s[44]++,node[this.attrdisableaction]);cov_1qqjitsvap().s[45]++;return(cov_1qqjitsvap().b[8][0]++,value===true)||(cov_1qqjitsvap().b[8][1]++,value==='true');}isExpandedState(node){cov_1qqjitsvap().f[10]++;cov_1qqjitsvap().s[46]++;if((cov_1qqjitsvap().b[10][0]++,!node)||(cov_1qqjitsvap().b[10][1]++,!this.attrexanded)){cov_1qqjitsvap().b[9][0]++;cov_1qqjitsvap().s[47]++;return false;}else{cov_1qqjitsvap().b[9][1]++;}let value=(cov_1qqjitsvap().s[48]++,node[this.attrexanded]);cov_1qqjitsvap().s[49]++;return(cov_1qqjitsvap().b[11][0]++,value===true)||(cov_1qqjitsvap().b[11][1]++,value==='true');}isHoverState(node){cov_1qqjitsvap().f[11]++;cov_1qqjitsvap().s[50]++;if((cov_1qqjitsvap().b[13][0]++,!node)||(cov_1qqjitsvap().b[13][1]++,!this.attrhoverstate)){cov_1qqjitsvap().b[12][0]++;cov_1qqjitsvap().s[51]++;return false;}else{cov_1qqjitsvap().b[12][1]++;}let value=(cov_1qqjitsvap().s[52]++,node[this.attrhoverstate]);cov_1qqjitsvap().s[53]++;return(cov_1qqjitsvap().b[14][0]++,value===true)||(cov_1qqjitsvap().b[14][1]++,value==='true');}isSelectedState(node){cov_1qqjitsvap().f[12]++;cov_1qqjitsvap().s[54]++;if((cov_1qqjitsvap().b[16][0]++,!node)||(cov_1qqjitsvap().b[16][1]++,!this.attrselected)){cov_1qqjitsvap().b[15][0]++;cov_1qqjitsvap().s[55]++;return false;}else{cov_1qqjitsvap().b[15][1]++;}let value=(cov_1qqjitsvap().s[56]++,node[this.attrselected]);cov_1qqjitsvap().s[57]++;return(cov_1qqjitsvap().b[17][0]++,value===true)||(cov_1qqjitsvap().b[17][1]++,value==='true');}/**
|
|
70
|
+
* Method is called by clicking an action
|
|
71
|
+
* @param action action and node
|
|
72
|
+
*/onActionClicked(action){cov_1qqjitsvap().f[13]++;cov_1qqjitsvap().s[58]++;this.actionclicked.emit(action);}onNodeClicked(node){cov_1qqjitsvap().f[14]++;cov_1qqjitsvap().s[59]++;if((cov_1qqjitsvap().b[19][0]++,this.isDisabledState(node))||(cov_1qqjitsvap().b[19][1]++,this.isSelectedState(node))){cov_1qqjitsvap().b[18][0]++;cov_1qqjitsvap().s[60]++;this.invertExpandedState(node);}else{cov_1qqjitsvap().b[18][1]++;}cov_1qqjitsvap().s[61]++;this.setSelectedState(node);}setHoverState(node,state){cov_1qqjitsvap().f[15]++;cov_1qqjitsvap().s[62]++;if((cov_1qqjitsvap().b[21][0]++,!node)||(cov_1qqjitsvap().b[21][1]++,!this.attrhoverstate)){cov_1qqjitsvap().b[20][0]++;cov_1qqjitsvap().s[63]++;return;}else{cov_1qqjitsvap().b[20][1]++;}cov_1qqjitsvap().s[64]++;if(state){cov_1qqjitsvap().b[22][0]++;cov_1qqjitsvap().s[65]++;node[this.attrhoverstate]=true;cov_1qqjitsvap().s[66]++;return;}else{cov_1qqjitsvap().b[22][1]++;}cov_1qqjitsvap().s[67]++;if(!node.hasOwnProperty(this.attrhoverstate)){cov_1qqjitsvap().b[23][0]++;cov_1qqjitsvap().s[68]++;return;}else{cov_1qqjitsvap().b[23][1]++;}cov_1qqjitsvap().s[69]++;delete node[this.attrhoverstate];}setSelectedState(node){cov_1qqjitsvap().f[16]++;cov_1qqjitsvap().s[70]++;if((cov_1qqjitsvap().b[25][0]++,!node)||(cov_1qqjitsvap().b[25][1]++,!this.attrselected)){cov_1qqjitsvap().b[24][0]++;cov_1qqjitsvap().s[71]++;return;}else{cov_1qqjitsvap().b[24][1]++;}// reset selected state of any node
|
|
73
|
+
cov_1qqjitsvap().s[72]++;this.data.forEach(rootNode=>{cov_1qqjitsvap().f[17]++;cov_1qqjitsvap().s[73]++;return this.resetSelectedState(rootNode);});// set selected node as selected
|
|
74
|
+
cov_1qqjitsvap().s[74]++;node[this.attrselected]=true;// Update ngModel
|
|
75
|
+
cov_1qqjitsvap().s[75]++;this.setValue(node);// Raise Selected Events
|
|
76
|
+
cov_1qqjitsvap().s[76]++;this.selectednode.emit(node);cov_1qqjitsvap().s[77]++;if(!this.attrid){cov_1qqjitsvap().b[26][0]++;cov_1qqjitsvap().s[78]++;return;}else{cov_1qqjitsvap().b[26][1]++;}let id=(cov_1qqjitsvap().s[79]++,this.getStringField(node,this.attrid));cov_1qqjitsvap().s[80]++;this.selected.emit(id);}validateData(c){cov_1qqjitsvap().f[18]++;let error=(cov_1qqjitsvap().s[81]++,null);cov_1qqjitsvap().s[82]++;if(this.isrequired){cov_1qqjitsvap().b[27][0]++;cov_1qqjitsvap().s[83]++;error=Validation.required(this.validationmessagerequired,this.validationmessagesummaryrequired)(c);}else{cov_1qqjitsvap().b[27][1]++;}cov_1qqjitsvap().s[84]++;return error;}// #endregion Public Methods
|
|
77
|
+
// #region Private Methods
|
|
78
|
+
invertExpandedState(node){cov_1qqjitsvap().f[19]++;cov_1qqjitsvap().s[85]++;if((cov_1qqjitsvap().b[29][0]++,!node)||(cov_1qqjitsvap().b[29][1]++,!this.attrexanded)){cov_1qqjitsvap().b[28][0]++;cov_1qqjitsvap().s[86]++;return;}else{cov_1qqjitsvap().b[28][1]++;}// Items with no children cannot be collabsed
|
|
79
|
+
cov_1qqjitsvap().s[87]++;if((cov_1qqjitsvap().b[31][0]++,!this.hasChildren(node))&&(cov_1qqjitsvap().b[31][1]++,!((cov_1qqjitsvap().b[32][0]++,this.enableasynchload===true)||(cov_1qqjitsvap().b[32][1]++,this.enableasynchload==='true')))){cov_1qqjitsvap().b[30][0]++;cov_1qqjitsvap().s[88]++;return;}else{cov_1qqjitsvap().b[30][1]++;}let value=(cov_1qqjitsvap().s[89]++,node[this.attrexanded]);cov_1qqjitsvap().s[90]++;if((cov_1qqjitsvap().b[34][0]++,value===true)||(cov_1qqjitsvap().b[34][1]++,value==='true')){cov_1qqjitsvap().b[33][0]++;cov_1qqjitsvap().s[91]++;this.collabsed.emit(node);cov_1qqjitsvap().s[92]++;node[this.attrexanded]=false;}else{cov_1qqjitsvap().b[33][1]++;cov_1qqjitsvap().s[93]++;this.expanded.emit(node);cov_1qqjitsvap().s[94]++;node[this.attrexanded]=true;}}resetSelectedState(node){cov_1qqjitsvap().f[20]++;cov_1qqjitsvap().s[95]++;if((cov_1qqjitsvap().b[36][0]++,!node)||(cov_1qqjitsvap().b[36][1]++,!this.attrselected)){cov_1qqjitsvap().b[35][0]++;cov_1qqjitsvap().s[96]++;return;}else{cov_1qqjitsvap().b[35][1]++;}cov_1qqjitsvap().s[97]++;node[this.attrselected]=false;cov_1qqjitsvap().s[98]++;this.getChildren(node).forEach(child=>{cov_1qqjitsvap().f[21]++;cov_1qqjitsvap().s[99]++;this.resetSelectedState(child);});}static{cov_1qqjitsvap().s[100]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacTreeviewCommon,deps:[{token:i1.SacFormLayoutCommon,host:true},{token:i0.Injector}],target:i0.ɵɵFactoryTarget.Directive});}static{cov_1qqjitsvap().s[101]++;this.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"16.2.12",type:SacTreeviewCommon,inputs:{attrchildren:"attrchildren",attrdisableaction:"attrdisableaction",attrexanded:"attrexanded",attrhoverstate:"attrhoverstate",attricon:"attricon",attrid:"attrid",attrlabel:"attrlabel",attrselected:"attrselected",data:"data",enableasynchload:"enableasynchload",enableellipsis:"enableellipsis",expandedstate:"expandedstate",isrequired:"isrequired",name:"name",showactionalways:"showactionalways",templateaction:"templateaction",templatelabel:"templatelabel",validationmessagerequired:"validationmessagerequired",validationmessagesummaryrequired:"validationmessagesummaryrequired"},outputs:{actionclicked:"actionclicked",collabsed:"collabsed",expanded:"expanded",selected:"selected",selectednode:"selectednode"},usesInheritance:true,ngImport:i0});}}export{SacTreeviewCommon};cov_1qqjitsvap().s[102]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacTreeviewCommon,decorators:[{type:Directive}],ctorParameters:function(){cov_1qqjitsvap().f[22]++;cov_1qqjitsvap().s[103]++;return[{type:i1.SacFormLayoutCommon,decorators:[{type:Host}]},{type:i0.Injector}];},propDecorators:{actionclicked:[{type:Output}],attrchildren:[{type:Input}],attrdisableaction:[{type:Input}],attrexanded:[{type:Input}],attrhoverstate:[{type:Input}],attricon:[{type:Input}],attrid:[{type:Input}],attrlabel:[{type:Input}],attrselected:[{type:Input}],collabsed:[{type:Output}],data:[{type:Input}],enableasynchload:[{type:Input}],enableellipsis:[{type:Input}],expanded:[{type:Output}],expandedstate:[{type:Input}],isrequired:[{type:Input}],name:[{type:Input}],selected:[{type:Output}],selectednode:[{type:Output}],showactionalways:[{type:Input}],templateaction:[{type:Input}],templatelabel:[{type:Input}],validationmessagerequired:[{type:Input}],validationmessagesummaryrequired:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy90cmVldmlldy90cmVldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFZLEtBQUssRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7OztBQUdwRzs7R0FFRztBQUNILE1BQ2EsaUJBQWtCLFNBQVEsbUJBQXdCO0lBaUozRCx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7T0FHRztJQUNILFlBQW9CLFVBQStCLEVBQUUsUUFBa0I7UUFDbkUsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQXpKaEMscUJBQXFCO1FBRXJCOztXQUVHO1FBRUksa0JBQWEsR0FBaUMsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFeEY7O1dBRUc7UUFFSSxpQkFBWSxHQUFHLFVBQVUsQ0FBQztRQUVqQzs7V0FFRztRQUNhLHNCQUFpQixHQUFHLFVBQVUsQ0FBQztRQUUvQzs7V0FFRztRQUVJLGdCQUFXLEdBQUcsVUFBVSxDQUFDO1FBRWhDOztXQUVHO1FBRUksbUJBQWMsR0FBRyxZQUFZLENBQUM7UUFFckM7O1dBRUc7UUFFSSxhQUFRLEdBQWtCLElBQUksQ0FBQztRQUV0Qzs7V0FFRztRQUVJLFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBRXBDOztXQUVHO1FBRUksY0FBUyxHQUFHLE9BQU8sQ0FBQztRQUUzQjs7V0FFRztRQUVJLGlCQUFZLEdBQUcsVUFBVSxDQUFDO1FBRWpDOztXQUVHO1FBRUksY0FBUyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTlEOztX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U2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sJztcclxuaW1wb3J0IHsgVHJlZXZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RyZWV2aWV3YWN0aW9uLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0JztcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3QsIEluamVjdG9yLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKipcclxuICogQmFzaXMgS29tcG9uZW50ZSBmw7xyIFNhY1RyZWVWaWV3XHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY1RyZWV2aWV3Q29tbW9uIGV4dGVuZHMgU2FjQmFzZU1vZGVsQ29udHJvbDxhbnk+IHtcclxuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlbnQgd2hlbiBBY3Rpb24gaXMgY2xpY2tlZCBvbiBOb2RlLiAgQW4gb2JqZWN0IG9mIHRoZSB0eXBlICdUcmVldmlld0FjdGlvbicgaXMgcmV0dXJuZWQuIEluIHRoZSBkZWZhdWx0IGNhc2UsICdhY3Rpb24nIGluIHRoaXMgb2JqZWN0IGlzIGFsd2F5cyB0aGUgdmFsdWUgJ2RlZmF1bHQnLiBUaGUgdmFsdWUgY2FuIGJlIGNoYW5nZWQgdmlhIHRoZSAndGVtcGxhdGVhY3Rpb24nLlxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBhY3Rpb25jbGlja2VkOiBFdmVudEVtaXR0ZXI8VHJlZXZpZXdBY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmVldmlld0FjdGlvbj4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG9uIHRoZSBkYXRhIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBjaGlsZHJlbiBvZiB0aGUgc3RydWN0dXJlIGVsZW1lbnQuIE11c3QgYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgJ2NoaWxkcmVuJ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGF0dHJjaGlsZHJlbiA9ICdjaGlsZHJlbic7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmVzIHRoZSBwcm9wZXJ0eSBvbiB0aGUgJ2RhdGEnIG9iamVjdCB3aXRoIHdoaWNoIHRoZSBhY3Rpb25zIGZvciBhIG5vZGUgY2FuIGJlIGRlYWN0aXZhdGVkLiBBICdkaXNhYmxlZCcgcHJvcGVydHkgaXMgdXNlZCBieSBkZWZhdWx0LlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgYXR0cmRpc2FibGVhY3Rpb24gPSAnZGlzYWJsZWQnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvcGVydHkgb24gdGhlICdkYXRhJyBvYmplY3QgdGhhdCBzdG9yZXMgdGhlIGV4cGFuZGVkIHN0YXRlLiBQcm9wZXJ0eSBtdXN0IGJlIG9mIHR5cGUgYm9vbGVhbi4gRGVmYXVsdCBpcyAnZXhwYW5kZWQnXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXR0cmV4YW5kZWQgPSAnZXhwYW5kZWQnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvcGVydHkgZm9yIHNhdmluZyB0aGUgSG92ZXJTdGF0ZSBvbiB0aGUgZmllbGQuIElmIHRoZSBwcm9wZXJ0eSBpcyBub3QgcHJlc2VudCBvbiB0aGUgbm9kZSwgaXQgaXMgYXV0b21hdGljYWxseSBjcmVhdGVkIGFuZCByZW1vdmVkIGFnYWluLiBUaGUgdmFsdWUgY2FuIHVzdWFsbHkgYmUgbGVmdCBhdCB0aGUgZGVmYXVsdCB2YWx1ZSB1bmxlc3MgdGhlcmUgaXMgYSBjb25mbGljdCB3aXRoIGEgcHJvcGVydHkgb24gdGhlIG5vZGUgdGhhdCBpcyByZXF1aXJlZCBmb3Igb3RoZXIgcHVycG9zZXMuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXR0cmhvdmVyc3RhdGUgPSAnaG92ZXJzdGF0ZSc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBvbiAnZGF0YScgb2JqZWN0LCB3aGljaCBjb250YWlucyB0aGUgaWNvbiBmb3IgdGhlIG5vZGUuIEJ5IGRlZmF1bHQsIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc2V0LCB3aGljaCBoaWRlcyB0aGUgaWNvbiBpbiB0aGUgbm9kZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhdHRyaWNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBwcm9wZXJ0eSBvbiB0aGUgJ2RhdGEnIG9iamVjdCBjb250YWlucyBhbiBJRCBvZiB0aGUgbm9kZS4gVGhlIGRlZmF1bHQgaXMgJ2lkJy4gSWYgdGhlIHByb3BlcnR5IGlzIHNldCB0byBOVUxMLCB0aGUgc2VsZWN0ZWRJZCBldmVudCBpcyBubyBsb25nZXIgdHJpZ2dlcmVkLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGF0dHJpZDogc3RyaW5nIHwgbnVsbCA9ICdpZCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBvbiAnZGF0YScgb2JqZWN0LCB3aGljaCBjb250YWlucyB0aGUgbGFiZWwgZm9yIHRoZSBub2RlLiBEZWZhdWx0IGlzICdsYWJlbCdcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhdHRybGFiZWwgPSAnbGFiZWwnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvcGVydHkgb24gJ2RhdGEnIG9iamVjdCwgd2hpY2ggZGVmaW5lcyB3aGV0aGVyIHRoZSBub2RlIGlzIHNlbGVjdGVkIG9yIG5vdC4gSXQgc2hvdWxkIGJlIGVuc3VyZWQgdGhhdCBvbmx5IDEgbm9kZSBoYXMgdGhlIHZhbHVlIGZvciBTZWxlY3RlZCBzZXQgdG8gdHJ1ZS4gRGVmYXVsdCBpcyAnc2VsZWN0ZWQnLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGF0dHJzZWxlY3RlZCA9ICdzZWxlY3RlZCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCB3aGVuIGEgbm9kZSBpcyBjb2xsYXBzZWQuIFJldHVybnMgdGhlIG5vZGUgZWxlbWVudCBhcyBhIHBhcmFtZXRlclxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBjb2xsYWJzZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcHJvcGVydHkgY29udGFpbnMgYW4gYXJyYXkgb2Ygbm9kZXMuIFRoZSBkYXRhIG11c3QgYWxyZWFkeSBtYXAgdGhlIHRyZWUgdmlhIGNoaWxkIHByb3BlcnRpZXMuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGF0YTogYW55W10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFjdGl2YXRlcyB0aGUgJ2V4cGFuZCcgYW5kICdjb2xsYWJzZScgZXZlbnQgZXZlbiBpZiBhIG5vZGUgaGFzIG5vIGNoaWxkcmVuLiBUaGlzIGlzIGhlbHBmdWwgaWYgbm9kZSBlbGVtZW50cyBhcmUgdG8gYmUgcmVsb2FkZWQgYXQgcnVudGltZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBlbmFibGVhc3luY2hsb2FkOiBib29sZWFuIHwgc3RyaW5nID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBY3RpdmF0ZXMgRWxsaXBzaXMgb24gdGhlIG5vZGUgbGFiZWxzXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZW5hYmxlZWxsaXBzaXMgPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlbnQgd2hlbiBhIG5vZGUgaXMgZXhwYW5kZWQuIFJldHVybnMgdGhlIG5vZGUgZWxlbWVudCBhcyBhIHBhcmFtZXRlclxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBleHBhbmRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgd2hldGhlciBhbiBpY29uIGZvciB0aGUgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXR1cyBzaG91bGQgYmUgZGlzcGxheWVkLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGV4cGFuZGVkc3RhdGU6IGJvb2xlYW4gfCBzdHJpbmcgPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBub2RlIG11c3QgYmUgc2VsZWN0ZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lIG9mIHRoZSBUcmVlVmlldyBjb250cm9sXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCB3aGVuIGEgbm9kZSBpcyBzZWxlY3RlZC4gUmV0dXJucyB0aGUgaWQgYXR0cmlidXRlIGFzIGEgcGFyYW1ldGVyLiBUaGUgZXZlbnQgaXMgbm90IHRyaWdnZXJlZCBpZiAnYXR0cmlkJyBpcyBub3Qgc2V0LlxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50IHdoZW4gYSBub2RlIGlzIHNlbGVjdGVkLiBSZXR1cm5zIHRoZSBub2RlIGVsZW1lbnQgYXMgYSBwYXJhbWV0ZXIuXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNlbGVjdGVkbm9kZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgdGhhdCB0aGUgYWN0aW9uIHRlbXBsYXRlIGlzIGRpc3BsYXllZCBpbmRlcGVuZGVudGx5IG9mIHRoZSBzZWxlY3RlZCBzdGF0ZS4gSWYgdGhlIHZhbHVlIGlzICd0cnVlJywgdGhlIGFjdGlvbiB0ZW1wbGF0ZSBpcyBkaXNwbGF5ZWQgZm9yIGV2ZXJ5IGVsZW1lbnQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd2FjdGlvbmFsd2F5cztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1c3RvbSB0ZW1wbGF0ZSBmb3IgYWN0aW9ucyBwZXIgbm9kZS4gVGVtcGxhdGUgcGFyYW1ldGVycyBhcmU6ICdub2RlJ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRlbXBsYXRlYWN0aW9uOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VzdG9tIHRlbXBsYXRlIGZvciB0aGUgbGFiZWwgYXJlYSBwZXIgbm9kZS4gVGVtcGxhdGUgcGFyYW1ldGVycyBhcmU6ICdub2RlJyBhbmQgJ2xhYmVsJ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRlbXBsYXRlbGFiZWw6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICogQHBhcmFtIGluamVjdG9yIFNlcnZpY2UgSW5qZWN0b3JcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoQEhvc3QoKSBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gICAgcHVibGljIGdldCBpY29uQWN0aW9uKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVHJlZXZpZXdOb2RlQWN0aW9uSWNvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENTUyBpY29uIGZvciBmb2xkZXJzIGluIHRyZWUgdGhlcmUgYXJlIGNvbGxhYnNlZFxyXG4gICAgICogQHJldHVybnMgY3NzIGNsYXNzIHdpdGggaWNvblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGljb25Gb2xkZXJDb2xsYWJzZWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5UcmVldmlld05vZGVDbG9zZWRJY29uO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ1NTIGljb24gY2xhc3MgZm9yIGZvbGRlcnMgd2l0aG91dCBzdWJmb2xkZXJzXHJcbiAgICAgKiBAcmV0dXJucyBjc3MgY2xhc3Mgd2l0aCBpY29uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgaWNvbkZvbGRlckVtcHR5KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVHJlZXZpZXdOb2RlRW1wdHlJY29uO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ1NTIGljb24gZm9yIGZvbGRlcnMgaW4gdHJlZSB0aGVyZSBhcmUgZXhwYW5kZWRcclxuICAgICAqIEByZXR1cm5zIGNzcyBjbGFzcyB3aXRoIGljb25cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBpY29uRm9sZGVyT3BlbigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlRyZWV2aWV3Tm9kZU9wZW5JY29uO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGEgY2VydGFpbiBzaXplLiBJcyByZXF1aXJlZCBmb3IgYSBGb3IgaW4gdGhlIFVJLCBhcyBBbmd1bGFyIGRvZXMgbm90IHN1cHBvcnQgY291bnRpbmcgbG9vcHNcclxuICAgICAqIEBwYXJhbSBzaXplIFNpemUgb2YgdGhlIGFycmF5XHJcbiAgICAgKiBAcmV0dXJucyBBcnJheVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY291bnQoc2l6ZTogbnVtYmVyKTogQXJyYXk8dm9pZD4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQXJyYXkoc2l6ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldENoaWxkcmVuKG5vZGU6IGFueSk6IGFueVtdIHtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBjaGlsZHJlbiA9IG5vZGVbdGhpcy5hdHRyY2hpbGRyZW5dO1xyXG5cclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjaGlsZHJlbjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0U3RyaW5nRmllbGQobm9kZTogYW55LCBmaWVsZG5hbWU6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgaWYgKCFub2RlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghZmllbGRuYW1lKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHZhbHVlID0gbm9kZVtmaWVsZG5hbWVdO1xyXG5cclxuICAgICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFzQ2hpbGRyZW4obm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2hpbGRyZW4obm9kZSkubGVuZ3RoID4gMDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNEaXNhYmxlZFN0YXRlKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyZGlzYWJsZWFjdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW3RoaXMuYXR0cmRpc2FibGVhY3Rpb25dO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0V4cGFuZGVkU3RhdGUobm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJleGFuZGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB2YWx1ZSA9IG5vZGVbdGhpcy5hdHRyZXhhbmRlZF07XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzSG92ZXJTdGF0ZShub2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmhvdmVyc3RhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHZhbHVlID0gbm9kZVt0aGlzLmF0dHJob3ZlcnN0YXRlXTtcclxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNTZWxlY3RlZFN0YXRlKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyc2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHZhbHVlID0gbm9kZVt0aGlzLmF0dHJzZWxlY3RlZF07XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZSc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgaXMgY2FsbGVkIGJ5IGNsaWNraW5nIGFuIGFjdGlvblxyXG4gICAgICogQHBhcmFtIGFjdGlvbiBhY3Rpb24gYW5kIG5vZGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uQWN0aW9uQ2xpY2tlZChhY3Rpb246IFRyZWV2aWV3QWN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25jbGlja2VkLmVtaXQoYWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Ob2RlQ2xpY2tlZChub2RlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkU3RhdGUobm9kZSkgfHwgdGhpcy5pc1NlbGVjdGVkU3RhdGUobm9kZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnZlcnRFeHBhbmRlZFN0YXRlKG5vZGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFN0YXRlKG5vZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRIb3ZlclN0YXRlKG5vZGU6IGFueSwgc3RhdGU6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmhvdmVyc3RhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHN0YXRlKSB7XHJcbiAgICAgICAgICAgIG5vZGVbdGhpcy5hdHRyaG92ZXJzdGF0ZV0gPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIW5vZGUuaGFzT3duUHJvcGVydHkodGhpcy5hdHRyaG92ZXJzdGF0ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVsZXRlIG5vZGVbdGhpcy5hdHRyaG92ZXJzdGF0ZV07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFNlbGVjdGVkU3RhdGUobm9kZTogYW55KSB7XHJcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyByZXNldCBzZWxlY3RlZCBzdGF0ZSBvZiBhbnkgbm9kZVxyXG4gICAgICAgIHRoaXMuZGF0YS5mb3JFYWNoKChyb290Tm9kZSkgPT4gdGhpcy5yZXNldFNlbGVjdGVkU3RhdGUocm9vdE5vZGUpKTtcclxuXHJcbiAgICAgICAgLy8gc2V0IHNlbGVjdGVkIG5vZGUgYXMgc2VsZWN0ZWRcclxuICAgICAgICBub2RlW3RoaXMuYXR0cnNlbGVjdGVkXSA9IHRydWU7XHJcblxyXG4gICAgICAgIC8vIFVwZGF0ZSBuZ01vZGVsXHJcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShub2RlKTtcclxuXHJcbiAgICAgICAgLy8gUmFpc2UgU2VsZWN0ZWQgRXZlbnRzXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZG5vZGUuZW1pdChub2RlKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmF0dHJpZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgaWQgPSB0aGlzLmdldFN0cmluZ0ZpZWxkKG5vZGUsIHRoaXMuYXR0cmlkKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZCh0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQpKGMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGVycm9yO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG5cclxuICAgIHByaXZhdGUgaW52ZXJ0RXhwYW5kZWRTdGF0ZShub2RlOiBhbnkpIHtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmV4YW5kZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSXRlbXMgd2l0aCBubyBjaGlsZHJlbiBjYW5ub3QgYmUgY29sbGFic2VkXHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc0NoaWxkcmVuKG5vZGUpICYmICEodGhpcy5lbmFibGVhc3luY2hsb2FkID09PSB0cnVlIHx8IHRoaXMuZW5hYmxlYXN5bmNobG9hZCA9PT0gJ3RydWUnKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW3RoaXMuYXR0cmV4YW5kZWRdO1xyXG5cclxuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbGxhYnNlZC5lbWl0KG5vZGUpO1xyXG4gICAgICAgICAgICBub2RlW3RoaXMuYXR0cmV4YW5kZWRdID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5leHBhbmRlZC5lbWl0KG5vZGUpO1xyXG4gICAgICAgICAgICBub2RlW3RoaXMuYXR0cmV4YW5kZWRdID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXNldFNlbGVjdGVkU3RhdGUobm9kZTogYW55KSB7XHJcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBub2RlW3RoaXMuYXR0cnNlbGVjdGVkXSA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLmdldENoaWxkcmVuKG5vZGUpLmZvckVhY2goKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRTZWxlY3RlZFN0YXRlKGNoaWxkKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcbiJdfQ==
|
|
80
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMXFxaml0c3ZhcCIsImFjdHVhbENvdmVyYWdlIiwiU2FjQmFzZU1vZGVsQ29udHJvbCIsIlZhbGlkYXRpb24iLCJEaXJlY3RpdmUiLCJFdmVudEVtaXR0ZXIiLCJIb3N0IiwiSW5wdXQiLCJPdXRwdXQiLCJTYWNUcmVldmlld0NvbW1vbiIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwiZiIsInMiLCJhY3Rpb25jbGlja2VkIiwiYXR0cmNoaWxkcmVuIiwiYXR0cmRpc2FibGVhY3Rpb24iLCJhdHRyZXhhbmRlZCIsImF0dHJob3ZlcnN0YXRlIiwiYXR0cmljb24iLCJhdHRyaWQiLCJhdHRybGFiZWwiLCJhdHRyc2VsZWN0ZWQiLCJjb2xsYWJzZWQiLCJkYXRhIiwiZW5hYmxlYXN5bmNobG9hZCIsImVuYWJsZWVsbGlwc2lzIiwiZXhwYW5kZWQiLCJleHBhbmRlZHN0YXRlIiwiaXNyZXF1aXJlZCIsIm5hbWUiLCJzZWxlY3RlZCIsInNlbGVjdGVkbm9kZSIsInZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQiLCJ2YWxpZGF0aW9uS2V5U2VydmljZSIsIlZhbGlkYXRpb25FcnJvclJlcXVpcmVkIiwidmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQiLCJpY29uQWN0aW9uIiwiaWNvblNlcnZpY2UiLCJUcmVldmlld05vZGVBY3Rpb25JY29uIiwiaWNvbkZvbGRlckNvbGxhYnNlZCIsIlRyZWV2aWV3Tm9kZUNsb3NlZEljb24iLCJpY29uRm9sZGVyRW1wdHkiLCJUcmVldmlld05vZGVFbXB0eUljb24iLCJpY29uRm9sZGVyT3BlbiIsIlRyZWV2aWV3Tm9kZU9wZW5JY29uIiwiY291bnQiLCJzaXplIiwiQXJyYXkiLCJnZXRDaGlsZHJlbiIsIm5vZGUiLCJiIiwiY2hpbGRyZW4iLCJpc0FycmF5IiwiZ2V0U3RyaW5nRmllbGQiLCJmaWVsZG5hbWUiLCJ2YWx1ZSIsImhhc0NoaWxkcmVuIiwibGVuZ3RoIiwiaXNEaXNhYmxlZFN0YXRlIiwiaXNFeHBhbmRlZFN0YXRlIiwiaXNIb3ZlclN0YXRlIiwiaXNTZWxlY3RlZFN0YXRlIiwib25BY3Rpb25DbGlja2VkIiwiYWN0aW9uIiwiZW1pdCIsIm9uTm9kZUNsaWNrZWQiLCJpbnZlcnRFeHBhbmRlZFN0YXRlIiwic2V0U2VsZWN0ZWRTdGF0ZSIsInNldEhvdmVyU3RhdGUiLCJzdGF0ZSIsImhhc093blByb3BlcnR5IiwiZm9yRWFjaCIsInJvb3ROb2RlIiwicmVzZXRTZWxlY3RlZFN0YXRlIiwic2V0VmFsdWUiLCJpZCIsInZhbGlkYXRlRGF0YSIsImMiLCJlcnJvciIsInJlcXVpcmVkIiwiY2hpbGQiLCJkZXBzIiwidG9rZW4iLCJpMSIsIlNhY0Zvcm1MYXlvdXRDb21tb24iLCJob3N0IiwiaTAiLCJJbmplY3RvciIsInRhcmdldCIsIsm1ybVGYWN0b3J5VGFyZ2V0IiwiaW5wdXRzIiwic2hvd2FjdGlvbmFsd2F5cyIsInRlbXBsYXRlYWN0aW9uIiwidGVtcGxhdGVsYWJlbCIsIm91dHB1dHMiLCJ1c2VzSW5oZXJpdGFuY2UiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy90cmVldmlldy90cmVldmlldy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNCYXNlTW9kZWxDb250cm9sIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG5pbXBvcnQgeyBUcmVldmlld0FjdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdHJlZXZpZXdhY3Rpb24uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQnO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdCwgSW5qZWN0b3IsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8qKlxyXG4gKiBCYXNpcyBLb21wb25lbnRlIGbDvHIgU2FjVHJlZVZpZXdcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgU2FjVHJlZXZpZXdDb21tb24gZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPGFueT4ge1xyXG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCB3aGVuIEFjdGlvbiBpcyBjbGlja2VkIG9uIE5vZGUuICBBbiBvYmplY3Qgb2YgdGhlIHR5cGUgJ1RyZWV2aWV3QWN0aW9uJyBpcyByZXR1cm5lZC4gSW4gdGhlIGRlZmF1bHQgY2FzZSwgJ2FjdGlvbicgaW4gdGhpcyBvYmplY3QgaXMgYWx3YXlzIHRoZSB2YWx1ZSAnZGVmYXVsdCcuIFRoZSB2YWx1ZSBjYW4gYmUgY2hhbmdlZCB2aWEgdGhlICd0ZW1wbGF0ZWFjdGlvbicuXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGFjdGlvbmNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxUcmVldmlld0FjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyZWV2aWV3QWN0aW9uPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvcGVydHkgb24gdGhlIGRhdGEgb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIGNoaWxkcmVuIG9mIHRoZSBzdHJ1Y3R1cmUgZWxlbWVudC4gTXVzdCBiZSBhbiBhcnJheSBvZiBvYmplY3RzLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAnY2hpbGRyZW4nXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXR0cmNoaWxkcmVuID0gJ2NoaWxkcmVuJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgdGhlIHByb3BlcnR5IG9uIHRoZSAnZGF0YScgb2JqZWN0IHdpdGggd2hpY2ggdGhlIGFjdGlvbnMgZm9yIGEgbm9kZSBjYW4gYmUgZGVhY3RpdmF0ZWQuIEEgJ2Rpc2FibGVkJyBwcm9wZXJ0eSBpcyB1c2VkIGJ5IGRlZmF1bHQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBhdHRyZGlzYWJsZWFjdGlvbiA9ICdkaXNhYmxlZCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBvbiB0aGUgJ2RhdGEnIG9iamVjdCB0aGF0IHN0b3JlcyB0aGUgZXhwYW5kZWQgc3RhdGUuIFByb3BlcnR5IG11c3QgYmUgb2YgdHlwZSBib29sZWFuLiBEZWZhdWx0IGlzICdleHBhbmRlZCdcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhdHRyZXhhbmRlZCA9ICdleHBhbmRlZCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBmb3Igc2F2aW5nIHRoZSBIb3ZlclN0YXRlIG9uIHRoZSBmaWVsZC4gSWYgdGhlIHByb3BlcnR5IGlzIG5vdCBwcmVzZW50IG9uIHRoZSBub2RlLCBpdCBpcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYW5kIHJlbW92ZWQgYWdhaW4uIFRoZSB2YWx1ZSBjYW4gdXN1YWxseSBiZSBsZWZ0IGF0IHRoZSBkZWZhdWx0IHZhbHVlIHVubGVzcyB0aGVyZSBpcyBhIGNvbmZsaWN0IHdpdGggYSBwcm9wZXJ0eSBvbiB0aGUgbm9kZSB0aGF0IGlzIHJlcXVpcmVkIGZvciBvdGhlciBwdXJwb3Nlcy5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhdHRyaG92ZXJzdGF0ZSA9ICdob3ZlcnN0YXRlJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG9uICdkYXRhJyBvYmplY3QsIHdoaWNoIGNvbnRhaW5zIHRoZSBpY29uIGZvciB0aGUgbm9kZS4gQnkgZGVmYXVsdCwgdGhlIHByb3BlcnR5IGlzIG5vdCBzZXQsIHdoaWNoIGhpZGVzIHRoZSBpY29uIGluIHRoZSBub2RlLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGF0dHJpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHByb3BlcnR5IG9uIHRoZSAnZGF0YScgb2JqZWN0IGNvbnRhaW5zIGFuIElEIG9mIHRoZSBub2RlLiBUaGUgZGVmYXVsdCBpcyAnaWQnLiBJZiB0aGUgcHJvcGVydHkgaXMgc2V0IHRvIE5VTEwsIHRoZSBzZWxlY3RlZElkIGV2ZW50IGlzIG5vIGxvbmdlciB0cmlnZ2VyZWQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXR0cmlkOiBzdHJpbmcgfCBudWxsID0gJ2lkJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG9uICdkYXRhJyBvYmplY3QsIHdoaWNoIGNvbnRhaW5zIHRoZSBsYWJlbCBmb3IgdGhlIG5vZGUuIERlZmF1bHQgaXMgJ2xhYmVsJ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGF0dHJsYWJlbCA9ICdsYWJlbCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBvbiAnZGF0YScgb2JqZWN0LCB3aGljaCBkZWZpbmVzIHdoZXRoZXIgdGhlIG5vZGUgaXMgc2VsZWN0ZWQgb3Igbm90LiBJdCBzaG91bGQgYmUgZW5zdXJlZCB0aGF0IG9ubHkgMSBub2RlIGhhcyB0aGUgdmFsdWUgZm9yIFNlbGVjdGVkIHNldCB0byB0cnVlLiBEZWZhdWx0IGlzICdzZWxlY3RlZCcuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXR0cnNlbGVjdGVkID0gJ3NlbGVjdGVkJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50IHdoZW4gYSBub2RlIGlzIGNvbGxhcHNlZC4gUmV0dXJucyB0aGUgbm9kZSBlbGVtZW50IGFzIGEgcGFyYW1ldGVyXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGNvbGxhYnNlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBwcm9wZXJ0eSBjb250YWlucyBhbiBhcnJheSBvZiBub2Rlcy4gVGhlIGRhdGEgbXVzdCBhbHJlYWR5IG1hcCB0aGUgdHJlZSB2aWEgY2hpbGQgcHJvcGVydGllcy5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBkYXRhOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWN0aXZhdGVzIHRoZSAnZXhwYW5kJyBhbmQgJ2NvbGxhYnNlJyBldmVudCBldmVuIGlmIGEgbm9kZSBoYXMgbm8gY2hpbGRyZW4uIFRoaXMgaXMgaGVscGZ1bCBpZiBub2RlIGVsZW1lbnRzIGFyZSB0byBiZSByZWxvYWRlZCBhdCBydW50aW1lLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGVuYWJsZWFzeW5jaGxvYWQ6IGJvb2xlYW4gfCBzdHJpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFjdGl2YXRlcyBFbGxpcHNpcyBvbiB0aGUgbm9kZSBsYWJlbHNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBlbmFibGVlbGxpcHNpcyA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCB3aGVuIGEgbm9kZSBpcyBleHBhbmRlZC4gUmV0dXJucyB0aGUgbm9kZSBlbGVtZW50IGFzIGEgcGFyYW1ldGVyXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGV4cGFuZGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIGFuIGljb24gZm9yIHRoZSBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdHVzIHNob3VsZCBiZSBkaXNwbGF5ZWQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZXhwYW5kZWRzdGF0ZTogYm9vbGVhbiB8IHN0cmluZyA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIG5vZGUgbXVzdCBiZSBzZWxlY3RlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlzcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgdGhlIFRyZWVWaWV3IGNvbnRyb2xcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50IHdoZW4gYSBub2RlIGlzIHNlbGVjdGVkLiBSZXR1cm5zIHRoZSBpZCBhdHRyaWJ1dGUgYXMgYSBwYXJhbWV0ZXIuIFRoZSBldmVudCBpcyBub3QgdHJpZ2dlcmVkIGlmICdhdHRyaWQnIGlzIG5vdCBzZXQuXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlbnQgd2hlbiBhIG5vZGUgaXMgc2VsZWN0ZWQuIFJldHVybnMgdGhlIG5vZGUgZWxlbWVudCBhcyBhIHBhcmFtZXRlci5cclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgc2VsZWN0ZWRub2RlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGF0IHRoZSBhY3Rpb24gdGVtcGxhdGUgaXMgZGlzcGxheWVkIGluZGVwZW5kZW50bHkgb2YgdGhlIHNlbGVjdGVkIHN0YXRlLiBJZiB0aGUgdmFsdWUgaXMgJ3RydWUnLCB0aGUgYWN0aW9uIHRlbXBsYXRlIGlzIGRpc3BsYXllZCBmb3IgZXZlcnkgZWxlbWVudC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93YWN0aW9uYWx3YXlzO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VzdG9tIHRlbXBsYXRlIGZvciBhY3Rpb25zIHBlciBub2RlLiBUZW1wbGF0ZSBwYXJhbWV0ZXJzIGFyZTogJ25vZGUnXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGVtcGxhdGVhY3Rpb246IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXN0b20gdGVtcGxhdGUgZm9yIHRoZSBsYWJlbCBhcmVhIHBlciBub2RlLiBUZW1wbGF0ZSBwYXJhbWV0ZXJzIGFyZTogJ25vZGUnIGFuZCAnbGFiZWwnXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGVtcGxhdGVsYWJlbDogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgU2VydmljZSBJbmplY3RvclxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICBwdWJsaWMgZ2V0IGljb25BY3Rpb24oKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5UcmVldmlld05vZGVBY3Rpb25JY29uO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ1NTIGljb24gZm9yIGZvbGRlcnMgaW4gdHJlZSB0aGVyZSBhcmUgY29sbGFic2VkXHJcbiAgICAgKiBAcmV0dXJucyBjc3MgY2xhc3Mgd2l0aCBpY29uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgaWNvbkZvbGRlckNvbGxhYnNlZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlRyZWV2aWV3Tm9kZUNsb3NlZEljb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDU1MgaWNvbiBjbGFzcyBmb3IgZm9sZGVycyB3aXRob3V0IHN1YmZvbGRlcnNcclxuICAgICAqIEByZXR1cm5zIGNzcyBjbGFzcyB3aXRoIGljb25cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBpY29uRm9sZGVyRW1wdHkoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5UcmVldmlld05vZGVFbXB0eUljb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDU1MgaWNvbiBmb3IgZm9sZGVycyBpbiB0cmVlIHRoZXJlIGFyZSBleHBhbmRlZFxyXG4gICAgICogQHJldHVybnMgY3NzIGNsYXNzIHdpdGggaWNvblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGljb25Gb2xkZXJPcGVuKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVHJlZXZpZXdOb2RlT3Blbkljb247XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgYSBjZXJ0YWluIHNpemUuIElzIHJlcXVpcmVkIGZvciBhIEZvciBpbiB0aGUgVUksIGFzIEFuZ3VsYXIgZG9lcyBub3Qgc3VwcG9ydCBjb3VudGluZyBsb29wc1xyXG4gICAgICogQHBhcmFtIHNpemUgU2l6ZSBvZiB0aGUgYXJyYXlcclxuICAgICAqIEByZXR1cm5zIEFycmF5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb3VudChzaXplOiBudW1iZXIpOiBBcnJheTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBcnJheShzaXplKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0Q2hpbGRyZW4obm9kZTogYW55KTogYW55W10ge1xyXG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyY2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGNoaWxkcmVuID0gbm9kZVt0aGlzLmF0dHJjaGlsZHJlbl07XHJcblxyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTdHJpbmdGaWVsZChub2RlOiBhbnksIGZpZWxkbmFtZTogc3RyaW5nKTogYW55IHtcclxuICAgICAgICBpZiAoIW5vZGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFmaWVsZG5hbWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW2ZpZWxkbmFtZV07XHJcblxyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYXNDaGlsZHJlbihub2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRDaGlsZHJlbihub2RlKS5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0Rpc2FibGVkU3RhdGUobm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJkaXNhYmxlYWN0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB2YWx1ZSA9IG5vZGVbdGhpcy5hdHRyZGlzYWJsZWFjdGlvbl07XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzRXhwYW5kZWRTdGF0ZShub2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmV4YW5kZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHZhbHVlID0gbm9kZVt0aGlzLmF0dHJleGFuZGVkXTtcclxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNIb3ZlclN0YXRlKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyaG92ZXJzdGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW3RoaXMuYXR0cmhvdmVyc3RhdGVdO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc1NlbGVjdGVkU3RhdGUobm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW3RoaXMuYXR0cnNlbGVjdGVkXTtcclxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZCBpcyBjYWxsZWQgYnkgY2xpY2tpbmcgYW4gYWN0aW9uXHJcbiAgICAgKiBAcGFyYW0gYWN0aW9uIGFjdGlvbiBhbmQgbm9kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25BY3Rpb25DbGlja2VkKGFjdGlvbjogVHJlZXZpZXdBY3Rpb24pIHtcclxuICAgICAgICB0aGlzLmFjdGlvbmNsaWNrZWQuZW1pdChhY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbk5vZGVDbGlja2VkKG5vZGU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWRTdGF0ZShub2RlKSB8fCB0aGlzLmlzU2VsZWN0ZWRTdGF0ZShub2RlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmludmVydEV4cGFuZGVkU3RhdGUobm9kZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldFNlbGVjdGVkU3RhdGUobm9kZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldEhvdmVyU3RhdGUobm9kZTogYW55LCBzdGF0ZTogYm9vbGVhbikge1xyXG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyaG92ZXJzdGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoc3RhdGUpIHtcclxuICAgICAgICAgICAgbm9kZVt0aGlzLmF0dHJob3ZlcnN0YXRlXSA9IHRydWU7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghbm9kZS5oYXNPd25Qcm9wZXJ0eSh0aGlzLmF0dHJob3ZlcnN0YXRlKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZWxldGUgbm9kZVt0aGlzLmF0dHJob3ZlcnN0YXRlXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0U2VsZWN0ZWRTdGF0ZShub2RlOiBhbnkpIHtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHJlc2V0IHNlbGVjdGVkIHN0YXRlIG9mIGFueSBub2RlXHJcbiAgICAgICAgdGhpcy5kYXRhLmZvckVhY2goKHJvb3ROb2RlKSA9PiB0aGlzLnJlc2V0U2VsZWN0ZWRTdGF0ZShyb290Tm9kZSkpO1xyXG5cclxuICAgICAgICAvLyBzZXQgc2VsZWN0ZWQgbm9kZSBhcyBzZWxlY3RlZFxyXG4gICAgICAgIG5vZGVbdGhpcy5hdHRyc2VsZWN0ZWRdID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLy8gVXBkYXRlIG5nTW9kZWxcclxuICAgICAgICB0aGlzLnNldFZhbHVlKG5vZGUpO1xyXG5cclxuICAgICAgICAvLyBSYWlzZSBTZWxlY3RlZCBFdmVudHNcclxuICAgICAgICB0aGlzLnNlbGVjdGVkbm9kZS5lbWl0KG5vZGUpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuYXR0cmlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBpZCA9IHRoaXMuZ2V0U3RyaW5nRmllbGQobm9kZSwgdGhpcy5hdHRyaWQpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnJlcXVpcmVkKHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCwgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZCkoYyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcblxyXG4gICAgcHJpdmF0ZSBpbnZlcnRFeHBhbmRlZFN0YXRlKG5vZGU6IGFueSkge1xyXG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyZXhhbmRlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJdGVtcyB3aXRoIG5vIGNoaWxkcmVuIGNhbm5vdCBiZSBjb2xsYWJzZWRcclxuICAgICAgICBpZiAoIXRoaXMuaGFzQ2hpbGRyZW4obm9kZSkgJiYgISh0aGlzLmVuYWJsZWFzeW5jaGxvYWQgPT09IHRydWUgfHwgdGhpcy5lbmFibGVhc3luY2hsb2FkID09PSAndHJ1ZScpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB2YWx1ZSA9IG5vZGVbdGhpcy5hdHRyZXhhbmRlZF07XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29sbGFic2VkLmVtaXQobm9kZSk7XHJcbiAgICAgICAgICAgIG5vZGVbdGhpcy5hdHRyZXhhbmRlZF0gPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmV4cGFuZGVkLmVtaXQobm9kZSk7XHJcbiAgICAgICAgICAgIG5vZGVbdGhpcy5hdHRyZXhhbmRlZF0gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlc2V0U2VsZWN0ZWRTdGF0ZShub2RlOiBhbnkpIHtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5vZGVbdGhpcy5hdHRyc2VsZWN0ZWRdID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0Q2hpbGRyZW4obm9kZSkuZm9yRWFjaCgoY2hpbGQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZXNldFNlbGVjdGVkU3RhdGUoY2hpbGQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcbn1cclxuIl0sIm1hcHBpbmdzIjoia3ZwQ0FvS0k7QUFBQUEsY0FBQSxTQUFBQSxDQUFBLFNBQUFDLGNBQUEsV0FBQUEsY0FBQSxFQUFBRCxjQUFBLEdBcEtKLE9BQVNFLG1CQUFtQixLQUFRLCtCQUErQixDQUVuRSxPQUFTQyxVQUFVLEtBQVEsa0JBQWtCLENBRTdDLE9BQVNDLFNBQVMsQ0FBRUMsWUFBWSxDQUFFQyxJQUFJLENBQVlDLEtBQUssQ0FBRUMsTUFBTSxLQUFxQixlQUFlLEMseUVBR25HOztHQUdBLEtBQ2EsQ0FBQUMsaUJBQWtCLFFBQVEsQ0FBQVAsbUJBQXdCLENBaUozRDtBQUVBO0FBRUE7OztPQUlBUSxZQUFvQkMsVUFBK0IsQ0FBRUMsUUFBa0IsRUFBQVosY0FBQSxHQUFBYSxDQUFBLE1BQUFiLGNBQUEsR0FBQWMsQ0FBQSxNQUNuRSxLQUFLLENBQUNILFVBQVUsQ0FBRUMsUUFBUSxDQUFDLENBekovQjtBQUVBOztXQUFBWixjQUFBLEdBQUFjLENBQUEsTUFJTyxLQUFBQyxhQUFhLENBQWlDLEdBQUksQ0FBQVYsWUFBWSxFQUFrQixDQUV2Rjs7V0FBQUwsY0FBQSxHQUFBYyxDQUFBLE1BSU8sS0FBQUUsWUFBWSxDQUFHLFVBQVUsQ0FFaEM7O1dBQUFoQixjQUFBLEdBQUFjLENBQUEsTUFHZ0IsS0FBQUcsaUJBQWlCLENBQUcsVUFBVSxDQUU5Qzs7V0FBQWpCLGNBQUEsR0FBQWMsQ0FBQSxNQUlPLEtB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
|